第一件事。如果我选择不同的字符串而不是有问题的字符,这可以工作并且仍然可以工作。
以下代码用于查找文件中所需数据块的所有出现。每个块都以“3476 DSR”开头,以“Å”结尾。人物的具体情况如下:
DEC OCT HEX BIN 符号 HTMLNumber HTMLName 描述
197 305 C5 11000101 Å \Å\; \&戒指\; 上面带环的拉丁文大写字母 A
代码是:
$path = 'report';
$file = $_POST['select'];
$filepath = $path . DIRECTORY_SEPARATOR . $file;
$report = file_get_contents($filepath,'r');
$string1 = "3476 DSR";
$string2 = "Å";
preg_match_all("(".preg_quote($string1).".*?".preg_quote($string2).")s",$report,$matches);
echo '<div class="output">';
foreach ($matches[0] as $value) {
echo "<pre>";
echo $value;
echo "</pre>";
}
echo '</div>';
这工作正常,直到它没有,并且在调查中我发现扩展的 ascii 字符已被替换为看起来像八角形内的问号。换回原来的字符后,我仍然无法让它工作。如果我对 ascii 字符使用不同的字符串,则代码可以正常工作,但显然没有给出正确的数据。
很难找到与此相关的任何内容,我尝试使用上面的不同标识符但没有运气。
有人知道这里可能是什么问题吗?