PHP-preg_replace和str_replace仅在foreach内部替换一次
我有一个foreach,它使用Glob函数来获取一些.htm文件,最后将这些内容放在一个echo中 我试图用从每个.htm文件名中提取的一些数据替换所有这些.htm文件中的一个特定短语 所以PHP-preg_replace和str_replace仅在foreach内部替换一次,replace,preg-replace,str-replace,glob,Replace,Preg Replace,Str Replace,Glob,我有一个foreach,它使用Glob函数来获取一些.htm文件,最后将这些内容放在一个echo中 我试图用从每个.htm文件名中提取的一些数据替换所有这些.htm文件中的一个特定短语 所以 $juzgado_radicado生成一个类似-->004 $year\u radicado生成一个类似-->2015 $radicado\u radicado生成一个类似-->00911 这些数字随着获得新文件名的迭代而变化 但在最后,我使用preg_replace或str_replace来更改每个.ht
$juzgado_radicado
生成一个类似-->004
$year\u radicado
生成一个类似-->2015
$radicado\u radicado
生成一个类似-->00911
这些数字随着获得新文件名的迭代而变化
但在最后,我使用preg_replace
或str_replace
来更改每个.htm文档中的一个短语,但不是替换每个迭代中的数字,我只在所有替换中得到相同的结果。所以我在所有的.htm文件中都会得到类似“00911”的东西,它必须是类似“00911”和“00577”的例子
我不知道为什么preg\u replace
和str\u replace
在foreach
循环中有这种行为
$directory2=“/Applications/XAMPP/xamppfiles/htdocs/tecnojuridica/finalizado/”;
$array_filename=glob($directory2.*.htm”);
$string='';
foreach($array\u filename作为$filename)
{
$xml\u file=file\u get\u contents($filename,file\u TEXT);
preg_match('/[0-9]{23}/',$filename,$match);
$radicado=$match[0];
// 002
$juzgado_radicado=substr($radicado,-14,3);
// 2015
$year_radicado=substr($radicado,-11,4);
// 00958
$radicado_radicado=substr($filename,-7,5);
//Dom对象
$dom=新的DOMDocument('1.0','utf-8');
$dom->xmlStandalone=true;
$dom->loadHTML($xml\u文件);
$content_node=$dom->getElementById(“divrandom”);
$mega=$dom->saveXML($content\u node);
$string2=preg_replace(“/Datos del Proceso/”、“$juzgado_radicado.”、$year_radicado.”、$radicado_radicado.”、$mega);
$string.=$mega.,';
}
回声utf8_解码($string2);
提前感谢。我找到了答案:您必须用Php
Dom文档
对象替换foreach循环的at-star
如果您试图替换Dom对象,可能会失败,因为preg\u replace
的str\u replace
无法使用不同的替换数据进行所有迭代