2014-02-22 89 views
-2

我已经搜索了其他问题,但由于我不是PHP编码器,我无法弄清楚我在做什么错误时尝试修复它。preg替换错误

这里是我的代码:

$urlno = preg_replace("http://","",$m[m_siteurl]); 

if (!preg_match($admfile, $_SERVER['PHP_SELF'])) { die ("Access Denied"); } 

我想不出哪里放或放什么作为分隔符。

+4

这里阅读本手册第一 – Nambi

+0

使用str_replace函数和你做......什么都重要 - 作为nambi写的...... – roman

+0

什么是需要这里的正则表达式?不会[str_replace()](http://php.net/str_replace)就够了吗? –

回答

0

您必须为您的正则表达式和可选修饰符使用分隔符。这可能是任何字符 - 即~,或/

$urlno = preg_replace("~http://~", "", $m['m_siteurl']); 

顺便说一句 - 你并不真正需要的正则表达式在这里..只是使用str_replace函数

$urlno = str_replace("http://", "", $m['m_siteurl']); 

代替的preg_match,你也可以使用strpos

if (!strpos($_SERVER['PHP_SELF'], $admfile) !== false) { die ("Access Denied"); } 

,或者如果你想的preg_match ..

if (!preg_match('~' . preg_quote($admfile, '~') . '~', $_SERVER['PHP_SELF'])) { die ("Access Denied"); } 
+0

谢谢你的工作。 – user3341067

+0

最后一个是这个似乎无法工作的这个,你能修好这个吗? if(!preg_match($ admfile,$ _SERVER ['PHP_SELF'])){die(“Access Denied”); – user3341067

+0

你真棒,非常感谢你。 – user3341067

0

您可以使用str_replace而不是preg_replace,它的内存密集程度较低。

$urlno = str_replace('http://','',$m['m_siteurl']);