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

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

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2007/02/12(月) 20:33:59ID:???
まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り

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

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

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

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

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ http://pc10.2ch.net/php/subback.html
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで http://pc10.2ch.net/db/subback.html
・速さについては自分でベンチをとってここに書け(違う環境の人も調べてくれるかも)
 しかし初心者が目的も定めずに速度を気にしたところでほとんど意味は無いぞ
0337nobodyさん2007/02/15(木) 21:45:40ID:148YlLut
>>334
秀和システムの「今日から使える php5サンプル集」(初版2004・12)って
本に載ってたんで、とりあえずやってるのですが、毎コミュの「php逆引きリファレンス」には
この関数自体のってません。(初版2006・11)
正直「XMLを使わなきゃ必要ない勉強かな」という気もしてるんですが・・・

初心者なので知らないんですが、phpの開発でXMLを併用すると
「すごく便利」というケースってあるんでしょうか?
0338nobodyさん2007/02/15(木) 21:47:17ID:148YlLut
>>335-336
すみません、CSVを確認しました。
エディタで開くとカラです。容量も0になっています。。
0339nobodyさん2007/02/15(木) 21:48:08ID:???
>>331
ちゃんと書き込まれてなくない?
(ファイルサイズが0kbになってるとか)
俺試してみたけどちゃんと書き込まれなかった
0340nobodyさん2007/02/15(木) 21:48:29ID:???
>>337
javaならXMLパーサーが幾らでもあるからいいけど、phpなら百害あって一利なし。
0341nobodyさん2007/02/15(木) 21:50:19ID:???
$aryTmp = array("isbn"=>"","name"=>"","publish"=>"","price"=>"");
これがforeachの中にあるからじゃね?
0342nobodyさん2007/02/15(木) 21:51:37ID:148YlLut
>>339
はい、カラでした。 コードがおかしいんでしょうか??
でもみんなこんな関数使ってないのかなー 時間の無駄かなぁ。。
>>340
そうですか、 ますますヤル気が…w
0343nobodyさん2007/02/15(木) 21:51:40ID:???
>>333
> $aryTmp['isbn']=$book['isbn']; だけ -> の形になってないのがなぜか分かりません
isbnだけ属性値だからでしょ。
<isbn>uho</isbn>
とかあったら区別できないから。
0344nobodyさん2007/02/15(木) 21:52:33ID:???
>>332
fputs($fp_o,$strTmp,"\n");
,strTmpの後、カンマじゃなくてピリオドでは?
0345nobodyさん2007/02/15(木) 21:53:18ID:???
フレームワークでうまい事読んでくれないときに
整形するってくらいしか思い浮かばないかな
1回2回程度だったら手作業でやるが・・・
0346nobodyさん2007/02/15(木) 21:54:37ID:???
そもそも、ソースの中にリテラル値を二重引用符と一重引用符が混在してる。
それだと、コンパイラーが誤った解釈する原因。
0347nobodyさん2007/02/15(木) 21:55:36ID:+b+mInq+
dirname(__FILE__); とするとそのファイルがあるディレクトリを取得出来ますが、
そのファイルがある1つ上の階層を取得するにはどうしたらいいのでしょうか?
相対指定じゃなくて、dirnameが使えるならその方法でのやり方を教えて下さい。
0348nobodyさん2007/02/15(木) 21:55:45ID:???
俺の場合、XML操作はJavascriptでやってるな

>>337
XMLは覚えておいて損はないよ
Webサービスで使われてることもあるし
年賀状印刷ソフトの住所録にも使われてる
0349nobodyさん2007/02/15(木) 21:57:52ID:???
>>347
dirname(dirname(__FILE__));
0350nobodyさん2007/02/15(木) 21:59:34ID:???
>>333
name, publish, priceはbookの子要素だから ->(アロー演算子)を使う
属性の場合は連想配列
例えばnameの属性にsubtitleっていうのがって
<name subtitle="10日でマスター">今日から使えるXMLサンプル集</name>
となっている場合は、$book->name['subtitle']でアクセスできる
0351nobodyさん2007/02/15(木) 22:01:29ID:148YlLut
>>334
うっ ありがとうございます! うまくいきました!!
助かりました!
ほんとにありがとうございました。

>>333
なるほど、確かによく見たらそうですね
でも、何故コレだけこうなってるのか、ちゃんと解説してくれる本買えばよかったなー
>>345
たったそれだけのレスなのに知識不足で理解できません。リテラル値?
勉強します。
>>346
今後注意します。サンキュ
>>348
なるほど、 イマイチ知識不足でありがたみが分からないですが、、
必要が出てきてからじっくり勉強することにしました

