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

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   בקשה | הסבר לבניית קובץ קונפיג (https://hosts.co.il/forums/showthread.php?t=70339)

SarafC 17-12-08 20:38

בקשה | הסבר לבניית קובץ קונפיג
 
אני רוצה לבנות קובץ קונפיג למערכת שלי (מסמך PHP שיכיל משתנם ובשליפה שלהם יהיה להם שימוש באתר).

יצרתי את הקובץ ואת המשתנים, קראתי בהצלחה את הקובץ עם FREAD וכל זה.

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

אשמח אם תעזרו לי.

יום טוב!

DvirCohen 17-12-08 20:48

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

Erez | TrustMedia.co.il 17-12-08 22:22

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

intercooler3819 17-12-08 23:08

למה מערך..
אני היתי קופץ על INI או YAML או XML
הPARSING מאוד קל והשמירה גם כן..

אולי אפילו JSON

בהצלחה

AlmogBaku 17-12-08 23:13

הכל עדיף חוץ מ XML.
משתנים של php, קובץ ini, או yaml יכולים להיות אחלה- אבל XML מסובך ללקוח.

לדעתי הכי פשוט, והכי סטנדרטי זה משתנים/מערך עם הערות מובנות מאוד.


גם ככה הלקוח לא צריך להתעסק עם זה, לדעתי צריך להיות לו סקריפט.

DvirCohen 18-12-08 13:35

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

SarafC 22-12-08 14:53

לא הבנתי ממש..

יש מצב ליותר פירוט?

DvirCohen 22-12-08 15:43

פשוט תעשה את זה עם מערך.
PHP קוד:

// confing.php:
<?php
$confing
['name'] = "dvir";
$config['age'] = 17;
?>

PHP קוד:

function updateConfig($key, $newval)
{
  require_once("path/to/config/config.php");
  $config[ $key ] = $newval;

  $str = "<?phpn";
  foreach( $config as $k => $v )
  {
    $str .= "
$config['".$k."'] = ""$v ."\";\n";
  }
  
$str .= "?>";

  if ( 
$fh fopen("path/to/config.php""w") )
  {
    
fwrite($fh$strstrlen($str));
    
fclose($fh);

    return 
true;
  }

  return 
false;
}



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

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