• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:【困る】PHP5.2での”\f”文字列が表示不可)

【困る】PHP5.2での” ”文字列が表示不可

このQ&Aのポイント
  • PHP4のプログラムをPHP5.2に移植した際に、表示がおかしくなっています。
  • " "文字列がエスケープされ、正しく表示されないようです。
  • プログラムを変更せずに、対策する方法があるかどうかお知りになりたいそうです。

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

  • ベストアンサー
  • chie65535
  • ベストアンサー率43% (8539/19413)
回答No.2

因みに「\T」や「\i」がどう解釈されるかは「未定義」なので $filename="C:\Tools\f2\it.jam"; と書いた場合、$filenameにどんな文字列が設定されるかも「未定義」です。 つまり「何が起こるか判らない」って事です。 今まで「何が起こるか判らないプログラム」のまま、うまく動いていたのが不思議です。 私が何を言っているのか判らなかったら http://nyx.pu1.net/reference/basic/escape.html を良く読んで下さい。 因みに「'」を使えば <? $filename='C:\Tools\f2\it.jam'; echo $filename; ?> と書いても構いません(「'」の中身は、「\」によるエスケープ処理は行われない」ので)

suzukika
質問者

お礼

ご回答ありがとうございます。 シングルクォートもしくは\\で対策するしかないですよね。

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

その他の回答 (2)

回答No.3

>因みに「\T」や「\i」がどう解釈されるかは「未定義」なので 未定義ではないんじゃね(その仕様、俺も嫌いだが) http://www.php.net/manual/en/language.types.string.php#language.types.string.syntax.double >\f form feed (FF or 0x0C (12) in ASCII) (since PHP 5.2.5) >As in single quoted strings, escaping any other character will result in the backslash being printed too. Before PHP 5.1.1, the backslash in \{$var} had not been printed.

suzukika
質問者

お礼

ご回答ありがとうございます。 ここに書いてあるのですね。

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

phpは大昔から「\は\\と書く」のがお約束だけど? <? $filename="C:\\Tools\\f2\\it.jam"; echo $filename; ?> PHPが出来た原初の頃から\は\\って書かないとダメですよ。 ってか、貴方に「echoで改行したい時はどうしてたの?」って聞きたい。

suzukika
質問者

お礼

ご回答ありがとうございます。 そうですよね。改行は/n/rとかですもんね・・

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

