regular expressions

Discussion in 'PHP/MySql' started by roice, Mar 2, 2010.

Thread Status:
Not open for further replies.
  1. roice New Member

    Member Since:
    Mar 2, 2010
    Message Count:
    1
    Likes Received:
    0
    Hello everyone,
    My name is Roi and I need your help.
    Hope you will be able to help me-
    I wrote a script that take variable that contain HTML code,. it replace the exact word "php" (no matter if it is contain capital letters) with the word "asp"
    for example, if the variable contain:
    PHP:
    <a href='php.com'>myphp</a> best <b>php</b> website <h1>PhP!!!</h1> php and myphp or phpme - <u>php!</u>!
    the result will be
    PHP:
    <a href='asp.com'>myphp</a> best <b>asp</b> website <h1>asp!!!</h1> aspand myphp or phpme - <u>asp!</u>!
    well, the problem is that it althouth replace the letters inside the THML tags and because of that the links changed...
    Here is my code:
    PHP:
        function keepcase($word, $replace) {
          $replace[0] = (ctype_upper($word[0]) ? strtoupper($replace[0]) : $replace[0]);
         
          return $replace;
        }

        $text = strtolower(file_get_contents($folder.$file));
        $replace = "asp";
        $word = "php";
        $output = preg_replace('/\b' . preg_quote($word) . '\b/ei', "keepcase('\\0', '$replace')", $text);
     
        echo $output;    
    What should I change if I want the replacements to be only on the text between the HTML tags?

    Thank you in advance,
    Roi.
Thread Status:
Not open for further replies.

Share This Page