Comprueba si una cadena existe dentro de otra en php

strpos

(PHP 4, PHP 5)

strposEncuentra la posición de la primera ocurrencia de un substring en un string

Descripción

mixed strpos ( string $haystack , mixed $needle [, int $offset = 0 ] )

Encuentra la posición numérica de la primera ocurrencia del needle (aguja) en el string haystack (pajar).

Parámetros

haystack

El string en donde buscar.

needle

Si la needle no es una cadena, es convertida a integer y se interpreta como el valor ordinal de un carácter.

offset

Si se específica, la búsqueda iniciará en éste número de caracteres contados desde el inicio del string. A diferencia de strrpos() y strripos(), el offset no puede ser negativo.

Valores devueltos

Devuelve la posición donde la aguja existe, en relación al inicio del string haystack (independiente del offset). También tener en cuenta que las posiciones de inicio de los string empiezan en 0 y no 1.

Devuelve FALSE si no fue encontrada la aguja.

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.

Ejemplos

Ejemplo #1 Usando ===

<?php
$mystring 
'abc';
$findme   'a';
$pos strpos($mystring$findme);

// Nótese el uso de ===. Puesto que == simple no funcionará como se espera
// porque la posición de 'a' está en el 1° (primer) caracter.
if ($pos === false) {
echo 
"La cadena '$findme' no fue encontrada en la cadena '$mystring'";
} else {
echo 
"La cadena '$findme' fue encontrada en la cadena '$mystring'";
echo 
" y existe en la posición $pos";
}
?>

Ejemplo #2 Using !==

<?php
$mystring 
'abc';
$findme   'a';
$pos strpos($mystring$findme);

// El operador !== también puede ser usado. Puesto que != no funcionará como se espera
// porque la posición de 'a' es 0. La declaración (0 != false) se evalúa a
// false.
if ($pos !== false) {
echo 
"La cadena '$findme' fue encontrada en la cadena '$mystring'";
echo 
" y existe en la posición $pos";
} else {
echo 
"La cadena '$findme' no fue encontrada en la cadena '$mystring'";
}
?>

Ejemplo #3 Uso de offset

<?php
// Se puede buscar por el caracter, ignorando cualquier cosa antes del offset
$newstring 'abcdef abcdef';
$pos strpos($newstring'a'1); // $pos = 7, no 0
?>
Publicado en php

Encontrar y Obtener una cadena dentro de otra en php

strstr

(PHP 4, PHP 5)

strstrEncuentra la primera aparición de un string

Descripción

string strstr ( string $haystack , mixed $needle [, bool $before_needle = false ] )

Devuelve parte del string haystack iniciando desde e incluyendo la primera aparición de needle (aguja) hasta el final del haystack (pajar).

Nota:

Esta función es sensible a mayúsculas. Para búsquedas sin importar las mayúsculas, use stristr().

Ejemplo #1 Ejemplo de strstr()

<?php
$email  
'name@example.com';
$domain strstr($email'@');
echo 
$domain// mostrará @example.com

$user strstr($email'@'true); // Desde PHP 5.3.0
echo $user// mostrará name
?>

Publicado en php

Validar Formato de Email en php

function email_check($email)
{
$email_regex = ‘/^(?:[\w\!\#\$\%\&\’\*\+\-\/\=\?\^\`\{\|\}\~]+\.)*[\w\!\#\$\%\&\’\*\+\-\/\=\?\^\`\{\|\}\~]+@(?:(?:(?:[a-zA-Z0-9_](?:[a-zA-Z0-9_\-](?!\.)){0,61}[a-zA-Z0-9_]?\.)+[a-zA-Z0-9_](?:[a-zA-Z0-9_\-](?!$)){0,61}[a-zA-Z0-9_]?)|(?:\[(?:(?:[01]?\d{1,2}|2[0-4]\d|25[0-5])\.){3}(?:[01]?\d{1,2}|2[0-4]\d|25[0-5])\]))$/’;
return preg_match($email_regex, $email);
}

Publicado en php

Solucionar error: Notice: Undefined index: recaptcha_response_field in en recaptcha google

Sustituir la linea roja por la linea verde.
// THIS CODE SHOWS NOTICE MESSAGE

if ($_POST[‘recaptcha_response_field’]) {

        $response = recaptcha_check_answer(
$privatekey, $_SERVER[‘REMOTE_ADDR’],
$_POST[‘recaptcha_challenge_field’],
$_POST[‘recaptcha_response_field’]
);

// THIS CODE DOES NOT SHOW NOTICE MESSAGE

if (isset($_POST[‘recaptcha_response_field’])) {
$response = recaptcha_check_answer(
$privatekey, $_SERVER[‘REMOTE_ADDR’],
$_POST[‘recaptcha_challenge_field’],
$_POST[‘recaptcha_response_field’]
);

—————————————————————–

1)   if ($_POST[‘recaptcha_response_field’])   tests if the field is
equal to 1 (true).

2)   if (isset($_POST[‘recaptcha_response_field’]))     tests if the
field has been set (defined).

I believe you would only use 1) as an IF condition if you expect the
condition to be TRUE or FALSE. Whereas 2) tests whether the variable
has been set, which is what you actually want to test, because if it’s
set this means the form has been submitted and if it’s not set
(undefined) then you want to display the reCAPTCHA.

Fuente: https://groups.google.com/forum/#!msg/recaptcha/mNzwd6sd2nY/ZgyBaF38UUkJ

Publicado en php

Cómo insertar reCAPTCHA en tus formularios?

La web abunda en peligros y molestias que operan bajo forma de bots (robots). En este caso, los bots utilizados con fines maliciosos,son programas creados para determinadas funciones, como ser llenar miles de formularios webs enviando spam, vulnerar algún sitio y/u obtener alguna información en particular.

