【PHP】下らねぇ質問はここに書き込みやがれ 72
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2008/08/16(土) 12:01:25ID:???PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 71
http://pc11.2ch.net/test/read.cgi/php/1216291372/
◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0338326
2008/08/21(木) 18:41:55ID:cSskhM/Gやってませんw
つーかmb_send_mailだと勝手にやってくれて便利な感じです。
>>334
なるほど・・・
僕が読んだ本だとみんな一様に日本語使うときはmb_send_mail使いやがれって書いてあったから
そのまま鵜呑みにするところでした。
0339nobodyさん
2008/08/21(木) 18:48:28ID:???IT関係の本って、誤植が多いし著者独自の考えがあるから、
話半分で読んでいるよ。
広辞苑のような本とITの本とレベルや信頼度が雲泥の差。
0340339
2008/08/21(木) 18:52:26ID:???別に飛び抜けて技術力が高いというわけではない。
そういう人が書いているのを、全部信じようとするとはまる。
0341nobodyさん
2008/08/21(木) 19:08:48ID:b3OQUppz現在は別ファイルに祝日を記述して、それを読み込んで
判定しているのですが、もっと簡素化できる方法や
ライブラリはないのでしょうか?
0343nobodyさん
2008/08/21(木) 19:20:15ID:???祝日は、「国民の祝日に関する法律」という法律で決まっているから、
総務省の法律データーベースから法令データを取得して、
その条文の中に書いてある月日を取得して、判定するのはどう?
0344nobodyさん
2008/08/21(木) 19:22:34ID:???0346nobodyさん
2008/08/21(木) 22:24:51ID:???ショボノートなので重いIDEは使えないんです><
0347nobodyさん
2008/08/21(木) 22:50:37ID:???現在、登録されたユーザにメールを一斉に送るものを作っています。
メールを送る部分で、単にmb_send_mailとするとメールが送れるのですが、
foreachなどのループの中でこれを行うとメールが全く送れません。
メールの送信にはmailを使っています。
サーバは、さくらインターネットのレンタルサーバ(スタンダード)です。
プログラムはこんな感じです。
$addList = DBから取得したアドレスの配列
foreach($addList as $add)
{
// この部分では送れない
mail($add, $subject, $message, 'From: '.$from);
}
// この部分では送れる
mail($addList[0], $subject, $message, 'From: '.$from);
mail($addList[1], $subject, $message, 'From: '.$from);
mail($addList[2], $subject, $message, 'From: '.$from);
スパムとかの対策でカットされてるんでしょうか。
うまい回避法をご存じの方、ぜひお願いします。
0349nobodyさん
2008/08/21(木) 22:58:49ID:???今はせいぜい3通とかで、多くても5通です。
うまく動けば、20〜50通くらいで運用したいと思っているんですが・・・。
0350nobodyさん
2008/08/21(木) 22:59:45ID:???当店の雰囲気に合った服装というのは勿論ですが、
何よりもその服装がお客様ご自身に合っているかどうか、
という点を最も重視してチェックさせて頂いております。
特別に決まりや基準があるわけではなくファッションの基本と同じですので、
難しくお考えにならずにご来店頂ければと思います。
0351nobodyさん
2008/08/21(木) 23:17:52ID:cSskhM/G何でループさせないの?
0353nobodyさん
2008/08/21(木) 23:22:53ID:???あのな、NOTICEレベルのエラーも表示させてみ
ループ内で使ってる変数が未定義とか、そんなオチだろうよ。
0354nobodyさん
2008/08/21(木) 23:38:39ID:2yWxB/YG0355nobodyさん
2008/08/22(金) 00:03:05ID:???foreach内で$addとかの変数をvar_dumpしてみ
普通foreachの外でmail出来てforeach内でループ出来ないってことはない
スコープが透過だからな
それと余談だが、一斉送信はsendmailよりSMTPがいい
sendmailは一通ずつコネクションを切るからオーバーヘッドがウザす
さくらでSMTP使えれば、だが
0356nobodyさん
2008/08/22(金) 00:18:15ID:???>> 355さん
ありがとうございます!
ご指摘いただいて、一通りエラーが出ないようにしてみたらメールが送られてきました。
お騒がせして申し訳ありません…。
もう少しきちんと作って確認をしてみます。
メールもSMTPで送れそうだったらそちらで送ることにします。
ありがとうございました!
0357nobodyさん
2008/08/22(金) 00:19:44ID:UcmQnfu1詳しいのか詳しくないのかわけわからんコメントですねw
上と下とが別人みたいw
0358nobodyさん
2008/08/22(金) 00:22:22ID:UcmQnfu1sendmailは一通ずつコネクションを切るからオーバーヘッドがウザす
postfixやqmailなら・・・どうだかしらないけどw
0359355
2008/08/22(金) 02:44:01ID:???sendmailと言ったのはPHPのmail系関数にwrapされてる実装の方
つまりphp.iniのsendmail_pathで指定したコマンドを経由して送信する機能のことね
SMTPと言ったのは25や587ポートで内部や外部のSMTPにコネクションを開いて送信する方
こっちはコネクションを自分で閉じるから接続・切断のオーバーヘッドが少ない
自分で実装するのが面倒な時はPEAR::SMTPを使う手もある
>>355 「foreach内でループ出来ない」
ボケとる・・・
0360nobodyさん
2008/08/22(金) 02:46:30ID:nRWBXbXV文字の0〜9をパターンマッチングさせる時の正規表現はどのように書けば
よいのでしょうか?
↓だと数字の0〜9のパターンマッチングになるため、$search_numberに
文字列の0〜9(例:文字列で777)が入っていても0として扱われてしまいます。
preg_match("[0-9]",$search_number)
0361nobodyさん
2008/08/22(金) 02:47:54ID:XmBnafOM$smtp->connect()時に、タイムアウトをたとえば10秒に指定していても、
回線を切って実行してみると、エラーを返してくるのが1分後くらいです。
何が問題なのでしょうか?
0363361
2008/08/22(金) 03:08:54ID:???回線切ってたからここで引っかかってたのかも
っていうか、この関数タイムアウト自体がないんですね
PHPテラアホス
0365nobodyさん
2008/08/22(金) 09:06:51ID:???まぁしかたないと思う
Cの同名関数を利用してるしな
ソケットで独自に実装すればstream_set_timeoutが使えるのにな
0366nobodyさん
2008/08/22(金) 09:09:53ID:???sharedの場合soファイルが出来るだけ
iniの設定変えてなかったらエラーとか出ない
ただ関数がネーヨというエラーは出るがな
0367nobodyさん
2008/08/22(金) 09:19:01ID:5EVYna0bphpで作ったサイトで運用してますが、
CPU Load Avarageというのを見ています。
これって、1を超えると、CPUの使用率は常に100%という関係になるのでしょうか?
私の場合、1を常に超えた状態なので、phpが暴走するのではないかと不安視しています。
サーバを増やすなどの措置が必要になりますか?
アドバイスを教えてください。
0368nobodyさん
2008/08/22(金) 09:21:22ID:???0369nobodyさん
2008/08/22(金) 09:28:56ID:5EVYna0bすみません。具体的なイメージなんですが、
私が不安視しているのはwindowsの場合とかって、
CPUの使用率が100%になると暴走状態になって、再起動することになりますよね。
そのような状態がサーバーで起こっているとしたら、
新しく起動されたphpが暴走して、どんな悪影響を及ぼすか不安視しています。
windowsみたいに、画面が二重に表示されたり、マウスの軌跡がずらずら並んだり、
そのようなことがphp上で発生する状態なのでしょうか?
0370nobodyさん
2008/08/22(金) 09:40:05ID:???0371nobodyさん
2008/08/22(金) 09:50:22ID:5EVYna0bたしかにそうですね。すみません。
会社命令で、その中でパソコンに詳しいのが私だけで、
といっても、ホームページを作った経験があるだけなんですが、
それで会社の全商品を表示したりするサイトなどを一人で立ち上げることになり、
会社から飼ってもらった本を片手にやっと、できったという感じです。
OSは本の付録についていたFreeeBSDを使っています。
ですが、その本でCPU AVERAGEを見ろとかいてあり、みたら1を常に超えている状態になっていて、
困っています。会社に他に空いているパソコンがないので、
別のパソコンを買うにも、稟議書みたいなものを通さないと行けないので、
面倒だったりします。やはり、もう一台必要でしょうか?
0372nobodyさん
2008/08/22(金) 09:59:18ID:???その状態は大変危険な状態です。しかも、業務につかっているなら尚更です。
とりあえず、ここから見積もりを取って、早急に上司と掛けあうのが先決です。
http://click.linksynergy.com/fs-bin/click?id=nEMDVbzUNEo&offerid=113065.10001436&type=3&subid=0
今現在も稼働しているなら、大急ぎで対応してください。
0373nobodyさん
2008/08/22(金) 09:59:57ID:???topコマンドの「CPU Load Avarage」か?
ほとんど負荷のない時に1が表示され、負荷の高い場合は最大で10だ
負荷の高さを10段階で評価する
ちなみにスレ違い
PHPがCPUの負荷で暴走することはまずない(せいぜいタイムアウト
メモリ不足でcoreを吐くことはある
0374nobodyさん
2008/08/22(金) 10:11:34ID:5EVYna0bお返事、大変ありがとうございます。
phpが暴走することがないということで、それは安心しました。
ただ、危険な状態には変わりないんですね。
教えられたサイトで、さっそく見積もりを取ってみます。
ありがとうございございました。あと、スレ違いになってしまい申し訳ありませんでした。
0375nobodyさん
2008/08/22(金) 10:47:30ID:???>>372は釣りだと思うが・・・
CPU面ではまったく負荷が感じられないわけだし
どんなソースを書いてるか知らないからこれだけでは危険と判断出来ん
(スペック的に現状では問題ない)
素人が企業サイト、これは危険だがな
0376nobodyさん
2008/08/22(金) 11:25:27ID:UcmQnfu1コストの話なら逆にそっちのほうがかかる。ユーの無駄な人件費が
0377nobodyさん
2008/08/22(金) 11:30:55ID:???何も負荷がない時のロードアベレージは、1じゃなくて0だろ。
誰も突っ込まないところを見ると、このスレの住民は相当レベルが低そう。
0378nobodyさん
2008/08/22(金) 11:43:11ID:SUat73CA>>373 もCPU Load Avarage
とか書いてる時点で釣りだと思うんだけど……。
Load Averageのことだとしても、説明変だし。
0380nobodyさん
2008/08/22(金) 12:00:50ID:???0382nobodyさん
2008/08/22(金) 12:06:12ID:???0383nobodyさん
2008/08/22(金) 12:17:30ID:???俺も実は知ってました、それ位赤ちゃんでも分かる、みたいな言いぶり。
こういう奴周りにもいるが、キモイわ。
0384nobodyさん
2008/08/22(金) 12:20:07ID:???0385nobodyさん
2008/08/22(金) 12:45:45ID:q1zzzoBS0386nobodyさん
2008/08/22(金) 14:56:58ID:UcmQnfu1渓流でへたくそが投げた針が漫画みたいに口に引っかかってあたたたた〜ってなるあれだろ?
0387nobodyさん
2008/08/22(金) 15:53:59ID:fin98YtZ0388nobodyさん
2008/08/22(金) 16:02:05ID:???0389nobodyさん
2008/08/22(金) 16:37:18ID:???制作予算ねーのかよ。
0391nobodyさん
2008/08/22(金) 17:07:23ID:???0392nobodyさん
2008/08/22(金) 17:07:55ID:???0393nobodyさん
2008/08/22(金) 20:35:41ID:???memcashedで保存するのとどっちが速いですか?
ファイル操作とmemcahedの接続コストとどちらが掛かるかなんですが。
ちなみに今はファイルでやっています。
それより、良い方法がないかと模索中です。
0394nobodyさん
2008/08/22(金) 21:40:52ID:???DBとして使うなら全然違うがセッションでは・・・
phpのセッションもコンストラクトとデストラクトでのみファイルアクセスを行うから
その時はメモリよりオーバーヘッドが豆粒程度に大きいけど
途中の読み書きはメモリ上に展開されたセッション変数に収まる
結局メモリだからほとんど同じ
0395nobodyさん
2008/08/22(金) 22:27:08ID:???> phpのセッションもコンストラクトとデストラクトでのみファイルアクセスを行うから
そうなんですね。それなら、大して変わりなさそうですね。
というより、ディスクよりメインメモリーの方が小さいことを考えると、
アクセス数が増えるこを考慮してファイルの方がリスクが少ないともいえますね。
であれば、冒険せずにファイルでやってみます。
ありがとうございます!!
0396nobodyさん
2008/08/22(金) 22:50:09ID:???0397nobodyさん
2008/08/23(土) 00:45:53ID:???0398nobodyさん
2008/08/23(土) 14:07:17ID:5Laah46MFTP経由で不要なディレクトリが削除できなかったので、rmdir関数を利用してみたところ、以下のエラーメッセージが表示されました。
エラーメッセージ:
Warning: rmdir($dir) [function.rmdir]: Directory not empty in /***.com/***.html on line 2
経過:rmdir関数は、ディレクトリの中にファイルが存在した場合削除に失敗する仕様なので上記のエラーメッセージを吐き出したものと考えられますが、ディレクトリの中身は空(0 Bytes)です。
試しに、ディレクトリの中身ごと削除を行うという「system("rm -rf $dir");」を実行させてみましたが、こちらはエラーメッセージは吐き出しませんが、ディレクトリの削除もされませんでした。
こういう場合の原因は何が考えられますか?
また、どう対処すれば良いでしょう。
サーバのOS:不明(無料レンタルサーバ)
PHP 5.1.6
参考:ディレクトリまたはファイルの所有者は自分のIDになっています。
0400nobodyさん
2008/08/23(土) 15:12:43ID:???そのディレクトリの親ディレクトリの書き込み属性とか
0401nobodyさん
2008/08/23(土) 15:18:06ID:???パーミッションエラーじゃないから違うとは思うが、
そのディレクトリの親ディレクトリの書き込み属性とか
書き込み属性がパーミッションだっつうのw
0402nobodyさん
2008/08/23(土) 15:35:07ID:???0403nobodyさん
2008/08/23(土) 15:48:03ID:???0404398
2008/08/23(土) 15:50:48ID:5Laah46M変わった名前のファイルは作成しませんでしたし、ファイルは全て削除されたようで空です。
サーバのPHP設定というのはどういう事になりますか?
察しが悪くすみません
>>400
パーミッションは変更出来るので色々試してみましたが、結果は変わりませんでした。
>>402
所有権は自分のIDになっています。
ので、属性変更は可能です。
ディレクトリが削除できません。
0406nobodyさん
2008/08/23(土) 17:10:43ID:???パーミッションどうこうでもnot emptyが出力されるはずは・・・
scandir等でディレクトリの中を出力してみたら?
.で始まるファイルを隠しファイルとしている場合がある
「.」「..」は無視な
0407nobodyさん
2008/08/23(土) 17:33:06ID:MJFU9Zb0掲示板にパスワードを入力してチェックする際に
半角英数字4〜8文字かどうか調べたいのですが。
if(preg_match("/[0-9a-zA-Z]{4,8}/", $pass)
これでいけるかと思っていたらこれだと
半角英数字4〜8文字があるとok になってしまうらしく
(半角英数字10文字)例)1234567890
(記号有り)例)****1234++
もokになってしまいます。
正しい記述はどうするんでしょう?
0408398
2008/08/23(土) 17:36:35ID:5Laah46Mそういう手がありましたか・・・!(頭弱くてすみません
scandir活用させてもらったところ
しっかり隠しファイルがいつの間にか存在していました。
「0 Bytes」という表示から本当に中身は空なのだと思い込んでいたせいで混乱しておりました。
地道にリストアップして削除していきます
助かりました、ありがとうございます!
0409407
2008/08/23(土) 17:55:07ID:MJFU9Zb0^[0-9a-zA-Z]{4,8}$
先頭と終端を指定していなかった。
お手数をおかけしました。
0410nobodyさん
2008/08/23(土) 20:19:17ID:tD80K7qSチェックする関数を教えて下さいませ。お願いします。
【OS】CentOS4
【PHP】PHP5
【DBサーバー】MYSQL5.0
です。
0412nobodyさん
2008/08/23(土) 20:57:45ID:tD80K7qSまじですか?
PHPって、GG佐藤以下ですねw
0413nobodyさん
2008/08/23(土) 21:27:58ID:pIRCIy4o例えばURLから example.php?param1=aaa¶m2=bbb のように2つのパラメータを読み込む場合、
XML形式のサイトマップなどからのアクセスだと、
example.php?param1=aaa&param2=bbb というURL表示からの読み込みとなるため
"amp;"がパラメータ名の一部として解釈されてしまい、正しいデータのやりとりがなされません。
この問題をphpプログラム内にて解決するにはどうしたらよろしいでしょうか?
ちなみに.htaccessでのRewriteRule機能を利用しての解決はできませんでした。
初歩的な質問かもしれませんが、どなたか教えていただけないでしょうか?
よろしくお願い致します。
(php5.2 サーバーはKagoyaの専用サーバープランを使用しています。)
0414nobodyさん
2008/08/23(土) 21:32:39ID:???お前が勉強不足なのだよ
そもそも到着したかどうかなんて分かるわけないじゃん
宛先のMXからリレーしてるかもしれんのに
どうしても必要ならエンベロープに届くエラーメールでもチェックするんだな
0417nobodyさん
2008/08/23(土) 21:41:06ID:bsrwSGnByear month day text
2008 8 22 aaaa
2008 8 22 bbbb
2008 8 23 cccc
・
・
・
という感じでデータがあって
ページ上には
2008/8/22
aaaa
bbbb
2008/8/23
cccc
という風に出したいです。
0419nobodyさん
2008/08/23(土) 22:05:47ID:???配列を使えばいいんじゃね?
$recodes // mysqlからfetchallしたようなやつ(fetchallはPDOだが)
$list = array();
foreach($recode AS $row){
$date = *****(2008/8/22になるように)
$data = *****(aaaaになるように)
if(!isset($list[$date])){ $list[$date][] = $date."<br />"; }
$list[$date][] = $data."<br />";
}
implode("<br />", $list);
まぁ考え方の1つってことで
0420nobodyさん
2008/08/23(土) 22:07:07ID:???$recodes // mysqlからfetchallしたようなやつ(fetchallはPDOだが)
$list = array();
foreach($recode AS $row){
$date = *****(2008/8/22になるように)
$data = *****(aaaaになるように)
if(!isset($list[$date])){ $list[$date] .= $date."<br />"; }
$list[$date] .= $data."<br />";
}
implode("<br />", $list);
0421nobodyさん
2008/08/23(土) 22:14:23ID:???>>413,>>418です。
URL文字列を$HTTP_GET_VARSとして、
$HTTP_GET_VARS = html_entity_decode($HTTP_GET_VARS);
と該当ページに挿入したのですが
Warning: html_entity_decode() expects parameter 1 to be string というメッセージが出て
上手くいきませんでした。この関数の正しい使用法を教えていただけないでしょうか?
0422nobodyさん
2008/08/23(土) 22:22:42ID:???parse_str(html_entity_decode($_SERVER['QUERY_STRING']), $argv);
print_r($argv);
ってやってみ
0424417
2008/08/23(土) 23:11:04ID:bsrwSGnBなんとなく見えました!
0425nobodyさん
2008/08/24(日) 02:12:36ID:tkAECmwhテキストエリアから入力された改行コードを<br>に変換するのは以下のコードでできるのですが、
$ensql = preg_replace("/(\r\n|\r|\n)/","<br>",$ensql);
逆に<br>を改行コードに変換するのはどうすればよろしいのでしょうか?
編集機能を持たせようと思い改良を加えているのですが・・・
\r\nでしたらWindows系ですし、\nでしたらUnix系ですし・・・・
0427nobodyさん
2008/08/24(日) 02:33:21ID:???ためして不具合でてからいってくれ
0428nobodyさん
2008/08/24(日) 02:34:37ID:tkAECmwhありがとうございます(;´Д`)
0429nobodyさん
2008/08/24(日) 09:50:04ID:???テキストモードでオープンしたファイルに\nで書き込むと
勝手に\r\nに変換される。
テキストモードというのがあるのは、そういうこと。
0430nobodyさん
2008/08/24(日) 09:53:19ID:wBtpqVh7ttp://fs-server.net/reference.htmlにある
他サイトの表示内容を取得 ⇒ ##GET_SITE##
はどの様になってるのでしょうか?
readfile()で全体を取り込むのはできたのですが開始テキストと終了テキストを指定するところが分かりません。
よろしくお願いします。
0431nobodyさん
2008/08/24(日) 11:17:31ID:???0433nobodyさん
2008/08/24(日) 18:12:19ID:???これはあまりよろしくないらしいんですが
他に何か解決方法はあるんですか?
レンタルサーバなのであまり細かい設定はできないのですが
0435nobodyさん
2008/08/24(日) 19:02:06ID:???文字化けは主にサーバ側で自動変換させるから生じる
この際nemeでbinaryを指定することをオススメ
無変換で通信するから化けることはまずない
0436nobodyさん
2008/08/24(日) 19:38:55ID:???あ、それ俺も聞きたい。スレチだけど。
何かのSQL投げる度に、そのSQL実行するから、SQLの実行数が倍になってしまう。
0437nobodyさん
2008/08/24(日) 19:47:07ID:???■ このスレッドは過去ログ倉庫に格納されています