在的学习中,很多问题都需要我们在实践中不断的解决。我们在进行PHP正则表达式的匹配的时候,仅仅使用POSIX下的正则表式函数,很难进行复杂的匹配操作,那么该如何实现PHP正则表达式多行匹配呢。
例如,对整个文件(尤其是多行文本)进行匹配查找。使用ereg()对此进行操作的一个方法是分行处理。代码6.5的示例演示了ereg()如何将INI文件的参数赋值到数组之中。
代码6.5 文件内容的PHP正则表达式多行匹配
<ol class="dp-xml"> <li class="alt"><span><span class="tag"><span> ?php </span></span></span></li> <li> <span>$</span><span class="attribute">rows</span><span> = </span><span class="attribute-value">file</span><span>('php.ini'); //将php.ini文件读到数组中 </span> </li> <li class="alt"><span>//循环遍历 </span></li> <li><span>foreach($rows as $line) </span></li> <li class="alt"><span>{ </span></li> <li><span>If(trim($line)) </span></li> <li class="alt"><span>{ </span></li> <li><span>//将匹配成功的参数写入数组中 </span></li> <li class="alt"><span>if(eregi("^([a-z0-9_.]*) *=(.*)", $line, $matches)) </span></li> <li><span>{ </span></li> <li class="alt"><span>$options[$matches[1]] = trim($matches[2]); </span></li> <li><span>} </span></li> <li class="alt"><span>unset($matches); </span></li> <li><span>} </span></li> <li class="alt"><span>} </span></li> <li><span>//输出参数结果 </span></li> <li class="alt"><span>print_r($options); </span></li> <li> <span class="tag">?></span><span> </span> </li> </ol>
以上代码示例就是PHP正则表达式多行匹配的具体实现方法,希望大家看后能有所体会。