Ik heb de volgende string:
Nou wil ik zorgen dat relatieve links absolute links worden naar mijn domein (voor in mijn RSS feed). Dus portfolio.php?id=14 (relatief) moet worden http://www.rszdesign.com/portfolio.php?id=14 en daarnaast moet www.4-4-14-zeilen.nl naar http://www.4-4-14-zeilen.nl veranderd. En absolute links (die beginnen met een protocol http:// of andere) moeten natuurlijk onveranderd blijven.
Ik heb de volgende patterns geprobeerd: (incomplete patterns uitge-comment)
Ik heb gezocht op Google en GoT, maar ik kan nergens vinden hoe ik kan zorgen dat ik kan aangeven met regex dat ik een replace wil uitvoeren wanneer het ene niet matcht en het andere wél.
Bij voorbaat dank voor de hulp!
PHP:
1
2
3
4
| $content = "<a href=\"www.4-4-14-zeilen.nl\" target=\"_blank\"><img class=\"left\" \n". " src=\"images/news/4-4-14_logo.jpg\" alt=\"\" /></a>\n". "De <a href=\"http://www.4-4-14-zeilen.nl\" target=\"_blank\">4-4-14</a> formule!!!</p><br />\n". "<p><a href=\"portfolio.php?id=14\" class=\"smalltext\">(zie portfolio)</a></p>"; |
Nou wil ik zorgen dat relatieve links absolute links worden naar mijn domein (voor in mijn RSS feed). Dus portfolio.php?id=14 (relatief) moet worden http://www.rszdesign.com/portfolio.php?id=14 en daarnaast moet www.4-4-14-zeilen.nl naar http://www.4-4-14-zeilen.nl veranderd. En absolute links (die beginnen met een protocol http:// of andere) moeten natuurlijk onveranderd blijven.
Ik heb de volgende patterns geprobeerd: (incomplete patterns uitge-comment)
PHP:
1
2
3
4
5
6
| //$new_content = preg_replace( "'href=\"http://(.*?)\"'si", "href=\"\$1\"", $content ); //$new_content = preg_replace( "'#(http://)([^\s]*)#e'", 'href="\\1"', $content ); //$new_content = preg_replace( '/(?<!href=\")(http|ftp)+(s)?:(\\/\\/)((\\w|\\.)+) (\\/)?(\\S)/i', 'href="http://\\1"', $content ); $new_content = preg_replace( "'href=\"(www\.)(.*?)\"'si", "href=\"http://\\1\\2\"", $content ); //$new_content = preg_replace( "'href=\"(\w+:\/\/)(.*?)\"'si", "href=\"http://www.rszdesign.com/\\1\\2\"", $new_content ); $new_content = preg_replace( "'href=\"([^http:\/\/])(.*?)\"'si", "href=\"http://www.rszdesign.com/\\1\\2\"", $new_content ); |
Ik heb gezocht op Google en GoT, maar ik kan nergens vinden hoe ik kan zorgen dat ik kan aangeven met regex dat ik een replace wil uitvoeren wanneer het ene niet matcht en het andere wél.
Bij voorbaat dank voor de hulp!