为什么用PHP编写html文件时会停在'&'?

时间:2012-04-27 15:46:13

标签: php html

我有一个关于使用PHP编写HTML文件的问题。

我有这个功能:

function openHTML ($file) {
 if (file_exists($file)) {
 $handle = fopen($file, "r");
 $output = fread($handle, filesize($file));
  fclose($handle);
 return $output; // output file text
 }else{
 return "This file is not exists";
 }
}

function saveHTML ($file,$string) {
 $a = fopen($file, 'w');
 fputs($a,stripslashes($string));
 fclose($a);
 return "success";
}

当我使用openHTML时,它很好。但遗憾的是,在我使用openHTML()打开的文件中有一些&,然后我使用saveHTML()保存,但后来保存在&停顿的字符串或代码

示例:更新!
我用file.html打开空白openHTML(),然后我开始输入一些字符串:

<html>
<head>
</head>
<body>
This is my login page & user page
</body>
</html>

使用代码saveHTML()保存后:

<html>
<head>
</head>
<body>
This is my login page

最后丢失的代码。停滞在&

我使用fputsutf8_encodefwritefile_put_contents。仍未解决。

3 个答案:

答案 0 :(得分:1)

单个&符号在PCDATA部分无效。请改用&amp;

答案 1 :(得分:1)

    $output = htmlentities($output);

在你要保存的字符串上。

check it out here

它会将所有HTML实体更改为适用的字符。 在这种情况下你的&amp;将改为

    &amp;

答案 2 :(得分:0)

尝试使用fwrite()代替fputs()