以下是我必须使用的内容:
$sample = '<VAR1>TEXT</VAR1><BR><NUM1>123456789</NUM1><BR><NUM2>9</NUM2><BR><NUM3>99</NUM3>';
以下是我最终想要的结果:
$VAR1 = 'TEXT';
$NUM1 = 123456789;
$NUM2 = 9;
$NUM3 = 99;
提前谢谢你,我确信解决方案很简单,但是我所尝试的所有内容到目前为止都没有用。
答案 0 :(得分:0)
这真的真的非常糟糕(我会在前面说)但它确实有用......
<?PHP
$a = '<VAR1>TEXT</VAR1><BR><NUM1>123456789</NUM1><BR><NUM2>9</NUM2><BR><NUM3>99</NUM3>';
preg_match_all("(\<.+\>(.+)\<\/.+\>)U",$a, $r);
// 4 TESTING //
echo '$r:<pre>';
print_r($r);
echo '</pre><hr>';
/*
$r Array
(
[0] => Array
(
[0] => <VAR1>TEXT</VAR1>
[1] => <BR><NUM1>123456789</NUM1>
[2] => <BR><NUM2>9</NUM2>
[3] => <BR><NUM3>99</NUM3>
)
[1] => Array
(
[0] => TEXT
[1] => <NUM1>123456789
[2] => <NUM2>9
[3] => <NUM3>99
)
)
*/
$demo = array();
$demo = array_combine ( array('VAR1'), sscanf($a, '<VAR1>%[^<]</VAR1>') );
foreach ($r[1] as $key => $value) {
if (strpos($value, '<NUM1>') !== false) {
$clean = str_replace("<NUM1>", "", $value);
$demo['NUM1'] = trim($clean);
}elseif (strpos($value, '<NUM2>') !== false) {
$clean = str_replace("<NUM2>", "", $value);
$demo['NUM2'] = trim($clean);
}elseif (strpos($value, '<NUM3>') !== false) {
$clean = str_replace("<NUM3>", "", $value);
$demo['NUM3'] = trim($clean);
}else{
}//end if
}//end foreach
// 4 TESTING //
echo 'DEMO:<pre>';
print_r($demo);
echo '</pre><hr>';
/*
$demo Array
(
[VAR1] => TEXT
[NUM1] => 123456789
[NUM2] => 9
[NUM3] => 99
)*/
?>