我有一个脚本可以将所有图像从目录和几个子目录中拉出来,将它们放在一个数组中并回显它们,同时从相应的html文件中提取艺术家名称并在图像下显示。我需要做的是在我回应之前按照艺术家的姓氏对它们进行排序。现在艺术家的名字从第一个首字母开始。基本上我需要写一个排序,在第二个字符排在第二个字符之后。发生了' /'因为一些图像路径名有2' s。这是我到目前为止的代码:
<?php
include('../simplehtmldom_1_5/simple_html_dom.php');
$n = 0;
$dirname = "artists/";
$dirs = array_filter(glob($dirname . '*'), 'is_dir');
foreach ($dirs as $dir)
{
$images2[] = $dir . "/" . str_replace($dirname, "", $dir ) . ".jpg";
}
$images = glob($dirname ."*.jpg");
$images = array_unique($images);
$images = array_merge($images, $images2);
$numCols = 7;
$skip=0;
echo "<table class='artists'>\n";
echo "\t<tr>\n";
foreach( $images as $i => $image )
{
if(1 === preg_match('~[0-9]~', $image)){
$image = next($images);
}
if ( $i != 0 && $i++ % $numCols == 0 )
{
echo "\t</tr>\n\t<tr>\n";
}
$imgstr = substr($image, 0, strpos($image, '.'));
$namestr = str_replace($dirname, "", $imgstr);
$htmlfile = $dirname . $namestr . "home.html";
$htmlcontent = @file_get_contents($htmlfile);
echo '<td><a href="../index.php?page=artists&artist=' . $namestr . '" target="_parent"><img src="' . $image . '" /><br />' . get_page_title($htmlfile) . '</a></td>';
}
echo "\t</tr>\n";
echo '</table>';
?>
</div>
</body>
</html>
<?php
function get_page_title($htmlfile) {
$html = file_get_html($htmlfile);
$title = $html->find('title', 0)->plaintext;
return $title;
}
?>
感谢。