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

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

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2008/06/25(水) 10:14:08ID:???
まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは970が立ててください立たなかった場合は980よろ

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

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

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

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0269nobodyさん2008/07/02(水) 16:15:23ID:???
>>268
何それ?
0270nobodyさん2008/07/02(水) 17:18:28ID:YKp2VoP0
/htdocs
  |
  +-/admin  <- 要認証
  |
  +-/form
     |
     form.php

こういうディレクトリ構造になっているところに、
/admin以下にBASIC認証やDigeset認証をかけました。
認証されていないform.phpから、認証がいるadminディレクトリ以下のファイルに書き込むことは可能ですか?

試してみるとOKだったのですが、もしかして事前に自分で認証してしまってそれで通ってしまったのかな?
と不安になったので質問しました。
0271nobodyさん2008/07/02(水) 17:22:13ID:???
書き込むときにhttpd通ってないでしょ?
影響するのはパーミッションですね。
0272nobodyさん2008/07/02(水) 17:41:28ID:l+FlpTuR
IMGのアクセスカウンタにリファラを付加することはできないでしょうか?

http://localhost/index.html
<img src="http://example.com/counter.php" />

PHP側でリファラを取得すると、リファラが「http://localhost/index.html」になってしまいます。
直接PHPを埋め込まないとダメなのでしょうか・・・?
0273nobodyさん2008/07/02(水) 17:51:45ID:???
>>272
これでどう?
<img src="http://example.com/counter.php?ref=$_SERVER['HTTP_REFERER']" />
0274nobodyさん2008/07/02(水) 17:53:53ID:l+FlpTuR
>>273
それって「$_SERVER['HTTP_REFERER']」という文字列を渡してるから意味なくね?
0275nobodyさん2008/07/02(水) 17:59:20ID:???
それをヒントに意味あるものにしてみると言う発想はないのか
0276nobodyさん2008/07/02(水) 18:00:03ID:???
書かれたまんまにしか理解できないのかよ・・・
0277nobodyさん2008/07/02(水) 18:22:59ID:???
  おチンチンびろーん
   ∩___∩
   | ノ      ヽ/⌒)
  /⌒) (゚)   (゚) | .|
 / /   ( _●_)  ミ/
.(  ヽ  |∪|  /
 \    ヽノ /
  /      /
 |   _つ  /
 |  /UJ\ \
 | /     )  )
 ∪     (  \
        \_)
0278nobodyさん2008/07/02(水) 19:15:19ID:???
>>274
お前はどこのスレでもダメだなぁ。
0279nobodyさん2008/07/02(水) 19:40:20ID:???
俺もわからん
phpなのか
0280nobodyさん2008/07/02(水) 19:55:08ID:???
そもそも呼び出し元がPHPならIMGタグ無くても解析できる。
JavaScriptが使える条件になるがJavaScriptで取って渡す。
0281nobodyさん2008/07/02(水) 22:07:13ID:???
phpで仕事を2年くらいしていますが、
データベースと接続して、文字列操作するだけの仕事に尽きるのですが、
phpというかwebの仕事って、みんなこんな単調な仕事なのでしょうか?

