2010-03-21 5 views
0

J'utilise substr pour couper les 100 premiers caractères de la chaîne. Cependant j'ai besoin d'une fonction qui peut couper un nombre particulier de mots, au lieu de caractères d'une chaîne?sous comme la fonction pour travailler sur des mots complets

$trimmed_details = substr($row->details, 0, 200).'...'; 

Y a-t-il une fonction intégrée pour cela?

+0

Pourriez-vous donner un exemple de ce que vous voulez? – geffchang

Répondre

1

Essayez ceci:

join(" ", explode(" ", $yourStr, 100)); 
+1

'join' est juste un alias, mieux vaut utiliser' implode'. À mon humble avis, il se mélange mieux avec le 'explode'. De plus, tenez compte de ceci: "Si la limite (troisième paramètre d'éclat) est définie et positive, le tableau retourné contiendra un maximum d'éléments de limite avec le dernier élément contenant le reste de la chaîne." - Tu devrais te débarrasser du dernier. – middus

+0

comment puis-je me débarrasser de la dernière? – amit

+0

Vous pouvez combiner exploser avec array_slice(). Quelque chose comme ceci: implode ("", array_slice (explode ("", $ yourStr, 101), 0, 100)); – Nycto

1

Non, il n'y a pas de fonction builtin à la fois PHP et MySQL. Parce qu'il n'y a pas de type de données "mot (de langue)" dans l'un ou l'autre système. Vous pouvez inventer des regexp pour ce faire, mais je serais prêt à abandonner et à utiliser l'ancien découpage à base de caractères.

Questions connexes