I'm always excited to take on new projects and collaborate with innovative minds.

Phone

+20 115 052 9992

Website

https://ibrahimahmed.online/

Social Links

عنوان تلقائي

أهلاً بيك يا صديقي المبرمج في مقال جديد من سلسلة الشروحات التقنية بعيون مصرية خالصة. خليني أبدأ معاك بسؤال صريح: كام مرة لقيت نفسك بتعمل نفس المهام الروتينية كل

عنوان تلقائي
Reading Count: 1

أهلاً بيك يا صديقي المبرمج في مقال جديد من سلسلة الشروحات التقنية بعيون مصرية خالصة. خليني أبدأ معاك بسؤال صريح: كام مرة لقيت نفسك بتعمل نفس المهام الروتينية كل يوم؟ زي مثلاً: تنقل صور من فولدر للثاني، تمسح ملفات مؤقتة، ترفع باك أب (Backup) لقاعدة البيانات، أو تبعت تقارير لمديرك كل يوم الصبح؟ لو بتعمل ده كله بايدك، يبقى انت بتضيع وقت غالي جداً كان ممكن تقضيه في تعلم حاجة جديدة أو حتى تشرب كوباية شاي وتستمتع بوقتك.

في المقال ده، هنتكلم عن أداة سحرية يمكن ناس كتير ما تعرفش إنها قادرة تعمل ده، وهي لغة بي إتش بي (PHP). غالباً أول ما بتسمع الاسم ده بيجي في بالك مواقع ويب وسيرفرات وأقواس وبابليك هتشمل (HTML)، بس الحقيقة إن بي إتش بي ممكن تشتغل من غير متصفح خالص عن طريق واجهة سطر الأوامر (Command Line Interface - CLI). تعالوا مع بعض نعرف إزاي نكتب سكريبتات أتمتة المهام اليومية باستخدام بي إتش بي سي إل آي (PHP CLI) ونريح دماغنا من الشغل المتكرر.

إيه هو PHP CLI وليه ممكن تحتاره لأتمتة المهام (Automation)؟

زمان، كان بي إتش بي مرتبط ارتباط وثيق بسيرفرات الويب زي أباتشي (Apache) أو إن جي إي إكس (Nginx). لكن من زمان نسبياً، بقى عندنا حاجة اسمها بي إتش بي سي إل آي (PHP CLI). ده ببساطة بيخليك تشغل كود البي إتش بي مباشرة من التيرمينال (Terminal) أو موجه الأوامر (Command Prompt) في جهازك، كأنك شغال بلغة بايثون (Python) أو بَش سكريبت (Bash Script).

الميزة العظيمة هنا إنك كمبرمج ويب، غالباً لغتك الأساسية هي البي إتش بي. فلما تيجي تكتب أدوات أتمتة المهام اليومية (Daily Tasks Automation)، مش هتحتاج تتعلم لغة برمجة جديدة من الصفر. هتقدر تستخدم كل خبرتك، الدوال (Functions)، والمكاتب (Libraries) اللي متعود عليها عشان تنجز مهام النظام بتاعك.

الخطوة الأولى: تجهيز البيئة وتشغيل أول سكريبت سطر أوامر

عشان نبدأ نكتب سكريبتات أتمتة المهام اليومية باستخدام بي إتش بي سي إل آي (PHP CLI)، لازم نتأكد إن البي إتش بي متصطبة عندك على الجهاز ومضافة لمتغيرات البيئة (Environment Variables) عشان تقدر تنادي عليها من أي مكان في التيرمينال.

افتح التيرمينال واكتب الأمر ده عشان تتأكد إن كل حاجة تمام:

php -v

لو ظهرت لك النسخة بتاعت البي إتش بي، يبقى انت جاهز يا بطل. تعالوا نعمل أول ملف وليكن اسمه script.php ونكتب فيه كود بسيط يطرح رسالة ترحيبية:


<?php
echo "أهلاً بيك يا مبدع في عالم الأتمتة!\n";
?>

عشان تشغل السكريبت ده، افتح التيرمينال في نفس الفولدر واكتب:

php script.php

مبروك! كده انت شغلت أول كود بي إتش بي من غير ما تحتاج سيرفر ويب ولا متصفح.

التعامل مع المدخلات والمخرجات في سطر الأوامر (CLI Input & Output)

عشان تعمل أتمتة حقيقية، غالباً هتحتاج تاخد مدخلات من المستخدم أو تطبع نتايج ملونة وواضحة. في البي إتش بي سي إل آي (PHP CLI)، عندنا طرق سهلة جداً لده. مثلاً، مصفوفة $argv بتسمح لك تقرأ البراميترز (Parameters) اللي بتتبعت مع الأمر.

