我在处理从文件转换的字符串时遇到问题,结果与直接输入该字符串的行为相同:
这是我的 test.html 文件:
<html>
<font class="editable">
This is editable section 1
</font>
<br><br><hr><br>
<font class="editable">
This is editable section 2
</font>
</html>
这是我的 php 文件:
<?php
//RETURN ARRAY OF RESULTS FOUND BETWEEN START & END IN STRING
function returnStartEnd($string,$start,$end){
preg_match_all('/' . preg_quote($start, '/') . '(.*?)'. preg_quote($end, '/').'/i', $string, $m);
$out = array();
foreach($m[1] as $key => $value){
$type = explode('::',$value);
if(sizeof($type)>1){
if(!is_array($out[$type[0]]))
$out[$type[0]] = array();
$out[$type[0]][] = $type[1];
} else {
$out[] = $value;
}
}
return $out;
};
// RETURN FILE CONTENTS AS A STRING
function readFileToVar($file){
$fh = fopen($file,'r') or die($php_errormsg);
$html = fread($fh,filesize($file));
return $html;
fclose($fh) or die($php_errormsg);
};
$file = 'test.html';
$html = readFileToVar($file);
// OR
//$html = '<html> <font class="editable"> This is editable section 1 </font><br><br><hr><br><font class="editable"> This is editable section 2 </font> </html>';
$go = 'editable">';
$stop = '<';
$arrayOfEditables = returnStartEnd($html,$go,$stop);
echo "<br>Result:<br>";
var_dump($arrayOfEditables);
?>
注意注释掉的 $html。它与 test.html 文件中应该(?)返回的内容相同。当尝试运行函数 returnStartEnd() 时,它在注释掉的字符串上按预期工作,但对从文件创建的字符串不起作用,返回一个空数组。
我错过了什么?谢谢。