Bekomme leere zeile beim auslesen aus txt datei nicht weg

Pranox

Mitglied
Also ich habe für mein Forum was mit .txt datei läuft, ein kleines pn System gebaut (ist noch nicht fertieg) wen ich eine pn erhalte wird mir das so aufgelistet:

Nachricht von vom um Antworten | Lesen 1 leer Eintrag denn ich nicht weg bekomme, er ist nur weg wen auch in der Txt datei nix steht

Nachricht von Pranox vom 20.01.09 um 18:44 Antworten | Lesen

Nachricht von Browza vom 22.01.09 um 13:19 Antworten | Lesen

hie rmal der code vom der pnlesen.php
PHP:
<?php
echo '
<table width=100% cellspacing=0 cellpadding=5 border=0>';

$datei = "data/pm/".$_SESSION['Benutzername']."pm.txt";
  if(file_exists($datei))
{
$inhalt = file($datei);
$anzahl = count($inhalt);
    for($i = 0; $i < $anzahl; $i++)
    {
        $newinhalt = array_reverse($inhalt);
        $eintrag = explode("|-|",$newinhalt[$i]);
        $name = $eintrag[0];
        $datum = $eintrag[1];
        $betreff = $eintrag[2];
        $text = $eintrag[3];

        $aw = "<a href=\"pm.php?id=$name&amp$betreff\"> Antworten</a>";
        $id = $eintrag[5];



 echo"  </b><input type=\"checkbox\" value=\"'.$id.'\" class=\"checkbox\">  Nachricht von $name vom $datum  $aw |  <a href=\"#\" onClick=\"if (document.getElementById('$datum $betreff').style.display == 'inline') {

                                                document.getElementById('$datum $betreff').style.display = 'none';

                                        } else {

                                                document.getElementById('$datum $betreff').style.display = 'inline';

                                        }\">Lesen</a>

<div id=\"$datum $betreff\" style=\"display: none;\">
<br>
<br>
<table width=\"470\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">
<tr>
<td height=\"19\" colspan=\"2\" valign=\"top\"><p><u>Betreff:</u>$betreff</p></td>
<tr>
<td width=\"400\" height=\"30\" valign=\"top\"><u>Nachricht:</u><br>$text</td>
<tr>
</table>
</div><br>\n";


    }
}
else
{
    echo"Du hast Keine Privaten Nachrichten!";
}

echo "<center>";


?>


und hier der vom eintragen

PHP:
<?

if ($_SESSION['Benutzername'] == '')
{
        show_error('ERROR_WRONG_LOGIN');
}

$datum= strftime("%d.%m.%y - %H:%M");
$check= $_POST["ok"];
$name= $_SESSION['Benutzername'];
$to= $_POST['to'];
$betreff= $_POST['betreff'];
$text= $_POST['text'];

$text = wordwrap( $text, 120, "<br />",$text);
$text = str_replace("\n", "<br>", $text);
$text = str_replace("","*Bluuuubb*",$text);
$text = str_replace("","*Bluuuubb*",$text);
$text = str_replace("e","*Bluuuubb*",$text);
$text = str_replace("e","*Bluuuubb*",$text);
$text = str_replace("fuck","*Bluuuubb*",$text);
$text = str_replace("behindert","*Bluuuubb*",$text);
$text = str_replace("Behindert","*Bluuuubb*",$text);