もっと、特許がとれる位のアルゴリズムを考えるのが、
プログラマーの仕事だと思っていたので、
仕事に対するマンネリ感が積もっています。
大学で専攻した知識もほとんど役に立ちませんし、がっかりです。
0282nobodyさん2008/07/02(水) 22:08:42ID:???
phpでやってるからだろw
0283nobodyさん2008/07/02(水) 22:12:39ID:???
>>282
phpのスレで、phpの悪口を必死に昼夜分かたず書き込んでいるって何?馬鹿?バッカ?ハッカ?
0284nobodyさん2008/07/02(水) 22:28:36ID:???
>>281
早く独立して会社おこしてphpで特許を取れるアルゴリズムを開発しなよ
仕事を貰ってる立場で、しかもどうせ自分で営業した案件じゃないんだろ?
それでがっかりとか、いい身分ですなあ
0285nobodyさん2008/07/02(水) 22:29:16ID:???
自分のふがいなさを、言語のせいにしたいお年頃
0286nobodyさん2008/07/02(水) 22:31:07ID:???
自分で志願して発明して特許取れ
待って与えられた仕事してたら何時の間にか特許取れてたなんてことない
0287nobodyさん2008/07/02(水) 22:34:58ID:???
web関係でも特許取ってるじゃん
0288nobodyさん2008/07/02(水) 22:35:57ID:???
そのつまらん仕事を楽しくする特許を取る。
で、特許申請に金かかったが誰も使ってくれない。
0289nobodyさん2008/07/02(水) 22:41:11ID:???
あのグーグルですらほとんどの社員は単調な仕事だそうな
0290nobodyさん2008/07/02(水) 22:50:56ID:???
もっと面白い意見をお伺いできるかと思って投稿したのですが、
うちの会社の上司と大して変わらないご意見ばかりでした。

思うに、言語のような言語の壁がなく、労働集約型のプログラマーの仕事は、
数年後にはほとんど安い外国の労働市場に持って行かれるのではないでしょうか?
職業としてプログラマーとして従事している方は、もう少し向学心をお持ちになられた方がいいと思います。

少なくても、生産資源が乏しく技術を売りするしか世界で存在価値を示せない日本が、
このような低付加価値の仕事ばかりをしていたら、ますます国力が衰えていくだけです。
0291nobodyさん2008/07/02(水) 22:53:06ID:???
その低付加価値の仕事をしてる人に言われても説得力が全くありません
0292nobodyさん2008/07/02(水) 22:56:28ID:???
ここはPHPの技術的な質問をするスレですよ
スレ違いなので、というより板違いなので仕事の愚痴は別板でお願いします。
0293nobodyさん2008/07/02(水) 22:57:41ID:???
散々レスした挙げ句、都合が悪くなるとすれ違いとか板違いといって逃げるのですね。
0294nobodyさん2008/07/02(水) 23:02:14ID:???
>>290
そんな仕事してるのはお前の能力が足りなかったせいだw
まぁこんなところでわざわざ釣り乙www
0295nobodyさん2008/07/02(水) 23:09:19ID:???
だから勝手に取れ
特許料もらえるまで赤字だから研究・特許なんてそうそう許可できん。
いい特許アイデアできたら上司と喧嘩してでも予算とれ
0296nobodyさん2008/07/02(水) 23:09:19ID:???
>>281-294 以上、俺の自作自演でした^^

  おチンチンびろーん
   ∩___∩
   | ノ      ヽ/⌒)
  /⌒) (゚)   (゚) | .|
 / /   ( _●_)  ミ/
.(  ヽ  |∪|  /
 \    ヽノ /
  /      /
 |   _つ  /
 |  /UJ\ \
 | /     )  )
 ∪     (  \
        \_)
0297nobodyさん2008/07/02(水) 23:10:36ID:???
物足りないんだったら車輪の再発明でもすれば?w
0298nobodyさん2008/07/02(水) 23:30:38ID:???
>281,290
見てる世界狭すぎ。



え、あれ?釣りなの?w
0299nobodyさん2008/07/02(水) 23:36:45ID:???
上司に言ったんかそんな話w
0300nobodyさん2008/07/03(木) 04:37:49ID:???
率直に話し合った方がいいだろ

当たり前だが営利企業は斬新だろうが普通だろうが金になる事が正義
0301nobodyさん2008/07/03(木) 14:31:17ID:3X5/4UgX
ちょいと質問と言うか相談ですが、
複数のディレクトリーがあってその中には複数のhtmlファイルが入っています。
複数のhtmlのそれぞれの更新日時を調べて更新日時順で
ファイル名・更新日時・ページタイトル を一覧で出すにはどんな流れで書いていけばいいんでしょうか?
全ファイルの一覧や上位10件とかもあればなお良いのですが。
0302nobodyさん2008/07/03(木) 14:35:30ID:???
>>301
htmlのそれぞれの更新日時を調べる。
更新日時順にファイル名・更新日時・ページタイトル を出す。
0303nobodyさん2008/07/03(木) 15:09:10ID:???
>>301
readdir
 ディレクトリだったら再帰
 ファイルだったら必要な情報を調べる。配列にでも格納
 次のファイルへ
