D'une façon générale, pour tester rapidement du php en ligne en fonction de la version, il y a :
https://3v4l.org/
J'avais une fonction pour tester la validité d'un mail:
function IsEmail($email)
{
// $pattern = "^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,7}$";
// return (preg_match($pattern,$email)) ? true : false;
};
Elle est remplacée par :
function IsEmail($email)
{
if (!preg_match("/^[[:alnum:]][a-z0-9_.-]*@[a-z0-9.-]+\.[a-z]{2,7}$/i", $email)) {
return false;
} else {
return true;
}
};
voir https://www.skyminds.net/php-5-3-resoudre-lerreur-function-eregi-is-deprecated
PHP Notice: Undefined offset...
variable non définie en général... On peut utiliser les propriétés de php7 pour condenser un peu (voir https://wiki.php.net/rfc/isset_ternary ).
Par exemple :
echo $truc[1]
peut être remplacé par
var_dump ($truc[1]??'')
Message Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; BD has a deprecated constructor
voir aussi : http://php.net/manual/fr/migration70.deprecated.php
pour passer à dbo:
voir https://openclassrooms.com/forum/sujet/fetch-peut-remplacer-mysqlfetchassoc-32083 J'utilisais une classe basée sur des mysql_query etc... du coup, pour remplacer tout ca, ca donne: ajouter qque part :
puis remplacer //if ($resultat = $bd->execRequete ($req)) { //while ($liste = $bd->objetSuivant ($resultat)) par if ($resultat = $bd->query ($req, PDO::FETCH_OBJ)) { foreach ($resultat as $liste) { ...} } ou bien if ($resultat = $bd->query ($req, PDO::FETCH_OBJ)) { while ($liste = $resultat->fetch(/*PDO::FETCH_OBJ*/)) {
...} } remplacer // $num = mysql_num_rows($resultat); par $num = $resultat->rowCount();