AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein [PHP] Zeilen in einem Array lokalisieren und löschen
Thema durchsuchen
Ansicht
Themen-Optionen

[PHP] Zeilen in einem Array lokalisieren und löschen

Ein Thema von Balu der Bär · begonnen am 12. Mai 2006 · letzter Beitrag vom 12. Mai 2006
Antwort Antwort
Balu der Bär
(Gast)

n/a Beiträge
 
#1

[PHP] Zeilen in einem Array lokalisieren und löschen

  Alt 12. Mai 2006, 17:02
Moin,

wiedermal eine PHP-Frage:

Mit folgendem Code lese ich eine Datei ein:
Code:
 $zeilen = file('xxx.txt');
foreach ($zeilen as $zeile) { echo nl2br(htmlspecialchars($zeile)); }
Jetzt liegen mir die einzelnen Dateien ja in einem Array vor. Die Datei ist immer so aufgebaut:
Zitat:
Name: xxx
Zeit: xxx
Wohnort: xxx
Blabla: xxxx

Name: xxx
Zeit: xxx
Wohnort: xxx
Blabla: xxxx
Jetzt möchte ich die Datei aber gerne in Kurzform ausgeben, d.h. nur Name: xxx und Zeit: xxx sollen ausgegeben werden. Mein erster (unüberlegter) Versuch war ganz einfach mit str_replace und dann Name: oder Zeit:, leider jedoch weiß ich ja die Werte die dahinter stehen nicht, da sie variabel sind, und so wurde nur immer das erste Wort gelöscht, nicht aber die ganze Zeile. Ich möchte also immer die Zeilen Wohnort & Blabla aus dem Array (nicht aus der Datei, die soll unverändert bleiben) löschen, und dies dann anzeigen. Wäre gut wenn das jemand einem PHP-Anfanger erklären könnte.

Danke schonmal.
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#2

Re: [PHP] Zeilen in einem Array lokalisieren und löschen

  Alt 12. Mai 2006, 17:12
Delphi-Quellcode:
$regex = "=Wohnort|blabla="

for ($i = 0 ; $i < count($array); $i++)
  if preg_match($regex, $array[i])
    array_delete(i);
there you go... allerdings ist ein regex da fast schon oversized. strpos == 0 würd schon reichen.
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
Benutzerbild von S2B
S2B

Registriert seit: 1. Feb 2004
Ort: Aachen
1.268 Beiträge
 
#3

Re: [PHP] Zeilen in einem Array lokalisieren und löschen

  Alt 12. Mai 2006, 17:14
Ich würde das Array vorher "vorsortieren", etwa so:
Code:
$zeilen = file('xxx.txt');
$items = array();
$i = 0;
foreach ($zeilen as $zeile)
{
  if (trim($zeile) == '')
  {
    $i++;
  }
  else
  {
    $items[$i][] = $zeile;
  }
}

foreach ($items as $item)
{
  // gibt den Namen aus
  echo $item[0];

  // gibt die Zeit aus aus
  echo $item[1];

  // ...
}
Edit: OK, nur halb beantwortet...
Simon Praetorius
Gruß
S2B
  Mit Zitat antworten Zitat
bigg
(Gast)

n/a Beiträge
 
#4

Re: [PHP] Zeilen in einem Array lokalisieren und löschen

  Alt 12. Mai 2006, 17:17
hi,

es ist doch relativ einfach, du hast zwei Konstanten:
1. 'Name:'
2. 'Zeit:'

Jetzt kannst du mit Hilfe einer Schleife jedes Element des Array's durchlaufen und überprüfen, ob in der jeweiligen Zeile Name bzw. Zeit vorkommt. Wenn nicht wird die jeweilige Zeile nicht ausgeben.

Um nun an den Variablen-Teil zu kommen, musst du die Gesamtlänge der Zeile kennen. Existiert zum Beispiel "Name:" in der jeweiligen Zeile, kopierst du den String von der Länge(Name bis zur Länge(Zeilenende) und gibtst ihn aus.
  Mit Zitat antworten Zitat
Balu der Bär
(Gast)

n/a Beiträge
 
#5

Re: [PHP] Zeilen in einem Array lokalisieren und löschen

  Alt 12. Mai 2006, 17:23
Ich danke euch, hab mal wieder auf dem Schlauch gestanden.

Edit: Hier nochmal der komplette Code, array_delete gibt es imho nicht, oder ?
Folgendes geht aber:
Code:
      $regex = "=x|y=";
      for ($i = 0; $i < count($zeilen); $i++)
       {
        if (preg_match($regex, $zeilen[$i])) {
         unset($zeilen[$i]);
         $zeilen = array_values($zeilen);
        }
       }
  Mit Zitat antworten Zitat
Antwort Antwort


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 aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:46 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz