مرجع PHP

دوال PHP الشاملة مع أمثلة تطبيقية — 340 دالة


PHP Arrays

29 عنصر
الاسم الوصف مثال
count() إرجاع عدد العناصر في المصفوفة.
$arr = [1, 2, 3, 4, 5];
echo count($arr); // الناتج: 5
array_push() إضافة عنصر أو أكثر إلى نهاية المصفوفة.
$arr = [1, 2, 3];
array_push($arr, 4, 5);
print_r($arr); // الناتج: [1, 2, 3, 4, 5]
array_pop() إزالة العنصر الأخير من المصفوفة وإرجاعه.
$arr = [1, 2, 3];
$last = array_pop($arr);
echo $last; // الناتج: 3
array_shift() إزالة العنصر الأول من المصفوفة وإرجاعه.
$arr = [1, 2, 3];
$first = array_shift($arr);
echo $first; // الناتج: 1
array_unshift() إضافة عنصر أو أكثر إلى بداية المصفوفة.
$arr = [2, 3, 4];
array_unshift($arr, 1);
print_r($arr); // الناتج: [1, 2, 3, 4]
in_array() التحقق مما إذا كان عنصر معين موجودًا في المصفوفة.
$arr = ["apple", "banana", "orange"];
echo in_array("banana", $arr) ? "Yes" : "No"; // الناتج: Yes
array_merge() دمج مصفوفتين أو أكثر في مصفوفة واحدة.
$arr1 = [1, 2, 3];
$arr2 = [4, 5, 6];
$result = array_merge($arr1, $arr2);
print_r($result); // الناتج: [1, 2, 3, 4, 5, 6]
array_combine() إنشاء مصفوفة باستخدام مصفوفتين، واحدة للمفاتيح والأخرى للقيم.
$keys = ["name", "age"];
$values = ["Ahmed", 25];
$result = array_combine($keys, $values);
print_r($result); // الناتج: ["name" => "Ahmed", "age" => 25]
array_keys() إرجاع جميع المفاتيح في المصفوفة.
$arr = ["name" => "Ahmed", "age" => 25];
print_r(array_keys($arr)); // الناتج: ["name", "age"]
array_values() إرجاع جميع القيم في المصفوفة.
$arr = ["name" => "Ahmed", "age" => 25];
print_r(array_values($arr)); // الناتج: ["Ahmed", 25]
array_flip() عكس المفاتيح والقيم في المصفوفة.
$arr = ["Ahmed" => "name", 25 => "age"];
print_r(array_flip($arr)); // الناتج: ["name" => "Ahmed", "age" => 25]
array_reverse() عكس ترتيب عناصر المصفوفة.
$arr = [1, 2, 3, 4, 5];
print_r(array_reverse($arr)); // الناتج: [5, 4, 3, 2, 1]
array_unique() إزالة القيم المكررة في المصفوفة.
$arr = [1, 2, 2, 3, 4, 4, 5];
print_r(array_unique($arr)); // الناتج: [1, 2, 3, 4, 5]
array_slice() قص جزء معين من المصفوفة.
$arr = [1, 2, 3, 4, 5];
print_r(array_slice($arr, 1, 3)); // الناتج: [2, 3, 4]
array_splice() إزالة جزء معين من المصفوفة واستبداله.
$arr = [1, 2, 3, 4, 5];
array_splice($arr, 2, 2, [99, 100]);
print_r($arr); // الناتج: [1, 2, 99, 100, 5]
array_map() تطبيق دالة على كل عنصر في المصفوفة.
$arr = [1, 2, 3, 4, 5];
$result = array_map(fn($n) => $n * 2, $arr);
print_r($result); // الناتج: [2, 4, 6, 8, 10]
array_filter() تصفية عناصر المصفوفة بناءً على شرط معين.
$arr = [1, 2, 3, 4, 5, 6];
$result = array_filter($arr, fn($n) => $n % 2 == 0);
print_r($result); // الناتج: [2, 4, 6]
array_reduce() تطبيق دالة تراكمية على عناصر المصفوفة.
$arr = [1, 2, 3, 4, 5];
$sum = array_reduce($arr, fn($carry, $n) => $carry + $n, 0);
echo $sum; // الناتج: 15
array_diff() إرجاع العناصر المختلفة بين مصفوفتين.
$arr1 = [1, 2, 3, 4];
$arr2 = [2, 4];
$diff = array_diff($arr1, $arr2);
print_r($diff); // [1, 3]
array_intersect() إرجاع العناصر المشتركة بين مصفوفتين.
$arr1 = [1, 2, 3, 4];
$arr2 = [2, 4, 5];
$common = array_intersect($arr1, $arr2);
print_r($common); // [2, 4]
array_values() إرجاع قيم المصفوفة فقط.
$arr = ["a" => 1, "b" => 2, "c" => 3];
$values = array_values($arr);
print_r($values); // [1, 2, 3]
array_reverse() عكس ترتيب عناصر المصفوفة.
$arr = [1, 2, 3, 4];
$reversed = array_reverse($arr);
print_r($reversed); // [4, 3, 2, 1]
array_unique() إزالة القيم المكررة من المصفوفة.
$arr = [1, 2, 2, 3, 4, 4, 5];
$unique = array_unique($arr);
print_r($unique); // [1, 2, 3, 4, 5]
array_shift() إزالة العنصر الأول من المصفوفة.
$arr = [1, 2, 3, 4];
$first = array_shift($arr);
echo $first; // 1
array_unshift() إضافة عنصر أو أكثر إلى بداية المصفوفة.
$arr = [2, 3, 4];
array_unshift($arr, 1);
print_r($arr); // [1, 2, 3, 4]
sort() ترتيب عناصر المصفوفة تصاعديًا.
$arr = [4, 2, 8, 1];
sort($arr);
print_r($arr); // [1, 2, 4, 8]
rsort() ترتيب عناصر المصفوفة تنازليًا.
$arr = [4, 2, 8, 1];
rsort($arr);
print_r($arr); // [8, 4, 2, 1]
array_slice() قص جزء من المصفوفة.
$arr = [1, 2, 3, 4, 5];
$slice = array_slice($arr, 1, 3);
print_r($slice); // [2, 3, 4]
array_splice() إزالة جزء من المصفوفة واستبداله.
$arr = [1, 2, 3, 4, 5];
array_splice($arr, 1, 2, [99, 100]);
print_r($arr); // [1, 99, 100, 4, 5]

Database

18 عنصر
الاسم الوصف مثال
mysqli_connect() إنشاء اتصال بقاعدة البيانات باستخدام MySQLi.
$conn = mysqli_connect("localhost", "root", "", "database_name");
if (!$conn) {
    die("فشل الاتصال: " . mysqli_connect_error());
}
mysqli_query() تنفيذ استعلام SQL.
$sql = "SELECT * FROM users";
$result = mysqli_query($conn, $sql);
mysqli_fetch_assoc() إرجاع صف واحد كمصفوفة ترابطية.
$row = mysqli_fetch_assoc($result);
echo $row["username"];
mysqli_fetch_array() إرجاع صف واحد كمصفوفة عددية أو ترابطية.
$row = mysqli_fetch_array($result);
echo $row[0];
mysqli_fetch_row() إرجاع صف واحد كمصفوفة عددية.
$row = mysqli_fetch_row($result);
echo $row[0];
mysqli_num_rows() إرجاع عدد الصفوف في نتيجة الاستعلام.
$num_rows = mysqli_num_rows($result);
echo "عدد المستخدمين: " . $num_rows;
mysqli_affected_rows() إرجاع عدد الصفوف المتأثرة بعملية SQL.
$affected_rows = mysqli_affected_rows($conn);
echo "عدد الصفوف المتأثرة: " . $affected_rows;
mysqli_real_escape_string() تنظيف البيانات المدخلة لتجنب هجمات SQL Injection.
$safe_input = mysqli_real_escape_string($conn, $_POST["username"]);
mysqli_close() إغلاق اتصال قاعدة البيانات.
mysqli_close($conn);
new PDO() إنشاء اتصال بقاعدة البيانات باستخدام PDO.
$pdo = new PDO("mysql:host=localhost;dbname=database_name", "root", "");
prepare() تحضير استعلام SQL باستخدام PDO.
$stmt = $pdo->prepare("SELECT * FROM users WHERE id = ?");
execute() تنفيذ استعلام محضر باستخدام PDO.
$stmt->execute([1]);
fetch() جلب صف واحد من نتيجة الاستعلام باستخدام PDO.
$row = $stmt->fetch(PDO::FETCH_ASSOC);
echo $row["username"];
fetchAll() جلب جميع الصفوف من نتيجة الاستعلام باستخدام PDO.
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
foreach ($rows as $row) {
    echo $row["username"] . "<br>";
}
lastInsertId() إرجاع رقم آخر معرف تم إدخاله.
$last_id = $pdo->lastInsertId();
echo "آخر ID تم إدخاله: " . $last_id;
beginTransaction() بدء معاملة (Transaction) في PDO.
$pdo->beginTransaction();
commit() تأكيد معاملة (Transaction) في PDO.
$pdo->commit();
rollBack() إلغاء معاملة (Transaction) في PDO.
$pdo->rollBack();

