首页 > 编程语言 >php 显示特殊字符,PHP处理特殊字符比对

php 显示特殊字符,PHP处理特殊字符比对

时间:2024-02-18 14:34:56浏览次数:29  
标签:PHP replace 空格 chr str 128 php 特殊字符

1.特殊字符转16进制

bin2hex($string) 将字符串转为16进制

'1—1 12 (223), 【33】'

1 对照 0x31 十进制为49

—对照e28094,e2的十进制是226,80的十进制是128,94的十进制是148

中文空格 对照 e38080,e3的十进制是227,80的十进制是128

最全的ASCII码对照表

'0d0a'是一個CRLF Windows換行符,如果想要替换,要使用"\r\n" (必须要使用双引号)

2.使用特殊字符的十进制处理特殊字符

<?php
// // ------0x01 处理需求:
// 第一组:空格替换为去掉,有小空格和大空格都要去掉;
// 第二组:—和-;
// 第三组:大小括号替换,统一成小括号。()()
// 第四组:斜杠替换,/替换/。
// 第五组:【替换为[,】替换为]。
// 第六组:英文字母大小写替换。
// 第七组:回车符、切换符替换为去掉。

// 将这些特殊字符处理后,再进行数据比对,判断是否合格

// // ------0x02 代码实现
// 实现思路,
// 读出特殊字符的二进制码, 然后针对二进制码,进行数据处理
$keyword = '1—1 12 (223), 【33】';

echo $keyword."\n";
echo "start cal------\n";
$arr_kwd = str_split($keyword);
foreach ($arr_kwd as $kwd) {
    echo $kwd . ',' . ord($kwd) . "    //ord() 函数返回字符串中第一个字符的 ASCII 值。
";
}

//处理特殊字符
function trimString($str){
    if(is_string($str)){
        //处理空格:
        $str = str_replace(chr(194).chr(160), '', $str); //特殊空格
        $str = str_replace(chr(227).chr(128).chr(128), '', $str); //特殊空格 中文空格
        $str = str_replace(chr(32), '', $str); //普通空格

        //处理\t
        $str = str_replace(chr(9), '', $str);

        //处理— 转为-
        $str = str_replace(chr(226).chr(128).chr(148), '-', $str);

        //处理()
        $str = str_replace(chr(239).chr(188).chr(136), '(', $str);
        $str = str_replace(chr(239).chr(188).chr(137), ')', $str);

        //处理 /
        $str = str_replace(chr(239).chr(188).chr(143), '/', $str);

        //处理 【】
        $str = str_replace(chr(227).chr(128).chr(144), '[', $str);
        $str = str_replace(chr(227).chr(128).chr(145), ']', $str);

        //处理回车换行
        $str = str_replace(chr(13).chr(10), '', $str);

        //英文字母转大写
        $str = strtoupper($str);
    }

    return $str;
}

$aaa = trimString($keyword);
var_dump($aaa);

function compareTirmString($str1,$str2){
    $str3 = trimString($str1);
    $str4 = trimString($str2);
    if($str3 == $str4){
        return true;
    }else{
        return false;
    }
}

?>

 参考:https://blog.csdn.net/weixin_42347535/article/details/115160144

最全的ASCII码对照表

标签:PHP,replace,空格,chr,str,128,php,特殊字符
From: https://www.cnblogs.com/mianbaoshu/p/18019254

相关文章

  • VS Code 使用 php cs fixer 扩展根据 psr 规范修复/格式化代码
    参考https://github.com/PHP-CS-Fixer/PHP-CS-Fixerhttps://www.cnblogs.com/huangtailang/p/6604124.html环境软件/系统版本说明WindowsWindows10专业版22H219045.4046phpphp-8.2.5-nts-Win32-vs16-x64vscode1.86.2phpcsfixerv0.3.11vs......
  • 蓝宝石留言本php版升级到v8.5了。
    演示地址:https://www.lanbaoshi.site/guestbookphp/下载地址:https://down.chinaz.com/soft/32477.htmlinux下的php用户可能无法上传或预览附件。解决方式:将upload目录,previewupload目录和include目录均设为755权限。2024-1-21 v8.51.美化了安装界面。2.进一步优化了自适应。......
  • URL编码算法:解决特殊字符在URL中的烦恼
    引言:URL编码算法是一种将URL中的特殊字符转换为特定格式的编码方式。它在网络传输中起到了保护数据安全与完整性的重要作用。本文将深入探讨URL编码算法的优点与缺点,并介绍它在Web开发、网络安全等方面的应用。URL编码解码|一个覆盖广泛主题工具的高效在线平台(amd794.com)h......
  • 第24天:安全开发-PHP应用&文件管理模块&显示上传&黑白名单类型过滤&访问控制
    #文件管理模块-上传-过滤机制1、无过滤机制2、黑名单过滤机制3、白名单过滤机制4、文件类型过滤机制 $_FILES:PHP中一个预定义的超全局变量,用于在上传文件时从客户端接收文件,并将其保存到服务器上。它是一个包含上传文件信息的数组,包括文件名、类型、大小、临时文件名等信息......
  • php调用sql server过程记录
    更新微软源,需要安装微软的底层库curlhttps://packages.microsoft.com/config/rhel/7/prod.repo>/etc/yum.repos.d/mssqlrelease.repo安装依赖底层库yuminstall-ymsodbcsqlmssql-toolsunixODBC-devel根据php版本选择对应的pdo_sqlsrv扩展版本,查询地址为http://pecl.ph......
  • PHP项目&TP框架&SQL&XSS&架构&路由&调试&写法
    开发基础-TP框架-入口&调试&路由&写法等参考手册-TP5开发手册-为了掌握了解框架首页文件看APP_PATH定义-为了后期分析核心代码全局搜索:THINK_VERSION,为了后期分析此版本是否存在漏洞。参考手册-本地代码案例对比,为了后期分析定位代码块或测试漏洞。配置文件开关(app_debug,a......
  • PHP项目&变量覆盖&反序列化&未授权访问&身份验证
    CNVD拿1day-验证&未授权-xhcms&Bosscms此种漏洞由于没有什么关键函数,所以需要通过功能点去进行测试。Bosscms未授权访问CNVD官网上搜索Bosscms未授权访问漏洞。根据描述,影响的是1.0版本。看到发送时间为21年12月29好,收录时间为22年1月18号。再去官网看版本更新的时间点,V1.0版......
  • PHP
    PHPPHP(全称:PHP:HypertextPreprocessor,即"PHP:超文本预处理器")是一种通用开源脚本语言。PHP脚本在服务器上执行。PHP文件PHP文件可包含HTML、CSS、JavaScript代码和PHP代码PHP代码在服务器上执行,结果以纯HTML形式返回给浏览器PHP文件的默认文件扩展名是.phpPHP功能PHP......
  • 3种策略巧妙化解PHP Trait成员属性冲突
    说明PHP语言本身可以用insteadof和as关键字解决多个trait同名成员方法冲突的问题,但是貌似没有直接解决同名成员属性冲突的方案。虽然属性名冲突极少发生,但是不代表不会发生。如果是自定义trait可以复制旧trait文件到新trait,改新文件的成员属性名,引用新trait。直接更改原trai......
  • php,用touch 修改文件时间
     touch($path,$fc_time,$fc_time);echo"\n$path已经被建立,并且重置了修改时间和访问时间\n";echo"\n如果是windows系统,将会执行以下命令重置该文件的建立时间\n";if(PHP_OS==='WINNT'){$path=str_replace('/','\\......