皆さんありがとうございました。
0352nobodyさん2007/02/15(木) 22:02:01ID:???
>>346
どんだけアホなコンパイラだよw
0353nobodyさん2007/02/15(木) 22:02:56ID:148YlLut
>>350
おお、詳しい解説ありがとうございました!
なるほどねー
0354nobodyさん2007/02/15(木) 22:03:29ID:???
>>346
詳しく。
0355nobodyさん2007/02/15(木) 22:03:42ID:???
XMLも万能じゃないから、長所と短所を見極めて使うようにな。
大量のデータを内部で扱うなら、XMLは向かない。
XMLは全文パースするのに、処理コストが掛かるから。
phpにもSAX系のXMLパーサーがあればいいんだが。
0356nobodyさん2007/02/15(木) 22:04:50ID:???
<book isbn="ISBN4-7980-0095-7">
これのisbnってどこに入るんだ?
0357nobodyさん2007/02/15(木) 22:04:53ID:???
>>355
普通にあるよ、、、標準で、、、
0358nobodyさん2007/02/15(木) 22:05:02ID:l05otmqr
http://www.hoge.com/hoge.txtをダウンロードして、
ローカルに保存するにはPHPでそう記述したらいいですか?
03593472007/02/15(木) 22:06:14ID:???
>>349
おお!こんなやり方があったんですね!これは非常に便利な使い方です。
参考になりました。ありがとうございました。
0360nobodyさん2007/02/15(木) 22:07:29ID:???
二重引用符と一重引用符が混在してると>>346の脳みそが誤作動するって話だろ。
もしくは定期的にネタレスを投下してくる粘着。
もしくは真性。
0361nobodyさん2007/02/15(木) 22:07:56ID:???
>>358
fopenでファイル名の変わりにURL
詳しくはphp関数リファレンスを見よ
0362nobodyさん2007/02/15(木) 22:08:58ID:???
<?php
file_put_contents('filename',  file_get_contents('http://www.hoge.com/hoge.txt'));
03633582007/02/15(木) 22:13:28ID:???
>>361
ブラウザに文字が表示されてしまいます。
03643582007/02/15(木) 22:14:46ID:???
>>362
うまくいきました。ありがとうございます
0365nobodyさん2007/02/15(木) 22:18:13ID:???
結構PHPやってきた俺も>>324の言うことがわからないのは異常か
0366nobodyさん2007/02/15(木) 22:19:58ID:8fen4pAd
すいません
sessionを利用する場合、
そのsessionデータはcookieに自動で保存されるのでしょうか?

それともsetcookieする必要があるのでしょうか?
0367nobodyさん2007/02/15(木) 22:21:19ID:???
>>366
sessionとクッキーは別
0368nobodyさん2007/02/15(木) 22:21:52ID:???
>>365
phpの話じゃないだろw
gifファイルの仕様の話だろ。よく読め。
0369nobodyさん2007/02/15(木) 22:24:48ID:8fen4pAd
ありがとうございます。
と言うことはsessionつかって会員サイト作る場合
sessionデータをcookieなどを使って渡す必要がある
ということであってますか?
0370nobodyさん2007/02/15(木) 22:25:21ID:???
sessionは鯖に記憶
cookieはクライアントに記憶
じゃなかったっけ?
0371nobodyさん2007/02/15(木) 22:30:28ID:???
セッションは勝手にクッキーが保存されるよ
setcookieが必要なのはセッション以外の任意の値
0372nobodyさん2007/02/15(木) 22:33:41ID:???
>>371
またネタスレかよ。勝手に保存なんかされねーだろ。
session_startを書いた時だけ。
0373nobodyさん2007/02/15(木) 23:02:04ID:???
もしくはiniのsession.auto_startをonにした時
0374nobodyさん2007/02/15(木) 23:20:01ID:???
相当なひねくれ者だな
0375nobodyさん2007/02/16(金) 00:08:39ID:???
仮に掲示板とかに自動書き込みツールを作ろうと思ったら
どのような言語がわかれば作れるのでしょうか?

