簡體   English   中英

使用RegEx在引號之間插入字符串

[英]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 expressionXML attributes的引號之間插入array values

只有在您收到的XML標簽一致的情況下,這才起作用。 它們每次都必須相同,否則就沒有模式 ,而regex用於匹配模式

如果您的標簽將始終具有idtotal ,那么我可以為其編寫一個正則表達式。 但是,如果有時它們中有一個或另一個,那就太復雜了,您需要一個解析器。

盡管(如您所知)您最好為此使用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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM