Stránka 1 z 1

Jak rozjet phpBB 3.0 na PHP7?

Napsal: úte 31. kvě 2016 15:29:09
od Otakar Pěnkava
Stále nedám dopustit na phpBB 3.0, využívám ho jako framework, na kterém si stavím různé ať už menší nebo větší systémy. Bohužel koncem roku skončí podpora pro phpBB 3.0 a nedá se očekávat, že ještě přijde verze, která přinese podporu PHP7.

Proto jsem se rozhodl rozběhnout phpBB 3.0 na PHP7 a dát do kupy seznam změn, které musíte udělat, aby vám fórum běželo správně i pod touto verzí PHP.

Změny se provádí klasickým způsobem (= připojíte se na FTP, najdete soubor, otevřete a daný řádek přepíšete/upravíte). Neříkám, že dané opravy jsou nejlepším řešením, určitě by to šlo napsat lépe, ALE fungují a to je hlavní.

Pojďme tedy na to:
Otevři:
includes/functions_content.php
Najdi: (řádek 78)

Kód: Vybrat vše

$selected = $$sort_ary['key'];
Nahraď:

Kód: Vybrat vše

$selected = ${$sort_ary['key']};
Najdi:

Kód: Vybrat vše

/**
* make_clickable function
*
* Replace magic urls of form http://xxx.xxx., www.xxx. and xxx@xxx.xxx.
* Cuts down displayed size of link if over 50 chars, turns absolute links
* into relative versions when the server/script path matches the link
*/
function make_clickable($text, $server_url = false, $class = 'postlink')
{
	if ($server_url === false)
	{
		$server_url = generate_board_url();
	}

	static $magic_url_match;
	static $magic_url_replace;
	static $static_class;

	if (!is_array($magic_url_match) || $static_class != $class)
	{
		$static_class = $class;
		$class = ($static_class) ? ' class="' . $static_class . '"' : '';
		$local_class = ($static_class) ? ' class="' . $static_class . '-local"' : '';

		$magic_url_match = $magic_url_replace = array();
		// Be sure to not let the matches cross over. ;)

		// relative urls for this board
		$magic_url_match[] = '#(^|[\n\t (>.])(' . preg_quote($server_url, '#') . ')/(' . get_preg_expression('relative_url_inline') . ')#ie';
		$magic_url_replace[] = "make_clickable_callback(MAGIC_URL_LOCAL, '\$1', '\$2', '\$3', '$local_class')";

		// matches a xxxx://aaaaa.bbb.cccc. ...
		$magic_url_match[] = '#(^|[\n\t (>.])(' . get_preg_expression('url_inline') . ')#ie';
		$magic_url_replace[] = "make_clickable_callback(MAGIC_URL_FULL, '\$1', '\$2', '', '$class')";

		// matches a "www.xxxx.yyyy[/zzzz]" kinda lazy URL thing
		$magic_url_match[] = '#(^|[\n\t (>])(' . get_preg_expression('www_url_inline') . ')#ie';
		$magic_url_replace[] = "make_clickable_callback(MAGIC_URL_WWW, '\$1', '\$2', '', '$class')";

		// matches an email@domain type address at the start of a line, or after a space or after what might be a BBCode.
		$magic_url_match[] = '/(^|[\n\t (>])(' . get_preg_expression('email') . ')/ie';
		$magic_url_replace[] = "make_clickable_callback(MAGIC_URL_EMAIL, '\$1', '\$2', '', '')";
	}

	return preg_replace($magic_url_match, $magic_url_replace, $text);
  return preg_replace_callback();
}
Nahraď:

Kód: Vybrat vše

