دوال السلاسل الجزئية والحشو
استخرجوا أجزاء السلاسل النصية ونسّقوها باستخدام substr وstr_pad وwordwrap
دوال السلاسل الجزئية والحشو درس مجاني في PHP Academy على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في PHP Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة PHP Academy 4 دروس في المجموع.
استخراج أجزاء من السلاسل النصية
يحتوي PHP على دوال قوية لاستخراج السلاسل النصية واقتطاعها وحشوها. وتُعد هذه الدوال أساسية لتنسيق المخرجات ومعالجة البيانات النصية.
substr()
استخرج جزءًا من سلسلة نصية باستخدام موضع البداية وطول اختياري:
<?php
$str = 'Hello, World!';
echo substr($str, 7); // World!
echo substr($str, 7, 5); // World
echo substr($str, -6); // World!
echo substr($str, -6, 5); // Worldmb_substr()
مع السلاسل متعددة البايتات (UTF-8)، استخدم mb_substr() للاستخراج بشكل صحيح:
<?php
$str = 'Привет Мир'; // Russian
// substr counts bytes, not characters:
echo strlen($str); // 19 bytes
// mb_substr counts characters:
echo mb_substr($str, 0, 6); // Приветstr_pad()
أضف حشوًا إلى السلسلة النصية حتى تصل إلى طول محدد:
<?php
// Default: right-pad with spaces
echo str_pad('5', 3, '0', STR_PAD_LEFT); // 005
echo str_pad('PHP', 10); // 'PHP '
echo str_pad('hi', 8, '-', STR_PAD_BOTH); // ---hi---
// Format invoice numbers:
echo 'INV-' . str_pad(42, 5, '0', STR_PAD_LEFT); // INV-00042wordwrap()
نسّق التفاف السلسلة النصية عند عرض محدد، مع الفصل عند حدود الكلمات:
<?php
$text = 'The quick brown fox jumped over the lazy dog';
echo wordwrap($text, 15, PHP_EOL, false);
// The quick brown
// fox jumped over
// the lazy dogchunk_split()
أدرج سلسلة فاصلة كل N من المحارف — وهو مفيد لتنسيق مخرجات مثل base64:
<?php
$data = '1234567890ABCDEF';
echo chunk_split($data, 4, '-');
// 1234-5678-90AB-CDEF-
// Typical use: base64 encoded email attachments
$encoded = base64_encode(file_get_contents('file.bin'));
$formatted = chunk_split($encoded, 76, "\n");nl2br()
حوّل أسطرًا جديدة إلى وسوم HTML من نوع <br> لعرضها في المتصفح:
<?php
$text = "Line one\nLine two\nLine three";
echo nl2br($text);
// Line one<br />\nLine two<br />\nLine threesprintf() للسلاسل النصية المنسّقة
تنّسق sprintf() سلسلة نصية باستخدام العناصر النائبة — وهي مناسبة لإنشاء مخرجات منظّمة:
<?php
$name = 'Alice';
$score = 95.5;
$rank = 1;
$line = sprintf('%-10s %6.2f%% #%d', $name, $score, $rank);
echo $line;
// Alice 95.50% #1number_format()
نسّق الأرقام كسلاسل نصية باستخدام فواصل الآلاف والفواصل العشرية:
<?php
$amount = 1234567.891;
echo number_format($amount); // 1,234,568
echo number_format($amount, 2); // 1,234,567.89
echo number_format($amount, 2, ',', '.'); // 1.234.567,89 (European)
echo number_format($amount, 2, '.', ''); // 1234567.89 (no separator)اقتطاع السلاسل النصية باستخدام علامة الحذف
اقتطع النصوص الطويلة بأمان باستخدام علامة الحذف لعرضها:
<?php
function truncate(string $text, int $max, string $suffix = '...'): string {
if (mb_strlen($text) <= $max) return $text;
return mb_substr($text, 0, $max - mb_strlen($suffix)) . $suffix;
}
echo truncate('The quick brown fox', 15);
// The quick br...عكس السلاسل النصية
اعكس سلسلة نصية باستخدام strrev() (تعمل على البايتات ولا تراعي المحارف متعددة البايتات):
<?php
echo strrev('Hello'); // olleH
echo strrev('12345'); // 54321
// Palindrome check
function isPalindrome(string $s): bool {
$s = strtolower(preg_replace('/[^a-zA-Z]/', '', $s));
return $s === strrev($s);
}
var_dump(isPalindrome('racecar')); // true
var_dump(isPalindrome('PHP')); // falseتكرار السلاسل النصية وملؤها
أنشئ أنماطًا متكررة من السلاسل النصية لأغراض التنسيق أو الحشو:
<?php
// Build a progress bar
function progressBar(int $percent, int $width = 20): string {
$filled = (int) round($percent / 100 * $width);
$empty = $width - $filled;
return '[' . str_repeat('#', $filled) . str_repeat('-', $empty) . "] $percent%";
}
echo progressBar(65); // [#############-------] 65%تحقّق سريعًا
أي دالة تُدرج محرفًا فاصلًا كل N من المحارف في سلسلة نصية؟
مراجعة: السلاسل الفرعية والحشو
الدوال الأساسية:
substr($str, start, length)— الاستخراج حسب الموضعmb_substr()— استخراج آمن مع المحارف متعددة البايتاتstr_pad()— الحشو حتى الوصول إلى الطول المطلوبwordwrap()— الالتفاف عند حدود الكلماتchunk_split()— إدراج فاصل كل N من المحارفsprintf()— إنشاء سلاسل نصية منسّقة
الأسئلة الشائعة
هل درس «دوال السلاسل الجزئية والحشو» مجاني؟
نعم — نص درس «دوال السلاسل الجزئية والحشو» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة PHP Academy، انتقل إلى CoddyKit PRO. تتضمن دورة PHP Academy 4 دروس في المجموع.
ماذا ستتعلم في «دوال السلاسل الجزئية والحشو»؟
استخرجوا أجزاء السلاسل النصية ونسّقوها باستخدام substr وstr_pad وwordwrap تتمرن على PHP Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ PHP Academy؟
لا تُشترط خبرة سابقة. PHP Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.
كم من الوقت يستغرق درس «دوال السلاسل الجزئية والحشو»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس PHP Academy هذا؟
نعم. كل درس في PHP Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- أساسيات السلاسل النصية وضمّها
- البحث والاستبدال في السلاسل النصية
- دوال السلاسل الجزئية والحشو
- تقسيم السلاسل النصية وضمّها