带数组的preg_replace - 修剪替换

时间:2014-01-26 20:34:06

标签: php html twitter preg-replace

我一直在使用Twitter REST API并且发现推文数据不会自动包装锚标签中的链接。所以我编写了一个PHP函数来搜索每个推文文本并为我做这个。

它找到以“@”或“#”开头的任何内容以及常规链接,并将其替换为相关标记。我遇到的问题是我将找到的表达式放回到替换中,我需要从实际链接href中删除前导'@'或'#'。

我该怎么做?

function tTweet($tTweet){
    $tPattern = array(
                  '/(http:\/\/t\.co\/[a-z0-9]+)/i', 
                  '/(@[a-z0-9]+)/i', 
                  '/(#[a-z0-9]+)/i' );

    $tReplace = array(
                  '<a href="$1" target="_blank">$1</a>', 
                  '<a href="https://twitter.com/$1" target="_blank">$1</a>',
                  '<a href="https://twitter.com/search?q=%23$1&src=hash" target="_blank">$1</a>' );

    echo preg_replace($tPattern,$tReplace,$tTweet); 
}

0 个答案:

没有答案