/**
* make_clickable function
*
* Replace magic urls of form http://xxx.xxx., www.xxx. and xxx@xxx.xxx.
* Cuts down displayed size of link if over 50 chars, turns absolute links
* into relative versions when the server/script path matches the link
*/
function make_clickable($text, $server_url = false, $class = 'postlink')
{
	if ($server_url === false)
	{
		$server_url = generate_board_url();
	}

	static $static_class;
	static $magic_url_match_args;

	if (!isset($magic_url_match_args[$server_url]) || $static_class != $class)
	{
		$static_class = $class;
		$class = ($static_class) ? ' class="' . $static_class . '"' : '';
		$local_class = ($static_class) ? ' class="' . $static_class . '-local"' : '';

		if (!is_array($magic_url_match_args))
		{
			$magic_url_match_args = array();
		}

		// relative urls for this board
		$magic_url_match_args[$server_url][] = array(
			'#(^|[\n\t (>.])(' . preg_quote($server_url, '#') . ')/(' . get_preg_expression('relative_url_inline') . ')#iu',
			MAGIC_URL_LOCAL,
			$local_class,
		);

		// matches a xxxx://aaaaa.bbb.cccc. ...
		$magic_url_match_args[$server_url][] = array(
			'#(^|[\n\t (>.])(' . get_preg_expression('url_inline') . ')#iu',
			MAGIC_URL_FULL,
			$class,
		);

		// matches a "www.xxxx.yyyy[/zzzz]" kinda lazy URL thing
		$magic_url_match_args[$server_url][] = array(
			'#(^|[\n\t (>])(' . get_preg_expression('www_url_inline') . ')#iu',
			MAGIC_URL_WWW,
			$class,
		);

		// matches an email@domain type address at the start of a line, or after a space or after what might be a BBCode.
		$magic_url_match_args[$server_url][] = array(
			'/(^|[\n\t (>])(' . get_preg_expression('email') . ')/iu',
			MAGIC_URL_EMAIL,
			'',
		);
	}

	foreach ($magic_url_match_args[$server_url] as $magic_args)
	{
		if (preg_match($magic_args[0], $text, $matches))
		{
			$text = preg_replace_callback($magic_args[0], function($matches) use ($magic_args)
			{
				$relative_url = isset($matches[3]) ? $matches[3] : '';
				return make_clickable_callback($magic_args[1], $matches[1], $matches[2], $relative_url, $magic_args[2]);
			}, $text);
		}
	}

	return $text;
}
Otevři:
includes/bbcode.php
Najdi:

Kód: Vybrat vše

$tpl = preg_replace('/{L_([A-Z0-9_]+)}/e', "(!empty(\$user->lang['\$1'])) ? \$user->lang['\$1'] : ucwords(strtolower(str_replace('_', ' ', '\$1')))", $tpl);
Nahraď:

Kód: Vybrat vše

$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);
Najdi:

Kód: Vybrat vše

						// we need to turn the entities back into their original form to allow the
						// search patterns to work properly
						if (!$undid_bbcode_specialchars)
						{
							$message = str_replace(array(':', '.'), array(':', '.'), $message);
							$undid_bbcode_specialchars = true;
						}

						$message = preg_replace($preg['search'], $preg['replace'], $message);
						$preg = array('search' => array(), 'replace' => array());
Nahraď:

Kód: Vybrat vše

						// we need to turn the entities back into their original form to allow the
						// search patterns to work properly
						if (!$undid_bbcode_specialchars)
						{
							$message = str_replace(array(':', '.'), array(':', '.'), $message);
							$undid_bbcode_specialchars = true;
						}

						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);
							}
						}

						$preg = array('search' => array(), 'replace' => array());
Najdi:

Kód: Vybrat vše

						'preg' => array(
							'#\[quote(?:="(.*?)")?:$uid\]((?!\[quote(?:=".*?")?:$uid\]).)?#ise'	=> "\$this->bbcode_second_pass_quote('\$1', '\$2')"
						)
Nahraď:

Kód: Vybrat vše

						'preg' => array(
							'#\[quote(?:="(.*?)")?:$uid\]((?!\[quote(?:=".*?")?:$uid\]).)?#is'	=> function ($match) {
								return $this->bbcode_second_pass_quote($match[1], $match[2]);
							},
						)
