這裏的PHP新手總數....我一直在努力學習,並編寫了一個腳本從在線掃描服務器上的文件夾的各種教程。爲找到的圖像生成縮略圖,然後根據需要將縮略圖放入新創建的拇指文件夾中。然後在縮略圖鏈接回大圖的情況下在縮略圖中顯示縮略圖。創建縮略圖將不能用於40+圖片
一切都在我的測試很好,除非我用40 +圖像實現它,我從腳本沒有得到任何迴應。只是一個空白的HTML頁面,沒有機構...
正如我所說我是新的,但我認爲它與服務器的超時有關?無法渲染圖像的數量或東西?我看到有關服務器php.ini超時的一些事情,但我不確定這是否是問題。
我只需要弄清楚爲什麼我一次不能做40張以上的圖像,我會變成金色的!
<?php
# SETTINGS
$max_width = 300;
$max_height = 300;
function getPictureType($ext) {
if (preg_match('/jpg|jpeg/i', $ext)) {
return 'jpg';
} else if (preg_match('/png/i', $ext)) {
return 'png';
} else if (preg_match('/gif/i', $ext)) {
return 'gif';
} else {
return '';
}
}
function getPictures() {
global $max_width, $max_height;
if ($handle = opendir(".")) {
$lightbox = rand();
while (($file = readdir($handle)) !== false) {
if (!is_dir($file)) {
$split = explode('.', $file);
$ext = $split[count($split) - 1];
if (($type = getPictureType($ext)) == '') {
continue;
}
if (! is_dir('thumbs')) {
mkdir('thumbs');
}
if (! file_exists('thumbs/'.$file)) {
if ($type == 'jpg') {
$src = imagecreatefromjpeg($file);
} else if ($type == 'png') {
$src = imagecreatefrompng($file);
} else if ($type == 'gif') {
$src = imagecreatefromgif($file);
}
if (($oldW = imagesx($src)) < ($oldH = imagesy($src))) {
$newW = $oldW * ($max_width/$oldH);
$newH = $max_height;
} else {
$newW = $max_width;
$newH = $oldH * ($max_height/$oldW);
}
$new = imagecreatetruecolor($newW, $newH);
imagecopyresampled($new, $src, 0, 0, 0, 0, $newW, $newH, $oldW, $oldH);
if ($type == 'jpg') {
imagejpeg($new, 'thumbs/'.$file);
} else if ($type == 'png') {
imagepng($new, 'thumbs/'.$file);
} else if ($type == 'gif') {
imagegif($new, 'thumbs/'.$file);
}
imagedestroy($new);
imagedestroy($src);
}
echo "<div class=\"box\">";
echo '<a href="'.$file.'" class="swipebox">';
echo '<img src="thumbs/'.$file.'" alt="" />';
echo '</a>';
echo '</div>';
}
}
}
}
?>
<---HTML CODE BELOW HERE-->
Using this to call function above in html code:
<?php getPictures(); ?>
默認情況下,PHP允許運行腳本超時30秒。你可能會經過你的服務器上的最大值 –