tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
5
ZUGRIFFE
462
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Registriert seit
    Mar 2003
    Ort
    Österreich (Ländle)
    Beiträge
    380
    hi leute,

    hab mal wieder ein problem, und ich weiß nicht wonach suchen um es
    zu lösen.

    habe eine textdatei, darin stehen folgende strings zeile für zeile:

    OrtText[0][16]="Klaus";
    OrtText[0][17]="Koblach";
    OrtText[0][18]="Langen";
    OrtText[0][19]="Laterns";
    OrtText[0][20]="Lauterach";

    wie kann ich nun nur die werte in anführungszeichen rausfiltern das
    das ganze dann so aussieht:

    Klaus
    Koblach
    Langen
    Laterns
    Lauterach

    danke leute
     

  2. #2
    rootssw rootssw ist offline Mitglied Platin
    Registriert seit
    Aug 2003
    Beiträge
    593
    Hallo.

    Was soll das folgende eigentlich sein? Das Array, das durch die Funktion file() zustande kommt, oder die Textdatei, die ausgelesen werden soll?

    OrtText[0][16]="Klaus";
    OrtText[0][17]="Koblach";
    OrtText[0][18]="Langen";
    OrtText[0][19]="Laterns";
    OrtText[0][20]="Lauterach";

    Ich bin erstmal davon ausgegangen, dass das die Textdatei ist.
    Die kann man dann mit folgendem Script auslesen:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    
    $text = file("text.txt");
    foreach ($text as $zeile) {
        $anfang = strpos($zeile, '"');
        $ende = strrpos($zeile, '"');
        $string = substr($zeile, $anfang+1, $ende-$anfang-1);
        echo $string;
        echo "<BR>";
    }

    Als Ausgabe kommt dann:

    Klaus
    Koblach
    Langen
    Laterns
    Lauterach
    Ist das das, was du wolltest?
     
    <?php if ($sein || !$sein) echo "Das ist hier die Frage."; ?>

  3. #3
    Registriert seit
    Mar 2003
    Ort
    Österreich (Ländle)
    Beiträge
    380
    hi,

    super, ganz genau das meinte ich.

    vielen dank!
     

  4. #4
    Avatar von SonicBe@m
    SonicBe@m SonicBe@m ist offline Mitglied Brokat
    Registriert seit
    Jan 2002
    Ort
    München
    Beiträge
    447

    Die Frage ist dann aber ob es nicht sinvoller wäre wenn du dir von dieser Textdatei ein Array generieren lässt und das zurückgibst.
    Das was du gemacht hast ist Praktisch ein umständliches Zeilen auslesen.
    Da hättest ja gleich jeden Namen in eine Zeile schreiben können dann hätteste das mit File() auslesen können und hättest somit nen Array .

    mach lieber statt der 0 -> Name
    dann generiert man aus der txt ein assoziavies Array dann haste ein Array $test[Name][0-x];.
     
    Moep :)

  5. #5
    Avatar von SonicBe@m
    SonicBe@m SonicBe@m ist offline Mitglied Brokat
    Registriert seit
    Jan 2002
    Ort
    München
    Beiträge
    447
    Hier mal eine Lösung.
    Auch wenn Sie nicht so Perfekt ausgearbeitet ist erfüllt Sie ihren Zweg!
    kann man auch erweitern..

    test.php
    PHP-Code:
    <?
    /* begin of output */
    $asozArray returnArrayFromFile("test.txt");
    foreach(
    $asozArray as $ty => $va){
        echo 
    "<u>$ty</u><br>";
        foreach(
    $va as $t => $v)
            echo 
    "$t - $v<br>";
        echo 
    "<hr>";
    }
    /* end of output */

    /* begin needet functions */
    function deleteEmptyIndex($array){ // deletes all empty elements and returns the new array
        
    for($i 0;$i count($array);$i++){
            
    $array[$i] = trim($array[$i]);
            if(
    strLen($array[$i]) != 0)
                
    $newArray[] = $array[$i];
        }
        return 
    $newArray;
    }

    function 
    returnArrayFromFile($file){ // returns the text file as array
        
    $text file($file);
        
    $text deleteEmptyIndex($text);
        
    $pattern[0] = "/(\[.*?\])(\[.*?\])/i"// finds [.*][.*]
        
    $pattern[1] = "/(\".*?\")/i"// finds ".*"
        
    foreach($text as $v){
            
    preg_match($pattern[0],$v,$matches);
            
    $str[0] = preg_replace("/[\[\]]/i","",$matches[1]);
            
    $str[1] = preg_replace("/[\[\]]/i","",$matches[2]);

            
    preg_match($pattern[1],$v,$matches);
            
    $asozArray[$str[0]][$str[1]] = $matches[1];
        }
        return 
    $asozArray;
    }
    /* end needet functions */
    ?>
    test.txt
    PHP-Code:
    OrtText[Name][1]="Klaus";
    OrtText[Name][2]="Koblach";
    OrtText[Name][3]="Langen";
    OrtText[Name][4]="Laterns";
    OrtText[Name][5]="Lauterach";

    OrtText[Stadt][1]="München";
    OrtText[Stadt][2]="Hamburg";
    OrtText[Stadt][3]="Berlin";
    OrtText[Stadt][4]="Dortmund";
    OrtText[Stadt][5]="Köln";



    OrtText[Ka][5]="Test"
     
    Moep :)

  6. #6
    Avatar von Nils Hitze
    Nils Hitze Nils Hitze ist offline Admin a.D.
    Registriert seit
    Sep 2000
    Ort
    Dachau
    Beiträge
    2.201
    Blog-Einträge
    104
    Hab's jetzt nicht getestet, müsste aber auch funktionieren :

    PHP-Code:

    $regex 
    "#\"(.*)\"#i";

    foreach(
    $array as $zeile)
    {
     
    preg_match_all($regex$zeile$wert);
     echo 
    $wert[1]."<br>";

    Jona
     

Ähnliche Themen

  1. Antworten: 8
    Letzter Beitrag: 13.08.10, 14:06
  2. Antworten: 6
    Letzter Beitrag: 02.12.09, 11:49
  3. Antworten: 6
    Letzter Beitrag: 09.01.09, 11:28
  4. Actionscript: "item" wert aus einer txt datei laden
    Von MOJOJO im Forum Flash Plattform
    Antworten: 1
    Letzter Beitrag: 30.07.05, 02:49
  5. Antworten: 13
    Letzter Beitrag: 28.08.03, 10:36