php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Bewertung: Bewertung: 1 Stimmen, 5,00 durchschnittlich.
  #1 (permalink)  
Alt 30-08-2010, 15:24
mckay
 Registrierter Benutzer
Links : Onlinestatus : mckay ist offline
Registriert seit: Aug 2010
Beiträge: 5
mckay befindet sich auf einem aufstrebenden Ast
Standard Daten aus Textdatei lesen, ändern und in Textdatei schreiben

Hallo liebe php'ler,

ich kenne mich mit php ein wenig aus, jedoch bin ich eher der "anpasser".
Ich möchte gern folgendes realisieren:

Eine habe HTML Tabelle mit Daten, welche per PHP Script aktualisiert werden soll.
HTML-Code:
Name | Jan | Feb | Mar | Apr ...
-------------------------------
Andy | 12 | 23 | 23 | x ...
Stefan | 22 | 13 | 45 | x ...
Jeden Monat kommt also eine neue Zahl beim entsprechenden Namen hinzu.

Die neuen Daten erhalte ich aus der update_apr.txt (für den Monat April):

Andy|45
Stefan|34
Name3|23
Name4|11

Die neuen Zahlen sollen in der Tabelle, der Spalte Apr, hinzugefügt werden.


Wie geht man am besten vor? Man müsste mit PHP jede Zeile auslesen und Name+Wert trennen, und diese dann in der ensprechenden Spalte ausgeben lassen.
Könnte ihr mir hierbei etwas behilflich sein? Wonach muss ich schauen?

Danke.
lg
McKay
Mit Zitat antworten
  #2 (permalink)  
Alt 30-08-2010, 15:33
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

Verstehe ich das richtig, du möchtest mit PHP eine Textdatei lesen und die Daten in eine HTML-Datei einbauen? Warum ersetzt du die HTML-Datei nicht durch ein PHP-Script, dass die Tabelle on-the-fly erzeugt?
Mit Zitat antworten
  #3 (permalink)  
Alt 30-08-2010, 15:35
mckay
 Registrierter Benutzer
Links : Onlinestatus : mckay ist offline
Registriert seit: Aug 2010
Beiträge: 5
mckay befindet sich auf einem aufstrebenden Ast
Standard

Hallo,

ja das ginge auch. Man müsste dann doch im PHP Script angeben wann er <tr> setzen soll, da komm ich schonwieder nicht mit zurecht

Hab schon einige Stunden herumprobiert und gegoogelt.
Wenn mir jemand einen Denkanstoß oder nen Schubs geben könnte wäre mir vllt schon geholfen
Mit Zitat antworten
  #4 (permalink)  
Alt 30-08-2010, 16:02
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.722
Kropff befindet sich auf einem aufstrebenden Ast
Standard

Zeig doch mal deinen bisherigen Code.

Peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
Mit Zitat antworten
  #5 (permalink)  
Alt 30-08-2010, 16:09
mckay
 Registrierter Benutzer
Links : Onlinestatus : mckay ist offline
Registriert seit: Aug 2010
Beiträge: 5
mckay befindet sich auf einem aufstrebenden Ast
Standard

HTML Tabelle (gekürzt):
HTML-Code:
<table border="0" cellspacing="0" cellpadding="0" width="100%" id="table">
<tr valign="top">
<td>Mitglied</td>
<td>Jan</td>
<td>Feb</td>
<td>M&auml;r</td>
<td>Apr</td>
<td>Mai</td>
<td>Jun</td>
<td>Jul</td>
<td>Aug</td>
<td>Sep</td>
<td>Okt</td>
<td>Nov</td>
<td>Dez</td>
<td>Gesamt</td>
</tr>

<tr valign="top">
<td class="name">Meiley</td>
<td><span class="ok jan"></span></td>
<td><span class="ok feb"></span></td>
<td><span class="ok mar"></span></td>
<td><span class="ok apr"></span></td>
<td><span class="ok mai"></span></td>
<td><span class="ok jun"></span></td>
<td><span class="ok jul"></span></td>
<td><span class="ok aug"></span></td>
<td><span class="ok sep"></span></td>
<td><span class="ok okt"></span></td>
<td><span class="ok nov"></span></td>
<td><span class="ok dez"></span></td>
<td class="gesamt">7.000</td>
</tr>

<tr valign="top">
<td class="name">Petra Silia</td>
<td><span class="ok jan"></span></td>
<td><span class="ok feb"></span></td>
<td><span class="ok mar"></span></td>
<td><span class="ok apr"></span></td>
<td><span class="ok mai"></span></td>
<td><span class="ok jun"></span></td>
<td><span class="ok jul"></span></td>
<td><span class="ok aug"></span></td>
<td><span class="ok sep"></span></td>
<td><span class="ok okt"></span></td>
<td><span class="ok nov"></span></td>
<td><span class="ok dez"></span></td>
<td>6.404</td>
</tr>

<tr valign="top">
<td class="name">ronja</td>
<td><span class="ok jan"></span></td>
<td><span class="ok feb"></span></td>
<td><span class="ok mar"></span></td>
<td><span class="ok apr"></span></td>
<td><span class="ok mai"></span></td>
<td><span class="ok jun"></span></td>
<td><span class="ok jul"></span></td>
<td><span class="ok aug"></span></td>
<td><span class="ok sep"></span></td>
<td><span class="ok okt"></span></td>
<td><span class="ok nov"></span></td>
<td><span class="ok dez"></span></td>
<td>5.075</td>
</tr>

<tr valign="top">
<td class="name">casasigi</td>
<td><span class="ok jan"></span></td>
<td><span class="ok feb"></span></td>
<td><span class="ok mar"></span></td>
<td><span class="ok apr"></span></td>
<td><span class="ok mai"></span></td>
<td><span class="ok jun"></span></td>
<td><span class="ok jul"></span></td>
<td><span class="ok aug"></span></td>
<td><span class="ok sep"></span></td>
<td><span class="ok okt"></span></td>
<td><span class="ok nov"></span></td>
<td><span class="ok dez"></span></td>
<td>4.549</td>
</tr>

<tr valign="top">
<td class="name">wolfen</td>
<td><span class="ok jan"></span></td>
<td><span class="ok feb"></span></td>
<td><span class="ok mar"></span></td>
<td><span class="ok apr"></span></td>
<td><span class="ok mai"></span></td>
<td><span class="ok jun"></span></td>
<td><span class="ok jul"></span></td>
<td><span class="ok aug"></span></td>
<td><span class="ok sep"></span></td>
<td><span class="ok okt"></span></td>
<td><span class="ok nov"></span></td>
<td><span class="ok dez"></span></td>
<td>3.022</td>
</tr>

</table>
PHP-Code:
// aktuelle Liste
foreach( file"update.txt" ) as $v ) {
   
$d explode"|"$v );
        
  foreach (
$d as $element) { //gibt jeden wert in einzelne zeile aus
    
echo $element "<br>";
  }

update.txt beinhaltet nur:
Name|wert (siehe oben)
Mit Zitat antworten
  #6 (permalink)  
Alt 30-08-2010, 17:53
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Hallo,

um das in die Tabelle einzubauen, musst du dich mit DOM-Manipulation
auseinandersetzen. Dafür empfehle ich (geht aber auch so), die Tabelle als XHTML Strict auszuzeichnen, statt dich mit irgendwelchem Transitional-Kram mit viel zu viel Layout-Angaben rumzuärgern.

Gruß,

Amica
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!

Geändert von AmicaNoctis (30-08-2010 um 18:01 Uhr)
Mit Zitat antworten
  #7 (permalink)  
Alt 30-08-2010, 18:24
eagle275
 Registrierter Benutzer
Links : Onlinestatus : eagle275 ist offline
Registriert seit: Jun 2010
Beiträge: 403
eagle275 befindet sich auf einem aufstrebenden Ast
Standard

und daneben würde ich sowohl die Datei als auch die Tabelle mit einer Schleife bauen, weil das einfach eleganter und viel leichter zu erweitern ist, falls da auf ein schlag plötzlich mal die 3fache Anzahl Personen / Daten zu verarbeiten ist

die Ausgabe der HTML-Tags + Texte übernimmt dann normalerweise auch dein php-script .. also im normalfall sieht das so ähnlich aus

PHP-Code:
...//hier Ausgabe Tabellenkopf
for($i=0;$i<$maxPerson;$i++) {
   echo 
'<tr>';
   echo 
'<td>'.$name[$i].'</td>';
   for (
$j=0;$j<$anzMonate;$j++) {
      echo 
'<td>'.$daten[$i][$j].'</td>';
   }
   echo 
'</tr>';
}
echo 
'</table>';
...
// weiter 
alles was du nun noch bräuchtest wäre im Prinzip die Namen in einem array $name[] , die Daten der Personen in einem 2-Dimensionalen Array $daten[][] - der erste Index entspricht der Person (Name) der 2te dem Monat ...) und die jeweiligen obergrenzen ...
wenn die Ausgabe auch die Leeren Spalten für restlichen Monate enthalten soll , fügst du einfch nach der for($j - Schleife
noch folgendes ein
PHP-Code:
for($j=12;$j>$anzMonate;$j--)
   echo 
'<td>&nbsp;</td>'
.
__________________

Wer LESEN kann, ist klar im Vorteil!

Geändert von eagle275 (30-08-2010 um 18:35 Uhr)
Mit Zitat antworten
  #8 (permalink)  
Alt 31-08-2010, 01:19
mckay
 Registrierter Benutzer
Links : Onlinestatus : mckay ist offline
Registriert seit: Aug 2010
Beiträge: 5
mckay befindet sich auf einem aufstrebenden Ast
Standard

Hallo,

Danke für eure Hinweise. Ich gehe auf mein Problem nun etwas intensiver ein, da ich schon den ganzen Tag versuche das irgendwie hinzubiegen.

Das ganze handelt sich um ein Browserspiel, in der Werte als .txt Datei zur Verfügung stehen. Diese Werte möchte ich in einem Array "$user" einlesen um damit arbeiten zu können (eine Tabelle zu erstellen).

txt:
lieferung.txt (http://my-media.eu/script/lieferung.txt)
-> beinhaltet: Name | BisherGeliefert
stats.txt (http://my-media.eu/script/stats.txt)
-> -> beinhaltet: Nr | Name | Rang | Punkte

Am besten wäre es, wenn man die 2 Dateien zusammenführen könnte, sodass "BisherGeliefert" jeweils am ende jeder Zeile (passend/abgeglichen zum Namen) in der stats.txt hinzugefügt wird.
Oder das ganze könnte, wenn möglich, natürlich auch nachträglich im Array hinzugefügt werden.

Hier sind meine PHP Schnipsel:
PHP-Code:
$user = array();

// $u[1] = Name, $u[2] = Rang
foreach( file"stats.txt" ) as $v ) {
    
$u explode"|"$v );
    
$u str_replace(' ','',$u); // Leerzeichen entfernen

    
$user[] = array("Name"=>"$u[1]",
                    
"Rang"=>"$u[2]");
}

// $update[0] = Name, $update[1] = Gesamtmenge
foreach( file"lieferung.txt" ) as $v ) {
    
$update explode"|"$v );
    
$user[] = array("Gesamtmenge"=>"$update[1]");
    
// soll eigentlich passend zu jeden NAMEN $u[1] hinzugefügt werden

Weiter bin ich leider nicht gekommen, alles was ich eigentlich benötige ist ein Array wie folgt:
PHP-Code:
$user[] = array("Name"=>"Alfred",
                
"Rang"=>"Rosenkavalier");
                
"Gesamtmenge"=>"7.000");
                
"Punkte"=>"100.000"); 
Vielleicht versteht ihr mein anliegen etwas besser und kluge Köpfe können mir vllt. den einen oder anderen Denkanstoß geben

liebe Grüße
McKay

werd nun erst einmal schlafen gehen, gute Nacht

Geändert von mckay (31-08-2010 um 10:36 Uhr)
Mit Zitat antworten
  #9 (permalink)  
Alt 31-08-2010, 01:41
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Als erstes gewöhn dir das bitte ab:
Zitat:
Zitat von mckay Beitrag anzeigen
PHP-Code:
"$u[1]"
"$u[2]"
"$update[1]" 
Erstens hat es keinen Sinn, Variablennamen in Strings zu schreiben, wenn sie dessen einziger Inhalt sind und zweitens ist es schlechter Stil.

Zu deinem Problem:

