【问题标题】:How do I sanitize title URIs with PHP?如何使用 PHP 清理标题 URI?
【发布时间】:2010-11-28 18:46:09
【问题描述】:

我正在编写一个博客,我希望 URI 的标题类似于 stackoverflow 中的问题标题或 wordpress。
清理 URI 的规则是什么?
PHP中是否有一个已经制作的代码可以做到这一点?

提前致谢,
奥马尔

【问题讨论】:

    标签: php rest uri sanitization


    【解决方案1】:

    许多 CMS 已经实现了类似的功能,the one of Wordpress 已发布在 another question。一般来说,您可能也对question about this technique 感兴趣。

    【讨论】:

      【解决方案2】:

      通常,您会希望您的网址只有 0-9 和 a-z,并确保所有内容都是小写的。用破折号 (-) 替换空格,并去掉其余的乱码。

      差不多已经搞定了。

      【讨论】:

        【解决方案3】:

        这可能是用单个连字符替换任何非字母数字字符的最短方法:

        trim(preg_replace('/[^a-z0-9-]+/', '-', strtolower($str)), '-')
        

        【讨论】:

          【解决方案4】:

          Here's how drupal does it.

          万一网站宕机:

          <?php
          function pathauto_cleanstring($string)
          {
              $url = $string;
              $url = preg_replace('~[^\\pL0-9_]+~u', '-', $url); // substitutes anything but letters, numbers and '_' with separator
              $url = trim($url, "-");
              $url = iconv("utf-8", "us-ascii//TRANSLIT", $url); // TRANSLIT does the whole job
              $url = strtolower($url);
              $url = preg_replace('~[^-a-z0-9_]+~', '', $url); // keep only letters, numbers, '_' and separator
              return $url;
          }
          

          【讨论】:

          • 您可能想要发布完整的答案,而不仅仅是一个链接,以防链接页面出现故障。
          猜你喜欢
          • 1970-01-01
          • 2010-11-05
          • 2016-01-30
          • 1970-01-01
          • 2012-12-08
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多