Прошу прощения, если уже есть несколько сообщений с той же проблемой, однако я все перепробовал и все еще не могу найти, что кажется проблемой с моим кодом.
Итак, что я хочу заключается в замене содержимого атрибута sr c моим собственным. Например, скажем, у меня есть документ HTML вроде этого:
<div>
<p>Hello</p>
<img src="123">
<p>
<img src="abc123">
</p>
<h1>Title</h1>
<img src="w?ijais,cn,a;;sqikxiasassaswxzdvfrfr...">
</div>
Я хочу найти каждый тег изображения, удалить значение sr c, выполнить некоторый синтаксический анализ, а затем заменить его другим стоимость. Вот мой код PHP со случайным logi c для простоты:
//The HTML content
$content = "<div><p>Hello</p>...";
//A number I want to use to modify the src values
$id = 9;
//Starts with <img src=" and ends with "/> with any number of characters in the middle
//I escape the double quotes: \"
$pattern = "/<img src=\"(.*)\">/";
//Calling preg_replace_callback
$result = preg_replace_callback($pattern, function($matches) use($id){
changeImage($matches[0], $id);
}, $content);
echo $result;
//changeImage function
public function changeImage($image, $id){
//Stripping the src value
$img = str_replace("<img src=\"", "", $image);
$img = str_replace("\">", "", $img);
//Modifying the src value
$img = $id . "-" . $img[0] . $img[1];
//Putting back the tags
$img = "<img src=\"$img\">";
return $img;
}
Результат должен быть:
<div>
<p>Hello</p>
<img src="9-12">
<p>
<img src="9-ab">
</p>
<h1>Title</h1>
<img src="9-w?">
</div>
Вот что я получаю:
<div>
<p>Hello</p>
<p>
</p>
<h1>Title</h1>
</div>