トップページ⇒php
1001コメント336KB

【PHP】下らねぇ質問はここに書き込みやがれ 34

レス数が1000を超えています。これ以上書き込みはできません。
0001nobodyさん2006/12/08(金) 04:22:54ID:???
PHPに関する質問用スレです。ここならお前の下らない質問に回答があるかも知れません。

まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り

◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 33
http://pc8.2ch.net/test/read.cgi/php/1164209222/

◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。

◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)

◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ http://pc8.2ch.net/php/subback.html
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで http://pc8.2ch.net/db/subback.html
・速さについては自分でベンチをとってここに書け(違う環境の人も調べてくれるかも)
 しかし初心者が目的も定めずに速度を気にしたところでほとんど意味は無いぞ
0952nobodyさん2006/12/20(水) 16:08:27ID:???
よくわからんけど空白じゃなければ挿入処理を行うってしたらだめなのか?
0953nobodyさん2006/12/20(水) 16:09:28ID:???
>>952さん
…石頭な漏れですた…
ありがとう…(;ω;)
0954nobodyさん2006/12/20(水) 16:15:01ID:???
変数ごと消そうとしてたのかw
0955nobodyさん2006/12/20(水) 17:37:39ID:Vi7URSua
$date = YYYY-MM-DD
の形から
1ヵ月後は 「YYYY-MM-DDである」
5ヵ月後は 「YYYY-MM-DDである」
1年後は 「YYYY-MM-DDである」…
と出したいのですが何か良い方法はありますか?
分解して精製するしかないのでしょうか?
0956nobodyさん2006/12/20(水) 17:52:03ID:???
>>955
strtotime()
0957nobodyさん2006/12/20(水) 18:01:10ID:???
>>955
$d = getdate(strtotime($date));
mktime($d["hours"],$d["minutes"],$d["seconds"],$d["mon"] + 1,$d["mday"],$d["year"]);
mktime($d["hours"],$d["minutes"],$d["seconds"],$d["mon"] + 5,$d["mday"],$d["year"]);
mktime($d["hours"],$d["minutes"],$d["seconds"],$d["mon"] + 1,$d["mday"],$d["year"] + 1);
0958nobodyさん2006/12/20(水) 18:29:56ID:0HPzhBAY
つecho
0959nobodyさん2006/12/20(水) 18:37:29ID:Vi7URSua
>>956,>>957両氏
ありがとうございます。
[strtotime],[getdate]初めてしりました。勉強になります。
date('Y-m-d'strtotime('+1 month', strttime($date)));
date('Y-m-d'strtotime('+1 year', strttime($date)));
でできました!
ただ、来週とかができないのです…
date('Y-m-d'strtotime('next week', strttime($date)));
今一度、お力お貸しくださいませ。
09609592006/12/20(水) 18:38:32ID:Vi7URSua
訂正です。
来週末、今月末等ができません。
宜しくお願い致します。
0961nobodyさん2006/12/20(水) 18:47:44ID:???
なんでマニュアル読まないのか…
ttp://jp2.php.net/manual/ja/function.strtotime.php
0962nobodyさん2006/12/20(水) 18:52:36ID:???
そんな面白い関数があったのか、初めて知った
ってか日時関数あまり使わなかったから知る機会なかっただけかな?

>>960
<?php
echo date('Y-m-d',strtotime("now")), "<br />\n";
echo date('Y-m-d',strtotime("10 September 2000")), "<br />\n";
echo date('Y-m-d',strtotime("+1 day")), "<br />\n";
echo date('Y-m-d',strtotime("+1 week")), "<br />\n";
echo date('Y-m-d',strtotime("+1 week 2 days 4 hours 2 seconds")), "<br />\n";
echo date('Y-m-d',strtotime("next Thursday")), "<br />\n";
echo date('Y-m-d',strtotime("last Monday")), "<br />\n";
?>
0963nobodyさん2006/12/20(水) 18:53:06ID:???
DB接続抽象オブジェクトのPDOを使っているのですが、

$dbh->prepare($sql);

このprepareメソッドでフリーズしてるぽいとこまでは分かったのですが
(前後でvar_dump("hoge")を試したところ、前は成功、後は失敗(ずっと応答待ち))
対処の仕方がわかりません・・・せめてどういうエラーか分かればいいのですが方法あるんでしょうか?
よろしくお願いします
0964nobodyさん2006/12/20(水) 18:54:02ID:???
>>963
mysql_error()
0965nobodyさん2006/12/20(水) 18:56:22ID:???
>>963
例外処理やった?
09669632006/12/20(水) 19:08:08ID:XG/2ezlL
ありがとうございます。

>>例外処理
try~catchで囲んでみたんですが拾えませんでした。
原因が違うところにあるとしても、その前後では動いてるの確認(var_dump)してるので
エラーだとしたら何かしら拾えると考えたのですが・・・
応答待ちになってると考えて探った方がいいのでしょうか
09679592006/12/20(水) 19:18:57ID:Vi7URSua
>>962
せっくっす
0968nobodyさん2006/12/20(水) 19:46:27ID:???
>>962
それでも来週末・今月末はできない
0969nobodyさん2006/12/20(水) 20:03:17ID:???
>>968
来週末=来週の土曜日でいいのか?
だったら
echo date('Y-m-d-H:i:s',strtotime("+1 week Saturday")), "<br />\n";
0970nobodyさん2006/12/20(水) 20:08:50ID:???
関係ないが
>>967の明らかな適当な御礼か何かわからないのがウザい
0971nobodyさん2006/12/20(水) 20:30:59ID:t+vbPSXB
imagettftextを使って入力文字を画像にさせたのですが
機種依存文字である�@�A�B�Cなどを画像にすることができません
いろいろなフォントで試してもだめでした。
imagettftextで機種依存文字を画像にするのは無理なのでしょうか
phpのバージョンは5.1です
0972nobodyさん2006/12/20(水) 21:04:46ID:???
今月末
$d = getdate(strtotime($date));
mktime(0,0,0,$d["mon"] + 1,0,$d["year"]);
0973nobodyさん2006/12/20(水) 21:39:34ID:???
外部コマンドのオプションって配列で渡せばいいだけ?
0974nobodyさん2006/12/20(水) 21:42:13ID:???
>>973
日本語でおk
0975超初心者2006/12/20(水) 22:15:46ID:???
phpをyumでインストールしてみたのですが、
何処にインストールされたのか分からなくなってしまいました。orz
(/usr/local/lib/php.iniも見当たらない)
ファイルを検索する方法を教えてもらえないでしょうか。

レベル低すぎる質問でもうしわけないです。
0976超初心者2006/12/20(水) 22:28:01ID:???
ごめ、今のなし。
phpinfoで確認できることを思い出しました。
スレ汚してスンマソン。
0977nobodyさん2006/12/20(水) 23:21:20ID:???
php云々ではなくて、わからないならunix系を無理に使うなって話ですね。
0978nobodyさん2006/12/21(木) 02:29:17ID:???
windowsの起動の仕方とシャットダウンを勉強してこい。話はそれからだ。
0979nobodyさん2006/12/21(木) 04:28:53ID:???
よくURL抽出のプログラムとかを見かけるのですが、
指定したURLから<object>〜</object>や<title>〜</title>などのタグを指定して抽出するものはありませんか?。

参考になるサイトだけでもいいので知っている方教えてください。
0980nobodyさん2006/12/21(木) 04:54:54ID:???
>>979
正規表現。あとは自分でググレカス。
0981nobodyさん2006/12/21(木) 06:01:18ID:???
DBから取得したデータで「\n」を表示させると、
「\n」と直接表示されてしまいます。
ソース内で改行させたいのですが、どのように記述すれば良いのでしょうか?
str_replace("\n","\r\n",$str);
で置き換えようと思ったのですが、置き換えることができませんでした。
09829812006/12/21(木) 06:03:58ID:???
書き込んだ瞬間ひらめき
str_replace("\\n","\r\n",$str);
で解決することができました。
09839422006/12/21(木) 11:18:27ID:???
>>966
try-catchなら、下の設定は必要かも。
setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
0984nobodyさん2006/12/21(木) 12:17:01ID:QeRiyNxN
アクセスしてきた人がPCか携帯か判別して、それぞれのサイトに
割り振るCGIやスクリプトってあるんでしょうか?
サーバが対応してくれないので困ってます…。
0985nobodyさん2006/12/21(木) 12:19:19ID:???
検索って知ってる?
0986nobodyさん2006/12/21(木) 12:19:45ID:???
普通にアクセス元解析して振り分けたらだめなのかい?
0987nobodyさん2006/12/21(木) 12:41:12ID:KBdj5Zxx
メールアドレスの入力欄で、全角入力の場合にエラーを
表示したいと考えております。
以下の条件文の*******をどう表記すればよいでしょうか?
お願い致します。

 if(ereg("*******", $var)){
  $errm .= "<span class=mj>E-mail入力値が不正です。</span><BR>\n";
 }
