Ereg function ombouwen, advies
Ik ben een testsite op een andere host aan het opzetten, echter deze maakt gebruik van php versie 5.3 of hoger en krijg ik dus ereg foutmeldingen.
Dacht deze te vervangen door preg_match, maar dit is iets te eenvoudig geloof ik.
Graag advies,
Johan.
elseif ($depth >= $min_depth && ereg($mask, $file)) {
$filename = "$dir/$file";
$basename = basename($file);
$name = substr($basename, 0, strrpos($basename, '.'));
$files[$$key] = new stdClass();
$files[$$key]->filename = $filename;
$files[$$key]->basename = $basename;
$files[$$key]->name = $name;
if ($callback) {
$callback($filename);
}
}
}
}
closedir($handle);
en wat zijn de details van "ereg($mask, $file)"?
www.heegsma.nl/file.zip . Tevens zijn alle errors te zien door naar www.heegsma.nl te gaan.
probleem bestanden zijn te downloaden op Gewijzigd op 09/04/2012 08:53:53 door Johan private
of je maakt er een studie van:
http://php.net/manual/en/book.pcre.php
Gewijzigd op 09/04/2012 10:05:18 door Noppes Homeland
Welke foutmelding krijg je precies? (tip: kom hier zelf mee, PHP doet zijn best om jou goed te informeren, informeer mij ook goed) :)
Quote:
PHP doet zijn best om jou goed te informeren
Nou... dat vind ik wel een discussiepunt
En daarnaast:
Quote:
Tevens zijn alle errors te zien door naar www.heegsma.nl te gaan.
Lijkt me duidelijk waar je de errors kan vinden.
Mijn tip is om Drupal 7 te installeren. Ik denk, of hoop eigenlijk, dat je nu Drupal 6 hebt? Dan is de overstap naar Drupal 7 makkelijk en het voordeel is dat dan al deze dingen al aangepast zijn. Ook is het stukken beter en veiliger.
De enige errors die ik trouwens zie zijn van functies van Drupal en niet van preg_match.
Als ik het goed is moet ik eerst van 5.20 naar de laatste 5x versie (5.23) dan een upgrade doen naar 6x (laatste versie) en dan de upgrade naar 7x. Dan uitzoeken wat niet werkende modules zijn en welke ik hierdan voor kan gebruiken.
error_reporting wat vriendelijker in te stellen:
Dit zorgt ervoor dat je alle errors ziet, behalve de deprecated errors.
Overigens horen er in een productie omgeving nooit errors getoond te worden. Gebruik dan altijd:
Dit laat geen één error meer zien.
Wat je ook kan doen is de errors in productie mode loggen in een error file. Dit doe je met error_log:
Dit logt alle errors in de /logs/php_errors.log file.
Let op!! Alle technieken boven de lijn zijn alleen tijdelijke oplossingen, gebruik dit niet langer dan nodig!
PS: Een mailtje sturen is niet nodig, plaats het geen je wilt zeggen gewoon hier. Dat is meer dan genoeg.
Je wilt dus tijdelijk de eregi errors verwijderen. Dan kun je het even heel fout doen door Dit zorgt ervoor dat je alle errors ziet, behalve de deprecated errors.
Overigens horen er in een productie omgeving nooit errors getoond te worden. Gebruik dan altijd:
Dit laat geen één error meer zien.
Wat je ook kan doen is de errors in productie mode loggen in een error file. Dit doe je met error_log:
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?php
error_reporting(E_ALL);
function production_error_handler($errno, $errstr, $errfile, $errline) {
$message = sprintf('%s(%d) [%s] %s >> %s', $errfile, $errline, date('H:i:s'), $errno, $errstr);
error_log($message, 3, '/logs/php_errors.log');
}
set_error_handler('production_error_handler');
?>
error_reporting(E_ALL);
function production_error_handler($errno, $errstr, $errfile, $errline) {
$message = sprintf('%s(%d) [%s] %s >> %s', $errfile, $errline, date('H:i:s'), $errno, $errstr);
error_log($message, 3, '/logs/php_errors.log');
}
set_error_handler('production_error_handler');
?>
Dit logt alle errors in de /logs/php_errors.log file.
Let op!! Alle technieken boven de lijn zijn alleen tijdelijke oplossingen, gebruik dit niet langer dan nodig!
PS: Een mailtje sturen is niet nodig, plaats het geen je wilt zeggen gewoon hier. Dat is meer dan genoeg.
Bedankt voor je reactie, als ik de foutmeldingen onderdruk zoals je zegt, dan zien de de scripts (upgrade scripts van Drupal) toch nog steeds dat er headers al verstuurd zijn.
Denk dat ik voor de 3 of 4 meldingen een script aanpassing moet doen om de fout er echt uit te halen, zodat update en install scripts er echt geen last van hebben. Alleen vraag mij even af hoe ik ze exact moet ombouwen daarvoor zit ik te weinig in het bouwen van websites en php.