Neden küçük bir PHP komut dosyası çalışmıyor?

0 Cevap

Ben bu formatta girilen bilgileri alır bir senaryo yazıyorum:

John Smith
123 Fake St
Riverwood, 11234
http://google.com

ve dönüşüyor

<location id='1'>
   name='John Smith',
   address='123 Fake St',
   city='Riverwood',
   zip=' 11234',
   website='http://google.com'
</location>

İşte kod:

$locations = $_POST['locations'];
$data = explode("\n", $locations);
$dataBlocks = explode("\n\n", $locations);
$num = 1;

for ($i=0; $i<count($dataBlocks); $i++) {

    $name = $data[0];
    $address = $data[1];
    $data2 = explode(',', $data[2]);
    $city = $data2[0];
    $zip = $data2[1];
    $website = $data[3];

    $xml = ("<location id='$num'>
                    name='$name',
                    address='$address',
                    city='$city',
                    zip='$zip',
                    website='$website'
             </location>");

    $num++;

}

Şimdi, bir bilgi bloğu, ama için yukarıdaki çalışmaları ben çok beğendi 2 veya daha fazla blok varsa:

John Smith
123 Fake St
Riverwood, 11234
http://google.com

Peter Gunderson
345 Some St
Woodsdale, 44566
http://yahoo.com

Sonra bu çıktıyı alıyorum:

<location id='1'>
   name='John Smith',
   address='123 Fake St',
   city='Riverwood',
   zip=' 11234',
   website='http://google.com'
</location>

<location id='2'>
   name='John Smith',
   address='123 Fake St',
   city='Riverwood',
   zip=' 11234',
   website='http://google.com'
</location>

Bu yüzden ben bu değişkenleri tanımlayan am çünkü bu, biliyorum:

$name = $data[0];
$address = $data[1];
$data2 = explode(',', $data[2]);
$city = $data2[0];
$zip = $data2[1];
$website = $data[3];

$ veri dizisindeki orada yerlere göre. Yani, bir döngü kullanarak kulüpler bile bu değişkenlerin değerleri her zaman aynıdır. Örneğin: John Smith için $ name değişkeni [0], Peter Gunderson'a için isim değişken $ veri değeri olmalıdır $ veri değeri olmalıdır oysa [5]. Ama şimdi her ikisi için de $ veri [0] var. Dolayısıyla çıkış girilen her bilgi bloğu için aynı ad, adres, vb gösteriyor.

Yani soru çıktı her bilgi blok için benzersiz sonuçlar göstermek ve sadece ilk bir tekrarlamak istemiyorum ki nasıl bu script modifiye edilebilir mi?

EDIT

@ Kodunuzu bana yukarıdaki örneğin bu çıktıyı verir Gãžler:

<location id='1'>
                    name='John Smith',
                    address='123 Fake St',
                    city='Riverwood',
                    zip=' 11234',
                    website='http://google.com'
</location>

<location id='2'>
                    name='',
                    address='Peter Smith',
                    city='',
                    zip='',
                    website='Woodsdale, 44566'
</location>

0 Cevap