【PHP】下らねぇ質問はここに書き込みやがれ 70
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2008/06/25(水) 10:14:08ID:???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カテゴリ)の各スレで
0303nobodyさん
2008/07/03(木) 15:09:10ID:???readdir
ディレクトリだったら再帰
ファイルだったら必要な情報を調べる。配列にでも格納
次のファイルへ
全部調べたら好きなように加工
0304nobodyさん
2008/07/03(木) 15:16:00ID:3X5/4UgX各ファイルの更新日時・URL・ページタイトルなど必要な情報は個別に取得できていて
すでにsitemapとしてgoogleに登録してるのですが、
それを更新日時順に並べるのが出来ていない状況です。
更新日時とファイル名の関連付け?がどうすれば出来るのかって事でしょうか。
0305nobodyさん
2008/07/03(木) 15:17:34ID:???0306nobodyさん
2008/07/03(木) 15:30:45ID:???$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ど最初から作り直した方がいいでのでしょうか。
0308nobodyさん
2008/07/03(木) 15:40:30ID:???DBすか!やっぱりその方がいいんでしょうね。
将来の事もあるのでsqlを少し勉強した方がよさそうですね。
あまり長くなるのも迷惑なので勉強して出直してきます。失礼しました。
0310nobodyさん
2008/07/03(木) 15:49:46ID:???たとえばarsort使いたいなら
$array_nanika[更新時間unix_time] = ファイル名;
みたいな配列を一度作って、arsort。
ただコレだと同じ時間に更新されたファイルがあるとダメだからもう一工夫は要るね。
なんにせよ一度配列に収めろってことです
0311nobodyさん
2008/07/03(木) 18:51:15ID:0wf3u7xU引数のチェックに失敗したときはクラスの作成自体を中止したい場合ってどうすればいいんですかね?
class hoge{
public function __construct($fuga){
if(!$fugaのちぇっく){
//ここで自分自身を破棄?
return false;
}
〜
}
みたいな
0312nobodyさん
2008/07/03(木) 19:05:16ID:???まあ例外投げるんじゃね
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:???0315nobodyさん
2008/07/03(木) 19:30:08ID:???0316nobodyさん
2008/07/03(木) 19:51:15ID:???スレ違い。ここはPHPスレ
君のような馬鹿が来るところじゃない。
まったくこれだからApache厨は馬鹿といわれる。
0317nobodyさん
2008/07/03(木) 20:11:30ID:???0318nobodyさん
2008/07/03(木) 20:32:43ID:???処理を依頼すれば、倍とはいかないまでも速くなるぞ
オススメ
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:???$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
です
0328たまちゃん
2008/07/04(金) 17:36:17ID:DM0Om0jzPHPの正規表現を勉強しているのですが、どうもうまくいきません。今回は一番簡単な正規表現をつくったのですが、どうやったらよいのでしょうか。
$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:???正規表現道場
http://pc11.2ch.net/test/read.cgi/php/1168450843/
0330nobodyさん
2008/07/04(金) 18:36:56ID:ya62/r1Y全く役に立ちませんでした。
phpやっている人の大半はApacheを利用していると思いますが、
Apacheを毛嫌いする理由がよくわかりませんし、
Apacheというより、phpの論点だと思ったので、ここで質問したのですが。
がっかりというか、呆れています。
0331nobodyさん
2008/07/04(金) 18:40:38ID:???0332nobodyさん
2008/07/04(金) 18:42:27ID:ya62/r1Yスレ違いというより、むしろあなたの勘違いです。
0333nobodyさん
2008/07/04(金) 18:47:04ID:???0334nobodyさん
2008/07/04(金) 18:48:38ID:???確認しましたがしっかり書けていました
ファイル名をフルパスでも試して見ましたが同じでした
うーん、formatOutputってあんま意味ないのか…
がっかり
0336nobodyさん
2008/07/04(金) 18:59:20ID:???数万行のファイル一つを読み込み表示させる方法と
数万行のファイルを分割して、それぞれ読み込み表示させる方法では速度に違いはでてきますか?
どちらが効率よいでしょうか。
0337nobodyさん
2008/07/04(金) 19:02:05ID:???0340nobodyさん
2008/07/04(金) 19:29:11ID:???と、いうことをやりたいです。
プログラム上でテキストファイルを指定し、表示させることまでは出来ました
ですが、『任意のファイルを選択』させることが出来ません
何か良い方法や考え方は無いでしょうか?
教科書など持っていないので、オススメの本やサイトがありましたら、紹介していただけるとうれしいです
0341nobodyさん
2008/07/04(金) 20:37:53ID:???0342nobodyさん
2008/07/04(金) 21:17:16ID:???ターゲットディレクトリ内に存在するファイルの個数を取得して、
その数だけの範囲を持つ整数の乱数=nを発生させて、
該当するn番目のファイルを開くようにすれば良いんじゃね?
0343nobodyさん
2008/07/04(金) 21:23:09ID:???これ、釣りじゃないの?
こんな知識、というか思考力で過負荷になるようなサイト構築できるのか?
信じられん。よほどサイトコンテンツが良いのか、サーバにMSXでも使って
いるんじゃないのか?
0345nobodyさん
2008/07/04(金) 22:53:21ID:zZLzuSUyhttp://news24.2ch.net/test/read.cgi/liveplus/1215164615/
0347nobodyさん
2008/07/05(土) 03:42:00ID:???0349nobodyさん
2008/07/05(土) 04:08:23ID:???0350nobodyさん
2008/07/05(土) 04:14:55ID:???なんのこといってんの?
0351nobodyさん
2008/07/05(土) 04:17:59ID:???ジョギングでも行ってこいよ。もう外は明るいぞ。
0352nobodyさん
2008/07/05(土) 04:19:18ID:???<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:FcvNsP010356nobodyさん
2008/07/05(土) 08:16:24ID:???とりあえず一回、「PHP 配列 メモリ」で検索してみたほうがいいんじゃない。
メモリ使用量はかっこいいぜ。
0357nobodyさん
2008/07/05(土) 09:02:09ID:???∩___∩
(ヽ | ノ ヽ /)
(((i ) / (゜) (゜) | ( i))) …なんちゃってねっ! チンポっ☆
/∠彡 ( _●_) |_ゝ \
( ___、 |∪| ,__ )
| ヽノ /´
| /
0358nobodyさん
2008/07/05(土) 11:33:06ID:oP1dT0fT0359nobodyさん
2008/07/05(土) 11:45:07ID:???0361nobodyさん
2008/07/05(土) 12:49:00ID:???適当なフレームワークのソース呼んで、ルーティング処理パクレ
例えば、
symfonyなら /index.php/1を
/index.php/hogeModule/hogeAction/no/1みたいにしてくれるのを設定ファイルでかけるから
0362358
2008/07/05(土) 13:01:14ID:oP1dT0fTありがとうございます。
参考にします。
0363nobodyさん
2008/07/05(土) 13:06:33ID:???0364nobodyさん
2008/07/05(土) 16:40:16ID:7nNiVjXj言葉が足りていても、私の時には全然回答もしてくれませんでしたが。
Apache複数起動で悩んでいる中年SEより。
0365nobodyさん
2008/07/05(土) 16:50:08ID:???0366nobodyさん
2008/07/05(土) 16:50:15ID:???回答あるだろ
0367nobodyさん
2008/07/05(土) 16:52:18ID:???0369nobodyさん
2008/07/05(土) 17:05:28ID:???たとえ2つPHP実行しても速くならないよ。
玉子焼き1000個同時に焼いても1秒で焼けない。1個と同じ時間かかる。
0370nobodyさん
2008/07/05(土) 17:05:53ID:???同一サーバーでの複数起動って意味だよね?何かあるんだろうか。
それとも日本語が不自由で考えてることをちゃんと文章化できていないのか。
てか、どっちにしろPHPとはまったく関係ないからスレ違いになるのか・・・
0371nobodyさん
2008/07/05(土) 17:09:04ID:???0372nobodyさん
2008/07/05(土) 17:13:56ID:7nNiVjXjスクリプトAは、2000行以上ありますが、0.1秒程度で終わりますが、
スクリプトBは、400行しかないのに、10秒前後もかかります。
そのことから、スクリプトAを80番ポートで動かし、
スクリプトBを10分割して、81〜90番ポートで動かせば1秒で終了するという見積もりです。
ただ、やり方がよくわかりません。
スクリプトBが遅いのも原因不明です。
phpがインタプリタ言語だから遅いって言ってしまえばそれまでですが、
だからといって10秒は遅すぎます。
負荷分散する方法としてこれ以外に思いつきません。
0373nobodyさん
2008/07/05(土) 17:16:26ID:7nNiVjXj平行処理ができると聞いています。phpの中だけで並行処理ができる方法があれば、それを教えて頂く方が簡単ですが。
0374nobodyさん
2008/07/05(土) 17:16:51ID:???0375nobodyさん
2008/07/05(土) 17:19:32ID:???ざっくり400行じゃなくて、遅い箇所があるとおもうけど。
0376nobodyさん
2008/07/05(土) 17:24:01ID:7nNiVjXjデータを取得して更新して、取得したデータをスクリプトBに返す処理しかやっていません。
MySQLは、処理速度が速いデーターベースと聞いておりますし、
それ以外では、文字列を編集する処理をやっていますが、それはデータベースにデータを渡す際の
エスケープ処理です。ソース全体を呼んでみましたが、特に遅いと思われる箇所もありませんでした。
0377nobodyさん
2008/07/05(土) 17:28:11ID:???0378nobodyさん
2008/07/05(土) 17:30:44ID:???とりあえずさぁ、そのスクリプトに時間計測するコードを入れて、
一番遅い所を一行に絞って、そのコードをココに貼ればわかるよ。
0379nobodyさん
2008/07/05(土) 17:42:07ID:???phpはインタプリタ言語だから遅くても仕方ないと
納得する発想がPGとしてありえないってw
てか最初からずっと同じこと言われてるじゃん。少しは質問の仕方も進歩してくれ。
0380nobodyさん
2008/07/05(土) 17:52:45ID:???キモイ。
0381nobodyさん
2008/07/05(土) 17:54:33ID:???マルチスレッドが知りたいのなら、「PHP マルチスレッド」でググリなよ。
ここで説明するより分かり易いところがいくつか見つかるよ。
Apache複数起動とかポートがどうとか、
PHPとは関係ないことを言うから、スレ違い、ネタだと判断されたんだよ。
「マルチスレッドを利用する方法を知りたい」だけでいいじゃん。
0382nobodyさん
2008/07/05(土) 18:04:06ID:???0383nobodyさん
2008/07/05(土) 18:05:40ID:???できない事はできないって言うのも仕事の内ですぜ
0384nobodyさん
2008/07/05(土) 18:06:06ID:???> データを取得して更新して、取得したデータをスクリプトBに返す処理しかやっていません。
えーと、ウェブアプリに限らずほとんどの処理は
データを取得して、更新して、取得したデータを何かに渡す物ですが?
その処理の内容で遅くないと判断できるわけが無いよね?
いいか、あんたがヘボだから、あんたが作ったソフトが重いんだ。
技術不足なんだよ。あんたは。
0385nobodyさん
2008/07/05(土) 18:12:56ID:???君には難しいことを言ってもわからないと思うから
技術者じゃなくてもわかることを聞くねw
サーバー費は月いくらかかってる?
0386nobodyさん
2008/07/05(土) 18:19:34ID:???0387nobodyさん
2008/07/05(土) 18:20:04ID:???できないって最初から言ってるのにどんどん小難しい案件が舞い込んできます。
当然やりますが。でも出来ませんっていつも言います。
0388nobodyさん
2008/07/05(土) 18:28:07ID:???でもDBサーバが先に悲鳴をあげるだろうから
レプリケーションもやっとけ
0391nobodyさん
2008/07/05(土) 18:55:18ID:???print"で<a href=〜>〜</a>
で、リンク生成は出来るんだが、
0392nobodyさん
2008/07/05(土) 18:58:30ID:???ここのページの様にフォームに入力してからボタンを押すと、各検索エンジンに飛ばしたいんだけど。
0393nobodyさん
2008/07/05(土) 19:00:32ID:???任せて自分はちょっとピンハネの方が顧客も自分も幸せだと思うぞ。
現在の技術うんぬんよりも、解決方法にたどり着く術が間違っているから。
0395nobodyさん
2008/07/05(土) 19:23:08ID:???0397nobodyさん
2008/07/05(土) 20:57:26ID:???0399nobodyさん
2008/07/05(土) 21:18:45ID:???0400nobodyさん
2008/07/05(土) 21:26:54ID:???なんだかPHPじゃなくてHTMLのformとinputの使い方の質問ぽい気がするんだが。
まあ俺には難しくてわかんないや。
>>398
わからないがあまり教えてほしいとは思わなかった。
■ このスレッドは過去ログ倉庫に格納されています