我把它放在很多文件的顶部:
--- title: This is a link type: link ---
阅读其中每一项并将其投入变量的最佳方法是什么?
我可以使用正则表达式捕获该段:/^(\-{3})(.*)(\-{3})/s
然后再次使用regex将每个段读入变量。
有更好的方法吗?有没有办法将正则表达式限制为只有三行,以防我在文档的后面某处---
?
答案 0 :(得分:1)
最好的方法是不使用/s
并使用明确的^
换行符$
锚点。如果你只有这两个变量,比如在你的例子中,你确实可以用一个正则表达式来实现:
preg_match_all(
'/
^ --- $ \s*
^ (\w+) : (.*) $ \s*
^ (\w+) : (.*) $
/mix',
$text, $result, PREG_SET_ORDER);
这将为您提供[1]和[3]中的变量名称以及[2]和[4]中的相关值。
答案 1 :(得分:0)
应该这样做:
<?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行。
答案 2 :(得分:0)
这有效:
$file = file("/file/path"); echo $title = array_pop(explode(": ",$file[1])); echo $type = array_pop(explode(": ",$file[2]));