Encontrar Tarjetas de Crédito en textos

  • Autor Autor Prospero
  • Fecha de inicio Fecha de inicio
Prospero

Prospero

Eta
Verificación en dos pasos activada
Hola amigos, estaba estudiando el
explode(PHP_EOL, $str);
y resulta que quiero encontrar tarjetas de credito dentro de textos muy grandes donde incluyen saltos de lineas. no se ni como empezar.

$text = "Hola mando aqui
5522893138727330
texto5522892631323134
5522890156083513
5522896873425184Para lo demas existe Mastercard
esa5522894675210151
5522890024460588
5522896132247007Hermosa Numeracion
5522893468581752,4720880463325312,4720880641620584,4720880778555876,4720881054138668,4720887274520544,4720884511441550
'4720885165010344'
4720888054407225|es una visa
Adivina quien es 5522891873087886
5522893414775185
para que puedan ver";

adjunto un ejemplo. use un generador para crear las tarjetas, como hago para obtener todas las tarjetas en un array?
 
averigua como funciona preg_match_all y me imagino que es una de las mejores formas para conseguir lo que quieres. y tendrias que eliminar esos saltos de linea.
 
Si los dígitos de la tarjeta son de 15-16, entonces puedes usar esto:
PHP:
$subject = "String con las tarjetas de credito"
preg_match_all('/(?:[0-9]{15,16})+/s', $subject, $result, PREG_PATTERN_ORDER);
$result = $result[0];

print_r($result);

Esto te sacará un array con todos los números encontrados que tengan una continuidad de 15 a 16 dígitos
 
Si los dígitos de la tarjeta son de 15-16, entonces puedes usar esto:
PHP:
$subject = "String con las tarjetas de credito"
preg_match_all('/(?:[0-9]{15,16})+/s', $subject, $result, PREG_PATTERN_ORDER);
$result = $result[0];

print_r($result);

Esto te sacará un array con todos los números encontrados que tengan una continuidad de 15 a 16 dígitos
funciona perfecto! gracias!
 
Atrás
Arriba