DateTime

9 عنصر
الاسم الوصف مثال
time() إرجاع الوقت الحالي بوحدة الثواني منذ 1 يناير 1970 (Unix Timestamp).
echo time(); // مثال: 1707825600
date() تنسيق التاريخ والوقت وفقًا لنمط معين.
echo date("Y-m-d H:i:s"); // مثال: 2025-02-13 14:30:00
strtotime() تحويل النص إلى طابع زمني (Timestamp).
$timestamp = strtotime("next Monday");
echo date("Y-m-d", $timestamp); // مثال: 2025-02-19
mktime() إنشاء طابع زمني (Timestamp) من مكونات معينة.
$timestamp = mktime(14, 30, 0, 2, 13, 2025);
echo date("Y-m-d H:i:s", $timestamp); // الناتج: 2025-02-13 14:30:00
getdate() إرجاع تفاصيل الوقت والتاريخ في مصفوفة.
$date_info = getdate();
print_r($date_info);
checkdate() التحقق مما إذا كان التاريخ صحيحًا.
echo checkdate(2, 29, 2024) ? "Valid" : "Invalid"; // الناتج: Valid
date_default_timezone_set() تحديد المنطقة الزمنية الافتراضية.
date_default_timezone_set("Asia/Riyadh");
echo date("Y-m-d H:i:s"); // الزمن في الرياض
date_default_timezone_get() إرجاع المنطقة الزمنية الافتراضية.
echo date_default_timezone_get(); // مثال: UTC
gmdate() إرجاع التاريخ والوقت بتوقيت جرينتش.
echo gmdate("Y-m-d H:i:s"); // مثال: 2025-02-13 12:30:00

Errors

10 عنصر
الاسم الوصف مثال
error_reporting() تحديد مستوى الأخطاء التي سيتم عرضها.
error_reporting(E_ALL);
ini_set("display_errors", 1);
trigger_error() إطلاق خطأ مخصص.
function checkAge($age) {
    if ($age < 18) {
        trigger_error("العمر أقل من 18!", E_USER_WARNING);
    }
}
checkAge(16);
set_error_handler() تحديد دالة مخصصة لمعالجة الأخطاء.
function myErrorHandler($errno, $errstr) {
    echo "خطأ [$errno]: $errstr";
}
set_error_handler("myErrorHandler");
echo $undefinedVar; // سيتسبب في خطأ وسيتم التعامل معه
restore_error_handler() إعادة تعيين معالج الأخطاء إلى الافتراضي.
set_error_handler("myErrorHandler");
// تنفيذ بعض الأكواد...
restore_error_handler();
try...catch التعامل مع الأخطاء باستخدام الاستثناءات.
try {
    throw new Exception("حدث خطأ!");
} catch (Exception $e) {
    echo "تم التقاط الاستثناء: " . $e->getMessage();
}
throw إطلاق استثناء يدويًا.
function divide($a, $b) {
    if ($b == 0) {
        throw new Exception("لا يمكن القسمة على الصفر!");
    }
    return $a / $b;
}
try {
    echo divide(10, 0);
} catch (Exception $e) {
    echo "خطأ: " . $e->getMessage();
}
finally كتلة كود يتم تنفيذها دائمًا بعد try و catch.
try {
    echo "المحاولة...";
} catch (Exception $e) {
    echo "خطأ!";
} finally {
    echo "تم التنفيذ!";
}
set_exception_handler() تحديد دالة مخصصة لمعالجة الاستثناءات غير الملتقطة.
function myExceptionHandler($exception) {
    echo "استثناء: " . $exception->getMessage();
}
set_exception_handler("myExceptionHandler");
throw new Exception("حدث خطأ غير متوقع!");
restore_exception_handler() إعادة تعيين معالج الاستثناءات إلى الافتراضي.
set_exception_handler("myExceptionHandler");
// تنفيذ بعض الأكواد...
restore_exception_handler();
error_get_last() إرجاع آخر خطأ حدث في PHP.
var_dump(error_get_last());

File Handling

27 عنصر
الاسم الوصف مثال
fopen() فتح ملف للقراءة أو الكتابة.
$file = fopen("example.txt", "r");
fclose() إغلاق الملف المفتوح.
$file = fopen("example.txt", "r");
fclose($file);
fwrite() كتابة محتوى إلى الملف.
$file = fopen("example.txt", "w");
fwrite($file, "Hello, world!");
fclose($file);
fread() قراءة محتوى الملف.
$file = fopen("example.txt", "r");
$content = fread($file, filesize("example.txt"));
fclose($file);
echo $content;
file_get_contents() قراءة محتوى الملف دفعة واحدة.
$content = file_get_contents("example.txt");
echo $content;
file_put_contents() كتابة محتوى إلى الملف بطريقة مختصرة.
file_put_contents("example.txt", "Hello, PHP!");
fgets() قراءة سطر واحد من الملف.
$file = fopen("example.txt", "r");
$line = fgets($file);
fclose($file);
echo $line;
feof() التحقق مما إذا كان المؤشر وصل إلى نهاية الملف.
$file = fopen("example.txt", "r");
while (!feof($file)) {
    echo fgets($file);
}
fclose($file);
unlink() حذف ملف من الخادم.
unlink("example.txt");
file_exists() التحقق مما إذا كان الملف موجودًا.
if (file_exists("example.txt")) {
    echo "الملف موجود";
} else {
    echo "الملف غير موجود";
}
filesize() إرجاع حجم الملف بالبايت.
echo filesize("example.txt");
rename() إعادة تسمية ملف أو نقله إلى مسار جديد.
rename("oldname.txt", "newname.txt");
copy() نسخ ملف إلى موقع جديد.
copy("source.txt", "destination.txt");
is_readable() التحقق مما إذا كان الملف قابلاً للقراءة.
if (is_readable("example.txt")) {
    echo "الملف قابل للقراءة";
}
is_writable() التحقق مما إذا كان الملف قابلاً للكتابة.
if (is_writable("example.txt")) {
    echo "الملف قابل للكتابة";
}
mkdir() إنشاء مجلد جديد.
mkdir("new_folder");
rmdir() حذف مجلد فارغ.
rmdir("new_folder");
scandir() إرجاع قائمة بجميع الملفات والمجلدات داخل دليل معين.
$files = scandir("some_directory");
print_r($files);
move_uploaded_file() نقل الملف المرفوع إلى مجلد محدد.
if (move_uploaded_file($_FILES["file"]["tmp_name"], "uploads/" . $_FILES["file"]["name"])) { 
    echo "تم رفع الملف بنجاح!"; 
}
mime_content_type() اكتشاف نوع الملف (MIME type) للتحقق من أنه مسموح به.
$file_type = mime_content_type($_FILES["file"]["tmp_name"]); 
if (!in_array($file_type, ["image/jpeg", "image/png", "application/pdf"])) { 
    die("نوع الملف غير مسموح!"); 
}
$_FILES["file"]["size"] التحقق من أن حجم الملف لا يتجاوز الحد المسموح به.
if ($_FILES["file"]["size"] > 2 * 1024 * 1024) { 
    die("حجم الملف كبير جدًا!"); 
}
uniqid() توليد معرف فريد لاسم الملف لمنع التكرار.
$new_file_name = uniqid() . "_" . $_FILES["file"]["name"];
move_uploaded_file($_FILES["file"]["tmp_name"], "uploads/" . $new_file_name);
pathinfo() التحقق من امتداد الملف لمنع رفع ملفات تنفيذية.
$extension = pathinfo($_FILES["file"]["name"], PATHINFO_EXTENSION); 
if (!in_array($extension, ["jpg", "png", "pdf"])) { 
    die("امتداد الملف غير مسموح!"); 
}
imagejpeg() ضغط صورة JPG باستخدام مكتبة GD.
$image = imagecreatefromjpeg($_FILES["file"]["tmp_name"]); 
imagejpeg($image, "uploads/compressed.jpg", 70);
imagescale() تغيير حجم الصورة لتقليل الأبعاد.
$image = imagecreatefromjpeg($_FILES["file"]["tmp_name"]); 
$resized = imagescale($image, 500, 500);
imagejpeg($resized, "uploads/resized.jpg");
ini_set() تغيير إعدادات حجم الملفات المسموح به في PHP.
ini_set("upload_max_filesize", "10M"); 
ini_set("post_max_size", "12M");
mysqli_query() تخزين بيانات الملف بعد رفعه في قاعدة البيانات.
$sql = "INSERT INTO uploaded_files (file_name, file_type, file_size, file_path) 
        VALUES ('$new_file_name', '$file_type', '".$_FILES["file"]["size"]."', 'uploads/$new_file_name')";
mysqli_query($conn, $sql);

JSON XML