全部調べたら好きなように加工
0304nobodyさん2008/07/03(木) 15:16:00ID:3X5/4UgX
レスありがとう。
各ファイルの更新日時・URL・ページタイトルなど必要な情報は個別に取得できていて
すでにsitemapとしてgoogleに登録してるのですが、
それを更新日時順に並べるのが出来ていない状況です。
更新日時とファイル名の関連付け?がどうすれば出来るのかって事でしょうか。

0305nobodyさん2008/07/03(木) 15:17:34ID:???
Arrayに入ってるならソートすればいいんじゃ?
0306nobodyさん2008/07/03(木) 15:30:45ID:???
$dirurl[] = '../test1/';
$dirurl[] = '../test2/';

foreach($dirurl as $key =>$value){
$dir = @opendir($value);
while($file = @readdir($dir)) {
if (!is_dir($file)){

@include_once($value.$file);

if($sitemap_ok != '1') continue;
$pegedata = explode("." , $value.$file);
$lastupdate = @date("Y-m-d\TH:i:s\+09:00",@filemtime($value.$file));

$sitemaps = <<<_EOD_
<url>
<loc>http://$SERVER_NAME$pegedata[2].html</loc>
<priority>$priority</priority>
<changefreq>$changefreq</changefreq>
<lastmod>$lastupdate</lastmod>
</url>
_EOD_;
echo $sitemaps;}}
closedir($dir);}
今こんな感じです。それぞれ必要な内容は取り出せているのですが、これを更新日時順で並ばせたいと思っています。
arsort($xxx,SORT_NUMERIC);などで更新日時順で並べれる事は分かるのですが、どこをどうすればいいのやら…
もう1ど最初から作り直した方がいいでのでしょうか。
0307nobodyさん2008/07/03(木) 15:36:49ID:???
>>304
DBに突っ込んでソート汁
0308nobodyさん2008/07/03(木) 15:40:30ID:???
>>307
DBすか!やっぱりその方がいいんでしょうね。
将来の事もあるのでsqlを少し勉強した方がよさそうですね。
あまり長くなるのも迷惑なので勉強して出直してきます。失礼しました。
0309nobodyさん2008/07/03(木) 15:45:17ID:???
>>308
Arrayに突っ込んでソート
0310nobodyさん2008/07/03(木) 15:49:46ID:???
>>306
たとえばarsort使いたいなら
$array_nanika[更新時間unix_time] = ファイル名;
みたいな配列を一度作って、arsort。

ただコレだと同じ時間に更新されたファイルがあるとダメだからもう一工夫は要るね。
なんにせよ一度配列に収めろってことです
0311nobodyさん2008/07/03(木) 18:51:15ID:0wf3u7xU
クラスをnewするときに引数を渡したいのですが、
引数のチェックに失敗したときはクラスの作成自体を中止したい場合ってどうすればいいんですかね?


