توضيح رسائل الخطأ في file uploads
كتب في 12 فيراير 2012 | التعليقات (0) | تصنيف : لغة PHP
السلام عليكم
تقريبا منذ الاصدار PHP 4.2.0 تقوم البي اتش بي بارجاع نوع الخطأ عند رفع الملف حتي عندما يتم رفع الملف بنجاح تقوم بارجاع قيمة الخطا = 0 عن طريق $_FILES['userfile']['error'].
ويمكن معرفه نوع الخطأ عن طريق رقم الخطأ او الثابت الخاص بالاخطاء كا الاتي:
UPLOAD_ERR_OK او 0 :
في هذة الحالة يعني ان لايوجد خطأ وان عملية الرفع تمت بنجاح.
UPLOAD_ERR_INI_SIZE او 1 :
تعني ان حجم الملف اكبر مما هو محدد في ملف php.ini وتحديدا دالة upload_max_filesize.
UPLOAD_ERR_FORM_SIZE او 2 :
تعني ان حجم الملف اكبر مما هوا تم تحديده في فورم الرفع مثلا عن طريق تحديد input باسم MAX_FILE_SIZE يحتوي علي حجم معين للرفع.
UPLOAD_ERR_PARTIAL او 3 :
تعني ان الملف رفع جزئيا فقط.
UPLOAD_ERR_NO_FILE او 4 :
تعني ان الملف غير موجود ليتم رفعه.
UPLOAD_ERR_NO_TMP_DIR او 6 :
تعني عدم العثور علي ملف temp المؤقت للرفع او مسار الوقت للرفع.
UPLOAD_ERR_CANT_WRITE او 7 :
فشل في رفع الملف وكتابته .
UPLOAD_ERR_EXTENSION او 8 :
الخطا تم نتيجة ايقاف رفع الملف من قبل php extension
انتهينا من قائمة الاخطاء.
الكثير يتسأل اين الخطأ 5 او مكان يعرف UPLOAD_ERROR_E
الخطا 5 تم تنحيته لانه ليس بخطأ اي انه عند رفع ملف لاحجم له size==0
وتنجح عمليه الرفع يظهر هذا الخطا ويمكن تجاوز هذا الخطا عن طريق التأكد من حجم الملف قبل الرفع
وهنا يمكن مشاهده التعديل الذي حدث من قبل فريق php
http://svn.php.net/viewvc/php/php-src/trunk/main/rfc1867.c?r1=79486&r2=81792
http://svn.php.net/viewvc/php/php-src/trunk/main/rfc1867.c?r1=87820&r2=88408
وبمكن مراجعه موقع php.net للمزيد من المعلومات
والسلام عليكم
وسوم : php , upload , error
فكرة جلب رابط الصفحة title بعد التعديل عليه
كتب في 11 فيراير 2012 | التعليقات (0) | تصنيف : لغة PHP
السلام عليكم
قبل فترة ليست بالقصيرة قمت ببرمجة فنكشن لجلب title الصفحة وكان مفيد لجلب رابط الصفحة لكن كان يعاني من مشكله التأخير وذلك بسب load الذي يحدث نتيجة جلب محتوي كامل الصفحة
وهنا الفنكشن القديم
http://developer.ly/index.php?page=article&id=7
قمت بالتعديل علي الكود ليكون افضل بكثير واسرع من الاول
تم الاستغناء عن دالة file_get_contents واستبدالها بدوال Filesystem Function
واهذا الكود بعد التعديل
<?php
function process($link){
$content = '';
if ($handle = @fopen($link[0], "r")) {
while (!feof($handle)) {
$content .= fread($handle, 1024);
if (preg_match('#<title>(.*?)<\/title>#i' , $content , $matches)) break;
}
fclose($handle);
$matches[1] = (empty($matches[1])) ? $link[0] : $matches[1];
}
return '<a href="'.$link[0].'">'.$matches[1].'</a>';
}
function get_title($_text){
return preg_replace_callback("/(((http|ftp):\/\/[a-zA-Z0-9\.-]+\.[a-zA-Z]{2,4}\/*([\w\/\.\?&=]+)*)+)/is", 'process' , $_text);
}
echo get_title('http://php.net , http://twitter.com');
?>
سلامات
وسوم : php , title , split-
تطبيق معادلة جمع strings
كتب في 22 يناير 2011 | التعليقات (1) | تصنيف : لغة PHP
السلام عليكم
اثناء الحديث مع صديق لي اخبرني عن كيفية جمع strings منطقيا والعمليات التي يجب وضعها وهل من امكانية لعمل كود لذلك
فمثلا
a + y = z
a + a = b
a + b = c
مثال
كود:
abc
+abc
++abc
= --------
acfec
+ تعني عدم وجود حرف "فارغ"
قمت بتطبيقها بكود php والموضوع ليس با لصعب ابداً
الفكرة وهيا تحويل كل حرف للرقمه في جدول ASCII ومن ثم جمع الارقام واعادة تحويلهم لحروف
عن طريق
ord , chr
الكود
كود PHP:
<?php
/*
* @Author: [Bruce] Moahmmed Endisha
* @website: http://developer.ly
*/
$text = array(
'abc',
' abc',
' abc'
);
/*@processing part*/
function get($v){
return ($v == ' ') ? 0 : ord($v) - 96;
}
$long = 0;
foreach($text as $array_long=>$key) $long = $long < strlen($key)? strlen($key) : $long;
for($x=0;$x<$long;$x++){
for($result=0,$i=0;$i<=$array_long;$i++){
$value = (!isset($text[$i][$x]))? ' ' : $text[$i][$x];
$result += get($value);
}
print ($result != 0)? chr($result+96) : ' ';
}
?>
اترككم مع الكود
سلام
وسوم : strings , logical , code , php
php مفهوم type casting
كتب في 03 اغسطس 2010 | التعليقات (0) | تصنيف : لغة PHP
ماهو type casting
هي باختصار كيفية تغيير نوع البيانات من نوع الي نوع اخر وقت البرمجة بدون التقيد بنوع معين وبدون التغيير في قيمتها الا في حالات معينة فقط
للتوضيح
$array = array('bruce'=>'php');
للوصول الي عنصر المصفوفة بهذة الطريقة
print $array['bruce'];
في حالة تغيير النوع type الي object تكون هكذا
$array = (object) array('bruce'=>'php');
للوصول الي عنصر المصوفة
print $array->bruce;
وهكذا ايضا
$value = 33.3; //float
عند تمرير الـ int type تصبح
$value = (int) 33.3; //output 33
سيقوم بتجاهل الجزء الكسري.
انواع الـ البيانات
* (int), (integer) - cast to integer
* (bool), (boolean) - cast to boolean
* (float), (double), (real) - cast to float
* (string) - cast to string
* (array) - cast to array
* (object) - cast to object
* (unset) - cast to NULL (PHP 5)
الطريقة مفيدة جدا في الاستخدام وبما ان php لغة loosely typed language يمكن استخدامها بحرية جدا داخل تطبيقاتك.
سلام
وسوم : php , type , casting , data
العودة للتدوين
كتب في 01 اغسطس 2010 | التعليقات (8) | تصنيف : تدوينات متفرقة
السلام عليكم
الحمد لله قمت بـ إعادة افتتاح المدونة من جديد بعد ان ضاعت مدونتي السابقة بجميع محتوياتها ومقالاتها وتعليقاتها. :(
قمت بافتتاح المدونة بعد شراء دومين خاص بها ومساحة من احد الاصدقاء :))
تم التعديل علي نظام المدونة الخاص بي وكذلك تطوير لوحة تحكمه.
انتظروو جديد المقالات.
سلام
وسوم : عودة , مدونة
- لغة PHP (11)
- البرمجة الكائنية OOP (0)
- قواعد البيانات Databases (0)
- تقنية SEO (0)
- لغة c++ (0)
- CSS,HTML,JavaScript (1)
- تحليل النظم (0)
- تدوينات متفرقة (1)
