Voici ce qui ne fonctionne pas pour moi: Je souhaite limiter le texte visible à 100 caractères, mais utiliser Existe-t-il un moyen de limiter le texte de sorte que le mot "prise" de la liaison soit inclus dans la limite, mais pas EDIT:
Je veux garder le lien dans la chaîne, je ne compte tout simplement pas que la longueur de la limite .. p> p> substr () code> y compris le non- Texte visible dans la limite (
code> et
code>) qui prend 41 de celles disponibles 100 Caractères. P> code> ou
code>? p>
5 Réponses :
Si vous souhaitez limiter la partie de texte, vous devez l'analyser et vérifier la limite vous-même. Le moyen le plus simple est de:
if ( strlen(strip_tags($string)) > 100 ) { // the url inside $url is too big } else { // the url inside $url fits }
N'oubliez pas de remplacer Strlen code> avec
mb_strlen code> si le texte est multibyte.
pas facilement - vous pouvez bien sûr utiliser strip_tags pour déshydrater la chaîne, mais autre que qu'il n'y a pas de solution facile. p>
Solution à mon problème! Merci :)
Le moyen le plus simple serait de l'analyser dans une structure DOM. Vous pouvez utiliser Domdocument pour cela. Ensuite, vous pourriez simplement passer à travers les éléments et apporter des modifications au contenu. P>
Une autre approche serait de faire une recherche à deux contacts de regex et de remplacer - d'abord utiliser la regex pour trouver le contenu des balises, puis utilisez la regex pour remplacer le contenu avec le contenu raccourci. Cela peut être atteint avec vos fonctions Preg_ * * habituelles. P>
Une fonction pour tronquer des mots dans le code HTML: source: http://snippets.dzone.com/posts/show/7125 p> p>
Voici un meilleur (IMHO): SNIPPETS.CACHER.IO/SNIPPET/8411068832478F4E8BCB
Vous pouvez essayer cela, travaillé pour moi si aucune balises ne sont dans String $ Différuler aura une valeur de 0 donnant à la chaîne de votre valeur d'origine de 100
<?php $string = 'I have a dog and his name is <a href="http://www.jackismydog.com">Jack</a> and I love him very much because he\'s my favorite dog in the whole wide world and nothing could make me not love him, I think.'; $stringall=strlen($string); $striphtml = strip_tags($string); $stringnohtml=strlen(striphtml); $differ=($stringall-$stringnohtml); $stringsize=($differ + 100); $limited = substr($string, 0, $stringsize).'...'; echo $limited; ?>
$ stringnohtml = strylen (striphtml); devrait être $ stringnohtml = strylen ($ striphtml);