php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 26.10.2004, 16:45  
Gast
 
Beiträge: n/a
Standard [Erledigt] .reg Datei auslesen und bestimmte Zeile ändern

Moin,

eigentlich habe ich sowas schonmal gelöst. Doch diesmal verzweifle ich fast.

Also, ich habe eine exportierte .reg Datei (Win2000-Registrierung). In dieser Datei möchte ich eine bestimmte Zeile oder meinetwegen auch einen bestimmten Ausdruck suchen und durch nen anderen Ersetzen.

Folgendes habe ich schon probiert:
  • Auslesen der Datei mit file() in einen Array
    Jeden Arraybestandteil einzeln vergleichen oder auch mit regulären Ausdrücken versucht zu finden (preg_match, ereg_replace....)

Oder auch so:
  • Datei mit file_get_contents in einen String gelesen
    Und versucht mit Stringfunktionen zu bearbeiten ...

Ich kann mir den String bzw. das Array ausgeben lassen und ich bekomme es einfach nicht hin es zu ändern.

Einer ne Idee was ich evtl. übersehen habe? Versteckte Zeichen, Binäre Klamotten, Zeilenendzeichen?
  Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 26.10.2004, 16:59  
Gast
 
Beiträge: n/a
Standard

Du willst dafür eine Komplettlösung? Dann gehört dieser Beitrag nicht unter PHP-Fortgeschrittene
  Mit Zitat antworten
Alt 26.10.2004, 17:00  
Gast
 
Beiträge: n/a
Standard

ne, nur Anregungen

Ich bin gerade da total am Ende. habs mit allen Mitteln probiert die mir einfiehlen.

Also was ich evtl. noch versuchen könnte. Den Rest bastel ich mir dann schon
  Mit Zitat antworten
Alt 26.10.2004, 17:04  
Gast
 
Beiträge: n/a
Standard

Du hast ja die Lösung schon geschrieben. Als Array einlesen und dann mit PREGs oder eigenem Tokenizer Suchen&Ersetzen.
  Mit Zitat antworten
Alt 26.10.2004, 17:05  
Gast
 
Beiträge: n/a
Standard

Ja, aber das funzt net. preg_match() findet nur wenn das Pattern so ausschaut: /./

Und ich suche /AppDirectory/i .... und der findet nix, obwohl es dort in einer Zeile so drinsteht ..
  Mit Zitat antworten
Alt 26.10.2004, 17:08  
Erfahrener Benutzer
 
Registriert seit: 19.10.2004
Beiträge: 498
marsch
Standard

Zitat:
Zitat von Hagbard88
Ja, aber das funzt net. preg_match() findet nur wenn das Pattern so ausschaut: /./

Und ich suche /AppDirectory/i .... und der findet nix, obwohl es dort in einer Zeile so drinsteht ..
Uh, dann musst Du richtig maskieren... preg_match funktioniert dann wunderbar Wie genau sehen denn Deine Ausdrücke aus?
__________________
Cheers, Marco
marsch ist offline   Mit Zitat antworten
Alt 26.10.2004, 17:10  
Gast
 
Beiträge: n/a
Standard

Also die Zeile die ich suche heißt :
Code:
"AppDirectory"="c:\test"
Und die möchte ich ersetzen durch:

Code:
"AppDirectory"="c:\test\test"
  Mit Zitat antworten
Alt 26.10.2004, 20:06  
Erfahrener Benutzer
 
Registriert seit: 19.10.2004
Beiträge: 498
marsch
Standard

Also, wie gesagt, Du musst maskieren, besonders beim Backslash...

PHP-Code:
<?php

$s 
'das hier interessiert keinen... >"AppDirectory"="c:\test"< hier geht der String weiter...';

$pattern '/\"AppDirectory\"\s*=\s*\"c:\\\\test\"/i';

$replace '"AppDirectory"="c:\test\test"';
$s preg_replace ($pattern$replace$s);
print (
sprintf ("%s\n"$s));

?>
__________________
Cheers, Marco
marsch ist offline   Mit Zitat antworten
Alt 27.10.2004, 08:28  
Gast
 
Beiträge: n/a
Standard

Also, ich bekomme gleich ne Krise:


Das hier ist die Reg-Datei die ich verändern will:
Code:
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\mrtg]
"Type"=dword:00000010
"Start"=dword:00000002
"ErrorControl"=dword:00000001
"ImagePath"=hex(2):63,00,3a,00,5c,00,77,00,69,00,6e,00,6e,00,74,00,5c,00,73,00,\
  72,00,76,00,61,00,6e,00,79,00,5c,00,73,00,72,00,76,00,61,00,6e,00,79,00,2e,\
  00,65,00,78,00,65,00,00,00
"DisplayName"="mrtg"
"ObjectName"="LocalSystem"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\mrtg\Parameters]
"AppDirectory"=
"Application"=
"AppParameters"=

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\mrtg\Security]
"Security"=hex:01,00,14,80,a0,00,00,00,ac,00,00,00,14,00,00,00,30,00,00,00,02,\
  00,1c,00,01,00,00,00,02,80,14,00,ff,01,0f,00,01,01,00,00,00,00,00,01,00,00,\
  00,00,02,00,70,00,04,00,00,00,00,00,18,00,fd,01,02,00,01,01,00,00,00,00,00,\
  05,12,00,00,00,00,00,00,00,00,00,1c,00,ff,01,0f,00,01,02,00,00,00,00,00,05,\
  20,00,00,00,20,02,00,00,00,00,00,00,00,00,18,00,8d,01,02,00,01,01,00,00,00,\
  00,00,05,0b,00,00,00,20,02,00,00,00,00,1c,00,fd,01,02,00,01,02,00,00,00,00,\
  00,05,20,00,00,00,23,02,00,00,00,00,00,00,01,01,00,00,00,00,00,05,12,00,00,\
  00,01,01,00,00,00,00,00,05,12,00,00,00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\mrtg\Enum]
