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

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

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

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

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

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

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

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0266nobodyさん2008/03/24(月) 13:32:08ID:???
ワロタ
0267nobodyさん2008/03/24(月) 13:34:17ID:BuclIAIb
>>265
具体的にどう恐ろしいのでしょうか…?

1.無断で他サーバに接続し、勝手にプログラムを使用していること。
2.サーバの管理状態の適当さ

今パッと思いつくのがこの程度なのですが。
0268nobodyさん2008/03/24(月) 13:59:15ID:???
偽装し放題だな。
0269nobodyさん2008/03/24(月) 14:03:28ID:???
262さんに質問です。
こんなことは可能ですか?

Aサーバのphp
<?php
$hoge_str="ほげほげ";
require_once("http://www.Bサーバ.com/hoge.php");
?>

Bサーバのhoge.php
<?php
echo $hoge_str;
?>
0270nobodyさん2008/03/24(月) 14:26:16ID:BuclIAIb
>>269
できませんね。

requireでもphpで処理して出力したHTMLしか取得してないということですかね。
少し勘違いしてました。

ありがとうございました。
0271nobodyさん2008/03/24(月) 14:31:06ID:???
おぉ恐ろしい
0272nobodyさん2008/03/24(月) 15:11:37ID:gLm40CNz
require_once "HTTP/Request.php";
$req =& new HTTP_Request($url);
if (!PEAR::isError($req->sendRequest())) {
$body = $req->getResponseBody(); }

$bodyが大きすぎる場合があります
例えば$bodyを5KByteだけ読み込みたい場合はどうすればいいでしょう
0273nobodyさん2008/03/24(月) 15:37:15ID:???
substr
0274nobodyさん2008/03/24(月) 15:48:51ID:???
>>273
ありがとう
0275nobodyさん2008/03/24(月) 17:35:29ID:???
それだと全部読んで5kにつめるからwhile分回しのがいいやね
あるいは何バイトまで読むか関数に引数いれとくとか
0276nobodyさん2008/03/24(月) 17:46:23ID:???
ID:BuclIAIbはネ申!
0277nobodyさん2008/03/24(月) 17:49:58ID:???
他サーバの呼び出せたらAPI作ることに関しては自由度が高まりそうだが
セキュリティ的に不可能じゃね?試してないが
0278nobodyさん2008/03/24(月) 20:18:25ID:???
APIって基本的にXML化されたファイルを読み込んで
PHPで処理する方式だろ?AmazonAPIとかGoogleとかそうだったはず。
0279nobodyさん2008/03/24(月) 21:00:43ID:???
>>278
簡単にいえば内部で使っているものを外部でも簡単に使えるようにするための仕組み。

例えば内部処理だけで使っている配列を、外部の人も使いたいといった場合、
配列にアクセスするための仕組みを提供したりする。
方法は配列を返す関数を作ってgetリクエストで呼び出したり、
配列をXMLに書き出してXMLで提供したり。
0280nobodyさん2008/03/24(月) 21:42:32ID:???
このスレには中高生しかいないw
0281nobodyさん2008/03/25(火) 00:03:26ID:???
>>280
中高生しかいないんですか?ということは>>280さんも中高生?
僕は中1です。
最近ホームページはじめたのでPHPに興味あります。
これで掲示板とカウンター作って将来会社たてたいとおもいます。
よろしく。
0282nobodyさん2008/03/25(火) 00:05:32ID:???
やるなら目標はもっとでかいことにしようぜ。
0283nobodyさん2008/03/25(火) 00:16:05ID:???
>>280
恥を知れ
0284nobodyさん2008/03/25(火) 00:18:02ID:???
突然ですが質問すみません

当方、PHP4.4.6でmb_send_mail でメール配信していたのですが、
PHP4.4.1 環境に移したところ

メール本文の途中が切れて送られるようになったり、
まったく空だったりするようになりました。
切れる場所も、文字数で切られている訳でもなく、
原因が掴めません。

メールが長い場合、(5KB以上程度?)の時に起こるようです。
しかし、MaxMessageSize を超えていることもなく・・・

