• 締切済み

PHPの記述内容

以下の記述内容と意味が分からず困っています。初心者にも分かりやすく教えていただけないでしょうか。 <?php // 読み込み $file = 'side.html'; if(file_exists($file)){ $content = file_get_contents($file); $content = preg_replace(array("/\r\n|\n\r|\n|\r/", "/'/"),array("", "\'") , $content); echo 'document.write(\'' . $content . '\');'; } ?>

みんなの回答

回答No.1

このプログラムの何を知りたいのでしょうか? とりあえず、このプログラム内で、多少難しいことをしているのは、 ここではあるので、参考にアドレスを載せておきますが。 http://www.php.net/manual/ja/function.preg-replace.php どこがわからないか、わからないと、回答がしにくいかもしれません。 まるまる、わからない!ということでしたら、 このソースよりも前に、PHPを覚える必要があるのでしょうし。

関連するQ&A

  • PHPでheader情報がうまく表示できない

    ドコモ対応でXHTMLのヘッダー情報がうまく送れません。 PCからのテストで header('Content-Type: application/xhtml+xml'); をコード挿入すし、サイト表示の確認すると「ファイルのダウンロード 」ダイアログがでます。 header('Content-Type: application/xhtml+xml'); を入れずにテストするとダイアログはでません。 ・display.phpがメインページであくまでもskin.htmlをインクルードして置換しecho表示する感じなのですが・・・・・ 困っています。助けて下さい。 skin.html ----------------- <html> <body> <head> <!--%title--> </head> <body> コンテンツ </body> </html> ----------------- test.php -------------------------------------------------------------------------------------- 変数定義は省略 $html = file_get_contents($temp); $agent = $_SERVER['HTTP_USER_AGENT']; if(preg_match("/^DoCoMo/i", $agent)){ $html = str_replace( "<!--%title-->", $docomo, $html); header('Content-Type: application/xhtml+xml'); echo "$html"; } elseif(preg_match("/^(J\-PHONE|Vodafone|MOT\-[CV]|SoftBank)/i", $agent)){ $html = str_replace( "<!--%title-->", $softbank, $html); header('Content-Type: application/xhtml+xml'); echo "$html"; } elseif(preg_match("/^KDDI\-/i", $agent) || preg_match("/UP\.Browser/i", $agent)){ $html = str_replace( "<!--%title-->", $au, $html); header('Content-Type: application/xhtml+xml'); echo "$html"; } else{ $html = str_replace( "<!--%title-->", $other, $html); header('Content-Type: application/xhtml+xml'); echo preg_replace('/{.*?}/', '', $html); -------------------------------------------------------------------------------------- display.php ------------------------------------------ <?php $temp = "./skin.html"; require_once('./test.php'); ?>

    • ベストアンサー
    • PHP
  • PHPでWebページの特定部を取得したいのですが、上手くいきません。

    PHPでWebページの特定部を取得したいのですが、上手くいきません。 現在file_get_contentsを用いてURLを指定して取得し、preg_matchの引数にする方法で行っています。 また、preg_matchは以下のように用いています。 preg_match("/パターン(.*?)パターン/s", $html, $matches); print_rで$matchesを表示してみたところArray()のみ出力されます。 また、話が逸れて申し訳ないですが、上記とは別にfile_get_contentsを用いて動的にURLを指定して取得しているのですが、処理に時間がかかります。(約10秒) $wordをURLに組み込む変数として以下のように記述しています。 file_get_contents("http://…".$word."…(URLの続き)"); 以上の2点についてご教示願います。

    • ベストアンサー
    • PHP
  • print_rで出力した配列データファイルをfile_get_cont

    print_rで出力した配列データファイルをfile_get_contentsでそのまま取り込もうとしましたが、配列としてではなく文字列として取り込んでしまいます。 ひとつの配列にまとまってしまします。 text.php $data=array(1,2,3,4,5); print_r($data); Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 ) output.php これを別ファイルで取り込むと$value= file_get_contents("text.php"); echo $value; print_r($value);両方とも Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 ) が出力されました。 配列として取り込みたいのですが可能でしょうか?

    • ベストアンサー
    • PHP
  • adsense広告がphp出力できない

    お世話になります。 以下の構文が記載されたPHPをhtmlからjavascriptにて呼び出してます。 が、うまく広告が表示されずに困っています。 PHPを直接叩き、document.write等を削除したものを 直接htmlに貼り付ければ、広告は表示されます。 広告が表示されない原因としては、adsenseのscript内でinframeを作成しているのですが そのさいのwidth,heightが0になってしまっているようです。 しかし、なぜその値が渡せていない?のかが解らずハマっています。 <?php header("Content-type: application/x-javascript"); echo "document.write(\"<div align='center'>\")\n"; echo "document.write(\"<p>\")\n"; echo "document.write(\"<script type='text/javascript'><!--\")\n"; echo "document.write(\"google_ad_client = 'hogehogeID';\")\n"; echo "document.write(\"/* 200*200 */\")\n"; echo "document.write(\"google_ad_slot = 'slotnumber';\")\n"; echo "document.write(\"google_ad_width = 200;\")\n"; echo "document.write(\"google_ad_height = 200;\")\n"; echo "document.write(\"//-->\")\n"; echo "document.write(\"</script>\")\n"; echo "document.write(\"<script type='text/javascript'\")\n"; echo "document.write(\"src='http://pagead2.googlesyndication.com/pagead/show_ads.js'>\")\n"; echo "document.write(\"</script>\")\n"; echo "document.write(\"</p>\")\n"; echo "document.write(\"</div>\")\n"; ?> よろしくお願い致します。

    • ベストアンサー
    • PHP
  • サイト名を取得するPHP

    url.txtに http://test1.com http://test2.com http://test3.com : とあります。このURLのhtmlファイルから<title>サイト名</title>部分を抜き出し、 http://test1.com+サイト名1 http://test2.com+サイト名2 http://test3.com+サイト名3 : と表示したいです。 <?php /** * ページタイトルを取得する関数 */ function getPageTitle( $url ) { $html = file_get_contents($url); //(1) $html = mb_convert_encoding($html, mb_internal_encoding(), "auto" ); //(2) if ( preg_match( "/<title>(.*?)<\/title>/i", $html, $matches) ) { //(3) return $matches[1]; } else { return false; } } $filename="url.txt"; $data=file_get_contents($filename); $array = split("\n",$data); foreach($array as $values){ echo $array."+".getPageTitle($array); } ?> ですがこのコードだと7行目あたりでエラーが出てしまいます。 どなたか解決策をご教示ください。どうかよろしくお願いします。

    • ベストアンサー
    • PHP
  • PHPでサーバー上の書き換えたhtmlを上書き保存したい

    サーバー上のhtmlファイルをPHPで修正(不要データ削除)後に、上書きをしたいのですが、なかなかうまくいきません。上書きの方法を教えてください。 $data = @file_get_contents(\'./index.html\'); $data = str_replace(\'該当文字\', \'\', $data); echo $data; ここまでは出来ました。 残りはindex.htmlを上書きするだけなのですが。。

    • 締切済み
    • PHP
  • PHP 変数 aタグで囲いたい

    失礼します。echo の中の変数をaタグで囲いたいのですがやり方がわかりません。 よろしくお願いします。 foreach($files as $file_path => $file_info) { if (!$file_info->isFile()) { continue; } echo 'file path : ' .$file_path ."</br>"; echo 'file size : '. $file_info->getSize() ."</br>"; echo 'contents : '. file_get_contents($file_path) ."</br>"; }

    • ベストアンサー
    • PHP
  • phpからjsへ

    はじめまして。 jQueryの$.ajax関数のGETを使って phpからjavascriptに echo 'document.write("<script type='text/javascript'>var like_arr=new Array(1,1,1,1,1,1,1,1,1,1,1,1,1)</scr"+"ipt>");' と値を返してarrayを作成しようと思っています。 しかしこの返し方だと ブラウザに表示した時 document.write(" とhtml上に表示されてしまいarrayが作成されません。 しかしjsに直接 document.write("<script type='text/javascript'>var like_arr=new Array(1,1,1,1,1,1,1,1,1,1,1,1,1)</scr"+"ipt>"); と書き込んでみるとarrayが存在しています。 どうしたらphpからの値でdocument.writeをする事が出来ますか? 分かる方いらっしゃいませんか? よろしくお願いします。

    • 締切済み
    • PHP
  • 【PHP】書き込みできません

    PHP5.3の環境でファイル書き込みのロジックがうまくいかずに困っています。 環境は下記の通りです。 Apache 2.2.2 PHP 5.3.3 コードは下記の通りです。 >>CODE $file_path = "/home/xxxxx/logs/test.txt"; echo file_exists($file_path); echo "file_path1=".$file_path; if ( file_exists($file_path) ) { echo "file_path2=".$file_path; // ファイルポインタ取得 if ( ($fp = fopen($file_path, 'a')) !== FALSE ) { // ログは追記 echo "file_path3=".$file_path; // ファイルポインタに書き込み fwrite($fp, $date."\n"); fwrite($fp, $body); fwrite($fp, "----------------------------------------------------\n"); // ファイルポインタクローズ fclose($fp); $flg = true; } } <<CODE 権限は下記の通りです。 logs 777 test.txt 777 現象は下記の通りです。 echo文のfile_path1は表示されます。 echo文のfile_path2及びfile_path3は表示されません。 $file_path="/home/logs/test.txt";に変更すると、 echo文のfile_path1及びfile_path2が表示されます。 echo文のfile_path3は表示されません。 ファイルが存在することはlsで確認したので間違いありません。 権限も777にしているので、何がおかしいのか困り果ててしまい、初めて投稿させて頂きました。 PHPやApacheの設定ファイル等も問題あるのでしょうか。 どうぞご指摘お願いいたします。

  • PHP で動的ファイル出力

    PHP 猛勉強中です、またお世話になりますm( __ __ )m ドキュメントルート外に置いたイメージファイルを HP からリンクして表示できるように readfile 関数を使った PHP ファイルを作成しようと思っています。 readfile.php に対して URL クエリーでhttp://hoge/readfile.php?name=hage&ext=jpg のような感じで呼び出したいと思っています。 ※ name はファイル名、 ext は拡張子です。 [readfile.php] <?php $_name = ""; $_ext = ""; if(isset($_GET["name"]) === true && isset($_GET["ext"]) === true){ // null byte 対策 $_name = delete_nullbyte($_GET["name"]); $_ext = delete_nullbyte($_GET["ext"]); // ディレクトリトラバーサル対策 $_name = str_replace(".", "", @htmlspecialchars($_name, ENT_QUOTES, "UTF-8")); $_ext = str_replace(".", "", @htmlspecialchars($_ext, ENT_QUOTES, "UTF-8")); }else{ exit(); } $_file_path = "/home/xxx/img/" . $_name . "." . $_ext; // ファイル存在確認 if(file_exists($_file_path) === false){ exit(); } // MimeType 取得 $_ext_type = substr($_file_path, -3); $_mime_type = ""; if(strcasecmp($_ext_type, "jpg") === 0){ $_mime_type = "image/jpeg"; _out_file($_file_path, $_mime_type); }else{ exit(); } ///////////////////////////////////////////////// // ファイル出力 function _out_file($file_path, $mime_type) { // ファイル名取得 $_fname = @basename($file_path); // ファイルストリーム取得 header('Content-Type: ' . $mime_type); header("Content-Disposition: inline; filename='" . $_fname . "'"); readfile($file_path); } ///////////////////////////////////////////////// // null byte 除去メソッド function delete_nullbyte($str) { if(is_array($str) === true){ return ""; } return str_replace("\0", "", $str); } ?> 色々作業を進めるうちに「null byte 攻撃」や「ディレクトリトラバーサル攻撃」などの言葉が耳に入ってきてセキュリティ的に不安を感じています。 自分なりに調べて上記のようなコーディングをしましたが、果たして問題が無いのか、それとももっとたくさん考えなくてはならないのか、先輩方の意見が聞きたく質問させていただきました。 よろしくお願いしますm( __ __ )m

    • ベストアンサー
    • PHP

専門家に質問してみよう