Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
读取php文件并获取指定的数据_Php_Regex - Fatal编程技术网

读取php文件并获取指定的数据

读取php文件并获取指定的数据,php,regex,Php,Regex,我试图读取一个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) 我只需要每行的标题。 例如,从,(2,“间谍之桥”,“2015-11-26”,NULL,8.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)
我只需要每行的标题。 例如,从
,(2,“间谍之桥”,“2015-11-26”,NULL,8.1,NULL)
我只需要间谍的文本Bidge


我怎样才能做到这一点呢?

像这样的东西可能正是您想要的:

<?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
文件与以下内容一起使用:

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

当然,正则表达式本身可以优化,但这取决于您的实际情况。我只是试着勾勒出一般的方法

你可以使用基于正则表达式的方法,所以
preg_match()
。你读过任何TFM吗?所以我只是逐行读文件,然后在那一行使用preg_match()。试试这个哇,效果很好!为什么不直接使用
explode
?或者
fgetcsv
?@JayBlanchard当然也有可能,但你必须做一些后期处理。另外,
explode()
会在标题中的逗号上磕磕绊绊……就像一个符咒。谢谢
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