2

私は2つのファイルb.txtを持っています:

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

および a.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

BOMPHP経由で削除するには:

$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 に答える