ckeditor を使用して記事を公開すると、画像パスに余分な「/」が表示されます。何かアドバイスをお願いします。
これは非常に奇妙な現象です。私は ckeditor を使用してニュースを公開し、Web サイトに画像を追加します。画像のパスを抽出して、それをホームページに表示する必要があります。私が使用した方法は、送信プロセス中にフローをインターセプトし、正規表現を使用して画像パスを抽出することでした。私の正規表現は次のとおりです:
"/
私のローカル環境: apache+ win7 での mysql+php (wamp 統合環境)。
アップロード環境: win2003 の iis+mysql+php;
問題は、画像パスをローカルに抽出するときは問題ありませんが、Web サイトをアップロードした後は機能しません。 !理由を見つけるために、さまざまな問題を詳しく調査しました。
1. 記事を公開するときに、ckeditor 編集ボックスでソース コード モードで表示します。結果は次のようになります。
"
ここに追加してください 記事の内容 >
400px; height: 300px" />
"
記事を投稿するとき、投稿内容を Web ページに出力します (echo $_POST['content '];)、ソース コードを表示し、結果を出力します。 はい:
ここに記事の内容を追加してください。
"width : 400px; height: 300px;" />
比較すると、投稿前よりも前にあることがわかります
2. 追加したばかりの記事をブラウザで表示します。しかし、画像は正しく表示されません。データベース内のストレージを確認すると、結果は次のようになります。
「
ここに記事の内容を追加してください。」
"
結果は ckeditor 編集ボックスの元の内容と同じです
上記の 2 つの分析点により、私は混乱しました。内容は正しく、送信内容に "/" が増え、データベースへの書き込みが正常に戻っています。
もう 1 つの注意すべき点は、上記の 2 つの分析出力です。ウェブサイトがローカルの場合は利用できません。変更は正しいです。
私はフォーラムに初めて参加するので、今後ポイントを獲得する場合は必ずボーナスを差し上げます。 --------------------
これは、文字列エスケープ機構が使用されているためです
例: """、二重引用符文字 (") は "" 二重引用符の範囲内で使用できます
通常はエスケープを使用しますしたがって、このコンテンツを使用すると、PHP コード
など、データベースの SQL スプライシングで通常使用される他の二重引用符で処理されるのではないかと心配しています。
$a = '二重引用符があります"';
$sql = 'SELECT * FROM test WHERE title link "%'.$a.'%"' // デモのために、ほとんどの場合は '
を使用します。