Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/247.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP preg_replace不工作/奇怪的字符串类型/字符数不相加_Php_Preg Replace - Fatal编程技术网

PHP preg_replace不工作/奇怪的字符串类型/字符数不相加

PHP preg_replace不工作/奇怪的字符串类型/字符数不相加,php,preg-replace,Php,Preg Replace,我想从字符串中删除以下指定字符: < & " # % 人物的顺序无关紧要 字符串类型有点奇怪 测试字符串如下所示: var_dump($test): string(25) "A BCDEFG/<&"#%/HI" 如果要使用正则表达式对进行转义: <?php $displayName = 'A BCDEFG/<&"#%/HI'; $displayName = preg_replace('/[\<&"#%]/', '', $dis

我想从字符串中删除以下指定字符:

<
&
"
#
%
人物的顺序无关紧要


字符串类型有点奇怪

测试字符串如下所示:

var_dump($test): string(25) "A BCDEFG/<&"#%/HI" 

如果要使用正则表达式对
进行转义:

<?php
$displayName = 'A BCDEFG/<&"#%/HI';
$displayName = preg_replace('/[\<&"#%]/', '', $displayName);
echo($displayName);
?>
关于“字符数不相加”部分:过去一个字符等于一个字节是正确的,但你不能再指望这个了。我的猜测是var_dump()显示了字符串内部的字节数,这是您不应该关心的


在高级语言中处理字符串时,您确实应该专注于字符数,而忽略字符串的字节数。(当然也有例外;)

我只关心以下字符-@jensgram$displayName=preg\u replace('/\@matt\u tm)你是否正在替换我链接中的字符
@matt\u tm。之后如何使用
$displayName
($displayName,'嘿,@matt_tm,只是一个提示…如果你只关心某些字符,你应该在你的问题上提到这一点。通过阅读你的问题,我们不知道你到底想做什么,因此很难提供帮助。试着解释一下你有什么,预期的输出是什么,以及你得到了什么。啊,好的-lemme-cla主体中充斥着…displayName在class='A BCDEFG/(完全使用您建议的)之前使用var_export($displayName,TRUE)通过电子邮件输出(仅供参考)-脚本位于这样一个位置,我无法输出到屏幕您被
var_dump
愚弄了。它以某种方式输出与HTML兼容的数据(或者更可能的情况是:它稍后正在进行HTML编码)。请尝试使用
echo
,或者使用
file\u put\u contents
@Vegard将字符串写入文件中-您是对的!!displayName before=a BCDEFG/&“#%/HI
var_dump($test): string(25) "A BCDEFG/<&"#%/HI" 
$displayName = strtr($displayName, array('<' => '', '&' => '', '"' => '', '#' => '', '%' => ''));
 string(20) "A BCDEFG/lt;quot;/HI"
$displayName = preg_replace('/\<&"#%/', '', $displayName);
$displayName = preg_replace('|/\<&"#%/|', '', $displayName);
$displayName = str_replace(array('<', '&', '"', '#', '%'), '', $displayName);
    $displayName = str_replace(array('&lt;', '&quot;', '&', '#', '%'), '', $displayName);
<?php
$displayName = 'A BCDEFG/<&"#%/HI';
$displayName = preg_replace('/[\<&"#%]/', '', $displayName);
echo($displayName);
?>
A BCDEFG//HI