PHP从字符串替换动态URL

时间:2014-12-30 19:57:53

标签: php string url replace

我有一个机器人声音,可以将句子变成语音mp3文件。 但机器人的声音不能发音url,所以我想过滤掉网址。

我有动态字符串进来,看起来像这样: “你好,我的名字是杰弗里” 这工作正常,但字符串也可以包含网址,如下所示: “你好http://wwww.google.nl是一个非常好的网站。” 要么 “你好,你好https://soundcloud.com/theforeignexchangemusic/zo-manmade-sampler ......” 要么 “看一下这张照片http://instagram.com/p/xPiSn8Pmli/” 等等

如果一个字符串包含一个url,我想用一个单词替换url。 有人知道这样做的好方法吗? 因为字符串是动态的(长度,内容和位置),我觉得很难做到。 如果有人有个好主意,请告诉我! 非常感激。

2 个答案:

答案 0 :(得分:1)

最好的办法是使用RegEx来解析字符串以查看是否出现了URL。

使用RegEx然后找到基本域,然后发出声音。

/^(https?://)?([\da-z.-]+).([a-z.]{2,6})([/\w .-])/?$/ Regex for URLs

For more reference

For Parsing your URL

答案 1 :(得分:0)

如果有人在寻找完全相同的东西,这是一个有效的例子。

<?php
$hallo = 'Hey it works. http://onderbroekenlol.nl something behind the url.';
$str = preg_replace("/(?:https?:\/\/)?(?:[\w]+\.)([a-zA-Z\.]{2,6})([\/\w\.-]*)*\/?/", "a website", $hallo);
print $str;
?>