Jump to content

Help me regarding preg_replace


jhbalaji

Recommended Posts

Hello everyone i am writing a snippet for replacing the keywords into links.

It almost works but it also replaces the words in between HTML Tags

So can anyone help me in fixing that

 

<?php
$textlinksname = 'Google';
$textlinksurl = 'http://google.com';
$body = 'Google is a great search engine. Here is the logo of it <img src =\'http://www.google.co.in/google/images/srpr/logo1w.png\'/>';

$replace = "<a href='".$textlinksurl."' target='_blank'>".$textlinksname."</a>";
$body = preg_replace('~(?<!http://|www\.|/)'.$textlinksname.'~i', $replace,$body,200);

echo $body;
?>

 

 

It outputs as

<a href='http://google.com' target='_blank'>Google</a> is a great search engine. Here is the logo of it
<img src ='http://www.google.co.in/google/intl/en_com/images/srpr/google-123-<a href='http://google.com' target='_blank'>Google</a>.png'/>

 

But i need output like this such that it wont mess with HTML Tags

 

<a href='http://google.com' target='_blank'>Google</a> is a great search engine. Here is the logo of it
<img src ='http://www.google.co.in/google/intl/en_com/images/srpr/google-123-Google.png'/>

 

 

Can anyone help me on how to prevent that???

 

Thanks in advance :)

 

Link to comment
https://forums.phpfreaks.com/topic/206857-help-me-regarding-preg_replace/
Share on other sites

In simple words

It should replace the keyword i specified into links but whenever it founds HTML Tags say Anchor Tag or Image Tag it should skip the Word in between those tags

 

can also be defined as

i need a regex pattern in which it should turn the keywords into links in a Paragraph without messing inbetween HTML Tgas :)

 

Thanks for your Help salathe

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.