Re: preg_replace() help

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 7/13/07, Rick Pasotto <rick@xxxxxxxx> wrote:
I have quotes like the following:

$txt = 'A promise is a debt. -- Irish Proverb';

I'd like to replace all the spaces afer the '--' with &nbsp;

This is what I've tried:

        $pat = '/( --.*)(\s|\n)/U';
    $rpl = '$1$2&nbsp;';
    while (preg_match($pat,$txt,$matches) > 0) {
        print "$txt\n";
        printf("[0]: <%s>\n",$matches[0]);
        printf("[1]: <%s>\n",$matches[1]);
        printf("[2]: <%s>\n",$matches[2]);
        preg_replace($pat,$rpl,$txt);
    }

The prints are for debugging. $matches contains what I expect but
nothing gets replaced and $txt stays the same so it loops forever.

What am I doing wrong?

--
"Everyone is as God has made him, and oftentimes a great deal worse."
                -- Miguel De Cervantes
    Rick Pasotto    rick@xxxxxxxx    http://www.niof.net

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



   If you mean that EVERY space after the -- separator should be
replaced, then just try this:

<?
$txt = "As a rule, kids with meningitis don't smile when looking at
attractive faces -- not even you, Miss America, or the ravishing
pharmacist I mentioned above. -- ER Questions and Answers, Part 3";

function replace_space($txt) {
       $field = explode("--",$txt);
       for($i=0;$i<(count($field)-1);$i++) $new_txt .= $field[$i];
       $new_txt .= "--".str_replace(" ","&nbsp;",$field[(count($field)-1)]);
       return $new_txt;
}

echo replace_space($txt)."\n";
?>

   This would print:
       A promise is a debt. --&nbsp;Irish&nbsp;Proverb

   Conversely, it will still properly handle the existence of
double-hyphens anywhere else in the quote, but not the source.
Consider this string:
       "As a rule, kids with meningitis don't smile when looking at
attractive faces -- not even you, Miss America, or the ravishing
pharmacist I mentioned above. -- ER Questions and Answers, Part 3"

   This would still become:
       "As a rule, kids with meningitis don't smile when looking at
attractive faces -- not even you, Miss America, or the ravishing
pharmacist I mentioned above.
--&nbsp;ER&nbsp;Questions&nbsp;and&nbsp;Answers,&nbsp;Part&nbsp;3"

   However, if you have double-hyphens in the source, like so:
       "What a pain in the butt this would be! -- Me, sending an
example -- to you

   The phrase would be printed like this:
       "What a pain in the butt this would be! -- Me, sending an
example --&nbsp;to&nbsp;you

--
Daniel P. Brown
[office] (570-) 587-7080 Ext. 272
[mobile] (570-) 766-8107

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux