JavaScript is not enabled!...Please enable javascript in your browser

جافا سكريبت غير ممكن! ... الرجاء تفعيل الجافا سكريبت في متصفحك.

-->
Accueil

الدرس 10 الموسع: التعامل مع النصوص (Strings) في PHP

📘 الدرس 10: التعامل مع النصوص (Strings) في PHP بشكل موسع


النصوص php

النصوص Strings هي نوع البيانات الأكثر استخداماً في PHP. أي محتوى تقرأه من قاعدة البيانات، نموذج اتصال، أو رابط URL هو نص. إتقان دوال النصوص يعني أنك تقدر تنظف البيانات، تبحث فيها، تعدلها، وتعرضها بالشكل اللي تبيه.

💡 ملاحظة مهمة: PHP تتعامل مع النصوص بطريقتين: علامات تنصيص مزدوجة " " تسمح بتحليل المتغيرات داخلها، وعلامات مفردة ' ' تعامل النص كنص حرفي أسرع وأخف.

🔹 1. إنشاء النصوص وطباعتها

تقدر تعرف النص مباشرة وتطبعه بـ echo أو print.

<?php
$text1 = "مرحباً بكم في مدونة الحسام";
$text2 = 'أهلاً وسهلاً';
echo $text1;
echo "<br>";
echo $text2;
?>

🔹 2. دوال قياس النصوص

الدالةالوظيفةمثال
strlen()طول النص بالبايتstrlen("حسام") // 4
mb_strlen()طول النص للعربي بشكل صحيحmb_strlen("حسام", "UTF-8") // 4
str_word_count()عدد الكلماتstr_word_count("PHP ممتع")
<?php
$text = "تعلم PHP مع الحسام";
echo "الطول: " . mb_strlen($text, "UTF-8");
echo "<br>عدد الكلمات: " . str_word_count($text);
?>

🔹 3. دمج وتقسيم النصوص

الدمج: استخدم النقطة . لدمج نصين أو أكثر.

<?php
$first = "حسام";
$last = "الفقيه";
$full = $first . " . $last;
echo $full; // حسام الفقيه
?>

التقسيم: explode() تحول النص لمصفوفة، و implode() العكس.

<?php
$text = "تفاح,موز,برتقال,عنب";
$arr = explode(",", $text);
print_r($arr);

$newText = implode(" | ", $arr);
echo $newText; // تفاح | موز | برتقال | عنب
?>

🔹 4. تغيير حالة الأحرف

<?php
$text = "hello WORLD";
echo strtoupper($text); // HELLO WORLD
echo strtolower($text); // hello world
echo ucfirst($text); // Hello WORLD
echo ucwords($text); // Hello WORLD
?>

🔹 5. البحث والاستبدال داخل النص

الدالةالوظيفة
strpos()ترجع موقع النص أو false إذا لم يجده
str_replace()استبدال نص بنص آخر
str_ireplace()استبدال بدون حساسية لحالة الأحرف
<?php
$text = "أنا أحب PHP وأتعلم PHP يومياً";

$pos = strpos($text, "PHP");
echo "موقع PHP الأول: $pos<br>";

$new = str_replace("PHP", "JavaScript", $text);
echo $new;
?>

🔹 6. اقتطاع وقص النصوص

<?php
$text = "مرحباً بكم في درس النصوص في PHP";

echo substr($text, 0, 10); // مرحباً بكم
echo substr($text, 7); // من الحرف 7 للنهاية
echo substr($text, -5); // آخر 5 أحرف
?>

🔹 7. تنظيف النصوص من الفراغات

مهم جداً عند استقبال بيانات من النماذج.

<?php
$text = " مرحباً بكم ";
echo trim($text); // يحذف من الجهتين
echo ltrim($text); // يحذف من اليسار فقط
echo rtrim($text); // يحذف من اليمين فقط
?>

🔹 8. دوال متقدمة مفيدة

الدالةالوظيفة
md5()تشفير النص لـ MD5
sha1()تشفير النص لـ SHA1
htmlspecialchars()تحويل الرموز الخاصة لحماية الموقع
strip_tags()حذف أكواد HTML من النص
str_repeat()تكرار النص
<?php
$pass = "123456";
echo "MD5: " . md5($pass) . "<br>";

$html = "<script>alert('xss')</script>";
echo htmlspecialchars($html); // يحمي موقعك من XSS

echo str_repeat("*", 10); // **********
?>

🔹 9. مثال عملي: نظام تعليقات بسيط

هذا مثال يوضح كيف تستخدم أكثر من دالة مع بعض:

<?php
$comment = " مرحباً <script>alert('xss')</script> هذا تعليقي ";

// 1. حذف الفراغات
$comment = trim($comment);

// 2. حذف أكواد HTML الخطرة
$comment = strip_tags($comment);

// 3. تحويل الرموز الخاصة
$comment = htmlspecialchars($comment);

// 4. عرض التعليق
echo "التعليق بعد التنظيف: " . $comment;
?>
نصيحة أمان: دائماً نظف أي نص يجي من المستخدم قبل تخزينه أو عرضه. استخدم trim() + strip_tags() + htmlspecialchars() مع بعض.

🔹 10. التعامل مع النصوص العربية

لازم تستخدم mb_* مع العربي عشان تتجنب مشاكل الترميز UTF-8.

<?php
$text = "اللغة العربية جميلة";

echo mb_strlen($text, "UTF-8"); // 18
echo mb_substr($text, 0, 5, "UTF-8"); // اللغة
echo mb_strpos($text, "عربية", 0, "UTF-8"); // 6
?>
💡 خلاصة الدرس:
1. استخدم mb_* مع النصوص العربية
2. نظف مدخلات المستخدم دائماً
3. تعلم 10 دوال أساسية تكفيك لـ 90% من الشغل: strlen, strpos, str_replace, substr, trim, explode, implode, strtolower, strtoupper, htmlspecialchars

© جميع الحقوق محفوظة - مدونة الحسام | al-hassam.blogspot.com

author-img

حسام الفقيه

Commentaires
Aucun commentaire
Enregistrer un commentaire
    NomE-mailMessage