-1
votes

60 mots affichés uniquement et la base de données ayant 100 mots

Je veux seulement que les 60 premiers mots de '$ Sortie' qui ont été téléchargés 100 mots sur la base de données à afficher sur ma page, quel est le moyen le plus simple pour moi de faire cela?

Je veux $ sortie [ ] = "Description Pour rechercher seulement 60 mots de la base de données. ** J'ai essayé une méthode beaucoup mais ne fonctionne pas pour moi ** xxx


5 commentaires

Comment allez-vous interroger la base de données?


Sélectionnez * à partir de tbprd où prdcatcod = $ Catcod et prdavillsts comme "% y%"


Y a-t-il une autre méthode pour utiliser uniquement les 60 premiers mots comme à l'aide de substrateurs


Quel est le nom de la colonne à partir de laquelle vous avez besoin de 60 caractères?


@Learner Faites-vous cela pour En savoir plus .. type d'une chose où vous allez utiliser ellipsis (. ) pour que les utilisateurs cliquent sur en savoir plus. . pour voir le texte complet?


3 Réponses :


2
votes

Si votre définition d'un mot est des lettres et / ou des chiffres et d'autres caractères combinés et séparés avec de l'espace, vous pouvez utiliser exploser pour les séparer, puis couper les 60 premiers et les imploser à la chaîne.

implode(" ", array_slice(preg_split("/\s+/", $str), 0, 60));


3 commentaires

Merci pour l'aide mais quand je tape 60, il va 62 mots mais quand je tape 2 moins de 60 ans, ça marche pour moi.


C'est étrange. Est-ce l'explosion ou la version prég_split que vous utilisez? Je pense que Preg_split devrait être plus précis que l'explosion puisqu'un double espace peut devenir un mot avec exploser


Qu'en est-il du mot. Il récupère une 60 phrases



1
votes

Les autres réponses ne respectent pas l'interponcuntude ou ils comptent des lettres. Voici une petite fonction:

function get60Words(string $str) {
    $words = str_word_count($str, 2);
    $cnt = 0;
    foreach($words as $strPos => $v) {
        if($cnt++ === 60) {
            return substr($str, 0, $strPos-1);
        }
    }

    return $str;
}


2 commentaires

Pourquoi Count Letters important? Votre sortie n'inclut pas les points et les virgules ou les autres caractères non A-Z. Edit: Désolé, cela inclut les points, mon mauvais.


@Andreas Désolé, je le mets mal. Je voulais dire que l'une des autres réponses ne compte pas les mots mais les lettres.



-1
votes

Vous pouvez utiliser la sous-chaîne MySQL () pour extraire 60 caractères de votre chaîne. Compte tenu de votre requête, il devrait ressembler à quelque chose comme ça xxx

remplacer avec le nom de la colonne à partir de laquelle vous souhaitez extraire 60 caractères < / p>


1 commentaires

60 mots, pas de caractères