什么是||符号表示 Preg_replace() PHP

what does || symbol means in Preg_replace() PHP

我正在阅读如何使 preg_replace()eval() 一样运行,如果我们放置修饰符/e 这是我的代码:

$fa= '/site'.$_GET['1st'];
$sh= $_GET['replace'];
$ka= 'admin the best over the rest';
echo preg_replace($fa,$sh,$ka);  

如果网站上的代码 运行,它看起来像:

www.site.com/a.php?1st=//e&replace=phpinfo();

但是有一个问题,修饰符 /e 后面不能跟任何东西所以如果我们把 || 就可以了像这样:

www.site.com/a.php?1st=||//e&replace=phpinfo();

所以我的问题是什么是||此处及其运作方式 ??

我使用 windows 10 和 php 版本 5.2

| 分隔正则表达式中的替代项;例如/abc|def|ghi/ 匹配 abcdefghi.

当您编写 1st=||//e 时,生成的正则表达式将为 /site||//e。其中两个备选方案是空字符串,它们将匹配每个字符前后的空字符串。所以这将为 $ka.

中的每个字符调用 phpinfo()

实际上,您应该得到一个错误,因为您在正则表达式的末尾有两个 /。应该是 1st=/e1st=||/e.