如何从字符串中删除NULL字符

Ben*_*zar 19 php

我有一个PHP变量,其中包含一个表示XML结构的字符串.这个字符串包含非法字符,不允许我从字符串构建一个新的SimpleXMLElement对象.我没有办法要求内容的来源修改他们的响应,所以我需要在创建SimpleXMLElement对象之前对此字符串执行一些清理.

我相信导致问题的字符是 (0x00(00)HEX)字符,它位于此字符串XML的一个文本节点中.

删除可能破坏SimpleXMLElement对象的此字符或其他字符的最佳方法是什么.

Joe*_*oey 48

$text = str_replace("\0", "", $text);
Run Code Online (Sandbox Code Playgroud)

将替换$text字符串中的所有空字符.如果要进行多次替换,还可以为前两个参数提供数组.

  • `strip_tags`函数具有删除空字符的效果,但它也删除了HTML标记.有时它可能是一个更好的选择(当你想要删除HTML标签时). (4认同)
  • 我执行此操作时代码似乎只能工作:$ text = str_replace("�","",$ text); (2认同)

big*_*ill 9

trim()还将从源字符串的任一端(但不在其中)中删除空字符.

$text = trim($text);
Run Code Online (Sandbox Code Playgroud)

我发现这对套接字服务器通信非常有用,特别是在传递JSON时,因为空字符导致json_decode()返回null.

  • 可能是一个旧的答案,但对于我在 json 调试输出中遇到的 \u0000 问题,最简单的解决方法是(异常转换为数组,数组键包含 0 个字符。):) (2认同)