✅ أولاً: ما هي السلاسل النصية (Strings)؟
هي مجموعة من الأحرف (مثل الكلمات والجمل) تُستخدم في PHP لتمثيل النصوص.
مثال:
$name = "ياسين";
echo $name; // النتيجة: ياسين
PHP✅ أولًا: الوصول إلى عناصر السلسلة النصية (Accessing String Characters)
🧠 الفكرة:
السلسلة النصية عبارة عن مجموعة من الأحرف (مثل مصفوفة)، ويمكنك الوصول لأي حرف باستخدام الفهرس (Index).
📌 ملاحظة:
الفهرس يبدأ من 0 (مثل المصفوفات).
🧪 مثال:
$text = "Yasin";
echo $text[0]; // Y
echo $text[1]; // a
echo $text[4]; // n
PHP✅ ثانيًا: تعديل عناصر السلسلة (Updating String Characters)
❗ ملاحظة:
يمكنك تعديل حرف معين إذا كانت السلسلة قابلة للتغيير.
🧪 مثال:
$text = "Hello";
$text[0] = "J";
echo $text; // Jello
PHP✅ طريقة كتابة النصوص:
الطريقة | المثال | الشرح |
---|---|---|
علامات اقتباس مزدوجة | "مرحبا" | تُمكن من تفسير المتغيرات داخل النص |
علامات اقتباس مفردة | 'مرحبا' | لا تفسر المتغيرات داخل النص |
✅ مثال:
$name = "ياسين";
echo "أهلاً $name"; // أهلاً ياسين
echo 'أهلاً $name'; // أهلاً $name (لم يتم تفسير المتغير)
PHP🔧 أهم دوال التعامل مع النصوص
1. strlen()
🔍 تحسب عدد الأحرف في النص (الطول)
$str = "Hello";
echo strlen($str); // 5
PHP⚠️ المسافات تُحسب أيضًا.
2. strtoupper()
🔠 تحويل النص إلى حروف كبيرة
echo strtoupper("php is cool"); // PHP IS COOL
PHP3. strtolower()
🔡 تحويل النص إلى حروف صغيرة
echo strtolower("HELLO"); // hello
PHP4. ucfirst()
🔤 أول حرف كبير فقط
echo ucfirst("yasin"); // Yasin
PHP5. ucwords()
🔤 أول حرف من كل كلمة كبير
echo ucwords("hello world"); // Hello World
PHP6. trim()
✂️ إزالة المسافات الفارغة من البداية والنهاية
$str = " Hello ";
echo trim($str); // "Hello"
PHP7. ltrim()
و rtrim()
ltrim()
: يحذف من اليسار فقطrtrim()
: يحذف من اليمين فقط
8. str_replace()
🔁 استبدال نص بنص آخر
$msg = "مرحبا يا محمد";
echo str_replace("محمد", "ياسين", $msg);
// النتيجة: مرحبا يا ياسين
PHP9. strpos()
🔍 تبحث عن مكان كلمة داخل نص (ترجع رقم أول موقع)
$str = "أهلاً بك في PHP";
echo strpos($str, "PHP"); // 11 (البدء من 0)
PHP10. substr()
🔪 استخراج جزء من النص
$str = "مرحبا بك";
echo substr($str, 0, 4); // "مرح"
PHP- أول رقم: البداية (من 0)
- الثاني: كم حرف نأخذ
11. str_repeat()
🔁 تكرار النص عدد مرات
echo str_repeat("⭐", 5); // ⭐⭐⭐⭐⭐
PHP12. explode()
🔨 تقسيم النص إلى عناصر (عادة باستخدام فاصل)
$data = "yasin,ahmed,sara";
$arr = explode(",", $data);
print_r($arr);
// Array ( [0] => yasin [1] => ahmed [2] => sara )
PHP13. implode()
أو join()
🔗 تجميع عناصر مصفوفة إلى نص واحد
$arr = ["PHP", "is", "awesome"];
echo implode(" ", $arr); // PHP is awesome
PHP14. strrev()
🔄 عكس النص
echo strrev("PHP"); // PHP => PHP (مافي فرق لكن الكلمة بالعربي تختلف)
PHP📌 حالات استخدام السلاسل النصية
الحالة | استخدامها |
---|---|
عرض رسالة للمستخدم | echo "مرحبًا $user"; |
التعامل مع إدخال المستخدم | إزالة فراغات باستخدام trim() |
التحقق من محتوى معين | استخدام strpos() أو str_contains() |
عمل عنوان URL أو slug | باستخدام strtolower() و str_replace() |
تنسيق الاسم الأول والأخير | ucwords() أو ucfirst() |
⚠️ محاذير هامة
المحذور | لماذا؟ |
---|---|
استخدام علامات اقتباس خاطئة | قد يؤدي لأخطاء في تفسير المتغيرات داخل النص |
نسيان الفرق بين == و === عند المقارنة | لأن النصوص قد تُحول لأرقام أحيانًا |
الطول بـ strlen() قد لا يعمل بدقة مع UTF-8 | استخدم mb_strlen() بدلاً منه للنصوص العربية |
💡 نصائح هامة
- ✨ استخدم
strtolower()
وtrim()
قبل مقارنة إدخالات المستخدم. - ✅ عند التعامل مع اللغة العربية، استخدم دوال
mb_
مثلmb_strlen()
. - 🧪 لا تفترض أن كل النصوص بدون رموز، تحقق من البيانات دائمًا.
- 📜 اجعل كل التنسيقات النصية في ملف دوال واحد reusable.
✅ ملاحظات هامة للمبتدئين:
🔸 عند التعامل مع الفهارس، تأكد أن الفهرس موجود بالفعل حتى لا تظهر لك أخطاء.
🔸 بعض الدوال لا تغير السلسلة الأصلية، بل تُرجع نسخة جديدة، لذا استخدم =
عند الحاجة.
🔸 السلاسل في PHP ليست مصفوفات، ولكن يمكن التعامل معها بشكل مشابه من حيث الفهرسة فقط.
✅ تمرين بسيط:
$name = "ahmed";
// اجعل أول حرف كبير
echo ucfirst($name);
// استبدل "ahmed" بـ "yasin"
echo str_replace("ahmed", "yasin", $name);
// طبع كل حرف في سطر
for ($i = 0; $i < strlen($name); $i++) {
echo $name[$i] . "<br>";
}
PHPالفرق بين double quotes (" "
) و single quotes (' '
) في PHP أساسي ومؤثر، خاصة في طريقة تفسير المتغيرات والتعامل مع الرموز الخاصة داخل النص.
🟢 أولًا: الفرق الأساسي
الخاصية | " " (Double Quotes) | ' ' (Single Quotes) |
---|---|---|
تفسير المتغيرات ($name ) | ✅ نعم | ❌ لا |
تفسير الرموز الخاصة (\n , \t ) | ✅ نعم | ❌ لا |
الأداء (الأسرع) | أبطأ قليلاً | أسرع قليلاً |
✅ 1. تفسير المتغيرات
$name = "Yasin";
echo "Hello $name"; // Hello Yasin ✅
echo 'Hello $name'; // Hello $name ❌
PHP✅ Double quotes تُفسّر المتغير وتطبع قيمته
❌ Single quotes تطبع النص كما هو (لا تفسّر$name
)
✅ 2. تفسير الرموز الخاصة
echo "Line 1\nLine 2"; // تفهم \n وتنتقل لسطر جديد
echo 'Line 1\nLine 2'; // تطبع: Line 1\nLine 2 كما هو
PHP
" "
تفسّر الرموز مثل\n
,\t
,\\
' '
لا تفسّرها، بل تطبعها كما هي.
✅ 3. عند الحاجة إلى طباعة علامات اقتباس داخل النص
echo "He said: \"Hello\""; // تحتاج إلى الهروب \
echo 'He said: "Hello"'; // لا مشكلة ✅
echo 'It\'s a book'; // تحتاج للهروب إذا استخدمت '
PHP✅ 4. مثال عملي يوضح الفرق
phpCopyEdit<code>$course = "PHP";
echo "Welcome to the $course course\n"; // ✅ Welcome to the PHP course
echo 'Welcome to the $course course\n'; // ❌ Welcome to the $course course\n
</code>
PHP✅ ملاحظات ونصائح:
🔹 استخدم ' '
إذا كنت لا تحتاج لتفسير متغيرات داخل النص، لأنها أسرع وأخف على المعالج.
🔹 استخدم " "
عندما تحتاج لعرض قيمة متغير داخل النص أو استخدام رموز خاصة.
🔹 لو حبيت تكتب متغير داخل ' '
، ستحتاج للربط (concatenation):
echo 'Hello ' . $name;
PHP