Ich würde mit list() arbeiten, denn sprechende Namen sind immer besser nachzuvollziehen als irgendwelche Array-Indizes:

PHP-Code:
list($nr$name$rang$punkte) = explode("|"$zeile); 
Dein User-Array kannst du assoziativ aufbauen und damit ganz einfach die Zuordnung zwischen den beiden Datenquellen anhand des Namens abbilden:

PHP-Code:
$user[$name] = array(...); // anlegen nur in der ersten Schleife 
Wenn du das in der zweiten Schleife auch machst, überschreibst du es dir, deswegen musst du dort die einzelnen Infos einzeln hinzufügen:

PHP-Code:
$user[$name]["Gesamtmenge"] = ...; // hinzufügen in jeder weiteren Schleife 
Gruß,

Amica
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!
Mit Zitat antworten
  #10 (permalink)  
Alt 31-08-2010, 11:44
mckay
 Registrierter Benutzer
Links : Onlinestatus : mckay ist offline
Registriert seit: Aug 2010
Beiträge: 5
mckay befindet sich auf einem aufstrebenden Ast
Standard

Hi Amica,

danke für die Hinweise.
Ich würde natürlich gern sauber und optimiert arbeiten, aber ich kenn nicht den korrekten Aufbau der Schleifen. Sind für mich noch spansiche Dörfer, aber ich bemühe mich.

Ich habe nun versucht list() einzusetzen, bekomme aber keinen Wert ausgegeben
PHP-Code:
$zeile file("stats.txt");
list(
$nr$name$rang$punkte) = explode("|"$zeile);  
var_dump($name); 
Mir leuchtet auch noch nicht ein wo ich ein foreach setzen sollte und wie ich das Script effektiv aufbaue :/
Mit Zitat antworten
  #11 (permalink)  
Alt 31-08-2010, 12:12
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Zitat:
Zitat von mckay Beitrag anzeigen
Ich habe nun versucht list() einzusetzen, bekomme aber keinen Wert ausgegeben
Mit list() wird auch nichts ausgegeben, sondern nur in Variablen geschrieben. Sieh dir die vielen Beispiele im Handbuch an.

Zitat:
Zitat von mckay Beitrag anzeigen
Mir leuchtet auch noch nicht ein wo ich ein foreach setzen sollte und wie ich das Script effektiv aufbaue :/
Das hattest du doch im Prinzip schon alles. Warum hast du dich so weit davon entfernt?

PHP-Code:
$user = array();

foreach (
file("stats.txt") as $zeile) {
    
$zeile str_replace(" """$zeile);
    list(
$nr$name$rang$punkte) = explode("|"$zeile);
    
$user[$name] = array(
        
"Name"   => $name,
        
"Nr"     => $nr,
        
"Rang"   => $rang,
        
"Punkte" => $punkte
    
);
}

foreach (
file("lieferung.txt") as $zeile) {
    list(
$name$gesamtmenge) = explode("|"$zeile);
    
$user[$name]["Gesamtmenge"] = $gesamtmenge;

__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Daten in Textdatei schreiben per SSH/SHELL friedhelm-d Linux und Unix 2 22-04-2009 10:40
[Funktion] Daten aus Textdatei in die DB schreiben nate10 PHP Developer Forum 17 23-11-2005 13:39
PHP: Variable in Textdatei schreiben, auslesen und ändern... aber wie? MGeee Apps und PHP Script Gesuche 5 15-08-2004 00:26
lesen und schreiben in textdatei phowe PHP Developer Forum 11 25-01-2004 20:45
Daten aus Textdatei in Cookie schreiben zzet PHP Developer Forum 3 29-07-2002 10:14

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

ebiz-trader 6.0 - Das professionelle PHP Marktplatz Script ansehen ebiz-trader 6.0 - Das professionelle PHP Marktplatz Script

Mit unserer Lösungen können Sie nahezu jeden B2B / B2C Marktplatz betreiben den Sie sich vorstellen können. Ganz egal ob Sie einen Automarktplatz, Immobilenportal oder einfach einen Anzeigenmarkt betreiben möchten. Mit ebiz-trader können Sie Ihre Anforder

11.10.2018 Berni | Kategorie: PHP/ Anzeigenmarkt
PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
 Alle PHP Scripte anzeigen

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