我正在使用以下PHP脚本在我的网站上显示一个随机图像,它工作得很好,除了它会抓取我不希望它抓取的图像所以我想在脚本中添加一个检查以便它如果它以字母“TN-”开头,它只会抓取一个图像,但我不是一个php编码器,所以我想我会请专家在这里寻求帮助。
<?php
// files to search for
$extList = array();
$extList['gif'] = 'image/gif';
$extList['jpg'] = 'image/jpeg';
$extList['jpeg'] = 'image/jpeg';
$extList['png'] = 'image/png';
// set to specific image if needed
// null will result in a random image
$img = null;
// path to the directory you want to scan
$directory = './';
if (substr($directory,-1) != '/') {
$directory = $directory.'/';
}
// if img is set, show it
if (isset($_GET['img'])) {
$imageInfo = pathinfo($_GET['img']);
if (
isset( $extList[ strtolower( $imageInfo['extension'] ) ] ) &&
file_exists( $directory.$imageInfo['basename'] )
) {
$img = $directory.$imageInfo['basename'];
}
}
// if img isnt set, grab a random
else {
//cycle through directory and subfolders
$it = new RecursiveDirectoryIterator("$directory");
foreach(new RecursiveIteratorIterator($it) as $file)
{
$file_info = pathinfo($file);
if (
isset( $extList[ strtolower( $file_info['extension'] ) ] )
) {
$items[] = $file;
}
}
sort($items);
// get the random image
if (count($items) > 0) {
$imageNumber = time() % count($items);
$img = $directory.$items[$imageNumber];
}
}
// if img isnt null, display it
if ($img!=null) {
$imageInfo = pathinfo($img);
$contentType = 'Content-type: '.$extList[ $imageInfo['extension'] ];
header ($contentType);
readfile($img);
}
// else, try to create one or give error
else {
if ( function_exists('imagecreate') ) {
header ("Content-type: image/png");
$im = @imagecreate (100, 100)
or die ("Cannot initialize new GD image stream");
$background_color = imagecolorallocate ($im, 255, 255, 255);
$text_color = imagecolorallocate ($im, 0,0,0);
imagestring ($im, 2, 5, 5, "IMAGE ERROR", $text_color);
imagepng ($im);
imagedestroy($im);
}
}
?>
答案 0 :(得分:1)
您可以在脚本中从第32行开始的块中添加一个检查:
//cycle through directory and subfolders
$it = new RecursiveDirectoryIterator("$directory");
foreach(new RecursiveIteratorIterator($it) as $file)
{
$file_info = pathinfo($file);
if (
isset( $extList[ strtolower( $file_info['extension'] ) ] ) &&
strpos( $file_info['basename'], 'TN-') === 0
) {
$items[] = $file;
}
}