2

我试图弄清楚如何title="Title is here"在 PHP 中替换图像的标题部分(),但我无法让它工作,所以有人可以帮忙吗?

标题实际上可以是任何东西,所以我需要找到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);
4

2 回答 2

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 的正则表达式。这对你有用。

于 2012-08-21T10:15:13.183 回答
-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">
于 2012-08-21T10:20:37.910 回答