PHP XML ile çalışma

2 Cevap php

Ben tam olarak böyle bir dizesi vardır:

<info>
<m_album>value1</m_album>     
<m_cat>value2</m_cat>     
<cat_type/>     
<cat_permission>0</cat_permission>     
<m_img_thumb><!--[CDATA[urlvaluetoimage]]--></m_img_thumb>     
<m_img_medium><!--[CDATA[urlvaluetoimage]]--></m_img_medium>     
<m_img_large><!--[CDATA[urlvaluetoimage]]--></m_img_large>     
<m_hot>0</m_hot>     
<album_hot>0</album_hot>     
</info>

Nasıl değer PHP XML gibi bu etiketleri alabilirim? Bana yardım ve İlginiz için teşekkür ederim lütfen!

2 Cevap

<m_img_thumb><!--[CDATA[urlvaluetoimage]]--></m_img_thumb>

Bir yorum, metin değil içeriğinin herhangi bir şeklidir. Eğer gerçekten bir yorumun içeriğini okumak isterseniz, örneğin olabilir. Bir DOMDocument içine yüklemek ve:

$c= $doc->getElementsByTagName('m_img_thumb')[0]->firstChild->data;
$c= $c.substr(7, -2); // remove [CDATA[ and ]] from sides of string

Ama bu muhtemelen bir hatadır. Büyük olasılıkla bir CDATA bölümü kullanmak içindir:

<m_img_thumb><![CDATA[urlvaluetoimage]]></m_img_thumb>

gerçekten çok noktası sadece normal metin içeriğine göre CDATA bölümleri kullanarak var olmasa. (CDATA bölümleri genellikle yanlışlıkla onları XML-enjeksiyon sorunları hakkında endişelenmenize gerek kalmadan durur düşünüyorum yazarlar tarafından kullanılan Üst ucu:. No)

Her iki durumda da, örneğin öğe kullanarak metinsel içerik alabilirsiniz.

$c= $doc->getElementsByTagName('m_img_thumb')[0]->textContent;

Eğer PHP5 kullanıyorsanız SimpleXML extension içine bakmak isteyebilirsiniz. $ Xmlstr denilen bir dizeye yüklenir yukarıdaki dosyayı varsayarsak, bu gibi m_album değerini erişebilir:

$xml = new SimpleXMLElement($xmlstr);
echo $xml->m_album;