Los formularios son una puerta de entrada para algunos de estos peligros, por lo que necesitamos imperiosamente colocar algún freno, algo que fuerce la interacción de un ser humano del otro lado de nuestro formulario. Para ello están los CAPTCHAS (Completely Automated Public Turing test to tell Computers and Humans Apart , traducido es Prueba de Turing pública y automática para diferenciar máquinas y humanos), que son las clásicas pruebas en donde vemos texto distorsionado que deberemos ingresar a modo de comprobación.

Nosotros vamos a utilizar reCAPTCHA porque al hacerlo estamos ayudando a digitalizar libros (enterate del proyecto), es gratuito y muy simple de implementar. Con tu cuenta de Google, ingresá al siguiente link para generar tus keys: https://www.google.com/recaptcha/admin/create

Para descargar la librería para PHP nos dirigimos a esta sección de descargas. Si necesitamos trabajar con otros lenguajes o con determinadas plataformas, deberemos acceder a cada una de dichas secciones desde aquí.

Colocamos el archivo recaptchalib.php en nuestro sitio y antes del submit de nuestro formulario insertamos el código:

<form method="post" action="formulario.php">
<?php
// descomentar la linea de abajo si tenemos el codigo de validacion en otro archivo
// require_once('recaptchalib.php');
$publickey = "tu public key";
echo recaptcha_get_html($publickey, $error);
?><
<input type="submit" />
</form>

El reCAPTCHA necesita pasar por una validación para saber si insertar la información en una DB o enviarla por email, dependiendo el caso. Podemos utilizar el mismo archivo para colocar el script o uno nuevo, cualquiera sea el caso de formulario.php (a donde va el formulario ejemplo) deberemos incluir al inicio el siguiente código:

require_once('recaptchalib.php');
$privatekey = "tu private key";
$resp = null;
$error = null;
if ($_POST["recaptcha_response_field"]) {
$resp = recaptcha_check_answer  $privatekey,
$_SERVER["REMOTE_ADDR"],
$_POST["recaptcha_challenge_field"],
$_POST["recaptcha_response_field"]);
if ($resp->is_valid) {
// CODIGO A EJECUTAR SI EL RECAPTCHA VALIDA CORRECTAMENTE
} else {
// RECAPTCHA NO VALIDA ENTONCES IMPRIME ERROR
die ("El codigo reCAPTCHA no fue correctamente ingresado, por favor vuelva atras e intente nuevamente");
}
}

Coloquemos nuestras keys y la ruta al archivo recaptchalib.php, subamos la página con el formulario y verifiquemos que todo haya quedado en su lugar.

Finalmente si queremos personalizar un poco el reCAPTCHA, tenemos cuatro themes para utilizar. Si queremos cambiar el theme, en la página en donde insertamos el reCAPTCHA antes del tag <form> debemos insertar el siguiente código:

<script type="text/javascript">
var RecaptchaOptions = {
theme : 'theme_name'
};
</script>

En donde theme_name se reemplaza por el nombre del theme. También podemos cambiar el lenguaje de los textos mostrados, generar traducciones personalizadas y modificar el css de las distintas instancias del script.

Ver mas sobre personalización

Extraer números de una Cadena en php

Un simple código php para sacar o extraer solo los números de una determinada cadena. Utilizamos ereg_replace y una simple expresión regular [^0-9] para extraer solo los números enteros de la cadena:

$cadena = «¿El 1 y el número 2 con menores que el 3?»;

$resultado = ereg_replace(«[^0-9]», «», $cadena);

echo $resultado; // resultado: 123

Publicado en php

Recorta las palabras de una cadela de texto poniendo «…» al final en php

//recorta las palabras de una cadela de texto y elimina los posibles tags html
//devuelve las primeras $lng palabras de $txt, concatenando ‘…’ al final si las palabras de $txt son superiores a $lng
function longitud_por_palabras($txt,$lng){

$txt=strip_tags($txt);

$palabras=split(» «,$txt);

$txt=»»;
$i=0;

while ($palabras[$i]!=»» && $i<$lng){

$txt=$txt.$palabras[$i].» «;
$i++;

}

if ($i==$lng)
$txt=$txt.»…»;

return($txt);
}

Publicado en php

Convertir cadena mayúsculas y más en Php

Para convertir a mayúsculas una cadena:

<?php
$str 
"Mary Had A Little Lamb and She LOVED It So";
$str strtoupper($str);
echo 
$str// muestra: MARY HAD A LITTLE LAMB AND SHE LOVED IT SO
?>

Ver también:

  • strtolower() – Convierte una cadena a minúsculas
  • ucfirst() – Convierte el primer caracter de una cadena a mayúsculas
  • ucwords() – Convierte a mayúsculas el primer caracter de cada palabra en una cadena
  • mb_strtoupper() – Convierte un string en mayúsculas
Publicado en php

Almacena las direcciones IP como UNSIGNED INT

Muchos programadores crearían un campo VARCHAR(15) sin darse cuenta de que pueden almacenar las direcciones IP como números enteros. Cuando usas un INT sólo haces uso de 4 bytes en la memoria, y cuenta además con un tamaño fijo en la tabla.

Pero hay que asegurarse de que la columna sea UNSIGNED INT (entero sin signo) porque las direcciones IP hacen uso de todo el rango de 32 bits sin signo.

En tus consultas puedes utilizar la función INET_ATON() para convertir una dirección IP en entero, e INET_NTOA() para hacer lo contrario. También existen funciones parecidas en PHP llamadas ip2long() y long2ip().

  1. $r = «UPDATE users SET ip = INET_ATON(‘{$_SERVER[‘REMOTE_ADDR’]}’) WHERE user_id = $user_id»;