9 عنصر
الاسم الوصف مثال
json_encode() تحويل مصفوفة أو كائن إلى JSON.
$data = ["name" => "Ahmed", "age" => 25];
$json = json_encode($data);
echo $json; // {"name":"Ahmed","age":25}
json_decode() تحويل نص JSON إلى مصفوفة أو كائن.
$json = '{"name":"Ahmed","age":25}';
$array = json_decode($json, true);
print_r($array);
json_last_error() إرجاع رمز الخطأ الأخير عند التعامل مع JSON.
$json = "{invalid json}";
json_decode($json);
echo json_last_error(); // تعرض نوع الخطأ
simplexml_load_string() تحميل بيانات XML من نص كسلسلة وتحويلها إلى كائن.
$xml = "<person><name>Ahmed</name><age>25</age></person>";
$person = simplexml_load_string($xml);
echo $person->name;
simplexml_load_file() تحميل بيانات XML من ملف وتحويلها إلى كائن.
$person = simplexml_load_file("data.xml");
echo $person->name;
dom_import_simplexml() تحويل كائن SimpleXML إلى كائن DOMDocument.
$xml = simplexml_load_string("<root><item>Hello</item></root>");
$dom = dom_import_simplexml($xml);
echo $dom->nodeName;
xml_parse() تحليل نص XML باستخدام XML Parser.
$parser = xml_parser_create();
xml_parse($parser, "<root><item>Hello</item></root>");
xml_parser_free($parser);
xml_parser_create() إنشاء محلل XML جديد.
$parser = xml_parser_create();
xml_parser_free() تحرير موارد محلل XML.
$parser = xml_parser_create();
xml_parser_free($parser);

Networking

10 عنصر
الاسم الوصف مثال
gethostbyname() إرجاع عنوان IP الخاص باسم النطاق (DNS).
$ip = gethostbyname("example.com");
echo $ip;
gethostbyaddr() إرجاع اسم المضيف بناءً على عنوان IP.
$host = gethostbyaddr("8.8.8.8");
echo $host;
fsockopen() فتح اتصال شبكة باستخدام بروتوكولات مختلفة.
$socket = fsockopen("www.example.com", 80, $errno, $errstr, 30);
if ($socket) {
    echo "تم الاتصال بنجاح!";
    fclose($socket);
}
pfsockopen() فتح اتصال دائم بشبكة مثل fsockopen ولكن يبقى مفتوحًا.
$socket = pfsockopen("www.example.com", 80);
if ($socket) {
    echo "تم إنشاء اتصال دائم!";
}
stream_socket_client() فتح اتصال شبكة باستخدام الدوال المتدفقة.
$client = stream_socket_client("tcp://www.example.com:80", $errno, $errstr, 30);
if ($client) {
    fwrite($client, "GET / HTTP/1.1
Host: example.com

");
    echo stream_get_contents($client);
    fclose($client);
}
stream_socket_server() إنشاء خادم شبكة يستمع على اتصال.
$server = stream_socket_server("tcp://0.0.0.0:8080", $errno, $errstr);
if ($server) {
    while ($client = stream_socket_accept($server)) {
        fwrite($client, "مرحبًا بك في الخادم!");
        fclose($client);
    }
}
checkdnsrr() التحقق مما إذا كان هناك سجل DNS لنطاق معين.
if (checkdnsrr("example.com", "A")) {
    echo "السجل موجود!";
}
dns_get_record() إرجاع سجلات DNS لنطاق معين.
$records = dns_get_record("example.com", DNS_A);
print_r($records);
getservbyname() إرجاع رقم المنفذ (Port) بناءً على اسم الخدمة.
$port = getservbyname("http", "tcp");
echo $port; // 80
getprotobyname() إرجاع رقم البروتوكول بناءً على اسمه.
$protocol = getprotobyname("tcp");
echo $protocol;

Numbers

12 عنصر
الاسم الوصف مثال
round() تستخدم لتقريب الرقم إلى أقرب قيمة عشرية.
$number = 142.02454678964;
$rounded = round($number, 1); // التقريب إلى منزل عشرية واحدة
echo $rounded; // الناتج: 142.0
round() تستخدم لتقريب الرقم إلى أقرب قيمة عشرية.
$number = 142.02454678964;
$rounded = round($number, 1); // التقريب إلى منزل عشرية واحدة
echo $rounded; // الناتج: 142.0
ceil() تستخدم لتقريب الرقم دائمًا إلى الأعلى.
$number = 5.3;
$rounded = ceil($number);
echo $rounded; // الناتج: 6
floor() تستخدم لتقريب الرقم دائمًا إلى الأسفل.
$number = 5.9;
$rounded = floor($number);
echo $rounded; // الناتج: 5
abs() إرجاع القيمة المطلقة للرقم.
$number = -10;
echo abs($number); // الناتج: 10
pow() حساب القوة (الأس) لرقم معين.
$base = 2;
$exp = 3;
echo pow($base, $exp); // الناتج: 8
sqrt() حساب الجذر التربيعي لرقم معين.
$number = 16;
echo sqrt($number); // الناتج: 4
max() إرجاع أكبر قيمة بين مجموعة من القيم.
echo max(5, 10, 25, 8); // الناتج: 25
min() إرجاع أصغر قيمة بين مجموعة من القيم.
echo min(5, 10, 25, 8); // الناتج: 5
rand() إرجاع رقم عشوائي بين نطاق معين.
echo rand(1, 100); // ناتج عشوائي بين 1 و 100
mt_rand() إرجاع رقم عشوائي بكفاءة أكبر من rand().
echo mt_rand(1, 100); // ناتج عشوائي بين 1 و 100
number_format() تنسيق رقم بالفاصلة العشرية.
$number = 12345.6789;
echo number_format($number, 2); // الناتج: 12,345.68

Security

10 عنصر
الاسم الوصف مثال
md5() تشفير نص باستخدام خوارزمية MD5.
$hash = md5("password");
echo $hash;
sha1() تشفير نص باستخدام خوارزمية SHA-1.
$hash = sha1("password");
echo $hash;
hash() تشفير نص باستخدام خوارزميات مختلفة مثل SHA-256.
$hash = hash("sha256", "password");
echo $hash;
password_hash() تشفير كلمة مرور باستخدام bcrypt أو Argon2.
$hashed_password = password_hash("my_password", PASSWORD_DEFAULT);
echo $hashed_password;
password_verify() التحقق من كلمة المرور مقابل الهاش المخزن.
$password = "my_password";
$hashed_password = password_hash($password, PASSWORD_DEFAULT);
if (password_verify($password, $hashed_password)) {
    echo "كلمة المرور صحيحة!";
} else {
    echo "كلمة المرور غير صحيحة!";
}
openssl_encrypt() تشفير نص باستخدام OpenSSL.
$data = "Hello, World!";
$key = "mysecretkey";
$encrypted = openssl_encrypt($data, "AES-128-ECB", $key);
echo $encrypted;
openssl_decrypt() فك تشفير نص مشفر باستخدام OpenSSL.
$encrypted = "encrypted_text";
$key = "mysecretkey";
$decrypted = openssl_decrypt($encrypted, "AES-128-ECB", $key);
echo $decrypted;
random_bytes() توليد بايتات عشوائية آمنة.
$bytes = random_bytes(16);
echo bin2hex($bytes);
random_int() توليد أعداد صحيحة عشوائية آمنة.
$number = random_int(1, 100);
echo $number;
filter_var() تنقية المدخلات باستخدام فلاتر مختلفة مثل FILTER_SANITIZE_STRING.
$email = "[email protected]";
if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
    echo "البريد الإلكتروني صالح!";
} else {
    echo "بريد إلكتروني غير صالح!";
}

Sessions Cookies

14 عنصر
الاسم الوصف مثال
session_start() بدء أو استئناف جلسة PHP.
session_start();
$_SESSION["username"] = "Ahmed";
session_destroy() حذف جميع بيانات الجلسة.
session_start();
session_destroy();
session_unset() إزالة جميع المتغيرات المخزنة في الجلسة.
session_start();
session_unset();
session_id() إرجاع أو تعيين معرف الجلسة الحالي.
session_start();
echo session_id();
session_regenerate_id() إنشاء معرف جلسة جديد لمنع اختراق الجلسات.
session_start();
session_regenerate_id(true);
setcookie() إنشاء ملف تعريف ارتباط (Cookie) على المتصفح.
setcookie("user", "Ahmed", time() + 3600, "/");
$_COOKIE مصفوفة تحتوي على جميع ملفات تعريف الارتباط المخزنة.
echo $_COOKIE["user"];
$_SESSION مصفوفة تحتوي على جميع بيانات الجلسة المخزنة.
echo $_SESSION["username"];
session_name() تحديد أو إرجاع اسم الجلسة.
session_name("MySession");
echo session_name();
session_write_close() إغلاق الجلسة وحفظ البيانات المخزنة.
session_start();
session_write_close();
session_status() إرجاع حالة الجلسة الحالية.
switch (session_status()) {
    case PHP_SESSION_DISABLED:
        echo "الجلسات غير مفعلة";
        break;
    case PHP_SESSION_NONE:
        echo "لم يتم بدء جلسة";
        break;
    case PHP_SESSION_ACTIVE:
        echo "الجلسة نشطة";
        break;
}
session_cache_limiter() تحديد أو إرجاع نوع التخزين المؤقت للجلسة.
echo session_cache_limiter();
session_set_cookie_params() تحديد إعدادات ملفات تعريف الارتباط للجلسة.
session_set_cookie_params(3600, "/", "", true, true);
session_start();
session_get_cookie_params() إرجاع إعدادات ملفات تعريف الارتباط للجلسة.
$params = session_get_cookie_params();
print_r($params);

Strings

35 عنصر
الاسم الوصف مثال
strlen() إرجاع طول النص.
$text = "Hello World!";
echo strlen($text); // الناتج: 12
strtoupper() تحويل النص إلى حروف كبيرة.
$text = "hello";
echo strtoupper($text); // الناتج: HELLO
strtolower() تحويل النص إلى حروف صغيرة.
$text = "HELLO";
echo strtolower($text); // الناتج: hello
ucfirst() تحويل أول حرف في النص إلى حرف كبير.
$text = "hello world";
echo ucfirst($text); // الناتج: Hello world
lcfirst() تحويل أول حرف في النص إلى حرف صغير.
$text = "Hello World";
echo lcfirst($text); // الناتج: hello World
ucwords() تحويل أول حرف في كل كلمة إلى حرف كبير.
$text = "hello world";
echo ucwords($text); // الناتج: Hello World
trim() إزالة المسافات البيضاء من بداية ونهاية النص.
$text = "  hello world  ";
echo trim($text); // الناتج: "hello world"
ltrim() إزالة المسافات البيضاء من بداية النص.
$text = "  hello world  ";
echo ltrim($text); // الناتج: "hello world  "
rtrim() إزالة المسافات البيضاء من نهاية النص.
$text = "  hello world  ";
echo rtrim($text); // الناتج: "  hello world"
strpos() البحث عن موقع أول ظهور لنص معين.
$text = "Hello World";
echo strpos($text, "World"); // الناتج: 6
str_replace() استبدال نص معين بنص آخر داخل النصوص.
$text = "Hello World";
echo str_replace("World", "PHP", $text); // الناتج: Hello PHP
substr() قص جزء معين من النص.
$text = "Hello World";
echo substr($text, 6, 5); // الناتج: World
strrev() عكس النص.
$text = "Hello";
echo strrev($text); // الناتج: olleH
explode() تحويل النص إلى مصفوفة بناءً على فاصل معين.
$text = "apple,banana,orange";
$array = explode(",", $text);
print_r($array); // الناتج: Array ( [0] => apple [1] => banana [2] => orange )
implode() تحويل المصفوفة إلى نص باستخدام فاصل.
$array = ["apple", "banana", "orange"];
$text = implode(", ", $array);
echo $text; // الناتج: apple, banana, orange
str_repeat() تكرار النص بعدد معين من المرات.
$text = "Hello ";
echo str_repeat($text, 3); // الناتج: Hello Hello Hello 
htmlspecialchars() تحويل النصوص لمنع تنفيذ أكواد HTML الضارة.
$text = "<script>alert('Hacked!');</script>";
echo htmlspecialchars($text); 
// الناتج: &lt;script&gt;alert('Hacked!');&lt;/script&gt;
html_entity_decode() إرجاع النصوص إلى حالتها الأصلية بعد تحويلها بـ htmlspecialchars.
$text = "&lt;h1&gt;Hello&lt;/h1&gt;";
echo html_entity_decode($text); // الناتج: <h1>Hello</h1>
str_replace() استبدال جزء من النص بسلسلة أخرى.
$text = "مرحبا بالعالم";
$newText = str_replace("العالم", "Ahmed", $text);
echo $newText; // مرحبا بـ Ahmed
substr() استخراج جزء معين من النص.
$text = "Ahmed AlaaEldein";
$sub = substr($text, 0, 5);
echo $sub; // Ahmed
explode() تقسيم النص إلى مصفوفة باستخدام فاصل.
$text = "apple,banana,orange";
$fruits = explode(",", $text);
print_r($fruits); // [ "apple", "banana", "orange" ]
implode() دمج عناصر المصفوفة في نص باستخدام فاصل.
$fruits = ["apple", "banana", "orange"];
$text = implode(", ", $fruits);
echo $text; // apple, banana, orange
trim() إزالة المسافات البيضاء من بداية ونهاية النص.
$text = "   Ahmed   ";
echo trim($text); // "Ahmed"
htmlspecialchars() تحويل الأحرف الخاصة في HTML إلى رموز.
$html = "<script>alert('Hack!');</script>";
$safeHtml = htmlspecialchars($html);
echo $safeHtml; // &lt;script&gt;alert('Hack!');&lt;/script&gt;
strip_tags() إزالة جميع وسوم HTML من النص.
$html = "<b>مرحبا</b> بالعالم!";
echo strip_tags($html); // مرحبا بالعالم!
strtolower() تحويل النص إلى حروف صغيرة.
$text = "AHMED ALAAELDEIN";
echo strtolower($text); // ahmed alaaeldein
strtoupper() تحويل النص إلى حروف كبيرة.
$text = "ahmed alaaeldein";
echo strtoupper($text); // AHMED ALAAELDEIN
ucwords() تحويل أول حرف من كل كلمة إلى حرف كبير.
$text = "ahmed alaaeldein";
echo ucwords($text); // Ahmed AlaaEldein
strrev() عكس النص.
$text = "Ahmed";
echo strrev($text); // demhA
strlen() إرجاع طول النص.
$text = "Ahmed";
echo strlen($text); // 5
strpos() البحث عن موضع جزء معين في النص.
$text = "مرحبا بالعالم";
$pos = strpos($text, "العالم");
echo $pos; // 7
str_shuffle() إعادة ترتيب حروف النص عشوائيًا.
$text = "Ahmed";
echo str_shuffle($text); // قد ينتج "mAdhe" أو غيره
str_repeat() تكرار النص عدد معين من المرات.
$text = "Hello ";
echo str_repeat($text, 3); // Hello Hello Hello 
wordwrap() تقسيم النص إلى أسطر وفقًا لطول معين.
$text = "This is a long text that needs wrapping.";
echo wordwrap($text, 10, "
");
nl2br() تحويل الأسطر الجديدة إلى وسم <br> في HTML.
$text = "Hello
World!";
echo nl2br($text); // Hello<br>World!

System

18 عنصر
الاسم الوصف مثال
phpinfo() عرض معلومات حول إعدادات PHP والملحقات المثبتة.
phpinfo();
getenv() الحصول على قيمة متغير بيئة.
$path = getenv("PATH");
echo $path;
putenv() تعيين قيمة لمتغير بيئة.
putenv("MY_VAR=Hello");
echo getenv("MY_VAR");
exec() تنفيذ أمر نظام وإرجاع النتيجة.
$output = exec("ls -l");
echo $output;
shell_exec() تنفيذ أمر نظام وإرجاع النتيجة الكاملة.
$output = shell_exec("ls -l");
echo "<pre>$output</pre>";
system() تنفيذ أمر نظام وعرض الناتج مباشرة.
system("ls -l");
passthru() تنفيذ أمر نظام وإخراج النتيجة مباشرة دون تعديل.
passthru("ls -l");
ini_get() الحصول على قيمة إعداد من ملف php.ini.
$max_upload = ini_get("upload_max_filesize");
echo $max_upload;
ini_set() تغيير إعدادات PHP مؤقتًا أثناء التنفيذ.
ini_set("display_errors", 1);
memory_get_usage() الحصول على مقدار الذاكرة المستخدمة حاليًا.
echo memory_get_usage() . " bytes";
gethostname() الحصول على اسم المضيف للجهاز.
echo gethostname();
getcwd() الحصول على دليل العمل الحالي.
echo getcwd();
chdir() تغيير دليل العمل الحالي.
chdir("/var/www/html");
echo getcwd();
unlink() حذف ملف من النظام.
unlink("file.txt");
basename() إرجاع اسم الملف من مسار معين.
$file = "/var/www/html/index.php";
echo basename($file); // index.php
dirname() إرجاع اسم الدليل من مسار معين.
$file = "/var/www/html/index.php";
echo dirname($file); // /var/www/html
disk_free_space() الحصول على المساحة الحرة في قرص معين.
echo disk_free_space("/");
disk_total_space() الحصول على إجمالي مساحة القرص.
echo disk_total_space("/");

OOP

24 عنصر
الاسم الوصف مثال
__construct() يتم استدعاؤه تلقائيًا عند إنشاء كائن من الفئة.
class Car {
    public $brand;
    public function __construct($brand) {
        $this->brand = $brand;
    }
}
$car = new Car("Toyota");
echo $car->brand; // Toyota
__destruct() يتم استدعاؤه تلقائيًا عند انتهاء الكائن أو عند عدم الحاجة إليه.
class Test {
    public function __destruct() {
        echo "تم تدمير الكائن!";
    }
}
$obj = new Test();
unset($obj); // سيتم طباعة "تم تدمير الكائن!"
class_exists() للتحقق مما إذا كانت الفئة موجودة أم لا.
if (class_exists("Car")) {
    echo "الفئة موجودة!";
} else {
    echo "الفئة غير موجودة!";
}
method_exists() للتحقق مما إذا كانت الطريقة موجودة في الكائن أم لا.
class Test {
    public function sayHello() {
        return "Hello!";
    }
}
$obj = new Test();
if (method_exists($obj, "sayHello")) {
    echo $obj->sayHello();
}
property_exists() للتحقق مما إذا كان المتغير موجودًا داخل كائن معين.
class Person {
    public $name = "Ahmed";
}
$person = new Person();
if (property_exists($person, "name")) {
    echo "المتغير name موجود!";
}
get_class() إرجاع اسم الفئة التي ينتمي إليها الكائن.
class Animal {}
$dog = new Animal();
echo get_class($dog); // Animal
get_parent_class() إرجاع اسم الفئة الأب إذا كان الكائن ينتمي إلى فئة فرعية.
class Animal {}
class Dog extends Animal {}
$dog = new Dog();
echo get_parent_class($dog); // Animal
is_subclass_of() للتحقق مما إذا كانت الفئة ترث من فئة أخرى.
class Animal {}
class Dog extends Animal {}
$dog = new Dog();
if (is_subclass_of($dog, "Animal")) {
    echo "Dog يرث من Animal!";
}
interface_exists() للتحقق مما إذا كان الإنترفيس موجودًا.
interface Logger {}
if (interface_exists("Logger")) {
    echo "الإنترفيس موجود!";
}
trait_exists() للتحقق مما إذا كان التريت موجودًا أم لا.
trait ExampleTrait {}
if (trait_exists("ExampleTrait")) {
    echo "التريت موجود!";
}
__call() يتم استدعاؤه عند محاولة الوصول إلى دالة غير موجودة في الكائن.
class Test {
    public function __call($name, $arguments) {
        return "تم استدعاء الدالة غير الموجودة: " . $name;
    }
}
$obj = new Test();
echo $obj->missingMethod();
__callStatic() يتم استدعاؤه عند محاولة استدعاء دالة غير موجودة بطريقة static.
class Test {
    public static function __callStatic($name, $arguments) {
        return "تم استدعاء الدالة غير الموجودة: " . $name;
    }
}
echo Test::missingStaticMethod();
__get() يتم استدعاؤه عند محاولة الوصول إلى خاصية غير موجودة.
class Test {
    private $data = [];
    public function __get($name) {
        return "القيمة الافتراضية للخاصية: " . $name;
    }
}
$obj = new Test();
echo $obj->unknownProperty;
__set() يتم استدعاؤه عند محاولة تعيين قيمة لخاصية غير موجودة.
class Test {
    private $data = [];
    public function __set($name, $value) {
        echo "تم تعيين القيمة: $value للخاصية $name";
    }
}
$obj = new Test();
$obj->newProperty = "Hello";
__isset() يتم استدعاؤه عند استخدام isset() أو empty() على خاصية غير موجودة.
class Test {
    private $data = [];
    public function __isset($name) {
        return false;
    }
}
$obj = new Test();
var_dump(isset($obj->unknownProperty));
__unset() يتم استدعاؤه عند محاولة حذف خاصية غير موجودة باستخدام unset().
class Test {
    private $data = [];
    public function __unset($name) {
        echo "تم حذف الخاصية: $name";
    }
}
$obj = new Test();
unset($obj->someProperty);
__toString() يتم استدعاؤه عند محاولة طباعة كائن كمحتوى نصي.
class Test {
    public function __toString() {
        return "تم استدعاء __toString()";
    }
}
$obj = new Test();
echo $obj;
__invoke() يتم استدعاؤه عند محاولة استخدام الكائن كدالة.
class Test {
    public function __invoke($param) {
        return "تم استدعاء الكائن مع المعامل: " . $param;
    }
}
$obj = new Test();
echo $obj("Hello");
__clone() يتم استدعاؤه عند استنساخ كائن باستخدام clone.
class Test {
    public $value;
    public function __clone() {
        $this->value = "تم استنساخه";
    }
}
$obj1 = new Test();
$obj2 = clone $obj1;
echo $obj2->value;
final تُستخدم لتحديد أن الفئة أو الدالة لا يمكن توريثها أو إعادة تعريفها.
class Base {
    final public function sayHello() {
        echo "مرحبًا من Base";
    }
}
class Derived extends Base {
    // لا يمكن إعادة تعريف sayHello() هنا
}
abstract class تعريف فئة لا يمكن إنشاء كائن منها مباشرةً، ولكن يجب أن يتم توريثها.
abstract class Animal {
    abstract public function makeSound();
}
class Dog extends Animal {
    public function makeSound() {
        return "Woof!";
    }
}
$dog = new Dog();
echo $dog->makeSound();
interface يحدد مجموعة من الدوال التي يجب أن يتم تنفيذها في أي فئة تقوم بتنفيذ الإنترفيس.
interface Logger {
    public function log($message);
}
class FileLogger implements Logger {
    public function log($message) {
        echo "Logging to file: " . $message;
    }
}
$logger = new FileLogger();
$logger->log("Hello World!");
trait يوفر طريقة لإعادة استخدام الشيفرة البرمجية عبر فئات متعددة دون الحاجة إلى الوراثة.
trait Logger {
    public function log($message) {
        echo "Log: " . $message;
    }
}
class User {
    use Logger;
}
$user = new User();
$user->log("User created!");
static يستخدم لتعريف خصائص أو دوال يمكن استدعاؤها دون إنشاء كائن.
class Math {
    public static function add($a, $b) {
        return $a + $b;
    }
}
echo Math::add(5, 10);

GD

26 عنصر
الاسم الوصف مثال
imagecreate() ينشئ صورة فارغة جديدة بحجم محدد.
$img = imagecreate(200, 100);
$bg_color = imagecolorallocate($img, 255, 255, 255);
header("Content-Type: image/png");
imagepng($img);
imagedestroy($img);
imagecreatetruecolor() ينشئ صورة جديدة بجودة عالية وألوان حقيقية.
$img = imagecreatetruecolor(300, 200);
$bg_color = imagecolorallocate($img, 0, 0, 0);
imagefill($img, 0, 0, $bg_color);
header("Content-Type: image/png");
imagepng($img);
imagedestroy($img);
imagecolorallocate() ينشئ لونًا جديدًا للصورة.
$img = imagecreatetruecolor(200, 200);
$red = imagecolorallocate($img, 255, 0, 0);
imagefill($img, 0, 0, $red);
header("Content-Type: image/png");
imagepng($img);
imagedestroy($img);
imagefill() يملأ الصورة بلون معين.
$img = imagecreatetruecolor(200, 200);
$blue = imagecolorallocate($img, 0, 0, 255);
imagefill($img, 0, 0, $blue);
header("Content-Type: image/png");
imagepng($img);
imagedestroy($img);
imageline() يرسم خطًا مستقيمًا بين نقطتين.
$img = imagecreatetruecolor(200, 200);
$white = imagecolorallocate($img, 255, 255, 255);
imageline($img, 0, 0, 200, 200, $white);
header("Content-Type: image/png");
imagepng($img);
imagedestroy($img);
imageellipse() يرسم دائرة أو بيضاويًا.
$img = imagecreatetruecolor(200, 200);
$green = imagecolorallocate($img, 0, 255, 0);
imageellipse($img, 100, 100, 100, 100, $green);
header("Content-Type: image/png");
imagepng($img);
imagedestroy($img);
imagerectangle() يرسم مستطيلًا.
$img = imagecreatetruecolor(200, 200);
$yellow = imagecolorallocate($img, 255, 255, 0);
imagerectangle($img, 50, 50, 150, 150, $yellow);
header("Content-Type: image/png");
imagepng($img);
imagedestroy($img);
imagearc() يرسم قوسًا.
$img = imagecreatetruecolor(200, 200);
$purple = imagecolorallocate($img, 128, 0, 128);
imagearc($img, 100, 100, 150, 150, 0, 180, $purple);
header("Content-Type: image/png");
imagepng($img);
imagedestroy($img);
imagefilledrectangle() يرسم مستطيلًا ممتلئًا.
$img = imagecreatetruecolor(200, 200);
$orange = imagecolorallocate($img, 255, 165, 0);
imagefilledrectangle($img, 50, 50, 150, 150, $orange);
header("Content-Type: image/png");
imagepng($img);
imagedestroy($img);
imagefilledellipse() يرسم دائرة أو بيضاويًا ممتلئًا.
$img = imagecreatetruecolor(200, 200);
$cyan = imagecolorallocate($img, 0, 255, 255);
imagefilledellipse($img, 100, 100, 100, 100, $cyan);
header("Content-Type: image/png");
imagepng($img);
imagedestroy($img);
imagestring() يكتب نصًا بسيطًا على الصورة.
$img = imagecreatetruecolor(200, 100);
$white = imagecolorallocate($img, 255, 255, 255);
imagestring($img, 5, 50, 40, "Hello GD", $white);
header("Content-Type: image/png");
imagepng($img);
imagedestroy($img);
imagettftext() يكتب نصًا باستخدام خط TrueType.
$img = imagecreatetruecolor(300, 150);
$white = imagecolorallocate($img, 255, 255, 255);
$font = "arial.ttf"; // ضع المسار الصحيح للخط
imagettftext($img, 20, 0, 50, 80, $white, $font, "Hello GD!");
header("Content-Type: image/png");
imagepng($img);
imagedestroy($img);
imagecopy() ينسخ جزءًا من صورة إلى أخرى.
$img1 = imagecreatefrompng("image1.png");
$img2 = imagecreatefrompng("image2.png");
imagecopy($img1, $img2, 50, 50, 0, 0, imagesx($img2), imagesy($img2));
header("Content-Type: image/png");
imagepng($img1);
imagedestroy($img1);
imagedestroy($img2);
imagepng() يُستخدم لإنشاء صورة بتنسيق PNG.
$img = imagecreatetruecolor(200, 100);
$bg = imagecolorallocate($img, 255, 255, 255);
imagefill($img, 0, 0, $bg);
header("Content-Type: image/png");
imagepng($img);
imagedestroy($img);
imagejpeg() يُستخدم لإنشاء صورة بتنسيق JPEG.
$img = imagecreatetruecolor(200, 100);
$bg = imagecolorallocate($img, 255, 255, 255);
imagefill($img, 0, 0, $bg);
header("Content-Type: image/jpeg");
imagejpeg($img);
imagedestroy($img);
imagegif() يُستخدم لإنشاء صورة بتنسيق GIF.
$img = imagecreatetruecolor(200, 100);
$bg = imagecolorallocate($img, 255, 255, 255);
imagefill($img, 0, 0, $bg);
header("Content-Type: image/gif");
imagegif($img);
imagedestroy($img);
imagedestroy() يحذف الصورة من الذاكرة لتحرير الموارد.
$img = imagecreatetruecolor(200, 100);
imagedestroy($img);
imagecopyresampled() يُستخدم لتغيير حجم صورة بجودة عالية مع الحفاظ على التفاصيل.
$src = imagecreatefromjpeg("source.jpg");
$dst = imagecreatetruecolor(100, 100);
imagecopyresampled($dst, $src, 0, 0, 0, 0, 100, 100, imagesx($src), imagesy($src));
header("Content-Type: image/jpeg");
imagejpeg($dst);
imagedestroy($src);
imagedestroy($dst);
imagecopymerge() يُستخدم لدمج صورتين مع تحديد مستوى الشفافية.
$src = imagecreatefrompng("image1.png");
$dst = imagecreatefrompng("image2.png");
imagecopymerge($dst, $src, 50, 50, 0, 0, imagesx($src), imagesy($src), 50);
header("Content-Type: image/png");
imagepng($dst);
imagedestroy($src);
imagedestroy($dst);
imagefilter() يُطبق تأثيرات مرئية على الصورة مثل التعتيم أو الألوان الرمادية.
$img = imagecreatefromjpeg("image.jpg");
imagefilter($img, IMG_FILTER_GRAYSCALE);
header("Content-Type: image/jpeg");
imagejpeg($img);
imagedestroy($img);
imageflip() يعكس الصورة أفقيًا أو عموديًا.
$img = imagecreatefromjpeg("image.jpg");
imageflip($img, IMG_FLIP_HORIZONTAL);
header("Content-Type: image/jpeg");
imagejpeg($img);
imagedestroy($img);
imagescale() يُستخدم لتغيير حجم الصورة بسهولة.
$img = imagecreatefrompng("image.png");
$resized = imagescale($img, 200, 200);
header("Content-Type: image/png");
imagepng($resized);
imagedestroy($img);
imagedestroy($resized);
imagegrabscreen() يلتقط لقطة شاشة كاملة للنظام (يتطلب نظام تشغيل يدعمه).
$img = imagegrabscreen();
header("Content-Type: image/png");
imagepng($img);
imagedestroy($img);
imagegrabwindow() يلتقط لقطة شاشة لنافذة معينة (يتطلب نظام تشغيل يدعمه).
$windowID = 12345; // يجب تحديد معرف النافذة
$img = imagegrabwindow($windowID);
header("Content-Type: image/png");
imagepng($img);
imagedestroy($img);
imageconvolution() يُطبق مرشحات التنعيم أو الحدة على الصورة باستخدام مصفوفة التفاف.
$img = imagecreatefromjpeg("image.jpg");
$matrix = [[1, 1, 1], [1, -7, 1], [1, 1, 1]];
imageconvolution($img, $matrix, 1, 0);
header("Content-Type: image/jpeg");
imagejpeg($img);
imagedestroy($img);
imagelayereffect() يحدد كيفية دمج الطبقات عند التعامل مع الصور ذات القنوات الشفافة.
$img = imagecreatetruecolor(200, 200);
imagealphablending($img, false);
imagelayereffect($img, IMG_EFFECT_OVERLAY);
header("Content-Type: image/png");
imagepng($img);
imagedestroy($img);

Email

12 عنصر
الاسم الوصف مثال
mail() ترسل بريدًا إلكترونيًا باستخدام PHP فقط، لكنها تتطلب تكوين خادم SMTP.
$to = "[email protected]";
$subject = "اختبار البريد";
$message = "هذا بريد اختبار تم إرساله من PHP!";
$headers = "From: [email protected]";
mail($to, $subject, $message, $headers);
PHPMailer() مكتبة قوية لإرسال البريد الإلكتروني عبر SMTP مع دعم المصادقة.
// تثبيت المكتبة عبر Composer: composer require phpmailer/phpmailer
use PHPMailerPHPMailerPHPMailer;
use PHPMailerPHPMailerException;
require "vendor/autoload.php";

$mail = new PHPMailer(true);
$mail->isSMTP();
$mail->Host = "smtp.example.com";
$mail->SMTPAuth = true;
$mail->Username = "[email protected]";
$mail->Password = "password";
$mail->SMTPSecure = "tls";
$mail->Port = 587;

$mail->setFrom("[email protected]", "Sender Name");
$mail->addAddress("[email protected]");
$mail->Subject = "اختبار PHPMailer";
$mail->Body = "هذا هو نص البريد المرسل عبر PHPMailer!";
$mail->send();
addAttachment() إضافة مرفقات إلى البريد الإلكتروني باستخدام PHPMailer.
$mail = new PHPMailer();
$mail->isSMTP();
$mail->Host = "smtp.example.com";
$mail->SMTPAuth = true;
$mail->Username = "[email protected]";
$mail->Password = "password";
$mail->SMTPSecure = "tls";
$mail->Port = 587;

$mail->setFrom("[email protected]", "Sender Name");
$mail->addAddress("[email protected]");
$mail->Subject = "إرسال ملف مرفق";
$mail->Body = "يرجى العثور على المرفق.";
$mail->addAttachment("file.pdf"); // إضافة ملف
$mail->send();
isHTML() يتيح إرسال بريد إلكتروني بصيغة HTML.
$mail = new PHPMailer();
$mail->isSMTP();
$mail->Host = "smtp.example.com";
$mail->SMTPAuth = true;
$mail->Username = "[email protected]";
$mail->Password = "password";
$mail->SMTPSecure = "tls";
$mail->Port = 587;

$mail->setFrom("[email protected]", "Sender Name");
$mail->addAddress("[email protected]");
$mail->Subject = "بريد HTML";
$mail->isHTML(true);
$mail->Body = "<h1>مرحبا!</h1><p>هذا بريد بصيغة HTML.</p>";
$mail->send();
SMTPDebug يتيح تصحيح الأخطاء أثناء إرسال البريد عبر SMTP.
$mail = new PHPMailer();
$mail->isSMTP();
$mail->SMTPDebug = 2; // تمكين التصحيح
$mail->Host = "smtp.example.com";
$mail->SMTPAuth = true;
$mail->Username = "[email protected]";
$mail->Password = "password";
$mail->SMTPSecure = "tls";
$mail->Port = 587;
$mail->setFrom("[email protected]", "Sender Name");
$mail->addAddress("[email protected]");
$mail->Subject = "اختبار التصحيح";
$mail->Body = "هذا بريد مع تمكين التصحيح.";
$mail->send();
addCC() & addBCC() إضافة نسخة (CC) ونسخة مخفية (BCC) إلى البريد.
$mail = new PHPMailer();
$mail->isSMTP();
$mail->Host = "smtp.example.com";
$mail->SMTPAuth = true;
$mail->Username = "[email protected]";
$mail->Password = "password";
$mail->SMTPSecure = "tls";
$mail->Port = 587;

$mail->setFrom("[email protected]", "Sender Name");
$mail->addAddress("[email protected]");
$mail->addCC("[email protected]"); // نسخة إلى
$mail->addBCC("[email protected]"); // نسخة مخفية
$mail->Subject = "CC & BCC Test";
$mail->Body = "هذا البريد يحتوي على CC و BCC.";
$mail->send();
AltBody يحدد نصًا بديلاً إذا كان العميل لا يدعم HTML.
$mail = new PHPMailer();
$mail->isSMTP();
$mail->Host = "smtp.example.com";
$mail->SMTPAuth = true;
$mail->Username = "[email protected]";
$mail->Password = "password";
$mail->SMTPSecure = "tls";
$mail->Port = 587;

$mail->setFrom("[email protected]", "Sender Name");
$mail->addAddress("[email protected]");
$mail->Subject = "بديل HTML";
$mail->isHTML(true);
$mail->Body = "<h1>مرحبا!</h1><p>هذا البريد يحتوي على HTML.</p>";
$mail->AltBody = "مرحبا! هذا هو النص البديل إذا كان HTML غير مدعوم.";
$mail->send();
setLanguage() تعيين لغة الخطأ الخاصة بـ PHPMailer.
$mail = new PHPMailer();
$mail->setLanguage("ar"); // تعيين اللغة إلى العربية
ClearAllRecipients() إزالة جميع المستلمين من البريد.
$mail = new PHPMailer();
$mail->addAddress("[email protected]");
$mail->ClearAllRecipients(); // حذف جميع المستلمين
DKIM_sign() إضافة توقيع DKIM إلى البريد الإلكتروني لتحسين الموثوقية.
$mail = new PHPMailer();
$mail->DKIM_domain = "example.com";
$mail->DKIM_private = "path/to/private.key";
$mail->DKIM_selector = "default"; 
$mail->DKIM_passphrase = "";
$mail->DKIM_identity = $mail->From;
SMTPAutoTLS يحدد ما إذا كان سيتم استخدام TLS تلقائيًا عند الاتصال بخادم البريد.
$mail = new PHPMailer();
$mail->SMTPAutoTLS = false; // تعطيل التشفير التلقائي TLS
Sendmail إرسال البريد عبر Sendmail بدلاً من SMTP.
$mail = new PHPMailer();
$mail->isSendmail(); // استخدام sendmail بدلاً من SMTP

Web Scraping

10 عنصر
الاسم الوصف مثال
curl_init() تهيئة جلسة cURL.
$ch = curl_init("https://example.com");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
curl_setopt() ضبط خيارات cURL.
$ch = curl_init("https://example.com");
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
$response = curl_exec($ch);
curl_close($ch);
curl_exec() تنفيذ طلب cURL واسترجاع البيانات.
$ch = curl_init("https://example.com");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
curl_error() إرجاع رسالة الخطأ في حالة فشل طلب cURL.
$ch = curl_init("https://example.com");
$response = curl_exec($ch);
if (curl_errno($ch)) {
    echo "Error: " . curl_error($ch);
}
curl_close($ch);
file_get_contents() جلب محتوى صفحة ويب باستخدام file_get_contents.
$html = file_get_contents("https://example.com");
echo $html;
libxml_use_internal_errors() إخفاء أخطاء التحليل عند استخدام DOMDocument.
libxml_use_internal_errors(true);
$doc = new DOMDocument();
$doc->loadHTML($html);
libxml_clear_errors();
DOMDocument::loadHTML() تحميل HTML في كائن DOMDocument لتحليل البيانات.
$doc = new DOMDocument();
$doc->loadHTML($html);
$xpath = new DOMXPath($doc);
$nodes = $xpath->query("//h1");
foreach ($nodes as $node) {
    echo $node->nodeValue;
}
DOMXPath استخدام XPath لاستخراج بيانات معينة من DOM.
$doc = new DOMDocument();
$doc->loadHTML($html);
$xpath = new DOMXPath($doc);
$nodes = $xpath->query("//a/@href");
foreach ($nodes as $node) {
    echo $node->nodeValue . "\n";
}
preg_match_all() استخراج بيانات محددة باستخدام التعبيرات النمطية (Regex).
$html = file_get_contents("https://example.com");
preg_match_all('/<a href="(.*?)">/i', $html, $matches);
print_r($matches[1]);
stream_context_create() ضبط إعدادات الطلب عند استخدام file_get_contents.
$context = stream_context_create([
    "http" => ["header" => "User-Agent: Mozilla/5.0"]
]);
$html = file_get_contents("https://example.com", false, $context);
echo $html;

API

11 عنصر
الاسم الوصف مثال
curl_init() تهيئة جلسة cURL لإجراء طلب HTTP.
$ch = curl_init("https://api.example.com/data");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
curl_setopt_array() ضبط خيارات متعددة لجلسة cURL.
$ch = curl_init();
$options = [
    CURLOPT_URL => "https://api.example.com/data",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => ["Accept: application/json"]
];
curl_setopt_array($ch, $options);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
json_decode() تحويل JSON إلى مصفوفة أو كائن PHP.
$json = '{"name": "Ahmed", "age": 25}';
$data = json_decode($json, true);
echo $data["name"]; // Ahmed
json_encode() تحويل مصفوفة PHP إلى JSON.
$data = ["name" => "Ahmed", "age" => 25];
$json = json_encode($data);
echo $json;
http_build_query() تحويل مصفوفة بيانات إلى سلسلة استعلام (Query String).
$params = ["name" => "Ahmed", "age" => 25];
$query = http_build_query($params);
echo $query; // name=Ahmed&age=25
stream_context_create() إرسال طلب HTTP باستخدام file_get_contents مع إعدادات مخصصة.
$context = stream_context_create([
    "http" => ["method" => "GET", "header" => "Accept: application/json"]
]);
$response = file_get_contents("https://api.example.com/data", false, $context);
echo $response;
SoapClient التعامل مع خدمات SOAP.
$client = new SoapClient("https://api.example.com/service?wsdl");
$response = $client->getData(["param" => "value"]);
print_r($response);
GuzzleHttpClient استخدام Guzzle لإجراء طلبات HTTP.
require "vendor/autoload.php";
use GuzzleHttp\Client;

$client = new Client();
$response = $client->get("https://api.example.com/data");
echo $response->getBody();
get_headers() جلب هيدر الاستجابة من خادم ويب.
$headers = get_headers("https://example.com");
print_r($headers);
parse_url() تحليل عنوان URL وإرجاع أجزائه.
$url = "https://example.com?name=Ahmed&age=25";
$parts = parse_url($url);
print_r($parts);
http_response_code() إرسال رمز استجابة HTTP.
http_response_code(404);
echo "Page not found";

Caching

9 عنصر
الاسم الوصف مثال
opcache_get_status() إرجاع معلومات حول حالة OPcache.
<?php
print_r(opcache_get_status());
?>
opcache_reset() مسح ذاكرة التخزين المؤقت لـ OPcache.
<?php
opcache_reset();
?>
opcache_compile_file() تجميع كود PHP محدد إلى كود بايت وتخزينه في OPcache.
<?php
opcache_compile_file("script.php");
?>
opcache_invalidate() إزالة ملف معين من OPcache.
<?php
opcache_invalidate("script.php");
?>
apcu_store() تخزين قيمة في APCu.
<?php
apcu_store("key", "value");
?>
apcu_fetch() استرجاع قيمة مخزنة من APCu.
<?php
$value = apcu_fetch("key");
echo $value;
?>
apcu_exists() التحقق مما إذا كانت قيمة معينة موجودة في APCu.
<?php
if (apcu_exists("key")) {
    echo "Key exists!";
} else {
    echo "Key does not exist.";
}
?>
apcu_delete() حذف عنصر معين من APCu.
<?php
apcu_delete("key");
?>
apcu_clear_cache() مسح جميع القيم المخزنة في APCu.
<?php
apcu_clear_cache();
?>

Multithreading

9 عنصر
الاسم الوصف مثال
popen() فتح عملية جديدة وتنفيذ أمر داخلها.
<?php
$handle = popen("ls -l", "r");
while (!feof($handle)) {
    echo fread($handle, 1024);
}
pclose($handle);
?>
proc_open() فتح عملية جديدة والتحكم في المدخلات والمخرجات الخاصة بها.
<?php
$descriptorspec = [
    0 => ["pipe", "r"], // STDIN
    1 => ["pipe", "w"], // STDOUT
    2 => ["pipe", "w"]  // STDERR
];
$process = proc_open("php", $descriptorspec, $pipes);
if (is_resource($process)) {
    fwrite($pipes[0], "<?php echo 'Hello from process!'; ?>");
    fclose($pipes[0]);
    echo stream_get_contents($pipes[1]);
    fclose($pipes[1]);
    proc_close($process);
}
?>
shell_exec() تنفيذ أمر في سطر الأوامر وإرجاع المخرجات كـ string.
<?php
$output = shell_exec("ls -l");
echo "<pre>$output</pre>";
?>
exec() تنفيذ أمر في سطر الأوامر بدون إرجاع المخرجات مباشرة.
<?php
exec("ls -l", $output);
print_r($output);
?>
pcntl_fork() إنشاء عملية فرعية جديدة (متوفرة فقط في أنظمة Unix/Linux).
<?php
$pid = pcntl_fork();
if ($pid == -1) {
    die("فشل في إنشاء العملية");
} elseif ($pid) {
    echo "أنا العملية الرئيسية (Parent)
";
} else {
    echo "أنا العملية الفرعية (Child)
";
}
?>
pcntl_wait() انتظار انتهاء عملية فرعية قبل المتابعة.
<?php
$pid = pcntl_fork();
if ($pid) {
    pcntl_wait($status); // انتظار إنهاء العملية الفرعية
    echo "تم إنهاء العملية الفرعية.
";
} else {
    sleep(2);
    echo "العملية الفرعية انتهت.
";
}
?>
pcntl_signal() تعيين معالج لإشارات النظام.
<?php
function signalHandler($signo) {
    echo "تم استقبال الإشارة: $signo
";
}
pcntl_signal(SIGTERM, "signalHandler");
posix_kill(posix_getpid(), SIGTERM);
?>
stream_select() مراقبة تدفقات البيانات لمعالجة متعددة غير متزامنة.
<?php
$sockets = [stream_socket_server("tcp://127.0.0.1:8000")];
$write = $except = null;
if (stream_select($sockets, $write, $except, 0)) {
    echo "تم اكتشاف نشاط على منفذ 8000.
";
}
?>
parallel un() تنفيذ كود PHP في Thread منفصل (باستخدام مكتبة Parallel).
<?php
use parallelRuntime;
$runtime = new Runtime();
$future = $runtime->run(function() {
    return "Hello from thread!";
});
echo $future->value();
?>

Cron Jobs

4 عنصر
الاسم الوصف مثال
Cron Job API Fetch تنفيذ طلب API كل ساعة تلقائيًا.
* * * * * php /var/www/html/fetch_data.php
Database Cleanup حذف البيانات القديمة من قاعدة البيانات تلقائيًا.
0 0 * * * php /var/www/html/cleanup.php
Send Email Reports إرسال بريد إلكتروني تلقائي يحتوي على التقارير اليومية.
0 8 * * * php /var/www/html/send_email.php
Background Process تشغيل سكريبت PHP في الخلفية دون التأثير على الأداء.
exec("php long_task.php > /dev/null 2>&1 &");

User Management

8 عنصر
الاسم الوصف مثال
password_hash() تشفير كلمة المرور بطريقة آمنة قبل تخزينها في قاعدة البيانات.
$hashed_password = password_hash("mypassword", PASSWORD_BCRYPT);
password_verify() مقارنة كلمة المرور المدخلة مع كلمة المرور المشفرة في قاعدة البيانات.
if (password_verify($input_password, $stored_hashed_password)) { echo "كلمة المرور صحيحة!"; }
session_start() بدء جلسة جديدة لحفظ بيانات المستخدم عند تسجيل الدخول.
session_start();
$_SESSION["user_id"] = $user["id"];
$_SESSION["username"] = $user["username"];
session_destroy() حذف جميع بيانات الجلسة عند تسجيل الخروج.
session_start();
session_destroy();
header("Location: login.php");
isset($_SESSION["user_id"]) التحقق من وجود جلسة مستخدم للسماح بالدخول إلى صفحة محمية.
if (!isset($_SESSION["user_id"])) { 
    header("Location: login.php");
    exit;
}
bin2hex(random_bytes(32)) توليد رمز فريد لاستعادة كلمة المرور.
$reset_token = bin2hex(random_bytes(32));
mail() إرسال رابط استعادة كلمة المرور عبر البريد الإلكتروني.
$to = $user_email;
$subject = "استعادة كلمة المرور";
$message = "اضغط هنا لإعادة تعيين كلمة المرور: https://example.com/reset.php?token=$reset_token";
mail($to, $subject, $message);
$_SESSION["role"] التحقق من دور المستخدم قبل السماح له بالدخول إلى صفحات معينة.
if ($_SESSION["role"] !== "admin") { 
    die("ليس لديك صلاحية للوصول إلى هذه الصفحة!");
}

Report Generators

4 عنصر
الاسم الوصف مثال
FPDF إنشاء ملف PDF يحتوي على بيانات وتقارير.
require("fpdf.php");
$pdf = new FPDF();
$pdf->AddPage();
$pdf->SetFont("Arial", "B", 16);
$pdf->Cell(40, 10, "Hello, PDF!");
$pdf->Output("report.pdf", "D");
TCPDF إنشاء ملفات PDF متقدمة مع دعم HTML.
require("tcpdf.php");
$pdf = new TCPDF();
$pdf->AddPage();
$pdf->writeHTML("<h1>Report</h1><p>This is a TCPDF generated report</p>");
$pdf->Output("report.pdf", "D");
fputcsv() تصدير البيانات إلى ملف CSV يمكن فتحه في Excel.
$file = fopen("report.csv", "w");
fputcsv($file, ["ID", "Title", "Description"]);
fclose($file);
PHPExcel إنشاء ملفات Excel باستخدام مكتبة PHPExcel.
require "PHPExcel.php";
$objPHPExcel = new PHPExcel();
$objPHPExcel->setActiveSheetIndex(0)->setCellValue("A1", "Report Title");
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, "Excel2007");
$objWriter->save("report.xlsx");

