PHP: Nasıl gidilir

4 Cevap php

I) (simplexml_load_file yoluyla php bir xml yükleme ediyorum.

Ben o dosyayı yükleyin:

$xml = simplexml_load_file('flash/datas/datas.xml');

Ve erişim böyle benim içerik:

$descText = $xml->aboutModule->chocolaterie->desc

Yani benim uzun metin tek bir satır, çok iyi değil :-/ üzerinde ... açıklamaya gelen metin benim $ descText iyi tescilli olduğunu, ancak tüm <br/> metin yok

Bunu çözmek için nasıl biliyor musunuz? Bir $xml VAR yapmak için özel bir traitement var mı? Yoksa Someting?

Yardımlarınız için şimdiden teşekkür ederiz!

4 Cevap

O iş yapmak için iki yol.

The right one

not bu mağaza Do <br/>. Gerçek gerçek satırsonlarını Mağaza, örneğin

<desc>
    Line 1.
    Line 2.
</desc>

Sonra HTML etiketleri ile satırsonlarını yerine () nl2br kullanın. Bu açıklama, normal biçimlendirme içermiyor üstleniyor. Öyle ise başka bir yanıt önerildiği gibi, CDATA bölümleri kullanabilirsiniz.

The other one

$descText = strip_tags($xml->aboutModule->chocolaterie->desc->asXML(), '<br /><br/>');

this bir göz atın.

There is a way to get back HTML tags. For example:

<?xml version="1.0"?>
<intro>
    Welcome to <b>Example.com</b>!
</intro>

Bu PHP kodu:

<?php
// I use @ so that it doesn't spit out content of my XML in an
// error message if the load fails. The content could be
// passwords so this is just to be safe.
$xml = @simplexml_load_file('content_intro.xml');
if ($xml) {
    // asXML() will keep the HTML tags but it will also keep the parent tag <intro> so I strip them out with a str_replace. You could obviously also use a preg_replace if you have lots of tags.
    $intro = str_replace(array('<intro>', '</intro>'), '', $xml->asXML());
} else {
    $error = "Could not load intro XML file.";
}
?>

Eğer kaynak XML üzerinde kontrol varsa, bunu daha iyi yerine HTML ile XML karıştırma daha, bir CDATA ambalajında ​​yani karakter veri olarak açıklamasını saklamak için bulabilirsiniz.

Örneğin, yerine:

...
<desc>
    This is a description<br /> with a break in it
</desc>
...

Do ... gibi bir şey:

...
<desc>
<![CDATA[
    This is a description<br /> with a break in it
]]>
</desc>

Değil varsa Casidiablo diyor Ama, o zaman, XML gibi <desc> öğenin içeriğini kapmak gerekecek.

Daha iyi yeni hat karakter için BR etiketleri değiştirmek için aşağıdaki kodu kullanabilirsiniz.

preg_replace("/(\s*)+/", "\n", $input);

VEYA

Eğer "Htmlentities" için açıklama içeriği dönüştürmek ve ardından "htmlspecialchars'dan" geri açabilirsiniz