ID: 36198 User updated by: thomas at pixtur dot de Reported By: thomas at pixtur dot de -Status: Bogus +Status: Closed Bug Type: Documentation problem Operating System: Debian Server PHP Version: 5.1.2 New Comment:
Thanks [EMAIL PROTECTED] Good hint. After trying a little bit I discoverd, that writing the regex as... ereg("\{\?([a-z_]*)\}(.*)",$rest, $matches) ... escapting the {} brackets fixes the problem. This also clarifies my problem: {} is the length parameter for the "preceding" match, which does not exists. So this was my fault. It's still strange that different PHP-installations behave differently... thanks for your help Previous Comments: ------------------------------------------------------------------------ [2006-01-30 15:42:10] [EMAIL PROTECTED] \ is special character in PHP strings. If you want to match ?, write it as "\\?'. ------------------------------------------------------------------------ [2006-01-29 13:08:49] thomas at pixtur dot de As state in the report, I cannot personally reproduce the code. It was reported by a user (http://www.streber-pm.org/phpBB2/viewtopic.php?p=234#234). Since googling this message gives a lot of broken php-pages but not explanation what so ever, I posted this bug to "Documantation Problem". I need a explanation of what the error-message is trying to tell me, so I can adjust my code. tom ------------------------------------------------------------------------ [2006-01-29 12:39:49] [EMAIL PROTECTED] Thank you for this bug report. To properly diagnose the problem, we need a short but complete example script to be able to reproduce this bug ourselves. A proper reproducing script starts with <?php and ends with ?>, is max. 10-20 lines long and does not require any external resources such as databases, etc. If possible, make the script source available online and provide an URL to it here. Try to avoid embedding huge scripts into the report. ------------------------------------------------------------------------ [2006-01-29 12:37:42] thomas at pixtur dot de Description: ------------ The warning only occurs on very few plattforms. I probably could fix it in my code, if I could only understand it's meaning. If you google for the error-message you will find tons of broken pages with the same error but no explanation. Reproduce code: --------------- /* NOT reproducable */ class ListBlockColHtml extends ListBlockCol { function render_tr(&$obj, $style="") { if(!isset($obj) || !is_object($obj)) { trigger_error("ListBlockColHtml->render_tr() called without valid object",E_USER_WARNING); return; } $key= $this->key; $format= $this->format; $rest=$this->format; $style= $this->style ? "class='$this->style'" : ''; while( ereg("{\?([a-z_]*)}(.*)",$rest, $matches) ) { ### causes error $key=$matches[1]; $rest=$matches[2]; $value= isset($obj->$key) ? $obj->$key : "??$key"; $format=ereg_replace("{\?$key}",$value,$format); } print "<td $style>$format</td>"; } } ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=36198&edit=1