php simplexml найти текст тега html внутри элемента xml - PullRequest
0 голосов
/ 07 марта 2012

Как установить переменную php для всего, что находится внутри тега <STRONG> ниже в xml:

<SAVED_EXPORT>
    <metatag_description>
    Some text here? The &lt;strong&gt; Cambro High-Impact 12" x 16" Dietary Tray&lt;/strong&gt; is the solution. Comprised of high-impact, ligh
    </metatag_description>
</SAVED_EXPORT>

<?    foreach( $xml as $SAVED_EXPORT ) {

        $header = $SAVED_EXPORT->metadescription;
        echo $header[0];
        } 
?>

Я хочу, чтобы оно просто выплевывалось: Cambro High-Impact 12 "x16 "диетический лоток вместо всего описания

Ответы [ 2 ]

0 голосов
/ 07 марта 2012

Используйте strpos и substr:

$string = 'Some text here? The &lt;strong&gt; Cambro High-Impact 12" x 16" Dietary     Tray&lt;/strong&gt; is the solution. Comprised of high-impact, ligh'; 

// Tag to look for
$tag       = 'strong';
$start_tag = '&lt;' . $tag . '&gt;';
$end_tag   = '&lt;/' . $tag . '&gt;';

// Determine position of search pattern <strong>
$begin = strpos($string, $start_tag);
// Add the lenght of the tag string:
$begin += strlen($start_tag);
// Determine position of search pattern </strong>
$end   = strpos($string, $end_tag);
// Calculate length:
$length = $end - $begin;

// echo the trimmed substring
echo trim(substr($string, $begin, $length));
0 голосов
/ 07 марта 2012

Попробуйте добавить следующее выражение вместо вашего эха:

if (preg_match("/\&lt\;strong\&gt\;(.*?)\&lt\;\/strong\&gt\;/si", $header[0], $match) == true)
{
    echo $match[1];
}
...