preg_replace 和 twitter
我有这段代码可以在我的应用程序中创建可点击的链接:
$string = preg_replace('!(((f|ht)tp://)[-a-zA-Zа-яА-Я()0-9@:%_+.~#?&;//=]+)!i', '<a href="$1" rel="nofollow">$1</a>', $string);
$string = preg_replace('/@(\w+)/', '<a href="http://twitter.com/$1" rel="nofollow">$0</a>', $string);
$string = preg_replace('/#(\w+)/', '<a href="http://search.twitter.com/search?q=%23$1" rel="nofollow">$0</a>', $string);
上面的代码工作正常,但突然我看到一些链接,例如 http://twitter.com/#!/username
和 http: //domain.com/hello@all/
并破坏了一切,知道如何修复我的代码吗?
string var 直接来自 twitter API,下面是一个示例: $string = 'http://twitter.com/!#/metalica http://someurl.com/get@stuff/';
提前致谢。 编辑:添加字符串值。
i have this code to make clickable links into my app:
$string = preg_replace('!(((f|ht)tp://)[-a-zA-Zа-яА-Я()0-9@:%_+.~#?&;//=]+)!i', '<a href="$1" rel="nofollow">$1</a>', $string);
$string = preg_replace('/@(\w+)/', '<a href="http://twitter.com/$1" rel="nofollow">$0</a>', $string);
$string = preg_replace('/#(\w+)/', '<a href="http://search.twitter.com/search?q=%23$1" rel="nofollow">$0</a>', $string);
Above code is working fine, but suddenly Im seeing some links like http://twitter.com/#!/username
and http://domain.com/hello@all/
and breaks everything, any idea how to fix my code?
string var comes directly from twitter API, here is an example: $string = 'http://twitter.com/!#/metallica http://someurl.com/get@stuff/';
Thanks in advance.
Edited: added string value.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
为什么要篡改这些 URL?如果它们是直接链接,则保持原样即可!像这样的简单正则表达式模式:
将匹配字符串中的任何 URL。
所以,你的代码应该是:
Why are you tampering with those URL? If they are direct links, then just leave them as they are! Simple regex pattern like this:
will match any URL inside the string.
So, your code should be just: