web-dev-qa-db-ja.com

utf8_(en | de)codeはphp7から削除されましたか?

私は最近、私の開発サーバーでPHP 7に切り替えました。これは今までうまく機能していました。

PHP 7.0.3-10+deb.sury.org~trusty+1に更新したため(本日前)、utf8_decodeおよびutf8_encode関数にアクセスできなくなりました。ただし、これらは以前のバージョンのPHP7にありました。呼び出されると、致命的なエラーが発生します。

これらの関数はmbstring拡張機能によって提供されていることを読みましたが、var_dump(extension_loaded('mbstring'));がロードされていることを確認しました。

上記の機能を再び機能させるにはどうすればよいですか?

63
paolo

同じ問題がありました。 php7.0-xmlパッケージをインストールするだけです。 Ubuntu 16.04:

Sudo apt-get install php7.0-xml

編集:Apache2を再起動新しいパッケージをロードします。

181

Ubuntuでは、PHP7のアップグレード中に次のメッセージが表示されました。

php7.0 (7.0.3-6) unstable; urgency=medium

  * Several extensions have been split into separate extension packages:
   - php-dba - Database (dbm-style) Abstraction Layer
   - php-mbstring - Multibyte String
   - php-soap - SOAP
   - php-xml - DOM, SimpleXML, WDDX, XML, XMLReader and XMLWriter
   - php-Zip - Zip
  * The new packages are not installed automatically, so you will need to
    install them by hand, if you use the functions in those modules.
  * Most modules that have been builtin before are now included in
    php7.0-common package and they are enabled by default for your
    convenience.  You can disable unneede modules via phpdismod tool.

 -- Ondřej Surý <[email protected]>  Mon, 22 Feb 2016 12:37:09 +0100

そのため、問題の原因となっているパッケージの1つです。この場合、それはphp-xmlです。

に注意してください

新しいパッケージは自動的にインストールされません

あなたはそれを修正することができます

Sudo apt-get install php-xml
Sudo Apache2ctl graceful
12
Thomas Weller

トップ投票の答えが私のために機能しなかったので、私はphp7用の別のパッケージを見つけました(名前で明らかです)

Sudo apt-get install php7.0-mbstring
4

CentOSを使用している場合、次のコマンドが機能するはずです。

yum install php-xml
3
Waqar Alamgir

Ubuntu 16.04 LTSでphp 5.6を使用する場合、次を試してください。

Sudo apt-get install php5.6-xml
Sudo service Apache2 restart
3

Utf8_decodeおよびutf8_encode関数は、PHP 7でアクセスできます。

function.utf8-encode-manual-php

これは、phpインストールにphp-xmlパッケージがないためです。

サーバーでMandrakeが実行されている場合は、「urpmi php-xml」と入力します。

サーバーがWindowsでEASYPHPを実行している場合は、EASYPHPロゴをクリックしてphp-xmlモジュールをアクティブにします。

Debianまたはubuntuの場合:

apt-get install php7.0-xmlrpc
1
DevLoots