2011-05-17 50 views
1

我在做什么错?逃离“。”在preg_replace

<?php 
    $imageurl = $pagename1; 
    $imageurl = preg_replace('/.asp/', .$g_sites_img2.'.jpg', $pagename1); 
?> 

我试图逃跑的preg_replace.

我也曾尝试:

<?php 
    $imageurl = $pagename1; 
    $imageurl = preg_replace('/\.asp/', .$g_sites_img2.'\.jpg', $pagename1); 
?> 

为什么它仍然给我的错误?

+1

你想完成什么?你的代码在做什么,它不应该做什么?你的代码不是这样做的吗? – 2011-05-17 20:52:37

+0

你预期会发生什么?会发生什么呢? – 2011-05-17 20:53:09

+0

它给了我一个解析错误:语法错误,意外的'。'在第一行的/home/game1/public_html/includes/standard_images_screenshot_2.php – 2011-05-17 20:53:46

回答

9

您在$g_sites_img2之前有额外的.

$imageurl = preg_replace('/\.asp/', .$g_sites_img2.'\.jpg', $pagename1);?> 
            ^Here's your problem 

我同意@dtbarne - preg_replace()在这里完全没有必要。您应该使用str_replace()

+0

谢谢Rafe,我喜欢你用来突出问题的方式! – 2011-05-17 20:58:19

+0

preg_replace和str_replace有什么区别? – 2011-05-17 21:01:03

+1

@Gerald preg_replace需要一个正则表达式,而str_replace只需要一个普通的旧字符串。在你的情况下,你只是替换一个普通的旧字符串,所以你不需要一个正则表达式。 – 2011-05-17 21:02:03

4

它看起来不像preg_replace是必要的。

为什么你不能只使用str_replace?无论如何,你有一个语法错误(一个额外的时期)。

$imageurl = preg_replace('/\.asp/', $g_sties_img2 . '.jpg', $pagename1); 
+0

这是个好建议。 – 2011-05-17 20:56:07

1

试试这个:

<?php $imageurl = preg_replace('/\.asp/', $g_sites_img2.'\.jpg', $pagename1);?> 

的公告中缺少preg_replace()调用的第二个参数领先.。另外,由于您无论如何都要将preg_replace的结果写入该变量,因此不需要第一行。