PHP 排序在 Chrome 和 Safari 中不起作用
PHP sort not working in Chrome and Safari
我不确定是不是我输出信息的方式不对。但似乎这些 "li" 元素的制作顺序有时是错误的。
文件夹中的图片命名类似于
A-Mike-groomsman-topRight-light.jpg
B-James-groomsman-topRight-light.jpg
C-Jared-伴郎-topRight-light.jpg
代码如下。 "li" 在 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>
尝试
flush()
在 echo() 之后确保您要打印的内容在此时发送到客户端。
首先,PHP是一种服务器端语言,其行为不受浏览器影响。
所以我想说你的问题是由 bxslider 引起的,它是一个 jQuery 插件,因此它的行为可能会受到浏览器的影响。
检查是否可以在 firefox 和 chrome 中按 ctrl+u 并查看 html 是否相同。
显然问题不在于 php,而在于 BX 滑块。问题是它将转到克隆幻灯片而不是第一张幻灯片。仅在 chrome 和 Safari 中。下面link讲的就是这个问题。
https://github.com/stevenwanderski/bxslider-4/issues/154
其中对我有用的解决方案是将其添加到 jquery.bxslider.css 文件
.bx-viewport li { 最小高度:1px;最小宽度:1px; }
我不确定是不是我输出信息的方式不对。但似乎这些 "li" 元素的制作顺序有时是错误的。
文件夹中的图片命名类似于
A-Mike-groomsman-topRight-light.jpg
B-James-groomsman-topRight-light.jpg
C-Jared-伴郎-topRight-light.jpg
代码如下。 "li" 在 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>
尝试
flush()
在 echo() 之后确保您要打印的内容在此时发送到客户端。
首先,PHP是一种服务器端语言,其行为不受浏览器影响。
所以我想说你的问题是由 bxslider 引起的,它是一个 jQuery 插件,因此它的行为可能会受到浏览器的影响。
检查是否可以在 firefox 和 chrome 中按 ctrl+u 并查看 html 是否相同。
显然问题不在于 php,而在于 BX 滑块。问题是它将转到克隆幻灯片而不是第一张幻灯片。仅在 chrome 和 Safari 中。下面link讲的就是这个问题。
https://github.com/stevenwanderski/bxslider-4/issues/154
其中对我有用的解决方案是将其添加到 jquery.bxslider.css 文件
.bx-viewport li { 最小高度:1px;最小宽度:1px; }