Najdi:

Kód: Vybrat vše

				case 8:
					$this->bbcode_cache[$bbcode_id] = array(
						'preg' => array(
							'#\[code(?:=([a-z]+))?:$uid\](.*?)\[/code:$uid\]#ise'	=> "\$this->bbcode_second_pass_code('\$1', '\$2')",
						)
					);
				break;
Nahraď:

Kód: Vybrat vše

				case 8:
					$this->bbcode_cache[$bbcode_id] = array(
						'preg' => array(
							'#\[code(?:=([a-z]+))?:$uid\](.*?)\[/code:$uid\]#is'	=> function ($match) {
								return $this->bbcode_second_pass_code($match[1], $match[2]);
							},
						)
					);
				break;
Najdi:

Kód: Vybrat vše

						'preg' => array(
							'#(\[\/?(list|\*):[mou]?:?$uid\])[\n]{1}#'	=> "\$1",
							'#(\[list=([^\[]+):$uid\])[\n]{1}#'			=> "\$1",
							'#\[list=([^\[]+):$uid\]#e'					=> "\$this->bbcode_list('\$1')",
						),
Nahraď:

Kód: Vybrat vše

						'preg' => array(
							'#(\[\/?(list|\*):[mou]?:?$uid\])[\n]{1}#'	=> "\$1",
							'#(\[list=([^\[]+):$uid\])[\n]{1}#'			=> "\$1",
							'#\[list=([^\[]+):$uid\]#'					=> function ($match) {
								return $this->bbcode_list($match[1]);
							},
						),
Najdi:

Kód: Vybrat vše

						// Replace {L_*} lang strings
						$bbcode_tpl = preg_replace('/{L_([A-Z0-9_]+)}/e', "(!empty(\$user->lang['\$1'])) ? \$user->lang['\$1'] : ucwords(strtolower(str_replace('_', ' ', '\$1')))", $bbcode_tpl);
Nahraď:

Kód: Vybrat vše

						// Replace {L_*} lang strings
						$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);
Otevři:
includes/ucp/ucp_register.php

Najdi:

Kód: Vybrat vše

			$error = preg_replace('#^([A-Z_]+)$#e', "(!empty(\$user->lang['\\1'])) ? \$user->lang['\\1'] : '\\1'", $error);
Nahraď:

Kód: Vybrat vše

			$error = array_map(array($user, 'lang'), $error);
Otevři:
includes/captcha/plugins/phpbb_captcha_nogd_plugin.php
Najdi:

Kód: Vybrat vše

		$instance =& new phpbb_captcha_nogd();
Nahraď:

Kód: Vybrat vše

		$instance = new phpbb_captcha_nogd();
Otevři:
includes/captcha/plugins/phpbb_recaptcha_plugin.php
Najdi:

Kód: Vybrat vše

		$instance =& new phpbb_recaptcha();
Nahraď:

Kód: Vybrat vše

		$instance = new phpbb_recaptcha();
Otevři:
includes/captcha/plugins/phpbb_captcha_qa_plugin.php
Najdi:

Kód: Vybrat vše

		$instance =& new phpbb_captcha_qa();
Nahraď:

Kód: Vybrat vše

		$instance = new phpbb_captcha_qa();
Otevři:
includes/message_parser.php
Najdi:

Kód: Vybrat vše

					// The pattern gets compiled and cached by the PCRE extension,
					// it should not demand recompilation
					if (preg_match($regexp, $this->message))
					{
						$this->message = preg_replace($regexp, $replacement, $this->message);
						$bitfield->set($bbcode_data['bbcode_id']);
					}
Nahraď:

Kód: Vybrat vše

					// The pattern gets compiled and cached by the PCRE extension,
					// it should not demand recompilation
					if (preg_match($regexp, $this->message))
					{
						if (is_callable($replacement))
						{
							$this->message = preg_replace_callback($regexp, $replacement, $this->message);
						}
						else
						{
							$this->message = preg_replace($regexp, $replacement, $this->message);
						}
						$bitfield->set($bbcode_data['bbcode_id']);
					}
