سوالف اندرويد




العودة   سوالف سوفت > سوالف برمجة المواقع وتطويرها > PHP
التسجيل المدوّنات البحث مشاركات اليوم جعل الأقسام مقروءة

الرد على الموضوع
 
LinkBack أدوات الموضوع
عضو نشيط جدا
#1  
Question Question مشكلة مع Str_Replace مرتين

السلام عليكم
لو سمحتم كنت بحاول ابرمج مشروع بسيط فى الPHP وحصل معي مشكلة وهي كالتالى

كود:
<?php
$word = "ا";
function change($t)
{
$A1 = "ا";
$A2 = "z";
$t = str_replace($A1,$A2,$t);
$A3 = Array("z");
$A4 = Array("a8");
$t = str_replace($A3,$A4,$t);
return $t;
}
$m = change($word);
echo $m;
?>
فى السكربت عموما انا حاطط بعض الحروف لكى يتم تحويلها الى حروف اخرى ولكن المشكلة انه عند تحويل "ا"الى "z" سترى انها اصبحت "z" وبالتالى سيتم تغييرها مرة اخرى لأنها للأسف z موجودة فى القائمة الكود بتاع التغيير
ومهمة السكربت تحويل بعض الحروف ضروري جدا
هل يوجد حل ؟

شكراً






__________________
مشعل
ze3ex@hotmail.com
MSH3AL is offline   قديم 02-07-2009, 06:35 PM
الرد مع إقتباس
عضو مميز
#2  

طيب لما تعملها علي مرتين ؟

كود PHP:
$search = array("a""b""c");
$replace = array("x""y""z");

$word "a123b456c";

echo 
$word str_replace($search$replace$word); 






__________________
السيف أصدق أنباء من الكتب
محب الله ورسوله is offline   قديم 03-07-2009, 05:05 AM
الرد مع إقتباس
عضو مميز
#3  

فهمت قصدك الأن
لديك محتويات متداخلة وبالتالي بعد تغييرها قد تعود وتتغير فيما بعد

فدالة str_replace تتعامل مع عناصر المصفوفة عنصر بعنصر وبالتالي قد تغير شئ وتعود وتغيره لو كان موجود مرة أخري

أعتقد ستحتاج ان تتخل انت في هذه الأمور اللي تريد تغييرها وترتبها بحيث لا يتم إعادة التغيير فيها
او ممكن أستخدام strpos وتسجل موقع الحروف اللي غيرتها وتستخدم دالة if لو كان الموضع الحالي مريت عليه من قبل لا يغيره ( سجل المواضع في مصفوفة وأستخدم in_array )






__________________
السيف أصدق أنباء من الكتب
محب الله ورسوله is offline   قديم 03-07-2009, 05:22 AM
الرد مع إقتباس
عضو نشيط
#4  

كود 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 عن الجمل تلك: <% .. %> وقم باستبدالها بـ :
كود PHP:
$replace[$..] 
طبعاً $.. هيكون النص الموجود بين <% و %>
أعتقد انك ستستخدم الدالة 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($searcharray_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 )

إذن عليك تكملة الحل الأول باستخدام التعابير القياسية






__________________
اللهم وفقني لما تحبه وترضاه...
Mostafa Maher is offline   قديم 03-07-2009, 10:09 PM
الرد مع إقتباس
عضو نشيط
#5  



أعتقد أنه لم يكن يلزمك تعبير قياسي لتكملة الحل .. هذا السطر يكفي:
كود PHP:
$word str_replace($replace_add$replace$word); 
الكود بالكامل:
كود 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);  
$word str_replace($replace_add$replace$word);
echo 
$word
إن شاء الله يعمل معك بالشكل المطلوب.






__________________
اللهم وفقني لما تحبه وترضاه...
Mostafa Maher is offline   قديم 04-07-2009, 09:03 PM
الرد مع إقتباس
الرد على الموضوع



أدوات الموضوع

قوانين المشاركات
لا يمكنك كتابة مواضيع جديدة
لا يمكنك إضافة ردود
لا يمكنك إرسال مرفقات
لا يمكنك تعديل مشاركاتك

كود vB متاح
كود [IMG] متاح
كود HTML غير متاح
Trackbacks are متاح
Pingbacks are متاح
Refbacks are متاح


المواضيع المشابهه
الموضوع كاتب الموضوع القسم الردود آخر مشاركة
مشكلة مع Str_Replace مرتين MSH3AL PHP 0 02-07-2009 06:27 PM
تطبيق بسيط لـ str_replace الى العرب PHP 3 27-06-2008 06:15 AM
النسخة 3.5.1 و مشكلة اضافة الرد مرتين Tender_Heart الإصلاح والصيانة 8 30-11-2005 10:02 AM
[ مشكلة ] تكرار الرد مرتين في النسخة 3.5.0 زاهي الشوق الإصلاح والصيانة 4 28-11-2005 04:15 PM
question netdur الويب والويب 2.0 والـ Semantic Web 1 13-04-2002 06:19 AM


جميع الأوقات بتوقيت غرينتش +3. الوقت الآن هو 08:18 PM.