0

単純なテキスト ファイルがあります (以下を参照)。

abc|1356243309
zzz|1356239986
yyy|1356242423

| の前のすべての名前を単純に抽出したい。したがって、出力は次のようになります。

abc
zzz
yyy

以下は、私が使用しようとした文字列です。file('visitornames.txt') なども試しました。何が間違っているのかわかりません:(。多くのことを試しました。

$string = file_get_contents('visitornames.txt');
$names = explode('|', $string);
foreach($names as $key) {

echo $key . '"<br/>';

}

エラーはありませんが、正しく実行されていません。

4

2 に答える 2

5

file_get_contents の代わりに file-function を使用します。すべての行が独自のアイテムである配列としてファイルを返します。次に、ファイル コンテンツ配列を foreach できます。探している変数は行の最初の部分です。そのため、$names[0] をエコーすることができます。

$file = file('visitornames.txt');
foreach ($file AS $line) {
    $names = explode('|', $line);
    echo $names[0] . '<br/>';
}
于 2012-12-23T06:39:30.980 に答える
0

関数を使用してファイルのすべての行を抽出しfile、爆発の最初の部分をそれぞれ取得して結果に割り当てることができます。

$names = array();
foreach (file('visitornames.txt') as $line)
{
    list($names[]) = explode('|', $line, 2);
}

または、SplFileObject似ているものがありますが、それからより簡単に拡張できます。

class Names extends SplFileObject
{
    public function current() {
        list($name) = explode('|', parent::current(), 2);
        return $name;
    }
}

$names = new Names('visitornames.txt');

foreach ($names as $name)
{
    echo $name, "<br />\n";
}
于 2012-12-23T06:44:58.443 に答える