ホームページ  >  に質問  >  本文

Windows XAMPP PHP 8.1.10 への Pear のインストール

公式 [マニュアル][1] にある PEAR のインストール方法の指示に従っていると、次のエラーが発生しました:

致命的エラー: キャッチされないエラー: C:xampp_latestphp (include_path='C:xampp_latestphpPEAR') の必要な 'phar://go-pear.phar/index.php' を開けません go-pear .phar: 1284 スタック トレース: #0 {main} が C:xampp_latestphpgo-pear.phar 行 1284

でスローされました

他の解決策を探してみたところ、[これ][2]を見つけました。ただし、依然として pear をインストールできず、次のエラーが表示されます:

PHP 致命的エラー: C:xampp_latestphpgo-pear.php 行 1182 中括弧を使用した配列および文字列のオフセット アクセス構文はサポートされなくなりました。

ネットワークとコマンドライン経由でインストールしようとしましたが、同じエラーが発生しました。

また更新です。 さらに検索を続けたところ、次のものが得られました。 協会 そこで、エラーで示唆されているように、別のファイルで中括弧を角括弧に変更しようとしましたが、最終的に次のエラーが発生しました。 リーリー


P粉141911244P粉141911244316日前395

全員に返信(1)返信します

  • P粉222320176

    P粉2223201762024-01-01 00:19:35

    基本的に、xampp が提供する PEAR は、PHP 8.x で実行できるように更新されていません。また、PHP 8.0 では非推奨または削除された複数の機能に直面し、PHP の致命的なエラーが発生しました。

    1) アクセス文字の問題
    最初の問題は、 文字列アクセスで中括弧 {} が使用されることです。 にアクセスするときのゼロベースのオフセットが削除され、角括弧 []## のみが使用できます #。

    元のコードを比較

    リーリー

    固定コードを使用:

    リーリー ######解決:### ### 正規表現

    \{(\$[a-zA-Z0-9\ ]*)\}

    を使用して、xampp/php/pear フォルダー内のすべてのファイルを検索し、## に置き換えます#[$1]
    重要: すべての出現箇所を確認し、スクリプト内の正規表現を変更しないでください。 ! !
    2) 捕捉されない ArgumentCountError 問題 2 番目の問題は、PHP 関数
    set_error_handler
    が PHP 8.0.0 で
    最後のパラメータ を削除したことです。 コールバック関数には
    5 つの引数 が必要ですが、取得できるのは < /a>4 つの引数 だけなので、呼び出しは PHP Fatal error: Uncaught ArgumentCountError: Too Fewarguments to function error_handler( ) , 4 で失敗します。項目は渡されましたが、期待されていたのはちょうど 5 項目です。
    ######解決:### ### set_error_handler( 呼び出しを検索し、参照されているコールバック関数 error_handler を見つけて、最後の引数をオプションにします。 私の場合、それはスクリプト xampp\php\pear\pearcmd.php

    にあり、関数定義は 446 行目にありました:

    元の関数定義を比較: リーリー
    修正適用後: リーリー 注: 2021 年 9 月に、Apache Friends Support Forum で「バグ」が報告されていることがわかりました。

    3) 未定義関数 each() の問題

    3 番目の問題は、PHP 関数

    each()

    が削除され、「

    PHP Fatal Error: Uncaught Error: Call to unknown function each()」がスローされることです。 ######解決### ###
    each(
    (結果セット内の関数 "foreach" を削除するにはスペースを使用します) の出現をすべて検索し、関数
    foreach で確認して更新し、各 .\ で正しいパラメーター ファイルを使用します。
    while 構文例 リーリー

    に置き換えることができます リーリー

    リスト 構文例
    リーリー に置き換えることができます リーリー If - else

    ステートメントでは他にもいくつかの状況が使用されます。

    emtpy($args) の後に foreach($args as $opt_arg) を使用できます。{}

    変数 $opt_arg を構築します。

    If - else 構文例 リーリー

    に置き換えることができます リーリー

    PEAR がついに XAMPP バージョン: 8.2.0

    で動作するようになりました リーリー

    返事
    0
  • キャンセル返事