• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:PHPバージョンが異なる時の関数の働き)

PHPバージョンの違いによる関数の働きと文字化けの問題について

このQ&Aのポイント
  • PHPバージョンが異なると、関数の働きに違いが生じることがあります。特に、$_SERVER['DOCUMENT_ROOT']の値が異なる場合、プログラムが正常に動作しない可能性があります。
  • また、php5.1から5.3に移行した際に、文字化けの問題が発生することがあります。特に、UTF-8で表示されていた文字列が正常に表示されなくなり、文字化け(???)が発生することがあります。
  • 原因としては、サーバーの設定や文法の違い、ファイルの文字コードの変更などが考えられます。具体的には、$_SERVER['DOCUMENT_ROOT']のルートの値末尾の変化や、htaccessの記述の変更が影響している可能性があります。

質問者が選んだベストアンサー

  • ベストアンサー
  • t_ohta
  • ベストアンサー率38% (5088/13306)
回答No.3

> $_SERVER['DOCUMENT_ROOT']で得られるルートの値末尾が5.1では”/”だったものが無しに変わったのか?置いているサーバーで働きが異なるのか。それとも文字化けと何か関係している可能性があるのか。 ↓これの影響ですかね 「PHP 5.2.x から PHP 5.3.x への移行」>「下位互換性のない変更点」 http://php.net/manual/ja/migration53.incompatible.php 『SplFileInfoクラス と他のディレクトリ関連クラスは、 末尾の / を除去するようになりました。 』 > 文字化けについて考えられる原因。 php.iniの設定が前のサーバと異なっていると言う事はないでしょうか。

picicate
質問者

お礼

ご回答大変ありがとうございました! ああ、やっぱりバージョンで変更あったんですね。 大変助かりました。 文字化けについてもどうもini設定に関連していそうなのでその方向で調べてみます。 他の方もありがとうございました!

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

回答No.2

もとのサーバと現サーバでのバージョン以外の設定は確認したの? php.iniだったり

全文を見る
すると、全ての回答が全文表示されます。
  • agunuz
  • ベストアンサー率65% (288/438)
回答No.1

