السلام عليكم
لدي سكربت معرض صور
وهو يعمل بكفاءة وبه العديد من المزايا
ولكن هناك مشكلة واحده حيث يمكن تحميل الصور من ملف مضغوط مباشرة داخل السكربت
ولكن المشكله ان السكربت لا يسمح بتحميل الصور ذات المقاسات غير القياسية او بمعنى اخر اي صورة اقل من 800 في 600
حاولت حل المشكلة الى ان وصلت للملف الذي يتحكم في هذا الاختيار
وهو يعتمد على جلب معلومات الصورة ثم مقارنتها بعناصر مصفوفة موضوع بها المقاسات القياسية
وبالفعل نجحت في اضافة مقاسات جديدة كعنصر اضافي في المصفوفة
ولكن ليس من المنطقى اضافة كل المقاسات الاخرى الي لا تتفق مع المقاسات القياسية
وهذا هو الكود
كود PHP:
function check_allowed_size ( $allowed_sizes, $file, $type = 'w' )
{
$details = getimagesize ( $file );
$heights = array ();
$widths = array ();
foreach ( $allowed_sizes as $key => $value )
{
foreach ( $value as $height => $width )
{
$heights [] = $height;
$widths [] = $width;
}
}
return ( $type == 'w' ) ? ( ( isset ( $details [ 0 ] ) && in_array ( $details [ 0 ], array_values ( $widths ) ) ) ? TRUE : FALSE ) : ( ( isset ( $details [ 1 ] ) && in_array ( $details [ 1 ], array_values ( $heights ) ) ) ? TRUE : FALSE );
}
function check_wide ( $file )
{
$details = getimagesize ( $file );
$heights = array ();
$widths = array ();
foreach ( get_sizes () as $height => $width )
{
if ( isset ( $details [ 0 ] ) && isset ( $details [ 1 ] ) && $details [ 0 ] == $width && $details [ 1 ] == $height && round ( $width / $height ) == 2 )
{
return TRUE;
}
}
return FALSE;
}
function get_sizes ()
{
$sizes = array
(
1 => array ( 1200 => 1600 ),
2 => array ( 768 => 1024 ),
3 => array ( 864 => 1152 ),
4 => array ( 1024 => 1280 ),
5 => array ( 1440 => 1920 ),
6 => array ( 1920 => 2560 ),
7 => array ( 800 => 1280 ),
8 => array ( 900 => 1440 ),
9 => array ( 1050 => 1680 ),
10 => array ( 1200 => 1920 ),
11 => array ( 1600 => 2560 ),
12 => array ( 960 => 1280 ),
13 => array ( 600 => 800 ),
14 => array ( 427 => 212 ),
15 => array ( 300 => 433 )
);
return $sizes;
}
سوف تلاحظ اخر مقاس 212 في 433 وهو المقاس الذي اضفته
ولكن كيف يمكنني الخروج من هذه الطريقة بحيث يقبل السكربت تحميل اي مقاس للصورة
ولا يكون قاصرا فقط على هذه المقاسات