如何在PHP中阅读此内容?
我在很多文件的顶部都有这个: 读取这些数据并将它们放入变量的最佳方法是什么 我可以使用正则表达式捕获该段:如何在PHP中阅读此内容?,php,regex,Php,Regex,我在很多文件的顶部都有这个: 读取这些数据并将它们放入变量的最佳方法是什么 我可以使用正则表达式捕获该段:/^(\-{3})(.*)(\-{3})/s,然后再次使用正则表达式将每个片段读入变量 有更好的办法吗?有没有办法将regex限制为仅三行,以防我在文档后面的某个地方有-- <?php $file = file("/path/to/the/file"); $titleLine = explode(": ",$file[1]); $typeLine = explode(": ",$f
/^(\-{3})(.*)(\-{3})/s
,然后再次使用正则表达式将每个片段读入变量
有更好的办法吗?有没有办法将regex限制为仅三行,以防我在文档后面的某个地方有--
<?php
$file = file("/path/to/the/file");
$titleLine = explode(": ",$file[1]);
$typeLine = explode(": ",$file[2]);
$title = $titleLine[1];
$type = $typeLine[1];
echo "$title: $type";
?>
它只读取文件中的第2行和第3行。应该这样做:
<?php
$file = file("/path/to/the/file");
$titleLine = explode(": ",$file[1]);
$typeLine = explode(": ",$file[2]);
$title = $titleLine[1];
$type = $typeLine[1];
echo "$title: $type";
?>
它只读取文件中的第2行和第3行。此操作:
$file = file("/file/path");
echo $title = array_pop(explode(": ",$file[1]));
echo $type = array_pop(explode(": ",$file[2]));
$file=file(“/file/path”);
echo$title=array_pop(分解(“:”,$file[1]);
echo$type=array_pop(explode(“:”,$file[2]);
这项工作:
$file = file("/file/path");
echo $title = array_pop(explode(": ",$file[1]));
echo $type = array_pop(explode(": ",$file[2]));
$file=file(“/file/path”);
echo$title=array_pop(分解(“:”,$file[1]);
echo$type=array_pop(explode(“:”,$file[2]);
最好的方法是不要使用
/s
并使用显式^
换行$
锚定。如果你只有这两个变量,就像在你的例子中,你确实可以用一个正则表达式:
preg_match_all(
'/
^ --- $ \s*
^ (\w+) : (.*) $ \s*
^ (\w+) : (.*) $
/mix',
$text, $result, PREG_SET_ORDER);
这将为您提供[1]和[3]中每个变量的名称以及[2]和[4]中关联的值。最好的方法是不要使用
/s
并使用显式^
换行$
锚定。如果你只有这两个变量,就像在你的例子中,你确实可以用一个正则表达式:
preg_match_all(
'/
^ --- $ \s*
^ (\w+) : (.*) $ \s*
^ (\w+) : (.*) $
/mix',
$text, $result, PREG_SET_ORDER);
这将为您提供[1]和[3]中每个变量的名称,以及[2]和[4]中关联的值。可能有一种稍微快一点的方法,但我们所讨论的不会超过微秒。这很好。如果文件非常大,那么您可以使用strpos()将第一部分分块。可能有一种稍微快一点的方法,但我们谈论的不是超过微秒的任何内容。这很好。如果文件超大型,则可以使用strps()将第一部分分块。如果我正确读取了文档,则会将文档的全部内容读取到数组中,如果文件较大,这可能不是最佳选择。看,我对这个做了一些修改,以满足我的需要,但它很好。谢谢如果我正确地读取了文档,那么这会将文档的全部内容读取到数组中,如果文件很大,这可能不是最好的选择。看,我对这个做了一些修改,以满足我的需要,但它很好。谢谢