Forum
Tipps
News
Menu-Icon

PHP: Formatierung einer Variable

Hallo,
bin grad dabei, an meinem "kleinen" Newsscript zu werkeln und stosse dabei auf ein Problem...

Zunächst der Code:

Eingabeformular:

 

Zitat
<form action="news.php" method="post">
Eintrag: <textarea name="eintrag" cols="15" rows="15"></textarea><br>
<input type="submit" value="Eintragen" name="eintragen">

Somit wird der eingegebene Text "$eintrag" an die news.php gepostet, in welcher die Auswertung folgt:

 
Zitat
<?php
    if(isset($eintragen)){
       $datei=fopen ("news.txt","a");
         $eintrag = stripslashes($eintrag);
         $daten = "<b>$eintrag </b>";
         fwrite($datei,$daten)    ;
         fclose ($datei);}
    if(file_exists("news.txt")){
       readfile("news.txt");
         }
    else {
       echo ("Nichts vorhanden");
         }
 

Bisher habe ich, an einigen Beispielen orientiert, die Variable $eintrag in <b></b> Tags gesetzt aber viel gebracht hat das nichts. Wie bekomme ich es dennoch hin, dass im Formular normal eingegebener Text in der TXT-Datei als Fett gespeichert (oder nach jedem Eintrag ein Umbruch oder ähnliches eingefügt) wird?

LG

Eike

Antworten zu PHP: Formatierung einer Variable:

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

 echo "<b>".$variable."</b>\n";

 

Zitat
die Variable $eintrag in <b></b> Tags gesetzt aber viel gebracht hat das nichts.
sollte funktionieren, wenn der Ausgabebereich nicht noch anderweitig, z.B. über Stylesheet formatiert wird
« Letzte Änderung: 02.05.07, 19:20:49 von PWT »

wird er aber net^^

Übrigens: Damit wird der Text doch nur fett dargestellt, jedoch nicht Fett in der txt datei gespeichert??!!

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button
Übrigens: Damit wird der Text doch nur fett dargestellt, jedoch nicht Fett in der txt datei gespeichert??!!

In einer Textdatei wird gar nichts formatiert, sondern nur blanker Text gespeichert. Dein Skript sollte aber tatsächlich funktionieren, also die Bold-Tags müssten auftauchen.

Was steht denn am Ende überhaupt in der Textdatei? Mit Superglobals (z.B. $_POST[]) zu arbeiten wäre auch keine schlechte Idee...

greez 8)
JoSsiF

Hallo,
ich habe mir das so vorgestellt, dass, wenn ich z.B. ABC eingebe er in der txt-datei folgendes speichert:

 

Zitat
ABC<br>

Es soll also nach jedem Eintrag ein Umbruch folgen.

Das habe ich dann versucht zu lösen, indem ich in Zeile 4 nach "$eintrag" ein <br> gesetzt habe, welches aber nichts gebracht hat....

Nun also nochmal die Frage: Wie bekomme ich es hin, dass er den <br>-Tag am Ende eines Jeden Eintrags abspeichert..?

LG 
« Letzte Änderung: 03.05.07, 06:46:23 von Dark_Dog »

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button
Das habe ich dann versucht zu lösen, indem ich in Zeile 4 nach "$eintrag" ein <br> gesetzt habe, welches aber nichts gebracht hat....

Quellcode bitte...

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

<br> ist nur der HTML Code für einen Zeilenumsprung. Das willst du doch aber nicht, wenn ich dich richtig verstehe: Du willst eine neue Zeile in der Datei haben.

Versuche also mal

$eintrag .= '\n'

zuzufügen und das dann zu speichern. So hat jeder $eintrag eine eigene Zeile. Für die Ausgabe im Browser musst du dann noch das <br> zufügen, also:

echo "<b>".$variable."</b><br>";

 

 

Zitat
<br> ist nur der HTML Code für einen Zeilenumsprung.

Richtig, richtig....

Der Code mit dem Teil von nico sieht jetzt so aus:

<?php
    
if(isset($eintragen)){
    
$datei=fopen ("news.txt","a");
[b]$eintrag .= &#39;\n&#39;;[/b]
         
$daten "Der Eintrag ist: $eintrag";
         
fwrite($datei,$daten)    ;
         
fclose ($datei);}
    if(
file_exists("news.txt")){
    
readfile("news.txt");
         }
    else {
    
echo ("Nichts vorhanden");
         }





?>
Nun werden zwar schon Umbrüche erzeugt aber <b></b> hat nix bewirkt und "Der Eintrag ist" wird auch nicht ausgegeben.

@JoSsiF
Der Quellcode sah vorher so aus:

<?php
    
if(isset($eintragen)){
    
$datei=fopen ("news.txt","a");
         
$eintrag stripslashes($eintrag);
         
$daten "Der Eintrag ist: $eintrag<br>";
         
fwrite($datei,$daten)    ;
         
fclose ($datei);}
    if(
file_exists("news.txt")){
    
readfile("news.txt");
         }
    else {
    
echo ("Nichts vorhanden");
         }





?>


LG 
« Letzte Änderung: 04.05.07, 07:02:44 von Dark_Dog »

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Gibt das hier keine Fehlermeldung?

   $eintrag .= '\n';


Ausserdem wird da ja nur in die Datei geschrieben. Wo ist denn die Ausgabe, ECHO oder PRINT oder so?

Oder wenn du "fett" DOCH mit in die Datei schreiben willst, dann mach es so:

$eintrag = '<b>'.$eintrag.'</b>\n';
Gibt das hier keine Fehlermeldung?

   $eintrag .= '\n';


