【问题标题】:PHP Replace Dynamic url from stringPHP 从字符串中替换动态 url
【发布时间】:2014-12-31 05:02:47
【问题描述】:

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

我得到了动态字符串,看起来像这样: “你好,我叫杰弗里” 这很好用,但字符串也可以包含 url,如下所示: “你好http://wwww.google.nl 是一个非常好的网站。” 或者 “你好,你好吗https://soundcloud.com/theforeignexchangemusic/zo-manmade-sampler……” 或者 “看看这张照片http://instagram.com/p/xPiSn8Pmli/” 以此类推

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

【问题讨论】:

  • 您可以使用正则表达式搜索 URL,并使用所述正则表达式,将 URL 替换为您选择的单词。
  • 好吧,我仍然正确理解您的问题。所以,如果它像“你好wwww.google.nl 是一个非常好的网站”。那么您希望它是这样的“Hello Google 是一个非常好的网站。”?
  • 是的,甚至是“你好,一个网站是一个非常好的网站。”

标签: php string url replace


【解决方案1】:

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

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

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

For more reference

For Parsing your URL

【讨论】:

    【解决方案2】:

    如果有人正在寻找完全相同的东西,这里就是一个工作示例。

    <?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;
    ?>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多