这个preg_replace东西挣扎了数小时。 我有它在drupal制作的实时网站上工作。运行PHP 5x 我正在用运行Php 7的Laravel重新编码我的网站
我在实时站点中的工作代码是
if(isset($getPost['message_tags'])) {
$getPost = $getPost['message_tags'];
foreach($getPost as $tags) {
$tagId = $tags['id'];
tagName = $tags['name'];
$tag = '<a href="https://www.facebook.com/'.$tagId.'" target="_blank" title="'.$tagName.'">'.$tagName.'</a>'
$message = preg_replace("/\@\[".$tagId."\]/", $tag, $message);
}
}
它正在遍历来自Facebook返回的图节点的消息标签(页面提及),以将诸如@ [pageId]之类的标签替换为实际链接,并且该标签在我的实时网站上正常运行...
但是在我的Laravel网站代码中,它在字符串的开头和“] 的末尾插入了 [” ),但我不知道为什么会这样发生了,已经搞了几个小时了。 只用一个单词替换了替换项,显然不是用那一行来完成的,似乎是替换模式itselv,但是我很困惑为什么它可以在我的实时网站上运行。我想这是Laravel或PHP 5-> php 7的事情。有人吗?