php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2008

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 01.05.2008, 16:36  
Neuer Benutzer
 
Registriert seit: 01.05.2008
Beiträge: 7
XXcD befindet sich auf einem aufstrebenden Ast
Standard String suchen und ersetzen

Hallo,
ich arbeite gerade an meinem ersten großen Projekt.
Ich schreibe ein Webinterface für gameserver und bräuchte da mal hilfe.

Ich möchte auf der Website mehrere Textfelder anzeigen und damit dann einzelne Werte in einer .cfg Datei bearbeiten.

Der Aufbau sieht ungefähr so aus:
Code:
hostname "TestServer"
mp_freezetime "3"
mp_friendlyfire "0"
mp_limitteams "30"
mp_logecho "0"
mp_logfile "1"
mp_maxrounds "0"
mp_roundtime "4"
mp_spawnprotectiontime "3"
mp_startmoney "900"
mp_timelimit "0"
mp_tkpunish "0"
Und mit folgender Methode möchte ich den hostname bearbeiten:

PHP-Code:
<?php
function file_edit($file$trennzeichen$suche$neuerwert) {
$test "";
if ( 
$fh fopen$file'r+' ) ) {
    
// Durchlaufe Zeile für Zeile
    
while( $current fgets$fh4096 ) ) {
          if (
ereg($suche$current)) 
{  
list(
$dummy$oldstring$tetsind) = explode$trennzeichen$current);
$meinstring str_replace($oldstring$neuerwert$current);
$test $test.$meinstring;
}
else
{            
 
$test $test.$current;
 }
    }
 
    
fclose$fh );
 
 
$fh fopen($file'r+');
fwrite($fh$test);
fclose($fh);
}
}
file_edit("./test.cfg"'"'"hostname"'test');
?>
Das Problem ist, ich kriege folgenden Wert in die Datei zurück:
Code:
hostname "test"" 
Kann mir da vielleicht einer helfen, oder weiß einer ne bessere Idee um die daten zu bearbeiten?
XXcD ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 01.05.2008, 16:45  
Erfahrener Benutzer
 
Benutzerbild von litterauspirna
 
Registriert seit: 24.04.2008
Beiträge: 3.172
PHP-Kenntnisse:
Anfänger
litterauspirna sorgt für eine eindrucksvolle Atmosphärelitterauspirna sorgt für eine eindrucksvolle Atmosphäre
litterauspirna eine Nachricht über ICQ schicken
Standard

Hallo!

Also ich hoffe mal ich täusche mich nicht aber in der Zeile dürfte ein Fehler sein!

PHP-Code:
<?php
$meinstring 
str_replace($oldstring$neuerwert$current);
?>
Astatt des $current müsste da glaube ich $meinstring rein!

Ich hoffe ich irre mich nicht!
__________________
Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
http://www.lit-web.de
litterauspirna ist offline  
Alt 01.05.2008, 17:06  
Neuer Benutzer
 
Registriert seit: 01.05.2008
Beiträge: 7
XXcD befindet sich auf einem aufstrebenden Ast
Standard

Hmm aber meinstring ist ja leer. Current ist die aktuelle zeile und meinstring ist das ergebnis. Also glaube nicht, dass da der Fehler liegt.
XXcD ist offline  
Alt 01.05.2008, 17:11  
Erfahrener Benutzer
 
Benutzerbild von litterauspirna
 
Registriert seit: 24.04.2008
Beiträge: 3.172
PHP-Kenntnisse:
Anfänger
litterauspirna sorgt für eine eindrucksvolle Atmosphärelitterauspirna sorgt für eine eindrucksvolle Atmosphäre
litterauspirna eine Nachricht über ICQ schicken
Standard

Aber wenn $meinstring leer ist warum machst dann ein str_replace darauf? Was soll denn da replaced werden?
Einen str_replace auf eine leere Variable ist ziemlich Sinnlos oder?

Dann müsste ich denke mal die Zeile so ausschauen!
PHP-Code:
<?php
$current 
str_replace($oldstring$neuerwert$current);

//Und das Ergebnis so
$test $test.$current;
?>
__________________
Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
http://www.lit-web.de
litterauspirna ist offline  
Alt 01.05.2008, 20:49  
Neuer Benutzer
 
Registriert seit: 01.05.2008
Beiträge: 7
XXcD befindet sich auf einem aufstrebenden Ast
Standard

Habs ausprobiert, macht auch keinen unterschied.
XXcD ist offline  
Alt 01.05.2008, 20:53  
Erfahrener Benutzer
 
Benutzerbild von litterauspirna
 
Registriert seit: 24.04.2008
Beiträge: 3.172
PHP-Kenntnisse:
Anfänger
litterauspirna sorgt für eine eindrucksvolle Atmosphärelitterauspirna sorgt für eine eindrucksvolle Atmosphäre
litterauspirna eine Nachricht über ICQ schicken
Standard

Hast du mal bevor du das str_replace ausführst eine Testausgabe gemacht ob in $current überhaupt was drin steht?

Wie sollte das eigentliche Ergebnis aussehen was du erwartest?

Wo kommt denn $oldstring her und als was setzt sich das zusammen?
__________________
Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
http://www.lit-web.de

