PHP: Problem
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
beispiel
beitrag
dokument
eins
einzahl
fixer
fortlaufend
funktion
gel
listen
manual
punkten
schulen
tag
textprogramm
variable
versuchen
wert speicher
zuletzt
zhler
-
Hallo,
ich habe ein Problem mit PHP.
Ich m?chte nach jedem Punkt in einem Text jeweils eine Zahl setzen. Diese Zahl soll aber tag/fortlaufend">fortlaufend sein! Das hei?t nach dem 1. Punkt eine 1 , nach dem zweiten Punkt eine 2 ........
Wenn das irgendwie anders geht, oder mit einem Textprogramm, oder ?? Ich will das nur irgendwie schaffen.
Vielleicht kann mir ja jemand helfen!
MfG lagerhaus -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Das geht doch html doch auch. Wieso machste net mit html.
-
Und wie das bitte? HTML ist doch nur Beschreibung. Ich will das automatisch machen lassen und nicht alles selber schreiben m?ssen (Wenn es viele, viele Punkte gibt...)
MfG lagerhaus -
Ich meinte html tags
echo " <OL> <LI>bla <LI>BLUB <LI>EIn wunder das geht </OL> ";
wenn du das mit mysql hast also f?r G?steb?cher oder sowas dann halt einfach
echo " <OL> <LI>$text </OL> ";
Das wird dann soviel mal ausgegeben wieviel mal du in table eintrag hast der text ausgibt
Ich wei? net genau aber sollte es funktionieren -
Ich meine nicht eine Liste, sondern ich m?chte wenn in einem Dokument ein "." ist einfach eine Zahl dahinter schreiben lassen. UNd diese Zahl soll fortlaufend sein. Dieser Text ist auch kein G?stebuch, also ist es keine "While"-Schleife aus MySQL.
Zum Beispiel:
Ich gehe zur Schule. Ich habe Hausaufgaben auf.
Daraus soll werden:
Ich gehe zur Schule. 1 Ich habe Hausaufgaben auf. 2
MfG lagerhaus -
du musst deinen ganzen text-output durch eine if-abfrage durchlassen. wenn die einen punkt findet, setzt du einfach den wert einer variable dahinter und erhoehst sie dann.
pseudocode:
if(zeichen == ".")
{
print $zaehler;
$zaehler++;
}
-
du musst deinen ganzen text-output durch eine if-abfrage durchlassen. wenn die einen punkt findet, setzt du einfach den wert einer variable dahinter und erhoehst sie dann.
pseudocode:
if(zeichen == ".")
{
print $zaehler;
$zaehler++;
}
Dann m?sste ich aber doch jedes Zeichen einzeln ausgeben, oder? -
ich weiss jetzt nicht genau, wie das bei php ablaeuft. kannst du das nicht irgendwie in einen stream umwandeln? es gibt doch streams bei php?
was ich auch nicht ganz verstehe: hast du schon einen fixen text, der sich nicht mehr aendert oder ist der dynamisch?
auf jeden fall gibts bei php noch entsprechende string-funktionen, mit denen du das noch komfortabler machen kannst, z.b. mit irgendwelchen such-/ ersetzen-funktionen. -
Ich habe einen fixen Text, bzw. verschiedene fixe Texte. Aber man kann es behandeln als w?re es
ein fixer Text. -
ich weis nicht ob es so klappt aber ein versuch ist es wert:
//speicher zuerst den text in einer variable
$text = "hallo. tsch?ss. guten tag. usw.";
//dann erstellst du die variable $z?hler wo immer eins dazu gerechnet wird.
$zaehler="1";
$zaehler++;
//als n?chstes wird der text nach punkten durchsucht und die punkte werden durch ".$zaehler" ersetzt.
str_replace(".", ". $zaehler", $text);
//zuletzt nur noch die variable text ausgeben.
echo "$text";
ich weis nicht sicher ob es funktzioniert aber vielleicht gehts ja^^ -
ich weis nicht ob es so klappt aber ein versuch ist es wert:
//speicher zuerst den text in einer variable
$text = "hallo. tsch?ss. guten tag. usw.";
//dann erstellst du die variable $z?hler wo immer eins dazu gerechnet wird.
$zaehler="1";
$zaehler++;
//als n?chstes wird der text nach punkten durchsucht und die punkte werden durch ".$zaehler" ersetzt.
str_replace(".", ". $zaehler", $text);
//zuletzt nur noch die variable text ausgeben.
echo "$text";
ich weis nicht sicher ob es funktzioniert aber vielleicht gehts ja^^
Nein, das geht leider nicht:
Es wird ja zuerst die Variable $zaehler um 1 erh?ht, also ist 2 draus geworden. Und nun wird einfach mit ". 2" ersetzt (Hallo. 2 Guten Tag. 2)
Gibt es noch andere Ideen, vielleicht aus anderen Themen-Bereichen (Java, javaskript, .....)??
MfG lagerhaus -
hmm, mit javascript kenn ich mich nicht aus...
vielleicht gehts ja so:
$zaehler="0";
if($zaehler > 1000) {
$zaehler++; }
und dann wieder das andere zeug
falls dies auch nicht klappt frag mal im forum von http://www.php-einfach.de nach. da findest du auf alles eine antwort aber echt 100% -
lol ich krieg das nicht hin.
Das kann ich mit datenbank sonst net.
HAb mit if probiert gemixt mit @firemans beispiel da geht nur einzahl hoch der n?chste nicht ist auch logisch. Mit while habe ich probiert. Da geht es nur da wird der text auch doppel gezeigt oder mehr .. -
Warum so schwer, wenn es auch einfach geht. ;)
<?
global $zahl;
$zahl =0;
$text="sdsdsd. sdasdsd. sdadssd dsasddsa. sdadsadsd.";
echo preg_replace_callback("/\./", "naechste_Zahl", $text);
function naechste_Zahl($treffer)
{
global $zahl;
$zahl++;
return $treffer[0].$zahl;
}
?>
P.S. http://de.php.net/manual/de/function.preg-replace-callback.php
Jens
Beitrag ge?ndert am 13.08.2005 00:55 von jacr -
Warum so schwer, wenn es auch einfach geht. ;)
<?
global $zahl;
$zahl =0;
$text="sdsdsd. sdasdsd. sdadssd dsasddsa. sdadsadsd.";
echo preg_replace_callback("/\./", "naechste_Zahl", $text);
function naechste_Zahl($treffer)
{
global $zahl;
$zahl++;
return $treffer[0].$zahl;
}
?>
P.S. http://de.php.net/manual/de/function.preg-replace-callback.php
Jens
Beitrag ge?ndert am 13.08.2005 00:55 von jacr
Danke, Problem gel?st!
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage