הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   [PHP] עזרה בניסיון לבצעה STR_REPLACE על כמה דברים בעזרת לולאה (https://hosts.co.il/forums/showthread.php?t=31302)

RS324 22-09-06 18:16

הדרך שאתה עושה היא איך לומר את זה בעדינות....מאד לא חכמה ולא יעילה...
בשביל מה להכניס את כל הטמפלט למערך ?
ואז כשאתה רוצה להחליף משהו אתה עובר בכל האיברים של המערך בכלל לא חכם לעשות את זה
תחליף את הפונקציה שלך לזאתי וזה כמעט בטוח יעבוד...

PHP קוד:

function str_tpl($dir,$file,$what,$whith){
    
$tpl file_get_contents($dir."/".$file.".tpl");
    if(
$what != NULL AND $whith != NULL){
        
$tpl str_replace ($what$whith$tpl);
    }
   
    return 
$tpl;



-VladK- 22-09-06 18:21

אוקיי...שגיאה זה לא מחזיר (יאיי)...אבל חסר פה הקטע של החלפה של 2 דברים...מה שגרם לי לבעיה מלכתכילה :-/

RS324 22-09-06 18:28

תנסה להחליף את :

PHP קוד:

 $tpl str_replace ($what$whith$tpl); 

בקוד הזה :

PHP קוד:

$tpl str_replace(($what), eval($whith), $tpl); 


-VladK- 22-09-06 18:31

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

RS324 22-09-06 18:43

תכנס לקובץ שאתה עורך ואם נגיד כתוב לך
PHP קוד:

$var['bla'

תחליף אותו ב :

PHP קוד:

$var[bla

אותו דבר גם בדברים שאתה מחליף וזה יעבוד לך ב 100 %

ועוד דבר
PHP קוד:

echo str_tpl("style","header","<*CSS_NUM*>",1); 

תוסיף ADDSLASES בשביל שלא יהיה לך שגיאות.

-VladK- 22-09-06 21:26

ציטוט:

נכתב במקור על ידי RS324
תכנס לקובץ שאתה עורך ואם נגיד כתוב לך
PHP קוד:

$var['bla'

תחליף אותו ב :

PHP קוד:

$var[bla

אותו דבר גם בדברים שאתה מחליף וזה יעבוד לך ב 100 %

ועוד דבר
PHP קוד:

echo str_tpl("style","header","<*CSS_NUM*>",1); 

תוסיף ADDSLASES בשביל שלא יהיה לך שגיאות.

אין לי מערכים בתוך הקבצי הTPL...

ולא הבנתי לאן לשים את הADDSLASES שאמרתה לי לשים...

RS324 22-09-06 21:34

תחליף את

PHP קוד:

$tpl file_get_contents($dir."/".$file.".tpl"); 

ב

PHP קוד:

$tpl addslashes(file_get_contents($dir."/".$file.".tpl")); 


-VladK- 23-09-06 07:38

אני חושב שלא הבנתה מה אני רוצה לעשות...

כשאני מנסה להחליף משהו אחד במשהו אחד הכל עובד...אבל אחרי שאני מנסה לעשות החלפה של 2 דברים ב2 דברים זה לא עובד...

הקוד הזה:
PHP קוד:

<?
function str_tpl($dir,$file,$what,$whith){
    
$tpl file_get_contents($dir."/".$file.".tpl");
    if(
$what != NULL AND $whith != NULL){
        
$tpl str_replace ($what$whith$tpl);
    }
    return 
$tpl;
}

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);
?>

עובד...

אבל אחרי שאני משנה אותו קצת בכך שאני מפצל 2 חלקים ממנו ומכניס לתוך מערך ולאחר מכן מנסה לבצע החלפה אחד על אחד זה לא עובד לי :(

RS324 23-09-06 09:01

אוקי עכשיו הבנתי אותך.. ומסתבר שצדקתי בהתחלה
תנסה לעשות משהו כזה...

PHP קוד:

<?
function str_tpl($dir,$file,$what,$with)
{
//    $what = array(0=>'firstval',1=>'secondval');
    //$width = array(0=>'firstreplace',1=>'secondreplace');
    
    
    
$tpl file_get_contents($dir."/".$file.".tpl");
    
$tpl preg_replace("/$what/",$with,$tpl);

    return 
$tpl;
}

$what = array('<*CSS_NUM*>','<*BLOCK_TITLE*>','<*BLOCKS*>');  
$with = array('1','כותרת','block in here');

echo 
str_tpl('style','header',$what,$with);

?>


-VladK- 23-09-06 10:33

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


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

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