Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php twitter正则表达式,用于将文本显示为url,但如果是文本,则不显示_Php_Regex_Url - Fatal编程技术网

Php twitter正则表达式,用于将文本显示为url,但如果是文本,则不显示

Php twitter正则表达式,用于将文本显示为url,但如果是文本,则不显示,php,regex,url,Php,Regex,Url,有人能帮我调整一下这个正则表达式吗 我有一个用于twitter的正则表达式,如果我拼写这样的单词R@chard,它希望将其转换为URL。在Twitter上,它被正确显示 删除最后一行可能是显而易见的,尽管我对正则表达式的构造知之甚少。也许还有一个更智能的Twitter 另外,我有一个ajax twitter更新程序,它显示问号占位符。 它们是什么?regex能摆脱它们吗 这是我的密码 function format_tweet($str) { $formatted_text = pre

有人能帮我调整一下这个正则表达式吗

我有一个用于twitter的正则表达式,如果我拼写这样的单词R@chard,它希望将其转换为URL。在Twitter上,它被正确显示

删除最后一行可能是显而易见的,尽管我对正则表达式的构造知之甚少。也许还有一个更智能的Twitter

另外,我有一个ajax twitter更新程序,它显示问号占位符。 它们是什么?regex能摆脱它们吗

这是我的密码

function format_tweet($str) 
    {
$formatted_text = preg_replace('/(\b(www\.|http\:\/\/)\S+\b)/', "<a target='_blank' href='$1'>$1</a>", $str);
$formatted_text = preg_replace('/\#(\w+)/', "<a target='_blank' href='http://search.twitter.com/search?q=$1'>#$1</a>", $formatted_text);
$formatted_text = preg_replace('/\@(\w+)/', "<a target='_blank' href='http://twitter.com/$1'>@$1</a>", $formatted_text);
return $formatted_text;
}
函数格式\u tweet($str)
{
$formatted_text=preg_replace(“/”(\b(www.\http\:\/)\S+\b)/“,”,$str);
$formatted\u text=preg\u replace(“/\”(\w+/”,“”,$formatted\u text);
$formatted\u text=preg\u replace(“/\@(\w+/”,“”,$formatted\u text);
返回$U文本格式;
}
谢谢,Richard试试:

$formatted_text = preg_replace('/(?:^|\s)[#](\w+)/', "<a target='_blank' href='http://search.twitter.com/search?q=$1'>#$1</a>", $formatted_text);
$formatted_text = preg_replace('/(?:^|\s)[@](\w+)/', "<a target='_blank' href='http://twitter.com/$1'>@$1</a>", $formatted_text);
$formatted_text=preg_replace(“/(?:^|\s)[#](\w+/”,“”,$formatted_text);
$formatted_text=preg_replace(“/(?:^|\s)[@](\w+/”,“”,$formatted_text);
关于问号,我不知道。如果您发布一些代码,也许我可以帮您。

试试:

$formatted_text = preg_replace('/(?:^|\s)[#](\w+)/', "<a target='_blank' href='http://search.twitter.com/search?q=$1'>#$1</a>", $formatted_text);
$formatted_text = preg_replace('/(?:^|\s)[@](\w+)/', "<a target='_blank' href='http://twitter.com/$1'>@$1</a>", $formatted_text);
$formatted_text=preg_replace(“/(?:^|\s)[#](\w+/”,“”,$formatted_text);
$formatted_text=preg_replace(“/(?:^|\s)[@](\w+/”,“”,$formatted_text);

关于问号,我不知道。如果你发布一些代码,也许我能帮上忙。

谢谢,我会试试这个。至于问号,我只能在公共时间线中看到,它使用完全相同的代码。我在我的usertimeline中没有看到它们,但那是因为我没有发布太多(奇怪的东西)。不管怎样,我不知道它代表什么。至于更聪明的正则表达式,我还想去掉推文中真正的问号或感叹号,比如在一句话后发100次短信?你可以尝试
preg_替换(“~.[!”{2,}~,“?”,$tweet)
删除问号/感叹号。只有一件事不对,它没有捕捉到第二个正则表达式,因为我仍然可以看到www,并且它不会在目标空白处打开?谢谢,我将尝试这一个。至于问号,我只能在公共时间线中看到,它使用完全相同的代码。我在我的usertimeline中没有看到它们,但那是因为我没有发布太多(奇怪的东西)。不管怎样,我不知道它代表什么。至于更聪明的正则表达式,我还想去掉推文中真正的问号或感叹号,比如在一句话后发100次短信?你可以尝试
preg_替换(“~.[!”{2,}~,“?”,$tweet)以去除问号/感叹号。只有一件事是错误的,它没有捕捉到第二个正则表达式,因为我仍然可以看到www,并且它不会在目标空白中打开?