検索結果
PHP
- 全てのカテゴリ
- 全ての質問
- PHPでFilename cannot be empty他の警告(Wa
PHPでFilename cannot be empty他の警告(Warning)発生しています。 PHP初心者です。 テンプレートを使ってファイルを作成する機能をつくりました。 一応動いているようなのですが、実行するとWarningが発生します。 解消する方法をご存知でしたらご教授ください。 オブジェクト指向で組んでみたので、それが原因かもと思うのですが、解消 策がわからず困っています。 よろしくお願いします。 ◆警告メッセージ Warning: fopen(): Filename cannot be empty in C:\path\CreateFile.php on line 31 Warning: fwrite() expects parameter 1 to be resource, boolean given in C:\path\CreateFile.php on line 32 Warning: fclose() expects parameter 1 to be resource, boolean given in C:\path\CreateFile.php on line 33 以下サンプルコードです。 ◆クラスファイル <?php class CreateFile { // テンプレートファイル名 public $templateFile; // 保存ファイル名 public $createdFile; // 置換キーワードセット arrayで指定 public $values; // ファイル生成 public function createFile() { // ファイルを生成する $data = ""; if($this->templateFile){ $data = file_get_contents($this->templateFile); } if (is_array($this->values)) { foreach ($this->values as $key => $val) { $data = str_replace($key, $val, $data); } } // ファイルを生成する $fp = fopen($this->createdFile, 'w'); fwrite($fp, $data); fclose($fp); } } ?> ◆メイン <?php require_once './class/CreateFile.php'; // インスタンス生成 $cdFile = new CreateFile(); // テンプレート名設定 $cdFile->templateFile = './template.tpl'; // 保存ファイル名設定 $cdFile->createdFile = './hoge.txt'; $cdFile->values = array('<%VALUE>' => 'テストです'); $cdFile->createFile(); echo '++++++++++ End CreateFile ++++++++++'; ?>
- 検索エンジンロボットはPHPタグが見えるのか?
検索エンジンロボットはPHPタグが見えるのか? googleやMSNなどの検索エンジンロボットは、PHPのタグを読んでプログラムを見ているのでしょうか、それともサーバ側でPHPのプログラムが処理された結果しか見れないのでしょうか? たとえば下記のようなページを用意したとして、 ----------- A. webページHTML index.php <p>鉛筆</p> <p>ノート</p> <p><?php include("file.php"); ?></p> ----------- ----------- B. fine.php 秘密のファイル ----------- ----------- C. ブラウザで見えるindex.php 鉛筆 ノート 秘密のファイル ----------- 人間がブラウザでアクセスする時も、検索エンジンロボットのキャッシュも、Cのように見えます。 検索エンジンロボットが、index.phpのpタグ3行目が外部PHPファイルを読み込んでいると分かっているのかどうか知りたいです。 お分かりの方、よろしくお願いいたします。
- ベストアンサー
- ハードウェア・サーバー
- chile5583
- 回答数1
- IIS + PHP からのWindowsコマンド実行について
IIS + PHP からのWindowsコマンド実行について IIS+PHPの環境を用いて、ディスククォータの使用率を表示したいと考えています。 そこで、テストとして下記のスクリプトを実行しましたが、dir の実行結果は表示されましたが、dirquotaの実行結果が表示されませんでした。 また、コマンドプロンプトからphp.exe test.phpを実行しましたが同様です。 もちろん、コマンドプロンプトからdirquotaを実行すれば正しく稼働し表示されます。 Listの代わりにaddを使ってもコマンドが実行された気配がないので「表示されない」より「実行されない」のかと考えていますが、dirコマンドとdirquotaコマンドに違いがあるのでしょうか。 == test.php ============= <pre> <?php passthru("dir"); passthru("dirquota quota list d:\\"); ?> </pre> ========================= 【 環境 】 OS : Windows 2008 Server PHP: 5.3(セーフモードOFF)
- 【PHP・.htaccess】PCと携帯の振り分けについて
【PHP・.htaccess】PCと携帯の振り分けについて お世話になります。 PHP・.htaccess共に初心者なのですが、 PCサイトと携帯サイトの振り分けで悩んでいるので宜しくお願い致します。 現在の構成が http://sample.com/ ←トップページ(PHPファイルのみ。各トップへ振り分け) http://sample.com/pc/ ←PCトップページ http://sample.com/mo/ ←モバイルトップページ(.htaccessでIP制限。PCからのアクセスはトップへ) ---------------------------------------------------- 振り分けPHP(http://sample.com/) <?php $agent = $_SERVER['HTTP_USER_AGENT']; if(preg_match("/^DoCoMo/i", $agent)){ header("Location: http://sample/mo/"); exit; }else if(preg_match("/^(J-PHONE|Vodafone|MOT-[CV]|SoftBank)/i", $agent)){ header("Location: http://sample/mo/"); exit; }else if(preg_match("/^KDDI-/i", $agent) || preg_match("/UP.Browser/i", $agent)){ header("Location: http://sample/mo/"); exit; }else{ header("Location: http://sample/pc/"); exit; } ---------------------------------------------------- となって居ますが、都合により http://sample.com/ ←PCトップ モバイルからのアクセスはmoに振り分け。 http://sample.com/mo/ ←モバイルトップページ。(.htaccessでIP制限。PCからのアクセスはトップへ) 上記の形に切り替えたいと思っています、 PHPを使って振り分けをしたいと思っているのですが、 上記の形を再現する事は出来ますでしょうか? また、.htaccessを利用する事により解決が出来るのであれば、 そちらもご教授いただけると幸いです。
- xamppでPHPのフォームからメール送信できない。
xamppでPHPのフォームからメール送信できない。 phpを勉強し始めた初心者です。お世話になります。 phpで会員登録出来て申し込みも出来るフォームをつくりました。 他の場所(LANで繋がれた環境)では登録も保存も出来、メール(自分のgmailアドレス) に送られて来るように作成してあるのですが、そこではちゃんとメールが届きますが 自宅で同じように設定して送信すると 登録は出来てDBに保存されるのですがメールが送られてきません。 自宅はデスクトップのPCにモデムにケーブルをつないでいます。 プロバイダーはSonetウィズフレッツ光マンションタイプです。 他の場所の違いはDNSサーバーくらいなのですが、 それをXamppの中のMercuryに設定しても うまくいきません。 sonetやNTTに聞いても「特にブロックするようなことはしていない」との事で 問題なく動くようですが・・一度もメールがおくられてきていません。 やったこと ■php.iniの設定変更【下記参照】C:\xampp\apache\bin\php.ini ●ここの設定を↓ [mail function] ; For Win32 only. SMTP = localhost smtp_port = 25 ●このように変えたり↓してもだめでした。 [mail function] ; For Win32 only. SMTP = mail.XXX.so-net.ne.jp smtp_port = 587 ●この辺はコメントをはずしています。↓ ; For Win32 only. ;sendmail_from = exsample@gmail.com ; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). sendmail_path = "C:\xampp\sendmail\sendmail.exe -t" [mbstring] ; language for internal character representation. mbstring.language = Japanese ; internal/script encoding. ; Some encoding cannot work as internal encoding. ; (e.g. SJIS, BIG5, ISO-2022-*) mbstring.internal_encoding = UTF-8 ■mercuryの設定 コマンドプロンプトでipconfig/allで DNSserverを調べると 二つでてきたので(プライマリとセカンダリ?) プライマリのほうだけ入れたり 両方入れたり セカンダリだけいれたり 試しましたが全て駄目なようです。 繋がらないので試したこと ●ウイルスソフト(アバスト)を無効にした。 ●ファイヤーオールを無効にした。 XAMPP (Basispaket) version 1.6.8 windowsXP ブラウザfirefox3.6.8 なにか設定しないと動かないのでしょうか? 一応 画像添付します。 以上ですが他の情報が必要でしたらおっしゃっていただけたらと思います。 宜しくお願いします。
- CentOS5.3でのPHPバージョンアップについて
CentOS5.3でのPHPバージョンアップについて 現在、お名前ドットコムのVPSサーバーをレンタルしています。 OSはLinuxのCentOS5.3、PHPのバージョンが5.1.6で これにOpenPNE3を入れるためにPHPのバージョンアップをしようとしたところ 以下のようなエラーになり、どうしたらよいのかわかりません。 ・・・・ Error: Missing Dependency: php >= 5.2.9 is needed by package php-dbase-5.2.9-2.el5.centos.3.x86_64 (c5-testing) Error: Missing Dependency: php >= 5.2.9 is needed by package php-mcrypt-5.2.9-2.el5.centos.3.x86_64 (c5-testing) ちなみに、PHPのバージョンアップは以下のサイトを参考にさせていただきました。 http://d.hatena.ne.jp/kantankeizai/20100615 CentOSは多少触ったことはあるのですが、そんなに詳しくない状態で困っています。 どなたか、解決策のわかる方いましたら、アドバイスお願いいたします。
- ベストアンサー
- Linux系OS
- goobeginer
- 回答数5
- PHPでフォーム画面を作成しています。
PHPでフォーム画面を作成しています。 そのフォームには配列でチェックボックスがあるのですがそのチェックされて確認画面で表示まではできているのですが、戻る画面に戻るとうまく値が引き継げてない状態です。 引継ぎはhiddenで戻るページまではきている状態です。 あとは、hiddenの値とDBでselectしてのを比較してあればcheckedをつけるだけだと思っているんですが そこでうまくいっていない状態です。 下記がソースです。 ■DBからループで表示するチェックボックスを配列に $businessSQL = "SELECT * FROM business_tbl WHERE dell_flag = 0"; $businessQuery = mysql_query($businessSQL); $businessArray = array(); while($row = mysql_fetch_assoc($businessQuery)) { $businessArray[] = $row; } ■hiddenで値を引き継ぎ ※下記の例は2個チェックされhiddenで戻ってきた状態 チェックボックス名(配列):com_business Array ( [0] => 1 [1] => 2 ) ■hiddenとDBからselectしたbussines_idを比較 <?php foreach($businessArray as $val) { ?> <?php foreach($inputArray['com_business'] as $val1) { ?> <?php if($val1 == $val['bussiness_id']) { ?> <input type="checkbox" name="com_business[]" value="<?php print($val['business_id']); ?>" checked><?php print($val['business']); ?> <br> <?php } else { ?> <input type="checkbox" name="com_business[]" value="<?php print($val['business_id']); ?>"><?php print($val['business']); ?> <br> <?php } ?> <?php } ?> <?php } ?> 宜しくお願い致します。
- PHPでは、あんま大きなプログラムは作れないの?
PHPでは、あんま大きなプログラムは作れないの? だって、変数の宣言が必要ないから。 変数の宣言が必要ない、ってことは、 おかしな変数があっても、コンパイラーが 事前にチェックできないってことだし。 つまりそれって、デバッグが難しくなるってことでしょう? だから、 「デバッグがめんどくなってきたな、、、」 と感じたら、それは、そろそろJavaとかに 移行しろ、っていう、神からのメッセージでしょ? 変数を使うにあたって、あらかじめ、 宣言が必要な言語であれば、 宣言の無い変数が登場した段階でエラーではじくし、 デバッグも容易になるよね。 つまりそれって、プログラムが大規模になってきたら、 そういう厳密系な言語にシフトしたほうが ストレスがたまらなくっていいってことでしょう?
- PHPにお詳しい方回答お願いいたします
PHPにお詳しい方回答お願いいたします m(__)m 使用OS Windows XP php-5.2.14-win32-installer.msi httpd-2.2.16-win32-x86-no_ssl.msi 以上の2つをインストールしました やさしいPHPという本を参照してます http://localhost:8080/ での画面は"it works!"と表示されていました。 そこでコードをメモ帳で作りました Sample1.php すべてのファイル ANSI で01フォルダに保存 APACHE2.2のフォルダ内のhtdocsフォルダ内に YPHPSampleフォルダを作成 その中に01フォルダを作成 それをhttp://localhost:8080/YPHPSample/01/sample1.phpで 実行させてみるとWEBPEGEが見つかりません と表示されて困っています。 また、ファイアーウォールの許可済み Start APACHE in Consoleで起動しています
- ベストアンサー
- PHP
- aappaacchhee
- 回答数6
- phpでmysqlの結果がresouceにならない
いつもお世話になります。初心者で何も知識がないまま進めておりますが故に行き詰っております。詳しい方からのアドバイスお願い致します。 今回はphpでmySQLの結果をmysql_fetch_assoc() で展開しようと思ったら以下の文章が出てきました。 mysql_fetch_assoc() expects parameter 1 to be resource, object given in・・・ 調べてみると変数の型(この場合は$resouce)がresourceではないとのことで、戻ってきた型を調べてみるとarrayで戻ってきているようです。 問題となっている箇所は以下の単純なクエリだとは思うのですが、何が原因か分からず。。。 $sql = "SELECT * FROM テーブル名;"; ※テーブル名には変数がありケースバイケースでテーブル名が変わります $resouce = $mysqli -> query($sql) or die(mysqli_error()."エラー"); while ($data = mysql_fetch_assoc($resouce)) { ・・・ お分かりの方がいらっしゃいましたら、ぜひよろしくお願い致します。 •ソフトウェア: MySQL •ソフトウェアバージョン: 5.0.67 •php5
- phpでのif文、正規表現について
phpでログイン処理のプログラムを書いています。 パスワードを入力してもらいログイン処理をしようと考えています。 その際パスワードの中に英数字の大文字が1文字以上含まれていたらログイン可能、英数字いずれかに大文字が含まれていなかったらもう一度入力という処理をしたいのですがこれはif文で書けばよいのでしょうか。 また正規表現で書くべきなのでしょうか。 かなり初歩的な質問ですがよろしくお願いします。 また、数字だけのパスワードでははじくという処理をどのように書いたらいいのでしょうか。 時間があるときで良いので回答の程よろしくお願いします。
- phpでのサイト制作について質問です。
現在、phpを使用して会員制webサイトの作成を勉強しています。 あらかた形になってきたのですが、 なにぶん独学で作成してきたため、いくつか根本的な間違いをしているような気がしたため、 質問させてください。 1、現在、ヘッダーやナビゲーションメニュー、フッターなどの各ページ共通部分のタグを 別ファイルに関数化して、関数から引っ張って出力しています。 ネットで検索したところ、皆さん、ヘッダー用ファイル、フッター用ファイル、 ナビゲーションメニュー用ファイルを作成して、includeしているということを今更ながら知りました。 そこで疑問なのですが、やはり、 関数用ファイルから関数として呼び出して出力するよりも、 別ファイルをincludeしたほうが動作的に軽くなるのでしょうか? また、これらの共通ファイルは公開ディレクトリ以前に置くべきでしょうか? 2、ファイルのパーミッション設定についていまいち理解できていないのですが、 includeやrequireで読み込ませる(ファイル単体で表示させず読み込み専用)ファイルの パーミッションは604で適切でしょうか? 3、メールアドレスのDB保存についてですが、 色々とネットで調べた上で、 現在、PDOでHEX(aes_encrypt(':email','key') を使用しているのですが、 こちらは一般的に使用されていますでしょうか? 沢山質問してしまい、一貫性がなくてすみません。 これを気に、作成したコードを見直したいと思い、質問しました。 どれかひとつでもお分かりになるようでしたらご回答頂きたいです。 よろしくお願い致します。
- phpでチャットをつくる方法を教えてください
phpでチャットシステムをつくる方法を教えてください。 ログインしてチャットできるように、php+mysqlでログイン機能をつくり、ログイン後にsocket.io(node.js)でチャット接続しようとしましたが、ページが上手く表示されません。。
- 締切済み
- PHP
- rocketkeita
- 回答数2
- リアルタイムでK_KEYID.phpを実行させたい
$(function(){ setInterval(function(){ url:'./edtor_addKEYID/K_KEYID.php' },1000); }); 書き方がおかしいのは重々承知しております。 K_KEYID.phpはKから始まる記事IDを抽出しています。 Kから始まる記事IDが追加されるたびリアルタイムで表示させたいです。 誠に恐れいりますが、ご教示よろしくお願いします。
- JMeterでJSON値を別のPHPに渡す
こんばんは。 JMeterを利用し始めました。PHP自体も利用は初めてです。 行いたいことは以下の通りです。 1)HTTPリクエストで「index.pxp?param1=test」とするとJSONで返ってくる。 {"ApplicationID":"APPID201704"} 2)JSON値を正規表現で抽出。 参照名:appid_temp 正規表現:"ApplicationID":"([A-Z0-9_-]+)" テンプレート:$1$ 3)別のHTTPリクエストで「hogehoge.php?appid=APPID201704」になるようにしたい。 2)でAPPID201704は取れたのですが、3)のHTTPリクエストにどのようにセットすればよろしいのでしょうか?
- 締切済み
- PHP
- TeijigoTeatime
- 回答数1
- PHP初心者です。コード内容を教えてください。
PHP初心者なので以下のコードをお教えいただき たいです。これは改行について解説しているところに 出てきた例文です。 質問1 コードの1を実行した結果がブラウザ表示だと改行なし ソース表示だと改行ありで表示されるのですが、それがよく わかりません。'で文字列を囲うとそのまま出力されるため htmlで<br>されないというのはわかるのですが、ソース 表示が改行されているのが分かりません。ソースで改行 するには/(逆)nやPHP_EOLを使わなければ改行できないので はないでしょうか? (PHPコード1) $str = '改行を削除して処理します。<br> ダブルクオートじゃないと改行文字は扱えません。'; $str = str_replace(array('<br>','', '$str); echo $str; 質問2str_replace関数がありますが、この手のわからない 関数をリファレンスで引くと str_replace ( mixed $search , mixed $replace , mixed $subject [, int &$count ] ) : mixed のように説明には書いているのですが、str_replace("2","3","1"); 1の中の2すべてを3に置き換える。これはわかります。しかし、 説明例文に記載のmixedやら[, int &$count ] ) : mixedはよくわかりません これは何なのでしょうか? 長くなりましたがどうか回答お願いします。
- ベストアンサー
- PHP
- kenyanakase
- 回答数1
- PHPを試しながら勉強するための環境設定
PHPを実際に試しながら勉強する場合、自前のサーバが設定されているか、リモートのサーバへのアクセスが必要なのではないかと思います(結果はサーバの応答として出てくるので?)。始めて勉強するような場合はどのような環境設定にしておくものなのでしょうか。自宅のPCをサーバに仕立てるのはそれなりに敷居が高いように思うのですが。httpのデーモンの設定が必要ですね。それとも外部からのパケットを一切受け付けない一種の仮想環境的な模擬サーバ環境が設定できるとかですが。、Windowsには「XAMPP」ってものをインストールしておくらしいですが。よろしくお願いします。
- 締切済み
- PHP
- skmsk1941093
- 回答数3
- phpでcsvデータをランダム表示について
下記はcsvデータをランダムに1つだけ抽出するphpのプログラムですが、1度表示したデータに色をつけるとか、表示させない方法はありますか? <!doctype html> <html> <head> <meta charset="UTF-8"> <title>無題ドキュメント</title> </head> <body> <?php // 抽出数 $count = 1; $list = array(); // 読み込みCSVファイル $lines = file('test.csv'); shuffle($lines); foreach ($lines as $line) { if ( ! in_array($line, $list)) { array_push($list, $line); if (count($list) >= $count) { break; } } } // CSVファイルに出力 $file = fopen('test2.csv', 'w'); foreach ($list as $l) { echo $l.'<br>'; if ($file) { fputs($file, $l); } } fclose($file); ?> </body> </html>
- ベストアンサー
- PHP
- noname#240930
- 回答数1
- PHP リセットボタンをクリックしたら一部リセット
メールフォームとかで、リセットボタンをクリックすると全ての値がリセットしてしまうのですが、全部ではなく、一部だけリセットしないといったものは可能でしょうか? <input size="20" type="date" name="日付" /> /* リセットボタン */ <input type="reset" value="リセット" />
- PHPで切り替えてもモバイルフレンドリーになる?
Googleがスマホに対応してないサイトは順位を下げることを決めたそうですね。 モバイルフレンドリーになるには、画面の幅によってCSSを切り替えたりして、サイトの幅やレイアウトなどに変化をつけるのが基本のようですが、これ、PHPなどでブラウザの情報を元に表示するファイルやHTMLなどを変える方法だと、どう判断されるのでしょうか? HTMLのヘッダ部分に、CSSの切り替えタグがあって、その先のCSSの内容によってクローラーが判断しているなら、PHPなどでHTMLの出力内容そのものを変えたり、PCやスマホによって.htaccessで専用ページに飛ばす方法じゃ、ただのPCサイトと判断されそうですよね。 それともクローラー自体がPC向け用とスマホ向け用に別れていて、PHPなどの切り替えにも対応できているのか・・・。 この辺、どうなってるんでしょうか?
- ベストアンサー
- SEO
- noname#235729
- 回答数2
