Autor | Zpráva | ||
---|---|---|---|
Fisak Profil * |
#1 · Zasláno: 29. 12. 2011, 12:48:03
Zdravím... potřeboval bych poradit jak přepsat určitý řádek v souboru.. dám příklad mam soubor index.php kde mam
if(isset($_POST["edit_file"])) { $text_file = $_POST["text"]; unlink("upload/config.php"); $soubor_config = fopen("upload/config.php", "a+"); fwrite($soubor_config, $text_file); fclose($soubor_config); } takhle se přepíše celý obsah ale jak docílit toho aby se přepsal jen určitý řádek nebo jen určitý text např 3. řádek nebo jen text $promenna = "text"; ??? |
||
kajaman Profil |
#2 · Zasláno: 29. 12. 2011, 13:03:08 · Upravil/a: kajaman
Fisak:
fce file načte celý soubor do pole, kde bys mohl vyměnit ten řádek a zapsat vše zpět do souboru,
popř. funce file_get_contents načte soubor do stringu, který můžeš prohledat a nahradit požadovaný text napž. pomocí fce preg_replace
|
||
Fisak Profil * |
#3 · Zasláno: 29. 12. 2011, 16:53:54 · Upravil/a: Fisak
netušim co tam mam blbě :(
if(isset($_POST["zmenit"])) { $displ_err=eregi_replace('[^a-z]', '', $_POST["display_error"]); $page = file_get_contents('index.php'); if($displ_err == "off") { $patterns = "@ini_set('display_errors', 'on');"; $zmena = preg_replace($patterns, "@ini_set('display_errors', 'off');", $page); $soubor_config = fopen("index.php", "a+"); fwrite($soubor_config, $zmena); fclose($soubor_config); } } prostě mi to nepřepisuje ten index.... |
||
Alphard Profil |
Fopen a+ bude přidávat na konec, pro váš účel to není vhodný modifikátor.
Vypisuje se nějaká chyba? Jaký soubor tento script vykonává, index.php? Pro hledání závady samozřejmě prohlížejte různé debug výpisy proměnných, vykoná se první podmínka? Vykoná se druhá podmínka? Je v $zmena správný obsah? Obecně to nevypadá moc pěkně, nešlo by napsat to trochu obecněji? Rozhodně bych si taky dynamicky neměnil index, když už, tak něco, co se includuje. |
||
Fisak Profil * |
#5 · Zasláno: 29. 12. 2011, 17:10:58
jo to se dá zařídit ... ale první problém je v tom že chci přepsat php kód takže to asi nepobírá ten file_get_contents protože když dam echo $page tak se mi nic nevypíše... tam vidim chybu
|
||
Alphard Profil |
#6 · Zasláno: 29. 12. 2011, 17:35:43
Obecně nemá file_get_contents() problém načíst php soubor.
|
||
Fisak Profil * |
#7 · Zasláno: 29. 12. 2011, 17:50:50
soubor _system/opconfg.php:
// debug ochrana @ini_set('display_errors', 'on'); define('_PS_DEBUG_SQL_', false); $start_time = microtime(true); // varování o compatibilitě define('_PS_DISPLAY_COMPATIBILITY_WARNING_', true); // SSL konfigurace define('_PS_SSL_PORT_', 443); // PHP konfigurace ini_set('upload_max_filesize', '100M'); ini_set('default_charset', 'utf-8'); ini_set('magic_quotes_runtime', 0); if(isset($_POST["zmenit"])) { $displ_err=eregi_replace('[^a-z]', '', $_POST["display_error"]); $page = file_get_contents('_system/opconfg.php'); if($displ_err == "off") { $zmena = preg_replace("'display_errors', 'on'", "'display_errors', 'off'", $page); $soubor_config = fopen("_system/opconfg.php", "a+"); fwrite($soubor_config, $zmena); fclose($soubor_config); redirects_page(admin, developer, options); } if($displ_err == "on") { $zmena = preg_replace("'display_errors', 'off'", "'display_errors'", $page); $soubor_config = fopen("_system/opconfg.php", "a+"); fwrite($soubor_config, $zmena); fclose($soubor_config); redirects_page(admin, developer, options); } } |
||
Časová prodleva: 12 let
|
0