class hoge{
public function __construct($fuga){
if(!$fugaのちぇっく){
//ここで自分自身を破棄?
return false;
}

}

みたいな
0312nobodyさん2008/07/03(木) 19:05:16ID:???
それPHP?
まあ例外投げるんじゃね
0313nobodyさん2008/07/03(木) 19:22:00ID:NDuREgXX
負荷が高いサイトを運営していますが、
例えば、Apacheを80番と81番で平行運用することで負荷分散を図ることは可能でしょうか?
例えば、スクリプトAは80番で処理して、スクリプトBは81番で処理するということです。
これで、速度が倍になれば、Apacheを数十個起動して、速度を10倍位に上げたいと思います。

現在は、一ページ返却するのに10秒から15秒かかり、クライアントから遅すぎるのではないか、
と言われておりまして、これ以上クライアントに我慢してもらうことも難しくなっています。
0314nobodyさん2008/07/03(木) 19:27:05ID:???
すげー馬鹿だなw
0315nobodyさん2008/07/03(木) 19:30:08ID:???
天才現る
0316nobodyさん2008/07/03(木) 19:51:15ID:???
>>313
スレ違い。ここはPHPスレ
君のような馬鹿が来るところじゃない。
まったくこれだからApache厨は馬鹿といわれる。
0317nobodyさん2008/07/03(木) 20:11:30ID:???
スイーツ(笑)
0318nobodyさん2008/07/03(木) 20:32:43ID:???
80番のスクリプトAはサーバAに処理を依頼して、81番のスクリプトBはサーバBに
処理を依頼すれば、倍とはいかないまでも速くなるぞ
オススメ
0319nobodyさん2008/07/03(木) 20:59:00ID:???
>>318
その回答だとWebサーバAとWebサーバBを、同一のハードで運用するかもな。
0320nobodyさん2008/07/03(木) 21:40:28ID:???
>>319
ヒントありがと!

VirtualBoxつかってやってみる!
0321nobodyさん2008/07/04(金) 00:16:00ID:???
  おチンチンびろーん
   ∩___∩
   | ノ      ヽ/⌒)
  /⌒) (゚)   (゚) | .|
 / /   ( _●_)  ミ/
.(  ヽ  |∪|  /
 \    ヽノ /
  /      /
 |   _つ  /
 |  /UJ\ \
 | /     )  )
 ∪     (  \
        \_)
0322nobodyさん2008/07/04(金) 08:49:58ID:???
ラウンドロビン的な?
0323nobodyさん2008/07/04(金) 09:52:39ID:???
ロードバランスしたいわけか
1台じゃ意味ねー
0324nobodyさん2008/07/04(金) 12:26:47ID:???
というかどこに時間かかってるのか
原因も突き止めず対策しても・・・
0325nobodyさん2008/07/04(金) 16:17:56ID:???
インデント無しで見にくいxmlを
$path = "xml_test.xml";//XMLパス(ファイル or URL)
$dom = new DOMDocument("1.0");
$dom->encoding = "UTF-8";
$dom->formatOutput = true;
$dom->load($path);
$dom->save($path);
で整形させようと思ったら出来ない。
$pathの中身が何も変ってないのは何故?

さくらインターネット、FreeBSD 6.1-RELEASE-p23 i386 、Apache/1.3.39 (Unix)、PHP 5.2.5
です
0326nobodyさん2008/07/04(金) 16:23:58ID:???
>>325
別名でsaveしても変わらないならそういう仕様なんだろ。
0327nobodyさん2008/07/04(金) 16:28:22ID:???
>>325
書けてるか確認した?
echo $dom->save($path);
0328たまちゃん2008/07/04(金) 17:36:17ID:DM0Om0jz
PHP 正規表現

PHPの正規表現を勉強しているのですが、どうもうまくいきません。今回は一番簡単な正規表現をつくったのですが、どうやったらよいのでしょうか。

$h = '(名前)様の会員IDは(abc12)で、(5)番目に偉い方です。';

とあったら、名前、会員ID、番号を抜き出すには、どのようにしたらよいのでしょうか?
実際に()は使用しません。
また、$1 や $2 などを使いたいのですが、解説までできればお願いしたいです。
一応自分なりに考えました。
preg_match('/^*.([a-zA-Z0-9]){2}([0-9]+)','名前$2.ID$1 $3 番目に偉い');
()を使えば、2つマッチさせたいときなどに分けることができるのでしょうか?
(名前)様は(数字)
例:太郎様は5

このとき太郎様という日本語の文字を取得するには/^(+.)([0-9])$/

ここで名前は$1になり、数字は$2になるのでしょうか?
どのような時に$1や$2がどっちがどっちなのかは、どのようにしたらわかるのでしょうか?


