Ben PHP döngü için bir tek benim dizideki son öğeyi döndürür garip bir sorun var.
Dizi bir XML dosyası SimpleXML ile oluşturulur.
Kod bu dönmelidir:
<tags><tag value="Tag1" /><tag value="Tag2" /><tag value="Tag3" /></tags>
Ama onun yerine ben alıyorum:
<tags><tag value="Tag3" /></tags>
Bu yüzden ne olursa olsun ben orada var kaç dizideki son öğe ancak tüm sayar.
Herkes yanlış ne yapıyorum görebilir miyim?
İşte kod:
<?php
function gettags($xml)
{
$xmltags = $xml->xpath('//var[@name="infocodes"]/string');
return $xmltags[0];
}
//Path to the XML files on the server
$path = "/xmlfiles/";
//Create an array with all the XML files
$files = glob("$path/*.xml");
foreach($files as $file)
{
$xml = simplexml_load_file($file);
$xmltags = gettags($xml);
//Using the , character split the values coming from the $xmltags into an array
$rawtags = explode(',', $xmltags);
//Loop through the tags and add to a variable. Each tag will be inside an XML element - <tag value="tagname" />
for ($i = 0; $i <count($rawtags); $i++){
$tags = '<tag value="' . $rawtags[$i] . '" />';
}
//Replace HTML escaped characters (ä, å, ö, Å, Ä, Ö) and the | character with normal characters in the tags variable
$tagsunwantedchars = array("Ö", "Ä", "Å", "ö", "ä", "å", "|");
$tagsreplacewith = array("Ö", "Ä", "Å", "ö", "ä", "å", " - ");
$tagsclean = str_replace($tagsunwantedchars, $tagsreplacewith, $tags);
//Create the full tag list and store in a variable
$taglist = "<tags>$tagsclean</tags>";
}
echo $taglist;
?>
İşte XML dosyası bulunuyor:
<wddxPacket version='1.0'>
<header/>
<data>
<struct>
<var name='infocodes'>
<string>Tag1,Tag2,Tag3</string>
</var>
</struct>
</data>
</wddxPacket>