Najdi:

Kód: Vybrat vše


		// This array holds all bbcode data. BBCodes will be processed in this
		// order, so it is important to keep -code- in first position and
		// -quote- in second position.
		// To parse multiline URL we enable dotall option setting only for URL text
		// but not for link itself, thus [url][/url] is not affected.
		$this->bbcodes = array(
			'code'			=> array('bbcode_id' => 8,	'regexp' => array('#\[code(?:=([a-z]+))?\](.+\[/code\])#ise' => "\$this->bbcode_code('\$1', '\$2')")),
			'quote'			=> array('bbcode_id' => 0,	'regexp' => array('#\[quote(?:="(.*?)")?\](.+)\[/quote\]#ise' => "\$this->bbcode_quote('\$0')")),
			'attachment'	=> array('bbcode_id' => 12,	'regexp' => array('#\[attachment=([0-9]+)\](.*?)\[/attachment\]#ise' => "\$this->bbcode_attachment('\$1', '\$2')")),
			'b'				=> array('bbcode_id' => 1,	'regexp' => array('#\[b\](.*?)\[/b\]#ise' => "\$this->bbcode_strong('\$1')")),
			'i'				=> array('bbcode_id' => 2,	'regexp' => array('#\[i\](.*?)\[/i\]#ise' => "\$this->bbcode_italic('\$1')")),
			'url'			=> array('bbcode_id' => 3,	'regexp' => array('#\[url(=(.*))?\](.*)\[/url\]#iUe' => "\$this->validate_url('\$2', '\$3')")),
			'img'			=> array('bbcode_id' => 4,	'regexp' => array('#\[img\](.*)\[/img\]#iUe' => "\$this->bbcode_img('\$1')")),
			'size'			=> array('bbcode_id' => 5,	'regexp' => array('#\[size=([\-\+]?\d+)\](.*?)\[/size\]#ise' => "\$this->bbcode_size('\$1', '\$2')")),
			'color'			=> array('bbcode_id' => 6,	'regexp' => array('!\[color=(#[0-9a-f]{3}|#[0-9a-f]{6}|[a-z\-]+)\](.*?)\[/color\]!ise' => "\$this->bbcode_color('\$1', '\$2')")),
			'u'				=> array('bbcode_id' => 7,	'regexp' => array('#\[u\](.*?)\[/u\]#ise' => "\$this->bbcode_underline('\$1')")),
			'list'			=> array('bbcode_id' => 9,	'regexp' => array('#\[list(?:=(?:[a-z0-9]|disc|circle|square))?].*\[/list]#ise' => "\$this->bbcode_parse_list('\$0')")),
			'email'			=> array('bbcode_id' => 10,	'regexp' => array('#\[email=?(.*?)?\](.*?)\[/email\]#ise' => "\$this->validate_email('\$1', '\$2')")),
			'flash'			=> array('bbcode_id' => 11,	'regexp' => array('#\[flash=([0-9]+),([0-9]+)\](.*?)\[/flash\]#ie' => "\$this->bbcode_flash('\$1', '\$2', '\$3')"))
		);
Nahraď:

Kód: Vybrat vše

		$bbcode_class = $this;

		// This array holds all bbcode data. BBCodes will be processed in this
		// order, so it is important to keep -code- in first position and
		// -quote- in second position.
		$this->bbcodes = array(
			'code'			=> array('bbcode_id' => 8,	'regexp' => array('#\[code(?:=([a-z]+))?\](.+\[/code\])#uis' => function ($match) use($bbcode_class)
				{
					return $bbcode_class->bbcode_code($match[1], $match[2]);
				}
			)),
			'quote'			=> array('bbcode_id' => 0,	'regexp' => array('#\[quote(?:="(.*?)")?\](.+)\[/quote\]#uis' => function ($match) use($bbcode_class)
				{
					return $bbcode_class->bbcode_quote($match[0]);
				}
			)),
			'attachment'	=> array('bbcode_id' => 12,	'regexp' => array('#\[attachment=([0-9]+)\](.*?)\[/attachment\]#uis' => function ($match) use($bbcode_class)
				{
					return $bbcode_class->bbcode_attachment($match[1], $match[2]);
				}
			)),
			'b'				=> array('bbcode_id' => 1,	'regexp' => array('#\[b\](.*?)\[/b\]#uis' => function ($match) use($bbcode_class)
				{
					return $bbcode_class->bbcode_strong($match[1]);
				}
			)),
			'i'				=> array('bbcode_id' => 2,	'regexp' => array('#\[i\](.*?)\[/i\]#uis' => function ($match) use($bbcode_class)
				{
					return $bbcode_class->bbcode_italic($match[1]);
				}
			)),
			'url'			=> array('bbcode_id' => 3,	'regexp' => array('#\[url(=(.*))?\](?(1)((?s).*(?-s))|(.*))\[/url\]#uiU' => function ($match) use($bbcode_class)
				{
					return $bbcode_class->validate_url($match[2], ($match[3]) ? $match[3] : $match[4]);
				}
			)),
			'img'			=> array('bbcode_id' => 4,	'regexp' => array('#\[img\](.*)\[/img\]#uiU' => function ($match) use($bbcode_class)
				{
					return $bbcode_class->bbcode_img($match[1]);
				}
			)),
			'size'			=> array('bbcode_id' => 5,	'regexp' => array('#\[size=([\-\+]?\d+)\](.*?)\[/size\]#uis' => function ($match) use($bbcode_class)
				{
					return $bbcode_class->bbcode_size($match[1], $match[2]);
				}
			)),
			'color'			=> array('bbcode_id' => 6,	'regexp' => array('!\[color=(#[0-9a-f]{3}|#[0-9a-f]{6}|[a-z\-]+)\](.*?)\[/color\]!uis' => function ($match) use($bbcode_class)
				{
					return $bbcode_class->bbcode_color($match[1], $match[2]);
				}
			)),
			'u'				=> array('bbcode_id' => 7,	'regexp' => array('#\[u\](.*?)\[/u\]#uis' => function ($match) use($bbcode_class)
				{
					return $bbcode_class->bbcode_underline($match[1]);
				}
			)),
			'list'			=> array('bbcode_id' => 9,	'regexp' => array('#\[list(?:=(?:[a-z0-9]|disc|circle|square))?].*\[/list]#uis' => function ($match) use($bbcode_class)
				{
					return $bbcode_class->bbcode_parse_list($match[0]);
				}
			)),
			'email'			=> array('bbcode_id' => 10,	'regexp' => array('#\[email=?(.*?)?\](.*?)\[/email\]#uis' => function ($match) use($bbcode_class)
				{
					return $bbcode_class->validate_email($match[1], $match[2]);
				}
			)),
			'flash'			=> array('bbcode_id' => 11,	'regexp' => array('#\[flash=([0-9]+),([0-9]+)\](.*?)\[/flash\]#ui' => function ($match) use($bbcode_class)
				{
					return $bbcode_class->bbcode_flash($match[1], $match[2], $match[3]);
				}
			))
		);
Najdi:

Kód: Vybrat vše

		// To let the parser not catch tokens within quote_username quotes we encode them before we start this...
		$in = preg_replace('#quote="(.*?)"\]#ie', "'quote="' . str_replace(array('[', ']', '\\\"'), array('[', ']', '\"'), '\$1') . '"]'", $in);
Nahraď:

Kód: Vybrat vše

		// To let the parser not catch tokens within quote_username quotes we encode them before we start this...
		$in = preg_replace_callback('#quote="(.*?)"\]#i', function ($match) {
			return 'quote="' . str_replace(array('[', ']', '\\\"'), array('[', ']', '\"'), $match[1]) . '"]';
		}, $in);