Geändert von litterauspirna (01.05.2008 um 20:57 Uhr).
litterauspirna ist offline  
Alt 01.05.2008, 21:34  
Neuer Benutzer
 
Registriert seit: 01.05.2008
Beiträge: 7
XXcD befindet sich auf einem aufstrebenden Ast
Standard

Hab mit echo die jeweilige zeile ausgeben lassen, das hat funktioniert.

Also ich habe dieses Ergebnis:
Code:
hostname "test""
Diese möchte ich aber:
Code:
hostname "test"
Da ist einfach ein Anführungszeichen zuviel. Aber ich weiß auch nicht ob das ganze so gut ist, wenn ich mehrere Teile ändern möchte. Wie das dann so mit der Performance aussieht.
XXcD ist offline  
Alt 01.05.2008, 21:42  
Erfahrener Benutzer
 
Benutzerbild von litterauspirna
 
Registriert seit: 24.04.2008
Beiträge: 3.172
PHP-Kenntnisse:
Anfänger
litterauspirna sorgt für eine eindrucksvolle Atmosphärelitterauspirna sorgt für eine eindrucksvolle Atmosphäre
litterauspirna eine Nachricht über ICQ schicken
Standard

Diese Zeile hier ist für die Ausgabe zuständig? Oder sehe ich das falsch?

PHP-Code:
<?php
file_edit
("./test.cfg"'"'"hostname"'test');
?>
und dein Ergebnis ist das hier hostname ="test""

Hmm ich vermute mal das damit was nicht stimmt 'test' denn was anderes kann ich mir nicht erklären weil das könnten zwei single quote sein oder auch nur ein double quote!

Versuche mal den Teil hier , 'test' raus zu nehmen!

Ob es daran liegt weis ich nicht aber ich vermute es!
__________________
Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
http://www.lit-web.de
litterauspirna ist offline  
Alt 01.05.2008, 22:03  
Neuer Benutzer
 
Registriert seit: 01.05.2008
Beiträge: 7
XXcD befindet sich auf einem aufstrebenden Ast
Standard

Hab jetzt gemerkt ich muss mehrere zeilen in der config datei haben.

Wenn ich die Textdatei so habe:

Code:

hostname "irgendwas"
Ergebnis: 
hostname "test""
 
Und so:
CODE]
hostname "irgendwas"
fgdfg
gdrg
tgg
dt

Ergebnis:
hostname "test"
[/code]

Also müssen in der Datei wohl nur mehrere Zeilen sein.

Aber trotzdem frage ich mich ob dieses Verfahren wirklich sinnvoll ist oder ob jemand eine bessere Idee hat.
XXcD ist offline  
Alt 02.05.2008, 15:53  
Benutzer
 
Registriert seit: 11.04.2008
Beiträge: 64
pacey befindet sich auf einem aufstrebenden Ast
Standard

logisch. es gibt sehr schöne Datenspeicherungsformate. zum beispiel die daten serialisiert abzulegen, oder ein einfaches format wie json. oder ein mächtiges format wie xml.

und natürlich musst du nicht das rad neu erfinden:
PEAR :: Package :: Config
PHP: XML Parser - Manual
PHP: XMLWriter - Manual
PHP: JSON - Manual
pacey ist offline  
 


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
Event abfangen Ambience JavaScript, Ajax und mehr 4 30.08.2007 14:36
String mit Parameter ersetzen GSJLink PHP Tipps 2007 3 13.01.2007 14:24
String durchsuchen und ersetzen unabhängig von Groß / KLein PHP Tipps 2006 2 09.07.2006 23:29
String, Zeichen ersetzen mit Ausnahmen! I-Spy PHP Tipps 2006 3 26.05.2006 11:31
String ersetzen Benshee PHP Tipps 2006 4 02.04.2006 21:43
unbekannten String ersetzen PHP Tipps 2005-2 7 27.10.2005 11:13
preg_replace: Zahl anstatt String FI-DD PHP-Fortgeschrittene 4 02.10.2005 14:50
[Erledigt] Aufeinanderfolgende gleiche Chars im String ersetzen PHP-Fortgeschrittene 5 01.09.2005 16:02
String in allen Spalten suchen Jacks Rache Datenbanken 0 05.08.2005 09:43
String durchsuchen und Zeichenkette ersetzen PHP Tipps 2005-2 2 10.07.2005 22:48
String ersetzen kai_lamers PHP Tipps 2005-2 2 11.06.2005 14:52
where string von einer funktion zu anderen transportieren PHP Tipps 2005 5 03.03.2005 16:29
[Erledigt] String mit Leerzeichen auffüllen HTML, Usability und Barrierefreiheit 2 27.10.2004 18:47
mit print Variablen in String ersetzen PHP Tipps 2004 3 27.09.2004 21:29
Reguläre Ausdrücke beim suchen und ersetzen Off-Topic Diskussionen 5 05.07.2004 15:35

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
string suchen ersetzen, php ersetzen string mehrere zeilen, string suchen php, suche string und ersetzen, php ersetzen \*\

Alle Zeitangaben in WEZ +2. Es ist jetzt 15:55 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