似たような現象ご存知の方いらしゃれば
ご教授お願いします
0285nobodyさん2008/03/25(火) 01:31:10ID:9FmYRybR
シグマリオン3でPHPのコーディングしたいんですが
良いエディタないですか?
0286nobodyさん2008/03/25(火) 02:52:44ID:???
exec() あたりで1時間ほどかかるシェル処理をしたいんですが、
普通にブラウザから処理したらタイムアウトになりそうなんで、
何か良い方法ないでしょうか。
0287nobodyさん2008/03/25(火) 03:16:25ID:???
>>286
ブラウザに定期的に何かを出力すればいいんでない?
flushあたりの関数使って
一応set_time_limitを0にしてやったほうがいいと思う
まぁ普通にバッチ処理でいいと思うけど
0288nobodyさん2008/03/25(火) 03:16:42ID:???
>>286
何がしたいんだ
0289nobodyさん2008/03/25(火) 08:57:49ID:???
>>286
exec("重い処理処理.sh > /dev/null &");
0290nobodyさん2008/03/25(火) 09:15:14ID:tA2earVE
xbitのサーバーがphp4.4.18から4.3.9にダウングレードされるのですが
同じでphp4でも、コード修正が必要な事はあるのてじょうか?
0291nobodyさん2008/03/25(火) 09:17:33ID:???
>>290
http://php.net/ChangeLog-4.php
0292nobodyさん2008/03/25(火) 09:56:17ID:tA2earVE
ぉぉぉ
ありがとうございます
0293nobodyさん2008/03/25(火) 13:23:00ID:j8ua+z8X
すみません、質問します
スケジューラを作ってるんですが、カレンダーの画面で各日にちの
イベント名と簡単な概要が表示されるとします
この場合、たとえば3月なら31回(日にち分)sqlのリクエストをループまわして
そのイベント名なり概略なりを個別に受け取るべきなんでしょうか?
where month=3 and day=1 … day=31って感じで。
それとも、ループはせずにwhere month=3と一回だけにしてphpのプログラムで
結果を解析・表示すべきですか? どっちが効率がいいというか安全なのか、、
皆さんどうやってますか?
0294nobodyさん2008/03/25(火) 13:35:18ID:???
前者にどういうメリットがあると思ってるわけ?
02952932008/03/25(火) 13:56:51ID:j8ua+z8X
いやー、メリットなさそうだなと思いつつ、経験豊富なプロの方なら
別の考え方も提示してくれるかもと思ったもので。。
そんなことないみたいですね ありがとうございました!
0296nobodyさん2008/03/25(火) 14:44:38ID:???
やっぱ中高生しかいない。
0297nobodyさん2008/03/25(火) 16:37:28ID:DHM98VQb
会員ログインの仕組みなどで

ログイン→DBの登録情報を確認→正しければアクセス許可

としているのですが、ID情報をセッションで持ち回して
どのページでも上の処理を入れて毎回アクセスをチェックしています。
最近、こういう方法だとアクセスの度にSQLを発行するので良くないのでは?
っと思っているのですが、いかが思いますか?より良い方法があれば教えて下さい。
0298nobodyさん2008/03/25(火) 16:44:42ID:???
ログイン済みかどうか、
セキュリティを考慮したユーザID
をセッションに登録し
後の動作でそれを確認するのが普通だろ
0299nobodyさん2008/03/25(火) 17:50:35ID:???
>>293
クエリの回数が少なくなるようにしようぜ。
あとその日付をバラバラにしたカラムじゃ
「2007年3月15日〜2008年3月15日を削除」とかやってらんないぜ。
「日ごとのスケジュール登録件数」が欲しくても集計使えないぜ。
日付にふさわしいデータ型使え。

>>297
セッション変数に残すのは認証されているかどうかを表すフラグと、
認証されている場合はそのユーザの識別子、この二つだけでも十分なんだぜ。
クエリの事だが必要だったら遠慮せず発行するもんだぜ。
データベースを使うセッションハンドラとかよくある話だしな。
0300nobodyさん2008/03/25(火) 21:10:54ID:???
>>298
素人丸出しのレスだなwww
二重ログインという言葉自体知らないんだな。
0301nobodyさん2008/03/25(火) 21:12:46ID:???
>>300
経験不足っぽいレスだな
0302nobodyさん2008/03/25(火) 21:59:53ID:1pYd+uTd
こんばんわ

ログインしてページ内容を取得したいのですが
ヘッダーに
<noscript>
<meta http-equiv="Refresh" content="0; URL=http://javasをonにしてね.html"/>
</noscript>
という壁がありまして・・・どうにかいい方法はないのでしょうか?
0303nobodyさん2008/03/25(火) 22:00:46ID:???
>>300 >>298のレスから「二重ログイン」がどこから出てくるんだ?
覚えた言葉をすぐ使いたがる中高生だろオマエw
0304nobodyさん2008/03/25(火) 22:06:37ID:???
女子高生ですが何か?
0305nobodyさん2008/03/25(火) 22:23:04ID:???
>>304
んなヒゲの生えた女子高生がおるか!
0306nobodyさん2008/03/25(火) 22:40:34ID:???
>>304
メールくだしあ

