Avatar billede Slettet bruger
19. april 2007 - 15:54 Der er 3 kommentarer og
1 løsning

Udtræk og skriv til txt fil

Hej

Hvordan udtrækker dele fra en txt fil. hvordan sletter jeg og hvordan skriver jeg ?

httpd-vhost.txt

<--- Start --->

<VirtualHost *:80>
    DocumentRoot C:\websrv\Apache2\htdocs\test1
    ServerName test1.dk
</VirtualHost>
<VirtualHost *:80>
    DocumentRoot C:\websrv\Apache2\htdocs\test2
    ServerName test2.dk
</VirtualHost>

<--- Slut --->

hvordan trækker jeg det ud i en php fil.
og hvordan kan jeg fx slette domain test 2 ?

på forhånd tak!
Avatar billede jakobdo Ekspert
19. april 2007 - 21:21 #1
Du kunne indlæse filen i en variabel:

$domain = 'test2.dk';
$filename = 'httpd.conf';
$httpd_conf = file_get_contents($filename);
$new_httpd_conf = preg_replace('%\\<VirtualHost[^\\<]+'.preg_quote($domain).'.+?\\</VirtualHost\\>%s', '', $httpd_conf);
file_put_contents($filename,$new_httpd_conf); //Kræver PHP5
Avatar billede johan.o Nybegynder
20. april 2007 - 21:34 #2
Måske du kan bruge det her..

<?php

$oStr=file_get_contents("test.txt");

preg_match_all("/(<VirtualHost.*?>)\r\n(.*)?\r\n(.*)?\r\n(<\/VirtualHost>)/", $oStr, $matches);

$nStr=array();

if(isset($_POST['newRoot'])) {
for($i=0; $i<count($matches[0]); $i++) {
  if($_POST['oDel'.$i]!="remove") {
  $nStr[]=$matches[1][$i]."\n".$matches[2][$i]."\n".$matches[3][$i]."\n".$matches[4][$i]; } }

if($_POST['newRoot']!="" && $_POST['newServer']!="") {
  $nStr[]="<VirtualHost *:80>\n    DocumentRoot ".$_POST['newRoot']."\n    ServerName ".$_POST['newServer']."\n</VirtualHost>"; }

$handle=fopen("httpd-vhost.txt", "w");
fwrite($handle, implode("\n", $nStr));
fclose($handle); }
else {
$nStr=$matches[0]; }

$out="<html>\n<head>\n<style>\ntd {\n border: 1px solid #AAA898; }\n</style>\n</head>\n<body>\n";

$out.="<h2>Edit indhold :</h2>\n<h3>Eksisterende indhold :</h3>\n<form action='' method='post'>\n<table>\n<tr>\n<td>Slet</td>\n<td>Indhold</td>\n</tr>\n";

for($i=0; $i<count($nStr); $i++) {
$out.="<tr>\n<td><input type='checkbox' name='oDel".$i."' value='remove'></td>\n<td>".nl2br(htmlentities($nStr[$i], ENT_QUOTES))."</td>\n</tr>\n"; }

$out.="</table>\n<h3>Nyt indhold :</h3>\n<table>\n<tr>
<td>DocumentRoot</td><td><input type='text' name='newRoot'></td>
</tr><tr>
<td>ServerName</td><td><input type='text' name='newServer'></td>
</tr>\n</table>

<input type='submit' value='Send'>
</form>\n</body>\n</html>";

echo $out;

?>

Mvh. Johan
Avatar billede Slettet bruger
19. august 2008 - 11:46 #3
lig svar johan.o
Avatar billede johan.o Nybegynder
19. august 2008 - 23:12 #4
Kommer her :)

Mvh. Johan
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester