2016-02-02 2 views
1

У меня возникла проблема с этим значением получения.Как вырезать тег в строке с PHP

$simple="<TRAN_ID>17564_36428.1354_4159</TRAN_ID> 
      <TRAN_DATE>20160201</TRAN_DATE> 
      <TRAN_TIME>10:07:08</TRAN_TIME> 
      <ERROR_CODE>1</ERROR_CODE> 
      <ERROR_DESC>Not Input Policy</ERROR_DESC> 
      <POLICY_NBR></POLICY_NBR>"; 

Я хочу вырезать код с помощью PHP.

TRAN_ID = ? 
    TRAND_DATE = ? 
    ERROR_CODE = ? 
    ERROR_DESC = ? 

Как я могу это сделать. Извини я плохо знаю английский. Спасибо.

+0

также, я считаю, что вы или ищете substr или preg_replace –

+0

Это значение, полученное со стороны клиента .. совет или пример. – domTH

ответ

2

Вы можете использовать библиотеку SimpleXML в PHP, например, так:

, что я добавил < TRANS> открывающих и закрывающих тегов в строку
<?php 
    $str ="<TRANS><TRAN_ID>17564_36428.1354_4159</TRAN_ID><TRAN_DATE>20160201</TRAN_DATE><TRAN_TIME>10:07:08</TRAN_TIME><ERROR_CODE>1</ERROR_CODE><ERROR_DESC>Not Input Policy</ERROR_DESC><POLICY_NBR></POLICY_NBR></TRANS>"; 

    $transaction = simplexml_load_string($str); 

    echo $transaction->TRAN_ID.PHP_EOL; 
    echo $transaction->TRAN_DATE.PHP_EOL; 
    echo $transaction->TRAN_TIME.PHP_EOL; 
    echo $transaction->ERROR_CODE.PHP_EOL; 
    echo $transaction->ERROR_DESC.PHP_EOL; 
    echo $transaction->POLICY_NBR.PHP_EOL; 

Примечания.

Если данные всегда выглядят как образец, это должно работать нормально.

+0

Я должен был подумать об этом. Не могу поверить, что нет. –

1
<?php 
function getTextBetweenTags($string, $tagname) { 
    $pattern = "/<$tagname ?.*>(.*)<\/$tagname>/"; 
    preg_match($pattern, $string, $matches); 
    return $matches[1]; 
} 

$str = '<textformat leading="2"><p align="left"><font size="10">get me</font></p></textformat>'; 
$txt = getTextBetweenTags($str, "font"); 
echo $txt; 
?> 
Смежные вопросы