preg_replace()[function.preg-replace]:/var/www/.../public_html/中的未知修饰符'w'

时间:2013-05-05 07:05:12

标签: preg-replace

我遇到了PHP 5.3和Joomla的问题,错误显示如下这个preg_replace()[function.preg-replace]:/ var / www /

中的未知修饰符'w'

我的代码

$params  = $this->item->params;
$images = json_decode($this->item->images);
$urls = json_decode($this->item->urls);
$canEdit    = $this->item->params->get('access-edit');
$user       = JFactory::getUser();

$imagesJson = json_decode($this->item->images);
$images_stringPath = substr($imagesJson->image_fulltext, 0,strripos($imagesJson->image_fulltext, '/'));
$path = "/".$images_stringPath;



$tmp_filename=preg_replace($_SERVER["DOCUMENT_ROOT"].$path.'/','',$value);

1 个答案:

答案 0 :(得分:0)

使用preg_replace()进行简单的字符串替换是过度的。请改用str_replace()

无论如何,preg_replace()期望正则表达式模式被“分隔符”包围,你没有提供。

详细说明,这是函数调用的外观:

$tmp = preg_replace('/var/www/.../', '', $value);
//                   ^   ^^
//                   |   ||
//                   |   |+--- "modifier"
//                   |   +---- terminating delimiter
//                   +-------- starting delimiter

起始分隔符将是正斜杠/。这会在var之后终止模式。在终止分隔符后,preg_replace()允许optional modifiersw不属于他们。