Je trouve une ligne dans un fichier PHP en utilisant PHP et en lui écrivant en changeant une variable sur une ligne particulière. S'il vous plaît voir la fonction ci-dessous.Problèmes d'écriture dans les fichiers au bon endroit
Cela fonctionne très bien lorsque je le teste seul. Cependant, lorsque je l'exécute dans mon script principal, cela ne fonctionne pas correctement. Je trouve le genre de chose suivant on = "Version_3_18110";
dans le fichier PHP quand il devrait être $version = "Version_3_18110";
Cette fonction peut-elle être affectée par des échos plus loin dans le script principal? La chaîne passée en tant que $version
est toujours ce dont j'ai besoin, elle n'est pas écrite correctement.
Que se passe-t-il?
function edit_config_version($version){
$version = trim($version);
$file = fopen("../includes/db-connect.php", "r") or exit("Unable to open file!");
$count = 0;
while(!feof($file)){
$line = fgets($file);
if(substr($line, 0, 10)=='$version ='){
$line_number = $count;
}
$count++;
}
fclose($file);
$count = 0;
$file = fopen("../includes/db-connect.php", "r+") or exit("Unable to open file!");
while(!feof($file)){
if($line_number==$count){
fwrite($file, '$version = "Version_'.$version.'";'."\r\n");
}
$line = fgets($file);
$count++;
}
fclose($file);
}
Contenets de db_connect.php:
/*
* Date: 06/10/09
* Last Updated: 06/04/2010
*/
$serverName = 'ABS-PC';
$monitor_name = "BTSH_Mon_3_18111";
$version = "Version_3_18112";
$full_url = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
$full_url = explode('view-report.php', $full_url);
$sitePath = $full_url[0];
$full_url = dirname('http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']).'/';
$sitePathFolder = $full_url;
/*
* Make sure to close the connection in the scripts
* sqlsrv_close($conn);
*/
Intéressant ce que vous essayez de faire ici. Pourriez-vous fournir le contenu (exemple) de db-connect.php? Il serait plus facile d'essayer votre script. – Max
Je suggère d'utiliser un script sed d'une ligne pour cela, puisque vous faites juste une recherche et remplacez un motif particulier (http://www.grymoire.com/Unix/Sed.html). –
Je suis sur une machine Windows et cette application web sera distribuée sur des machines basées sur Windows. Des commandes équivalentes? – Abs