30. Mai 200223 j Hi, gibt es ne Funktion in PHP, die in einen String, alle 10 Zeichen (als Beispiel hier 10) einen anderen String einfügt. Beispiel: EinfügeString soll <br> sein StartWert: asdfghjklöasdfghjklöasdfghjklöasdfghjklöasdfghjklöasdfghjklö Ergebnis: asdfghjklö<br>asdfghjklö<br>asdfghjklö<br>asdfghjklö<br>asdfghjklö<br>asdfghjklö Mein Problem genau: Das ganze soll später in einem Text Wörter suchen, die zB. länger als 10 zeichen sind, und IN diese Wörter dann den HTML-Zeilenumbruch <br> einsetzen, damit, diese Wörter beim Anzeigen umrechen, und nicht die Tabellenbreite verändern. Bsp: StartString: Tach, ich hab ein Prooooooooooooooooooooblem mit PHP. Ergebnis: Tach, ich hab ein Proooooooo<br>oooooooooo<br>ooblem mit PHP. Das Programm hab ich auch schon gebastelt. Aber seltsamer Dings läuft's net. Müsste aber. In daten[2] steht der Text drin, der durchsucht werden soll. //den MessageText, in ein array aufsplitten, jedes einzelne Wort (Leerzeichen abhängig) $MessagePart = explode(" ", $daten[2]); //so viele Wörter gibt es (felder im array) $AnzahlElements = count ($MessagePart); $MaximaleZeichenAnzahl = 10; $WieOft = 0; $StartStringWert = 0; $EndStringWert = $MaximaleZeichenAnzahl; $zaehler = 0; $zaehler2 = 0; for ( $zaehler=0; $zaehler<=$AnzahlElements - 1; $zaehler++) { //Anzahl der Buchstaben, des aktuellen Worts ($MessagePart[$zaehler]) $laenge = strlen($MessagePart[$zaehler]); if ($laenge > $MaximaleZeichenAnzahl){ while($EndStringWert < $laenge){ $Part1 = substr($MessagePart[$zaehler], $StartStringWert, $EndStringWert); //$Part = substr($MessagePart[$zaehler], 13, 24); //12 Zeichen vom Wort in Array schreiben, samt <br> $WortSnippet[$WieOft] = '<br>'.$Part1; //echo '<br>:::'.$Part.':::<br>'; //echo '->'.$WortSnippet[$WieOft]; //echo '<>'.$WieOft; //echo '->'.$StartStringWert.'bis'.$EndStringWert; $WieOft = $WieOft + 1; //erhöht die Punkte, von dem aus und bis abgeschnitten wird (substr) $StartStringWert = $EndStringWert + 1; $EndStringWert = $EndStringWert + $EndStringWert; } } $AnzahlElementSnippets = count ($WortSnippet); for ( $zaehler2=0; $zaehler2<$AnzahlElementSnippets - 1; $zaehler2++) { //Wort zusammensetzen $MessagePart[$zaehler] = $MessagePart[$zaehler].$WortSnippet[$zaehler2]; } //das erste <br> aus dem Gesamten String entfernen $MessagePart[$zaehler] = substr($MessagePart[$zaehler], 4); //Finale-Message ohne Smilies wieder zusammensetzen $daten[2] = $daten[2].$MessagePart[$zaehler]; } Vielleicht geht das auch ander's ist aber leider net eingefallen. Bin für ErsatzCode dankbar, aber auch für nen Hinweis auf Verbesserung. Danke KarlBerg
30. Mai 200223 j Zwei Kleine Fehler sind mir jetzt schon aufgefallen. Falsch: $EndStringWert = $EndStringWert + $EndStringWert; Richtig: $EndStringWert = $EndStringWert + $MaximaleZeichenAnzahl; Falsch: $daten[2] = $daten[2].$MessagePart[$zaehler]; Richtig: $daten[2] = ""; //muss noch hinzugefügt werden $daten[2] = $daten[2].$MessagePart[$zaehler]; Sonst wer noch was? Danke KarlBerg
30. Mai 200223 j Halllo, versuch es mal mit wordwrap.string wordwrap(string str [, int width [, string break [, int cut]]]) Frank
30. Mai 200223 j Hi, leider läuft "wordwrap" erst ab PHP 4 >= 4.0.2 Hab den Fehler in meinem Code gefunden, und es läuft soweit ganz gut. Trotzdem Danke KarlBerg
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.