Aktuelle Beiträge

Seiten 1 2 3
21
phpBB / Re: phpBB-3.0.14 unter PHP 7 l...
Letzter Beitrag von Franky - 27 April 2017, 02:05
Datei:
phpBB3\includes\bbcode.php


Finde Zeile (original Zeile 112)
Code (php.112) Alles auswählen
$message = preg_replace($preg['search'], $preg['replace'], $message);
Ersetzen mit
Code (php.112) Alles auswählen
foreach ($preg['search'] as $key => $search)
{
if (is_callable($preg['replace'][$key]))
{
$message = preg_replace_callback($search, $preg['replace'][$key], $message);
}
else
{
$message = preg_replace($search, $preg['replace'][$key], $message);
}
}

Finde Zeile (original Zeile 211)
Code (php.211) Alles auswählen
                     '#\[quote(?:="(.*?)")?:$uid\]((?!\[quote(?:=".*?")?:$uid\]).)?#ise'   => "\$this->bbcode_second_pass_quote('\$1', '\$2')"
Ersetzen mit
Code (php.211) Alles auswählen
                     '#\[quote(?:="(.*?)")?:$uid\]((?!\[quote(?:=".*?")?:$uid\]).)?#is'   => function ($match) {
                        return $this->bbcode_second_pass_quote($match[1], $match[2]);
                     },

Finde Zeile (original Zeile 290)
Code (php.290) Alles auswählen
                     '#\[code(?:=([a-z]+))?:$uid\](.*?)\[/code:$uid\]#ise'   => "\$this->bbcode_second_pass_code('\$1', '\$2')",
Ersetzen mit
Code (php.290) Alles auswählen
                     '#\[code(?:=([a-z]+))?:$uid\](.*?)\[/code:$uid\]#is'   => function ($match) {
                        return $this->bbcode_second_pass_code($match[1], $match[2]);
                     },

Finde Zeile (original Zeile 300)
Code (php.300) Alles auswählen
                     '#\[list=([^\[]+):$uid\]#e'               => "\$this->bbcode_list('\$1')",
Ersetzen mit
Code (php.300) Alles auswählen
                     '#\[list=([^\[]+):$uid\]#'               => function ($match) {
                        return $this->bbcode_list($match[1]);
                     },

Finde Zeile (original Zeile 384)
Code (php.384) Alles auswählen
                  $bbcode_tpl = preg_replace('/{L_([A-Z0-9_]+)}/e', "(!empty(\$user->lang['\$1'])) ? \$user->lang['\$1'] : ucwords(strtolower(str_replace('_', ' ', '\$1')))", $bbcode_tpl);
Ersetzen mit
Code (php.384) Alles auswählen
                  $bbcode_tpl = preg_replace_callback('/{L_([A-Z0-9_]+)}/', function ($match) use ($user) {
                     return (!empty($user->lang[$match[1]])) ? $user->lang($match[1]) : ucwords(strtolower(str_replace('_', ' ', $match[1])));
                  }, $bbcode_tpl);

Finde Zeile (original Zeile 488)
Code (php.488) Alles auswählen
      $tpl = preg_replace('/{L_([A-Z0-9_]+)}/e', "(!empty(\$user->lang['\$1'])) ? \$user->lang['\$1'] : ucwords(strtolower(str_replace('_', ' ', '\$1')))", $tpl);
Ersetzen mit
Code (php.488) Alles auswählen
      $tpl = preg_replace_callback('/{L_([A-Z0-9_]+)}/', function ($match) use ($user) {
         return (!empty($user->lang[$match[1]])) ? $user->lang($match[1]) : ucwords(strtolower(str_replace('_', ' ', $match[1])));
      }, $tpl);
22
phpBB / Re: phpBB-3.0.14 unter PHP 7 l...
Letzter Beitrag von Franky - 27 April 2017, 02:03
Datei:
phpBB3\includes\ucp\ucp_pm_options.php