$text = stripslashes($text);
$betreff =format_xml($betreff);
$text =format_xml($text);
$text = preg_replace("/\<(.*)\>/Usi", "",$text);
$betreff = preg_replace("/\<(.*)\>/Usi", "",$betreff);
$text = preg_replace("!\[b\](.*)\[/b\]!isU","<b>$1</b>",$text);
$text = preg_replace("!\[u\](.*)\[/u\]!isU","<u>$1</u>",$text);
$text = preg_replace("!\[i\](.*)\[/i\]!isU","<i>$1</i>",$text);
$text = preg_replace_callback("/\[img\](.*)\[\/img\]/isU", 'picSize', $text);
$text = preg_replace("/\[size=(.*?)\](.*?)\[\/size\]/", "<font size=\"\\1\">\\2</font>", $text);
$text = preg_replace("(\[font=(.+?)\](.+?)\[\/font\])","<span style=\"font-family: $1;\">$2</span>",$text);
$text = eregi_replace("\\[color=([^\\[]*)\\]([^\\[]*)\\[/color\\]","<font color=\\1>\\2</font>",$text);
$text = preg_replace("/\[email\](.*?)\[\/email\]/si", "<a href=\"mailto:\\1\">\\1</a>", $text);
$text = preg_replace("/\[email=(.*?)\](.*?)\[\/email\]/si", "<a href=\"mailto:\\1\">\\2</a>", $text);
$text = preg_replace("/\[URL\]www.(.*?)\[\/URL\]/si", "<a target=\"_blank\" href=\"http://www.\\1\">www.\\1</a>", $text);
$text = preg_replace("/\[URL\](.*?)\[\/URL\]/si", "<a target=\"_blank\" href=\"\\1\">\\1</a>", $text);

    function picSize($treffer)
    {
        $size = @getimagesize($treffer[1]);
    if ($size[0] > 200) {
        $width = 200;
       
        $height = ($size[1]/$size[0])*$width;
           return " <img src=\"".$treffer[1]."\" width=\"".$width."\" height=\"".$height."\" border=\"0\"> ";
    }
    else
        return " <img src=\"".$treffer[1]."\" border=\"0\"> ";
    }

if($check== "ok")
{
echo "<meta http-equiv=refresh content='3; url=pmlesen.php'>";
echo "<center>Ihre Nachricht wurde erfolgreich gesendet!</center>";
$fp = fopen("data/pm/".$to."pm.txt" ,"a");
fputs($fp,"$name|-|$datum|-|$betreff|-|$text|-|\n\r");
fclose($fp);
$fp2 = fopen("msg.txt" ,"a+");
fputs($fp2,"\n $datum <b>>System Bot<</b> $to hat von $name eine Pn erhalten.<br>");
fclose($fp2);

}
                        else
{
echo ' <center><b><u><h1>FEHLER:</h1></u></b><br> Bitte senden Sie Private Nachrichten, über das Forumular!<br><br>Wen sie der Meinung sind es bestehe hier ein Fehler in unserem <br> PN System, kontaktieren Sie einen Administrator des Forums.</center>';



}



?>
 
Zuletzt bearbeitet:
Prüfe mit [phpf]empty[/phpf] oder [phpf]strlen[/phpf] ob die Zeile leer ist und verarbeite sie erst dann.
 
Viellecht hilft dir das ja?

PHP:
$inhalt = file($datei);
$anzahl = count($inhalt);
$newinhalt = array_reverse($inhalt);
    for($i = 0; $i < $anzahl; $i++)
    {
		if(!empty($newinhalt[$i]))
		{
	        $eintrag = explode("|-|",$newinhalt[$i]);
	        $name = $eintrag[0];
	        $datum = $eintrag[1];
	        $betreff = $eintrag[2];
	        $text = $eintrag[3];

	        $aw = "<a href=\"pm.php?id=$name&amp$betreff\"> Antworten</a>";
	        $id = $eintrag[5];



			 echo"  </b><input type=\"checkbox\" value=\"'.$id.'\" class=\"checkbox\">  Nachricht von $name vom $datum  $aw |  <a href=\"#\" onClick=\"if (document.getElementById('$datum $betreff').style.display == 'inline') {

			                                                document.getElementById('$datum $betreff').style.display = 'none';

			                                        } else {

			                                                document.getElementById('$datum $betreff').style.display = 'inline';

			                                        }\">Lesen</a>

					<div id=\"$datum $betreff\" style=\"display: none;\">
					<br>
					<br>
					<table width=\"470\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">
					<tr>
					<td height=\"19\" colspan=\"2\" valign=\"top\"><p><u>Betreff:</u>$betreff</p></td>
					<tr>
					<td width=\"400\" height=\"30\" valign=\"top\"><u>Nachricht:</u><br>$text</td>
					<tr>
					</table>
					</div><br>\n";
		}
    }

Ist ungetestet, aber zeigt dir was ich meinte.
 
Wenn du mir mal eine solche Textdatei zukommen lassen könntest, könnte ich mal rumprobieren.
 
Zurück