Upozornění:
Pokud máte v config.php:

Kód: Vybrat vše

$dbms = 'mysql';
Změňte na:

Kód: Vybrat vše

$dbms = 'mysqli';

Re: Jak rozjet phpBB 3.0 na PHP7?

Napsal: úte 31. kvě 2016 18:58:19
od smiesek
zdravím, trošku mi unikají podstaty, jak souvisí PHP7 s phpBB 3.0? Resp. proč je případně vhodné udělat tuto změnu? Týká se pouze nové instalace a nebo i současných for, které jsou na phpBB 3.0?

Děkuju za vysvětlení a věnování mi času.

Re: Jak rozjet phpBB 3.0 na PHP7?

Napsal: úte 31. kvě 2016 20:36:29
od Otakar Pěnkava
Ahoj,
mám projekty, které běží na phpBB 3.0 a je nemožné je aktualizovat na phpBB 3.1 a novější z toho důvodu, že jsou silně modifikované a nové phpBB 3.1 by bylo pro ně nesmyslnou překážkou. Bohužel phpBB 3.0 (ani 3.1) nejedou na novější verzi PHP, vyskakují chyby atp. Tento postup právě opraví dané chyby, takže kdo bude chtít aktualizovat na novější PHP, tak může i se starším phpBB.

Re: Jak rozjet phpBB 3.0 na PHP7?

Napsal: úte 31. kvě 2016 20:38:30
od kksmirice
Stačí si trochu projít změněné funkce a přijdete na to, že z php7 byly odstraněny, buď celé nebo jen některé části nejsou podporovány.

A odpověď na další dotaz je snad již jasný - týká se všech fór verze 3.0.

Re: Jak rozjet phpBB 3.0 na PHP7?

Napsal: pát 14. říj 2016 13:33:43
od Otakar Pěnkava
Při přechodu WebDeal.cz z PHP 5.5 na 7.0 jsem přišel na další možné chyby a tak jsem do návodu přidal na konec instrukce pro úpravu souboru messenger_parser.php a config.php

Re: Jak rozjet phpBB 3.0 na PHP7?

Napsal: pon 08. kvě 2017 23:14:25
od Marek111
Mam phpbb3, cele som hom spojazdnil na PHP7.1 a funguje bez problemov, jediny problem na ktory som ale narazil su bbtagy, tie co su defaultne v phpbb funguju, no tie ktore si mozem sam vytvorit v administracii nefunguju, natrafil si tiez na tento problem, ci toto si neriesil?

Re: Jak rozjet phpBB 3.0 na PHP7?

Napsal: pát 12. kvě 2017 14:28:57
od Otakar Pěnkava
Zatím jsem to netestoval na PHP 7.1, pouze na 7.0. A pokud jsi nepoužil postup tady v tématu, tak velmi pravděpodobně nebude fungovat větší část fóra. Co si tak pamatuji, tak u BBcodů byl hlavní problém, potom byl problém třeba při změně avatara, podpisu, když někdo citoval příspěvek...

Re: Jak rozjet phpBB 3.0 na PHP7?

Napsal: pon 15. kvě 2017 23:17:12
od Marek111
Cele forum mi ide v poriadku, ovela viac zmien som spravil, ale vlastne bbtagy mi nejdu ani na php7 ani php7.1

problem tam je ze ked ukladam prispevok, tak tag sa uklada do posts tabulky [NAZOVTAGU:UID]blabla[/NAZOVTAGU:UID], no na php7 a php7.1 sa ulozi ale [NAZOVTAGU]blabla[/NAZOVTAGU] chyba tam to uid, inac tento postup co si sem dal je dost naprd, hlavne ked je takto cely v kope necitatelny, vecsina vecsich casti sa neda dohladat, taktiez tam je ovela viac zmien, jedina co som nedokazal ale identifikovat je len vlastny bbtag, tie default co tam su idu bez problemov a pri ukladani prispevku sa ulozi aj s UID, ale vlastne nie. Pricom stare prispevky kde su vlastne bbtagy sa zobrazuju spravne, len tie nove ulozi bez UID

