Проблема:Распечатайте вопросы в последовательном порядке в PHP
У меня есть почтовый файл, который содержит 13 файлов XML. Каждый файл, за исключением первого, содержит вопрос о викторине и несколько ответов. Когда я загружаю файл в следующий скрипт, он правильно печатает вопросы и ответы, но НЕ в порядке. Порядок вопросов случайным образом меняется каждый раз при загрузке zip-файла.
Вопрос:
Есть ли способ, что я могу использовать имена файлов, чтобы сказать, сценарий для распечатки вопросов в последовательном порядке каждый раз?
Zip-файл содержит:
- imsmanifest.xml
- item101008.xml
- item101009.xml
- item101010.xml
- item101011.xml
- item101012.xml
- item101013.xml
- item101014.xml
- item101015.xml
- item101016.xml
- item101017.xml
- item101018.xml
- item101019.xml
PHP-скрипт (предупреждение, длинный сценарий):
<?php
//Initialize counter
$i = 0;
//Go through each file
while (($file = readdir($dh)) !== false)
{
//Skipt the first loop
if ($i > 1)
{
//Ignore misc file
if ($file != 'imsmanifest.xml')
{
//Create new DOM document
$dom= new DOMDocument();
//Load XML file
$dom->load('uploads/' . $file);
//Do not preserve white space
$dom->preserveWhiteSpace = false;
//Check if correct answers should be displayed
if (isset($_POST['XMLAnswers']))
{
//Get correct answer
$correct = $dom->getElementsByTagName("correctResponse")->item(0)->nodeValue;
//Get question
$questions = $dom->getElementsByTagName('p')->item(0)->nodeValue;
//Print out question
echo '<h4>' . htmlspecialchars($questions) . '</h4>' . "\n";
//Get answers
$domTable = $dom->getElementsByTagName("simpleChoice");
//Loop through each answer
foreach ($domTable as $answers)
{
//Delete potential unnecessary tags
$pattern = array(
'<p xmlns="http://www.imsglobal.org/xsd/imsqti_v2p1">',
'</p>'
);
//Check if answer is correct one
if ($correct == $answers->getAttribute('identifier'))
{
//Print out correct answer
echo '<span style="color:red;">' . utf8_decode(str_replace($pattern, '', innerHTML($answers))) . '</span><br />' . "\n";
}
else
{
//Print out answer
echo utf8_decode(str_replace($pattern, '', innerHTML($answers))) . '<br />' . "\n";
}
}
}
}
}
//Increment counter
$i++;
}
?>
Доброта, это действительно длинный код. В любом случае вы можете обрезать шум, который не так уж и уместен и сохранить хорошие вещи? – Fluffeh
Хорошо, извините. Гораздо меньше кода. – kexxcream
Вопрос заключается в следующем порядке в xml i.e. 1-10 в item101008.xml, а затем в 11-20 в item101009.xml также как последовательность вопросов находится в одном файле случайным образом или последовательно. – dkkumargoyal