【PHP】下らねぇ質問はここに書き込みやがれ 62
レス数が1000を超えています。これ以上書き込みはできません。
0001nobodyさん
2008/01/10(木) 18:09:19ID:???PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 61
http://pc11.2ch.net/test/read.cgi/php/1198002831/
◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0910nobodyさん
2008/01/26(土) 19:43:54ID:???頭の中には copy unlink とあとdate関数とかの時間系の関数 があるんですが、
「3日後にunlinkを実行」をどこに指定してやればいいのかで困っています。クッキーだと引数にあったんですが、
0911nobodyさん
2008/01/26(土) 19:53:25ID:???0912nobodyさん
2008/01/26(土) 21:05:43ID:???自動的に判定処理を実行させたいのか(させたいなら間隔はいくらか)
もしくはユーザがアクセスしたときに判定処理を実行できればいいのか
どちらかによる
0913nobodyさん
2008/01/26(土) 21:49:32ID:???0914nobodyさん
2008/01/26(土) 21:59:22ID:???現在の時間を調べる・・・(2)
(2)−(1)>=3日間 が真だったらファイル削除
という話ではなくて?
0915nobodyさん
2008/01/26(土) 22:16:21ID:???その場合 その削除プログラムをどこに組み込むか や コピーしたファイルの名前をどこかに保存する
とかいうことも考えないといけなくなる。
0916nobodyさん
2008/01/26(土) 22:19:41ID:???参考としてファイルを削除するソースを書いておく。
削除対象のファイル名:西暦4桁+月2桁+日2桁+拡張子 (例)20080128.log
今日の日付の取得と削除対象の日の取得は、プログラムをする必要があるが、
簡潔にするため文字列をセットしている。
※このソースは、実行するphpファイルも削除しようとするから注意。
<?php
// 今日の日を取得する。
$date = "20080126";
// 削除対象となる日の設定(これ未満が削除)
$del_date = "20080123";
// ディレクトリのファイルを調べる。
$res_dir = opendir( '.' );
//ディレクトリ内のファイル名を1つずつ取得
while( $file_name = readdir( $res_dir ) ){
$file_date = substr($file_name, 0, 8);
// 対象となる日付より少ないかのチェック。
if($file_date < $del_date){
// ファイルを削除する。
unlink($file_name);
}else{
// 何もしない。
}
}
//ディレクトリ・ハンドルをクローズ
closedir( $res_dir );
?>
0917nobodyさん
2008/01/26(土) 22:25:31ID:???http://framework.zend.com/manual/ja/zend.date.html
0918nobodyさん
2008/01/26(土) 23:19:04ID:???なんだこの後付け設定ww
0919nobodyさん
2008/01/26(土) 23:21:14ID:???0920nobodyさん
2008/01/26(土) 23:43:30ID:???pearのHTTP_Downloadがダウンローダーの実装を手助けしてくれる。
>>916
何もしないなら無駄なブロックは無くそうぜ
0921nobodyさん
2008/01/27(日) 00:27:25ID:???0922nobodyさん
2008/01/27(日) 00:53:44ID:???/ ― \ ┏┛/ ―\ ┏┛
/ (●) \ヽ ・. /ノ (●)\ ・
/ (⌒ (●) /. | (●) ⌒)\
/  ̄ヽ__) / | (__ノ ̄ |
/´ ___/ \ /
| \ \ _ノ
| | /´ `\
--------------------------------------
このスレはあなたにとって役に立ちましたか?
○ 非常に役にたった
○ 役にたった
○ どちらともいえない
○ 役に立たなかった
● 全く役にたたなかった
0923nobodyさん
2008/01/27(日) 00:58:59ID:IFsQu3P4if(($name=="yamada")||($name=="tanaka")){〜〜;}
条件部分で、使ってる変数が同じなのを利用してもっとシンプルに書く書き方がないか
知りたいんです ないんでしょうか?
0924nobodyさん
2008/01/27(日) 01:04:47ID:???switch($name){
case "yamada":
処理1();
break;
case "tanaka":
処理2();
break;
default:
処理3();
}
0926nobodyさん
2008/01/27(日) 01:09:53ID:???>>820
エスケープでできました
スタイルシートも使ってやってみようと思います
以後気をつけます
ありがとうございました!
0927nobodyさん
2008/01/27(日) 01:17:10ID:???もしかしたらif文の内容が>>923みたいな場合だけじゃないかもしれないし
選択肢の一例として挙げただけだから。
0928nobodyさん
2008/01/27(日) 01:20:16ID:???笑うことないだろ。
ファイルをコピーして作ってから3日後には削除するという
ことだから、そういう命名規則だとプログラム上で便利だという意味だ。
>>919
「なんか」って何だよ
>>920
無駄なブロックは消しておきます。
0929nobodyさん
2008/01/27(日) 01:25:56ID:???勝手に要件を変更するなよ。
0930nobodyさん
2008/01/27(日) 01:27:44ID:???文字列の条件候補がもっと多い場合は、あらかじめ配列にいれて
おいてループしながら確認する場合が多い。
何を持ってスマートというかにもよるけれど、この方法だと、
条件確認部分が横に長くならないし、候補の文字列格納部分を
見やすく書くことが出来る。
0932nobodyさん
2008/01/27(日) 01:33:31ID:???> 普通は作成日とか更新日を見るもんだろ。
そうなの?あおりとかじゃなくて、どういう状況の時にそれがあるの?
定期バックアップとか取るのなら、ファイル名にしとけば早いと
思ってたけど、ファイル名取得は重いって事?
0933923
2008/01/27(日) 01:37:13ID:???if文て三項演算子みたいな面白い表現もあるので、他にないかなーって思ってたんですが、、
ないっぽいですね
if($name=="yamada"||"tanaka"||"kato"){print "success";}else{print "miss!";}
とかできたらいいのに。923みたいにカッコがどんどん増えてくと見づらくてしょうがない
どうもありがとうございました switchも適宜使いますね>>924
0934923
2008/01/27(日) 01:42:39ID:???おお、ありがとう!
in_arrayって知りませんでした、大発見て気分です!
使わせていただきます、ありがとう!
0936nobodyさん
2008/01/27(日) 02:47:34ID:???0937nobodyさん
2008/01/27(日) 02:49:47ID:???if( preg_match('/^(yamada|tanaka|kato)$/', $name) ){ print "success"; }
else{ print "miss!"; }
みたいにすればできるけど正規表現理解せずにやっても別の問題起きかねないしその方法のが無難かな。
>>880
>| <Directory "/usr/local/apache2/htdocs/member>
手入力なら関係ないかもしれんけどダブルクオート閉じてなくない?
0938nobodyさん
2008/01/27(日) 02:50:30ID:???0939nobodyさん
2008/01/27(日) 02:51:19ID:???0940nobodyさん
2008/01/27(日) 04:54:36ID:???<!-- test -->
<p>abcd</p>
efgh
ijkl
<!-- /test -->
というのの<!-- test -->と<!-- /test -->の間を抽出したいのですが
preg_match('/<!-- test -->(.*)<!-- test -->/', $buf,$match);
echo $match[0];
でうまくいきません
どうすればいいでしょうか
0941nobodyさん
2008/01/27(日) 04:55:39ID:???preg_match('/<!-- test -->(.*)<!-- /test -->/', $buf,$match);
です
0943nobodyさん
2008/01/27(日) 05:13:57ID:???じゃ
preg_match("/<!-- test -->(.*)<!-- \/test -->/s", $buf, $match);
echo $match[1];
で
$match[0]だとマッチした全体が表示されるので(.*)のとこは[1]ね
0944nobodyさん
2008/01/27(日) 05:35:40ID:???できました
ありがとうございます
0945初心者です
2008/01/27(日) 06:05:29ID:fV3Opxe0phpでmysqlにレコードを追加したいのですが、
$area = 5;
$sql = "insert into area_tbl (area) values ('.$area.')";
$res = mysql_db_query($db,$sql);
では追加できるのですが、
$area = array(10,10);
では追加できません。
arrayの使い方もよくわからない素人ですが
何卒よろしくお願いします。
0946nobodyさん
2008/01/27(日) 06:14:46ID:???次
0947初心者です
2008/01/27(日) 06:16:46ID:fV3Opxe00948nobodyさん
2008/01/27(日) 08:19:55ID:???なぜかは解らんがあれは正規表現で問題があった
多分あれが書かれた時のPHPのバージョンと今のバージョンでは
正規表現の書き方が多少変わったんじゃないかと
正規表現をこれに変更
@(\w+)=([\'"]?)([^\s\2,]+)\2@
$data[$m[1]] = $m[3] ? $m[3] : $m[4];
この部分を
$data[$m[1]] = $m[3];
に変更でいけると思う
0949nobodyさん
2008/01/27(日) 09:05:40ID:???君らphpとか使ってて恥ずかしくないの?
0950nobodyさん
2008/01/27(日) 12:10:01ID:???MSなんか関係あるの?出資や買収でもしたってニュースあったっけ?
IISでPHPに(ある程度)対応するし、提携もしたからその話なのかな。
>君らphpとか使ってて恥ずかしくないの?
んじゃまずYahooとかにその台詞いいなよ。
0951nobodyさん
2008/01/27(日) 12:47:09ID:???言ってみて
0952nobodyさん
2008/01/27(日) 13:02:37ID:???>>949さんは、きっと違いますよね^^
0953nobodyさん
2008/01/27(日) 13:29:23ID:???array_map
array_filter
array_reduce
aray_walk
create_function
とかを使うと、少し気が紛れる。おれはだけど。
0954”削除”の件を質問したもの
2008/01/27(日) 13:37:35ID:???この削除プログラムをどこに利用するかというと 仮登録→本登録 っていうありきたりの流れの中で
仮登録が済んだら本登録画面をmd5で名前を適当に変えてコピってユーザに渡しといて3日後には消す って感じで使いたいんです。
ですからファイル名自体に日付け っていうのはちょっと・・・です
やはりコピったときに コピったファイル名と日付け をデータベースにいれといて そのあとに消す
っていうのが一番オーソドックスな方法ですかね。。。
dbを参照して自動消去するプログラムは1日おきにcronから実行させるって感じで。
このプログラム自体(セキュリティー面やら)みんなに叩かれそうです
0955nobodyさん
2008/01/27(日) 13:37:58ID:???ご両親もそうなのかい?
0956nobodyさん
2008/01/27(日) 14:02:19ID:???なんでファイルを使う必要があるのかそもそも分からん。
要するに、仮登録がすんだら、有効期限3日の間に本登録にしないと
仮登録のデータ消しますよ?ってことだよね。
そのユーザー固有のデータと仮登録日をDBに記録しといて、
「本登録画面」とやらはこのデータを参照するPHPで表示すればいい
気がするんだけど。
物理的にファイルとして存在した方がいいって場合ももちろんある
んだけど、こういうやり方も検討した方がいいかもね。
0957nobodyさん
2008/01/27(日) 14:07:58ID:???ま、掲示板なんかで、サーバの負荷を減らすために
ログファイルからhtmlファイルを作っておいて、
参照は〜.phpではなく、〜.htmlにアクセスさせる
というものがあるけれど、それにあたるものかな?
0958nobodyさん
2008/01/27(日) 14:23:04ID:???{
echo "<p>3~10文字ですよ</p>";
exit();
}
上で質問したものですが、、、これは正規表現として正しい?
0959”削除”の件を質問したもの
2008/01/27(日) 14:31:34ID:???確かにそうですね。プログラムを作る初期の段階で「ファイルをつくらなきゃ」っていう固定観念が生まれてたみたいです。
とすると、ファイルを削除する必要がなくなって 本登録時にDBにアクセスして今の日付けと比較すればいいわけですね。
解決?プログラミング作業に戻ってみます。どうもありがとうございます。
0961nobodyさん
2008/01/27(日) 14:41:31ID:???0962nobodyさん
2008/01/27(日) 14:43:04ID:???・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
0963nobodyさん
2008/01/27(日) 14:52:14ID:???0964nobodyさん
2008/01/27(日) 15:03:42ID:???オーバーチュアーのコンバージョンカウンタを突っ込むには、
<html><head>(タグ)</head><body></body></html>を加えないとダメ?
それとももっと簡素化出来る方法がありますか?
ど素人につき、意味がわからない質問になっているかもしれません。
0965nobodyさん
2008/01/27(日) 15:04:41ID:cIwbO15Iid漏れ
0966nobodyさん
2008/01/27(日) 15:07:56ID:???0967nobodyさん
2008/01/27(日) 15:13:30ID:???0968nobodyさん
2008/01/27(日) 15:26:35ID:???0970nobodyさん
2008/01/27(日) 15:31:48ID:cIwbO15I説明ページ→転送ページ(PHP)→商品ページ
という状況で、転送に便利なPHPを使っていたんですけど、
そこに効果測定用のオーバーチュアーのコンバージョンカウンタを
埋め込みたいのです。
どうやったら埋め込めますか?という初歩的な質問です。
コンバージョンカウンタはJAVA SCRIPTで出来ています。
0971nobodyさん
2008/01/27(日) 15:46:18ID:???ブラウザ依存かもしれんけど
0972nobodyさん
2008/01/27(日) 15:52:28ID:???お陰で自分で考える手間が省けるので、時間の節約にもなって仕事にゆとりが出てきた。
今日は、休日だから日頃のお礼を言うよ。サンクス。
0973nobodyさん
2008/01/27(日) 16:10:53ID:jK32tI//$sql = "SELECT 1gyagu FROM pre_appli WHERE id = 1";
$query = mysql_query($sql,$conn) or die("クエリ失敗");
$result = mysql_result($query,0);
print $result;
id =1 の一発ギャグが表示される
アルミ缶の(ry
$sql = "SELECT 1gyagu FROM pre_appli WHERE 1gyagu = "アルミ缶の(ry"";
$query = mysql_query($sql,$conn) or die("クエリ失敗");
$result = mysql_result($query,0);
print $result;
Parse Error
なぜ?
0974nobodyさん
2008/01/27(日) 16:16:13ID:???最後の " がひとつ多い
0975nobodyさん
2008/01/27(日) 16:18:34ID:???1gyagu = \"アルミ缶の(ry\"";
だっけか
0976973
2008/01/27(日) 16:25:16ID:jK32tI//>>975 うは。うまくいきました。すいません\ってどういう意味でつか???
0977nobodyさん
2008/01/27(日) 16:29:36ID:???0978nobodyさん
2008/01/27(日) 16:32:42ID:???http://jp.php.net/manual/ja/language.types.string.php
というかSQLに於いて文字列リテラルはシングルクォート。
SQLでダブルクォートはテーブルやコラム名の大文字小文字を区別したり、
予約語と被らないようにするための物。
0979nobodyさん
2008/01/27(日) 16:36:55ID:???基礎中の基礎だからちゃんと覚えような
0980nobodyさん
2008/01/27(日) 16:44:58ID:???すごいんだかすごくないんだか
0981nobodyさん
2008/01/27(日) 16:49:37ID:IHMN/CyjJava Scriptの使用はなし、
あくまでPHP単体での取得方法があればお願いします。
0982973
2008/01/27(日) 17:19:50ID:jK32tI//0985nobodyさん
2008/01/27(日) 17:44:37ID:cIwbO15I有り難うございます。
となると、どうやるんでしょうか(^^;
0986nobodyさん
2008/01/27(日) 17:45:55ID:DYynvymq<html>
<body>
こんにちは みなさん
お元気ですか
</body>
</html>
というhtmlファイルがあったとして、
<body>から</body>の間だけ取得するにはどうしたらいいですか?
$file = file_get_contents ("hello.html");
この後どうしたらいいのでしょうか
0988nobodyさん
2008/01/27(日) 17:56:44ID:DYynvymqありがとうございました
0989973
2008/01/27(日) 18:18:31ID:jK32tI//http://pc11.2ch.net/test/read.cgi/php/1201425479/
0991nobodyさん
2008/01/27(日) 18:22:16ID:IHMN/Cyj>>983
それでOKです。串さされたらどうしようもないですし。
方法を教えてもらえませんか?
専用の変数があるんでしょうか?
0992nobodyさん
2008/01/27(日) 18:22:17ID:???なんで62から61になるんだよ
0993nobodyさん
2008/01/27(日) 18:23:03ID:jK32tI//0994nobodyさん
2008/01/27(日) 18:24:51ID:???0995nobodyさん
2008/01/27(日) 18:26:39ID:???0996nobodyさん
2008/01/27(日) 18:27:49ID:+7hlQOJN,,、,、,,, / \〇ノゝ∩ < 野朗共!1000取り合戦、いくぞゴルァ!! ,,、,、,,,
/三√ ゚Д゚) / \____________ ,,、,、,,,
/三/| ゚U゚|\ ,,、,、,,, ,,、,、,,,
,,、,、,,, U (:::::::::::) ,,、,、,,, \オーーーーーーーッ!!/
//三/|三|\ ∧_∧∧_∧ ∧_∧∧_∧∧_∧∧_∧
∪ ∪ ( ) ( ) ( ) )
,,、,、,,, ,,、,、,,, ∧_∧∧_∧∧_∧ ∧_∧∧_∧∧_∧∧_∧
,,、,、,,, ( ) ( ) ( ) ( )
0997nobodyさん
2008/01/27(日) 18:28:28ID:IHMN/Cyj0998nobodyさん
2008/01/27(日) 18:29:46ID:???0999nobodyさん
2008/01/27(日) 18:29:57ID:jK32tI//1000nobodyさん
2008/01/27(日) 18:30:02ID:Nkn4j03s10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。