تعالوا نشوف مثال عملي لسكريبت بياخد اسم الشخص ويرحب بيه:


<?php
// التأكد من إدخال الاسم
if (!isset($argv[1])) {
    echo "لو سمحت ادخل الاسم يا غالي!\n";
    echo "الاستخدام: php script.php [اسمك]\n";
    exit(1);
}

$name = $argv[1];
echo "مرحباً بك يا " . $name . "! تم تنفيذ المهمة بنجاح.\n";
?>

لو شغلنا السكريبت بالطريقة دي:

php script.php أحمد

هتلاقي النتيجة بتطرح اسم أحمد فوراً. دي الفكرة اللي بنبني عليها الأدوات الضخمة بعد كده.

مثال عملي: سكريبت لترتيب وفلترة الملفات تلقائياً (File Organizer)

تعالوا نعمل مشروع حقيقي ومفيد جداً لأي مبرمج. كلنا عندنا فولدر الداونلودز (Downloads) بيكون مليص صور وفيديوهات وملفات مضغوطة وزحمة. تعالوا نعمل سكريبت بي إتش بي (PHP Script) يلف على الفولدر ده ويقسم الملفات لفولدرات حسب امتدادها.


<?php
$targetDirectory = "/path/to/your/Downloads/";

if (!is_dir($targetDirectory)) {
    die("المسار غير موجود يا صديقي!\n");
}

$files = scandir($targetDirectory);

foreach ($files as $file) {
    if ($file === '.' || $file === '..') continue;
    
    $filePath = $targetDirectory . $file;
    
    if (is_dir($filePath)) continue; // سيبك من الفولدرات
    
    $extension = strtolower(pathinfo($filePath, PATHINFO_EXTENSION));
    
    // تحديد الفولدر المناسب حسب الامتداد
    $folderName = match($extension) {
        'jpg', 'png', 'gif', 'webp' => 'Images',
        'mp4', 'mkv', 'avi' => 'Videos',
        'pdf', 'docx', 'txt' => 'Documents',
        'zip', 'rar', 'tar' => 'Archives',
        default => 'Others'
    };
    
    $destinationFolder = $targetDirectory . $folderName . '/';
    
    if (!is_dir($destinationFolder)) {
        mkdir($destinationFolder, 0777, true);
    }
    
    rename($filePath, $destinationFolder . $file);
    echo "تم نقل الملف: $file إلى فولدر $folderName\n";
}

echo "تم تنظيم الفولدر بنجاح يا وحش!\n";
?>

السكريبت البسيط ده بيوفر عليك ساعات من الترتيب اليدوي، وتقدر تشغله في الخلفية كل يوم باستخدام أداة الكرون جوب (Cron Job) في لينكس أو ويندوز توب سكيديولر (Task Scheduler).

نصيحة من أخ: إزاي تطور مهاراتك في أتمتة المهام؟

يا صاحبي، السبرمجة مش بس بناء مواقع وتطبيقات ويب، البرمجة هي فن حل المشكلات وتوفير الوقت والجهد. لما تقابلك مشكلة بتتكرر معاك أكتر من مرتين في يومك، وقف فوراً واسأل نفسك: "هو أنا ممكن أعمل أتمتة (Automate) للموضوع ده؟".

ابدأ بحاجات بسيطة زي السكريبتات اللي شرحناها، ومع الوقت ابني أدوات خاصة بيك (CLI Tools) ترفع بيها كفاءتك وتخليك مبرمج أذكياء بيفكر صح. ما تكسلش، وجرب بنفسك حالا، ولو قابلتك أي مشكلة، المجتمع التقني دايماً هنا عشان يساعدك.


Share

Related posts

Jul 25, 2026 • 1 min read
Reading Count: 2
ازاي توفر وقتك وتعمل أتمتة للمهام اليومية باستخدام PHP CLI

ازاي توفر وقتك وتعمل أتمتة للمهام اليومية باستخدام PHP CLI أهلاً بيك يا صديقي المبرمج في عالم الإنتا...

Jul 25, 2026 • 1 min read
Reading Count: 9
التشفير المتقدم في PHP: إزاي تحمي بيانات مستخدميك باستخدام Sodium وتنسى الطرق القديمة؟

التصنيف: تطوير الـ ويب (Web Development) وشروحات برمجية (Tutorials) التشفير المتقدم في PHP: إزاي تحم...

Jul 25, 2026 • 1 min read
Reading Count: 3
عنوان تلقائي

يا هلا بيك يا بشمهندس! لو بتكتب سكربتات PHP طويلة الأمد (Long-running scripts)، زي الـ Daemon proces...