
Originally Posted by
ljm
Oh, and I like your suggestion Rosland, but I don't know how I'd do that when my 'string' is a huge article, not just the image tag.

I don't know if this is of any help, but I embedded some image tags in a text to see if that's closer to what you're after.
The final 'print' command will output the original string, but with all the image tags altered to what you've described above.
PHP Code:
$str = "<img src='image_name.jpg' alt='description' width='x' height='y' align='left' />
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Etiam fermentum semper nulla.
<img src='image_name2.jpg' alt='description2' width='x' height='y' align='left' />
Sed tincidunt pharetra metus.<img src='image_name3.jpg' alt='description3' width='x'
height='y' align='left' />
Nam at turpis. Aliquam lacinia erat vel quam.
<img src='image_name4.jpg' alt='description4' width='x' height='y' align='left' />
Vivamus iaculis odio sed pede. Etiam urna.
<img src='image_name5.jpg' alt='description5' width='x' height='y' align='left' />
Curabitur enim eros, egestas eget, rhoncus ut, blandit eget, ipsum. Fusce id justo.
Nullam semper felis sit amet urna.
Vivamus laoreet. Suspendisse potenti. Donec aliquam rhoncus lectus. Class aptent taciti sociosqu ad
litora torquent per conubia nostra, per inceptos hymenaeos. <img src='image_name6.jpg'
alt='description7' width='x' height='y' align='left' />
Quisque arcu est, dictum eget,
sollicitudin adipiscing, adipiscing eget, arcu.";
$pattern = "/<img(.*)\/>/";
preg_match_all($pattern, $str, $res);
$mod=$res[0];
$pattern = "/[\w|\s+]+='(.*)\.[a-z]{3}'[\w|\s+]+='(\w*)'.*/";
$replace="a href='$1-full.jpg' title='$2'>".$res[0][$i]."</a>";
for($i=0; $i < count($mod); $i++)
{
$alter[$i]=preg_replace($pattern, "a href='$1-full.jpg' title='$2'>".$res[0][$i]."</a>", $mod[$i]);
}
print str_replace($res[0], $alter, $str);