「中高生」って流行ってるの?
0307nobodyさん2008/03/25(火) 22:40:56ID:???
>>303
DBを使う代わりに、セッションにログイン情報を格納すればすむという安易な考えが本当素人考え。
0308nobodyさん2008/03/25(火) 22:55:33ID:???
>>306
流行ってるわけない。
春休みで変なのが沸いてるだけだから華麗にヌルー
0309nobodyさん2008/03/26(水) 00:43:09ID:???
>>307
エスパーか藻前は?
03103072008/03/26(水) 00:57:54ID:???
なんでわかったんですか!
はい、伊藤です。
0311nobodyさん2008/03/26(水) 02:43:19ID:???
エスパーときたら、魔美
0312nobodyさん2008/03/26(水) 02:46:00ID:???
>>311
kwsk
0313nobodyさん2008/03/26(水) 03:44:58ID:???
毎回のように娘をベッドの上で裸にする父親が
主人公のアニメ・漫画。
0314nobodyさん2008/03/26(水) 06:12:28ID:???
愛情の反対は嫌悪じゃなくて、無関心だと言う。

どうしてココの住民は、無関心ではいられないのだろうか。
何かとすぐ切れやすい子どもが、このスレに体現されているとしか評価しようがない。
0315nobodyさん2008/03/26(水) 07:17:30ID:BV+jSJbq
phpの質問なのかmysqlの質問なのかわからないのですが、
やりたい事がphpを使って操作する事なのでこちらで質問させて頂きます。

php+mysqlでアクセス解析を作りたいのですが、UA、リファラー、現在の日時等を取得して、
UA、リンク元、累計アクセス数、日別・月別・曜日別アクセス数などを表示したい場合、
全て1つのテーブルに保存するのと、項目ごとに別のテーブルに保存するのではどちらが効率的でしょうか?

書き方がわかりにくいと思いますが、全て1つのテーブルに保存する場合、
1行目 useragent=IE6, referer=http〜, date=2008/1/1 0:00:00
2行目 useragent=IE5, referer=http〜, date=2008/1/1 0:00:00
という形になり、テーブルの内容を全て配列に入れてからphp側で検索・ソート等して出力するか、
表示したい項目ごとにデータベース側で検索して出力する事になると思います。

項目ごとにテーブルを作る場合、
テーブル「useragent」
name count
IE6  2
IE7  5
という形になり、テーブルの内容をほとんどそのまま出力すればいいだけになります。

アクセス時の処理では前者の方が後者より速く負荷もかからないと思うのですが、
表示時の処理はログが増えるほど前者が後者より遅く、高負荷になるのではないかと考えています。

mysqlについてはphpmyadminで軽く触った程度なので、根本的に間違っているor意味不明な質問かもしれませんが、
「ここはおかしい」や「こうした方がいい」等のアドバイスでも構いませんので、ご回答お願い致します。
0316nobodyさん2008/03/26(水) 09:07:29ID:???
>>315
サイトのアクセス状況による
一日数十とか数百単位しかアクセス無いなら前者で良いだろうけど
2ちゃん並にくることが予測されるなら後者の方が良いと思う
とりあえず前者でサイト開いてみて段階踏んだらどうよ?

あとログとしてデータが残り続けるなら前者である一定の値にきたら
offsetかましてcountの効率を上げる方法もある…
0317nobodyさん2008/03/26(水) 09:14:01ID:???
>一日数十とか数百単位しかアクセス無いなら前者で良いだろうけど
>2ちゃん並にくることが予測されるなら後者の方が良いと思う

10か3億か、ってお前極端すぎww

病院に行け
0318nobodyさん2008/03/26(水) 09:15:32ID:???
テーブル設計の問題だなぁ
>>315
dbスレ行ったほうがいいんじゃね?

つか普通は全部纏めて入れる
日ごとにUAの集計したら「午前中」とか「リファラの無いIE6」とかが欲しくなった時どうにもならないし

