Ik ben bezig met het schrijven van een updatescript voor php. Wat hou het in? Je hebt een php-pagina, bijvoorbeeld index.php, met heel veel code. Dan krijg je van mij update.php die bepaalde strings opzoekt en bewerkt (verwijderen, verplaatsen of toevoegen, noem maar op).
Waarom dit script? Om gebruikers die geen verstand van php hebben het gemakkelijk te maken om update's uit te voeren.
Waarom dan niet het gehele bestand verwijderen en de nieuwe installeren? Omdat dan verandereingen die door de gebruikers zelf zijn uitgevoed verloren gaan.
Wat is mijn probleem? Op dit moment kan ik enkel een enkele regel updaten. Dus als de code uit meerdere regels bestaat dan vindt hij hem niet
. Ik denk dat dat te maken heeft met returns en tabs.
Wordt wel gevonden:
Wordt niet gevonden:
Dit is mijn code tot nu toe.
Heeft iemand dit probleem al opgelost. Of weet een php functie voor de returns en de tabs. Laat het me weten.
Waarom dit script? Om gebruikers die geen verstand van php hebben het gemakkelijk te maken om update's uit te voeren.
Waarom dan niet het gehele bestand verwijderen en de nieuwe installeren? Omdat dan verandereingen die door de gebruikers zelf zijn uitgevoed verloren gaan.
Wat is mijn probleem? Op dit moment kan ik enkel een enkele regel updaten. Dus als de code uit meerdere regels bestaat dan vindt hij hem niet
Wordt wel gevonden:
code:
1
| $warning .= "Cannot open file ($filename).<br />"; |
Wordt niet gevonden:
code:
1
2
3
4
| if (!$handle = fopen($filename, "r+")) { $warning .= "Cannot open file ($filename).<br />"; exit; } |
Dit is mijn code tot nu toe.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
| <?php function update_file($filename, $search, $replacement, $rowinfo){ // Let's make sure the file exists and is writable first. if (is_writable($filename)) { // In our example we're opening $filename in append mode. // The file pointer is at the bottom of the file hence // that's where $somecontent will go when we fwrite() it. if (!$handle = fopen($filename, "r+")) { $warning .= "Cannot open file ($filename).<br />"; exit; } // Read the content out the file $contents = fread($handle, filesize($filename)); // Replace the content with the new content $newcontent = str_replace(stripslashes($search),stripslashes($replacement),$contents); // Rewind the position of a file pointer. Otherwise the new text wil be placed behind the old text rewind($handle); // Write $somecontent to our opened file. if (fwrite($handle, $newcontent) === FALSE) { $warning .= "Cannot write to file ($filename).<br />"; exit; } // Flushes the output to a file, function? I don't know. fflush($handle); $warning .= "Success, update file ($filename, $rowinfo).<br />"; // Truncates a file to a given length. ftruncate($handle, ftell($handle)); // Close file fclose($handle); }else{ $warning .= "The file $filename is not writable.<br />"; } return $warning; } //edit index.php $file = "index.php"; //the rownumbers can be different $rowinfo = 'information'; $search = 'change this'; $replacement = 'into this'; echo update_file($file,$search,$replacement,$rowinfo); ?> |
Heeft iemand dit probleem al opgelost. Of weet een php functie voor de returns en de tabs. Laat het me weten.
[ Voor 16% gewijzigd door donderklik op 02-12-2005 12:01 . Reden: Was nog niet klaar met het bericht, maar had het al verstuurd 8)7 ]
Northing.nl