MySQL Security

17 عنصر
الاسم الوصف مثال
Prepared Statements (MySQLi) يستخدم لحماية قاعدة البيانات من حقن SQL.
$stmt = $conn->prepare("SELECT * FROM users WHERE email = ?"); 
$stmt->bind_param("s", $email); 
$stmt->execute(); 
$result = $stmt->get_result();
Prepared Statements (PDO) طريقة آمنة لتنفيذ استعلامات SQL باستخدام PDO.
$stmt = $pdo->prepare("SELECT * FROM users WHERE email = :email"); 
$stmt->bindParam(":email", $email); 
$stmt->execute(); 
$result = $stmt->fetchAll();
htmlspecialchars() تحويل الأحرف الخاصة إلى كود HTML لتجنب إدخال أكواد JavaScript ضارة.
$safe_input = htmlspecialchars($_GET["input"], ENT_QUOTES, "UTF-8");
strip_tags() إزالة جميع الوسوم HTML و JavaScript غير المرغوبة.
$clean_text = strip_tags($user_input);
password_hash() يستخدم لإنشاء كلمة مرور مشفرة.
$hashed_password = password_hash("mySecurePass123", PASSWORD_BCRYPT);
password_verify() يستخدم للتحقق من صحة كلمة المرور المدخلة مقارنة بالمخزنة.
if (password_verify($user_input_password, $hashed_password)) { 
    echo "كلمة المرور صحيحة!"; 
} else { 
    echo "كلمة المرور خاطئة!"; 
}
session_regenerate_id() يُستخدم لمنع اختطاف الجلسات عبر إعادة تعيين معرف الجلسة.
session_start();
session_regenerate_id(true);
Access Control يتم التحقق من صلاحيات المستخدم قبل السماح بالوصول إلى صفحات حساسة.
if ($_SESSION["role"] !== "admin") { 
    die("ليس لديك صلاحيات الوصول إلى هذه الصفحة."); 
}
openssl_encrypt() يستخدم لتشفير البيانات باستخدام OpenSSL.
$key = "my_secret_key"; 
$encrypted = openssl_encrypt("Hello World", "AES-256-CBC", $key, 0, "1234567812345678");
openssl_decrypt() يستخدم لفك تشفير البيانات المشفرة بـ OpenSSL.
$decrypted = openssl_decrypt($encrypted, "AES-256-CBC", $key, 0, "1234567812345678");
hash() يستخدم لإنشاء تجزئة Hash للبيانات باستخدام SHA-256.
$hash = hash("sha256", "my_secure_data");
session_set_cookie_params() يستخدم لتأمين ملفات تعريف الارتباط (الكوكيز) الخاصة بالجلسة.
session_set_cookie_params(["secure" => true, "httponly" => true, "samesite" => "Strict"]);
ini_set("session.cookie_httponly", 1) يمنع JavaScript من الوصول إلى بيانات الجلسة.
ini_set("session.cookie_httponly", 1);
ini_set("session.cookie_secure", 1) يضمن إرسال الكوكيز عبر HTTPS فقط.
ini_set("session.cookie_secure", 1);
JWT (JSON Web Token) يُستخدم لإرسال بيانات آمنة بين العميل والخادم.
$jwt = JWT::encode(["user_id" => 123, "exp" => time() + 3600], "secret_key");
JWT::decode() يُستخدم للتحقق من صحة الـ JWT المرسل من العميل.
$decoded = JWT::decode($jwt, "secret_key", ["HS256"]);
OAuth 2.0 يستخدم OAuth لتأمين الوصول إلى API بين التطبيقات.
Authorization: Bearer YOUR_ACCESS_TOKEN

