由于圖片上傳的時(shí)候沒有限制比例, 結(jié)果導(dǎo)致頁面輸出效果是這樣的,
要是裁切圖片, 圖片顯示不全, 要是強(qiáng)制輸出, 圖片會(huì)失禎
于是老大就說了, 你把差不多大小的放前面嘛
這樣我就得寫個(gè)函數(shù)按照圖片寬高比排序了
一開始我是打算用寬高差排序, 然后發(fā)現(xiàn)有的圖片是200 x 300, 有的圖片是700 x 400
這樣的話用寬高差肯定會(huì)出問題的, 就只能用寬高比了
<?php
// 前提保證 php 有安裝 GD 庫擴(kuò)展
// 先獲取從數(shù)據(jù)庫讀出來的單頁數(shù)據(jù) $activity
// ...
/**
* 根據(jù)圖片寬高比排序
* @param $dopage 數(shù)據(jù)庫讀出來的單頁數(shù)據(jù)
* @param $feild 表中圖片的字段
*/
function sort_image($dopage, $feild){
$sort = array(); // 聲明排序容器數(shù)組
$i = 0; // 聲明寬高比預(yù)加變量
// 遍歷 $dopage 獲取圖片寬高比
foreach ($dopage as $d_k => $d_v) {
// 用 getimagesize() 這個(gè) GD 函數(shù)獲取圖片寬高比, 賦值給新變量 $d_v["w_h"]
// 用 ++$i 的原因是為了讓鍵保持唯一, 不然寬高比一樣的圖片會(huì)被覆蓋掉
$d_v["w_h"] = (getimagesize($d_v[$feild])[0] / getimagesize($d_v[$feild])[1]) * 100 + ++$i;
// 這樣就得到了一個(gè)寬高比為鍵的數(shù)組 $dopage
$dopage[$d_v["w_h"]] = $d_v;
}
// 按照鍵將數(shù)組排序, 生成排序后的寬高比為鍵的新數(shù)組 $dopage
$dopage = krsort($sort);
}
// 用 sort_image() 函數(shù)將 $activity 換成成排序后的 $activity
$activity = sort_image($activity, "picurl");
排序限制圖片大小后的效果是這樣的
先收藏再說, 萬一用得到呢, 是吧
閱讀原文