2010-01-22 4 views

Répondre

3
$tok = strtok($string, " \n\t"); 

while ($tok !== false) { 
    echo "<v>$tok</v>"; 
    $tok = strtok(" \n\t"); 
} 
+0

Je pense que vous allez remplacer les symboles comme '.' ainsi –

3

Utilisez preg_replace pour trouver les mots et les remplacer par la version enveloppée:

$string = preg_replace('/(\w+)/', '<v>\1</v>', $string); 

Expression régulière fonctionne comme suit:

  • / est délimiteur de exprtession régulière, tout entre /.../ est l'expression
  • (...) - est le groupe de capture qui permet d'économiser du résultat regexp intérieur dans un tableau spécial
  • \w - signifie mot caractère
  • \w+ - signifie 1 ou plusieurs caractères mot

En remplacement \1 signifie la valeur du premier groupe enregistré dans regexp.

+0

Pouvez-vous m'expliquer ce que '/ (\ w +)/g' dit à l'ordinateur, (? Whitespace = (/ w +) et/g = quoi? et je reçois ' \ 1' mais pourquoi le 1, puis-je envelopper chaque autre mot dans quelque chose d'autre? – Klanestro

+0

\ w = tout caractère de mot (az, AZ, 0-9, _) \ w + = tout caractère de mot une ou plusieurs fois (\ w +) saisir tout caractère mot une ou plusieurs fois dans un backreference /(\ w +)/g = faire de la recherche globale sur la chaîne le \ 1 dans le deuxième argument dit preg_replace pour mettre la chaîne correspondante de (\ w +) dans ici Johrn

+0

@Johrn: '/ g' n'est pas répertorié dans le manuel PHP, vous voulez expliquer ce qu'il fait dans un peu plus de détails? –

Questions connexes