Notifications System

5 عنصر
الاسم الوصف مثال
إنشاء جدول الإشعارات يتم تخزين الإشعارات في جدول قاعدة البيانات لكل مستخدم.
CREATE TABLE notifications (
    id INT AUTO_INCREMENT PRIMARY KEY,
    user_id INT NOT NULL,
    message TEXT NOT NULL,
    status ENUM("unread", "read") DEFAULT "unread",
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
إضافة إشعار جديد إضافة إشعار إلى قاعدة البيانات عند حدوث حدث معين.
$stmt = $pdo->prepare("INSERT INTO notifications (user_id, message) VALUES (?, ?)");
$stmt->execute([$user_id, "لديك رسالة جديدة"]);
جلب الإشعارات غير المقروءة الحصول على جميع الإشعارات غير المقروءة لمستخدم معين.
$stmt = $pdo->prepare("SELECT * FROM notifications WHERE user_id = ? AND status = 'unread' ORDER BY created_at DESC");
$stmt->execute([$user_id]);
$notifications = $stmt->fetchAll();
تحديث حالة الإشعار إلى مقروء يتم تحديث حالة الإشعار عندما يراه المستخدم.
$stmt = $pdo->prepare("UPDATE notifications SET status = 'read' WHERE id = ?");
$stmt->execute([$notification_id]);
حذف الإشعارات القديمة يتم حذف الإشعارات القديمة لتوفير المساحة.
$stmt = $pdo->prepare("DELETE FROM notifications WHERE created_at < NOW() - INTERVAL 30 DAY");
$stmt->execute();