$_SERVER['DOCUMENT_ROOT'] はサーバの設定ファイルの値です。 http://php.net/manual/ja/reserved.variables.server.php >現在実行されているスクリプトが存在するドキュメントルート ディレクトリです。 >サーバーのコンフィグレーションファイルで 定義されています。 一般的には最後に / があるかどうかphpスクリプト側で確認して(最後の1文字を切り出して / と比較して)から使います。 >今までは正常に表示されてたのに日本語が???に化けた。 ブラウザが正しいcharset(utf-8)で認識していないということでしょうか?htmlにはmeta要素でcharset指定がありますか(phpが返すhtmlソースでも同じ)。サーバから自動で返るcontent-typeは「charsetがない」のが普通なのですが、レスポンスヘッダはどうなっていますか? (meta要素を入れ忘れたときのために)自分がロリポップで動かしているphpスクリプトは、全部最初に header('Content-type: text/html; charset=UTF-8'); を書いています。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • htaccessでphpとSSIを同時に動かす?

    http://www.dspt.net/tools/emoji/と同じように絵文字変換できるようにしたのですが、htaccessにAddHandler server-parsed htmlをすることになるので、今まで使っていたアクセス解析の「うごくひと2」が使えないです。 SSIとPHPをhtaccessで同時に動かすことは可能ですか? http://sb.xrea.com/showthread.php?t=14639で質問しているかたとほぼ同じ状況ですが、私はこの方法だとエラーになってしまいます。 ちなみにxhtmlではなくhtmlで作っています。 サーバーはハッスルです。 うごくひとを動かしていたときはAddHandler x-httpd-php .htmlをhtaccessに記述すると動作しました。 htaccessにAddHandler server-parsed htmlと AddHandler x-httpd-php .htmlをhtaccessに記述すると、絵文字が表示されるけどうごくひとは文字化けしてしまいます。 絵文字もアクセス解析も表示させるにはなにが必要でしょうか?

    • 締切済み
    • PHP
  • PHPでFTP関数を使いたいと考えていますが、

    PHPでFTP関数を使いたいと考えていますが、 いろいろ回ってみても中々使えるサーバに出会えません。 ロリポップでは設定はされているとの記事を見かけたのですが、 ドキュメントルート以下しか使えないなど不便な面が多く使うのは控えようかと考えています。 私の探し方も上手くないのでしょうか・・・。 ある程度金額は高くても良いので(~10000円) ドキュメントルートより上も操作可能で、なおかつPHPとmysqlが使え、 PHPのftp関数がデフォルトもしくは設定にて使用可能なレンタルサーバをご存知の方は お教えいただけないでしょうか? お手数ですがよろしくお願いいたします。

  • .phpを.htmlで使用する際のhtaccess

    html内でphpを使用する際のhtaccess記述について。 .phpを.htmlで使用します。 ネットで探してたくさん出てきましたが AddType php5.x-script .html AddType application/x-httpd-php .html AddHandler myphp-script .php .html TypeをHandlerに変えたり拡張子の.(ドット)を抜いたりして試していますがうまくいきません。 独自ドメインをhttp://example.comとすると、 http://example.com/にアクセス:ファイルをダウンロードしますか?と表示されます。 http://example.com/index.phpにアクセス:正常に表示されます。 http://example.com/index.htmlにアクセス:何も表示されません。(ソースをみると、phpの部分がそのまま表示されています) 動作確認はIE。index.htmlとindex.phpは内容は同じです。 サポートは休業日で、メールを送っても返信はありません。 現在サーバーの移転をしていて、引っ越し前のサーバーの期限が30日までなのでかなり焦っています...。(別の質問サイトでも同じ質問をしています...。) 引っ越し前のサーバーはロリポップですが、 AddHandler php5.3-script .htmlで正常に表示されています。 わかる方がいらっしゃいましたら、回答お願いします。 そのほか ・パーミッションはindex.html、index.php、.htaccess:604(htmlはサーバー推奨の604) ・文字コードUTF-8で統一、改行コードCRLF

  • mysql-phpでの文字化け

    自分のパソコンでは文字化けせず、正しく表示されているのですが、 niftyのデータサービスを使ってphpで表示すると文字化けします。 my.iniとmy.cnfの問題と思いniftyサーバーにftpで接続し探したがファイルが見つかりません。 mysqlとphpはutf8で設定しています。 niftyサーバーのmysqlは5、phpMyAdminは2,11,9です。

    • ベストアンサー
    • MySQL
  • phpで<?= $hoge ?>が動かない

    こんにちは、phpの設定について教えてください。 レンタルサーバ(xreaやロリポップ)で、 index.phpの中に<?= $hoge ?>というソースを埋め込んで、 $hogeの内容が反映されていたのですが、 この度、fedora core 12を入れたのですが、 ホームページのソースを見ると、内容が反映されず<?= $hoge ?>のままでです。 php.iniの設定が必要なのかわからないのですが、 ご存じの方いましたら、教えていただけないでしょうか。 また、 <?php  phpinfo(); ?> はちゃんと動いてくれてます。 fedora12にインストールする手順は、 http://fedorasrv.com/apache.shtmlを参照しました。 [root@fedora ~]# yum -y install httpd [root@fedora ~]# yum -y install php php-mbstring もしかしたら、他にもインストールするものがあるのでしょうか? よろしくお願い致します。

    • ベストアンサー
    • PHP
  • htaccessのリダイレクトについて

    html、phpなどの拡張子付きリクエストを、末尾がスラッシュの URLにリダイレクトしたいのですが、方法をご教示ください。 例えば、 http://www.hoge.com/hoge/ へのリクエストを、異なるサーバーの http://www.hoge2.com/hoge/ にリダイレクトしたいと考えており、以下のように記述しています。 #.htaccessの記述 Redirect permanent /hoge/ http://www.hoge2.com/hoge/ しかし、 /hoge/hoge.php のリクエストがあった場合、以下のようにドキュメント名を付加される ので困っています。 http://www.hoge2.com/hoge/hoge.php 宜しくお願いします。

    • ベストアンサー
    • PHP
  • PHPについて質問させてください。

    PHPについて質問させてください。 レッツPHP!さんの「-UpdaterRSS-」を使用したいのですが、 http://php.s3.to/simple/#update 以前はロリポップで全く問題なく動作していたのですが、 XREAサーバーに変えたらPHPで文字化けをしてしまいます。 http://www.value-domain.com/ また、他PHPのメールフォームも同様に文字化けしてしまいます。 原因がわからないのでよろしくお願いいたします。

  • phpの自作関数の戻り値について

    PHPで任意のCSVファイルをアップロードしてUTF6で別名保存するという関数です。 メインのupload.phpから require_once('UTF8CONV.php'); で呼び出しています。メインの部分は動きますが、戻り値(メッセージを変数で返したい)がうまくいかず並んでいます 以下UTF8CONV.php <?php //linuxのnkfコマンドでSJISからUTF8にファイル変換 //$INfile='sjistest.csv'; //$OUTfile='utf8.csv'; //パス自動取得する。 function convutf8($INfile,$OUTfile) { if(isset($_SERVER['DOCUMENT_ROOT'])||isset($_SERVER['PHP_SELF'])) { $PHPSELF=explode('/',$_SERVER['PHP_SELF']); $getpath= $_SERVER['DOCUMENT_ROOT'].$PHPSELF[1]; $command="nkf -w -Lw "."$getpath/"."upload/"."$INfile"." > "."$getpath/"."upload/"."$OUTfile"; //echo $command; exec($command); } else {$A="パス情報が取得できません"; return $A; } $filesize=filesize("$getpath/"."upload/"."$OUTfile"); if (!file_exists( "$getpath/"."upload/"."$OUTfile" )) { //echo "<br/>"; $A="ファイルが存在しません"; return $A; } else { $A="アップロードされたファイル".$OUTfile."は文字コードUTF8でファイルサイズは".$filesize."バイトです。"; return $A; } } ?> returnをechoに置き換えうると、表示されますが「return」でメイン(呼び出し側で、Echoしてもprint_rしても表示されません。CSVテキストとはアップされ、UTF8にOUTfileで指定した名称で保存されています。Returnの変数をJAVASCRIPTで情報window表示したいので、変数でほしいです。

    • 締切済み
    • PHP
  • PHP4からPHP5にしたときのDB文字化けについて

    よろしくお願い致します。 すでに、PHP4で作っていたサイトで、DBにもいろいろと登録していたのですが、PHP5にしたい事情が出てしまい、PHP5にしました。 すると、すでに登録されていた、DBの内容が文字化けしてしまいました。 PHP4(UTF8)+MySQL5(UTF8) → PHP5(UTF8)+MySQL5(UTF8) 情報足りませんでしたら申し訳ないです、申し付けて下さい。 phpMyAdminから見たときは、すでに入っていたDBの内容は文字化けはしていないのですが… 次にPHP5で新しく登録した場合は、サイトでの表示は文字化けしないのですが、次はphpMyAdminで見ると文字化けしていました。 php.iniの設定も同じにしてます、Apacheのconf設定なども見たのですが、文字化けは解消しませんでした。 よろしくお願い致します。

    • 締切済み
    • PHP
  • ハッスルサーバー PHP4 PHP5

    .htaccessというファイルを作成し  AddHandler x-httpd-php5 .php という記述を追加することにより、PHP5の利用が可能にる。 というメールをハッスルサーバーから頂いて、早速そのように設定したところ、拡張子phpのページをクリックすると、phpファイルをダウンローロしようとする画面が出てくるようになりました。 .htaccessファイルを削除しても、phpファイルをダウンローロしようとする画面は消えません。 どのように設定すれば、以前のように普通にPHPページを閲覧できるようにできますか? よろしくお願いします。

    • ベストアンサー
    • PHP