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

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

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2006/01/14(土) 20:06:11ID:???
PHPに関するくだらねぇ質問用スレです。
ここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。
次スレは流れを見て970/980/990の誰かが建てれ

まず読め【PHP マニュアル】
http://www.php.net/manual/ja/

本スレ【PHP】質問スレッドpart32【php】
http://pc8.2ch.net/test/read.cgi/php/1136276300/
前スレ【PHP】下らねぇ質問はここに書き込みやがれpart14
http://pc8.2ch.net/test/read.cgi/php/1134868212/

過去スレは>>2
FAQは>>3
0002nobodyさん2006/01/14(土) 20:06:45ID:???
・過去スレ
【PHP】くだらねぇ質問はここに書き込みやがれ
http://pc5.2ch.net/test/read.cgi/php/1099322141/
【PHP】くだらねぇ質問はここに書き込みやがれpart2
http://pc5.2ch.net/test/read.cgi/php/1105218084/
【PHP】くだらねぇ質問はここに書き込みやがれpart3
http://pc5.2ch.net/test/read.cgi/php/1107780435/
【PHP】くだらねぇ質問はここに書き込みやがれpart4
http://pc8.2ch.net/test/read.cgi/php/1110697712/
【PHP】くだらねぇ質問はここに書き込みやがれpart5
http://pc8.2ch.net/test/read.cgi/php/1114787573/
【PHP】くだらねぇ質問はここに書き込みやがれpart6
http://pc8.2ch.net/test/read.cgi/php/1117945031/
【PHP】くだらねぇ質問はここに書き込みやがれpart7
http://pc8.2ch.net/test/read.cgi/php/1121100429/
【PHP】くだらねぇ質問はここに書き込みやがれpart8
http://pc8.2ch.net/test/read.cgi/php/1123431535/
【PHP】くだらねぇ質問はここに書き込みやがれpart9
http://pc8.2ch.net/test/read.cgi/php/1125716012/
【PHP】下らねぇ質問はここに書き込みやがれpart10
http://pc8.2ch.net/test/read.cgi/php/1127581425/
【PHP】下らねぇ質問はここに書き込みやがれpart11
http://pc8.2ch.net/test/read.cgi/php/1129582431/
【PHP】下らねぇ質問はここに書き込みやがれpart12
http://pc8.2ch.net/test/read.cgi/php/1130835396/
【PHP】下らねぇ質問はここに書き込みやがれpart13
http://pc8.2ch.net/test/read.cgi/php/1132921016/
0003nobodyさん2006/01/14(土) 20:07:03ID:???
・FAQ
1. "$hoge[0]" と書くとエラーが出るよママン
 →"〜"の中で添え字([〜])やメンバ変数参照(->)みたいなのは直接書けないので"{$hoge[0]}"と{}でククレ

2. あっちのサーバーでは普通に動くのにこっちのサーバーではエラーになるよママン
 →PHPはコンパイルオプションやphp.iniの設定で動きが全然違うので管理してる香具師に確認汁!
0004nobodyさん2006/01/14(土) 20:27:37ID:ILCMT976
正規表現について質問です。


$uri = $_POST['uri'];
$file = fopen("log.dat","r");
while($row = fgets($file,1024)){
    if(eregi("($uri)[a-z0-9./_\-]+",$row,$data)){
        print("$data[0]");
    }
}
fclose($file);

これで「htt?://hoge.com/」を正規表現で検索したいのですが
「htt?://hoge.com/」を「http:/hoge.com」(未尾のスラッシュを取る)にしないと
結果を表示してくれません。
これは何故でしょうか?
000542006/01/14(土) 20:32:21ID:ILCMT976
スマソ訂正:

これで「htt?://hoge.com/」を正規表現で検索したいのですが
「htt?://hoge.com/」を「htt?://hoge.com」(未尾のスラッシュを取る)にしないと
000642006/01/14(土) 20:33:11ID:ILCMT976
スマソまた訂正:

これで「http://hoge.com/」を正規表現で検索したいのですが
「http://hoge.com/」を「http://hoge.com」(未尾のスラッシュを取る)にしないと
0007nobodyさん2006/01/14(土) 20:35:57ID:???
>>6
つか正規表現以外のものにもかなりマッチするけど、それはいいの?
0008nobodyさん2006/01/14(土) 20:36:29ID:???
>>4
if(eregi("($uri)[a-z0-9./_\-]+",$row,$data)){
ってのを
if(eregi("($uri)[a-z0-9./_\-]*",$row,$data)){
にしたら動かん?
000972006/01/14(土) 20:38:16ID:???
すまん。「URL 以外のもの」だった。
0010nobodyさん2006/01/14(土) 20:56:59ID:PuQcgqqK
>>4
例に使うドメインはexample.comな。それ以外は実在する可能性があるから適当でない。
0011nobodyさん2006/01/14(土) 21:09:17ID:???
別にどうでもいいだろ。トリビア披露なんざ他所でやれ
001242006/01/14(土) 21:13:19ID:ILCMT976
>>8
できました!ありがとうございます。

>>9
全然OKです。

>>10
そうだったのですか…気をつけます。
0013nobodyさん2006/01/14(土) 21:24:52ID:???
>>11
トリビアでもなんでもない
普通に守るべきルール
0014nobodyさん2006/01/14(土) 21:32:08ID:???
>>13
何が「普通」で、何故「守るべき」なのかが不明だな。
意図が伝わっている以上、どうでもいいこと。
0015nobodyさん2006/01/14(土) 21:40:32ID:???
>>14
RFC
0016nobodyさん2006/01/14(土) 21:46:22ID:???
あー。次のスレではそれもFAQに入れときますかね。 >example.com
0017nobodyさん2006/01/14(土) 21:59:52ID:???
このスレ雑談がメインなのにFAQなんかいらなくね?
0018nobodyさん2006/01/14(土) 22:12:01ID:???
>>17
あって困りはしないから、別にいいんじゃね?
0019nobodyさん2006/01/14(土) 22:13:38ID:???
>>3
> 1. "$hoge[0]" と書くとエラーが出るよママン
>  →"〜"の中で添え字([〜])やメンバ変数参照(->)みたいなのは直接書けないので"{$hoge[0]}"と{}でククレ

エラーが出ないよママン

> 2. あっちのサーバーでは普通に動くのにこっちのサーバーではエラーになるよママン
> →PHPはコンパイルオプションやphp.iniの設定で動きが全然違うので管理してる香具師に確認汁!

こんな質問フリークエントリーアスクトじゃないよママン
0020nobodyさん2006/01/14(土) 22:30:26ID:???
どー見ても冗談で書いてるFAQだよな。あれ。
0021nobodyさん2006/01/14(土) 22:39:50ID:???
FAQはネタのつもりかもしれんが、普通にまぎわらしいし。
>>1の中にアンカーまでついてるし。
つーかそれよりも最近の釣りと自演をどうにかする方策でも立ててほしいもんだ。
見え見えすぎてうざげ。
どーでもいーっちゃどーでもいーけど。
0022nobodyさん2006/01/14(土) 22:54:16ID:???
どーせ真面目にFAQ書いたところで質問する前に読むやついないしな
0023nobodyさん2006/01/14(土) 23:00:33ID:???
FAQ のこれ読めって言えればこっちが楽だし、あったらいいと思うけどな
0024nobodyさん2006/01/14(土) 23:05:33ID:???
まあ本スレのほうはFAQにある質問の重複が減ったようだからいいけど。
過去スレあさるとよくわかる。
0025nobodyさん2006/01/15(日) 04:27:41ID:???
FAQ充実させよう。まとめWikiとか作ろうぜイエイイエイ
0026nobodyさん2006/01/15(日) 04:28:30ID:???
あ、俺はやだかんね
0027nobodyさん2006/01/15(日) 05:14:47ID:???
すみません、ご教授ください。
あるデータからXMLファイル(UTF-8)を作成するスクリプト作ったのですが、
そのXMLファイルを使うソフトがBOM(EFBBEF)つきのUTF-8ファイルしか読んでくれません。
ファイルの先頭部分にBOMを付加したい場合、どのような処理を施せばよいのでしょうか?
スクリプト自体はSJISで書いています。

$filename = "./BlandList.xml";
$fp = @fopen($filename, "wb") or die("Error");
fwrite($fp, "EFBBEF");
fclose($fp);

って書いたら先頭にEFBBEFの文字列が追加されただけでした…当然か
0028272006/01/15(日) 05:17:20ID:???
上記のスクリプトの後に本来の目的であるデータを書き込んで、終了する処理をしてます
書き忘れすみません。
0029nobodyさん2006/01/15(日) 07:12:23ID:???
>>27
fwrite($fp, pack('C*',0xEF,0xBB,0xEF));
0030292006/01/15(日) 07:18:08ID:???
つか、Notepadで保存して見てみたけど
EFBBBFだったぞ<BOM
0031nobodyさん2006/01/15(日) 11:37:52ID:nt4rtanc
PHPで文字コードとMIMEを設定するには、
AddType "text/html; charset=Shift_JIS" .php
でいいの?
0032nobodyさん2006/01/15(日) 11:43:57ID:???
ぐぐった?
0033nobodyさん2006/01/15(日) 11:45:37ID:nt4rtanc
>>32
ぐぐりました。
そうしたら、
AddType application/x-httpd-php .php
もでてきたんですが、これでは、文字コードは指定できません。
どのようにすればいいでしょうか?

phpをshift_jisで認識するようにサーバで設定したいのです。
0034272006/01/15(日) 12:58:55ID:???
>>29-30
BOMはEFBBBFでした、書き間違えすみません。無事に出来ました。

$filename = "./BlandList.xml";
$fp = @fopen($filename, "w") or die("Error");
fwrite($fp, pack('C*',0xEF,0xBB,0xBF));//BOM書き込み
fwrite($fp, $sdadata);//データ書き込み
fclose($fp);

ファイルをバイナリモードで開く必要はなかったんですね。
pack関数、初めて知りました…まだよく理解はできてないんですが
とにかく助かりました、ありがとうございました。
0035nobodyさん2006/01/15(日) 13:58:23ID:???
>>34
>ファイルをバイナリモードで開く必要はなかったんですね。

最近のバージョンのPHPは、バイナリーモードがデフォだから付けなくても構わない。
ただ、どのようなバージョンで使われるか判らないコードを書く場合は、
Windowsの場合には確実にバイナリモードになるように、'b'を付けといた方が
余計なテキストモードとして扱われて変な目にあわずに済む。
0036nobodyさん2006/01/15(日) 16:16:50ID:???
>>25
まず、お前がFAQの草案作れ。
話しはそれからだ。
0037nobodyさん2006/01/15(日) 17:03:44ID:???
広告付きで良いならwikiを作っても良いよ。
xreaとか@wikiとかから適当に選べば良いんだし。
0038272006/01/15(日) 17:04:28ID:???
>>35
なるほど、そういうことなんですね。アドバイスありがとうございます。

もう一点質問させてください。
データベースを書き換えるPHPスクリプトを毎日〜時に動作させたい場合、
どのような方法が挙げられるでしょうか?
これまではDNS更新ソフトDiCEを使って、サーバー(レンタル鯖)上のphpファイルをブラウザで開く動作を
指定時間に実行させるという強引な方法でやってきたのですが、
これだと常時PCを起動しておかなくてはいけないし…
CRONだとphpを実行できないらしいですし…

PHP自体の質問でなくて申し訳ないのですが、ご助言お願いします。
0039nobodyさん2006/01/15(日) 17:09:31ID:???
>>37
広告なしで作れたほうがよさげ

作ってます、しばしお待ちを。予定地↓
http://wiki.2chx.net/php/
0040nobodyさん2006/01/15(日) 17:11:32ID:???
>>38さん
私は、CRONで、wgetでやってます。
0041nobodyさん2006/01/15(日) 17:13:51ID:???
39はドラえもんだったのか。
と、リンク先を見て思った今日この頃。
0042nobodyさん2006/01/15(日) 17:18:27ID:???
>>38
cronからcli版のphpを起動できるよ。(他にmodule版やらcgi版がある)
更にcronからテキストブラウザを使えば、web鯖経由で起動できるし。
0043nobodyさん2006/01/15(日) 17:19:12ID:???
>>38
> CRONだとphpを実行できないらしいですし…
これはWebページとしてのPHPの話だよな?
普通に、バッチ処理として動くCLIのDB更新PHPスクリプトを書いて
それをcronで呼び出せば済む話だと思うぞ。
0044掃除屋 ◆2ch..Ybe0Q 2006/01/15(日) 18:19:34ID:???
http://wiki.2chx.net/php/

PHPpedia (PHP FAQ集積所) 完成しました。
多少動作が重いかと思いますが、無広告ですのでご了承下さい。

まだ過去ログのFAQ漁っていません。
0045nobodyさん2006/01/15(日) 18:27:39ID:Q095YYYr
>>44
乙
0046nobodyさん2006/01/15(日) 18:30:11ID:???
どういう構成にすっかね
0047 ◆dLhE9.4y/I 2006/01/15(日) 18:42:45ID:???
part11の423の内容追加しときます。
0048 ◆2ch..Ybe0Q 2006/01/15(日) 18:49:56ID:???
私は、簡単なFAQはメインページに書いて、
詳しい説明が要るものはページを新たに作ればいい、と考えてます。
0049 ◆dLhE9.4y/I 2006/01/15(日) 18:57:27ID:???
ざっと追加しときました。

関数名がでたらドキュメントへリンク張った方がいいかも。
0050272006/01/15(日) 19:14:02ID:???
>>40,42-43
example.phpがデータベースを更新するスクリプトとしたら、
00 19 * * * /usr/local/bin/php /home/example.com/public_html/example.php
のような書き方でCRONに登録したらできたみたいです。
ご助言ありがとうございました。
0051382006/01/15(日) 19:15:13ID:???
27=38です、見にくくなってすみません。
0052nobodyさん2006/01/15(日) 21:13:41ID:???
>>50
そんだけの話かよorz
その場合、できれば > /dev/null って末尾に付けた方がいいぞ。
まー、誰もrootのメールなんて見てないのかもしらんけど。
0053nobodyさん2006/01/15(日) 21:32:31ID:???
>>33
php.iniの以下の項目を設定する。
default_mimetype = "text/html"
default_charset = "Shift_JIS"

以下もやっておいた方がいいかな。
mbstring.language = Japanese
mbstring.internal_encoding = SJIS
mbstring.http_output = SJIS
mbstring.encoding_translation = On

php.iniがいじれない場合は、Apache側(httpd.confかhtaccess)で以下の書式で設定。
php_value 項目 値
0054nobodyさん2006/01/16(月) 00:47:10ID:???
株価分析みたいなサイトを作れないか、と検討してるんですが、
過去の全銘柄の日々の株価を全部掲載してるサイトってないでしょうか。
図書館行けばありますか?
また、日々の最新株価を汎用フォーマット(RSSとかCSVとか)で配布している
サイトってないでしょうか。

楽天のRSS取得ソフトというのは調べて見つけましたが、生のデータがほしい。
0055nobodyさん2006/01/16(月) 00:48:24ID:???
あれ、汎用質問スレかと思ったらPHP専門だった・・。
せっかくなので知ってる人いましたら教えてください。
0056nobodyさん2006/01/16(月) 00:58:29ID:???
知らない
0057nobodyさん2006/01/16(月) 01:24:19ID:???
>>54
そんなデータが抜け目なく揃っていたら商品として十分な価値があるので、
フリーでは転がっていないと考えるのが懸命。
証券会社とかが提供しているトレーディングツールの意味がなくなるし。
0058nobodyさん2006/01/16(月) 01:51:02ID:???
すんません、メールアドレスのチェックをしたいんですが
ereg("^[a-zA-Z0-9_\.\-]+@(([a-zA-Z0-9_\-\.]+\.)[a-zA-Z0-9]+$)",$mail)
の場合

[email protected]みたいに.が二つある場合はtrueなんですが
[email protected]のような.がひとつしかない場合はfalseを返してしまいます。
ともにtureを返したいのですがどうすればいいでしょうか?
0059nobodyさん2006/01/16(月) 02:00:00ID:???
>>58
正規表現道場@2ch Part4
http://pc8.2ch.net/test/read.cgi/php/1105930285/
0060nobodyさん2006/01/16(月) 02:12:02ID:???
>>57
株価自体に著作権はないし、どっかに落ちてるかと思ったんですけどね。図書館行ってみます。

>>58
^[a-zA-Z0-9_\.\-]+@(([a-zA-Z0-9_\-]+)\.([a-zA-Z0-9_\-]+)(\.[a-zA-Z0-9]+)?)$
括弧は本当に必要?おれPerlだからまちがってたらごめんね。
0061nobodyさん2006/01/16(月) 02:22:19ID:???
>>60
とことんスレ違いなやつだな
0062nobodyさん2006/01/16(月) 02:40:12ID:???
>>54
天気とか株価とか為替とか、あの手の情報をネットで提供してる会社は多いよ。
勿論"有償"だが。
0063nobodyさん2006/01/16(月) 02:50:27ID:???
>>60
著作権の問題じゃなく、それだけの情報を保持するだけの
労力とサーバー維持費は並大抵のものじゃないから
無償でそんなの作れると考えるのは浅はかだろう。
ま、頑張って図書館の新聞でも漁ってください。
0064382006/01/16(月) 02:58:36ID:???
>>54
ttp://www.mujinzou.jp/
無尽蔵じゃだめですか?10年前くらいまでならあるかと。
ttp://homepage2.nifty.com/portal/link/data.htm
のリンク集も参考に…
ってこれくらいはぐぐった上で足りないから質問してるんだろうなぁ…

似たようなことをしようとしている人がいて面白かったのでレスしてみました。

>>52
rootのメール…?/dev/null って末尾につける意味がわからないです、すみません
サーバーのコマンドの類は勉強不足でよくわからないんです…
何か良書とか最低限のことをつかめる学習法ってありますかね?
自鯖は練習でfedoracore3たててみたことはあるんですが、書籍の設定通り以上の理解ができてない…
0065nobodyさん2006/01/16(月) 03:08:11ID:???
Header()のLocationでページ遷移した後に、
あらかじめ設定しておいたメッセージを表示するには、
どういった方法がよいでしょうか?
セッションは使いません。
0066nobodyさん2006/01/16(月) 03:14:25ID:???
>>38
ごめんなさい。探し方が悪かっただけでした。丁度、ご紹介のリンク集に自力で行き着いたところでした。
投資ブームですからね。なんか面白いことできないかなあ、と。市況情報のカレンダーをiCalendarで配信とか。

>>62
実は天気予報は有償配信を受けたことがあります。
予報は予報士の専売特許(法にふれる)なので有償は当然ですね。月々相場10万以下でFTP配信でした。
過去のデータは無償配布してるところもあるかもだけど、
どちらにしても膨大なデータなので無償配布は物好きですね。

すれ違い、すみません。株式板とPerlスレに戻ります。
0067nobodyさん2006/01/16(月) 04:03:37ID:???
>>65
Location先のURLにGETで値を渡す。
0068nobodyさん2006/01/16(月) 04:09:53ID:???
>>67
任意の日本語メッセージ文を設定したいんですけど、
それをURLエンコードしてもGETで送りたくないし、
それって、実際の処理結果と一致するとは限らないことになるので、
そういう不完全な方法は取りたくなく・・・。
0069nobodyさん2006/01/16(月) 04:31:31ID:???
どうせあれだろ。

form.php → exec.phpとかで投げて、
項目にエラーがあればexec.phpで表示、
大丈夫なら処理して、form.phpにLocationで戻すってやってて、
クライアントから「完了したら完了したメッセージを出してくれ」とか来たオチっぽいな。
0070nobodyさん2006/01/16(月) 06:11:10ID:???
>>68
そういう条件があるなら最初か(cy
ならGETでユニークIDを渡して、そのIDに従った処理を
受け側のスクリプトでさせれば?

クッキーを使用しないSESSIONと同じ事だけど。独自SESSION。
前段にLBとか入れてhttpdを分散させてる場合はSESSIONと同様に、
IDと情報の結び付けを共有する仕組みがないと駄目だけどね。
0071nobodyさん2006/01/16(月) 08:13:40ID:N8Tn4EdB
あるページを同時に参照した時に
2人目以降の画面では内容を変更できないように読み取り参照みたいな形で
開きたいのですがこういうことってPHPでできるのでしょうか?
それともwebサーバの機能になってくるのでしょうか?
■ このスレッドは過去ログ倉庫に格納されています