Php 预匹配不分割一个结果

Php 预匹配不分割一个结果,php,regex,preg-match,Php,Regex,Preg Match,Hi此代码应将所有段放入一个数组中 $dir = "../www.cms.actwebdesigns.co.uk2/logged.php"; #$dir = "../../logged.php"; $str = base64_encode(htmlspecialchars(preg_replace("#(?:\s\s+)|(?:\n)|(?:\t)|(?:\r)#", " ", file_get_contents($dir)))); $dataToAdd = array(); for

Hi此代码应将所有段放入一个数组中

    $dir = "../www.cms.actwebdesigns.co.uk2/logged.php";
#$dir = "../../logged.php";

$str = base64_encode(htmlspecialchars(preg_replace("#(?:\s\s+)|(?:\n)|(?:\t)|(?:\r)#", " ", file_get_contents($dir))));
$dataToAdd = array();

for($x=0; true; $x++)
{
    if(preg_match("#(".base64_encode("<?php ").")((?!(".base64_encode("?> ").")).)*#is", $str, $match))
    {
        $dataToAdd[] = $match[0].base64_encode("?> ");
        $PQmatch = preg_quote($match[0].base64_encode("?> "), "#");
        $str = preg_replace("#".$PQmatch."#is", "", $str, 1);
    }
    else
    {
        break;
    }
}

$z=1;

foreach($dataToAdd as $data)
{
    echo "<xmp>".$z."----->>> ".base64_decode($data)."<br /></xmp>";    
    $z++;
}

//1----->>> &lt;?php include(&quot;scripts/php/auth.php&quot;); include(&quot;scripts/php/sessions.php&quot;); ?&gt;<br />
//2----->>> &lt;?php if($VERIFICATION!==1) { ?&gt;<br />
//3----->>> &lt;?php echo $WEBSITE; ?&gt;<br />
//4----->>> &lt;?php } ?&gt; &lt;/p&gt; &lt;/div&gt; &lt;div class=&quot;contentBlock&quot;&gt; &lt;h2&gt;ACT Web Designs Group&lt;/h2&gt; &lt;p&gt;&lt;a href=&quot;http://www.actwebdesigns.co.uk&quot; title=&quot;link to ACT Web Designs Home&quot;&gt;www.actwebdesigns.co.uk&lt;/a&gt;&lt;br /&gt; &lt;a href=&quot;http://hosting.actwebdesigns.co.uk&quot; title=&quot;link to ACT Web Designs Hosting Solutions&quot;&gt;www.hosting.actwebdesigns.co.uk&lt;/a&gt; &lt;a href=&quot;http://www.plugnplaycms.co.uk.co.uk&quot; title=&quot;link to the home of plug n play cms&quot;&gt;www.plugnplaycms.co.uk&lt;/a&gt;&lt;/p&gt; &lt;/div&gt; &lt;/div&gt; &lt;div id=&quot;mainBodyRight&quot;&gt; &lt;?php if(isset($_GET['msg']) &amp;&amp; !empty($_GET['msg'])) { echo &quot;&lt;div class=\&quot;contentBlock\&quot;&gt;\n&quot;; echo &quot;&lt;h2&gt;&quot;.$_GET['h2'].&quot;&lt;/h2&gt;&quot;; echo &quot;    &lt;p style=\&quot;color:&quot;.$_GET['color'].&quot;\&quot;&gt;&quot;.$_GET['msg'].&quot;&lt;/p&gt;\n&quot;; echo &quot;&lt;/div&gt;\n&quot;; } if($VERIFICATION==0) { issetJava(&quot;Your account needs verifying.&quot;, &quot;javascript&quot;, &quot;Authorisation&quot;, &quot;red&quot;); } elseif($VERIFICATION==1) { include(&quot;pageIncludes/install.php&quot;); } elseif($VERIFICATION==2) { include(&quot;pageIncludes/mainPage.php&quot;); } ?&gt;<br />

