PHP

2017-12-05 21 views
0

으로는 preg_match와 XML에 특수 문자를 찾기 나는이 형식을 반환하는 XML이PHP

<row site_id="999" sale_id="49612" payment_type="MOD_TICKET" pay_payment_info="TICKET=49600" />

<!-- $line = trim($line); 
if(preg_match("/^<[^$]+\ \/>$/", $line)) 
{ 
    preg_match_all("/([^=<\s]+)=\"([^\"]+)\"/", $line, $m); 
    $result = array(); 
    foreach($m as $n) 
    --> 
다음과 같이 내가 는 preg_match를 사용하여 배열에 기록을 검색 할 수 있어요

그러나 이것은 작동하지만 XML이 다음과 같이 반환하는 경우

<row site_id="999" sale_id="49612" payment_type="MOD_TICKET" pay_payment_info="~$TICKET=49600" /> 

검색 내가 검색

에 두 문자 (~ $)를 추가하려면 어떻게 작동하지 않는

+3

XML을 구문 분석하려면 xml 파서를 사용해야합니다. 정규식이 아닙니다. 하지만 작동하지 않는 이유는 아마도 첫 번째 preg_match 일 것입니다. preg_match ("/^<[^$]+\ \/> $ /"- 이것은 $ 다음에없는 기호 수와 일치합니다.) 나에게 이해가되지 않습니다. –

+0

또는 그것으로부터 스스로를 제외하고 단지'DOMDocument' 또는'SimpleXML'을 사용하십시오 – Ghost

+0

@yu_sha 깨달음을 주셔서 감사합니다 – user1430825

답변

0

당신은 XML을

<?php 
$xml = '<row site_id="999" sale_id="49612" payment_type="MOD_TICKET" pay_payment_info="TICKET=49600" />'; 

$obj = simplexml_load_string($xml); 

echo "<pre>"; 
foreach($obj->Attributes() as $key => $val){ 
    print_r($key); 
    $val = (array) $val; 
    print_r($val[0]); 
} 

참조를 구문 분석 simplexml_load_string()을 사용할 수 있습니다 : http://php.net/manual/en/function.simplexml-load-string.php