|
الفانكشن file_exists بلغة PHP
|
| Hussam |
المشاركة في 03-03-2010 08:57
|

المشاركات: 238
الاشتراك: 2008.06.13
|
بسم الله الرحمن الرحيم
الفانكشن:
file_exists
متاحة في:
PHP 4, PHP 5
طريقة الإستعمال:
bool file_exists ( string $filename )
الوظيفة:
التأكد من وجود ملف معين أو مجلد معين.
البارامترات:
1- إجباري: $file_name مسار الملف مع اسمه أو مسار المجلد المراد التأكد من وجوده و هو عبارة عن سلسلة نصية من النوع string.
القيمة التي ترجعها الفانكشن من النوع Boolean بالشكل التالي:
1- True إذا كان الملف أو المجلد المعين بالمسار file_name موجود.
2- False إذا كان الملف أو المجلد المعين بالمسار file_name غير موجود.
أمثلة:
PHP -
<?php file_exists("setup.php"); ?>
PHP -
<?php file_exists("../images/image02.gif"); ?>
PHP -
<?php file_exists("../pages/"); ?>
PHP -
<?php file_exists($_SERVER['DOCUMENT_ROOT']."text_files/file.txt"); ?> -
ملاحظات:
هذه الفانشكن ترجع False إذا كان الوصول للملف غير ممكن بسبب السيف مود safe_mode
وضع السيف مود غير محبذ منذ إصدار PHP 5.3 و تم إلغاؤه في PHP 6
أمثلة عملية:
1- التأكد من حذف ملف تركيب السكربت قبل الدخول للوحة تحكم السكربت.
إذا كان الملف التركيب غير موجود إذهب للوحة التحكم و إلا أظهر رسالة يجب حذف ملف التركيب.
PHP <?php if (file_exists('setup.php')) { echo 'احذف ملف التركيب من فضلك'; exit; } else { header("Location: admin.php"); exit; } ?> -
2- التأكد من وجود صورة معينة لعضو مثلاً.
عند وجود صورة للعضو ذو الرقم id و امتداد الصورة ext في قاعدة البيانات قم بإظهارها، و إلا إعرض الصورة الإفتراضية للأعضاء الذين لم يقوموا برفع صورهم.
PHP <?php $image_path = $_SERVER['DOCUMENT_ROOT']."/images/image".$id.$ext; $default_path = $_SERVER['DOCUMENT_ROOT']."/images/default.gif"; -
if (file_exists($image_path)) { echo '<img src="'.$image_path.'" />'; } else { echo '<img src="'.$default_path.'" />'; } ?> -
3- التأكد من وجود ملف config يحوي معلومات الإتصال بقاعدة البيانات قبل زرع الجداول عن طريق ملف تركيب السكربت.
خطولت العمل:
تأكد من أن الملف config.php موجود و إلا قم بإنشاؤه و افتح الملف للكتابة و اعرض فورم للمستخدم يطلب منه معلومات السيرفر و قاعدة البيانات و اكتبها في ملف الـ config الذي أنشأته و فتحته.
في حال وجوده، تأكد من إمكانية الإتصال بقاعدة البيانات و إلا قم بعرض رسالة خطأ.
في حال إمكانية الإتصال، أنشأ الجداول المطلوبة.
الكود: وظيفتكم يا حلوين.
يمنع نسخ أو نقل الدرس إلى أي موقع أو منتدى آخر و نرجو نقل رابط الموضوع فقط حفاظاً على حقوق الموقع.
بالتوفيق
أحوكم حسام.
عدل بواسطة Hussam في 03-03-2010 09:08
عريت من الشــباب و كــان غضاً كما يعرى من الورق القضيبُ
ونُحت على الشباب بدمع عيني فما يجدي البكـاء ولا النحيـب
فيـا أسـفاً أسـفت على شـباب نعاه الشيب والرأس الخضيب
ألا ليت الشــباب يعـــود يـــومـاً فأخبره بمــا فعل المشـــيب
موقعي الشخصي
http://tutorialti.../About_Me/ |
| |
|
|
| youssef |
المشاركة في 09-03-2010 11:10
|

المشاركات: 21
الاشتراك: 2009.10.28
|
وجدة صعوبة
ممكن مساعدة :|
PHP -
<?php $config = $_SERVER['DOCUMENT_ROOT']."../includes/config.php"; $table = $_SERVER['DOCUMENT_ROOT']."/table/table.php"; $Creating Files= if (file_exists($config )) { if(!$db) die('did not select database' ); -
else echo $table; -
} -
-
else {........................................................................ } ?> |
| |
|
|
| youssef |
المشاركة في 09-03-2010 11:21
|

