读取php文件并获取指定的数据
我试图读取一个PHP文件并将指定的数据复制到另一个PHP文件 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
, (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