הרשם שאלות ותשובות רשימת חברים לוח שנה הודעות מהיום

חזור   הוסטס - פורום אחסון האתרים הגדול בישראל > עיצוב גראפי, תכנות על כל שפותיו וקידום ושיווק אתרים > פורום תיכנות

   
|!|

סגור את ההודעה
 
כלים לאשכול תצורת הצגה
ישן 22-09-06, 14:27   # 1
-VladK-
הוסטסניון
 
-VladK-'s Avatar
 
מיני פרופיל
תאריך הצטרפות: Apr 2006
גיל: 34
הודעות: 2,182

-VladK- לא מחובר  

[PHP] עזרה בניסיון לבצעה STR_REPLACE על כמה דברים בעזרת לולאה

ובכן....יכול להיות שלא הבנתם את הכותרת...ותאמת...אני לא מאשים אותכם |קורץ|

טוב אז ככה...
אני רוצה לעשות פונקציה...שמזינים לה כתובת של תיקיה, שם הקובץ, מה להחליף, ובמה...עכשיו...
הכל הלך מצויין עד שהיגעתי למצב שאני צריך לבצעה החלפה של יותר מדבר אחד באותו הקובץ (ההחלפה מתבצעת על התוכן של הקובץ שאני מייבא...)

חשבתי על דרך כלשהי....לפצל את החלק השלישי והרביעי (מה להחליף, ובמה) ואז לבצעה החלפה בעזרת המערך...אבל הסתבכתי לגמרי...אני מסתכל בקוד ואני לא מבין מה הוא לעזאזל עושה...

בקיצור אני מבובלבל לגמרי!

הקוד הוא כזה:
PHP קוד:
<?
function str_tpl($dir,$file,$what,$whith){
    
$tpl file($dir."/".$file.".tpl");
    if(
$what != NULL AND $whith != NULL){
        
$what_s explode("/"$what);
        
$whith_s explode("/"$whith);
        
$count1 count($what_s);
        
$x 0;
        for(
$i=1;$i<=$count1;$i++){
            
$tpl .= str_replace ($what_s[$x], $whith_s[$x], $tpl);
            
$x++;
        }
    }
    foreach (
$tpl as $cont){
        
$value .= $cont;
    }
    return 
$value;
}

echo 
str_tpl("style","header","<*CSS_NUM*>",1);
$block str_tpl("style","block","<*BLOCK_TITLE*>/<*BLOCK_CONTENT*>","כותרת/תוכן");
echo 
str_tpl("style","index_body","<*BLOCKS*>",$block);
echo 
str_tpl("style","footer",NULL,NULL);
?>
אני ישמח לעזרה.

עריכה:
זה מראה לי את השגיאה הבאה:
Warning: Invalid argument supplied for foreach() in *** on line 14

Last edited by -VladK-; 22-09-06 at 14:38..
 
ישן 22-09-06, 15:20   # 2
RS324
תודה על תרומתך.
 
מיני פרופיל
תאריך הצטרפות: May 2006
הודעות: 3,173

RS324 לא מחובר  

כנראה ש $tpl הוא לא מערך זה 1 , 2 בשביל יעילות הייתי ממליץ לך להשתמש ב preg_match_all ולשחק עם זה או להשתמש ב preg_replace_callback()

בהצלחה

עריכה:

שים לב למשפט הזה :

PHP קוד:
$tpl .= str_replace ($what_s[$x], $whith_s[$x], $tpl); 
אין לך את המשתנה X בכלל לפני השורה הזאת, כנראה שהוא NULL
 
ישן 22-09-06, 15:27   # 3
-VladK-
הוסטסניון
 
-VladK-'s Avatar
 
מיני פרופיל
תאריך הצטרפות: Apr 2006
גיל: 34
הודעות: 2,182

-VladK- לא מחובר  

אהההם....כפי שידוע לי FILE מחזיר ערך של מערך...מה עושה הפונקציה preg_match_all?
ומה עושה הפונקציה preg_replace_callback?

