![]() |
[PHP] עזרה בניסיון לבצעה STR_REPLACE על כמה דברים בעזרת לולאה
ובכן....יכול להיות שלא הבנתם את הכותרת...ותאמת...אני לא מאשים אותכם |קורץ|
טוב אז ככה... אני רוצה לעשות פונקציה...שמזינים לה כתובת של תיקיה, שם הקובץ, מה להחליף, ובמה...עכשיו... הכל הלך מצויין עד שהיגעתי למצב שאני צריך לבצעה החלפה של יותר מדבר אחד באותו הקובץ (ההחלפה מתבצעת על התוכן של הקובץ שאני מייבא...) חשבתי על דרך כלשהי....לפצל את החלק השלישי והרביעי (מה להחליף, ובמה) ואז לבצעה החלפה בעזרת המערך...אבל הסתבכתי לגמרי...אני מסתכל בקוד ואני לא מבין מה הוא לעזאזל עושה... בקיצור אני מבובלבל לגמרי! הקוד הוא כזה: PHP קוד:
עריכה: זה מראה לי את השגיאה הבאה: Warning: Invalid argument supplied for foreach() in *** on line 14 |
כנראה ש $tpl הוא לא מערך זה 1 , 2 בשביל יעילות הייתי ממליץ לך להשתמש ב preg_match_all ולשחק עם זה או להשתמש ב preg_replace_callback()
בהצלחה עריכה: שים לב למשפט הזה : PHP קוד:
|
אהההם....כפי שידוע לי FILE מחזיר ערך של מערך...מה עושה הפונקציה preg_match_all?
ומה עושה הפונקציה preg_replace_callback? בקשר למשפט...המשתנה X כן קיים...הוא שווה ל0...שמתי אותו לפני הלולאה.... |
תעשה PRINT_R ל FILE ותראה מה אתה מקבל
|
וואלה צודק...אבל אני לא מבין מה זה בדיוק אומר...כי תכלס ככה:
PHP קוד:
|
אופסי...יצא לי בטעות דאבל :-/
|
אחרי
PHP קוד:
PHP קוד:
|
עשיתי את זה כשאמרתה לי לעשות PRINT_R בפעם הראשונה...
זה הראה לי משהו כזה: array ( 1=> 2=> 3=>) and so on.... הנה צילום מסך: http://img60.imageshack.us/img60/7286/untitledgk9.png |
יופי אבל מה היה בתוך....
חח אתה מחסיר את החלקים החשובים |
בתוך מה?!? מה יש בתוך הקבצים שאני מאנקלד?
|
הדרך שאתה עושה היא איך לומר את זה בעדינות....מאד לא חכמה ולא יעילה...
בשביל מה להכניס את כל הטמפלט למערך ? ואז כשאתה רוצה להחליף משהו אתה עובר בכל האיברים של המערך בכלל לא חכם לעשות את זה תחליף את הפונקציה שלך לזאתי וזה כמעט בטוח יעבוד... PHP קוד:
|
אוקיי...שגיאה זה לא מחזיר (יאיי)...אבל חסר פה הקטע של החלפה של 2 דברים...מה שגרם לי לבעיה מלכתכילה :-/
|
תנסה להחליף את :
PHP קוד:
PHP קוד:
|
arse error: syntax error, unexpected $end in /home/pilmen/domains/pilmen.sharvit.net/public_html/cms/index2.php(5) : eval()'d code on line 1
|
תכנס לקובץ שאתה עורך ואם נגיד כתוב לך
PHP קוד:
PHP קוד:
ועוד דבר PHP קוד:
|
ציטוט:
ולא הבנתי לאן לשים את הADDSLASES שאמרתה לי לשים... |
תחליף את
PHP קוד:
PHP קוד:
|
אני חושב שלא הבנתה מה אני רוצה לעשות...
כשאני מנסה להחליף משהו אחד במשהו אחד הכל עובד...אבל אחרי שאני מנסה לעשות החלפה של 2 דברים ב2 דברים זה לא עובד... הקוד הזה: PHP קוד:
אבל אחרי שאני משנה אותו קצת בכך שאני מפצל 2 חלקים ממנו ומכניס לתוך מערך ולאחר מכן מנסה לבצע החלפה אחד על אחד זה לא עובד לי :( |
אוקי עכשיו הבנתי אותך.. ומסתבר שצדקתי בהתחלה
תנסה לעשות משהו כזה... PHP קוד:
|
דבר ראשון זה מחזיר לי שגיאה...דבר שני...זו לא הדרך שרציתי לעבוד איתה...רציתי לעשות פונקציה שמזינים לה תיקיה, שם הקובץ, מה להחליף...אם זה 2 או יותר אז לפצל את זה למערך...ואז לבצע החלפה אחד על אחד עם במה שזה יוחלף...
|
1. איזה שגיאה זה מחזיר לך ?
2. זה יעבוד לך גם בלי מערכים.. |
Warning: preg_replace() [function.preg-replace]: Parameter mismatch, pattern is a string while replacement in an array. in /home/pilmen/domains/pilmen.sharvit.net/public_html/cms/index2.php on line 9
איך בדיוק? |
החלטתי להפסיק לנסות לתת לך פתרונות בלי לבדוק
הבעיה אצלך היא ש PREG משתמש ב PLATERNS ו דברים שאתה רוצה להחליף נראים ככה <*CSS_NUM*> וזה משנה את זה אז אני יראה מה אפשר לעשות ויחזיר לך לפה תשובה עובדת... |
תודה :) (מה זה PLATERNS?)
|
טוב אז ככה, לאחר כמה ניסיונות הגעתי למסקנה שיהיה קשה להשתמש ב PREG לכן החלטתי לבסוף להשתמש ב STR_REPLACE
זאת הפונקציה : PHP קוד:
PHP קוד:
PHP קוד:
|
ציטוט:
|
כל הזמנים הם GMT +2. הזמן כעת הוא 20:12. |
מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