Foros del Web » Programando para Internet » PHP »

No logro hacer funcionar strpos correctamente

Estas en el tema de No logro hacer funcionar strpos correctamente en el foro de PHP en Foros del Web. Tengo este codigo: Código PHP: <?php if(isset( $_POST [ 'btncode' ])):      $valor  = array( '{.header.}' , '{.navbar.}' );      $contenido  =  false ;      $letra  ...
  #1 (permalink)  
Antiguo 10/09/2013, 06:29
 
Fecha de Ingreso: diciembre-2012
Mensajes: 223
Antigüedad: 11 años, 4 meses
Puntos: 2
No logro hacer funcionar strpos correctamente

Tengo este codigo:
Código PHP:
<?php
if(isset($_POST['btncode'])):

    
$valor = array('{.header.}','{.navbar.}');
    
$contenido false;
    
$letra '';

    foreach(
$valor as $valor1){
        if(!
strpos($_POST['code'], $valor1)){
            
$contenido true;
            
$letra .= $valor1;
        }
    }

    if(
$contenido == true):
        echo 
'No contiene las etiquetas '.$letra;
    elseif(
$_GET['type'] == 'index'):
        
//Sentecia
        
echo 'Editado correctamente';
    else:
        
//Sentencia
        
echo 'Editado correctamente';
    endif;

endif;
?>
El problema esque si en el textarea pongo:
"{.header.}{.navbar.}" (Sin los ") -> No contiene las etiquetas {.header.}
" {.header.}{.navbar.}" (Sin los ") -> Editado correctamente

¿Porque tengo que poner un espacio delante de {.header.} para que funcione?
  #2 (permalink)  
Antiguo 10/09/2013, 08:50
Avatar de neorazorx  
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 8
Antigüedad: 10 años, 7 meses
Puntos: 0
Respuesta: Tengo una "DUDA"

Porque estás usando strpos, que te devuelve la posición, en este caso 0. Y 0 = FALSE.

Tienes que usar strstr()
  #3 (permalink)  
Antiguo 10/09/2013, 09:15
 
Fecha de Ingreso: diciembre-2012
Mensajes: 223
Antigüedad: 11 años, 4 meses
Puntos: 2
Respuesta: Tengo una "DUDA"

Me funciono, entonces la funcion strpos me devuelve la posicion de donde esta la palabra?
  #4 (permalink)  
Antiguo 10/09/2013, 09:24
Avatar de neorazorx  
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 8
Antigüedad: 10 años, 7 meses
Puntos: 0
Respuesta: Tengo una "DUDA"

Si -> http://php.net/manual/es/function.strpos.php

Para programar en php lo mejor es netbeans, ya que incorpora toda la documentación de las funciones de php.
  #5 (permalink)  
Antiguo 10/09/2013, 09:41
 
Fecha de Ingreso: diciembre-2012
Mensajes: 223
Antigüedad: 11 años, 4 meses
Puntos: 2
Respuesta: Tengo una "DUDA"

Sigo sin entender para que sirve.
  #6 (permalink)  
Antiguo 10/09/2013, 09:48
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Tengo una "DUDA"

Cita:
Iniciado por XD2XD2 Ver Mensaje
Sigo sin entender para que sirve.
¿Para qué sirve que cosa?

Si te refieres a alguna función en particular eso lo aprendes leyendo el manual, no sé si te refieres a algo más.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 10/09/2013, 09:56
 
Fecha de Ingreso: diciembre-2012
Mensajes: 223
Antigüedad: 11 años, 4 meses
Puntos: 2
Respuesta: No logro hacer funcionar strpos correctamente

La funcion, ley el manual, pero no consigo enterarme.
  #8 (permalink)  
Antiguo 10/09/2013, 10:22
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: No logro hacer funcionar strpos correctamente

Cita:
Iniciado por XD2XD2 Ver Mensaje
La funcion, ley el manual, pero no consigo enterarme.
Pues ese es tu asunto, no el nuestro, acá no se dan cursos de compresión de lectura ni análisis de documentación técnica, lo siento.

Cuando tengas un problema concreto abre un tema si es necesario, si necesitas que alguien te explique la documentación paga por un curso, no es necesario que abras un tema cada vez que no te enteras.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #9 (permalink)  
Antiguo 10/09/2013, 10:23
 
Fecha de Ingreso: diciembre-2012
Mensajes: 223
Antigüedad: 11 años, 4 meses
Puntos: 2
Respuesta: No logro hacer funcionar strpos correctamente

Es explicar la funcion strpos.
No lo abri por que no lo entendi, sino porque no era la funcion correcta utilizada
  #10 (permalink)  
Antiguo 10/09/2013, 10:28
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Tengo una "DUDA"

Cita:
Iniciado por XD2XD2 Ver Mensaje
Me funciono, entonces la funcion strpos me devuelve la posicion de donde esta la palabra?
Sí, y si la palabra está al inicio entonces devuelve 0, que es un equivalente débil de FALSE, por lo tanto:
Código PHP:
Ver original
  1. $foo = 0;
  2.  
  3. // MAL
  4. if (! $foo) {
  5.   // $foo es evaluado como FALSE
  6. }
  7.  
  8. // BIEN
  9. if ($foo !== FALSE) {
  10.  // $foo no es FALSE, entonces puede ser >= 0
  11. }

Y eso se explica perfectamente en el manual, me sorprende que digas que lo lees pero en realidad no lees nada.

Cita:
Iniciado por Advertencia
Esta función puede devolver el valor booleano FALSE, pero también puede devolver un valor no booleano que se evalúa como FALSE. Por favor lea la sección sobre Booleanos para más información. Use el operador === para comprobar el valor devuelto por esta función.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #11 (permalink)  
Antiguo 10/09/2013, 10:30
Colaborador
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 3.648
Antigüedad: 10 años, 7 meses
Puntos: 578
Exclamación Respuesta: No logro hacer funcionar strpos correctamente

La funcion strpos() devuelve un integer de la posición/index de string si existe en la variable seleccionada. Ej:
Código PHP:
Ver original
  1. // Vars
  2. $cadena = "Hello world!";
  3. $contiene = "llo wox";
  4.  
  5. // Guardamos el valor returnado por la función strpos() en una variable
  6. $valor = strpos($cadena,$contiene); // FALSE
  7.  
  8. // La comparamos con una sentencia if
  9. if ($valor === FALSE)
  10. echo 'La cadena '.$cadena.' NO contiene '.$contiene;
  11. else:
  12. // El siguiente echo no se ejecuta
  13. echo 'La cadena '.$cadena.' contiene '.$contiene;
  14. endif;
  15. // FINAL IF

Si no es nada de otra galaxia...

Última edición por PHPeros; 10/09/2013 a las 11:03 Razón: Esto se merece un plus!

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:42.