Emad Saif نشر 6 أبريل 2022 أرسل تقرير نشر 6 أبريل 2022 أستخدمت الدالة strpos لمعرفة موضع نص معين في نص آخر: <?php echo strpos("Hello, World!","World"); // 7 الآن أريد إضافة نص جديد (كلمة My على سبيل المثال) بعد هذا الموضع، بحيث يكون النص الناتج هو: Hello, My World! هل هناك دالة في PHP يمكنها فعل هذا الأمر؟ 2 اقتباس
1 Adnane Kadri نشر 6 أبريل 2022 أرسل تقرير نشر 6 أبريل 2022 يمكنك الاستعانة بالوظيفة substr_replace لإستبدال سلسلة نصية معينة ضمن سلسلة أخرى نحددها لها، سنحتاج في هذا التلاعب ببعض الوظائف الأخرى. فيما يلي بعض الخطوات الوصفية: تخزين السلسة النصية الأصلية في متغير. تخزين السلسلة النصية الفرعية في متغير. تخزين الموضع الابتدائي للسلسلة النصية الفرعية. حساب طول السلسلة النصية الفرعية. يعطينا هذا فكرة عن احداثي هاته السلسلة في السلسلة الأم. مثال: تقع World ما بين الموضعين 7 و (موضعها الابتدائي + طولها). نسمي الموضع الأول أ والثاني ب. استبدال ما بين الموضعين أ و ب بالسلسلة النصية المرادة. مثال عملي: <?php // تعريف سلسلة نصية $str = "Hello, World!"; // تعريف السلسلة النصية الفرعية $word = "World"; // تخزين الموضع الابتدائي السلسة النصية الفرعية $pos = strpos($str, $word); // pos + length و pos استبدال ما بين الموضعين $newstr = substr_replace($str, 'My', $pos , strlen($word)); // طباعة النتيجة echo $newstr; // Hello, My! الدالة strpos() في PHP الدالة substr_replace() في PHP 1 اقتباس
1 سامح أشرف نشر 6 أبريل 2022 أرسل تقرير نشر 6 أبريل 2022 يمكنك كذلك أن تستعمل الدالة substr على النحو التالي: <?php // النص الأصلي $oldstr = "Hello, World!"; // نُحدد المكان الذي نريد أن نضيف فيه النص الجديد $pos = strpos($oldstr,"World"); // النص الجديد الذي نريد إضافته $str_to_insert = "My "; // نستعمل الدالة substr لتقسيم النص ونقوم بتجميلع بالشكل الذي نريده $str = substr($oldstr, 0, $pos) . $str_to_insert . substr($oldstr, $pos); echo $str; // Hello, My World! بهذا الشكل سوف تحصل على النتيجة المطلوبة، الآن يمكن تحويل الكود السابق إلى دالة ليسهل إستخدامها: <?php function insert_str($original_str, $position, $str_to_insert){ return substr($original_str, 0, $position) . $str_to_insert . substr($original_str, $position); } echo insert_str("Hello, World!", 7, "My "); // Hello, My World! توثيق الدالة substr() في موسوعة حسوب أيضًا يمكنك إستعمال الدالة substr_replace للقيام بهذا الأمر بشكل بسيط على النحو التالي: <?php // النص الأصلي $oldstr = "Hello, World!"; // نُحدد المكان الذي نريد أن نضيف فيه النص الجديد $pos = strpos($oldstr,"World"); // النص الجديد الذي نريد إضافته $str_to_insert = "My "; echo substr_replace($oldstr, $str_to_insert, $pos, 0); // Hello, My World! 1 اقتباس
السؤال
Emad Saif
أستخدمت الدالة strpos لمعرفة موضع نص معين في نص آخر:
الآن أريد إضافة نص جديد (كلمة My على سبيل المثال) بعد هذا الموضع، بحيث يكون النص الناتج هو:
Hello, My World!
هل هناك دالة في PHP يمكنها فعل هذا الأمر؟
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.