PHP のソース属性 (イメージまたは任意のタグ) を置き換えるために正規表現を使用しようとしています。
私はこのような文字列を持っています:
$string2 = "<html><body><img src = 'images/test.jpg' /><img src = 'http://test.com/images/test3.jpg'/><video controls="controls" src='../videos/movie.ogg'></video></body></html>";
そして、私はそれを次のように変えたいと思います:
$string2 = "<html><body><img src = 'test.jpg' /><img src = 'test3.jpg'/><video controls="controls" src='movie.ogg'></video></body></html>";
私が試したのは次のとおりです。
$string2 = preg_replace("/src=["']([/])(.*)?["'] /", "'src=' . convert_url('$1') . ')'" , $string2);
echo htmlentities ($string2);
基本的には何も変更されず、エスケープされていない文字列に関する警告が表示されました。
$1
文字列の内容を送信しませんか? ここで何が問題なのですか?
そして、convert_url の関数は、以前ここに投稿した例からのものです。
function convert_url($url)
{
if (preg_match('#^https?://#', $url)) {
$url = parse_url($url, PHP_URL_PATH);
}
return basename($url);
}
URL パスを取り除き、ファイル名だけを返すことになっています。