Мне нужна помощь, я бы хотел, чтобы вы мне помогли;)
Я призываю некоторых гуру в поисках мира и знаний, хе-хе.
Хорошо. Позвольте мне объяснить, у меня есть XML, и у него есть раздел, где URL сегментируется, как показано ниже. Я могу успешно разобрать его с помощью SimpleXML и XPath. Мои запросы XPath возвращают мне массив с результатами, и затем я могу их повторить. Нет проблем! =) * * Тысяча одна
Однако я хочу сделать еще один шаг, пытаясь уменьшить количество строк кода и улучшить мой код. Сначала посмотрите на мой код, вы можете скопировать / вставить его и попробовать:
<?php
$xml_g='
<files>
<file>
<filename>itzafile</filename>
<ext>.tar.gz</ext>
<url protocol="http://">itzanexample.net/folder/subfolder/</url>
</file>
<file>
<filename>itzavideo</filename>
<ext>.mp4</ext>
<url protocol="ftp://">itzanotherurl.com/videos/</url>
</file>
</files>
';
function URLparts($xml) {
$xmlData= simplexml_load_string("$xml");
$protocol = $xmlData->xpath('//file/url/@protocol');
$url = $xmlData->xpath('//file/url');
$filename = $xmlData->xpath('//file/filename');
$ext = $xmlData->xpath('//file/ext');
echo 'The following it\'s echoed calling 4 different arrays:'."\n\t".$protocol[0], $url[0], $filename[0], $ext[0]."\n\t".$protocol[1], $url[1], $filename[1], $ext[1]."\n\n"; //prints the entire url! Right!
//These variables are arrays, so theorically it must be possible to create an array of arrays here:
$completeURL = array($protocol,$url,$filename,$ext);
//I've also tried this but it's just the same problem:
//$completeURL = array(array($protocol),array($url),array($filename),array($ext));
echo 'The following should be echoed with a two-dimensional array, but something fails:'."\n\t".$completeURL[0][0][0][0]."\n\n"; //Just prints "http://" WRONG! u.u
/*
* $completeURL[1][0][0][0] prints the domain+subfolder
* $completeURL[0][1][0][0] prints ftp://
* $completeURL[0][0][1][0] prints nothing...
*/
}
URLparts($xml_g);
?>
Как видите, я хочу избежать присоединения URL: echo $ protocol [0], $ url [0], $ filename [0], $ ext [0], и я хочу сделать это проще с меньшим количеством переменные как в completeURL [0] [0] [0] [0] (первый файловый узел со всеми соответствующими частями), completeURL [1] [1] [1] [1] (второй файловый узел со всеми частями URL) и т.д ...
Но, очевидно, я делаю что-то не так ...
Может кто-нибудь сказать мне, где ошибка? Это должно быть связано с многомерным массивом, который я пытаюсь создать ...