phpやhtmlに関する資料
備忘録的なナニカ

内容

Warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead  in ~ というエラーがでる

原因

警告文そのままの意味でpreg_replaceがサポート終了して無くなったので、preg_replace_callbackを使えという事のようだ。

対応

今のようにpreg_replace_callbackへ置き換えた

        $source_content = preg_replace($search.'e', "'"
                                       . $this->_quote_replace($this->left_delimiter) . 'php'
                                       . "' . str_repeat(\"\n\", substr_count('\\0', \"\n\")) .'"
                                       . $this->_quote_replace($this->right_delimiter)
                                       . "'"
                                       , $source_content);

	↓

	$source_content = preg_replace_callback($search
		                       , create_function ('$matches', "return '"
		                       . $this->_quote_replace($this->left_delimiter) . 'php'
		                       . "' . str_repeat(\"\n\", substr_count(\$matches[0], \"\n\")) .'"
		                       . $this->_quote_replace($this->right_delimiter)
		                       . "';")
		                       , $source_content); 

FAQ一覧へ