المشاركات: 21
الاشتراك: 2009.10.28
|
PHP <?php $config = $_SERVER['DOCUMENT_ROOT']."../includes/config.php"; $table = $_SERVER['DOCUMENT_ROOT']."/table/table.php"; $Creating Files= if (file_exists($config )) { if(!$db) die('did not select database' ); -
else echo '<a href="'.$table.' " ><a>'; -
-
} -
-
else {................................... } ?> |
| |
|
|
| Hussam |
المشاركة في 09-03-2010 12:48
|

المشاركات: 238
الاشتراك: 2008.06.13
|
هذا هو كود الوظيفة تقصد أخي يوسف ؟
عريت من الشــباب و كــان غضاً كما يعرى من الورق القضيبُ
ونُحت على الشباب بدمع عيني فما يجدي البكـاء ولا النحيـب
فيـا أسـفاً أسـفت على شـباب نعاه الشيب والرأس الخضيب
ألا ليت الشــباب يعـــود يـــومـاً فأخبره بمــا فعل المشـــيب
موقعي الشخصي
http://tutorialti.../About_Me/ |
| |
|
|
| youssef |
المشاركة في 09-03-2010 13:07
|

المشاركات: 21
الاشتراك: 2009.10.28
|
هل جواب كل خطأ  |
| |
|
|
| Hussam |
المشاركة في 09-03-2010 13:37
|

المشاركات: 238
الاشتراك: 2008.06.13
|
أخي الكود أبعد ما يكون عما طلبته أنا بالوظيفة.
بالتوفيق.
عريت من الشــباب و كــان غضاً كما يعرى من الورق القضيبُ
ونُحت على الشباب بدمع عيني فما يجدي البكـاء ولا النحيـب
فيـا أسـفاً أسـفت على شـباب نعاه الشيب والرأس الخضيب
ألا ليت الشــباب يعـــود يـــومـاً فأخبره بمــا فعل المشـــيب
موقعي الشخصي
http://tutorialti.../About_Me/ |
| |
|
|
| Abo-baseer |
المشاركة في 29-04-2010 19:33
|
المشاركات: 58
الاشتراك: 2010.03.13
|
ما رأيك في هذا الكود أستاذ حسام
والجداول فيه هي جداول دفتر الزوار
وأنا مخدتش بالي من الصفحة دي والمطلوب فيها لأن أنا كنت مفكر إن أقسام الفنكشن مجرد قسم مرجعي في الموقع
فمعذرة على تأخر الاستجابة والرد أستاذنا الغالي
والصفحة اسمها
setup.php
و معلش الكود داخل في بعضه بس دي حاجة على أد المستوى بتاعي
PHP -
-
<?php if(!$_POST['server'] || !$_POST['username'] || !$_POST['database'] ){ if(file_exists($_SERVER[DOCUMENT_ROOT]."config.php")== 0){ require('config.php'); $query="CREATE TABLE `posts` ( `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY , `name` VARCHAR( 100 ) NOT NULL , `email` VARCHAR( 100 ) NOT NULL , `url` VARCHAR( 100 ) NOT NULL , `title` VARCHAR( 255 ) NOT NULL , `comment` TEXT NOT NULL ) ENGINE = MYISAM ": $result=mysql_query($query); if(!$result){ $error="cannot connect to database please correct the data in file 'config.php'"; $query="CREATE TABLE `admins` ( `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY , `username` VARCHAR( 100 ) NOT NULL , `password` VARCHAR( 50 ) NOT NULL , `email` VARCHAR( 100 ) NOT NULL ) ENGINE = MYISAM ;": $result=mysql_query($query); if(!$result){ $error="cannot connect to database please correct the data in file 'config.php'"; -
} else { echo" the connectin to database has done and the tables was established "; } } }else{ echo "<form action='setup.php' method='post'> <table> <tr> <td> Server name : </td> <td> <input type='text' name='server' /> </td> </tr> <tr> <td> User name : </td> <td> <input type='text' name='username' /> </td> </tr> <tr> <td> Password: </td> <td> <input type='password' name='password' /> </td> </tr> <tr> <td> Database name : </td> <td> <input type='text' name='database' /> </td> </tr> <tr> <td> <input type='submit' name='submit' value='ok' /> </td> </tr> </table>"; } -
}else{ require('/include/function.php'); $server=prepare_data($_POST['server']); $username=prepare_data($_POST['username']); $password=prepare_data($_POST['password']); $database=prepare_data($_POST['database']); $con_data="<?php define('DB_SERVER','".$server."'); define('DB_USER','".$username."'); define('DB_PASS','".$password."'); define('DB_NAME','".$database."'); $connection=mysql_pconnect(DB_SERVER,DB_USER,DB_PASS); if(!$connection){ die('Proplem in connecting the server'); } else{ $db = mysql_select_db(DB_NAME); if (!$db){ die('Did not connect to database'); } } -
?>" -
$config_file=fopen('config.php','w'); $write=fwrite($config_file,$con_data); -
if($write){ header('location : setup.php'); } } ?> -
-
-
إذا أعجبتك خصال امرئ ### فكنه يكن منك مايعجبك
فليس على الجود والمكرمات ###إذا جئتها حاجب يحجبك |
| |
|
|
| Hussam |
المشاركة في 29-04-2010 21:14
|

