$behivott = Sorszam::find()->with('ablak')
->orderBy(['behivas_datum' => SORT_DESC])
->limit(1)
->all();
$sorszamok = Sorszam::find()->with('ablak')
->orderBy(['behivas_datum' => SORT_DESC])
->andWhere(['>', 'behivas_datum', 'nyomtatas_datum'])
->limit(4)
->offset(1)
->all();
$reklam = Reklam::find()->all();
return $this->render('generatePage', [
'sorszamok' => $sorszamok,
'reklam' => $reklam,
'behivott' => $behivott,
]);
如何让替换工作?
预期产出:
my $string = "<name>
POWERDOWN_SUPPORT
</name>
<bool>
<value> true </value>
</bool>";
if ($string=~ s/POWERDOWN_SUPPORT<\/name><bool><value>.*?<\/value>/<false>/ims) {
print "$string\n";
}
答案 0 :(得分:1)
使用XML感知工具,使用正则表达式解析XML很难并且容易出错。
例如,xsh,XML::LibXML的包装:
open file.xml ;
my $v = //name[normalize-space(.)='POWERDOWN_SUPPORT']/following-sibling::bool/value[normalize-space(.)='true'];
set $v/text() 'false' ;
save :b ;
答案 1 :(得分:1)
这可能有效:
s/(POWERDOWN_SUPPORT\s*?<\/name>\s*?<bool>\s*?<value>).*?(<\/value>)/$1 false $2/s