【PHP】下らねぇ質問はここに書き込みやがれ 44
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2007/04/12(木) 16:54:47ID:???PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 43
http://pc11.2ch.net/test/read.cgi/php/1175368910/
◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0524nobodyさん
2007/04/20(金) 22:45:50ID:???Perl用だけど基本的に同じ使い方なので役には立つはずだよ
「:: Cepheid :: - ImageMagickの使用例」
ttp://www.ss.iij4u.or.jp/~somali/web/im_example/im_example.html
0525nobodyさん
2007/04/20(金) 22:47:16ID:5u2maBIVその時点で改行をカウントできるだろ。ftell(ファイルポインタ)と同じ程度の
水準でカウントできないとでも?
0526nobodyさん
2007/04/20(金) 22:51:14ID:???ID出してないから放置してもいいのに
0528nobodyさん
2007/04/21(土) 00:29:45ID:LOF7z3oT今PHPのメンバー機能付きのスクリプトを作っているのですが・・・
例えば、メンバーデータで、メンバーが決めたユニークな英数字のID「userid」があったとして
他のデータとの結びつけや呼び出しなどをこのIDでするか、
それともこれとは別に、auto_incrementでつけた数字のIDも持たせて
裏側の処理は数字のIDでやった方が良いのでしょうか?
絶対ユニークなものであれば、英数字のIDでも問題ないでしょうか?
よかったら意見聞かせてください。
0530nobodyさん
2007/04/21(土) 01:03:45ID:???0531nobodyさん
2007/04/21(土) 01:24:03ID:???MySQLの場合
INTなら4バイト、SMALLINTなら2バイト
英数字IDの最大長は知らんが
どっちがプライマリキーに適しているかはわかるべさ
0532nobodyさん
2007/04/21(土) 01:34:08ID:???0533nobodyさん
2007/04/21(土) 01:52:04ID:???0534nobodyさん
2007/04/21(土) 01:55:59ID:4pjJu4sq0535nobodyさん
2007/04/21(土) 01:57:03ID:???0536nobodyさん
2007/04/21(土) 01:58:49ID:???つっても比較回数がたかだかO(log n)しかないんだから、
別にどっちでも大してかわらないという話もある。
ものによってはO(1)だったりするし。
それとは別にauto_incrementとかが使えるのが便利だから、
という理由でIDは整数にすることが多い。
0539nobodyさん
2007/04/21(土) 02:03:45ID:???>>537の言うことを前提とすると、
array_reverse(file("hoge.txt"));
これでhoge.txtが下の行から配列に入る。
0542nobodyさん
2007/04/21(土) 03:33:07ID:LOF7z3oT色々意見有難う御座います。
現状、useridとは別にauto_increment(userno)を持たせて内部ではこのusernoで色々やってるのですが
たまにuserid→usernoを検索したり、その逆を検索したりと言う処理が入ってくる為
それほど変わらないようでしたら、useridで処理を行うように変えてみたいと思います。
参考になりました。
0543nobodyさん
2007/04/21(土) 03:35:32ID:LOF7z3oTuseridをプライマリキーに変えようと思います。
0544nobodyさん
2007/04/21(土) 03:45:27ID:???0545nobodyさん
2007/04/21(土) 04:44:50ID:???0546nobodyさん
2007/04/21(土) 07:12:06ID:9SFJ2Fse通常の検索機能はできたのですが
-(マイナス)を付けた文字を除く機能はどうやるとよいのでしょうか?
0547nobodyさん
2007/04/21(土) 07:23:57ID:???$str = "abc123+-=";
$newstr = preg_replace('/-/', '', $str);
echo $newstr;
0551nobodyさん
2007/04/21(土) 07:51:37ID:???abc123+ -=
=入らないって事?
0552nobodyさん
2007/04/21(土) 08:05:54ID:???0554nobodyさん
2007/04/21(土) 09:33:51ID:???/-/ だって立派な正規表現だろ
0556nobodyさん
2007/04/21(土) 11:40:10ID:PuJ1NL9p個人情報+企業情報+アンケート
などの入力枠がありますが、これらの保存先はすべて同じファイル(もしくはDB)
上にした方が良いのでしょうか?それか、用途毎に分けた方が良いのでしょうか?
1つにするとファイルを分ける手間が減りますが、ログが長くなって重くなる気がします。
かといって複数に分けても処理が早くなるのかもわかりませんし・・。
0557nobodyさん
2007/04/21(土) 11:53:38ID:???一つにまとめる r + w *1
0558556
2007/04/21(土) 12:11:59ID:???と言う事は、やっぱり1つにまとめた方が、処理も早いわけですかね?
DBの場合、全部一つにするとフィールド数が多くなって、それだけ処理が
遅くなると思っていました。(前にこのスレでも言われたような・・。)
それにDBでもテキストログでも長くなると見づらいと思っていたのですが、
プログラム的には処理が早いほうが良いので、1つにまとめた方が良いですね。
0559nobodyさん
2007/04/21(土) 12:30:40ID:???正規化で検索してきてください
0560556
2007/04/21(土) 14:05:14ID:???それじゃ、やっぱり分けた方が良いのですか?
これまでは正規化を考慮して、複数テーブルに分けていました。
ただ、>>556に書いた用途だと分けた方が処理が早くなるのか遅くなるのか
よくわからなくなって、質問した次第です。
今までは、分けて、必要な時のみ情報を追加していました。
(例えば、企業情報が入力されていない場合は、
企業情報用のテーブルに追加しない など)
0561nobodyさん
2007/04/21(土) 14:14:20ID:???0562nobodyさん
2007/04/21(土) 14:17:31ID:???会員登録時に企業を選択式にでもするの?
>>556
会員登録でアンケートというと普通一過性の情報なので
こいつだけ外に出しておいた方がいいかもしれない
申し込みフォームというと「システム的に情報を再利用せず
あとは人間が読むだけ」って感じをイメージしたけど
そういう場合は一まとめにしたCSVがあると便利
0563いつもの人 ◆3Htx6mDqZs
2007/04/21(土) 14:17:31ID:???そんなに速度にこだわるのはなに?
0564556
2007/04/21(土) 14:30:49ID:???自分もそう思って質問した次第です。
>>562
そうですね。アンケートだけは分けた方が良いかもしれませんね。
確かにCSVやログに落とした時に、個人情報と企業情報が繋がっている
方がわかりやすいし、見やすいですからね。
わけると、単純にそれだけ処理の回数が増え、負荷もかかると思っていたんです。
今までは、
a)個人情報だけ入力 →memberのテーブルのみデータを追加
b)個人情報+企業情報 →memberとcompanyのテーブルのみデータを追加
c)個人情報+企業情報+アンケート
→memberとcompanyとankのテーブルにデータを追加
みたいな事をしてました。編集の時は、それぞれのテーブルに会員IDの
データが登録されているか否かを判別して。
ただ、それをすると正規化としては良いんだろうけど、見づらいし、
余計な処理も入ると思い、質問しました。
やっぱり個人情報と企業情報は一緒にします。ありがとうございました。
0565nobodyさん
2007/04/21(土) 17:52:52ID:???0566nobodyさん
2007/04/21(土) 17:58:40ID:???0567nobodyさん
2007/04/21(土) 18:11:02ID:7D1RcruIPHPで(Linuxのコマンドライン?)更新日時を古く変更などすることはできますでしょうか?
0568nobodyさん
2007/04/21(土) 18:20:42ID:vgvHFl4Rフォームを使わずにPOSTデータ送信とかできないよな
0570いつもの人 ◆3Htx6mDqZs
2007/04/21(土) 18:30:58ID:???0571nobodyさん
2007/04/21(土) 18:45:47ID:RkazuUUhSmartyってありますけど、皆さん使ってますか?
MVC実現のために便利と本には書いてありますけど
必ずしも必須ではないし、変なエラーもおおいみたいだしで気後れしつつ、
気になっている状態です。
(サンプル動かしてるけどエラー多発でイライラです)
どうなんですか?
プロとして活躍されてる人の現場では利用して当たり前なんでしょうか?
僕はシロウトです。(デザイナが幅を広げたくてphpやってます)
0573nobodyさん
2007/04/21(土) 18:54:55ID:7D1RcruIありがdです。
touch() [function.touch]: Utime failed: Operation not permitted
フォルダ777でファイル666とか変えてもエラー出まくってるけど、頑張ってみます。
0574nobodyさん
2007/04/21(土) 19:07:27ID:???0575nobodyさん
2007/04/21(土) 19:08:58ID:???0577nobodyさん
2007/04/21(土) 19:50:08ID:sL28nTPU沖縄県での選挙ですが、どうか民主党だけは避けてください。県民の生命に関わる可能性があります。
民主党の最大の公約は一国二制度(※)ですが、一度「一国二制度 沖縄 三千万」等で検索をお願いします。
この際、民主党のHPで調べても良いです。以下の注釈↓と矛盾することは書いてないはずですから…
※一国二制度
簡単に言えば沖縄を中国と日本の共有物にし、そこに3000万人の中国人を入植させます。
(つまり沖縄人口の 96% を中国人にして、実質、沖縄を中国人の居住地とします。)
さらに「自主」の名の下、沖縄で有事が起きても自衛隊は干渉できません。
3000万人の中国人が、少数派となった130万人の日本人に何をしても、です。
そして反日教育を受けた中国人の反日感情の強さは、ほとんどの日本人の理解を超えるものです。
今回の選挙で民主党が勝った場合、「自主」「発展」を連呼しつつ段階的に進めていくことになります。
自主と言っても、自主を認めるのが「住人の96%が中国人となった」後だということに気をつけてください。
発展と言っても、新沖縄の少数派となった「少数民族日本人」の発展ではないことに気をつけてください。
0578573
2007/04/21(土) 20:24:34ID:7D1RcruIFTPでアップしたファイルだと、ファイル所有者が自分のユーザ名になってました。
面倒だけど、PHPからファイル作成して所有者apacheのファイルを作ってから
touch()でOKでした。ありがとうございました。
0580nobodyさん
2007/04/21(土) 23:30:34ID:0pUFJgAt0581nobodyさん
2007/04/21(土) 23:41:57ID:???http://www.php.net/manual/ja/
0582nobodyさん
2007/04/21(土) 23:42:14ID:Ja/OZfS8さて次は何をやったらいいんだろうか・・・
今までHTML→JS→FLASH(AS)とやってきました
付け加えるとPHPとプログラムじゃないけど
リナックスも少しかじりました
0585nobodyさん
2007/04/22(日) 00:49:17ID:J1vbWRUn0586nobodyさん
2007/04/22(日) 00:52:39ID:???0587nobodyさん
2007/04/22(日) 00:54:33ID:Du7ZfW0qありがとうございます。
よくみたら>>1に書いてあったんですね^^;
よく読まずに失礼しました。
0589nobodyさん
2007/04/22(日) 03:43:29ID:???それがJavascriptのことならば、Ajaxでググってみると勉強する必要があるかどうか判断できると思う。
0590nobodyさん
2007/04/22(日) 04:48:40ID:???0591nobodyさん
2007/04/22(日) 05:05:28ID:6BzHCPPl0592nobodyさん
2007/04/22(日) 05:30:29ID:???非同期通信してない普通のJavaScriptつかってる
サイトが増えたけどマジで勘弁してほしい
本気でうっとしいぐらいJavaScriptはちゃんと動かない
0593nobodyさん
2007/04/22(日) 05:41:10ID:???0594nobodyさん
2007/04/22(日) 06:13:24ID:???javaScriptの互換性問題は、ブラウザのベンダーもヘボだからなあ。
標準のテストケースくらい作ってそれにパスしたものだけを
リリースするって態勢を何故とれない。
0595nobodyさん
2007/04/22(日) 07:04:12ID:???そこって関数にポインタもっていくとその関数
マニュアルがポップアップしてくる。(JavaScript)
で、ポインタを関数からはずすとポップアップが
消えるんだけど30%の確立で消えずにずっと画面
に残る
ああいうのが一番イライラする
0596nobodyさん
2007/04/22(日) 09:06:59ID:???Javascriptは
オブジェクト指向の言語だからな。
HTMLをかじったくらいのやつがまともにかけるはずがない。
外出だがブラウザの互換性も面倒だし。
それにまともな書籍がペーパーバックしかないしな。
0598nobodyさん
2007/04/22(日) 09:15:48ID:???0599nobodyさん
2007/04/22(日) 11:46:47ID:b9VJcguV以下のようなエラーが出たんですが、どういう意味なんでしょう?
Warning: Smarty error: unable to read resource: "store.tpl" in C:\php\include\SMARTY\libs\Smarty.class.php on line 1095
"store.tpl"を読み込めない、Smarty.class.php の 1095行目で処理できない って意味でしょうか?
問題があるのは"store.tpl"でOKですか?
0600nobodyさん
2007/04/22(日) 12:00:24ID:???たぶん store.tpl が存在しないか、テンプレートディレクトリの指定とかが間違ってるんでしょ。
0601nobodyさん
2007/04/22(日) 12:20:47ID:ctFC3eVblist($abc,$def) = explode('/',$_SERVER['PATH_INFO']);
として、URLから ?= などを消そうと思っていますが、
www.○○○.jp/abc/def などとしてアクセスすると、
画像やCSSが読めなくなってしまいます。
(実行しているファイルの階層が変わってしまったような感じです)
原因が分からないのですが、パラメータも一つ目しか
受け取れません。
.htaccessは下のようにしています。
<FilesMatch "html$">
ForceType application/x-httpd-php
</FilesMatch>
AcceptPathInfo on
Options MultiViews
考えられそうな原因を教えてください。
0602nobodyさん
2007/04/22(日) 12:30:57ID:b9VJcguVなるほど! すぐ確認してみます!!
ありがとう!
0603nobodyさん
2007/04/22(日) 13:24:04ID:XnNxCKozブラウザの更新ボタンを猛連射すると、セッションが切れる場合があります。
HTTP リクエスト、レスポンス上の Cookie のセッション ID のやり取りには問題はないので、
サーバ側の session_start あたりのPHPの処理が追いつかないからですかね?
他にも session_regenerate_id 等を処理しています
// リロードしまくる相手は切れてしまっても問題ないとは思いますが
0604nobodyさん
2007/04/22(日) 13:43:58ID:???セッションの生存期間はどうしてる?
更新連打でセッションが切れるのは生存期間の切れたセッション
をガーベジコレクタが片付けるからだろう
0605nobodyさん
2007/04/22(日) 13:52:34ID:yrmSDayR用途が違うから出来ないんじゃないの?
>>601
言ってることが不明。
list($abc,$def) = explode('/',$_SERVER['PATH_INFO']);
でなにを取得したいの?
$a = explode('/',$_SERVER['PATH_INFO']);
print_r($a);
してごらんよ。/abc/defなら配列4個になってるはずだ。
パラメタ1つ目(abc)なのはあたりまえだし。
0606603
2007/04/22(日) 14:07:18ID:XnNxCKozsession.cookie_lifetime は 0 でセッションクッキーにしています
GC の動作は、検証用に 100% (1/1) の確率で 4 分経過したものを対象にしていますが、
連続リロードとは関係ありますかね?
「他にも session_regenerate_id 等を処理〜」と書きましたが、
session_start した後、セッション変数 expire (アクセス時間に 3 分追加した有効期限)
をチェックする処理を通しています。
expire が存在しない => 新規で有効期限をセット
存在、有効期限内 => expire を更新し、session_regenerate_id(true)
存在、有効期限外 => 全セッション変数を unset 、expire を再セットし、session_regenerate_id(true)
のようなちょっと回りくどい処理をしていますが、
ここら辺の処理のどこかが追いついていないのかな、と現状想像しています。
書き忘れましたが、PHP 5.2.1 です
0607nobodyさん
2007/04/22(日) 14:17:21ID:dThJ7LN8function hogeHoge($aaa,$bbb,$ccc,$ddd,$eee,$fff,$ggg){
}
とすると、Missing argument 5 というエラーが出ました。
サーバはPHP5です。
0608nobodyさん
2007/04/22(日) 14:30:58ID:???hogeHoge(1,2,3,4);
とかにしているからでしょ
function hogeHoge($aaa='mmm',$bbb='zzz',$ccc=TRUE,....
と、ちゃんと初期値を書くこと。
0609nobodyさん
2007/04/22(日) 14:42:39ID:???もしくは\nみたいなものでも良いんですが・・・
0611603
2007/04/22(日) 15:02:39ID:XnNxCKozPDO で PDO_PGSQL ドライバを使用した際、
prepare() メソッドのパラメータ string statement に
意図時に正しくない、例えばプレースホルダ (:name や ?) がない文を
与えて実行すると、false を返さず、エラーログに
[notice] child pid ***** exit signal Segmentation fault (11)
を吐いて処理が終了します。
PDO::ATTR_ERRMODE を PDO::ERRMODE_EXCEPTION に設定した場合でも
PDOException をスローせずに同じエラーを吐いて終了します。
PDO_MYSQL ドライバでは問題なく false を返す、もしくは例外を投げてくれます。
細かいことだけど、環境と合わせてバグ報告したほうがいいのかな?
(sendpr したことないし、英語も自信ない)
0613nobodyさん
2007/04/22(日) 15:52:39ID:???以下、負け犬の遠吠え禁止
0614603
2007/04/22(日) 16:17:12ID:XnNxCKoz最新の CVS 版入れてもでないか確認して、
PHP を --enable-debug でリビルドして
gdb でバックとレースした内容を添えて、
さらに英語で送るとか、へたれの俺には敷居が高い・・
誰かに変わって報告してもらうにも、環境によって出る出ないがあるかもしれないし。
とりあえず、余裕ができたら自分でやってみます。
>>613
まぁそんな言い方せずに
0615612
2007/04/22(日) 16:36:13ID:???bug reportで、最後の「英語」の敷居それ自体は低い。
むしろ問題は、本当に、snapshot入れて出るのかどうかってことと、
出てレポートした後、feedbackするのを放置しがちってところだと思う。
>>613
segfaultに関するようなことはPHP Bugsとの関係でやることであって、それだけのスキルを
603はもってるでしょ。レス見れば判る。
0618nobodyさん
2007/04/22(日) 17:10:14ID:0zzEw5U5から現在まで何年経っているか
簡単に出力する関数とかないですか
年齢チェックをしたいので…
0619nobodyさん
2007/04/22(日) 17:18:27ID:???0620nobodyさん
2007/04/22(日) 17:26:45ID:???そのフォーマットで、単に年齢出せればいいんだったら日付関数なんかも使わず
$str = '19860523';
$str2 = '20070422';//今日の日付にしたいならdate()あたりで求める
$year = substr($str2,0,4)-substr($str,0,4);
if(substr($str2,4,4)-substr($str,4,4) >0 ){
$year++;
}
echo $year;
でいいんじゃない?。マニュアルってほどじゃない。
グレゴリウス暦1127年3月2日生まれの人間が今生きてたら、何日何秒生きてることになるか
ということになると日付関数じゃ足りずに、オプションのカレンダー関数とかでやるしかないと思うけど。
0621nobodyさん
2007/04/22(日) 18:10:17ID:???substrもつかわず、単に$str2-$str1で終わるような気がする。
0623nobodyさん
2007/04/22(日) 20:59:08ID:bqPmYs5Qなぜか表示ができません。
DBの接続もOKでPHPinfoも出るのですが、
これ文字化けが原因で表示されないということって
ありますか?
■ このスレッドは過去ログ倉庫に格納されています