"0"="Root\\LEGACY_MRTG\\0000"
"Count"=dword:00000001
"NextInstance"=dword:00000001
PHP-Code:
<?
$string
=file_get_contents("mrtg.reg");
$pattern '/\"AppDirectory\"=/i';
$replace '"AppDirectory"="c:\\test\\bin"';
$string preg_replace($pattern,$replace,$string);
?>

So, wenn ich manuell ne Stringvariable setze, wo das Pattern drin vorkommt ändert der das anstandslos. Nur wenn ich die Datei in einen String auslese nicht.
Was fehlt?
  Mit Zitat antworten
Alt 27.10.2004, 08:34  
Erfahrener Benutzer
 
Registriert seit: 19.10.2004
Beiträge: 498
marsch
Standard

Ich weiß gar nicht, warum Du schimpfst
PHP-Code:
<?php

$text 
= <<<EOF
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\mrtg]
"Type"=dword:00000010
"Start"=dword:00000002
"ErrorControl"=dword:00000001
"ImagePath"=hex(2):63,00,3a,00,5c,00,77,00,69,00,6e,00,6e,00,74,00,5c,00,73,00,\
  72,00,76,00,61,00,6e,00,79,00,5c,00,73,00,72,00,76,00,61,00,6e,00,79,00,2e,\
  00,65,00,78,00,65,00,00,00
"DisplayName"="mrtg"
"ObjectName"="LocalSystem"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\mrtg\Parameters]
"AppDirectory"=
"Application"=
"AppParameters"=

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\mrtg\Security]
"Security"=hex:01,00,14,80,a0,00,00,00,ac,00,00,00,14,00,00,00,30,00,00,00,02,\
  00,1c,00,01,00,00,00,02,80,14,00,ff,01,0f,00,01,01,00,00,00,00,00,01,00,00,\
  00,00,02,00,70,00,04,00,00,00,00,00,18,00,fd,01,02,00,01,01,00,00,00,00,00,\
  05,12,00,00,00,00,00,00,00,00,00,1c,00,ff,01,0f,00,01,02,00,00,00,00,00,05,\
  20,00,00,00,20,02,00,00,00,00,00,00,00,00,18,00,8d,01,02,00,01,01,00,00,00,\
  00,00,05,0b,00,00,00,20,02,00,00,00,00,1c,00,fd,01,02,00,01,02,00,00,00,00,\
  00,05,20,00,00,00,23,02,00,00,00,00,00,00,01,01,00,00,00,00,00,05,12,00,00,\
  00,01,01,00,00,00,00,00,05,12,00,00,00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\mrtg\Enum]
"0"="Root\\LEGACY_MRTG\\0000"
"Count"=dword:00000001
"NextInstance"=dword:00000001
EOF;

$pattern '\"AppDirectory\"\s*=';
$replace '"AppDirectory"="c:\test\test"';

$s preg_replace ("/$pattern/i"$replace$text);
print (
$s); print ("\n");

?>
__________________
Cheers, Marco
marsch ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] 'upload-Datei' Zeile für Zeile auslesen Felix PHP Tipps 2008 18 29.06.2008 02:55
Zeile aus Datei auslesen und teil davon verändern... BartTheDevil89 PHP Tipps 2008 5 04.04.2008 21:00
Datei auslesen Joerg80 PHP Tipps 2008 8 26.03.2008 22:18
Log Datei auslesen Computer PHP Tipps 2006 7 05.09.2006 16:15
Daten aus einer txt Datei auslesen lassen Zangelo PHP Tipps 2006 4 29.05.2006 09:57
Text datei geordnet auslesen!! lindner PHP Tipps 2007 7 18.11.2005 09:52
[Erledigt] bestimmte ID's auslesen als array PHP Tipps 2007 2 31.10.2005 20:23
CSV Datei rückwärts auslesen Schubi PHP Tipps 2005-2 16 12.09.2005 19:34
[Erledigt] nächste Zeile einer Db auslesen? PHP Tipps 2005-2 7 01.08.2005 00:11
zeile alphabetisch auslesen?? imported_kremser PHP Tipps 2005-2 5 29.07.2005 14:19
Bestimmte Zeile??? web2 PHP Tipps 2005 11 14.04.2005 11:24
[Erledigt] Zufällig eine Zeile auslesen Datenbanken 9 09.04.2005 22:10
Ext .txt Datei auslesen PHP Tipps 2004 2 14.08.2004 21:18
Datei auslesen Stümper PHP Tipps 2004 1 04.08.2004 14:49
Variable von .txt Datei auslesen PHP Tipps 2004 1 01.07.2004 11:18

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
reg datei auslesen, .reg datei auslesen, registry datei auslesen, datei in ein array einlesen und eine zeile ändern, registrierung auslesen reg datei, reg-datei auslesen, http://www.php.de/php-fortgeschrittene/11243-reg-datei-auslesen-und-bestimmte-zeile-aendern.html, c reg datei auslesen, reg datei, csvdatei zeile ändern php, datei zeilenweise einlesen und modifizieren, reg file wert ändern, regdatei auslesen, reg file auslesen, php datei auslesen bearbeiten, php bestimmte zeile in datei ändern, registry zeile ändern, reg datei inhalt, registry dateien auslesen, text in datei in array einlesen ersetzen mit php

Alle Zeitangaben in WEZ +2. Es ist jetzt 19:20 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.