おすすめの書籍なども教えてください
0376nobodyさん2007/02/16(金) 00:10:35ID:???
>>375
Lispとprologっていうのが分かればいい
0377nobodyさん2007/02/16(金) 00:23:41ID:???
アセンブラちょうおすすめ
0378nobodyさん2007/02/16(金) 00:27:18ID:???
>>376-377
自分が知っている言語を言えば良いってもんじゃないでしょ。
そう主張する根拠を具体的に示して。
0379nobodyさん2007/02/16(金) 00:31:40ID:???
ActivePerlのwperl.exeみたいに、
コマンドプロンプトを表示しないものはありませんか?
0380nobodyさん2007/02/16(金) 00:54:48ID:???
>>378
mjrs乙
0381nobodyさん2007/02/16(金) 01:20:09ID:???
mechanizeのPHP版ってありますか?
0382nobodyさん2007/02/16(金) 03:59:59ID:???
ffmpeg使いたいんですが、ロリポップやXREA、そのたレンタルサーバーで利用できるのでしょうか?
03833792007/02/16(金) 07:17:59ID:???
自己解決しました。
0384381-3822007/02/16(金) 07:21:06ID:???
381も自己解決しました。
382も自己解決しました。
0385nobodyさん2007/02/16(金) 07:33:34ID:???
>>317
gifcat.plをPHPに移植したgifcat.phpというのがある
gifcatはgifアニメの左位置をずらして全部表示させてるだけなので
その部分を改造したら普通のgifアニメにできるよ
0386nobodyさん2007/02/16(金) 10:13:53ID:???
>>372はバカなのか、それともマジで言ってるのか・・・。

>session_startを書いた時だけ