בקשר למשפט...המשתנה X כן קיים...הוא שווה ל0...שמתי אותו לפני הלולאה....
 
ישן 22-09-06, 15:32   # 4
RS324
תודה על תרומתך.
 
מיני פרופיל
תאריך הצטרפות: May 2006
הודעות: 3,173

RS324 לא מחובר  

תעשה PRINT_R ל FILE ותראה מה אתה מקבל
 
ישן 22-09-06, 15:41   # 5
-VladK-
הוסטסניון
 
-VladK-'s Avatar
 
מיני פרופיל
תאריך הצטרפות: Apr 2006
גיל: 34
הודעות: 2,182

-VladK- לא מחובר  

וואלה צודק...אבל אני לא מבין מה זה בדיוק אומר...כי תכלס ככה:
PHP קוד:
<?
function str_tpl($dir,$file,$what,$whith){
    
$tpl file($dir."/".$file.".tpl");
    if(
$what != NULL AND $whith != NULL){
        
$tpl str_replace ($what$whith$tpl);
    }
    foreach (
$tpl as $cont){
        
$value .= $cont;
    }
    return 
$value;
}

echo 
str_tpl("style","header","<*CSS_NUM*>",1);
$block str_tpl("style","block","<*BLOCK_TITLE*>","כותרת");
echo 
str_tpl("style","index_body","<*BLOCKS*>",$block);
echo 
str_tpl("style","footer",NULL,NULL);
?>
 
ישן 22-09-06, 17:35   # 6
-VladK-
הוסטסניון
 
-VladK-'s Avatar
 
מיני פרופיל
תאריך הצטרפות: Apr 2006
גיל: 34
הודעות: 2,182

-VladK- לא מחובר  

אופסי...יצא לי בטעות דאבל

Last edited by -VladK-; 22-09-06 at 17:38..
 
ישן 22-09-06, 18:01   # 7
RS324
תודה על תרומתך.
 
מיני פרופיל
תאריך הצטרפות: May 2006
הודעות: 3,173

RS324 לא מחובר  

אחרי

PHP קוד:
 $tpl file($dir."/".$file.".tpl"); 
תכתוב :

PHP קוד:
print_r($tpl); 
ותדביק פה מה שזה מוציא...
 
ישן 22-09-06, 18:03   # 8
-VladK-
הוסטסניון
 
-VladK-'s Avatar
 
מיני פרופיל
תאריך הצטרפות: Apr 2006
גיל: 34
הודעות: 2,182

-VladK- לא מחובר  

עשיתי את זה כשאמרתה לי לעשות PRINT_R בפעם הראשונה...
זה הראה לי משהו כזה:
array ( 1=> 2=> 3=>) and so on....

הנה צילום מסך:
http://img60.imageshack.us/img60/7286/untitledgk9.png

Last edited by -VladK-; 22-09-06 at 18:08..
 
ישן 22-09-06, 18:07   # 9
RS324
תודה על תרומתך.
 
מיני פרופיל
תאריך הצטרפות: May 2006
הודעות: 3,173

RS324 לא מחובר  

יופי אבל מה היה בתוך....
חח
אתה מחסיר את החלקים החשובים
 
ישן 22-09-06, 18:10   # 10
-VladK-
הוסטסניון
 
-VladK-'s Avatar
 
מיני פרופיל
תאריך הצטרפות: Apr 2006
גיל: 34
הודעות: 2,182

-VladK- לא מחובר  

בתוך מה?!? מה יש בתוך הקבצים שאני מאנקלד?
 
סגור את ההודעה

חברים פעילים הצופים באשכול זה: 1 (0 חברים ו- 1 אורחים)
 


חוקי פירסום
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is מופעל
סמיילים הם מופעל
[IMG] קוד מופעל
קוד HTML מכובה

קפיצה לפורום


כל הזמנים הם GMT +2. הזמן כעת הוא 01:31.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