【问题标题】:How to Format this type of URL in PHP?如何在 PHP 中格式化这种类型的 URL?
【发布时间】:2010-09-24 08:31:58
【问题描述】:

各位朋友,
我正在使用以下 API 获取 IMDB 的详细信息,http://www.deanclatworthy.com/imdb/?q=Star+Trek
当我使用以下 API 时,我得到的 URL 如下输出

http:\/\/www.imdb.com\/title\/tt0796366\/

怎么改成

http://www.imdb.com/title/tt0796366/

在 PHP 中?

【问题讨论】:

    标签: php regex url


    【解决方案1】:

    使用stripslashes:

    $url = 'http:\/\/www.imdb.com\/title\/tt0796366\/';
    $url = stripslashes($url);
    

    【讨论】:

      【解决方案2】:

      该 URL 已被转义 - 也就是说,它在某些其他字符前面添加了一个反斜杠字符,这可能会导致问题,例如,如果它们被放入 SQL 字符串中。

      PHP 有一个命令 stripslashes() 来删除这些转义字符。

      但是,PHP 自动添加斜杠的功能已经过时,现在已弃用。如果可能,您应该检查您的 PHP.ini 并关闭 magic_quotes 选项。这样您就不会再将斜杠添加到您的输入中,因此您不必删除它们。

      请注意,如果您将数据写入数据库,则需要在将其放入 SQL 字符串之前对其进行转义。但是你应该使用mysql_real_escape_string() 之类的东西,而不是magic_quotes 添加的斜线。

      【讨论】:

        【解决方案3】:
        $url = "http:\/\/www.imdb.com\/title\/tt0796366\/";
        $url = str_replace("\/","/",$url);
        

        这里的例子http://ideone.com/J44Q6

        【讨论】:

        • 奇怪的是,因为它有效(见上文),所以它被否决了 - 不是说它是最好的解决方案,而是它是一个不同的解决方案
        【解决方案4】:
        $url = str_replace('\', '', $url);
        

        【讨论】:

          猜你喜欢
          • 2016-09-14
          • 1970-01-01
          • 1970-01-01
          • 2023-03-07
          • 2017-07-24
          • 1970-01-01
          • 2011-02-12
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多