הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   בדיקת תקינות תמונה | PHP (https://hosts.co.il/forums/showthread.php?t=89902)

Insane 03-06-11 13:08

בדיקת תקינות תמונה | PHP
 
אהלן,
אני שולף מהמסד נתונים תמונות, וחלקם עם לינק שבור.
עם איזה קוד אני יכול לבצע סינון.

תודה לעוזרים.

Haimz 03-06-11 13:26

קוד:

$url = "http://dosadasdo.png";
$image = @getimagesize($url);
if(is_array($image))
        // image exists
else
        // image no exists


Insane 03-06-11 13:42

זה בדיוק מה שעשיתי, אבל האתר נטען מאוד לאט, אז אני מחפש פתרון אחר.

~The_Sultan~ 03-06-11 13:45

אני לא חושב שיש דרך שיכולה לקצר באופן משמעותי את העניין כי בכל זאת השרת צריך לפתוח את הקובץ כדי לוודא שהתמונה קיימת. אפשר אולי מבחינת הפעולה לקצר ולשים את הפונקציה בתוך התנאי:
PHP קוד:

if (!(getimagesize("http://example.com/pic.png")) 


Insane 03-06-11 13:52

אוקיי תודה.
ואיך אני יכול לבדוק אם סיומת הקובץ היא gif / png / jpg ?

~The_Sultan~ 03-06-11 14:58

תשתמש כבר בפונקציה שכתבנו ותעשה ככה:
PHP קוד:

$image_details getimagesize("http://example.com/pic.png");
if (!(
$image_details))
    die(
"This is not an image.");

$type $image_details[2]; 

עכשיו אתה בודק למה שווה המשתנה $type:
1 = GIF, 2 = JPG, 3 = PNG, 4 = SWF, 5 = PSD, 6 = BMP, 7 = TIFF (של אינטל), 8 = TIFF(של מוטורולה), 9 = JPC, 10 = JP2, 11 = JPX, 12 = JB2, 13 = SWC, 14 = IFF, 15 = WBMP, 16 = XBM.

אתה יכול גם לבדוק לפי סיומת הקובץ אבל זו לא דרך אמינה במיוחד, אפשר לקחת קובץ JPG ולקרוא לו GIF.

Erez | TrustMedia.co.il 03-06-11 15:29

יש את הפונקציה הזאת:
http://www.php.net/manual/en/functio...-imagetype.php
היא לא קוראת את כל הקובץ אלא רק את הHEADRים שלו כדי לקבוע איזה פורמט הוא. מניסיון היא הרבה יותר מהירה, רק שהיא לא תומכת בכל השרתים, תבדוק אם היא פועלת אצלך

Haimz 03-06-11 19:07

תעשה
קוד:

$type = end(explode(".", $imageurl));


כל הזמנים הם GMT +2. הזמן כעת הוא 18:02.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