我正在试图弄清楚如何在PHP中替换图像的标题部分(title="Title is here"
),但我无法让它工作,所以有人可以帮忙吗?
标题可以是字面上的任何内容,因此我需要找到title"{anything here}"
并替换它(如下所示)。
我正在向我们preg_replace()
试图,但如果有更好的方式,我愿意接受建议。
我尝试了几种不同的变体,但我认为这并不是太远了 -
$pattern = '#^title="([a-zA-Z0-9])"$#';
$replacement = 'title="Visit the '.$service['title'].' page';
$service_image = preg_replace($pattern, $replacement, $service_image);
答案 0 :(得分:6)
<?php
$html = '<img src="whatever.jpg" title="Anything">';
$dom = new DOMDocument;
$dom->loadHTML($html);
$img = $dom->getElementsByTagName("img")->item(0);
/** @var $img DOMElement Now, $img contains the DOM note representing the image. */
$img->setAttribute("title", "Whatever you want here!");
/* Export the image alone (if not used like this,
* you'd get a complete HTML document including head and body).
*
* This ensures you only get the image.
*/
echo $dom->saveXML($img);
请不要使用HTML的正则表达式。这对你有用。
答案 1 :(得分:-2)
使用此代码段:
$tag = '<img title="My Old Title" src="localhost" alt="this is the alt"/>';
echo preg_replace('/(title)=("[^"]*")/i','title="My New Title"',$tag);
// <img title="My New Title" src="localhost" alt="this is the alt">