そりゃそうだ、session_startを使う=セッションを開始する、ってことだからな。
0387nobodyさん2007/02/16(金) 10:27:38ID:ARswDuxS
PHPとpostgresqlを使ってるのですが
postgreの関数でpg_fetch_objectっていうのあるじゃないですか?
まだ実験してないんですけど(汗
説明読んだ感じだと、自分で作ったクラスを指定して
あるメソッドを持ったオブジェクトに行を読み込んで
そのオブジェクトを保持した配列とか作れますよね?

で、それってPDOで出来ないのでしょうか?
FETCHタイプにPDO::FETCH_OBJっていうのがあるけど
オリジナルクラスを指定出来ないっぽいです・・・
日本語マニュアルに出てないカクレキャラとかありませんか?
もしくは見逃してたりして・・・

お願いします
03883812007/02/16(金) 10:59:44ID:fSTSWZAw
まだ解決していません。_| ̄|○

>>384
やめてくれ
0389虚弱PHP2007/02/16(金) 11:23:33ID:???
>>381
聞いたことないけど、別にPHPに拘る必要はないんじゃないのだろうか。
0390nobodyさん2007/02/16(金) 11:25:57ID:???
>>381
多分ないと思う、俺も探したような気がする
PEARのHTTP_ClientやZFのZend_Http_Clientで
各リクエストとクッキー操作あたりまではできるが
リンク辿ったりとかフォーム送信みたいなのまで
ちゃんとできてるライブラリは無いっぽい
スクレイピングツールもあんまりないし
phpはこういう類のライブラリ弱いイメージがある
03913812007/02/16(金) 11:34:02ID:???
>>389-390
thx。いやまさにスクレイピングしようと思っていました。
素直にmechanize使います。(実はperlあまりさわったことないんだ・・・)
0392nobodyさん2007/02/16(金) 12:23:28ID:???
>>391
SimpleTestにScritable browserてのがあるよ、使ったこと無いけど。
個人的にはWebスクレイピングはMechanizeか、そうでないならnetcatでお手軽にすます。
0393nobodyさん2007/02/16(金) 12:29:54ID:???
mb_send_mail あたりでSSL使って送信する方法ってなかとでしょうか。
相手先サーバーまで暗号化したいとです
0394nobodyさん2007/02/16(金) 13:11:16ID:???
smtpsってやつですかね。
これはPHPじゃなくて送信サーバの設定でじゃない?
0395nobodyさん2007/02/16(金) 14:14:22ID:???
一番の暗号化は、メール一通につき一通送ることだ、あとで文字を組み立てれば読めるのだから問題ない
0396nobodyさん2007/02/16(金) 14:26:08ID:???
一通につき一通って当たり前のことじゃん。
0397nobodyさん2007/02/16(金) 14:28:08ID:???
>>393
>相手先サーバーまで暗号化

それはSSL使っても無理。
smtps(SSL)で暗号化されるのは、メール送信者のMUAとMTAまでの間の経路だけ。

PHPでメール送信する場合は「MUAとMTAの間」は事実上無い(同じサーバ上)。
だから意味が無い。
0398nobodyさん2007/02/16(金) 14:43:48ID:???
PHPで自動実行が出来ないものかと思い、調べていると
pseudo-cronというPHPでcronの代わりになると言うものがありました。

しかしこれはアクセスがあるページにソースをを貼って実行するので
本来のCronの機能とは全く違う気がします。(cronのコードは使えるけど…)

そこで質問ですが、PHPでcronのようなことはできないのでしょうか?
0399nobodyさん2007/02/16(金) 14:56:04ID:???
cron使えや
0400nobodyさん2007/02/16(金) 14:59:01ID:???
・手動で起動
・携帯から定時にPHPスクにメール飛ばして起動(要メールまわりイジリー)
・クーロンが使える鯖を借りる
0401nobodyさん2007/02/16(金) 15:10:19ID:???
>>398
>PHPでcronのようなこと

なぜcronそのものを使わないのか。
0402虚弱PHP2007/02/16(金) 15:17:14ID:???
Windowsならタスクスケジューラーかat
0403nobodyさん2007/02/16(金) 15:34:09ID:???
phpでcronみたいな機能を作りたいということか?
0404nobodyさん2007/02/16(金) 15:48:48ID:???
>>403
だったらなに?
0405nobodyさん2007/02/16(金) 16:20:29ID:???
>>398
一定時間おきにURLにアクセスしてくれるサービスをどこかでやってたな
まあそこのサバがダウンしたら意味ないけど
0406nobodyさん2007/02/16(金) 16:35:12ID:???
>>405
webcronね
http://www.webcron.org/
0407nobodyさん2007/02/16(金) 17:40:15ID:84XPqP8V
PHPとRubyはどちらが需要が高いですか?あとやれることは同じですか?
0408虚弱PHP2007/02/16(金) 18:14:50ID:???
需要で言えば今はこんな感じじゃないかな?
PHP >= Perl >> Ruby
ハッカー的なとんがっている人はPerlとかRubyの方が多いと思う。
Rubyはこれから伸びそう。
Javaは別ジャンル。

「やれること」って曖昧すぎるよね。
0409nobodyさん2007/02/16(金) 18:16:53ID:???
虚弱PHPはニートって本当ですか?
0410nobodyさん2007/02/16(金) 18:22:35ID:???
これからはパインソの時代だよ
0411nobodyさん2007/02/16(金) 18:48:21ID:???
>>407
そりゃPHPの圧勝。
やれることは「同じ」と言って差し支えない。
少なくともお前みたいな質問するレベルなら、どれでも同じことやれるから心配するな。

>>408も指摘してる通り、「Perlはヲタが未だに捨てられない技術」であり、「Rubyはヲタが新たに誇示したい技術」である。
したがって、ただ単に実用的に自分の願望を素早く実現したいだけなら、PHPを選んでおけば間違いない。
0412nobodyさん2007/02/16(金) 18:52:40ID:???
cronが使えないレンタルサーバ借りてて
一日中PCとブラウザ立ち上げておいて
ツールで指定時間にsubmitしてるやつ昔いたよ
0413nobodyさん2007/02/16(金) 18:59:35ID:???
たとえばXREAでも借りれば月200円で済むのに・・・
1日中PC使う電気代のほうが高いんじゃネ?
0414nobodyさん2007/02/16(金) 19:12:46ID:???
そろそろその低レベルな会話やめないか?
0415nobodyさん2007/02/16(金) 19:23:26ID:???
もうPython最強でいいよ
0416nobodyさん2007/02/16(金) 19:32:07ID:???
熱い、熱いぞー!
0417nobodyさん2007/02/16(金) 19:33:33ID:dT8Hr45p
うちの会社でPHPをオブジェクト指向的記述法でソース書かれててびっくりしたんだけど
主流だったりするの?
今までC言語的記述しかしてなかったからソース見てほんとびっくりしたんだよね
0418nobodyさん2007/02/16(金) 19:36:48ID:???
http://www.chugoku-np.co.jp/News/Tn200701270097.html
トラストジャパンの事件、同和利権&朝鮮人&街宣車…という、
2ちゃんで大騒ぎされそうな最強ネタなのに、全然話題になってないね。

なんでだろう?
2ちゃん内部に関係者がいるのかな??
0419nobodyさん2007/02/16(金) 19:45:55ID:???
的ってなによ・・あくまで指向じゃないのね・・
0420nobodyさん2007/02/16(金) 20:37:30ID:80BNRnzJ
初心者的質問で申し訳ない。

PHPって、HTTPでアクセスがあったときにサーバサイドで動くものだと理解しているのですが、

だとすると、
1. メールに自動返信
2. 定時になったらメールを送る
といった、メールや時間をトリガーにした
動作ってのはできないもんなんですか?
04213872007/02/16(金) 20:45:59ID:???
ごめん
やっぱり見逃してた
PDO::FETCH_CLASS
っていうのがありました。

試してみます
お騒がせしました
0422nobodyさん2007/02/16(金) 21:05:59ID:???
>>420
Web用途に特化してるだけ。
シェルから普通のプログラム(インタプリタ)としても実行できる。
MTAなりcronなりお好きなトリガーでどうぞ。
0423nobodyさん2007/02/16(金) 21:08:10ID:???
>>420
1.メールボックスとPHP実行が同じマシンなら
メールボックスにメールが届いた際にPHPスクリプトを起動することが可能
>PHPって、HTTPでアクセスがあったときにサーバサイドで動くもの
が間違い。「.forward」とか「PHP-CLI」とかを調べる。

2.PHPスクリプトをずっと起動しておく(常駐)させておいて、
設定時刻になったら該当の処理をするということも可能だが、
(これも概ねPHP-CLIを使う)
このスレの少し前にも話題に上がってるcron/at/タスクスケジューラを使い、
「設定時刻になったら」の部分はそれらに任せ、そこからPHPスクリプトを起動する。
0424nobodyさん2007/02/16(金) 21:24:26ID:???
>>423
>PHPスクリプトをずっと起動しておく(常駐)させて

おいおい・・・
0425nobodyさん2007/02/16(金) 21:33:12ID:oLVs3bsF
メールアドレスをDBに保存する際に暗号化して保存したいんだけど、どうしよう?
PHPには可逆暗号関数が無いから自前で実装するしかないだろうけど、
どういったアルゴリズムがベストかな?

復号化を頻繁にやっても負荷が上がらないように、あまり重くない処理がいいよね。
たとえば16進数に変換してゴニョるとか?? おまいらのアイデア求む。
0426nobodyさん2007/02/16(金) 21:37:50ID:???
>>425
mcryptってPHPでモジュールになかったっけ?
あったらそれで、なかったら可逆のやつつかえばいいよ
0427nobodyさん2007/02/16(金) 21:46:07ID:???
>>425
アイデアと呼べるかどうか分からないけど、
モジュールやPEARの一覧を調べるとか、
プログラマなら誰でも思い付くマトモな行動を取ればいいと思うよ!
0428nobodyさん2007/02/16(金) 22:16:19ID:oLVs3bsF
>>426
mcryptって可逆だったのか。。。 不可逆だと思い込んでた。

>>427
PEARとか、他人が作ったものは使いたくないっす。
万が一、データが漏れたときでも、なるべく復号アルゴリズムをわかりにくくするため、
自前で実装したいであります。でもmcrypt使うかも。
0429nobodyさん2007/02/16(金) 22:21:21ID:???
>>422-424

いやあ、結構あるもんですね。
ありがとうございます。
0430nobodyさん2007/02/16(金) 22:28:57ID:oLVs3bsF
・・・と思ったら、mcryptって標準じゃ使えないのね・・・
0431nobodyさん2007/02/16(金) 22:32:30ID:???
>>428
1. 自分で妙なアルゴリズムを考えて、そのアルゴリズム自体を隠蔽する
2. 先人達が考案した実績あるアルゴリズムを採用して、その暗号化キーを隠蔽する

1より2のほうが遥かに簡単。かつ信頼性が高い。
もしあなたが高名な数学者とかだったら非礼をお詫びいたします。
0432nobodyさん2007/02/16(金) 22:47:13ID:oLVs3bsF
>>431
1番を採用しようと思います。
そんで、zendとかアシアルとか使って、スクリプト自体を暗号化します。

ttp://codelock.agtjapan.com/faqs.html
↑こういうのも見つけたけど、なんか日本語が変な直訳みたいなのがちょっと怪しい。
0433nobodyさん2007/02/16(金) 22:49:21ID:???
str_rot13最強伝説
0434nobodyさん2007/02/16(金) 22:57:58ID:???
メールアドレスを、反対から読んで保存するだけで全然OK
0435nobodyさん2007/02/16(金) 23:02:43ID:???
>>432
コストが高くて信頼性の低い方法を選ぶのですね。
すいませんここのスレタイを忘れてました。
0436nobodyさん2007/02/16(金) 23:06:01ID:???
>>434
全然意味ねぇな。

>>435
石橋を叩きまくって渡るサラリーマン気質乙。
■ このスレッドは過去ログ倉庫に格納されています