Invincible Posted May 19, 2006 Share Posted May 19, 2006 Hello, I am using this simple preg_replace function to turn "Google" into a linkt o the Google site (not really what I am using it for I am just using it as an example)[code]$txt = preg_replace( "#Google#is", "<a href='http://www.google.com/'>Google</a>", $txt );[/code]But what about if I want to link Yahoo, well the simple option would be to just repeat the line. However, what if I start adding in MSN, Alta Vista, it will all get very confusing, so I create an array.The array setting the words:[code]array("Google","Yahoo","MSN");[/code]And the array with the links:[code]array("<a href='http://www.google.com/'>Google</a>","<a href='http://www.yahoo.com/'>Yahoo</a>","<a href='http://www.msn.com/'>MSN</a>");[/code]Alternativly, we could have this:[code]array("Google" => "<a href='http://www.google.com/'>Google</a>","Yahoo" => "<a href='http://www.yahoo.com/'>Yahoo</a>","MSN" => "<a href='http://www.msn.com/'>MSN</a>");[/code]But how do I now get this to work!? My itnitial thought was this:[code]<?php$names = array("Google","Yahoo","MSN");$links = array("<a href='http://www.google.com/'>Google</a>","<a href='http://www.yahoo.com/'>Yahoo</a>","<a href='http://www.msn.com/'>MSN</a>");$txt = preg_replace( "#".$names."#is", $links, $txt );?>[/code]However, this of course, did not worsk, and I was produced with this error:[!--quoteo--][div class=\'quotetop\']QUOTE[/div][div class=\'quotemain\'][!--quotec--]Warning: preg_replace(): Parameter mismatch, pattern is a string while replacement in an array. in /home/****/public_html/forums/keywords.php on line 15[/quote]So my question is, how do I enable arrays in preg_replace!?Thanks in adavcne for your help,Mark Quote Link to comment https://forums.phpfreaks.com/topic/10014-arrays-in-preg_replace/ Share on other sites More sharing options...
alpine Posted May 19, 2006 Share Posted May 19, 2006 put the pattern in an array aswell, study the [a href=\"http://no.php.net/manual/en/function.preg-replace.php\" target=\"_blank\"]Manual: [a href=\\\"http://no.php.net/manual/en/function.preg-replace.php\\\" target=\\\"_blank\\\"]http://no.php.net/manual/en/function.preg-replace.php[/a][/a] Quote Link to comment https://forums.phpfreaks.com/topic/10014-arrays-in-preg_replace/#findComment-37202 Share on other sites More sharing options...
Invincible Posted May 19, 2006 Author Share Posted May 19, 2006 [!--quoteo--][div class=\'quotetop\']QUOTE[/div][div class=\'quotemain\'][!--quotec--]put the pattern in an array[/quote]How?[!--quoteo--][div class=\'quotetop\']QUOTE[/div][div class=\'quotemain\'][!--quotec--]Manual: [a href=\"http://no.php.net/manual/en/function.preg-replace.php\" target=\"_blank\"]http://no.php.net/manual/en/function.preg-replace.php[/a][/quote]Broken link, however I have had a look at the example for preg_replace and they are using an array which is exactly what I am doing and their's works fine.Please could you just post what I would need to do for the code I ahve laid out (it is a very simple code)and I will suss how this works.Thanks Quote Link to comment https://forums.phpfreaks.com/topic/10014-arrays-in-preg_replace/#findComment-37210 Share on other sites More sharing options...
alpine Posted May 19, 2006 Share Posted May 19, 2006 You're not putting the pattern in an array, only pieces of it - this works however:[code]<?php$names = array("#Google#is","#Yahoo#is","#MSN#is");$links = array("<a href='http://www.google.com/'>Google</a>","<a href='http://www.yahoo.com/'>Yahoo</a>","<a href='http://www.msn.com/'>MSN</a>");$txt = "bacsk ksaj Google jha djshfu MSN dhfow Yahoo";$txt = preg_replace( $names, $links, $txt );echo $txt;?>[/code] Quote Link to comment https://forums.phpfreaks.com/topic/10014-arrays-in-preg_replace/#findComment-37230 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.