?>  
$dir=“../www.cms.actwebdesigns.co.uk2/logged.php”;
#$dir=“../logged.php”;
$str=base64_encode(htmlspecialchars(preg#替换(“#(?:\s\s+))(?:\n)|(?:\t)|(?:\r)#“,”,文件获取内容($dir));
$dataToAdd=array();
对于($x=0;true;$x++)
{
if(preg#u match(“.base64_encode(“?php”)”)((?!(“.base64_encode(“?”)))*#is“,$str,$match))
{
$dataToAdd[]=$match[0]。base64_编码(“?”;
$PQmatch=preg_quote($match[0]。base64_编码(“?”),“#”);
$str=preg_replace(“#”。$PQmatch。”#is“,”,$str,1);
}
其他的
{
打破
}
}
$z=1;
foreach($datatoaddas$data)
{
回声“$z.”---->>>”.base64_解码($data)。“
”; $z++; } //php包括(“scripts/php/auth.php”);包括(“scripts/php/sessions.php”)
//2----->>?php if($VERIFICATION!==1){?
//3----->>?php echo$网站;?
//4------>>?php}/p/div div class=“contentBlock”h2ACT网页设计组/h2 pa href=”http://www.actwebdesigns.co.uk“title=”链接到ACT网站设计主页“www.actwebdesigns.co.uk/abr/a href=”http://hosting.actwebdesigns.co.uk“title=”链接到ACT网站设计托管解决方案“www.Hosting.actwebdesigns.co.uk/a href=”http://www.plugnplaycms.co.uk.co.uk“头衔=“指向即插即用cms主页的链接”www.plugnplaycms.co.uk/a/p/div/div div id=“mainBodyRight”?php if(isset($\u-GET['msg'])空($\u-GET['msg']){echo“div class=\”contentBlock\”\n“echo”h2.$\u-GET['h2']。/h2“/h2”echo“p-style=”color:.$\u-GET['color']。”。“$\u-GET'msg'].”echo']。”/p\n;“echo”验证($u-GET'msg'=”java=”0)您的帐户需要验证。“,”javascript“,”授权“;}elseif($VERIFICATION==1){include(“pageIncludes/install.php”);}elseif($VERIFICATION==2){include(“pageIncludes/mainPage.php”);}?
?>

最后一个输出(4)应该分成4或5个结果,但不是。没有人知道为什么???

基本上,你的整个方法是由相互斗争的疯狂层组成的。我这样做了,它起作用了:

<?
$file = '<?php include("scripts/php/auth.php"); include("scripts/php/sessions.php"); ?><?php if($VERIFICATION!==1) { ?><?php echo $WEBSITE; ?><?php } ?> </p> </div> <div class="contentBlock"> <h2>ACT Web Designs Group</h2> <p><a href="http://www.actwebdesigns.co.uk" title="link to ACT Web Designs Home">www.actwebdesigns.co.uk</a><br /> <a href="http://hosting.actwebdesigns.co.uk" title="link to ACT Web Designs Hosting Solutions">www.hosting.actwebdesigns.co.uk</a> <a href="http://www.plugnplaycms.co.uk.co.uk" title="link to the home of plug n play cms">www.plugnplaycms.co.uk</a></p> </div> </div> <div id="mainBodyRight"> <?php if(isset($_GET[\'msg\']) && !empty($_GET[\'msg\'])) { echo "<div class=\"contentBlock\">\n"; echo "<h2>".$_GET[\'h2\']."</h2>"; echo "    <p style=\"color:".$_GET[\'color\']."\">".$_GET[\'msg\']."</p>\n"; echo "</div>\n"; } if($VERIFICATION==0) { issetJava("Your account needs verifying.", "javascript", "Authorisation", "red"); } elseif($VERIFICATION==1) { include("pageIncludes/install.php"); } elseif($VERIFICATION==2) { include("pageIncludes/mainPage.php"); } ?>';

$str = preg_replace("#(?:\s\s+)|(?:\n)|(?:\t)|(?:\r)#", " ", $file);
$dataToAdd = array();

while(preg_match("#(<\?php .*?\?>)#is", $str, $match)) {
    $dataToAdd[] = $match[1];
    $PQmatch = preg_quote($match[1], "#");
    $str = preg_replace("#".$PQmatch."#is", "", $str, 1);
}

$z=1;
foreach($dataToAdd as $data) {
    echo "<xmp>".$z."----->>> ".$data."<br /></xmp>\n";
    $z++;
}
?>