[英]Insert string between quotation marks using RegEx
我允許用戶使用空白屬性值創建XML
元素,例如:
<crimes id="" total="" />
同時,我還從數據庫中檢索一個associative array
,用於填充XML指定的屬性。 該數組將如下所示:
array(
theft => 123,
burglary => 456
)
檢索數組后,我想使用該數組填充已傳遞的XML的屬性值。因此,作為示例,結合示例XML的第一個數組元素如下所示:
<crimes id="theft" total="123" />
有沒有一種方法可以在PHP
使用regular expression
在XML attributes
的引號之間插入array values
?
只有在您收到的XML標簽一致的情況下,這才起作用。 它們每次都必須相同,否則就沒有模式 ,而regex用於匹配模式 。
如果您的標簽將始終具有id
和total
,那么我可以為其編寫一個正則表達式。 但是,如果有時它們中有一個或另一個,那就太復雜了,您需要一個解析器。
盡管(如您所知)您最好為此使用SimpleXML或DOM,但這是您要求的自定義RegEx解決方案:
$list = array(
"theft" => 123,
"burglary" => 456
);
$template = '<crimes id="" total="" />';
foreach($list as $key => $value)
{
$s = preg_replace('/(id=")(")/', '${1}'.$key.'${2}', $template);
$s = preg_replace('/(total=")(")/', '${1}'.$value.'${2}', $s);
echo htmlentities($s)."<br>";
}
這是它的輸出:
<crimes id="theft" total="123" />
<crimes id="burglary" total="456" />
如果缺少“ id”或“ total”,則將其忽略。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.