表示スクリプトは数十行だろうから、とりあえず両方書いてダミーデータで速度見るのもいいかもね
03193022008/03/26(水) 09:50:54ID:ynVuNR2N
やっぱり無理ですよね・・・
0320nobodyさん2008/03/26(水) 11:09:58ID:???
>>319
何がしたいのかよくわかんねーんだわ
0321nobodyさん2008/03/26(水) 11:19:54ID:ynVuNR2N
>>320
mixiなりアマゾンなり、phpからログインして情報取れますよね?
例えば今回liveアカウントへいこうとすると
javascriptを有効にしてくださいというページに飛ばされてしまいます
単純にnoscriptでジャンプされてしまうのですが、どうしたら良いのか思いつかず・・・
0322nobodyさん2008/03/26(水) 11:22:07ID:???
phpで取得したときに勝手に飛ばされるっけ?
0323nobodyさん2008/03/26(水) 11:55:25ID:YOiMNcCa
>>322
いや飛ばされない。IEで解決。
0324nobodyさん2008/03/26(水) 12:00:13ID:???
意味分からんことばっか言って混乱させるなよ・・orz
0325nobodyさん2008/03/26(水) 12:03:32ID:???
奥さん、昨晩旦那が浮気していましたよ。
03263022008/03/26(水) 12:12:25ID:ynVuNR2N
ちなみにPEARでやってみているんですが
最初のレスポンスの時点でjs有効にしてねというページが返ってきます
0327nobodyさん2008/03/26(水) 12:16:09ID:???
まさかmetaが入ってる文字列を出力して開いてるなんてオチじゃないだろうな?
0328nobodyさん2008/03/26(水) 12:37:10ID:tSZRDvWr
PHPでXML(Atom)をつかっての送受信をしたいのですが、
署名による認証のしかたがわかりません・・。
(PEARにもXML-RPCはあるのですが、暗号化や複合化ができるようなものはなさそうで)
わかる方がいればおしえてください。
03293022008/03/26(水) 14:58:59ID:ynVuNR2N
標準関数でも
いろいろ試して見ましたが、解決せず
PEARスレに行ってきます
ありがとうございました
0330nobodyさん2008/03/26(水) 15:07:16ID:???
行ってらっしゃ、気をつけて。(^ー^)ノ~~
0331nobodyさん2008/03/26(水) 16:08:50ID:oGx/hZT1
$test = "1,2,99";
if(strstr($test,"9")){
echo "含まれています";
}

とした場合、$test内に「9」が含まれていないのに、
「99」でもヒットされてしまいます。どういう風に修正すればいいのでしょうか?
0332nobodyさん2008/03/26(水) 16:08:58ID:???
奥さん、昨晩旦那が浮気していましたよ。
0333nobodyさん2008/03/26(水) 16:22:02ID:???
エスパー解釈で難癖つけるのが流行っているのか?
0334nobodyさん2008/03/26(水) 16:22:07ID:???
>>331
は?
何がしたいの?

$test_ary=explode(".",$test);
foreach($test_ary as $val){
if(strstr($val,"9")){ echo "含まれています"; }
}

でもすれば?
0335nobodyさん2008/03/26(水) 16:28:34ID:???
>>331
>$test = "1,2,99";
>if(strstr($test,"9")){
>echo "含まれています";
>}

>とした場合、$test内に「9」が含まれていないのに、

9って思いっきり含まれてるじゃん。
0336nobodyさん2008/03/26(水) 16:31:41ID:???
strstrの使い方が違うような。
0337nobodyさん2008/03/26(水) 16:48:42ID:???
>>331にとっては「99はあるけど9は含まれてない」という感覚なんだろうね。

explode するとループで悩む年頃だろうから
if (preg_match('/\D9\D/', $test)) 辺りでどうですか。

>>334
質問者と同じ地雷を踏んでますよ。
0338nobodyさん2008/03/26(水) 16:54:54ID:???
9という数値なのか、9という文字なのか
まぁそういう概念がないんだろうけど
0339nobodyさん2008/03/26(水) 16:55:41ID:???
配列にして==9にすりゃいいじゃん
03403372008/03/26(水) 16:56:21ID:???
$test = "9,1,2,3" とか $test = "1,2,3,9" のことを考えてなかった。
眠いので修正せず放置しとこう。
0341nobodyさん2008/03/26(水) 17:05:24ID:???
しかし、そもそもこのフォーマットは何なんだ??
せめてカンマ区切りにしとけばいいのに・・。
0342nobodyさん2008/03/26(水) 17:15:35ID:???
配列にしてるのに
態々==9とかあほかw
in_arrayでいいだろ

