我正在寻找一种方法来将我的slug恢复到正常文本,就像wordpress一样
在wordpress中有一个功能:
apply_filters('editable_slug',$ slug)
我搜索所有相关文件以查找此功能的功能,但无法理解。
正如ypu可能知道的那样,用正常文本制作一个slu is是一件容易的事,但是当它被转换时,对于像阿拉伯语这样的Utf-8语言,单词将被改为不可读的unicodes。
e.g。 :
http://localhost/page/%d8%a7%d9%84%d9%84%d9%87
你知道这个函数在wordpress中是如何工作的吗?
apply_filters('editable_slug',$ slug)
以及如何在我自己的php项目中做同样的事情?
答案 0 :(得分:1)
查看这个问题:Unicode characters in URLs以获得一些好的背景。
您显示的网址基本上看起来还不错 - 这是所讨论的阿拉伯字符的正确百分比编码表示。
您应该能够在网页上以适当的阿拉伯语显示它们。复制+粘贴将为您提供URLencoded表单,这是一件好事,因为这样,您的永久链接也可以在非UTF-8语言的客户端中使用。
答案 1 :(得分:1)
在百分比编码的表单上调用rawurldecode - 这将为您提供UTF-8编码的文本。如果你的网页编码是UTF-8,你只需要调用htmlspecialchars($ str,ENT_NOQUOTES,'UTF-8')。
示例:
$str = rawurldecode('%d8%a7%d9%84%d9%84%d9%87');
echo htmlspecialchars($str, ENT_NOQUOTES, 'UTF-8');