Nööö:

<?php
    
if(isset($eintragen)){
     
$datei=fopen ("news.txt","a");
$eintrag .= &#39;\n&#39;;
         
$daten "Der Eintrag ist: $eintrag";
         
fwrite($datei,$daten)    ;
         
fclose ($datei);}
    if(
file_exists("news.txt")){
     
readfile("news.txt");
         }
    else {
     echo (
"Nichts vorhanden");
         }





?>



Ausserdem wird da ja nur in die Datei geschrieben. Wo ist denn die Ausgabe, ECHO oder PRINT oder so?

Vorher hatte ich den 2ten if-Teil so:

if (file_exists("eintraege.txt")){
      $datei = fopen("eintraege.txt","r");
      $daten = fread($datei,filesize("eintraege.txt"));
      print $daten;
Aber mir wurde gesagt ich könne es auch so machen:


    if(file_exists("news.txt")){
    readfile("news.txt");
         }


Und es geht ja auch:

klick


Oder wenn du "fett" DOCH mit in die Datei schreiben willst, dann mach es so:

$eintrag = '<b>'.$eintrag.'</b>\n';


Also die ' hatte ich vorher nicht um die Bold-Tags aber ich habs eben so ausprobiert wie du es gesagt hast und es wurde nur der Umbruch ausgegeben, bzw wenn ich mir die txt-datei anzeigen lasse zeigt er mir:

12345678910Hallo
<br>

, nicht aber die <b></b>-Tags um den $eintrag...

LG

 

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Dann hast du dich vertippt :)

aber mach mal aus der Ausgabe hier:

if (file_exists("eintraege.txt")){
      $datei = fopen("eintraege.txt","r");
      $daten = fread($datei,filesize("eintraege.txt"));
      print $daten;

so etwas:

<?php

$news 
file (&#39;eintraege.txt&#39;);
$newsmax = (count ($news));

for(
$counter 0$counter $newsmax$counter++){
   echo &#39;<b>&#39;.$news[$counter].&#39;</b><br>&#39;;
}

?>



So hast du jeden Eintrag in einer eigenen Zeile (Wenn dass mit dem "/n" beim Schreiben klappt), und kannst die jetzt auch Zeile für Zeile ausgeben. Oder nur eine einzige, bestimmte Zeile ausgeben:

Der letzte (neueste) Eintrag wäre dann einfach:

echo '<b>'.$news[0].'</b><br>';
 

 

Zitat
Dann hast du dich vertippt :)

Ja? Wo denn? ich find nix:

 
Zitat
<?php
    if(isset($eintragen)){
       $datei=fopen ("news.txt","a");
         $daten = "'<b>'$eintrag'</b>\n'";
         fwrite($datei,$daten)    ;
         fclose ($datei);}
    if(file_exists("news.txt")){
       readfile("news.txt");
         }
    else {
       echo ("Nichts vorhanden");
         }





?>

Naja, habe eben mal diesen Code hier ausprobiert:
 
Zitat
<?php
    if(isset($eintragen)){
       $datei=fopen ("news.txt","a");
         $daten = "'<b>'$eintrag'</b>\n'";
         fwrite($datei,$daten)    ;
         fclose ($datei);}
       $news = file ('eintraege.txt');
   $newsmax = (count ($news));
   for($counter = 0; $counter < $newsmax; $counter++){
      echo '<b>'.$news[$counter].'</b><br>';
}


?>

,welcher bei den Eingabwen "Hallo" und danach "123" folgendes ausgibt:

 
Zitat
Hallo123

Also weder Fett noch mit Absatz :(

Kommt mir alles sehr seltsam vor, zumal das bei meinem Gaestebuchscript (aus einem Tutorial) ja auch klappt:



 
Zitat
<?php

      if(isset($absenden)) {
      $datei=fopen ("eintraege.txt","a");
      $eintrag = ereg_replace("\n","<br>",$eintrag);
      $eintrag = stripslashes($eintrag);
      $daten = "<hr><b>Name:</b> $name<br>
      <b>Email:</b> <a href=mailto:$email>$email</a><br>
      <b>Website:</b> <a href=$url>$url</a><br>
      <b>Eintrag:</b>
      $eintrag<br>\n\n";
      fwrite($datei,$daten);
      fclose($datei);
      }
      if (file_exists("eintraege.txt")){
      $datei = fopen("eintraege.txt","r");
      $daten = fread($datei,filesize("eintraege.txt"));
      print $daten;
      } else {
   print "<b>Es sind keine Einträge vorhanden!</b>";
   }
   ?>

Zwar wird hier ein <hr> Tag in die TXT-geschrieben, aber das sollte ja keinen Unterschied machen...

LG

 

« Win XP: Win XP: Fehlermeldung "Error in SQL syntax"Ebay Angebotsgestalltung per Html »
 

Schnelle Hilfe: Hier nach ähnlichen Fragen und passenden Tipps suchen!

Fremdwörter? Erklärungen im Lexikon!
Quellcode
Ein Quellcode, auch als Quelltext bekannt, bezeichnet den unkompilierten Programm-Code einer Software. Quell- oder Programm-Code ist der auch für Menschen lesbare Co...

Unicode
Unicode ist ein international anerkannter Standard, der als universeller Zeichencode ("Universal Code") dient und durch das Unicode-Konsortium entwickelt und verwaltet wi...

QR-Code
QR-Codes, die Abkürzung für "Quick Response Codes", sind eine Form von zweidimensionalen Barcodes. Damit lassen sich Informationen schnell und effizient speiche...