Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/234.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 jquery html()丢失空格_Php_Jquery_Preg Replace - Fatal编程技术网

Php jquery html()丢失空格

Php jquery html()丢失空格,php,jquery,preg-replace,Php,Jquery,Preg Replace,我正在测试preg_replace函数,并从ajax函数返回处理后的数据(通过preg_replace处理数据后,通过htmlentities()进行处理): 我的测试字符串是: pr eg123 ~!@#$%^&*()-+={}|[]:;< >? "...,'/... 因此,多个空间丢失了。为什么.html()函数会减少空格?我怎样才能解决这个问题?谢谢从正则表达式中删除“\s+”并重试 “我正在努力确保这些角色不会被替换。”你是说真

我正在测试preg_replace函数,并从ajax函数返回处理后的数据(通过preg_replace处理数据后,通过htmlentities()进行处理):

我的测试字符串是:

pr     eg123 ~!@#$%^&*()-+={}|[]:;<            >?    "...,'/... 
因此,多个空间丢失了。为什么.html()函数会减少空格?我怎样才能解决这个问题?谢谢从正则表达式中删除“\s+”并重试

“我正在努力确保这些角色不会被替换。”你是说真的吗

所以我做了如下测试:

    $string = "~!@#$%^&*()-+={}|[]:;<            >?";
// $string = preg_replace('/[^a-zA-Z0-9]/', '', $string);

echo "'", $string, "'";
$string=“~!@$%^&*()-+={}|[]:<>?”;
//$string=preg_replace(“/[^a-zA-Z0-9]/”,“$string”);
回显“'”,$string“'”;
输出为

'~!@#$%^&*()-+={}|[]:;< >?'
“~!@$%^&*()-+={}|[]:;< >?'
如果您想在$string中的“”之间保留整个空格,我可以说没有办法,如果您想输出与输入相同的空格:有两种方法可以实现这一点:

1> 使用tage
2> 使用替换空白


你想要这些吗?如果你想保留所有?为什么要使用常规?

因为HTML就是这样工作的。。。要实际显示这些空格,请使用
。此链接可能会有所帮助。它提供了使用“pre”标记的想法,但不确定如何在这里应用它。这将是用户提交的文本。使用
标记或css
空白
似乎是保留空格的唯一方法。作为旁注,您的preg\u replace可以缩短:
preg\u replace('/[^]!-[^a-~\s]+/','',$string)删除此项会导致所有空格丢失。
pr eg123 ~!@#$%^&*()-+={}|[]:;< >? "...,'/...
    $string = "~!@#$%^&*()-+={}|[]:;<            >?";
// $string = preg_replace('/[^a-zA-Z0-9]/', '', $string);

echo "'", $string, "'";
'~!@#$%^&*()-+={}|[]:;< >?'