把一个数组写入配置文件,&符号为什么变成了&

WBOY
Freigeben: 2016-06-20 12:54:37
Original
1179 人浏览过

$config_arr = var_export($configdata,true);
$config_txt = " file_put_contents( 'config.ini.php', $config_txt);


$config_arr是一个数组,数组值中有&符号,把它写入到config.ini.php后,&符号变成了&

有办法让它不变吗?


回复讨论(解决方案)

这是不可能的,应该是你一开始就做了 html 转义

$a = array('a' => '&abc');$s =  var_export($a, 1);echo $s;
Nach dem Login kopieren
array (  'a' => '&abc',)
Nach dem Login kopieren

可能写入前你的数组中的&就是实体了。print_r($configdata); 在源码下看一下就知道了。

你在之前已经转义了。

可以用htmlspecialchars_decode转回来。
http://php.net/manual/en/function.htmlspecialchars-decode.php

写入之前我用print_r输出的结果是这样:


写入文件后的结果是这样:


这是源代码:

写入前没有进行html转换啊

这是源代码

打印出来后,浏览器中查看源码才能知道有没有转换。

这个问题解决了,是接收参数的时候进行字符转义了
现在还有个问题:
configdata数组中有字符反斜杠 \ ,经过这一句后
$config_arr = var_export($configdata,true);

写入到配置文件中后反斜杠变成了\\ 怎么解决

#4 的图一是在 html 方式下的显示结果
你 右键--查看源文件 才能看到真实的数据
或者在打印前先输出 

 标记 <br> echo '<xmp>'; <br> print_r($config_arr); <p class="sougouAnswer"> </p> <p class="yy"> 这个问题解决了,是接收参数的时候进行字符转义了 <br> 现在还有个问题: <br> configdata数组中有字符反斜杠 \ ,经过这一句后 <br> $config_arr = var_export($configdata,true); <br> <br> 写入到配置文件中后反斜杠变成了\\ 怎么解决 </p> <br> <br> stripslashes() 用这个方法转回去。
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!