質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.34%

  • PHP

    21316questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

PHP4.4.9をPHP7.2.6に変更する場合の内容を教えてください。

解決済

回答 4

投稿 編集

  • 評価
  • クリップ 1
  • VIEW 465

danchan

score 2

 前提・実現したいこと

PHP初心者です。

現在、PHP4.4.9で稼動しております。
バージョンをPHP7.2.6に変更したいと考えております。

PHPのバージョンを上げたいのですが、バージョンを上げる場合
何を変更すればよいのかがわかりません。

変更に必要な

・項目
・参考になるURL
・参考書籍

などを知りたいです。

特に、変更するための項目(変更箇所)がどのくらいあるのかが
わかれば、それを元に勉強を進めたいと考えております。

おわかりの方、ご教授のほどお願い申し上げます。


■追加内容:7月23日(月)
環境を記載しておりませんでした。失礼いたしました。

【環境】
レンタルサーバー:Xサーバーを使用
OS:Linux
Apacheバージョン:2.4.6
MariaDBバージョン:5.5.x
PHPバージョン:PHP4.4.9

【Xサーバーの使用目的】
バックアップ環境として使用しております。

ただ、6月9日に最新サーバー環境への移行メンテナンスが
行われて、それ以降、文字化けが発生したため、PHPの
バージョンを変更したいと考えております。


  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • scsi

    2018/07/22 08:20

    os,現行のphpのインストール方法によって変わりますので、まず現行の環境を書いてください

    キャンセル

  • tanat

    2018/07/22 08:55

    「現在、PHP4.4.9で稼動しております。 バージョンをPHP7.2.6に変更したいと考えております。」というのは、今動いているプログラムがあってそれを7.2.6に移行したいという事でしょうか?それとも単純に学習環境等をアップデートしたいという事でしょうか?

    キャンセル

  • danchan

    2018/07/23 07:39

    scsi様、tanat様 質問を編集いたしましたので、ご確認いただけますと助かります。この投稿欄の記入がはじめてのため、編集して回答いたしました。ご教授のほど宜しくお願い申し上げます。

    キャンセル

回答 4

+7

PHPマニュアルページの下の方に、バージョンによるPHPの文法・機能の差異が書いてあります。
「PHP 4 から PHP 5.0.x への移行」から「PHP 7.1.x から PHP 7.2.x への移行」までの、「下位互換性のない変更点」を全部読んで、その機能を使っている部分があれば、どうするか考えて、PHP7.2.xで使える機能で書き直します。

対象プログラムの規模によりますが、初心者には非常に厳しい作業です。
まずは、プログラムを読んで「完全に」理解しましょう。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/07/26 08:48

    ありがとうございます。PHPマニュアルのリンクでバージョンの差異を教えていただきありがとうございます。「PHP 4 から PHP 5.0.x への移行」と「PHP 7.1.x から PHP 7.2.x への移行」の手順のご指導ありがとうございます。確かに厳しいように感じます。マニュアルを元に理解に勤めて参ります。ありがとうございました。

    キャンセル

checkベストアンサー

+6

PHP4からPHP5へ移行した時のメモが参考になれば。
あー、PHP3絡みやリビジョンの違いによる問題もあるあも?
あと、実際に遭遇してないのもあります。

--- メモ ---
strtotime() で日時形式文字列からタイムスタンプ値が得られない
→パラメタで与える文字列に括弧や日本語文字列などが含まれると変換に失敗する ※特に曜日はNG

mb_convert_kana() で文字化け
→元の文字コードを明記

mb_convert_encoding() で文字化け
→元の文字コードを明記

メール送信内容が文字化け
→メール送信前に内部文字コードを宣言する mb_internal_encoding()

pg_NumRows でワーニング
→ pg_num_rows に変更

"\v" が特殊記号に認識された
→表記方法を変更

i18n_jp_hantozen() が無い
→ mb_convert_kana() に変更

is_a()
→ instanceof で代替

オブジェクト関連
→扱う場合は "&" を付けないように

オブジェクトを生成せずに使う関数
→ static で定義する

外部から(オブジェクトを生成せずに)使う関数
→ public で定義する

コンストラクタの重複定義
→クラスと同名の関数と __construct() は同時に定義できない(ワーニング)

$_GET / $_POST の更新処理
→ PHP4 では効いてないようだが PHP5 では効いてるよう

配列を破壊する関数
→まとめて書かずに分ける

クラス内のメンバ変数で const 定義したのが $this->xxx では参照できない
→ self::xxx で参照する

タイムゾーン関連で警告が出る
→ date_default_timezone_set('Asia/Tokyo');

smarty のプラグイン
→バージョンによって入ってたり入ってなかったりするものがあるので注意

エラーのフック処理
→PEAR内で発生するワーニングはスルーするように修正

配列を扱う関数 - array_merge(), in_array()
→配列を指定するパラメタに配列以外を指定したらエラーになるよう

{}による文字列へのアクセス
→PHP6で消えるので非推奨(らしい)

コンストラクタ(クラス名と同じ名前の関数)
→ static は指定できない

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/07/26 08:51

    ありがとうございます。ご自身の体験を元にした貴重な内容のご提示ありがとうございます。変更するにはやはり、見直す部分が沢山ありそうですね。コードを書き直す際にはぜひ参考にさせていただきます。ありがとうございました。

    キャンセル

+5

PHP 4 前提で作られたコードは、セキュリティ的に危険なことが多いです。
設計上の問題もある可能性が高いので、一から作り直すことをオススメします。

追記
文字化けなら、以下を確認してみてください。
default_charset

いずれにしても、一から再設計のほうが良いと思います。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/07/26 08:43

    ありがとうございます。一から作り直した方が、セキュリティの面でもコードの把握の面でも、早く対応できるように感じました。文字化けの部分もリンクを付けてくださいり、ありがとうございました。

    キャンセル

  • 2018/07/26 09:11

    セキュアに使おうと思ったら、データベース使うのさえしんどい時代の php ですからねぇ。
    設計書でも残っているといいですね。

    キャンセル

+1

「バックアップ環境」とあるので、メイン環境があるものと想定して回答します。

ただ、6月9日に最新サーバー環境への移行メンテナンスが
行われて、それ以降、文字化けが発生したため、PHPの
バージョンを変更したいと考えております。

他の方の回答にもあるように、PHPのバージョン変更は設定変更だけで完了するケースはあまり無く、ソースコードの変更も必要になるケースが殆どです。

徹底したテストとソースコードの改修が出来ない場合、バージョンアップは諦めて、設定だけメイン側の設定に合わせる形にするしかありません。

メイン側とバックアップ側でphpinfo()による設定値と差分を調査し、異なっている部分についてメインと同じになるように設定してみては如何でしょうか?

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/07/26 08:39

    ありがとうございます。ソースコードの変更やphpinfo()による調査の方法をご提示いただきありがとうございます。差分を調査してどのようにできるか検討して参ります。ありがとうございました。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.34%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る

  • PHP

    21316questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。