関連するQ&A

  • phpの文字列表示

    phpで質問です。 ランダムな数字、1~100の間で70以上が出れば表示を変える というプログラムをしたのですが、 70以上が出るとなぜか表示が崩れます。 正常に表示する方法を教えてください。 コード $rand = mt_rand(1,100); echo $rand; if($rand<70) { echo '<ul> <a href="#"><li>A</li></a> <a href="#"><li>B</li></a> <a href="#"><li>C</li></a> <a href="index.php"><li>D</li></a> </ul>'; } else { echo '<ul><a href="example_sub4.php" target="_brank"><li>close</li></a> <a href="#"><li>E</li></a> <a href="#><li>F</li></a> <a href="index.php"><li>G</li></a>'; } ?>

    • ベストアンサー
    • PHP
  • phpでmysqlから呼び出し文字列に変換?

    mysqlに下記のようなものがあるとします。 id name category 1 ユーザー1 3 2 ユーザー2 1 3 ユーザー3 1 これをphpで呼び出して表示します。(エスケープ処理は省いてます) <?php echo $users["id"]; ?> <?php echo $users["name"]; ?> <?php echo $users["category"]; ?> それぞれ1→ユーザー1→3 という感じで問題なく表示されています。 しかし、categoryのところは実は 1 海釣り 2 川釣り 3 両方 このように選んで貰ってその数値を格納しています。 しかしながらそれをphpで呼び出しどのように【1が呼び出された時は海釣り】のように表示するのでしょうか? 最初から文字列を格納でも良いのですが整数を格納し呼び出す時に、という今回のケースも勉強したいと思ったのですがどのようにやるのがスムーズなのでしょうか? 比較的プロフィールのページや写真掲載のページなどに頻繁に使うのでどこかに関数としてかいておけるものなのでしょうか?

    • ベストアンサー
    • PHP
  • PHP7のphp.iniが読込みできない

    Windows7 64bitの C:\Apache24にApache2.4をインストールして、 C\php7にPHP7をインストールしました。 (php-7.1.1-Win32-VC14-x64.zipを解凍してできたフォルダをphp7にリネームしてC:\に置きました) それで、Apacheのhttpd.confやphp.iniの必要部分を書き換えて、 C:\Apache24\htdocsに <? phpinfo() ?> と記入したinfo.phpを置いて、Apacheを起動して、 ttp://127.0.0.1/info.phpにブラウザでアクセスしたところ、 phpinfo()の画面が表示されて、インストールできたと思ったのですが、 良く見ると、 php.iniでextension_dir = "c:\php7\ext"と設定しているのに、 extension_dirがC:\php7\extではなく、C:\php\extとなっていて、 mbstringなども読み込まれていないのです。 Loaded Configuration File もnoneとなっていて、php.iniが読み込まれていないようです。 Configuration File (php.ini) Path はC:\windows となっていますが、C:\windows には php.iniは入れていません。 ネットで調べて、httpd.confに PHPINIDir "C:/php7" と記入するといいとあったので、記入してApacheを再起動して info.phpにアクセスしたところ、白紙のページが表示されました。 PHPINIDir "C:/php7"を削除して、Apacheを再起動してinfo.phpにアクセスすると、 phpinfo()の画面が表示されます。 試しに、C:\windowsにphp.iniを入れてみると、また白紙のページになります。 つまり、php.iniを読み込もうとすると白紙にページになっていまうのです。 php.iniにエラーがあるのかと思って、解凍して何も変更していないphp.iniを 使ってみてもだめでした。php.iniの構文チェックができればと思って いろいろ調べたのですがネット上で見つからなかったです。 希望ですが、なんとかphp.iniを読み込んで白紙ではなくページを表示できて、 mbstringなども有効になっていればと思います。 どうぞよろしくお願いします。

    • 締切済み
    • PHP
  • phpが表示されません。

    phpを表示させようと頑張っていますが表示されません。 localhostと打てば「It works!」と出るのでapacheも一応動いていると思います。phpは表示されませんがhtmlは表示されます。httpd.confとphp.iniの設定もしているつもりですが動かない原因がよくわかりません。 ちなみにapache2.2.11・php-5.2.8を使用しています。

  • phpinfoでPHP.iniのパスが/etc/php.iniと表示さ

    phpinfoでPHP.iniのパスが/etc/php.iniと表示される お世話になります。 現在以下の環境でPHPを動作させようとしております。 windows server 2008 R2 Apache 2.2.16 (F:\apache) PHP 5.5.3 (F:\apache\php) http.confにPHPinidirをF:\apahce\phpと記述しております。 php.iniは上記ディレクトリに保存しております。 この状態でphpinfoをapacheのドキュメントルートに設置し実行すると 以下の問題が発生します。 ・phpのバージョンが5.1.6と表示される ・phpini格納ディレクトリが/etc/php.iniと表示される ・php.iniの中で変更した設定が全く反映されない 同様な問題が発生した方はいらっしゃいますでしょうか。 また、解決方法をご存じの方教えていただけますでしょうか。

    • 締切済み
    • PHP
  • PHPファイルが表示されない

    こんばんは。いつもお世話になっております。 昨日、OS(winXP SP2)の再セットアップを行い、local環境を整えるべく、apache(2.0.59)、PHP(5.2.2)、 MySQLを新たにインストールしてみたのですが、PHPファイルを読み込むことができず、ブラウザに表示 させようとすると、ファイルをダウンロードを促す「保存orキャンセル」の表示が出てきてしまいます。 PHP、apache共に最近リリースされたバージョンということもあり、手持ちの書籍にあるバージョンは古いものではありますが、 数冊ある書籍を参考に、該当する設定をすべて行ったつもりでいますが、肝心なPHPファイルを読み込むことが出来ずにいる次第です。 インストール時に誤った手順を踏んでいないか?と、何度もインストールから設定作業を繰り返しているものの、解決できるに至りません。 以下が設定時に行っている作業ですが、抜けている点、気をつける点などありましたら、どんな些細なことでも構いませんので、ご意見頂戴出来ればと思います。ご指導のほど宜しくお願いいたします。 PHP5.2.2(php-5.2.2-Win32.zipをDL) 解答したフォルダをphpにリネームし、Cドライブ直下に保存。 php.ini-distをphp.iniにリネーム後、C:/windowsへ。php5ts.dllをC:/windows/system32へ。 php.iniの主要変更箇所 doc_root = "C:/home/public_html" include_path = ".;c:\php\includes;C:\php\PEAR" extension_dir = "C:\php\ext" httpd.confの主要変更箇所 LoadModule php5_module C:/php/php5apache2.dll ServerName localhost:80 DocumentRoot "C:/home/public_html" AllowOverride All AddType apprication/x-httpd-php .php AddType apprication/x-httpd-php-source .phps DirectoryIndex index.html index.php index.html.var

    • ベストアンサー
    • PHP
  • RSSのデータを読み取って更新情報を表示するPHP

    Yahooニュースの更新情報を表示するサイトを作りたいと思って とりあえずプログラムを作ってみたのですがうまくいきません。 初心者なのでどこが悪いのか何が足りないのかどうすればいいのか詳しく教えてください <?php //RSSデータの読み込み $rssurl = "http://dailynews.yahoo.co.jp/fc/rss.xml"; $rssdata = simplexml_load_file($rssurl); //変数の初期化 $a= ""; $b= ""; $c= ""; $d= ""; $e= ""; $f= ""; $g= ""; $h= ""; //それぞれの変数に代入 $a= "<li>"; $b= "<a href=\""; $c= link; $d= "\">"; $e= title; $f= "</a>\n"; $g= description; $h= "</li>"; //表示 echo "a"; echo "b"; echo "c"; echo "d"; echo "e"; echo "f"; echo "g"; echo "h"; ?>

    • 締切済み
    • PHP
  • PHPのエラーメッセージ

    HTML文書からPHPに送ったファイル名のついたファイルをunlink()関数で削除しようとしているのですが、添付したスクリーンショットのようなエアーメッセージが出てきて進めません。 PHPのコードは下のようなものです。 <!doctype html public "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title> QAdeleteFile.php</title> </head> <body> <?php $FileName=$_POST["deleteFileName"]; $FileName="C:\\xampp\\htdocs\\".$FileName; echo $FileName ; unlink($FileName); echo "<form id='next' method='POST' action='QAgmeOver.php' >"; echo "<input type='submit' value='call QAgameOver' >"; echo "</form>"; ?> <!-- <script type="text/JavaScript"> window.document.getElementById("next").submit(); </script> --> </body> </html> エラーメッセージで言っているQAgameOver.phpというのは上に挙げたコードのプログラムです。このメッセージでは、PHP はそのファイルをこのプログラムの中で探そうとしているように見えますが、そのファイルは当然ローカルサーバーのルートであるhtdocs の中に置いてあります。 なぜこうなるのでしょうか?詳しい方、どうか教えてください。

    • ベストアンサー
    • PHP
  • PHPとAppacheの設定に関する表示エラー

    こんにちは。初歩的な質問になりますが、皆様ご教示いただけないでしょうか。 このたびWindows7環境下でapache2.2とPHP5.3.4をダウンロードしました。 その際 apacheはC:\Program Files (x86)以下のフォルダに PHPは、C:\PHPに保存しました。 appacheのhttpd.confのLoadModuleから始まる文字列がある箇所に次の2行を追加し、  PHPIniDir "C:\PHP"  LoadModule php5_module C:\PHP\php5apache2_2.dll Addtypeという文字列が記載されている箇所の最後に次の2行を追加しました。  AddType application/x-httpd-php .php  AddType application/x-httpd-php-source .phps またPHPについては php.iniの; extension_dir = "./"が記載されているブロックの最後に次の1行を追加しました。 extension_dir = "C:\PHP\ext" PHPの動作確認をするため、 <?php phpinfo(); ?> というソースを書いたファイルをphpinfo.phpという名前で下記のフォルダに格納しました。 C:\Program Files (x86)\Apache Software Foundation\Apache2.2\htdocs ブラウザ(インターネットエクスプローラー)で http://localhost/と入力すればIt works と表示されるものの http://localhost/phpinfo.phpと入力するとPHPの設定情報が記載された表があらわれず <?phpから始まるさきほどのソースが表示されるのみです。 apacheは再起動しています。 いろいろ調べてみましたがわかりませんでした。 考えられる原因等を教えていただけないでしょうか。

    • 締切済み
    • PHP
  • PHPのCLIで取得できる変数について

    PHPのCLIからですと、 <? echo $_SERVER["SCRIPT_FILENAME"]; ?> でファイルのパス名が取得できないのですが、 この変数は取得する方法はございますか? php.iniの設定を探してみましたわかりませんでした。 セキュリティ等の理由からデフォルトでは取得できないのでしょうか?

    • ベストアンサー
    • PHP