php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 01.02.2005, 08:42  
Gast
 
Beiträge: n/a
Standard [Erledigt] Auslesen einer Charakterdatei (TXT)?

Also ich habe hier von dem Serveremulator Sphere eine *.scp Datei (TEXT).
Nun möchte ich aus dieser Datei lediglich immer nur 2 Angaben in eine mySQL Datenbank importieren.
Also mit den importieren hätte ich kein Problem, nur bekomme ich dies irgenwie nicht aus dem File herraus.

Die sieht ungefähr folgendermaßen aus (Ausschnitt):

Code:
\\ Sphere TEST TEST accounts file
\\ NOTE: This file cannot be edited while the server is running.
\\ Any file changes must be made to sphereaccu.scp. This is read in at save time.

[Name1]
Password=+++
Email="test@test.de"
Lang=DEU
PrivFlag_EMailValid=1
TotalConnectTime=193
LastConnectTime=26
LastCharUID=07D1
CharUID=07D1
FirstConnectDate="2005/01/29 19:05:13"
FirstIP="213.23.41.25"
LastConnectDate="2005/01/30 21:42:48"
LastIP="213.23.45.215"

[Name2]
Password=+++
Email="test2@test2.de"
Lang=DEU
PrivFlag_EMailValid=1
TotalConnectTime=46
LastConnectTime=25
LastCharUID=06C39
CharUID=06C39
FirstConnectDate="2005/01/30 18:13:54"
FirstIP="217.233.150.118"
LastConnectDate="2005/01/30 22:40:09"
LastIP="217.233.128.79"
Was ich nur brächte wäre inmal ein Denkanstoß dafür um den Namen der oben in den []
steht in eine Variable zu bekommen damit ich die dan in eine mySQL Datenbank per INSERT einfügen kann.

Wenn ich das wüsste kann ich den Rest wie die eMail etc. bestimmt selber herleiten.
Nur ich habe keinen Schimmer wie ich die einzelnen Werte da raus hole bis das File am Ende ist.

Das einzige was ich zum laufen bekam war folgendes.

