Today I publish a site on a new domain and new hosting provider but get depreciated warnings at some lines in the code. I'm not good at preg stuff but maybe can somebody help me to convert it to equivalent preg_match code?
Here some lines of code:
/* 1 */
$b = ( eregi( "^https?://(.*).$sDomainName/", $q ) || eregi( "^https?://$sDomainName/", $q ));
/* 2 */
function suIsValidEmail( $s )
{ return eregi("^[_\.0-9a-zA-Z-]+@([0-9a-zA-Z][0-9a-zA-Z-]+\.)+[a-zA-Z]{2,6}$", $s); }
/* 3 */
if( !eregi( '^https?://*/', $aa['src'] ))
/* 4 */
$sText = ereg_replace('[^A-Za-z0-9 &;'.suMakeString( $asInclNonNumChars ).']', ' ', strip_tags( $s ));
/* 5 */
function suPlainTextLinksToHtml( &$s )
{ // convert all links to html links
$s = ereg_replace("[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]", "<a href=\"\\0\">\\0</a>", $s );
}
/* 6 */
function suPlainTextEmailToHtml( &$s )
{
// Convert all email to links:
$s = ereg_replace('[-a-z0-9!#$%&.\'*+/=?^_`{|}~]+@([.]?[a-zA-Z0-9_/-])*', '<a href="mailto:\\0">\\0</a>', $s );
}
/* 7 */
if( $s === $sReferer || eregi( "^https?://$s/", $sReferer ) )
{ return true; }
/* 8 */
function suWildCardToRegExpression( $str )
{
$s = '';
for ($i = 0; $i < strlen($str); $i++)
{
$c = $str{$i};
if ($c =='?')
$s .= '.'; // any character
else if ($c == '*')
$s .= '.*'; // 0 || more any characters
else if ($c == '[' || $c == ']')
$s .= $c; // one of characters within []
else
$s .= '\\' . $c;
}
$s = '^' . $s . '$';
//trim redundant ^ || $
//eg ^.*\.txt$ matches exactly the same as \.txt$
if (substr($s,0,3) == '^.*')
$s = substr($s,3);
if (substr($s,-3,3) == '.*$')
$s = substr($s,0,-3);
return $s;
}
function suIsFileNameMatch( $asFileMask, $sFileName )
{
if( !is_array( $asFileMask ))
{ if( is_string( $asFileMask ))
{ $asFileMask = explode( ';', $asFileMask ); }
else { $asFileMask = (array)$asFileMask; }
}
if( suIsValidArray( $asFileMask ))
{
foreach( $asFileMask as $sFileMask )
{
$bResult = ereg( suWildCardToRegExpression( (string)$sFileMask ), $sFileName );
if( $bResult )
{ return true; }
}
}
return false;
}
NOTE: I am not a lazy person but I simply don't know how to do it!
A small guide:
In
preg
, you need to surround the expression with a delimiter character; a standard one is/
, but it can be others too (especially if you match URLs) such as@
or~
. For examplepreg_match('#^https?://#i')
is the same aseregi('^https?://')
.eregi
can be converted by appending apattern modifier
i
, like the above example.ereg_replace
translates topreg_replace
and so doeseregi_replace
(but remember to add thei
modifier).escaping a variable inside an expression can be done using
preg_quote
.Not sure if that covers all, but I welcome others to chime in.
See also: http://docstore.mik.ua/orelly/webprog/pcook/ch13_02.htm