Re: Jak rozjet phpBB 3.0 na PHP7?

Napsal: ned 04. čer 2017 23:01:17
od Eva004
Dej link na fórum.

Re: Jak rozjet phpBB 3.0 na PHP7?

Napsal: pon 05. čer 2017 21:38:45
od Marek111
Nemyslim si ze ti to k niecomu bude ked nemas pristup k zdrojakom, problem je v preg_replace_callback kde neprida tag do prispevku s UID [NAZOVTAGU:UID]blabla[/NAZOVTAGU:UID] ale len [NAZOVTAGU]blabla[/NAZOVTAGU] a tym padom nefunguju vlastne bbtagy, ale zjavne ten problem nevyriesim, kedze phpbb3.0 nie je vobec pripravene na php7.1 cize to uz ani neriesim nejako. Docital som sa pouzit tam eval ale to konci s chybou

Ak si dobre pametam tak je to v /includes/bbcode.php

Kód: Vybrat vše

if (is_callable($preg['replace'])) {
    $message = preg_replace_callback($preg['search'], $preg['replace'], $message);
} else {
    $message = preg_replace($preg['search'], $preg['replace'], $message);
}
pricom $message = preg_replace_callback($preg['search'], $preg['replace'], $message);

pricom som skusil pouzit aj function( $match ) aj v spojeni s eval a nic z toho, bud to konci chybami, alebo neodosle ani prispevok, alebo alebo, to je jedina vec ktora je mimo, inac vsetko ostatne funguje bez problemov po uprave zdrojakov

Re: Jak rozjet phpBB 3.0 na PHP7?

Napsal: pon 05. čer 2017 21:40:37
od Marek111
Skusil som aj upravit tu funkciu v podobnom duchu ako je toto

Kód: Vybrat vše

$this->message = preg_replace_callback($regexp, function($matches) use($replacement) {eval('$str=' . $replacement[1]); return $str;}, $this->message);
vracia ze prispevok neobsahuje ziadny prispevok, cely problem je len tam

Re: Jak rozjet phpBB 3.0 na PHP7?

Napsal: ned 11. čer 2017 13:31:15
od Eva004
Když neuvedeš link, nemá cenu se tím zabývat.

Re: Jak rozjet phpBB 3.0 na PHP7?

Napsal: stř 29. srp 2018 11:33:28
od jerrry
Ahoj, dlouho jsem tu nebyl, ale koukám, že (asi) nový admin tomu zde opět vdechnul život, což je super :-) měl bych jeden dotaz, mám aktuálně phpBB 3.0.x fórum s asi 320 tisíci příspěvky, nicméně na serveru mi běží ještě WordPress web s vysokou návštěvností, ale kvůli phpBB jsme zůstávali na PHP 5, nicméně se sedmičkou je tam fakt dramatický nárůst výkonu a rychlosti aplikace. Chci se tedy zeptat, nejnovější phpBB 3.2.2 už s PHP 7.2.x je kompatibilní, že? Problémy jsou jen u phpBB 3.0.x a 3.1.x? Původně jsem chtěl zkusit tento návod na úpravu kompatibility phpBB 3.0.x fóra, ale asi nakonec udělám update na nejnovější, jen bych potřeboval vědět, zda to šlape?

Re: Jak rozjet phpBB 3.0 na PHP7?

Napsal: stř 29. srp 2018 12:57:09
od Eva004
Můžeš zkusit. Verze phpBB 3.2.2 by měla být s PHP 7 kompatibilní.

Re: Jak rozjet phpBB 3.0 na PHP7?

Napsal: stř 29. srp 2018 23:27:22
od jerrry
díky, mě právě zajímalo, zda s tím přímo někdo nemá zkušenost, než to hodím na takhle velký web/fórum :)