Finde Zeile (original Zeile 507)
Code (php.507) Alles auswählen
preg_replace('#^((RULE|ACTION|CHECK)_([A-Z0-9_]+))$#e', "\${strtolower('\\2') . '_lang'}[constant('\\1')] = \$user->lang['PM_\\2']['\\3']", array_keys(get_defined_constants()));
Ersetzen mit
Code (php.507) Alles auswählen
preg_replace_callback('#^((RULE|ACTION|CHECK)_([A-Z0-9_]+))$#', function ($match) use(&$rule_lang, &$action_lang, &$check_lang, $user) {
${strtolower($match[2]) . '_lang'}[constant($match[1])] = $user->lang['PM_' . $match[2]][$match[3]];
},
array_keys(get_defined_constants()));
23
phpBB / phpBB-3.0.14 unter PHP 7 lauff...
Letzter Beitrag von Franky - 26 April 2017, 18:31
Die Frage, ob phpBB-3.0.14 mit PHP 7 läuft, stellen sich zur Zeit zahlreiche phpBB-Anwender. Aus meiner Sicht, gibt es eine Möglichkeit phpBB-3.0.14 unter PHP 7 anzuwenden. Lösungen der phpBB-Entwickler habe ich testweise umgesetzt. Bitte macht ein komplettes Backup des Forums und der Datenbank. Die genannten Änderungen beziehen sich auf den Bug im Standard-BBCode-System (andere Bugs in Verwendung mit PHP 7 sind mir nicht bekannt). Es ist nicht auszuschließen, dass eventuell weitere Bugs auftreten können. Daher empfehle ich grundsätzlich, die Codierungen vor Verwendung in einem Liveboard in einem Testforum mit mehreren Testern und verschiedenen Berechtigungen, ausgiebig zu prüfen und zu testen. Ich gebe keine Gewähr und die Code-Anwendung ist aus meiner Sicht verständlicher Weise euer eigenes Risiko.

Unbedingt vorher ein Backup von den Dateien und der Datenbank machen. Der Autor übernimmt keine Gewähr!

Datei:
phpBB3/includes/acp/acp_bbcodes.php


Finde Zeile (original Zeile 404)
Code (php.404) Alles auswählen
$replace = preg_replace('/(?<!\\\\)\$([0-9]+)/e', "'\${' . (\$1 + \$pad) . '}'", $replace);
Ersetzen mit
Code (php.404) Alles auswählen
$replace = preg_replace_callback('/(?<!\\\\)\$([0-9]+)/', function ($match) use ($pad) {
return '${' . ($match[1] + $pad) . '}';
}, $replace);

Finde Zeilen (original ab Zeile 469)
Code (php.469) Alles auswählen
      $fp_match = preg_replace('#\[/?' . $bbcode_search . '#ie', "strtolower('\$0')", $fp_match);
      $fp_replace = preg_replace('#\[/?' . $bbcode_search . '#ie', "strtolower('\$0')", $fp_replace);
      $sp_match = preg_replace('#\[/?' . $bbcode_search . '#ie', "strtolower('\$0')", $sp_match);
      $sp_replace = preg_replace('#\[/?' . $bbcode_search . '#ie', "strtolower('\$0')", $sp_replace);

Ersetzen mit
Code (php.469) Alles auswählen
      $fp_match = preg_replace_callback('#\[/?' . $bbcode_search . '#i', function ($match) {
         return strtolower($match[0]);
      }, $fp_match);
      $fp_replace = preg_replace_callback('#\[/?' . $bbcode_search . '#i', function ($match) {
         return strtolower($match[0]);
      }, $fp_replace);
      $sp_match = preg_replace_callback('#\[/?' . $bbcode_search . '#i', function ($match) {
         return strtolower($match[0]);
      }, $sp_match);
      $sp_replace = preg_replace_callback('#\[/?' . $bbcode_search . '#i', function ($match) {
         return strtolower($match[0]);
      }, $sp_replace);
Seiten 1 2 3