如果我有来自Twitter的一串文字,例如:
$string = "This is a link http://t.co/252351ga to follow.";
如何解开链接,并按如下方式重新插入原始字符串:
$new_string = "This is a link http://www.example.org/article/23534 to follow.";
答案 0 :(得分:2)
这是一个由两部分组成的问题。首先,您需要一个正则表达式来查找和提取URL。为简单起见,最好在那里使用preg_replace_callback。 (如果使用搜索,你会发现任意数量的更好的正则表达式。)
= preg_replace_callback('#http://\S+#', "replace_url_callback", $html)
其次,您要么使用缩短的URL扩展服务/ API,要么自己请求URL并检查响应中的重定向或相应元标记。 (例如:http://jamiethompson.co.uk/web/2010/05/18/expanding-short-urls-with-php-expand_url-php-function/ - 忘记我最近读到的服务名称.. 没关系,它简称为“LongURL.org”。没有附属。)
答案 1 :(得分:1)
您可能希望使用类似preg_replace的内容,并使用模式匹配网址并将匹配替换为您自己的网址。
修改强> 你可以在这里找到一个好的URL正则表达式: http://flanders.co.nz/2009/11/08/a-good-url-regular-expression-repost/
然后按如下方式使用:
$string = "This is a link http://t.co/252351ga to follow.";
$pattern = ''; //the pattern from the link
$replacement = 'http://www.example.org/article/23534';
echo preg_replace($pattern, $replacement, $string);