Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/318.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 如何将百分比字符替换为html符号?_Php_Str Replace - Fatal编程技术网

Php 如何将百分比字符替换为html符号?

Php 如何将百分比字符替换为html符号?,php,str-replace,Php,Str Replace,我尝试将百分比登录字符串替换为html“%;”。 我正在使用str_替换: $string = 'test10%'; str_replace('%', '%', $string); 但结果是&#37 如果您的文本是“%;”,并且您正在使用XMLWriter编写它,那么它将确保您的文本正确地表示为XML,并相应地将其编码为&#37。这是文本“%;”的正确XML表示形式 您试图做的是将已经编码的XML写入XML,为此您需要使用XMLWriter::w

我尝试将百分比登录字符串替换为html“
%;
”。 我正在使用str_替换:

$string  = 'test10%';
str_replace('%', '%', $string);

但结果是
&#37

如果您的文本是“%;”,并且您正在使用
XMLWriter
编写它,那么它将确保您的文本正确地表示为XML,并相应地将其编码为
&#37
。这是文本“%;”的正确XML表示形式

您试图做的是将已经编码的XML写入XML,为此您需要使用
XMLWriter::writeRaw
。但是,您需要确保传递给
XMLWriter::writeRaw
的所有文本都已正确地进行了XML编码,因为这允许您随意中断XML语法。看

。。。Web服务提供商要求获得的百分比为
和#37


FWIW,这是一个非常愚蠢的要求,并指出他们这边有一个坏掉的XML解析器。不得不说。

您是不是稍后用HTML编码这个结果,也许。。。?这里的代码肯定不会产生和
&。我将其发送给XMLWriterWell,“%;”用XML表示的是“&&;#37”,所以一切都很好。问题似乎出在xmlwriter中,但Web服务提供商要求获得百分比
%%
放入xmlwriter,它将作为
%
而不是
&37
发送。。。我已将str_replace移到
xmlwriter->outputMemory()之后,现在一切正常:)