替换HTML图像的标题

时间:2012-08-21 10:02:27

标签: php regex image title

我正在试图弄清楚如何在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);

2 个答案:

答案 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">