2017-04-10 9 views
-1

PHPファイルを読み込み、指定されたデータを別のPHPファイルにコピーしようとしています。私はそれぞれの行からタイトルを必要とするphpファイルを読み込んで指定したデータを取得

, (2, 'Bridge of Spies', '2015-11-26', NULL, 8.1, NULL) 
, (3, 'Everest', '2015-09-17', NULL, 7.3, NULL) 
, (4, 'The Martian', '2015-10-01', NULL, 8.2, NULL) 

PHPファイルは、このような複数のラインを持っています。 たとえば、, (2, 'Bridge of Spies', '2015-11-26', NULL, 8.1, NULL)から、私はスパイのビジットだけが必要です。

どうすればいいですか?このような

+0

'preg_match()'のように、正規表現に基づくアプローチを使用できます。 – arkascha

+0

TFMを読んだことがありますか? –

+0

私はファイルを1行ずつ読み込み、その行にpreg_match()を使用していますか? – Brian

答えて

0

何かが、おそらくあなたが探しているものです。

<?php 
$titles = []; 
$handle = fopen('./test.data', 'r'); 
if ($handle) { 
    while (($line = fgets($handle)) !== false) { 
     preg_match('/^,\s+\(\d+,\s+\'([^\']+)\',.*\)$/u', $line, $tokens); 
     if (!empty($tokens)) { 
      $titles[] = $tokens[1]; 
     } 
    } 
    fclose($handle); 
} 
print_r($titles); 

あなたは、このような内容のtest.dataファイルを使用する場合、上記のコードの出力は明らかに

Array 
(
    [0] => Bridge of Spies 
    [1] => Everest 
    [2] => The Martian 
) 

です:

bla bla bla 
, (2, 'Bridge of Spies', '2015-11-26', NULL, 8.1, NULL) 
, (3, 'Everest', '2015-09-17', NULL, 7.3, NULL) 
, (4, 'The Martian', '2015-10-01', NULL, 8.2, NULL) 
bla bla bla 

もちろん、正規表現自体は最適化できますが、あなたの実際の状況。私は一般的なアプローチをスケッチしようとしました。

+0

'explode'を使わないのはなぜですか?あるいは 'fgetcsv'? –

+0

@JayBlanchardもちろん、可能ですが、後処理を行う必要があります。また、 'explode()'はタイトルの中のカンマでつまずくでしょう... – arkascha

+0

魅力のように動作します。ありがとう! – Brian

関連する問題