1

我有一个包含以下内容的文件:

ServerName www.example.com ServerAlias example.com.com ServerAlias www.example.com.k.net ServerAlias example.com.net ServerAdmin "me.example.com" DocumentRoot "/web/docroot/0/example.com/htdocs " AssignUserId user1example.com user1example.com 包括 /www/vhost-include

我希望能够/web/docroot/0/example.com/htdocs从文件中提取完全匹配的内容。使用 bash grep 很容易,但是 - 我正在尝试在 PHP 中执行此操作。另请注意,出于安全原因,我们不允许从 PHP 执行 bash。

我努力了:

$loc = file_get_contents($path_to_file);
preg_match("\/web.*$", $loc, $f);
print_r($f); //nothing comes out
4

3 回答 3

1

You can try this regex:

DocumentRoot\s*\"(.*?)\"

It will look for a url after DocumentRoot enclosed in ".

于 2013-07-02T10:22:36.093 回答
1

you simply forgot the regex separators surrounding the expression (ie. //)

preg_match("/\/web.*$/", $loc, $f);
于 2013-07-02T10:22:38.760 回答
1

以下对我有用:

if (preg_match('#/web/[^"]+#', $repl, $arr))
   var_dump($arr[0]);

现场演示:http: //ideone.com/6Fagqe

于 2013-07-02T10:23:00.080 回答