preg_replace函数中的PHP OOP调用方法

时间:2012-03-09 12:47:35

标签: php oop twitter

我想提到类似于Twitter的提及但是对于用户配置文件我使用ID而不是userNames所以我创建了一个函数,它根据userName获取UserID,并且在程序代码中工作但是在oop dosent中...

$title = ' Hey @Stackoverflow can u help me ?';

$mentions = (preg_replace("/\@([a-zA-Z0-9\-_]{3,30})/e", 
    "'<a href=\"http://mySite.com/user:'.$this->mentionName('$1').
'\">@$1</a>'",$title));

预期的网址结果

http://mySite.com/user:1

不是预期的结果

http://mySite.com/user:Stackoverflow

//这是一个循环而不是单个字符串

2 个答案:

答案 0 :(得分:1)

你做不到。

查看preg_replace_callback函数,或将匹配分配给另一个变量,并将其用于您的类函数。

答案 1 :(得分:0)

如果您想将preg_replace与评估结果并修改结果的函数结合使用,请使用preg_replace_callback

http://php.net/manual/en/function.preg-replace-callback.php

function returnUser($matches){
    return $this->mentionName($matches[1]);
}

$mentions = preg_replace_callback("/\@([a-zA-Z0-9\-_]{3,30})/e", "returnUser",$title));