المشاركات: 238
الاشتراك: 2008.06.13
|
جميل جداً أخي أبو بصير ...
ملاحظتين أو أكثر فقط ...
أنت عملت فورم ليدخل فيه المستخدم اسم القاعدة و السيرفر و معلومات الإتصال، هذا الأمر هو الوظيفة فعلاً و لا بأس فيه و جيد و يسهل على المستخدم لكن لا تستعمله في دفتر الزوار لأنه و مع سهولته فبالمقابل يفقد السكربت شيء من الحماية لأن الفورم يستطيع أن يصله أي شخص، بالإضافة إلى أنك مجبر على إعادة فعل شيء مشابه لما فعلته في دفتر الزوار من تحقق لوجود القيم و ما إلى ذلك، لذلك في حالات كهذه يأتي استعمال الكلاسات مفيد جداً و مختصر للوقت و الجهد.
الأمر الآخر أنك عندما تكتب كود html طويل نوعاً ما أغلق PHP و ابدأ بكتابة الكود دون الحاجة إلى استعمال echo و من ثم بداخلها أكثر من سطر أو سطرين HTML لأن هذه الطريقة تجعل الكود غير مقروء خصوصاً و أن المحررات ستلون النص كله مع التاجات بلون واحد و لن تشعر لو أنقصت تاج نهاية أو أخطأت في كتابة تاج، الطريقة التي اتبعتها انت يتبعها أغلب الناس في الدول العربية لقلة الحيلة في تعشيش html و php في أي مكان تستطيع فعل ذلك.
اكتب هكذا:
PHP <?php echo "here is php code"; $var1 = 5; ?> <p> here is html code</p> <?php echo "another block of php goes here"; ?> <div>html code again</div>
أمر آخر و هو أن تحاول أن تعود نفسك على الاستفادة من التقنيات التي تعلمتها بالدروس و انا أشرت لهذا في دروس كثيرة.
عندما تريد تخزين سلسلة طويلة في متحول لتكتبها في ملف أو كويري طويل سيتم ارساله للداتا بيس أو لأي غرض آخر حاول أن تبني السلسلة بناء باستعمال عملية الإلحاق أو بناء السلاسل .=
في مثالك عندما كنت تريد تخزين سلسلة لتخزنها في ملف الكونفيج، وضعت جميع المحتويات في سلسلة واحدة و بدأت تنهي السلسلة لتضع اسم متحول داخل الفانكشن define و اختلط معك الحابل بالنابل و السلسلة كانت على أكثر من سطر، أنا أرى أن الكود جيد جداً من حيث المنطق و لكنه غير مرتب.
في المرة القادمة ابني السلسلة هكذا:
PHP <?php -
$content = "First line of the string"; $content .= "another line!"; $content .= $var1.'here I am adding a variable' ; -
?>
أخيراً: يجب أن تحذف الملف setup.php عندما تنتهي أو تنبه المستخدم لأهمية حذف الملف و إلا فيمكن تشغيله مرة أخرى و زرع جداول مرة أخرى و أمور كثيرة ممكن عملها لا أريد الاستقاضة هنا، باختصار أنت بحاجة إما لأن تحذف الملف فوراً بعد تنفيذه أو أن تنبهه لحذفه، طبعاً هذا ليس من الوظيفة هنا و لكن نقطة جديرة بالذكر في هذا الموقف.
استعمل الفانكشن unlink لحذف الملف.
بالتوفيق أخي الغالي ...
عدل بواسطة Hussam في 29-04-2010 21:22
عريت من الشــباب و كــان غضاً كما يعرى من الورق القضيبُ
ونُحت على الشباب بدمع عيني فما يجدي البكـاء ولا النحيـب
فيـا أسـفاً أسـفت على شـباب نعاه الشيب والرأس الخضيب
ألا ليت الشــباب يعـــود يـــومـاً فأخبره بمــا فعل المشـــيب
موقعي الشخصي
http://tutorialti.../About_Me/ |
| |
|
|
| mohmed_e |
المشاركة في 03-05-2010 09:12
|
المشاركات: 61
الاشتراك: 2010.03.25
|
جزاك الله خير اخي ابو نصير واستاذنا حسام
شي جميل هذه التطبيقات لأن افضل شي لمدى معرفة اهمية الدالة وتذكرها
هي ما يمكنه ان تفعله |
| |
|
|
| Abo-baseer |
المشاركة في 03-05-2010 11:01
|
المشاركات: 58
الاشتراك: 2010.03.13
|
وإياكم أخي محمد
إذا أعجبتك خصال امرئ ### فكنه يكن منك مايعجبك
فليس على الجود والمكرمات ###إذا جئتها حاجب يحجبك |
| |
|