Php.
Hımm anladım. Yine dikkatsizliklerle doluyum :) işte kesinlikle çalışan kod :)
<?php
error_reporting(0);
$baslik='aaa';
$resim='a.jpg';
$link='http://www.google.com';
header("Content-type: text/xml\n\n");
echo'<?xml version="1.0" encoding="UTF-8"?>';
?>
<items>
<?php
while($i < 2){
++$i;
?>
<playlist_name>-= <?=$baslik;?> =-</playlist_name>
<channel>
<title><![CDATA[<?=$konu;?>]]></title>
<logo_30x30><![CDATA[ <?=$resim;?> ]]></logo_30x30>
<description><![CDATA[<img src="<?=$resim;?> ">]]></description>
<stream_url><![CDATA[<?=$link;?> ]]></stream_url>
</channel>
<?php } ?>
</items>
php
hocam dediğiniz gibi php kodu kesinlikle çalışıyor ama değişkenleri xml şablonuna yazdırmada bir problem var.
verdiğiniz kodu çalıştırdığımda aşağıdaki hatayı alıyorum
XML ayrıştırma hatası: iyi düzenlenmiş değil
Konum: http://localhost/playlist.php
Satır: 9,Sütun: 25: <playlist_name>-= <?=$baslik;?> =-</playlist_name>
ama bunun içerisinden <?=$baslik;?> değişkenini çıkardığımda
<items>
<playlist_name>-= =-</playlist_name><channel>
<title><?=$konu?></title>
<logo_30x30> <?=$resim;?> </logo_30x30>
<description><img src'=<?=$resim;?> '></description>
<stream_url><?=$link;?> </stream_url>
</channel>
<playlist_name>-= =-</playlist_name>
<channel>
<title><?=$konu?></title>
<logo_30x30> <?=$resim;?> </logo_30x30>
<description><img src'=<?=$resim;?> '></description>
<stream_url><?=$link;?> </stream_url>
</channel>
</items>
şeklinde ekran görüntüsü alıyorum.Burada iki hata var birincisi değişkenlerin içeriğinin yerlerine yazılmayıp olduğu gibi kendilerinin yazılması .
İkincisi ise
<playlist_name>-= =-</playlist_name>
satırının ikinci tekrarda yine basılması.Yani o satır xml nin başında bir kere yazılacak alttaki tekrarlarda o olmayacak.
<items>
<playlist_name>-= =-</playlist_name>
<channel>
<title><![CDATA[ ]]></title>
<logo_30x30><![CDATA[ ]]></logo_30x30>
<description><![CDATA[ ]]></description>
<stream_url><![CDATA[ ]]></stream_url>
</channel>
<channel>
<title><![CDATA[ ]]></title>
<logo_30x30><![CDATA[ ]]></logo_30x30>
<description><![CDATA[ ]]></description>
<stream_url><![CDATA[ ]]></stream_url>
</channel>
</items>
şeklinde yani.Her şeyi anladımda bu değişkenlerin neden içeriği boşluklara yazdırmamasını anlamadım.
Php
sebebi şu ;
php.ini ayarlarınızda short_open_tag=off şeklindedir yani
normalde sunucuya belgemizde bir php kodu olduğunu bildirmemiz için "<?php"
tagı ile "?>" arasına php kodları yazarız. Aynı işlevi "<?" ile "?>" görür fakat sizin php.ini ayar dosyanızda bu kısa tag tanımlaması kapalıdır. bu yüzden boş dönderiyor.
<?=$baslik;?> bu şekilde ekrana basılan yerleri
<?php echo $baslik; ?> şeklinde değiştirirseniz. sorun kalmaz.
birde mademki playlist birdefa yazıcak;
<playlist_name>-= <?=$baslik;?> =-</playlist_name> bu kısmı while döngüsü dışına alırsınız. sorun kalmaz.
Php
Hocam ellerinize sağlık tam istediğim şekilde oldu.Eğer sizi yormazsam son bir şey istiyecem.Çıktıyı ekranda değilde bir dosya şeklinde kayıt yaparak veremezmi.
Php
Şu şekilde bir kod işini görücektir sanırım. Yine denemeden paylaşıyorum ama hayırlısı :D
<?php
error_reporting(0);
$baslik='aaa';
$resim='a.jpg';
$link='http://www.google.com';
$xml=array();
$xml[]='<?xml version="1.0" encoding="UTF-8"?>
<items>
<playlist_name>-= '.$baslik.' =-</playlist_name>';
while($i < 5){
++$i;
$xml[]='<channel>
<title><![CDATA['.$konu.']]></title>
<logo_30x30><![CDATA[ '.$resim.']]></logo_30x30>
<description><![CDATA[<img src="'.$resim.'">]]></description>
<stream_url><![CDATA['.$link.']]></stream_url>
</channel>';
}
$xml[]='</items>';
if(file_put_contents('playlist.xml',implode("\n",$xml))) echo'playlisteniz oluşturuldu !';
?>
Hocam çok teşekkürler.Tam istediğim şekilde oldu.Allah'ta size gönlünüze göre versin.