Strings and String Methods in PHP

✅ أولاً: ما هي السلاسل النصية (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
PHP
3. strtolower()

🔡 تحويل النص إلى حروف صغيرة

echo strtolower("HELLO"); // hello
PHP
4. ucfirst()

🔤 أول حرف كبير فقط

echo ucfirst("yasin"); // Yasin
PHP
5. ucwords()

🔤 أول حرف من كل كلمة كبير

echo ucwords("hello world"); // Hello World
PHP
6. trim()

✂️ إزالة المسافات الفارغة من البداية والنهاية

$str = "   Hello   ";
echo trim($str); // "Hello"
PHP
7. ltrim() و rtrim()
  • ltrim(): يحذف من اليسار فقط
  • rtrim(): يحذف من اليمين فقط
8. str_replace()

🔁 استبدال نص بنص آخر

$msg = "مرحبا يا محمد";
echo str_replace("محمد", "ياسين", $msg);
// النتيجة: مرحبا يا ياسين
PHP
9. strpos()

🔍 تبحث عن مكان كلمة داخل نص (ترجع رقم أول موقع)

$str = "أهلاً بك في PHP";
echo strpos($str, "PHP"); // 11 (البدء من 0)
PHP
10. substr()

🔪 استخراج جزء من النص

$str = "مرحبا بك";
echo substr($str, 0, 4); // "مرح"
PHP
  • أول رقم: البداية (من 0)
  • الثاني: كم حرف نأخذ
11. str_repeat()

🔁 تكرار النص عدد مرات

echo str_repeat("⭐", 5); // ⭐⭐⭐⭐⭐
PHP
12. explode()

🔨 تقسيم النص إلى عناصر (عادة باستخدام فاصل)

$data = "yasin,ahmed,sara";
$arr = explode(",", $data);
print_r($arr);
// Array ( [0] => yasin [1] => ahmed [2] => sara )
PHP
13. implode() أو join()

🔗 تجميع عناصر مصفوفة إلى نص واحد

$arr = ["PHP", "is", "awesome"];
echo implode(" ", $arr); // PHP is awesome
PHP
14. 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