Gewusst wie: erfassen von ganzen Wörtern mit substr() in PHP, limit von word?
Wenn ich substr($string,0,100)
es gibt die ersten 100 Zeichen. Manchmal ist es Links das Letzte Wort unvollständig. Das sieht seltsam aus. Kann ich die Grenze von Wort lieber als char?
- Könnten Sie genauer erklären, was deine definition von "Wort" ist? Reden wir hier nur englische Wörter? Wörter in jeder Sprache? Eine beliebige Folge von Buchstaben, ob es ein echtes Wort oder nicht? Was ist mit zahlen? Satzzeichen? Andere Symbole? Ist '<<<<<<<<' ein Wort? etc...
- Könnte die Eingabe von text enthalten neue-Zeile-Zeichen?
- Versuchen Sie Diesen Link, Kann Ihnen helfen, stackoverflow.com/a/26098951/3944217
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie nur zählen Sie die Worte, die daraus resultierenden sting könnte noch sehr lange als ein einziges "Wort" vielleicht 30 Zeichen oder mehr. Ich würde vorschlagen, stattdessen kürzen Sie den text auf 100 Zeichen, außer wenn dies bewirkt, dass ein Wort nicht abgeschnitten wird, dann sollten Sie auch entfernen Sie den abgeschnittenen Teil des Wortes. Dies wird abgedeckt durch diese Verwandte Frage:
Wie zum Abschneiden eines Strings in PHP mit dem Wort am nächsten zu einer bestimmten Anzahl von Zeichen?
Mit wordwrap
Dies ist eine veränderte Version der Antwort hier. wenn die Eingabe von text kann sehr lang sein, können Sie fügen Sie diese Zeile vor dem Aufruf, um Zeilenumbruch zu vermeiden Zeilenumbruch mit, analysieren den gesamten text:
Mit einem regulären Ausdruck (Quelle)
Versuchen Sie eine einzige Zeile code
Ich würde so etwas machen:
Starten Sie einfach irgendwann ($len) und sich zu bewegen, eine bestimmte Anzahl von Zeichen ($i) Suche nach einem Einbruch-Zeichen (z.B. Leerzeichen). Sie könnte auch rückwärts (-$i) oder in beide Richtungen, je nachdem, was Sie suchen.
Dies ist eine Lösung, die sehr ähnlich wie das von Scott Evernden, funktioniert aber auch, wenn die Charakter - | unfallbedingt Auftritt in der Zeichenfolge:
ich habe versucht dies einfach und es funktionierte für mich