php string işlevi concatı

3 Cevap php
$contents  = "<?xml version='1.0' ?>
        <authed>1</authed>
            <book>read</book>";

im having a xml string böyle i want to add all the elements inside root tag

böyle

$contents  = "<?xml version='1.0' ?>
        <root>
        <authed>1</authed>
            <book>read</book>
        </root>";

3 Cevap

Sen recombine sonra ilk bölümünü (xml sürümü) ve ikinci kısmı (unsurlar) ayıklamak için substr kullanıp,

Kök öğesi ekleyerek yapmak istediğiniz tek şey ise, yapabileceği

$contents = str_replace("<?xml version='1.0' ?>", 
                        "<?xml version='1.0' ?><root>", 
                        $contents . '</root>');

Bu kendisi ile prolog artı içerik içinde kök öğesi ve ekteki kapanış kök etiketi yerini alacak. Ancak, <root> oot><aut aynidir olduğu anlamına gelir, teknik olarak, biz sadece düğümleri, burada rasgele dizeler değil ekleme olduğunu akılda tutmak. Dizeleri ile çalışırken açılı ayraçlar özel bir anlamı var. Biz semantik kendimizi tanımlanmış. Bu yukarıdaki gibi basit bir usecase için iyidir.

Eğer düğümleri ile çalışmak istiyorsanız, bir XML libraries of PHP kullanmayı düşünebilirsiniz.

Bu geçerli XML değildir. Bir XML dokümanı tam olarak tek bir kök elemanı vardır. Bazı geçerli XML çıktılar böylece Whatever generated that not-XML etiketi çorbası sabit olmalıdır.

Eğer sorun için soruyorsun Aksi takdirde, eğer string yerine her türlü kullanabilirsiniz.

$contents = preg_replace('#^<\\?.*?\\?>#', '$0<root>', $contents) . '</root>';