unexpected '@' in preg_replace???

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

 



hi list,

I have this code:

<?php

$mit = array(
         "/\r/",                                  // Non-legal carriage 
return
         "/[\n\t]+/",                             // Newlines and tabs
         '/[ ]{2,}/',                             // Runs of spaces, 
pre-handling
         '/<script[^>]*>.*?<\/script>/i',         // <script>s -- which 
strip_tags supposedly has problems with
         '/<style[^>]*>.*?<\/style>/i',           // <style>s -- which 
strip_tags supposedly has problems with
         '/<h[123][^>]*>(.*?)<\/h[123]>/ie',      // H1 - H3
         '/<h[456][^>]*>(.*?)<\/h[456]>/ie',      // H4 - H6
         '/<p[^>]*>/i',                           // <P>
         '/<br[^>]*>/i',                          // <br>
         '/<b[^>]*>(.*?)<\/b>/ie',                // <b>
         '/<strong[^>]*>(.*?)<\/strong>/ie',      // <strong>
         '/<i[^>]*>(.*?)<\/i>/i',                 // <i>
         '/<em[^>]*>(.*?)<\/em>/i',               // <em>
         '/(<ul[^>]*>|<\/ul>)/i',                 // <ul> and </ul>
         '/(<ol[^>]*>|<\/ol>)/i',                 // <ol> and </ol>
         '/<li[^>]*>(.*?)<\/li>/i',               // <li> and </li>
         '/<li[^>]*>/i',                          // <li>
         '/<a [^>]*href="([^"]+)"[^>]*>(.*?)<\/a>/ie',
                                                  // <a href="">
         '/<hr[^>]*>/i',                          // <hr>
         '/(<table[^>]*>|<\/table>)/i',           // <table> and
</table>
         '/(<tr[^>]*>|<\/tr>)/i',                 // <tr> and </tr>
         '/<td[^>]*>(.*?)<\/td>/i',               // <td> and </td>
         '/<th[^>]*>(.*?)<\/th>/ie',              // <th> and </th>
         '/&(nbsp|#160);/i',                      // Non-breaking space
         '/&(quot|rdquo|ldquo|#8220|#8221|#147|#148);/i',
                                                  // Double quotes
         '/&(apos|rsquo|lsquo|#8216|#8217);/i',   // Single quotes
         '/&gt;/i',                               // Greater-than
         '/&lt;/i',                               // Less-than
         '/&(amp|#38);/i',                        // Ampersand
         '/&(copy|#169);/i',                      // Copyright
         '/&(trade|#8482|#153);/i',               // Trademark
         '/&(reg|#174);/i',                       // Registered
         '/&(mdash|#151|#8212);/i',               // mdash
         '/&(ndash|minus|#8211|#8722);/i',        // ndash
         '/&(bull|#149|#8226);/i',                // Bullet
         '/&(pound|#163);/i',                     // Pound sign
         '/&(euro|#8364);/i',                     // Euro sign
         '/&[^&;]+;/i',                           // Unknown/unhandled 
entities
         '/[ ]{2,}/'                              // Runs of spaces, 
post-handling
     );

$mire = array(
         '',                                     // Non-legal carriage 
return
         ' ',                                    // Newlines and tabs
         ' ',                                    // Runs of spaces, 
pre-handling
         '',                                     // <script>s -- which 
strip_tags supposedly has problems with
         '',                                     // <style>s -- which 
strip_tags supposedly has problems with
         "strtoupper(\"\n\n\\1\n\n\")",          // H1 - H3
         "ucwords(\"\n\n\\1\n\n\")",             // H4 - H6
         "\n\n\t",                               // <P>
         "\n",                                   // <br>
         '_\\1_',                                // <b>
         '_\\1_',                                // <strong>
         '_\\1_',                                // <i>
         '_\\1_',                                // <em>
         "\n\n",                                 // <ul> and </ul>
         "\n\n",                                 // <ol> and </ol>
         "\t* \\1\n",                            // <li> and </li>
         "\n\t* ",                               // <li>
         '$this->_build_link_list("\\1", "\\2")',
                                                 // <a href="">
         "\n-------------------------\n",        // <hr>
         "\n\n",                                 // <table> and </table>
         "\n",                                   // <tr> and </tr>
         "\t\t\\1\n",                            // <td> and </td>
         "strtoupper(\"\t\t\\1\n\")",            // <th> and </th>
         ' ',                                    // Non-breaking space
         '"',                                    // Double quotes
         "'",                                    // Single quotes
         '>',
         '<',
         '&',
         '(c)',
         '(tm)',
         '(R)',
         '--',
         '-',
         '*',
         '£',
         'EUR',                                  // Euro sign. € ?
         '',                                     // Unknown/unhandled 
entities
         ' '                                     // Runs of spaces, 
post-handling
     );

$dokumentum = <<<EOF
<p>zoltan.<strong>nemeth@xxxxxxxxxxxxxxx</strong></p><p><strong>zoltan.n<em>emeth@mov</em></strong><em>eonerelo.com</em></p><p><em>zoltan.nemeth@mov</em>eonerelo.com</p><p>zoltan.nemeth@xxxxxxxxxxxxxxx&nbsp;</p>
EOF;

$szoveg = preg_replace ($mit, $mire, $dokumentum);
echo $szoveg;

?>

And it throws the following error:

Parse error: syntax error, unexpected '@'
in /home/znemeth/public_html/test/pregreplacetest1.php(94) : regexp code
on line 1

Fatal error: preg_replace() [<a
href='function.preg-replace'>function.preg-replace</a>]: Failed
evaluating code: _nemeth@xxxxxxxxxxxxxxxx
in /home/znemeth/public_html/test/pregreplacetest1.php on line 94

it appears both on
PHP Version 4.4.7-0.dotdeb.0
and
PHP Version 5.2.4-0.dotdeb.0

does anybody know what's this? why can a '@' in the subject text cause
any problems?

any help greatly appreciated

thanks in advance
Zoltán Németh

-- 
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