fork(1) download
  1. <?php
  2. //¿Cómo comprobar si una cadena contiene una palabra específica en PHP?
  3. // http://es.stackoverflow.com/q/34946/127
  4.  
  5. function contiene_palabra($texto, $palabra){
  6. if (preg_match('*\b' . preg_quote($palabra) . '\b*i', $texto, $matches, PREG_OFFSET_CAPTURE)){
  7. return $matches[0][1];
  8. }
  9. return -1; // -1 cuando no se encuentra
  10. }
  11.  
  12.  
  13. // --- Demo
  14. $texto = "Hola mundo";
  15.  
  16. foreach (['la', 'hola', 'MUNDO'] as $palabra) {
  17. if (($pos = contiene_palabra($texto,$palabra)) >= 0) {
  18. echo "'$texto' contiene la palabra '$palabra' en la posición $pos.\n";
  19. } else {
  20. echo "No se encuentra la palabra '$palabra' en '$texto'.\n";
  21. }
  22. }
Success #stdin #stdout 0.01s 52488KB
stdin
Standard input is empty
stdout
No se encuentra la palabra 'la' en 'Hola mundo'.
'Hola mundo' contiene la palabra 'hola' en la posición 0.
'Hola mundo' contiene la palabra 'MUNDO' en la posición 5.