PHP 5.4からPHP 7系への変換スクリプト

php5-to-php7-top

サーバーを移転したときにPHP 5.4からPHP 7.3.6にアップデートしたので、変換スクリプトを使ってPHP7に対応させました。

PHP 7への変換



こちらを参考に実行しました。

PHP 5.5 から「mysql_connect」などが使えなくなったので、それらを「mysqli_connect」に変換して動作させるようにします。

Link:PHP7Convert.zip

PHP7Convert.zipを展開すると、「mysql_tophp7.sh」と「sed_to_mysqli」の2つのファイルがあることが確認できます。

変換方法


php5-to-php7-01

MacかLinux(Ubuntu)で確認しました。

Windowsの場合は仮想マシンにLinuxをインストールするのが手っ取り早いです。


1)変換したい「.php」ファイルをフォルダに入れて「PHP7Convert」内に置く

2)ターミナルを起動して以下のコマンドを実行

PHP7Convertのディレクトリに行く(デスクトップにある場合)
cd ~/Desktop/PHP7Convert

シェルスクリプトを実行
sh ./mysql_tophp7.sh [フォルダの名前]

php5-to-php7-02

自動的に変換されて、古いphpファイルは「-old.php」という名前になります。

シェルスクリプトの中身


mysql_to_php7.sh
#! /bin/bash
#
# mysql_to_php7.sh
#
# June/01/2019
#
ls $1/*.php > /tmp/tmp01
awk '{print "sed -i-old.php '' -f sed_to_mysqli",$1}' /tmp/tmp01 > /tmp/go_tmp
#
bash /tmp/go_tmp
#

sed_to_mysqli
#
# sed_to_mysqli
#
# May/31/2017
#
# ---------------------------------------------------
s/mysql_connect(/$link=mysqli_connect(/g
s/mysql_select_db(/mysqli_select_db($link,/g
s/mysql_query(/mysqli_query($link,/g
s/mysql_fetch_array/mysqli_fetch_array/g
s/mysql_fetch_row/mysqli_fetch_row/g
s/mysql_fetch_assoc/mysqli_fetch_assoc/g
s/mysql_close()/mysqli_close($link)/g
s/mysql_error()/mysqli_error($link)/g
s/mysql_num_rows/mysqli_num_rows/g
s/mysql_free_result/mysqli_free_result/g
s/ # ---------------------------------------------------

その他でも細かい部分が変更されているので、確認ツールを使って見てください。


あとはサーバーにアップロードすればOKです。

簡単にPHP 7で動作するようになりました。