Ereg function ombouwen, advies

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Johan private

Johan private

09/04/2012 00:35:19
Quote Anchor link
Allen,

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);
 
PHP hulp

PHP hulp

16/04/2024 18:34:20
 

09/04/2012 01:23:30
Quote Anchor link
en wat zijn de details van "ereg($mask, $file)"?
 
Johan private

Johan private

09/04/2012 08:53:06
Quote Anchor link
probleem bestanden zijn te downloaden op www.heegsma.nl/file.zip . Tevens zijn alle errors te zien door naar www.heegsma.nl te gaan.
Gewijzigd op 09/04/2012 08:53:53 door Johan private
 
Noppes Homeland

Noppes Homeland

09/04/2012 10:04:00
Quote Anchor link
Dan download je maar de drupal versie die geschikt is voor 5.3

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
 
Bas Cost Budde

Bas Cost Budde

09/04/2012 10:05:32
Quote Anchor link
je zegt "vervangen"; ereg werkt ietsje anders dan preg, met als voornaamste verschil dat je bij preg ook pattern delimiters nodig hebt. Heb je dat ook aangepast?

Welke foutmelding krijg je precies? (tip: kom hier zelf mee, PHP doet zijn best om jou goed te informeren, informeer mij ook goed) :)
 
Wouter J

Wouter J

09/04/2012 10:18:59
Quote Anchor link
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.
 
Johan private

Johan private

09/04/2012 12:05:41
Quote Anchor link
Het is de bedoeling om van Drupal 5.20 naar Drupal 7 te gaan, alleen wil ik dat niet direct op een productiesite doen, vandaar dat ik eerst een testsite aan het opzetten ben.

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.
 
Wouter J

Wouter J

09/04/2012 12:21:31
Quote Anchor link
Je wilt dus tijdelijk de eregi errors verwijderen. Dan kun je het even heel fout doen door error_reporting wat vriendelijker in te stellen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
error_reporting(E_ALL ^ E_DEPRECATED);
?>

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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
error_reporting(0);
?>

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)
PHP script in nieuw venster Selecteer het PHP script
1
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');
?>

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.
 
Johan private

Johan private

09/04/2012 12:55:57
Quote Anchor link
Wouter,

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.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.