0988nobodyさん2006/12/21(木) 12:47:29ID:???
>>987
ttp://phpspot.net/php/pg%82o%82g%82o%81%95%90%B3%8BK%95%5C%8C%BB.html
0989nobodyさん2006/12/21(木) 13:07:55ID:???
988様ありがとう御座います。
上記サイトで気になったのが、メールアドレスチェックの際
半角英数字と.と-のみのチェックしかしていませんでした。
もしメールアドレスに!や#などが使用されていた場合このスクリプト
だと誤ったメールアドレスとして認識されてしまいます。
メールアドレスのチェックは一般的に半角英数字と.と-のみで
良いのでしょうか?
0990nobodyさん2006/12/21(木) 13:11:56ID:???
>>989
if(!preg_match('/^[a-zA-Z0-9_\-]+$/', $_var)){

}

メールアドレスに使えるのは
A〜Zと-_.と数値だけ
0991nobodyさん2006/12/21(木) 13:13:12ID:???
一般的に!や#が入ったメアドを見たことないのだが・・
もしそれらの文字がでてくるならその時にスクリプトも変更すればよいと思う
0992nobodyさん2006/12/21(木) 13:20:23ID:???
厳密なE-mailアドレスチェックを書こうと思うと酷いことになる。

preg_match('/^(?:[^(\040)<>@,;:".\\\\\[\]\000-\037\x80-\xff]+(?![^(\040)<>@,;:"
.\\\\\[\]\000-\037\x80-\xff])|"[^\\\\\x80-\xff\n\015"]*(?:\\\\[^\x80-\xff]
[^\\\\\x80-\xff\n\015"]*)*")(?:\.(?:[^(\040)<>@,;:".\\\\\[\]\000-\037\x80-\xff]
+(?![^(\040)<>@,;:".\\\\\[\]\000-\037\x80-\xff])|"[^\\\\\x80-\xff\n\015"]*
(?:\\\\[^\x80-\xff][^\\\\\x80-\xff\n\015"]*)*"))*@(?:[^(\040)<>@,;:".\\\\\[\]
\000-\037\x80-\xff]+(?![^(\040)<>@,;:".\\\\\[\]\000-\037\x80-\xff])|
\[(?:[^\\\\\x80-\xff\n\015\[\]]|\\\\[^\x80-\xff])*\])(?:\.(?:[^(\040)<>@,;:"
.\\\\\[\]\000-\037\x80-\xff]+(?![^(\040)<>@,;:".\\\\\[\]\000-\037\x80-\xff])|
\[(?:[^\\\\\x80-\xff\n\015\[\]]|\\\\[^\x80-\xff])*\]))*$/', $email);
0993nobodyさん2006/12/21(木) 13:21:17ID:???
>>992
どこから拾ってきたんだよwww

そういえば、携帯用IPでアクセス制限できるプログラム載ってるサイト無かったっけ?
0994軟式PHP2006/12/21(木) 13:29:18ID:???
メールチェック正規表現はだいぶ昔だけどこれ見て吐き気がした。
ttp://www.din.or.jp/~ohzaki/perl.htm#Mail
0995nobodyさん2006/12/21(木) 13:34:51ID:???
ttp://www.din.or.jp/~ohzaki/perl.htm#Mail
このaddr-specだけのものを引っ張ってきたんだろうかね。

実用的には @ の前後とも>>990のregex(と \. )で表される文字だけで成り立ってたら
いいことにしよう、ぐらいでいいのかも。
0996nobodyさん2006/12/21(木) 13:46:14ID:???
次スレ立ててきた。本スレあった頃ってテンプレこんなに長かったっけ?

【PHP】下らねぇ質問はここに書き込みやがれ 35
http://pc8.2ch.net/test/read.cgi/php/1166676139/
0997nobodyさん2006/12/21(木) 13:49:18ID:1NDthtg1
スレも残り少なくなってきたので下らない(と思われる)質問。
以前から気になってしようがなかったんだけど....

$int = 5;
if($int > 0) echo "0より大きいらしい";
$int = "string";
if($int > 0) echo "これなんでエラーにならないの?";
0998nobodyさん2006/12/21(木) 13:56:54ID:???
>>997
string > 0 じゃないから『これなんでエラーにならないの?』が表示されない
0999nobodyさん2006/12/21(木) 13:58:56ID:???
999?
1000nobodyさん2006/12/21(木) 13:59:30ID:???
;;;;;ヾ);;;)            (;:;ヾ;;;ヾ
;;;;;ヾ);;;)  ゆったりと   ((;::ヾ;;;ヾ
;;;;;ヾ);;;)   1000げと     (;::ヾ;;;;ヾ
!l ;||}、   ._,,..,,,,_        ;{ll;;;l
;::ll;.| ~ヽxx./ ,' 3  `ヽーっ.xxノ~.|!!;;:
;;;!l }   ミ三三三三三三彡'   };!;;l|
|l !|   `^`゛゛''"""~~゛゛"´~    ノ;;:;:;l
ヘハヘゞ             "^ハブヘ
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。