Vous pouvez trouver le .? dernière des espaces en utilisant la fonction strrpos()
:
$variable = 'put returns between paragraphs';
$lastSpace = strrpos($variable, ' '); // 19
Ensuite, prenez les deux substrings (avant et après le dernier espace) et enrouler autour du 'et':
$before = substr(0, $lastSpace); // 'put returns between'
$after = substr($lastSpace); // ' paragraphs' (note the leading whitespace)
$result = $before . ' and' . $after;
EDIT
Bien que personne ne veut jouer avec les indices de sous-chaîne ceci est une tâche de base très pour lesquels PHP est livré avec des fonctions utiles (specificly strrpos()
et substr()
). Par conséquent, il n'y a pas besoin de jongler avec des tableaux, inversées des chaînes ou des expressions rationnelles - mais vous pouvez, bien sûr :)
Je ne peux pas attribuer la source, mais une fois j'ai entendu cette citation "J'ai eu un problème et j'ai décidé d'utiliser des expressions rationnelles Maintenant j'ai deux problèmes" – Zak
comment ajouter du html au lieu de 'et' dans votre solution? – James
@Zak Ce n'est pas un problème si vous connaissez regex, et savez ce qu'il peut et ne peut pas faire. – NullUserException