Сортировка PHP не работает в Chrome и Safari

Я не уверен, что это не тот тип работы или способ вывода информации. Но может показаться, что порядок создания этих элементов li иногда неверен.

Изображения в папке названы примерно так

A-Mike-дружки-topRight-light.jpg

B-Джеймс-дружки-topRight-light.jpg

С-Джаред-дружки-topRight-light.jpg

Код ниже. «Ли» находятся в правильном порядке в Firefox, но Chrome и Safari иногда ставят последнюю в первую очередь. Тогда иногда они этого не делают. Хотя мне интересно, может ли это быть bxslider, перемещающий вещи после загрузки страницы? Кто-нибудь испытывал это раньше?

<?PHP
$titleName = 'who\'s who'; //Wording for title of this section. Change this if you want to change the title text of this section
include 'modules/title.php';

$boydirectory = $_SERVER['DOCUMENT_ROOT']."/resources/images/who/boys";
$girldirectory = $_SERVER['DOCUMENT_ROOT']."/resources/images/who/girls";
$boy_results_array = array();
$girl_results_array = array();

if (is_dir($boydirectory))
{
if ($handle = opendir($boydirectory))
{
foreach(glob($boydirectory.'/*.*') as $file)
{
$boy_results_array[] = basename($file);
}
closedir($handle);
}
}
if (is_dir($girldirectory))
{
if ($handle = opendir($girldirectory))
{
foreach(glob($girldirectory.'/*.*') as $file)
{
$girl_results_array[] = basename($file);
}
closedir($handle);
}
}
sort($boy_results_array);
sort($girl_results_array);
?>
<div class="whoSlider boy">
<h3>Boys</h3>
<ul class="whoBoysbxslider">
<?php
if(count($boy_results_array) > 0){
for ($i = 0; $i < count($boy_results_array); $i++) {

$result = explode('-', $boy_results_array[$i]);
$name = str_replace("_", " ", $result[1]);
$job = str_replace("_", " ", $result[2]);
$alignment = $result[3];
$color = str_replace(".jpg", "", $result[4]);
echo "<li>";
echo "<img src=\"../resources/images/who/boys/$boy_results_array[$i]\" />";
echo "<div class=\"captionContainer $alignment $color\">";
echo "<span>$name</span>";
echo "<span>$job</span>";
echo "</div></li>";
}
}
?>
</ul>
</div>
<div class="whoSlider girl">
<h3>Girls</h3>
<ul class="whoGirlsbxslider">
<?php
if(count($girl_results_array) > 0){
for ($j = 0; $j < count($girl_results_array); $j++) {

$result = explode('-', $girl_results_array[$j]);
$name = str_replace("_", " ", $result[1]);
$job = str_replace("_", " ", $result[2]);
$alignment = $result[3];
$color = str_replace(".jpg", "", $result[4]);
echo "<li>";
echo "<img src=\"../resources/images/who/girls/$girl_results_array[$j]\" />";
echo "<div class=\"captionContainer $alignment $color\">";
echo "<span>$name</span>";
echo "<span>$job</span>";
echo "</div></li>";
}
}
?>
</ul>
</div>

0

Решение

Видимо проблема была не с php, а с ползунком BX. Проблема в том, что он шел к слайду клона вместо первого слайда. Только в хроме и сафари. Ниже ссылка говорит о проблеме.

https://github.com/stevenwanderski/bxslider-4/issues/154

Там решение, которое работало для меня, было добавление этого в файл jquery.bxslider.css.

.bx-viewport li {min-height: 1px; минимальная ширина: 1px; }

1

Другие решения

пытаться

промывать()

после echo (), чтобы убедиться, что содержимое, которое вы хотите напечатать, отправляется клиенту в этот момент.

0

Прежде всего, PHP является языком на стороне сервера, и поведение не зависит от браузера.

Поэтому я бы сказал, что ваша проблема вызвана bxslider, который является плагином jQuery, поэтому браузер может повлиять на его поведение.

Чтобы проверить, что вы можете нажать Ctrl + U в Firefox и Chrome и увидеть, что HTML-код одинаков.

0