php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2005-2

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 17.09.2005, 13:04  
Gast
 
Beiträge: n/a
Standard newsposting auszug nicht laenger als zb. 50 woerter

hallo!

mir is zwar klar dass es keine optimale loesung fuer die sache is, jedoch is die besondere einschraenkung an dem webspace auf dem die seite laeuft, die is das es kein sql gibt, daher wird mit txt files gearbeitet, was fuer mich persoenlich die sache schon sehr unsympathisch macht, da ich mich obendrein auch nur so basic zeugs beherrsche.

und zwar gehts um folgendes, beim newsposting solls eh wie ueblich im admin bereich ein feld fuer datum, titel, dropdown fuer author, und einen textarea fuer die nachricht geben, die auf der news seite ausgegeben werdne,neueste immer oben

Code:
<?php
setlocale (LC_ALL, 'de_DE@euro');

 if ($message != '') 
 {
  $message = str_replace ("\n","
",$message);
  $message = strip_tags ($message, '
');

  $newRow = ''. strip_tags ($name) .'&raquo;'. strftime('%A, %e.%B.%Y') .  '&laquo;' . ($message) . '
';
  	      
  $oldRows = join ('', file ('news.txt') );
  $fileName = fopen ('news.txt', 'w');
  fputs ($fileName, $newRow . chr(13) . chr(10) . $oldRows);
  fclose ($fileName);
 }
 
echo "News wurden hochgeladen";
?>
soweit ja habich ja eigentlich eh alles...oben stark gekuerzte version, kann also seind dass ich etwas vergessen habe, funktioniert bis dahin aber eh ohne probleme. das eigentliche problem an der sache is, dass die news vorraussichtlich alles sehr lang werden, und das einfach unangenehm aussieht, auf der uebersichts seite, deshalb sollte sie so angelegt werden wie es ehbekannt is, dass beispielsweise nur die ersten 50 woerter wiedergegeben werden, und man mit dem klick auf >mehr...< oder wie auch immer den vollen beitrag bekommt.
geht das bei txt dateien ueberhaupt dass man nur bis zu einem bestimmten punkt den beitrag wiedergibt?! habe hierbei absolut keine erfahrung oder irgednwie ahnung drueber..
 
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 17.09.2005, 14:41  
Gast
 
Beiträge: n/a
Standard

Ich denke,
sub_str() sollte dir helfen

Grüße,
Jojo
 
Alt 18.09.2005, 02:07  
Gast
 
Beiträge: n/a
Standard

Zitat:
Ich denke,
sub_str() sollte dir helfen
Ich dachte er will max. 50 Wörter haben ?
Wie kommst du jetzt auf substr() ?

Dann sollte es wohl die besser die Wörter zählen
 
Alt 18.09.2005, 10:10  
Matthias959
Gast
 
Beiträge: n/a
Standard

Ich mache das so.

PHP-Code:
<?php
$string
="blabla"//Hier muss der Text aus dem txt-file rein.
$foo="200"//Wie viele Wörter sollen ausgegeben werden?
$string=htmlentities($string); //Macht alles schön Browser gerecht ;)
$string=wordwrap($string,$foo,"#<ö>#"); //Fügt nach jedem xy Wort ein "#<ö>#" ein.
$string=explode("#<ö>#",$string//Teilt den String in die einzelnen Teile auf.
echo $string[0]; //gibt die ersten $foo Wörter aus.
?>
Die Zeichenkette "#<ö>#" kann auch nicht zufällig im Text vorkommen, da alle < und > vorher zu &gt; und &lt; umgewandelt wurden.
 
Alt 18.09.2005, 14:28  
Gast
 
Beiträge: n/a
Standard

danke..war schon klar das sub_str. nicht der weisheits letzter schluss isaber die letzte variante haut wunderbar hin danke...habe eben noch nicht besonders viel erfahrung mit php, da ich es eigentlich bisher immer nur maximal fuer mailforms etc. verwendet, schliesslich bin ich auch primaer fuer grafik zustaendig, habe. da irgendwie das breite anwendungsgebiet mich ein wenig abgeschreckt hat. aber ich denk mal es is zeit fuer was neues

ich haett eigentlich dazu noch ne wahrscheinlich sehr schwammig wirkende frage...und zwar:
der auszug aus dem newspost zb. vom 21.10.2005 soll mit den vielen anderen eben auf zb. der news.php seite stehen, und das [mehr...] unten sollte automatisch einen link machen zu einer dem wo das newspost aus ganzes lesbar ist. am besten als name datum + fortlaufende nummer.
habe bei mehreren seiten gesehen dass die sache dann beispielsweise so aussieht:
news.php?detail=21100501
welche befehle waern da wichtig zum anschaun? oder gibts irgendwelche tutorials oder fertige einfach sachn aus denen man sowas ableiten koennte?!
 
Alt 18.09.2005, 14:31  
Gast
 
Beiträge: n/a
Standard

ähh....
Sorry war zu spät: 3:40 Am Nachmittag: Da schlafe ich fast schon
Nix für ungut
 
Alt 18.09.2005, 14:36  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von Jojo
ähh....
Sorry war zu spät: 3:40 Am Nachmittag: Da schlafe ich fast schon
Nix für ungut
ich glaub dass ich vorallem bei meinem wissen bzw nichtwissen niemand das gefuehl haben sollte sich zu entschuldigen
 
Alt 18.09.2005, 15:48  
Gast
 
Beiträge: n/a
Standard

doch,
ich hab nämlich "50 Zeichen" gelesen und nicht "50 Wörter"
 
Alt 18.09.2005, 16:18  
Gast
 
Beiträge: n/a
Standard

mit
PHP-Code:
<? $array preg_split("/\s/",$text,6); ?>
wird dein Text nach Worten aufgespalten und in ein Array geschrieben. Dieses Array hat dann 6 Feldern.
In den ersten 5 sind deine ersten 5 Worte und im 6. der Rest.
Die ersten fünf kannst du dann aneinander hängen...tadaa!

Mehr krieg ich jetzt nich zu stande, geht bestimmt noch einfacher, so dass man direkt die ersten 5 Wörter in einem Feld hat.....

Grüße,
Jojo
 
Alt 18.09.2005, 21:47  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von Matthias959
Ich mache das so.

PHP-Code:
<?php
$string
="blabla"//Hier muss der Text aus dem txt-file rein.
$foo="200"//Wie viele Wörter sollen ausgegeben werden?
$string=htmlentities($string); //Macht alles schön Browser gerecht ;)
$string=wordwrap($string,$foo,"#<ö>#"); //Fügt nach jedem xy Wort ein "#<ö>#" ein.
$string=explode("#<ö>#",$string//Teilt den String in die einzelnen Teile auf.
echo $string[0]; //gibt die ersten $foo Wörter aus.
?>
Die Zeichenkette "#<ö>#" kann auch nicht zufällig im Text vorkommen, da alle < und > vorher zu &gt; und &lt; umgewandelt wurden.
eine frage noch..is wordwrap nicht lediglich eine funktion fuer zeilenumbrueche?..sollte in dem fall nicht eher str_split verwendet werden?! auch wenns eh so geht..nur zwecks neugier
 
 


Themen-Optionen
Thema bewerten
Thema bewerten:

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 an
Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 08:34 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.