長々した質問すいません。わかるかた教えてください。
0329nobodyさん2008/07/04(金) 18:28:40ID:???
>>328
正規表現道場
http://pc11.2ch.net/test/read.cgi/php/1168450843/
0330nobodyさん2008/07/04(金) 18:36:56ID:ya62/r1Y
昨日、Apacheの複数起動で質問したものですが、
全く役に立ちませんでした。
phpやっている人の大半はApacheを利用していると思いますが、
Apacheを毛嫌いする理由がよくわかりませんし、
Apacheというより、phpの論点だと思ったので、ここで質問したのですが。
がっかりというか、呆れています。
0331nobodyさん2008/07/04(金) 18:40:38ID:???
スレ違い
0332nobodyさん2008/07/04(金) 18:42:27ID:ya62/r1Y
>>331
スレ違いというより、むしろあなたの勘違いです。
0333nobodyさん2008/07/04(金) 18:47:04ID:???
まぁまぁ、そう熱くならずに自分のおならの臭いを嗅いでエクスタシー感じようよ!
0334nobodyさん2008/07/04(金) 18:48:38ID:???
>>327
確認しましたがしっかり書けていました
ファイル名をフルパスでも試して見ましたが同じでした

うーん、formatOutputってあんま意味ないのか…
がっかり
0335nobodyさん2008/07/04(金) 18:55:24ID:???
>>330
一回のリクエストで10秒掛かるのの処理を分散した言って事?
0336nobodyさん2008/07/04(金) 18:59:20ID:???
数万行のCSVファイルを読み込み、指定した行列のものを取り出す場合では、
数万行のファイル一つを読み込み表示させる方法と
数万行のファイルを分割して、それぞれ読み込み表示させる方法では速度に違いはでてきますか?
どちらが効率よいでしょうか。
0337nobodyさん2008/07/04(金) 19:02:05ID:???
DBを使う
0338nobodyさん2008/07/04(金) 19:20:06ID:???
>>336
例えば1000行ごとにファイルを分けて1100行目なら二つ目のファイルを読み込むってことか?
こっち
0339nobodyさん2008/07/04(金) 19:20:33ID:???
>>337
でたなDB厨
0340nobodyさん2008/07/04(金) 19:29:11ID:???
任意のテキストファイルを読み込み、その内容をブラウザ上に表示
と、いうことをやりたいです。

プログラム上でテキストファイルを指定し、表示させることまでは出来ました
ですが、『任意のファイルを選択』させることが出来ません
何か良い方法や考え方は無いでしょうか?

教科書など持っていないので、オススメの本やサイトがありましたら、紹介していただけるとうれしいです
0341nobodyさん2008/07/04(金) 20:37:53ID:???
誰が選ぶんだ。俺か?断る!
0342nobodyさん2008/07/04(金) 21:17:16ID:???
>>340
ターゲットディレクトリ内に存在するファイルの個数を取得して、
その数だけの範囲を持つ整数の乱数=nを発生させて、
該当するn番目のファイルを開くようにすれば良いんじゃね?
0343nobodyさん2008/07/04(金) 21:23:09ID:???
>>330
これ、釣りじゃないの?

こんな知識、というか思考力で過負荷になるようなサイト構築できるのか?
信じられん。よほどサイトコンテンツが良いのか、サーバにMSXでも使って
いるんじゃないのか?
0344nobodyさん2008/07/04(金) 22:36:40ID:???
>>340
input type="file"
0345nobodyさん2008/07/04(金) 22:53:21ID:zZLzuSUy
いまだにXPとか使ってるヤツって何なの?一般人なの?
http://news24.2ch.net/test/read.cgi/liveplus/1215164615/
0346nobodyさん2008/07/04(金) 23:22:17ID:???
>>343
我々の想定外のリソース超消費ロジック組んでるんだとオモ
0347nobodyさん2008/07/05(土) 03:42:00ID:???
数万行のファイルならすぐに過負荷になる。PHPのようなブラウザ表示デバッグだと、その時点で気付くはず。
0348nobodyさん2008/07/05(土) 03:52:36ID:???
>>347
たかだか10MB程度のファイルで?

