Hello, pour un script de forum (PunBB), la fonction create_function()
encore valable sous php 7.1 n'est plus valable en passant à php 7.2.
Par quoi faut-il la remplacer ?
Hello, pour un script de forum (PunBB), la fonction create_function()
encore valable sous php 7.1 n'est plus valable en passant à php 7.2.
Par quoi faut-il la remplacer ?
Hello, pour un script de forum (PunBB), la fonction create_function()
encore valable sous php 7.1 n'est plus valable en passant à php 7.2.
Par quoi faut-il la remplacer ?
Hello, pour un script de forum (PunBB), la fonction create_function()
encore valable sous php 7.1 n'est plus valable en passant à php 7.2.
Par quoi faut-il la remplacer ?
$temp = preg_replace_callback($re_list, create_function('$matches', 'return preparse_list_tag($matches[2], $matches[1]);'), $text);
$temp = preg_replace_callback($re_list, function($matches) { return preparse_list_tag($matches[2], $matches[1]); }, $text);
$content = preg_replace_callback($re_list, create_function('$matches', 'return handle_list_tag($matches[2], $matches[1]);'), $content);
$content = preg_replace_callback($re_list, function($matches) { return handle_list_tag($matches[2], $matches[1]); }, $content);
$text = preg_replace_callback('%[quote=("|'|"|'|)([^rn]*?)1]%s', create_function('$matches', 'global $lang_common; return "</p><div class="quotebox"><cite>".str_replace(array('[', '"'), array('[', '"'), $matches[2])." ".$lang_common['wrote']."</cite><blockquote><div><p>";'), $text);
$text = preg_replace_callback('%[quote=("|'|"|'|)([^rn]*?)1]%s', function($matches) use ($lang_common) { return '</p><div class="quotebox"><cite>'.str_replace(array('[', '"'), array('[', '"'), $matches[2])." {$lang_common['wrote']}</cite><blockquote><div><p>"; }, $text);
$text = preg_replace_callback($pattern_callback[$i], create_function('$matches', 'return '.$replace_callback[$i].';'), $text);
$text = preg_replace_callback($pattern_callback[$i], $replace_callback[$i], $text);
$replace_callback[] = 'handle_url_tag($matches[1])';
$replace_callback[] = 'handle_url_tag($matches[1], $matches[2])';
$replace[] = '<a href="mailto:$1">$1</a>';
$replace[] = '<a href="mailto:$1">$2</a>';
$replace_callback[] = 'handle_url_tag(''.get_base_url(true).'/viewtopic.php?id='.$matches[1])';
$replace_callback[] = 'handle_url_tag(''.get_base_url(true).'/viewtopic.php?id='.$matches[1], $matches[2])';
$replace_callback[] = 'handle_url_tag(''.get_base_url(true).'/viewtopic.php?pid='.$matches[1].'#p'.$matches[1])';
$replace_callback[] = 'handle_url_tag(''.get_base_url(true).'/viewtopic.php?pid='.$matches[1].'#p'.$matches[1], $matches[2])';
$replace_callback[] = 'handle_url_tag(''.get_base_url(true).'/viewforum.php?id='.$matches[1])';
$replace_callback[] = 'handle_url_tag(''.get_base_url(true).'/viewforum.php?id='.$matches[1], $matches[2])';
$replace_callback[] = 'handle_url_tag(''.get_base_url(true).'/profile.php?id='.$matches[1])';
$replace_callback[] = 'handle_url_tag(''.get_base_url(true).'/profile.php?id='.$matches[1], $matches[2])';
$replace_callback[] = function($matches) { return handle_url_tag($matches[1]); };
$replace_callback[] = function($matches) { return handle_url_tag($matches[1], $matches[2]); };
$replace[] = '<a href="mailto:$1">$1</a>';
$replace[] = '<a href="mailto:$1">$2</a>';
$replace_callback[] = function($matches) { return handle_url_tag(get_base_url(true).'/viewtopic.php?id='.$matches[1]); };
$replace_callback[] = function($matches) { return handle_url_tag(get_base_url(true).'/viewtopic.php?id='.$matches[1], $matches[2]); };
$replace_callback[] = function($matches) { return handle_url_tag(get_base_url(true).'/viewtopic.php?pid='.$matches[1].'#p'.$matches[1]); };
$replace_callback[] = function($matches) { return handle_url_tag(get_base_url(true).'/viewtopic.php?pid='.$matches[1].'#p'.$matches[1], $matches[2]); };
$replace_callback[] = function($matches) { return handle_url_tag(get_base_url(true).'/viewforum.php?id='.$matches[1]); };
$replace_callback[] = function($matches) { return handle_url_tag(get_base_url(true).'/viewforum.php?id='.$matches[1], $matches[2]); };
$replace_callback[] = function($matches) { return handle_url_tag(get_base_url(true).'/profile.php?id='.$matches[1]); };
$replace_callback[] = function($matches) { return handle_url_tag(get_base_url(true).'/profile.php?id='.$matches[1], $matches[2]); };
Hello, pour un script de forum (PunBB), la fonction create_function()
encore valable sous php 7.1 n'est plus valable en passant à php 7.2.
Par quoi faut-il la remplacer ?
$temp = preg_replace_callback($re_list, create_function('$matches', 'return preparse_list_tag($matches[2], $matches[1]);'), $text);
$temp = preg_replace_callback($re_list, function($matches) { return preparse_list_tag($matches[2], $matches[1]); }, $text);
$content = preg_replace_callback($re_list, create_function('$matches', 'return handle_list_tag($matches[2], $matches[1]);'), $content);
$content = preg_replace_callback($re_list, function($matches) { return handle_list_tag($matches[2], $matches[1]); }, $content);
$text = preg_replace_callback('%[quote=("|'|"|'|)([^rn]*?)\1]%s', create_function('$matches', 'global $lang_common; return "</p><div class="quotebox"><cite>".str_replace(array('[', '\"'), array('[', '"'), $matches[2])." ".$lang_common['wrote']."</cite><blockquote><div><p>";'), $text);
$text = preg_replace_callback('%[quote=("|'|"|'|)([^rn]*?)\1]%s', function($matches) use ($lang_common) { return '</p><div class="quotebox"><cite>'.str_replace(array('[', '\"'), array('[', '"'), $matches[2])." {$lang_common['wrote']}</cite><blockquote><div><p>"; }, $text);
$text = preg_replace_callback($pattern_callback[$i], create_function('$matches', 'return '.$replace_callback[$i].';'), $text);
$text = preg_replace_callback($pattern_callback[$i], $replace_callback[$i], $text);
$replace_callback[] = 'handle_url_tag($matches[1])';
$replace_callback[] = 'handle_url_tag($matches[1], $matches[2])';
$replace[] = '<a href="mailto:$1">$1</a>';
$replace[] = '<a href="mailto:$1">$2</a>';
$replace_callback[] = 'handle_url_tag(''.get_base_url(true).'/viewtopic.php?id='.$matches[1])';
$replace_callback[] = 'handle_url_tag(''.get_base_url(true).'/viewtopic.php?id='.$matches[1], $matches[2])';
$replace_callback[] = 'handle_url_tag(''.get_base_url(true).'/viewtopic.php?pid='.$matches[1].'#p'.$matches[1])';
$replace_callback[] = 'handle_url_tag(''.get_base_url(true).'/viewtopic.php?pid='.$matches[1].'#p'.$matches[1], $matches[2])';
$replace_callback[] = 'handle_url_tag(''.get_base_url(true).'/viewforum.php?id='.$matches[1])';
$replace_callback[] = 'handle_url_tag(''.get_base_url(true).'/viewforum.php?id='.$matches[1], $matches[2])';
$replace_callback[] = 'handle_url_tag(''.get_base_url(true).'/profile.php?id='.$matches[1])';
$replace_callback[] = 'handle_url_tag(''.get_base_url(true).'/profile.php?id='.$matches[1], $matches[2])';
$replace_callback[] = function($matches) { return handle_url_tag($matches[1]); };
$replace_callback[] = function($matches) { return handle_url_tag($matches[1], $matches[2]); };
$replace[] = '<a href="mailto:$1">$1</a>';
$replace[] = '<a href="mailto:$1">$2</a>';
$replace_callback[] = function($matches) { return handle_url_tag(get_base_url(true).'/viewtopic.php?id='.$matches[1]); };
$replace_callback[] = function($matches) { return handle_url_tag(get_base_url(true).'/viewtopic.php?id='.$matches[1], $matches[2]); };
$replace_callback[] = function($matches) { return handle_url_tag(get_base_url(true).'/viewtopic.php?pid='.$matches[1].'#p'.$matches[1]); };
$replace_callback[] = function($matches) { return handle_url_tag(get_base_url(true).'/viewtopic.php?pid='.$matches[1].'#p'.$matches[1], $matches[2]); };
$replace_callback[] = function($matches) { return handle_url_tag(get_base_url(true).'/viewforum.php?id='.$matches[1]); };
$replace_callback[] = function($matches) { return handle_url_tag(get_base_url(true).'/viewforum.php?id='.$matches[1], $matches[2]); };
$replace_callback[] = function($matches) { return handle_url_tag(get_base_url(true).'/profile.php?id='.$matches[1]); };
$replace_callback[] = function($matches) { return handle_url_tag(get_base_url(true).'/profile.php?id='.$matches[1], $matches[2]); };
Hello, pour un script de forum (PunBB), la fonction create_function()
encore valable sous php 7.1 n'est plus valable en passant à php 7.2.
Par quoi faut-il la remplacer ?
$temp = preg_replace_callback($re_list, create_function('$matches', 'return preparse_list_tag($matches[2], $matches[1]);'), $text);
$temp = preg_replace_callback($re_list, function($matches) { return preparse_list_tag($matches[2], $matches[1]); }, $text);
$content = preg_replace_callback($re_list, create_function('$matches', 'return handle_list_tag($matches[2], $matches[1]);'), $content);
$content = preg_replace_callback($re_list, function($matches) { return handle_list_tag($matches[2], $matches[1]); }, $content);
$text = preg_replace_callback('%[quote=("|'|"|'|)([^rn]*?)1]%s', create_function('$matches', 'global $lang_common; return "</p><div class="quotebox"><cite>".str_replace(array('[', '"'), array('[', '"'), $matches[2])." ".$lang_common['wrote']."</cite><blockquote><div><p>";'), $text);
$text = preg_replace_callback('%[quote=("|'|"|'|)([^rn]*?)1]%s', function($matches) use ($lang_common) { return '</p><div class="quotebox"><cite>'.str_replace(array('[', '"'), array('[', '"'), $matches[2])." {$lang_common['wrote']}</cite><blockquote><div><p>"; }, $text);
$text = preg_replace_callback($pattern_callback[$i], create_function('$matches', 'return '.$replace_callback[$i].';'), $text);
$text = preg_replace_callback($pattern_callback[$i], $replace_callback[$i], $text);
$replace_callback[] = 'handle_url_tag($matches[1])';
$replace_callback[] = 'handle_url_tag($matches[1], $matches[2])';
$replace[] = '<a href="mailto:$1">$1</a>';
$replace[] = '<a href="mailto:$1">$2</a>';
$replace_callback[] = 'handle_url_tag(''.get_base_url(true).'/viewtopic.php?id='.$matches[1])';
$replace_callback[] = 'handle_url_tag(''.get_base_url(true).'/viewtopic.php?id='.$matches[1], $matches[2])';
$replace_callback[] = 'handle_url_tag(''.get_base_url(true).'/viewtopic.php?pid='.$matches[1].'#p'.$matches[1])';
$replace_callback[] = 'handle_url_tag(''.get_base_url(true).'/viewtopic.php?pid='.$matches[1].'#p'.$matches[1], $matches[2])';
$replace_callback[] = 'handle_url_tag(''.get_base_url(true).'/viewforum.php?id='.$matches[1])';
$replace_callback[] = 'handle_url_tag(''.get_base_url(true).'/viewforum.php?id='.$matches[1], $matches[2])';
$replace_callback[] = 'handle_url_tag(''.get_base_url(true).'/profile.php?id='.$matches[1])';
$replace_callback[] = 'handle_url_tag(''.get_base_url(true).'/profile.php?id='.$matches[1], $matches[2])';
$replace_callback[] = function($matches) { return handle_url_tag($matches[1]); };
$replace_callback[] = function($matches) { return handle_url_tag($matches[1], $matches[2]); };
$replace[] = '<a href="mailto:$1">$1</a>';
$replace[] = '<a href="mailto:$1">$2</a>';
$replace_callback[] = function($matches) { return handle_url_tag(get_base_url(true).'/viewtopic.php?id='.$matches[1]); };
$replace_callback[] = function($matches) { return handle_url_tag(get_base_url(true).'/viewtopic.php?id='.$matches[1], $matches[2]); };
$replace_callback[] = function($matches) { return handle_url_tag(get_base_url(true).'/viewtopic.php?pid='.$matches[1].'#p'.$matches[1]); };
$replace_callback[] = function($matches) { return handle_url_tag(get_base_url(true).'/viewtopic.php?pid='.$matches[1].'#p'.$matches[1], $matches[2]); };
$replace_callback[] = function($matches) { return handle_url_tag(get_base_url(true).'/viewforum.php?id='.$matches[1]); };
$replace_callback[] = function($matches) { return handle_url_tag(get_base_url(true).'/viewforum.php?id='.$matches[1], $matches[2]); };
$replace_callback[] = function($matches) { return handle_url_tag(get_base_url(true).'/profile.php?id='.$matches[1]); };
$replace_callback[] = function($matches) { return handle_url_tag(get_base_url(true).'/profile.php?id='.$matches[1], $matches[2]); };
"Pierre www.aribaut.com" écrivait :Hello, pour un script de forum (PunBB), la fonction create_function()
encore valable sous php 7.1 n'est plus valable en passant à php 7.2.
Par quoi faut-il la remplacer ?
La meilleure manière de trouver une réponse ne serait-il pas d'aller
voir la documentation PHP ?
Par exemple :
http://php.net/manual/fr/function.create-function.php
puis ce qui est préconisé en remplacement :
http://php.net/manual/fr/functions.anonymous.php
Migration de PHP 7.1 vers 7.2
http://php.net/manual/fr/migration72.php
"Pierre www.aribaut.com" <pierre@zetrader.fr.invalid> écrivait :
Hello, pour un script de forum (PunBB), la fonction create_function()
encore valable sous php 7.1 n'est plus valable en passant à php 7.2.
Par quoi faut-il la remplacer ?
La meilleure manière de trouver une réponse ne serait-il pas d'aller
voir la documentation PHP ?
Par exemple :
http://php.net/manual/fr/function.create-function.php
puis ce qui est préconisé en remplacement :
http://php.net/manual/fr/functions.anonymous.php
Migration de PHP 7.1 vers 7.2
http://php.net/manual/fr/migration72.php
"Pierre www.aribaut.com" écrivait :Hello, pour un script de forum (PunBB), la fonction create_function()
encore valable sous php 7.1 n'est plus valable en passant à php 7.2.
Par quoi faut-il la remplacer ?
La meilleure manière de trouver une réponse ne serait-il pas d'aller
voir la documentation PHP ?
Par exemple :
http://php.net/manual/fr/function.create-function.php
puis ce qui est préconisé en remplacement :
http://php.net/manual/fr/functions.anonymous.php
Migration de PHP 7.1 vers 7.2
http://php.net/manual/fr/migration72.php
"Pierre www.aribaut.com" écrivait :Hello, pour un script de forum (PunBB), la fonction create_function()
encore valable sous php 7.1 n'est plus valable en passant à php 7.2.
Par quoi faut-il la remplacer ?
Bonjour,
Quelques exemples provenant de FluxBB (Très similaire à PunBB), par
exemple dans le fichier parser.php.$temp = preg_replace_callback($re_list, create_function('$matches', 'return preparse_list_tag($matches[2], $matches[1]);'), $text);
est remplacé par :$temp = preg_replace_callback($re_list, function($matches) { return preparse_list_tag($matches[2], $matches[1]); }, $text);$content = preg_replace_callback($re_list, create_function('$matches', 'return handle_list_tag($matches[2], $matches[1]);'), $content);
est remplacé par :$content = preg_replace_callback($re_list, function($matches) { return handle_list_tag($matches[2], $matches[1]); }, $content);$text = preg_replace_callback('%[quote=("|'|"|'|)([^rn]*?)1]%s', create_function('$matches', 'global $lang_common; return "</p><div class="quotebox"><cite>".str_replace(array('[', '"'), array('[', '"'), $matches[2])." ".$lang_common['wrote']."</cite><blockquote><div><p>";'), $text);
est remplacé par :$text = preg_replace_callback('%[quote=("|'|"|'|)([^rn]*?)1]%s', function($matches) use ($lang_common) { return '</p><div class="quotebox"><cite>'.str_replace(array('[', '"'), array('[', '"'), $matches[2])." {$lang_common['wrote']}</cite><blockquote><div><p>"; }, $text);
Où ça devient un peu plus compliqué, c'est lorsque la fonction callback
est effectuée sur des éléments de tableau, comme par la ligne$text = preg_replace_callback($pattern_callback[$i], create_function('$matches', 'return '.$replace_callback[$i].';'), $text);
qui est remplacée par :$text = preg_replace_callback($pattern_callback[$i], $replace_callback[$i], $text);
donc, ce seront les éléments du tableau $replace_callback[] qui
contiendront la fonction anonyme, par exemple :$replace_callback[] = 'handle_url_tag($matches[1])';
$replace_callback[] = 'handle_url_tag($matches[1], $matches[2])';
$replace[] = '<a href="mailto:$1">$1</a>';
$replace[] = '<a href="mailto:$1">$2</a>';
$replace_callback[] = 'handle_url_tag(''.get_base_url(true).'/viewtopic.php?id='.$matches[1])';
$replace_callback[] = 'handle_url_tag(''.get_base_url(true).'/viewtopic.php?id='.$matches[1], $matches[2])';
$replace_callback[] = 'handle_url_tag(''.get_base_url(true).'/viewtopic.php?pid='.$matches[1].'#p'.$matches[1])';
$replace_callback[] = 'handle_url_tag(''.get_base_url(true).'/viewtopic.php?pid='.$matches[1].'#p'.$matches[1], $matches[2])';
$replace_callback[] = 'handle_url_tag(''.get_base_url(true).'/viewforum.php?id='.$matches[1])';
$replace_callback[] = 'handle_url_tag(''.get_base_url(true).'/viewforum.php?id='.$matches[1], $matches[2])';
$replace_callback[] = 'handle_url_tag(''.get_base_url(true).'/profile.php?id='.$matches[1])';
$replace_callback[] = 'handle_url_tag(''.get_base_url(true).'/profile.php?id='.$matches[1], $matches[2])';
sera remplacé par :$replace_callback[] = function($matches) { return handle_url_tag($matches[1]); };
$replace_callback[] = function($matches) { return handle_url_tag($matches[1], $matches[2]); };
$replace[] = '<a href="mailto:$1">$1</a>';
$replace[] = '<a href="mailto:$1">$2</a>';
$replace_callback[] = function($matches) { return handle_url_tag(get_base_url(true).'/viewtopic.php?id='.$matches[1]); };
$replace_callback[] = function($matches) { return handle_url_tag(get_base_url(true).'/viewtopic.php?id='.$matches[1], $matches[2]); };
$replace_callback[] = function($matches) { return handle_url_tag(get_base_url(true).'/viewtopic.php?pid='.$matches[1].'#p'.$matches[1]); };
$replace_callback[] = function($matches) { return handle_url_tag(get_base_url(true).'/viewtopic.php?pid='.$matches[1].'#p'.$matches[1], $matches[2]); };
$replace_callback[] = function($matches) { return handle_url_tag(get_base_url(true).'/viewforum.php?id='.$matches[1]); };
$replace_callback[] = function($matches) { return handle_url_tag(get_base_url(true).'/viewforum.php?id='.$matches[1], $matches[2]); };
$replace_callback[] = function($matches) { return handle_url_tag(get_base_url(true).'/profile.php?id='.$matches[1]); };
$replace_callback[] = function($matches) { return handle_url_tag(get_base_url(true).'/profile.php?id='.$matches[1], $matches[2]); };
"Pierre www.aribaut.com" <pierre@zetrader.fr.invalid> écrivait :
Hello, pour un script de forum (PunBB), la fonction create_function()
encore valable sous php 7.1 n'est plus valable en passant à php 7.2.
Par quoi faut-il la remplacer ?
Bonjour,
Quelques exemples provenant de FluxBB (Très similaire à PunBB), par
exemple dans le fichier parser.php.
$temp = preg_replace_callback($re_list, create_function('$matches', 'return preparse_list_tag($matches[2], $matches[1]);'), $text);
est remplacé par :
$temp = preg_replace_callback($re_list, function($matches) { return preparse_list_tag($matches[2], $matches[1]); }, $text);
$content = preg_replace_callback($re_list, create_function('$matches', 'return handle_list_tag($matches[2], $matches[1]);'), $content);
est remplacé par :
$content = preg_replace_callback($re_list, function($matches) { return handle_list_tag($matches[2], $matches[1]); }, $content);
$text = preg_replace_callback('%[quote=("|'|"|'|)([^rn]*?)\1]%s', create_function('$matches', 'global $lang_common; return "</p><div class="quotebox"><cite>".str_replace(array('[', '\"'), array('[', '"'), $matches[2])." ".$lang_common['wrote']."</cite><blockquote><div><p>";'), $text);
est remplacé par :
$text = preg_replace_callback('%[quote=("|'|"|'|)([^rn]*?)\1]%s', function($matches) use ($lang_common) { return '</p><div class="quotebox"><cite>'.str_replace(array('[', '\"'), array('[', '"'), $matches[2])." {$lang_common['wrote']}</cite><blockquote><div><p>"; }, $text);
Où ça devient un peu plus compliqué, c'est lorsque la fonction callback
est effectuée sur des éléments de tableau, comme par la ligne
$text = preg_replace_callback($pattern_callback[$i], create_function('$matches', 'return '.$replace_callback[$i].';'), $text);
qui est remplacée par :
$text = preg_replace_callback($pattern_callback[$i], $replace_callback[$i], $text);
donc, ce seront les éléments du tableau $replace_callback[] qui
contiendront la fonction anonyme, par exemple :
$replace_callback[] = 'handle_url_tag($matches[1])';
$replace_callback[] = 'handle_url_tag($matches[1], $matches[2])';
$replace[] = '<a href="mailto:$1">$1</a>';
$replace[] = '<a href="mailto:$1">$2</a>';
$replace_callback[] = 'handle_url_tag(''.get_base_url(true).'/viewtopic.php?id='.$matches[1])';
$replace_callback[] = 'handle_url_tag(''.get_base_url(true).'/viewtopic.php?id='.$matches[1], $matches[2])';
$replace_callback[] = 'handle_url_tag(''.get_base_url(true).'/viewtopic.php?pid='.$matches[1].'#p'.$matches[1])';
$replace_callback[] = 'handle_url_tag(''.get_base_url(true).'/viewtopic.php?pid='.$matches[1].'#p'.$matches[1], $matches[2])';
$replace_callback[] = 'handle_url_tag(''.get_base_url(true).'/viewforum.php?id='.$matches[1])';
$replace_callback[] = 'handle_url_tag(''.get_base_url(true).'/viewforum.php?id='.$matches[1], $matches[2])';
$replace_callback[] = 'handle_url_tag(''.get_base_url(true).'/profile.php?id='.$matches[1])';
$replace_callback[] = 'handle_url_tag(''.get_base_url(true).'/profile.php?id='.$matches[1], $matches[2])';
sera remplacé par :
$replace_callback[] = function($matches) { return handle_url_tag($matches[1]); };
$replace_callback[] = function($matches) { return handle_url_tag($matches[1], $matches[2]); };
$replace[] = '<a href="mailto:$1">$1</a>';
$replace[] = '<a href="mailto:$1">$2</a>';
$replace_callback[] = function($matches) { return handle_url_tag(get_base_url(true).'/viewtopic.php?id='.$matches[1]); };
$replace_callback[] = function($matches) { return handle_url_tag(get_base_url(true).'/viewtopic.php?id='.$matches[1], $matches[2]); };
$replace_callback[] = function($matches) { return handle_url_tag(get_base_url(true).'/viewtopic.php?pid='.$matches[1].'#p'.$matches[1]); };
$replace_callback[] = function($matches) { return handle_url_tag(get_base_url(true).'/viewtopic.php?pid='.$matches[1].'#p'.$matches[1], $matches[2]); };
$replace_callback[] = function($matches) { return handle_url_tag(get_base_url(true).'/viewforum.php?id='.$matches[1]); };
$replace_callback[] = function($matches) { return handle_url_tag(get_base_url(true).'/viewforum.php?id='.$matches[1], $matches[2]); };
$replace_callback[] = function($matches) { return handle_url_tag(get_base_url(true).'/profile.php?id='.$matches[1]); };
$replace_callback[] = function($matches) { return handle_url_tag(get_base_url(true).'/profile.php?id='.$matches[1], $matches[2]); };
"Pierre www.aribaut.com" écrivait :Hello, pour un script de forum (PunBB), la fonction create_function()
encore valable sous php 7.1 n'est plus valable en passant à php 7.2.
Par quoi faut-il la remplacer ?
Bonjour,
Quelques exemples provenant de FluxBB (Très similaire à PunBB), par
exemple dans le fichier parser.php.$temp = preg_replace_callback($re_list, create_function('$matches', 'return preparse_list_tag($matches[2], $matches[1]);'), $text);
est remplacé par :$temp = preg_replace_callback($re_list, function($matches) { return preparse_list_tag($matches[2], $matches[1]); }, $text);$content = preg_replace_callback($re_list, create_function('$matches', 'return handle_list_tag($matches[2], $matches[1]);'), $content);
est remplacé par :$content = preg_replace_callback($re_list, function($matches) { return handle_list_tag($matches[2], $matches[1]); }, $content);$text = preg_replace_callback('%[quote=("|'|"|'|)([^rn]*?)1]%s', create_function('$matches', 'global $lang_common; return "</p><div class="quotebox"><cite>".str_replace(array('[', '"'), array('[', '"'), $matches[2])." ".$lang_common['wrote']."</cite><blockquote><div><p>";'), $text);
est remplacé par :$text = preg_replace_callback('%[quote=("|'|"|'|)([^rn]*?)1]%s', function($matches) use ($lang_common) { return '</p><div class="quotebox"><cite>'.str_replace(array('[', '"'), array('[', '"'), $matches[2])." {$lang_common['wrote']}</cite><blockquote><div><p>"; }, $text);
Où ça devient un peu plus compliqué, c'est lorsque la fonction callback
est effectuée sur des éléments de tableau, comme par la ligne$text = preg_replace_callback($pattern_callback[$i], create_function('$matches', 'return '.$replace_callback[$i].';'), $text);
qui est remplacée par :$text = preg_replace_callback($pattern_callback[$i], $replace_callback[$i], $text);
donc, ce seront les éléments du tableau $replace_callback[] qui
contiendront la fonction anonyme, par exemple :$replace_callback[] = 'handle_url_tag($matches[1])';
$replace_callback[] = 'handle_url_tag($matches[1], $matches[2])';
$replace[] = '<a href="mailto:$1">$1</a>';
$replace[] = '<a href="mailto:$1">$2</a>';
$replace_callback[] = 'handle_url_tag(''.get_base_url(true).'/viewtopic.php?id='.$matches[1])';
$replace_callback[] = 'handle_url_tag(''.get_base_url(true).'/viewtopic.php?id='.$matches[1], $matches[2])';
$replace_callback[] = 'handle_url_tag(''.get_base_url(true).'/viewtopic.php?pid='.$matches[1].'#p'.$matches[1])';
$replace_callback[] = 'handle_url_tag(''.get_base_url(true).'/viewtopic.php?pid='.$matches[1].'#p'.$matches[1], $matches[2])';
$replace_callback[] = 'handle_url_tag(''.get_base_url(true).'/viewforum.php?id='.$matches[1])';
$replace_callback[] = 'handle_url_tag(''.get_base_url(true).'/viewforum.php?id='.$matches[1], $matches[2])';
$replace_callback[] = 'handle_url_tag(''.get_base_url(true).'/profile.php?id='.$matches[1])';
$replace_callback[] = 'handle_url_tag(''.get_base_url(true).'/profile.php?id='.$matches[1], $matches[2])';
sera remplacé par :$replace_callback[] = function($matches) { return handle_url_tag($matches[1]); };
$replace_callback[] = function($matches) { return handle_url_tag($matches[1], $matches[2]); };
$replace[] = '<a href="mailto:$1">$1</a>';
$replace[] = '<a href="mailto:$1">$2</a>';
$replace_callback[] = function($matches) { return handle_url_tag(get_base_url(true).'/viewtopic.php?id='.$matches[1]); };
$replace_callback[] = function($matches) { return handle_url_tag(get_base_url(true).'/viewtopic.php?id='.$matches[1], $matches[2]); };
$replace_callback[] = function($matches) { return handle_url_tag(get_base_url(true).'/viewtopic.php?pid='.$matches[1].'#p'.$matches[1]); };
$replace_callback[] = function($matches) { return handle_url_tag(get_base_url(true).'/viewtopic.php?pid='.$matches[1].'#p'.$matches[1], $matches[2]); };
$replace_callback[] = function($matches) { return handle_url_tag(get_base_url(true).'/viewforum.php?id='.$matches[1]); };
$replace_callback[] = function($matches) { return handle_url_tag(get_base_url(true).'/viewforum.php?id='.$matches[1], $matches[2]); };
$replace_callback[] = function($matches) { return handle_url_tag(get_base_url(true).'/profile.php?id='.$matches[1]); };
$replace_callback[] = function($matches) { return handle_url_tag(get_base_url(true).'/profile.php?id='.$matches[1], $matches[2]); };
Le 27/03/2018 à 16:06, Otomatic a écrit :"Pierre www.aribaut.com" écrivait :Hello, pour un script de forum (PunBB), la fonction create_function()
encore valable sous php 7.1 n'est plus valable en passant à php 7.2.
Par quoi faut-il la remplacer ?
Bonjour,
Quelques exemples provenant de FluxBB (Très similaire à PunBB), par
exemple dans le fichier parser.php.$temp = preg_replace_callback($re_list, create_function('$matches',
'return preparse_list_tag($matches[2], $matches[1]);'), $text);
est remplacé par :$temp = preg_replace_callback($re_list, function($matches) { return
preparse_list_tag($matches[2], $matches[1]); }, $text);$content = preg_replace_callback($re_list,
create_function('$matches', 'return handle_list_tag($matches[2],
$matches[1]);'), $content);
est remplacé par :$content = preg_replace_callback($re_list, function($matches) {
return handle_list_tag($matches[2], $matches[1]); }, $content);$text =
preg_replace_callback('%[quote=("|'|"|'|)([^rn]*?)1]%s',
create_function('$matches', 'global $lang_common; return "</p><div
class="quotebox"><cite>".str_replace(array('[', '"'),
array('[', '"'), $matches[2])."
".$lang_common['wrote']."</cite><blockquote><div><p>";'), $text);
est remplacé par :$text =
preg_replace_callback('%[quote=("|'|"|'|)([^rn]*?)1]%s',
function($matches) use ($lang_common) { return '</p><div
class="quotebox"><cite>'.str_replace(array('[', '"'),
array('[', '"'), $matches[2])."
{$lang_common['wrote']}</cite><blockquote><div><p>"; }, $text);
Où ça devient un peu plus compliqué, c'est lorsque la fonction callback
est effectuée sur des éléments de tableau, comme par la ligne$text = preg_replace_callback($pattern_callback[$i],
create_function('$matches', 'return '.$replace_callback[$i].';'),
$text);
qui est remplacée par :$text = preg_replace_callback($pattern_callback[$i],
$replace_callback[$i], $text);
donc, ce seront les éléments du tableau $replace_callback[] qui
contiendront la fonction anonyme, par exemple :$replace_callback[] = 'handle_url_tag($matches[1])';
$replace_callback[] = 'handle_url_tag($matches[1], $matches[2])';
$replace[] = '<a href="mailto:$1">$1</a>';
$replace[] = '<a href="mailto:$1">$2</a>';
$replace_callback[] =
'handle_url_tag(''.get_base_url(true).'/viewtopic.php?id='.$matches[1])';
$replace_callback[] =
'handle_url_tag(''.get_base_url(true).'/viewtopic.php?id='.$matches[1],
$matches[2])';
$replace_callback[] =
'handle_url_tag(''.get_base_url(true).'/viewtopic.php?pid='.$matches[1].'#p'.$matches[1])';
$replace_callback[] =
'handle_url_tag(''.get_base_url(true).'/viewtopic.php?pid='.$matches[1].'#p'.$matches[1],
$matches[2])';
$replace_callback[] =
'handle_url_tag(''.get_base_url(true).'/viewforum.php?id='.$matches[1])';
$replace_callback[] =
'handle_url_tag(''.get_base_url(true).'/viewforum.php?id='.$matches[1],
$matches[2])';
$replace_callback[] =
'handle_url_tag(''.get_base_url(true).'/profile.php?id='.$matches[1])';
$replace_callback[] =
'handle_url_tag(''.get_base_url(true).'/profile.php?id='.$matches[1],
$matches[2])';
sera remplacé par :$replace_callback[] = function($matches) { return
handle_url_tag($matches[1]); };
$replace_callback[] = function($matches) { return
handle_url_tag($matches[1], $matches[2]); };
$replace[] = '<a href="mailto:$1">$1</a>';
$replace[] = '<a href="mailto:$1">$2</a>';
$replace_callback[] = function($matches) { return
handle_url_tag(get_base_url(true).'/viewtopic.php?id='.$matches[1]); };
$replace_callback[] = function($matches) { return
handle_url_tag(get_base_url(true).'/viewtopic.php?id='.$matches[1],
$matches[2]); };
$replace_callback[] = function($matches) { return
handle_url_tag(get_base_url(true).'/viewtopic.php?pid='.$matches[1].'#p'.$matches[1]);
};
$replace_callback[] = function($matches) { return
handle_url_tag(get_base_url(true).'/viewtopic.php?pid='.$matches[1].'#p'.$matches[1],
$matches[2]); };
$replace_callback[] = function($matches) { return
handle_url_tag(get_base_url(true).'/viewforum.php?id='.$matches[1]); };
$replace_callback[] = function($matches) { return
handle_url_tag(get_base_url(true).'/viewforum.php?id='.$matches[1],
$matches[2]); };
$replace_callback[] = function($matches) { return
handle_url_tag(get_base_url(true).'/profile.php?id='.$matches[1]); };
$replace_callback[] = function($matches) { return
handle_url_tag(get_base_url(true).'/profile.php?id='.$matches[1],
$matches[2]); };
Merci beaucop, je n'aurai pas trouvé tout seul comment faire ce genre de
truc, trop faible niveau de php (je connais juste 2/3 trucs).
Le 27/03/2018 à 16:06, Otomatic a écrit :
"Pierre www.aribaut.com" <pierre@zetrader.fr.invalid> écrivait :
Hello, pour un script de forum (PunBB), la fonction create_function()
encore valable sous php 7.1 n'est plus valable en passant à php 7.2.
Par quoi faut-il la remplacer ?
Bonjour,
Quelques exemples provenant de FluxBB (Très similaire à PunBB), par
exemple dans le fichier parser.php.
$temp = preg_replace_callback($re_list, create_function('$matches',
'return preparse_list_tag($matches[2], $matches[1]);'), $text);
est remplacé par :
$temp = preg_replace_callback($re_list, function($matches) { return
preparse_list_tag($matches[2], $matches[1]); }, $text);
$content = preg_replace_callback($re_list,
create_function('$matches', 'return handle_list_tag($matches[2],
$matches[1]);'), $content);
est remplacé par :
$content = preg_replace_callback($re_list, function($matches) {
return handle_list_tag($matches[2], $matches[1]); }, $content);
$text =
preg_replace_callback('%[quote=("|'|"|'|)([^rn]*?)\1]%s',
create_function('$matches', 'global $lang_common; return "</p><div
class="quotebox"><cite>".str_replace(array('[', '\"'),
array('[', '"'), $matches[2])."
".$lang_common['wrote']."</cite><blockquote><div><p>";'), $text);
est remplacé par :
$text =
preg_replace_callback('%[quote=("|'|"|'|)([^rn]*?)\1]%s',
function($matches) use ($lang_common) { return '</p><div
class="quotebox"><cite>'.str_replace(array('[', '\"'),
array('[', '"'), $matches[2])."
{$lang_common['wrote']}</cite><blockquote><div><p>"; }, $text);
Où ça devient un peu plus compliqué, c'est lorsque la fonction callback
est effectuée sur des éléments de tableau, comme par la ligne
$text = preg_replace_callback($pattern_callback[$i],
create_function('$matches', 'return '.$replace_callback[$i].';'),
$text);
qui est remplacée par :
$text = preg_replace_callback($pattern_callback[$i],
$replace_callback[$i], $text);
donc, ce seront les éléments du tableau $replace_callback[] qui
contiendront la fonction anonyme, par exemple :
$replace_callback[] = 'handle_url_tag($matches[1])';
$replace_callback[] = 'handle_url_tag($matches[1], $matches[2])';
$replace[] = '<a href="mailto:$1">$1</a>';
$replace[] = '<a href="mailto:$1">$2</a>';
$replace_callback[] =
'handle_url_tag(''.get_base_url(true).'/viewtopic.php?id='.$matches[1])';
$replace_callback[] =
'handle_url_tag(''.get_base_url(true).'/viewtopic.php?id='.$matches[1],
$matches[2])';
$replace_callback[] =
'handle_url_tag(''.get_base_url(true).'/viewtopic.php?pid='.$matches[1].'#p'.$matches[1])';
$replace_callback[] =
'handle_url_tag(''.get_base_url(true).'/viewtopic.php?pid='.$matches[1].'#p'.$matches[1],
$matches[2])';
$replace_callback[] =
'handle_url_tag(''.get_base_url(true).'/viewforum.php?id='.$matches[1])';
$replace_callback[] =
'handle_url_tag(''.get_base_url(true).'/viewforum.php?id='.$matches[1],
$matches[2])';
$replace_callback[] =
'handle_url_tag(''.get_base_url(true).'/profile.php?id='.$matches[1])';
$replace_callback[] =
'handle_url_tag(''.get_base_url(true).'/profile.php?id='.$matches[1],
$matches[2])';
sera remplacé par :
$replace_callback[] = function($matches) { return
handle_url_tag($matches[1]); };
$replace_callback[] = function($matches) { return
handle_url_tag($matches[1], $matches[2]); };
$replace[] = '<a href="mailto:$1">$1</a>';
$replace[] = '<a href="mailto:$1">$2</a>';
$replace_callback[] = function($matches) { return
handle_url_tag(get_base_url(true).'/viewtopic.php?id='.$matches[1]); };
$replace_callback[] = function($matches) { return
handle_url_tag(get_base_url(true).'/viewtopic.php?id='.$matches[1],
$matches[2]); };
$replace_callback[] = function($matches) { return
handle_url_tag(get_base_url(true).'/viewtopic.php?pid='.$matches[1].'#p'.$matches[1]);
};
$replace_callback[] = function($matches) { return
handle_url_tag(get_base_url(true).'/viewtopic.php?pid='.$matches[1].'#p'.$matches[1],
$matches[2]); };
$replace_callback[] = function($matches) { return
handle_url_tag(get_base_url(true).'/viewforum.php?id='.$matches[1]); };
$replace_callback[] = function($matches) { return
handle_url_tag(get_base_url(true).'/viewforum.php?id='.$matches[1],
$matches[2]); };
$replace_callback[] = function($matches) { return
handle_url_tag(get_base_url(true).'/profile.php?id='.$matches[1]); };
$replace_callback[] = function($matches) { return
handle_url_tag(get_base_url(true).'/profile.php?id='.$matches[1],
$matches[2]); };
Merci beaucop, je n'aurai pas trouvé tout seul comment faire ce genre de
truc, trop faible niveau de php (je connais juste 2/3 trucs).
Le 27/03/2018 à 16:06, Otomatic a écrit :"Pierre www.aribaut.com" écrivait :Hello, pour un script de forum (PunBB), la fonction create_function()
encore valable sous php 7.1 n'est plus valable en passant à php 7.2.
Par quoi faut-il la remplacer ?
Bonjour,
Quelques exemples provenant de FluxBB (Très similaire à PunBB), par
exemple dans le fichier parser.php.$temp = preg_replace_callback($re_list, create_function('$matches',
'return preparse_list_tag($matches[2], $matches[1]);'), $text);
est remplacé par :$temp = preg_replace_callback($re_list, function($matches) { return
preparse_list_tag($matches[2], $matches[1]); }, $text);$content = preg_replace_callback($re_list,
create_function('$matches', 'return handle_list_tag($matches[2],
$matches[1]);'), $content);
est remplacé par :$content = preg_replace_callback($re_list, function($matches) {
return handle_list_tag($matches[2], $matches[1]); }, $content);$text =
preg_replace_callback('%[quote=("|'|"|'|)([^rn]*?)1]%s',
create_function('$matches', 'global $lang_common; return "</p><div
class="quotebox"><cite>".str_replace(array('[', '"'),
array('[', '"'), $matches[2])."
".$lang_common['wrote']."</cite><blockquote><div><p>";'), $text);
est remplacé par :$text =
preg_replace_callback('%[quote=("|'|"|'|)([^rn]*?)1]%s',
function($matches) use ($lang_common) { return '</p><div
class="quotebox"><cite>'.str_replace(array('[', '"'),
array('[', '"'), $matches[2])."
{$lang_common['wrote']}</cite><blockquote><div><p>"; }, $text);
Où ça devient un peu plus compliqué, c'est lorsque la fonction callback
est effectuée sur des éléments de tableau, comme par la ligne$text = preg_replace_callback($pattern_callback[$i],
create_function('$matches', 'return '.$replace_callback[$i].';'),
$text);
qui est remplacée par :$text = preg_replace_callback($pattern_callback[$i],
$replace_callback[$i], $text);
donc, ce seront les éléments du tableau $replace_callback[] qui
contiendront la fonction anonyme, par exemple :$replace_callback[] = 'handle_url_tag($matches[1])';
$replace_callback[] = 'handle_url_tag($matches[1], $matches[2])';
$replace[] = '<a href="mailto:$1">$1</a>';
$replace[] = '<a href="mailto:$1">$2</a>';
$replace_callback[] =
'handle_url_tag(''.get_base_url(true).'/viewtopic.php?id='.$matches[1])';
$replace_callback[] =
'handle_url_tag(''.get_base_url(true).'/viewtopic.php?id='.$matches[1],
$matches[2])';
$replace_callback[] =
'handle_url_tag(''.get_base_url(true).'/viewtopic.php?pid='.$matches[1].'#p'.$matches[1])';
$replace_callback[] =
'handle_url_tag(''.get_base_url(true).'/viewtopic.php?pid='.$matches[1].'#p'.$matches[1],
$matches[2])';
$replace_callback[] =
'handle_url_tag(''.get_base_url(true).'/viewforum.php?id='.$matches[1])';
$replace_callback[] =
'handle_url_tag(''.get_base_url(true).'/viewforum.php?id='.$matches[1],
$matches[2])';
$replace_callback[] =
'handle_url_tag(''.get_base_url(true).'/profile.php?id='.$matches[1])';
$replace_callback[] =
'handle_url_tag(''.get_base_url(true).'/profile.php?id='.$matches[1],
$matches[2])';
sera remplacé par :$replace_callback[] = function($matches) { return
handle_url_tag($matches[1]); };
$replace_callback[] = function($matches) { return
handle_url_tag($matches[1], $matches[2]); };
$replace[] = '<a href="mailto:$1">$1</a>';
$replace[] = '<a href="mailto:$1">$2</a>';
$replace_callback[] = function($matches) { return
handle_url_tag(get_base_url(true).'/viewtopic.php?id='.$matches[1]); };
$replace_callback[] = function($matches) { return
handle_url_tag(get_base_url(true).'/viewtopic.php?id='.$matches[1],
$matches[2]); };
$replace_callback[] = function($matches) { return
handle_url_tag(get_base_url(true).'/viewtopic.php?pid='.$matches[1].'#p'.$matches[1]);
};
$replace_callback[] = function($matches) { return
handle_url_tag(get_base_url(true).'/viewtopic.php?pid='.$matches[1].'#p'.$matches[1],
$matches[2]); };
$replace_callback[] = function($matches) { return
handle_url_tag(get_base_url(true).'/viewforum.php?id='.$matches[1]); };
$replace_callback[] = function($matches) { return
handle_url_tag(get_base_url(true).'/viewforum.php?id='.$matches[1],
$matches[2]); };
$replace_callback[] = function($matches) { return
handle_url_tag(get_base_url(true).'/profile.php?id='.$matches[1]); };
$replace_callback[] = function($matches) { return
handle_url_tag(get_base_url(true).'/profile.php?id='.$matches[1],
$matches[2]); };
Merci beaucop, je n'aurai pas trouvé tout seul comment faire ce genre de
truc, trop faible niveau de php (je connais juste 2/3 trucs).