downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | conferences | my php.net

search for in the

preg_match_all> <preg_grep
[edit] Last updated: Fri, 07 Jun 2013

view this page in

preg_last_error

(PHP 5 >= 5.2.0)

preg_last_errorDevuelve el código de error de la última ejecución de expresión regular PCRE

Descripción

int preg_last_error ( void )

Devuelve el código de error de la última ejecución de expresión regular PCRE.

Ejemplo #1 Ejemplo de preg_last_error()

<?php

preg_match
('/(?:\D+|<\d+>)*[!?]/''foobar foobar foobar');

if (
preg_last_error() == PREG_BACKTRACK_LIMIT_ERROR) {
    print 
'¡El límite de marcha atrás se agotó!';
}

?>

El resultado del ejemplo sería:

Backtrack limit was exhausted!

Valores devueltos

Devuelve una de las siguientes constantes (explicadas en su propia página):

  • PREG_NO_ERROR
  • PREG_INTERNAL_ERROR
  • PREG_BACKTRACK_LIMIT_ERROR (vea también pcre.backtrack_limit)
  • PREG_RECURSION_LIMIT_ERROR (vea también pcre.recursion_limit)
  • PREG_BAD_UTF8_ERROR
  • PREG_BAD_UTF8_OFFSET_ERROR (desde PHP 5.3.0)



preg_match_all> <preg_grep
[edit] Last updated: Fri, 07 Jun 2013
 
add a note add a note User Contributed Notes preg_last_error - [3 notes]
up
1
andre at koethur dot de
23 hours ago
Here is a more advanced function to convert an error code to text:

<?php

function preg_errtxt($errcode)
{
    static
$errtext;

    if (!isset(
$errtxt))
    {
       
$errtext = array();
       
$constants = get_defined_constants(true);
        foreach (
$constants['pcre'] as $c => $n) if (preg_match('/_ERROR$/', $c)) $errtext[$n] = $c;
    }

    return
array_key_exists($errcode, $errtext)? $errtext[$errcode] : NULL;
}

?>
up
1
johan at bluemoonit dot net
3 years ago
The above function pcre_error_deocde [sic] is not correct - not all of the used constants are errors constants. For example, when the error is actually PREG_BAD_UTF8_ERROR, the function outputs the text for PREG_SPLIT_OFFSET_CAPTURE.
up
-1
Omer
2 years ago
here's the code to check for all errors
<?php
if (preg_last_error() == PREG_NO_ERROR) {
    print
'There is no error.';
}
else if (
preg_last_error() == PREG_INTERNAL_ERROR) {
    print
'There is an internal error!';
}
else if (
preg_last_error() == PREG_BACKTRACK_LIMIT_ERROR) {
    print
'Backtrack limit was exhausted!';
}
else if (
preg_last_error() == PREG_RECURSION_LIMIT_ERROR) {
    print
'Recursion limit was exhausted!';
}
else if (
preg_last_error() == PREG_BAD_UTF8_ERROR) {
    print
'Bad UTF8 error!';
}
else if (
preg_last_error() == PREG_BAD_UTF8_ERROR) {
    print
'Bad UTF8 offset error!';
}
?>

 
show source | credits | stats | sitemap | contact | advertising | mirror sites