Hello all, I am trying to use php to read through an html file and replace all image paths, like such:
Change "images/firstimage.gif" to "http://www.blah.com/firstimage.gif" ... Change "somesuch/images/secondimage.jpg" to "http://www.blah.com/secondimage.jpg" So I am going through the file and matching the image path strings, stripping them down to just the image name using "basename", and then adding "http://www.blah.com/" onto the beginning of them. Except it's not working, and I'm not sure where my logic has gone awry. Instead of replacing each image path with its respective image name, it is replacing all image paths with the *same* image name. Here is the code. (Yes I'm new, I apologize for the mess, there are a few lines in there I'm using for debugging purposes, to show me what it's doing.) <? $filename = "newexample.html"; $fd = fopen ($filename, "r"); $contents = fread ($fd, filesize ($filename)); while (preg_match('{(")([A-z0-9_/-](\/))*[A-z0-9_/-]+(.gif|.jpg)}', $contents, $matches)) { echo "<b>MATCHED:</b> ".$matches[0]."<br>\n"; $base = basename($matches[0]); $newimage = "http://www.blah.com/".$base; echo "<br>base: ".$base."<br>"; echo "new image: ".$newimage."<br>"; echo "<hr>"; $contents = eregi_replace('\/*[A-z0-9_/-]+(.gif|.jpg)', $newimage, $contents); print $contents; } fclose ($fd); ?> When I run it, I get: ~~~~~ MATCHED: "blah/images/first.gif base: first.gif new image: http://www.blah.com/first.gif ------------------------------------------------------------------------ <Here it prints the contents of the html file, except all images look like "http://www.blah.com/first.gif" (when there are supposed to be lots of other images, such as second.jpg, etc).> ~~~~~ Where have I gone wrong? Thanks to all, as usual, for your hints and help. Jen -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php