Как найти конкретное значение из строки - PullRequest
2 голосов
/ 03 сентября 2010

У меня есть строка ( не xml )

<headername>X-Mailer-Recptid</headername>
<headervalue>15772348</headervalue>
</header>

, мне нужно получить значение 15772348, то есть значение headervalue.Как это возможно?

Ответы [ 4 ]

10 голосов
/ 03 сентября 2010

Используйте PHP DOM и пройдитесь по тегу headervalue, используя getElementsByTagName():

<?php
$doc = new DOMDocument;
@$doc->loadHTML('<headername>X-Mailer-Recptid</headername><headervalue>15772348</headervalue></header>');

$items = $doc->getElementsByTagName('headervalue');

for ($i = 0; $i < $items->length; $i++) {
    echo $items->item($i)->nodeValue . "\n";
}
?>

Это дает следующий вывод :

15772348

[EDIT]: Код обновлен, чтобы исключить предупреждение, отличное от HTML, о недопустимых тегах headername и headervalue, поскольку они не являются тегами HTML. Кроме того, если вы попытаетесь загрузить его как XML, он полностью не загрузится.

2 голосов
/ 03 сентября 2010

Для меня это выглядит как XML. В любом случае, если вы не хотите анализировать строку как XML (что может быть хорошей идеей), вы можете попробовать что-то вроде этого:

<?
$str = "<headervalue>15772348</headervalue>";
preg_match("/<headervalue\>([0-9]+)<\/headervalue>/", $str, $matches);
print_r($matches);
?>
1 голос
/ 20 июня 2014
       <?php
      $html = new simple_html_dom();
        $html = str_get_html("<headername>X-Mailer-Recptid</headername>headervalue>15772348</headervalue></header>");        // Use Html dom here 
        $get_value=$html->find("headervalue", 0)->plaintext;
        echo $get_value;

    ?>



  http://simplehtmldom.sourceforge.net/manual.htm#section_find
1 голос
/ 19 июня 2014

// найти строку коротким путем

function my_url_search($se_action_data)
    {
        // $regex = '/https?\:\/\/[^\" ]+/i';
           $regex="/<headervalue\>([0-9]+)<\/headervalue>/"
         preg_match_all($regex, $se_action_data, $matches);
         $get_url=array_reverse($matches[0]);
         return array_unique($get_url);
    }
echo my_url_search($se_action_data)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...