0

これがスクープです。正規表現を使用して画像を検索し、ソースの先頭に「../../」を挿入しています。ただし、機能しないだけでなく、RegEx を実行すると、画像ファイルの名前 (拡張子を含む) を保持する変数が変更されます。「preg_replace」行をコメントアウトすると、変数が正しくエコーアウトされます。誰が何が悪いのか教えてもらえますか? 前もって感謝します!

$imagefile = substr($filedata,($jpgbeginning+1),(($jpg+3)-$jpgbeginning));
$filedata = preg_replace('/(<img\s+.*?src=")(.*\\.(?:jpg|png|bmp|gif).*?>)/', '<img src="../'.$imagefile.'" />', $filedata);
echo $imagefile."<br /><br />";

また、正規表現では「../」の部分を二重にしているため、実際には何らかの理由で../../として出力されています。再度、感謝します!

4

1 に答える 1

0

次の preg_replace が機能するはずです。

preg_replace("/(<img\s+src\s*=\s*\")(.+?)(?=\")/","$1../../$2", HTML);
于 2013-03-08T00:55:16.130 に答える