2

我有两个文件,b.txt:

&first = cjnk1 
&second = dcnksj2
&third = cd3
&fourth = cdln4

和一个.php:

<?php
$data=file_get_contents("b.txt");
$rows=explode("\n", $data);
foreach($rows as $row)
{
    $temp=explode(" = ",$row);
    $info[ltrim($temp[0],"&")]=$temp[1];
}
echo '<pre>';
print_r($info);
echo $info["&first"];
?>

输出是

Array
(
    [&amp;first] => cjnk1
    [second] => dcnksj2
    [third] => cd3
    [fourth] => cdln4
)

第一个索引有什么问题?即使我使用它,它也无法回声..

4

3 回答 3

0

尝试替换ltrim($temp[0],"&")ltrim($temp[0], "&\x00..\x1F");. 这将删除所有保留的 ASCII 字符 (0-31) 以及与号。

于 2013-05-18T08:30:41.893 回答
0

删除BOM通过 PHP:

$BOM = substr($txt, 0, 3);

if ( $BOM == pack("CCC", 0xEF, 0xBB, 0xBF) ) {
    $txt = substr($txt, 3);
}

更新

正如deceze指出的那样,这也应该可以正常工作(但我还没有检查过,如果有什么问题请告诉我)

$BOM = substr($txt, 0, 3);

/* "Double Quotes" are important */
if ( $BOM == "\xEF\xBB\xBF" ) {
    $txt = substr($txt, 3);
}
于 2013-05-18T08:35:36.340 回答
-1
foreach($rows as $row)
{
    $temp=explode(" = ",$row);
    $info[substr($temp[0], 1)]=$temp[1];
}
于 2013-05-18T08:32:40.247 回答