如何在PHP中完全替换所有特殊字符而不在结果中留下任何HTML实体
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了如何在PHP中完全替换所有特殊字符而不在结果中留下任何HTML实体,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1413字,纯文字阅读大概需要3分钟。
内容图文
![如何在PHP中完全替换所有特殊字符而不在结果中留下任何HTML实体](/upload/InfoBanner/zyjiaocheng/795/ac60187a074b46fba7137dccb7eb37ce.jpg)
我需要帮助我正在尝试创建的PHP替换函数.
基本上,我想FYLLY转换所有特殊字符,如á,é,í,ó,ú,ü,ñ,Á,É,Í,Ó,Ú,Ü,Ñ等等到这个:a,e,i, o,u,u,n,A,E,I,O,U,U,N.下面解释了为什么我说“FULLY convert”.
现在我只使用以下功能设法做到了这一半:
function clean_url($text){
$text = preg_replace('~&([a-z]{1,10})(acute|cedil|circ|grave|lig|orn|ring|slash|th|tilde|uml);~i', '$1', htmlentities($text, ENT_QUOTES, 'UTF-8'));
return $text;
}
在MySQL或浏览器中查看时,这一乍一看给了我想要的结果,所以在PHP中:
$string = "ábalos";
echo clean_url($string);
HTML页面源代码输出:Abalos.这看起来乍看之下.
但是,当我这样做
$string = "ábalos";
echo htmlentities(clean_url(($string));
HTML页面源代码输出:A& Acirc;?balos.
我希望能够用我的功能替换那部分& Acirc ;?.
怎么能实现这一目标?
解决方法:
我找到了这个函数(在这个帖子中:How to remove accents and turn letters into “plain” ASCII characters?):
function toASCII( $str )
{
return strtr(utf8_decode($str),
utf8_decode(
'???????¥μàá??????èéê?ìí??D?òó????ùú?üY?àáa?????èéê?ìí??e?òó????ùú?üy?'),
'SOZsozYYuAAAAAAACEEEEIIIIDNOOOOOOUUUUYsaaaaaaaceeeeiiiionoooooouuuuyy');
}
我测试了一些字符串并且它有效.例如 :
function toASCII( $str )
{
return strtr(utf8_decode($str),
utf8_decode(
'???????¥μàá??????èéê?ìí??D?òó????ùú?üY?àáa?????èéê?ìí??e?òó????ùú?üy?'),
'SOZsozYYuAAAAAAACEEEEIIIIDNOOOOOOUUUUYsaaaaaaaceeeeiiiionoooooouuuuyy');
}
$string = "ábalos";
echo toASCII($string);
将打印Abalos
内容总结
以上是互联网集市为您收集整理的如何在PHP中完全替换所有特殊字符而不在结果中留下任何HTML实体全部内容,希望文章能够帮你解决如何在PHP中完全替换所有特殊字符而不在结果中留下任何HTML实体所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。