diff options
author | rub <rub@piwigo.org> | 2008-02-16 13:27:50 +0000 |
---|---|---|
committer | rub <rub@piwigo.org> | 2008-02-16 13:27:50 +0000 |
commit | 158ab645e7d7c392847daead711e321b55da5eae (patch) | |
tree | eca96868ae461b4668108f14a978f96c770e4238 /include/functions_xml.inc.php | |
parent | 8b69393986926fc37c510ce9d9450ea05d410d77 (diff) |
Resolved issue 0000712: PWG-ERROR-VERSION on remote synchronization
Merge branch-1_7 2211:2212 into BSF
git-svn-id: http://piwigo.org/svn/trunk@2213 68402e56-0260-453c-a942-63ccdbb3a9ee
Diffstat (limited to 'include/functions_xml.inc.php')
-rw-r--r-- | include/functions_xml.inc.php | 44 |
1 files changed, 36 insertions, 8 deletions
diff --git a/include/functions_xml.inc.php b/include/functions_xml.inc.php index 7c388d292..ba0f11737 100644 --- a/include/functions_xml.inc.php +++ b/include/functions_xml.inc.php @@ -2,10 +2,10 @@ // +-----------------------------------------------------------------------+ // | PhpWebGallery - a PHP based picture gallery | // | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net | -// | Copyright (C) 2003-2005 PhpWebGallery Team - http://phpwebgallery.net | +// | Copyright (C) 2003-2008 PhpWebGallery Team - http://phpwebgallery.net | // +-----------------------------------------------------------------------+ // | branch : BSF (Best So Far) -// | file : $RCSfile$ +// | file : $Id$ // | last update : $Date$ // | last modifier : $Author$ // | revision : $Revision$ @@ -65,7 +65,7 @@ function encodeAttribute( $attribute, $value ) { return $attribute.'="'.htmlspecialchars($value, ENT_QUOTES).'" '; } - + // The function getChild returns the first child // exemple : getChild( "<table><tr>XXX</tr><tr>YYY</tr></table>", "tr" ) // returns "<tr>XXX</tr>" @@ -74,8 +74,19 @@ function getChild( $document, $node ) $regex = '/<'.$node.'(\s+'.ATT_REG.'="'.VAL_REG.'")*'; $regex.= '(\s*\/>|>.*<\/'.$node.'>)/U'; - preg_match( $regex, $document, $out ); - return $out[0]; + if + ( + preg_match( $regex, $document, $out ) + or + preg_last_error() == PREG_NO_ERROR + ) + { + return $out[0]; + } + else + { + die('getChild: error ['.preg_last_error().'] with preg_match function'); + } } // getChildren returns a list of the children identified by the $node @@ -89,14 +100,31 @@ function getChildren( $document, $node ) $regex = '/<'.$node.'(\s+'.ATT_REG.'="'.VAL_REG.'")*'; $regex.= '(\s*\/>|>.*<\/'.$node.'>)/U'; - preg_match_all( $regex, $document, $out ); - return $out[0]; + if + ( + preg_match_all( $regex, $document, $out ) + or + preg_last_error() == PREG_NO_ERROR + ) + { + return $out[0]; + } + else + { + die('getChild: error ['.preg_last_error().'] with preg_match_all function'); + } } - + // get_CodeXML places the content of a text file in a PHP variable and // return it. If the file can't be opened, returns false. function getXmlCode( $filename ) { + if (function_exists('ini_set')) + { + // limit must be growed with php5 and "big" listing file + ini_set("pcre.backtrack_limit", pow(2, 32)); + } + $file = fopen( $filename, 'r' ); if ( !$file ) { |