一行256バイト×5万 = 12,800,000 = 約12MB
0349nobodyさん2008/07/05(土) 04:08:23ID:???
凄まじい密度だな
0350nobodyさん2008/07/05(土) 04:14:55ID:???
密度? CSVファイルで?
なんのこといってんの?
0351nobodyさん2008/07/05(土) 04:17:59ID:???
お前ら早朝に喧嘩してないで、
ジョギングでも行ってこいよ。もう外は明るいぞ。
0352nobodyさん2008/07/05(土) 04:19:18ID:???
<?xml version="1.0" encoding="UTF-8"?>
<head>
<score sort_no="2">
<score sort_no="1">
<score sort_no="3">
<score sort_no="4">
</head>
こんな感じのxmlファイルをsort_noでソートして保存しようと思って、simplexmlで読み込んで
usort、uasort、uksortやったけど全部ダメだった
まぁオブジェクトだから当然と言えばそうなんだけど、オブジェクトをforeachする時に出てくる順番を変える方法教えて下さい
php5です
0353nobodyさん2008/07/05(土) 04:36:38ID:???
出来ました
foreach($dom->score as $value){
$dom2[]=$value;
}
uksort($dom2,"sort_list");
こんな感じで
リファレンスって難しいなあ
0354nobodyさん2008/07/05(土) 04:53:16ID:???
お前は何を言ってるんだ
0355nobodyさん2008/07/05(土) 04:55:12ID:FcvNsP01
出来てなかった…
0356nobodyさん2008/07/05(土) 08:16:24ID:???
>>348
とりあえず一回、「PHP 配列 メモリ」で検索してみたほうがいいんじゃない。
メモリ使用量はかっこいいぜ。
0357nobodyさん2008/07/05(土) 09:02:09ID:???

      ∩___∩
   (ヽ  | ノ      ヽ  /)
  (((i ) /  (゜)   (゜) | ( i)))   …なんちゃってねっ! チンポっ☆
 /∠彡    ( _●_)  |_ゝ \
( ___、    |∪|    ,__ )
    |      ヽノ  /´
    |        /
0358nobodyさん2008/07/05(土) 11:33:06ID:oP1dT0fT
test.php?1の場合、$no=1のようにGETリクエストの値を動的に変数に入れたいんですけど、どういった方法が存在しますか。
0359nobodyさん2008/07/05(土) 11:45:07ID:???
noなんてどこにも出てきてないのに動的にとか意味がよく分からない
0360nobodyさん2008/07/05(土) 11:46:38ID:???
>>358
$no = $_SERVER['QUERY_STRING'];
0361nobodyさん2008/07/05(土) 12:49:00ID:???
>>358
適当なフレームワークのソース呼んで、ルーティング処理パクレ

例えば、
symfonyなら /index.php/1を
/index.php/hogeModule/hogeAction/no/1みたいにしてくれるのを設定ファイルでかけるから
03623582008/07/05(土) 13:01:14ID:oP1dT0fT
>>359-361
ありがとうございます。
参考にします。
0363nobodyさん2008/07/05(土) 13:06:33ID:???
いやそれだけかよ。言葉足らずなんだからちゃんと説明しろよ。
0364nobodyさん2008/07/05(土) 16:40:16ID:7nNiVjXj
>>363
言葉が足りていても、私の時には全然回答もしてくれませんでしたが。
Apache複数起動で悩んでいる中年SEより。
0365nobodyさん2008/07/05(土) 16:50:08ID:???
。・゚・(ノД`)・゚・。
0366nobodyさん2008/07/05(土) 16:50:15ID:???
しつこいな
回答あるだろ
0367nobodyさん2008/07/05(土) 16:52:18ID:???
複数起動はかえって負荷かかる
0368nobodyさん2008/07/05(土) 16:59:30ID:???
>>364
何を根拠に言葉が足りていたとw
■ このスレッドは過去ログ倉庫に格納されています