I'm trying to figure out how to replace the title portion of an image (title="Title is here"
) in PHP, but I cannont get it to work, so could someone please help?
The title could be literally anything, so I need to find title"{anything here}"
and replace that (as below).
I'm trying to us preg_replace()
, but if there is a better way, I'm open to suggestions.
I've tried several different variations, but I think this is not too far off the mark -
$pattern = '#^title="([a-zA-Z0-9])"$#';
$replacement = 'title="Visit the '.$service['title'].' page';
$service_image = preg_replace($pattern, $replacement, $service_image);
<?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);
No regex for HTML please. This will work for you.
Use this snippet :
$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">