テキストファイルの特定の列を選択します。私はPHPを使用しています。そのファイルの内容がphpを使用してテキストファイルから列を取得する方法
F: TC# Alpha 1 A Z
F: TC# Alpha 2 A Z
F: TC# Alpha 3 A Z
F: TC# Alpha 1 0 3
ある今、私はPHPを使用してそれを行う方法を私ができたコンテンツ3 A.列全体を選択したいですか?
テキストファイルの特定の列を選択します。私はPHPを使用しています。そのファイルの内容がphpを使用してテキストファイルから列を取得する方法
F: TC# Alpha 1 A Z
F: TC# Alpha 2 A Z
F: TC# Alpha 3 A Z
F: TC# Alpha 1 0 3
ある今、私はPHPを使用してそれを行う方法を私ができたコンテンツ3 A.列全体を選択したいですか?
ファイルのスペース区切りはありますか?ちょうどexplode()
を使用してください。
http://php.net/manual/en/function.explode.php
$line = 'Joe Jack Jill Jimmy Jerom Jolly Jecob Jason Jasper';
$cols = explode(' ', $line);
echo $cols[1]; // Will return "Jack"
$fh = fopen('textfile.txt', 'r'); // open input file
$line= fgets($fh); // get a line from the file
$second = (preg_split("/[\s]+/", $line))[1]; // get 2nd column in a split by whitespace
fclose($fh); // close file
あなただけの行の文字列3 A
の平野のoccuranceに選択したい場合は、この操作を行うことができます:
$search = "3 A";
$matches = array();
$fp = fopen("file.txt", "r");
while (!feof($fp)) {
$line = fgets($fp, 4096);
if (strpos($line, $search) !== false) {
$matches[] = $line;
}
}
print_r($matches); // voila
を3 A
ののoccuranceがでなければなりません場合特定の列、物事はより複雑になっています。各行(「行」)を、各「列」の要素を含む配列に分割する必要があります。
スペース文字(またはタブ?ファイルはどのように見えますか?)で文字列を爆発させることができますが、これは問題がある可能性があります。 3 A
が単一の「列」に含まれている場合、はになります。
固定幅テーブルの場合(例は次のようになります)、各フィールドの長さを見つけ、線を数個に切断します。 例:
// how long is each field?
$field_legths = array(20, 11, 22, 3);
$conditions = array();
$conditions[2] = "3 A"; // search "3 A" in 3rd field (index 2)
$matches = array();
$fp = fopen("file.txt", "r");
while (!feof($fp)) {
$line = fgets($fp, 4096);
// split line into row array
$cursor_pos = 0;
$row = array();
foreach ($field_legths as $length) {
$row[] = trim(substr($line, $curser_pos, $length));
$cursor_pos += $length;
}
// search row array for conditions
foreach ($conditions as $index => $search) {
if ($row[$index] == $search) {
$matches[] = $row;
break;
}
}
}
print_r($matches); // voila
実際の表のレイアウトを調整します。
// how long is each field?
$field_legths = array(20, 11, 2, 20, 3);
$conditions = array();
$conditions[2] = "3";
$conditions[3] = "A";
私は質問を更新しました:
3
とA
が異なる列を表す場合たとえば、この変更を行います。これをチェックしてください –