我想用php更改變量值的標記值;更改值標記PHP
$tag = '<string name="abs__action_bar_home_description">My old title</string>';
$new_title = 'My new title';
結果:
<string name="abs__action_bar_home_description">**My new title**</string>
我想用php更改變量值的標記值;更改值標記PHP
$tag = '<string name="abs__action_bar_home_description">My old title</string>';
$new_title = 'My new title';
結果:
<string name="abs__action_bar_home_description">**My new title**</string>
您可以使用PHP函數的preg_replace。例如你here
<?php
$tag = '<string name="abs__action_bar_home_description">My old title</string>';
$new_title = 'My new title';
$pattern = "/(<string[\s\w=\"]*>)([\w\s]*)(<\/string>)/i";
$replacement = "$1".$new_title."$3";
$result = preg_replace($pattern, $replacement ,$tag);
echo $result;
?>
不錯,謝謝! – user2556254
嗨,當你有「?」時不起作用。例。 $ tag ='
您應該更改第6行代碼:'$ pattern =「/(
這裏是你如何能做到無正則表達式相同,但與DOMDocument和DOMXPath:
$tag = '<string name="abs__action_bar_home_description">My old title</string>';
$new_title = 'My new title';
$dom = new DOMDocument('1.0', 'UTF-8');
@$dom->loadHTML($tag, LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD);
$xpath = new DOMXPath($dom);
$links = $xpath->query('//string[@name="abs__action_bar_home_description"]');
foreach($links as $link) {
$link->nodeValue = $new_title;
}
echo $dom->saveHTML();
的'//string[@name="abs__action_bar_home_description"]'
的XPath意味着你要獲得string
標記,該標記的屬性name
的值爲abs__action_bar_home_description
。
如果加載HTML文件,你可以使用像
$dom->loadHTMLFile("http://www.example.com/content.html");
您是否嘗試過的東西? – Rizier123
你想操縱HTML代碼嗎?如果是的話,使用DOMDocument和DOMXPath,這個組合非常強大和高效。 –