john18: Datei auslesen

Hallo, ich habe einen Script geschrieben um Termine aus einer Textdatei auszulese. Nun möchte ich das nur die Termine ausgelesen werden die als erstes Zeichen ein "§" haben.
Hier ist der Quelltext:

<?
$fp = fopen('termine.txt', 'r');
$help = "#";
$nummer = 0;

if ($fp)
{
while (!feof($fp))
{
$zeile = fgets($fp, 1000);
$pos2 = strpos ($zeile,$help);
$pos3 = $pos2+1;
$pos4 = strrpos($zeile,$help);
$pos5 = $pos4-2;
$pos6 = $pos4+1;
$lesen = substr ($zeile,$pos3,$pos5);
$lesen2 = substr ($zeile,$pos6);

echo '<table width="404" border="0" cellspacing="4" cellpadding="0">

<tr>
<td class=datum>'.$lesen.'</td>
</tr>
<tr>
<td class=titel>'.$lesen2.'</td>
</tr>
</table>';

}
fclose($fp);
}
else
echo "Datei wurde nicht gefunden";
?>

Kann mir BITTE jemand helfen??!??!!

  1. Hello,

    Kann mir BITTE jemand helfen??!??!!

    Als erstes solltest Du Deinen Code befriedigend bis sehr gut kommentieren. Dann kann und wird Dir als zweites auch jemand helfen. So ist das eigentlich eine Unverschämtheit.

    Harzliche Grüße aus http://www.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau
    1. Du überprüfst einfach, zB mit substr, oder auch preg (wie auch immer), ob der
      erste String ein $ (oder eben was auch immer ist).

      Falls ja, gib ihn aus.

      1. Du überprüfst einfach, zB mit substr, oder auch preg (wie auch immer), ob der
        erste String ein $ (oder eben was auch immer ist).

        Falls ja, gib ihn aus.

        So ? Also, so geht es nicht.

        <?
        $fp = fopen('termine.txt', 'r');
        $help = "#";
        $nummer = 0;

        if ($fp)
        {
        while (!feof($fp))
        {

        $zeile = fgets($fp, 1000);
        $pos1 = strpos ($zeile,"§");

        if ($pos1 == 0){

        $pos2 = strpos ($zeile,$help);
        $pos3 = $pos2+1;
        $pos4 = strrpos($zeile,$help);
        $pos5 = $pos4-2;
        $pos6 = $pos4+1;
        $lesen = substr ($zeile,$pos3,$pos5);
        $lesen2 = substr ($zeile,$pos6);

        echo '<table width="404" border="0" cellspacing="4" cellpadding="0">

        <tr>
        <td class=datum>'.$lesen.'</td>
        </tr>
        <tr>
        <td class=titel>'.$lesen2.'</td>
        </tr>
        </table>';

        } else {}}
        fclose($fp);
        }
        else
        echo "Datei wurde nicht gefunden";
        ?>

        Ich habe jetzt per If abgefragt ob das erste Zeichen eine § ist. Ist das erste Zeiche ein § dann bekomme ich von der strpos eine 0, deshalb auch ... if (pos1 == 0)....
        wie gesagt das geht aber nicht. Eine Idee?

        1. Was ich meinte war, das du die Datei in ein Array einlesen solltest, dann kannst du finde ich viel leichter damit arbeiten.

  2. hi,

    ich weiss nit genau, wie deine datei aussieht

    aber hier ganz kurz das beispiel:

    # test variable deklarieren, das erste symbol ist §
    $test='§JGJGJ BLABLA';

    # das ruft eine funktion retFirstChar auf, das argument ist der $test string
      # und die funktion returniert den ersten buchstaben
      # ist der 1. buchstabe gleich dem kriterium §, dann echo-en wir etwas aus
    if(retFirstChar($test) == '§') { echo "yo, der match stimmt überein";};

    hier die funktion

    function retFirstChar($inp) {
     $inp=substr($inp,0,1);
     return $inp;
    }

    Übrigens brauchst du natürlich keine Funktion, ich persönlich mag es aber lieber, kleine nützliche funktionen zu haben.

    stimmt erst mal der weg über die if abfrage, kannst du ja weiter machen :)

    evtl willst du die infos in ein array ablegen, ich finde arrays immer sehr praktisch in php