كود PHP:
$search = array("a", "b", "c", "z");
$replace = array("x", "y", "z", "k");
foreach($replace as $key => $value) {
$replace_add[$key] = "<%$key%>";
}
$word = "a123b456c";
$word = str_replace($search, $replace_add, $word);
ده نصف الحل
النصف الآخر هيكون باستخدام التعابير القياسية ،،،،
في الأول استبدلنا كل حرف في المصفوفة $search بنص عبارة عن <% في الأول و %> في الآخر وبينهما الـ Key الخاص ببديل الحرف في المصفوفة $replace.
إذن لن يستبدل حرف مرتين أبداً.
ماذا بعد ذلك ؟
أنا للأسف مابعرف في التعابير القياسية شيئ لكن انت ممكن تعملها أو ممكن أحد من الأخوة يساعدوك فيها.
- قم بالبحث باستخدام التعابير القياسية في $world عن الجمل تلك: <% .. %> وقم باستبدالها بـ :
طبعاً $.. هيكون النص الموجود بين <% و %>
أعتقد انك ستستخدم الدالة preg_replace
على فكرة كان ممكن الأمر ينتهي بتغيير كل حرف بـ key الحرف البديل .. لكن هيكون في مشكلة وهو إن أي نص شبيه بالقيمة الموجودة بالـ key هتتغير .
بالشكل ده:
كود PHP:
$search = array("a", "b", "c", "z");
$replace = array("x", "y", "z", "k");
$word = "a b c z 7";
$word = str_replace($search, array_keys($replace), $word);
$word = str_replace(array_keys($replace), $replace, $word);
echo $word;
النتيجة هتكون x y z k 7
والنتيجة صحيحة هنا 100%
لكن إذا كان النص بهذا الشكل b 2 c z 0
ستكون النتيجة y z z k x وهذه نتيجة خاطئة -( الصحيحة : y 2 z k a )
إذن عليك تكملة الحل الأول باستخدام التعابير القياسية