0343nobodyさん2008/03/26(水) 17:32:49ID:???
>>334 と >>341 にはCSVに見えないのか
0344nobodyさん2008/03/26(水) 17:45:18ID:???
中高生ですから
0345nobodyさん2008/03/26(水) 18:04:16ID:???
含まれてるじゃなくてイコールじゃないのにっ真になるのがおかしいと言いたいのだろうか・・・
でも本人が含むって言葉思いっきり使ってるし$testを配列みたいに解釈してしまってんだろうか。
ひょっとして
$test = "1,2,99";
$test_ary=explode(".",$test);
foreach($test_ary as $val){
if($val ==9){ echo "含まれています"; }
}
みたいなことをしたいのか?これだと99と9はイコールじゃないが。
しかしこれだtstrstr使う意味がないしarray使うべきだし・・・難問だ。
0346nobodyさん2008/03/26(水) 18:11:56ID:???
本人が登場してくれない限りは解決出来ないな。
0347nobodyさん2008/03/26(水) 18:12:53ID:???
みんながいじめるから質問者が逃げちゃったじゃないか!
03483152008/03/26(水) 18:18:00ID:???
>>316,>>318
個人の趣味サイトなので、アクセス数は最大でも重複カウントなしで1000/日というところです。
>>318さんのおっしゃる通り、今後条件別にログを表示させたくなった時に前者の方が良さそうですね。

ログ表示ページはそれほど頻繁に閲覧されるものでもないと思うので、
表示に関して多少非効率的になっても、前者の方法を使う方向でいきたいと思います。

インデックスとか>>316さんの言うoffset等、理解できていない部分が沢山ありますので、
データベース関連のサイトやスレなどを見て勉強してきます。

回答ありがとうございました。
0349nobodyさん2008/03/26(水) 18:29:36ID:???
質問者よりも explode(".",$test) さんの悩みのほうが深刻そうだ。
0350nobodyさん2008/03/26(水) 21:34:16ID:???
中高生の悩みは性だけじゃないのか。
0351nobodyさん2008/03/27(木) 02:13:01ID:???
中高年の悩みも性だな。
0352nobodyさん2008/03/27(木) 06:31:18ID:???
echo "<body>"とすると何故か3〜5秒くらいラグが発生してしまいます。

<html>
<head></head>
<?php
echo "<body>";
?>
テスト
</body>
</html>

これだけの記述でもタイムラグが発生するのですが、body要素をphpで出力するのには何か問題があるのでしょうか?
それとも、xreaの無料サーバーを使っているのですが、このサーバー側の仕様か何かなのでしょうか?
0353nobodyさん2008/03/27(木) 07:12:29ID:???
単にサーバが重いだけでは?
時間おいてためすべし。
03543532008/03/27(木) 07:14:52ID:???
あ、あと1つ言い忘れたけど、
xrea無料といえば自動挿入広告が重い原因にもなるから、
htaccessで広告表示しないようにして手動広告はるのがお勧め。
0355nobodyさん2008/03/27(木) 07:18:47ID:???
1ヶ月PHP勉強してきましたが、全然意味不明。
いざ自分でコード書こうと思ったら意味不明
PHP考えた人まじ天才 もうわけわからないっす
0356nobodyさん2008/03/27(木) 07:34:07ID:???
それはない
03573522008/03/27(木) 09:24:16ID:???
>>354
レスありがとうございます
確認したところ、どうやら広告関係の問題だった様です

広告は手動で挿入しており、出力後のソースを見ても自動の広告が無かったので、
手動で広告を入れると勝手に切り替わるものだと思っていました
サポートページ等を見ながら修正したいと思います
ありがとうございました
0358nobodyさん2008/03/27(木) 09:41:52ID:5276Wbjq
snoopyクラスってマイナー?
0359nobodyさん2008/03/27(木) 09:50:33ID:???
すぬーぴー?
0360nobodyさん2008/03/27(木) 10:31:06ID:???
マイナーじゃないかな。
俺もチラッと触っただけだけど。
0361nobodyさん2008/03/27(木) 10:42:00ID:5276Wbjq
そうか・・・
0362nobodyさん2008/03/27(木) 11:53:37ID:???
>>355
おれもそう思う、感心する
PHPでプログラムできる人たちマジ神ですね
リスペクトしてます
0363nobodyさん2008/03/27(木) 12:07:08ID:???
そこまで分からなかったら、他の言語やってからにすれば?
0364nobodyさん2008/03/27(木) 12:15:59ID:???
PHPが「全然意味不明」だとどの言語ダメな気がする
0365nobodyさん2008/03/27(木) 12:25:39ID:???
「なでしこ」とかはどう?

俺の場合、BASIC->C->C++->Java->PHPだな。
0366nobodyさん2008/03/27(木) 12:36:13ID:???
>>365
C++からJavaとか、JavaからPHPとか頭が退化してんじぇねーの?
■ このスレッドは過去ログ倉庫に格納されています