CronJob-Service
bei SELFPHP mit ...
|
+ minütlichen Aufrufen
+ eigenem Crontab Eintrag
+ unbegrenzten CronJobs
+ Statistiken
+ Beispielaufrufen
+ Control-Bereich
Führen Sie mit den CronJobs von
SELFPHP zeitgesteuert Programme
auf Ihrem Server
aus. Weitere Infos
|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
PHP für Fortgeschrittene und Experten Fortgeschrittene und Experten können hier über ihre Probleme und Bedenken talken |
03.08.2003, 18:02:25
|
Anfänger
|
|
Registriert seit: Aug 2003
Beiträge: 17
|
|
bestimmte zeichenanzahl...
hi,
ich möchte einen string nach einer bestimmten anzahl von zeichen abbrechen, jedoch vorher noch zum vorherigen leerzeichen zurückspringen, damit das wort (wo die zeichenlänge erreicht wird) nicht auseinandergerissen wird.
ich hatte schon eine idee, dass ich das ganze in einer schleife (z.b. for oder while) einbaue und dann immer mit strlen() ob ich schon die zeichenlänge überschritten hab oder nicht.
ein zweites problem: ich kann nicht einfach <br> benutzen, da ich den text auf einen bild, mit hilfe von imagettftext(), erstellen möchte.
wer kann mir dabei helfen?
__________________
mfg Box
der anfang ist das schwerste und das ende am leichtesten - gut, dass es kein ende gibt (in sachen software)
|
03.08.2003, 18:55:27
|
SELFPHP Guru
|
|
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 54
Beiträge: 4.748
|
|
Ich kann Dir nur bei ersterem helfen:
PHP-Code:
<?php
$str='Das ist ein längerer
Text ohne Zeilenumbrüchen, wo
sie niemand braucht und auch
wohl niemand setzen würde.';
$max_chars=100;
$words=explode(' ', $str);
$str_neu='';
for ($i=0; $i<count($words); $i++) {
if (strlen($str_neu)+strlen($words[$i])<$max_chars) {
$str_neu.=$words[$i].' ';
}
}
echo $str_neu;
?>
Die Zeichenkette wird an den Leerzeichen aufgetrennt und dann in einer Schleife überprüft, ob das nächste Wort noch angehangen werden kann ohne das Maximum zu überschreiten.
Das Ding ist aber noch nicht so toll. Schließlich wird HTML nicht beachtet. Sollte da mal ein Link dazwischen sein, dann sind 100 Zeichen schnell voll.
|
03.08.2003, 19:03:37
|
Anfänger
|
|
Registriert seit: Aug 2003
Beiträge: 17
|
|
hmm ... ich hab mal die zeichenlänge max_chars mal auf 10 gesetzt. ausgabe: Das ist :(
__________________
mfg Box
der anfang ist das schwerste und das ende am leichtesten - gut, dass es kein ende gibt (in sachen software)
|
03.08.2003, 19:10:46
|
SELFPHP Guru
|
|
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 54
Beiträge: 4.748
|
|
Na ist doch richtig so!
das --> 3 Zeichen
--> Leerzeichen, ein Zeichen --> 4 Zeichen
ist --> 3 Zeichen --> 7 Zeichen
--> Leerzeichen, ein Zeichen --> 8 Zeichen
ein --> 3 Zeichen --> 11 Zeichen --> größer 10, also nicht mehr dabei.
|
03.08.2003, 19:40:26
|
Anfänger
|
|
Registriert seit: Aug 2003
Beiträge: 17
|
|
das ist klar. meinte ja nur, dass der string nicht vollständig ausgegeben wird. muss ich wohl erst noch machen..
trozdem danke erstmal für die hilfe!
__________________
mfg Box
der anfang ist das schwerste und das ende am leichtesten - gut, dass es kein ende gibt (in sachen software)
|
03.08.2003, 19:50:43
|
Senior Member
|
|
Registriert seit: Apr 2003
Alter: 57
Beiträge: 1.236
|
|
Zitat:
das ist klar. meinte ja nur, dass der string nicht vollständig ausgegeben wird.
|
Hi Box,
aber genau das, wolltest Du doch, oder?!?
|
03.08.2003, 20:03:12
|
Anfänger
|
|
Registriert seit: Aug 2003
Beiträge: 17
|
|
du hast es erfasst ;)
hatte gerade die idee bekommen in der schleife massenhaft abfragen einzubauen...
PHP-Code:
if(strlen($words[$x])<$max_chars){...}
if(strlen("$words[$x] $words[$x+1]")<$max_chars){...}
if(strlen("$words[$x] $words[$x+1] $words[$x+2]")<$max_chars){...}
...
ist aber ziemlich umständlich :(
__________________
mfg Box
der anfang ist das schwerste und das ende am leichtesten - gut, dass es kein ende gibt (in sachen software)
|
03.08.2003, 20:05:28
|
SELFPHP Guru
|
|
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 54
Beiträge: 4.748
|
|
Ich verstehe Dein Problem nicht (mehr), Kiste. Das Skript da oben macht doch exakt das, was Du wolltest. Dachte ich. Denkt Chris.
Formuliere bitte nochmal, was Du willst und dann fangen wir einfach von vorne an.
|
03.08.2003, 20:12:57
|
Anfänger
|
|
Registriert seit: Aug 2003
Beiträge: 17
|
|
allllsoooo...
ich lese auf einem textfile einen string aus und möchte diesen auf einen png-bild darstellen. dieser string darf aber eine bestimmte zeilenlänge nicht übersteigen, da der text sonst neben dem bild steht. <br> kann ich dabei nicht benutzen, da sonst auf den bild nur "<br>" steht. d.h. ich muss als erstes eine algorhytmus(?) finden womit ich den string auf die richtige länge bringe und als zweites eine schleife (oder etwas anderes) was den geteilten string auf den bild ausgibt.
ist die erklärung ausreichend?
__________________
mfg Box
der anfang ist das schwerste und das ende am leichtesten - gut, dass es kein ende gibt (in sachen software)
|
03.08.2003, 20:38:10
|
SELFPHP Guru
|
|
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 54
Beiträge: 4.748
|
|
Algorithmus ;)
Nehmen wir halt das:
PHP-Code:
<?php
$str='Das ist ein Test zum testen eines
sinnlosen Testes, der ein Test für
selfPHP ist. Ist halt so ein Test.';
$str=str_replace("rn", ' ', $str);
$max_chars=20;
$words=explode(' ', $str);
$i=0;
while (true) {
if (!isset($str_neu[$i])) {
$str_neu[$i]='';
}
$j=0;
while (strpos($str, ' ', $j)<=$max_chars && $j<strlen($str)) {
$j++;
}
$str_neu[$i]=substr($str, 0, $j-1);
$str=substr($str, $j, strlen($str));
if (strlen($str)<$max_chars) {
$i++;
$str_neu[$i]=$str;
break;
}
$i++;
}
echo join("nn", $str_neu);
exit;
?>
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 10:32:51 Uhr.
|