如何在文本中搜索字符串并用php中的链接替换

时间:2013-03-21 16:16:15

标签: php regex twitter

我目前正在将Twitter推送到我的网站并在首页上显示内容。 我希望能够做的就是用链接替换任何带有主题标签或Twitter用户名的内容。

我尝试使用preg_replace执行此操作,但我在构建用作替换的链接时遇到问题,因为我不确定如何引用和插入匹配的模式。这是我到目前为止(未完成)。有人能帮助我吗?

谢谢!

<?php 
foreach($tweets as $tweet) { ?>
  <?php 
    $pattern = '@([A-Za-z0-9_]+)';
    $replacement = "<a href=''>" . . "</a>";
    $regex_text = preg_replace($pattern, );

  ?>
  <div class="tweet2">
    <img src="images/quotes.png" />
    <p><?php echo $tweet[text]; ?></p>
  </div>
<?php }
?>

2 个答案:

答案 0 :(得分:3)

$regex_text = preg_replace($pattern, $replacement, $input_text);

这是使用preg_replace的正确方法,$input_text是带有要替换内容的文本的变量。

除此之外:

$pattern="/@([A-Za-z0-9_]+)/"; //can't be sure if this will work w/o an example of a input string.
$replacement= "<a href=''>$1</a>";  //$1 is what you capture between `()` in the pattern.

答案 1 :(得分:1)

使用这些括号,您将定义捕获组。在模式中使用捕获组时,可以按顺序从0到99开始使用\\n$n引用它们。

所以你的替代品将是:

$replacement = "<a href='http://twitter.com/$1'>$1</a>";

如果你有更多的捕获组,你的数字会更高。

查看the manual entry$replacement参数以获取更多信息。