PHP-Code:
<?
$fp 
fopen("sphereaccu.scp","r"); 
if (
$fp

    while(!
feof($fp)) 
    { 
    
$text fgets($fp,100); 
    echo
"$text 
"

    } 
fclose($fp); 

?>


Damit lese ich ja alles ein und gebe es aus. Nur würde mir der [Name] und die eMail reichen. Also für jeden Account immer aus der selben Zeile im agnzem File.

Vielleicht hat da jemand die passende idee?


Edit: Ein weiterer Versuch.
PHP-Code:
<? 

$text 
file("test.txt"); 
foreach (
$text as $zeile) { 
    
$anfang strpos($zeile'['); 
    
$ende strrpos($zeile']'); 
    
$string substr($zeile$anfang+1$ende-$anfang-1); 
    echo 
$string
    echo 
"
"


?>
 
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 01.02.2005, 08:53  
Gast
 
Beiträge: n/a
Standard

PHP-Code:
<?php

$x
=file('x.txt'); // hier dann die *.scp Datei
for($i=0;$i<sizeof($x);$i++) // zeilenweise durchgehen
{
 
$j=explode("[",$x[$i]); // nach [ trennen
 
$k=explode("]",$j[1]); // die rechte hälfte davon nach ] trennen
 
$l=explode("=",$x[$i]); // für email nach = trennen
 
if($k[0]>"") echo $k[0].'
'
// wenn was zwischen den [] stand ausgeben
 
if($l[0]=="Email"// wenn links neben dem = ein 'Email' stand
 
{
  
$l[1]=ereg_replace("\"","",$l[1]); // die "" wegkürzen
  
echo $l[1].'
'
// ausgeben
 
}
}

?>
Ausgabe:

Name1
test@test.de
Name2
test2@test2.de
 
Alt 01.02.2005, 09:43  
Gast
 
Beiträge: n/a
Standard

parse_ini_file -- Analysiert eine Konfigurationsdatei

http://de.php.net/parse_ini_file
 
Alt 01.02.2005, 13:38  
Gast
 
Beiträge: n/a
Standard

Allerbesten Dank !!!!
Damit kann ich schonmal weiterarbeiten.

Ich probiere es gleich nachher mal aus.
 
Alt 01.02.2005, 18:13  
Gast
 
Beiträge: n/a
Standard

Hmm nun funktioniert alles wunderbar bis jetzt.

Nun will ich nur noch für die Aktualisierung einer mySQL Datenbank
halt möglichst jeden einzelnen Namen antasten können.

Sprich in eine Variable legen um sie dann in die Datenbank übergeben zu können.

leider habe ich bei meinen bis herigen Versuchen kläglich nur "Array" im Namen stehen gahebt.

Woran liegt das, leider habe ich mit auslesen von Datein sehr wenig Erfahrungen. Vielleicht könnte mir auch jemand die Zahlen in den [] erklären? (z.B. in $k[0].'
'

Vielen dank schomal für die super Hilfe bis jetzt, jeder fängt mal klein an =(.

Das Script sieht bis jetzt so aus.

PHP-Code:
<?php
include 'dbcon_u.php'

echo 
"<hr>";
$x=file('sphereaccu.scp'); // hier dann die *.scp Datei 
for($i=0;$i<sizeof($x);$i++) // zeilenweise durchgehen 

$j=explode("[",$x[$i]); // nach [ trennen 
$k=explode("]",$j[1]); // die rechte hälfte davon nach ] trennen 
$l=explode("=",$x[$i]); // für email nach = trennen 
if($k[0]>"") echo $Name[0] = $k[0].'
'
// wenn was zwischen den [] stand ausgeben 


if($l[0]=="Email"// wenn links neben dem = ein 'Email' stand 

  
$l[1]=ereg_replace("\"","",$l[1]); // die "" wegkürzen 
  
echo $Email $l[1].'
'
// ausgeben 
}
if(
$l[0]=="TotalConnectTime"// wenn links neben dem = ein 'Email' stand 

  
$l[1]=ereg_replace("\"","",$l[1]); // die "" wegkürzen 
  
echo $Online $l[1].'
'
// ausgeben 
}


echo 
"<hr>";
//DB Verbindung aufbauen
//mysql_select_db("ipps");                        
//$eintrag = "INSERT INTO `UO3player` (`pAccname`) VALUES ('$Name')";
//$eintragen = mysql_query($eintrag) OR die (mysql_error());
?>
 
Alt 01.02.2005, 18:17  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse:
Fortgeschritten
robo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz sein
Standard

bau mal ein print_r($deinarray); ein, das dürfte dir helfen, um die struktur zu verstehen. da du mit arrays arbeitest, musst du diese auch jeweils mit dme richtigen index ansprechen.

mfg
robo47
robo47 ist offline  
Alt 01.02.2005, 18:29  
Gast
 
Beiträge: n/a
Standard

also z.B. so

Code:
$Name = print_r($k[0]);
Gibt er mir dann einen verwendbaren Wert aus ?
Ich probier es gleich mal. Danke =)

Edit:

So an gewendet:

PHP-Code:
<?php
include 'dbcon_u.php'

echo 
"<hr>";
$x=file('sphereaccu.scp'); // hier dann die *.scp Datei 
for($i=0;$i<sizeof($x);$i++) // zeilenweise durchgehen 

$j=explode("[",$x[$i]); // nach [ trennen 
$k=explode("]",$j[1]); // die rechte hälfte davon nach ] trennen 
$l=explode("=",$x[$i]); // für email nach = trennen 
if($k[0]>""//echo $k[0].'
'; // wenn was zwischen den [] stand ausgeben 

$Name = print_r($k[0]);
echo '
';

if($l[0]=="Email") // wenn links neben dem = ein '
Email' stand 

  $l[1]=ereg_replace("\"","",$l[1]); // die "" wegkürzen 
  //echo $l[1].'
'; // ausgeben

$Email = print_r($l[1]);
echo '
';
 
}
if($l[0]=="TotalConnectTime") // wenn links neben dem = ein '
Email' stand 

  $l[1]=ereg_replace("\"","",$l[1]); // die "" wegkürzen 
  //echo $l[1].'
'; // ausgeben
  
$Online = print_r($l[1]);  
echo '
;
   
}
}
Bei der ausgabe von:
print_r($k[0]);
print_r($l[1]);
print_r($l[1]);

ist alles in Ordnung.
Aber bei den Vars:

echo $Name;
echo $Email;
echo $Online;

jeweils nur eine 1 *grübel*

Ich probier es weiter.
Falls wer weiss was ich falsch mache, bitte meckern [/php]
 
Alt 02.02.2005, 09:18  
Erfahrener Benutzer
 
Registriert seit: 08.11.2004
Beiträge: 2.079
Der_Gerhard ist zur Zeit noch ein unbeschriebenes Blatt
Der_Gerhard eine Nachricht über ICQ schicken
Standard

Lies mal die Doku von print_r.

Und dann nimm

PHP-Code:
<?
$Name 
print_r($k[0],TRUE);
?>
__________________
**********************************
Nein, ich bin nicht die Signatur.
Ich putze hier nur.
**********************************
Der_Gerhard ist offline  
Alt 02.02.2005, 09:20  
Gast
 
Beiträge: n/a
Standard

Kein Grund das Thema doppelt zu haben, reden wir hier weiter:
http://www.phpfriend.de/ftopic31860.html
 
 


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
Ordner auslesen und während des auslesen sortieren Dooki PHP Tipps 2008 6 14.05.2008 17:50
Vom Browser verschickte Daten auslesen und anzeigen? andy32 PHP Tipps 2008 3 22.08.2007 18:33
[Erledigt] Datenbank auslesen mit register_globals off PHP Tipps 2007 14 03.01.2007 17:12
[Erledigt] gelöst: Tabelle auslesen -&amp;amp;amp;amp;gt; Gleiche Einträge nur 1 Mal Datenbanken 3 31.03.2006 01:44
Textdatei auslesen, aber ohne Komentare HSFighter PHP Tipps 2006 31 23.02.2006 10:07
Cookies auslesen HSFighter PHP Tipps 2007 2 19.11.2005 14:56
[Erledigt] bestimmte ID's auslesen als array PHP Tipps 2007 2 31.10.2005 20:23
Daten eintragen und auslesen Rettungsdackel Datenbanken 0 14.09.2005 16:29
[Erledigt] Daten aus einer Datenbank auslesen Datenbanken 2 04.09.2005 19:13
Daten aus Pw-Geschütztem bereich auslesen PHP-Fortgeschrittene 2 26.08.2005 15:27
[Erledigt] nächste Zeile einer Db auslesen? PHP Tipps 2005-2 7 01.08.2005 00:11
alle Verzeichnisse sortiert auslesen PHP Tipps 2005-2 7 17.07.2005 10:20
auslesen und nochmals auslesen?! $$$ ThiKool $$$ PHP Tipps 2005 23 10.03.2005 19:43
Klassen auslesen PHP Tipps 2007 8 10.01.2005 07:07
[Erledigt] Daten von anderer Homepage auslesen PHP Tipps 2004-2 5 02.12.2004 18:49

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
sphereaccu.scp

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