【PHP】下らねぇ質問はここに書き込みやがれ 64
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2008/02/09(土) 14:51:11ID:???PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 61
http://pc11.2ch.net/test/read.cgi/php/1201425479/
◆質問する時の注意
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を必ず明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・偽者防止に必ずIDを表示(メール欄に何も記述しない)、若しくはトリップをつける事。
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0702nobodyさん
2008/02/20(水) 13:17:42ID:???キーの順番は変えたくありません。
Array
(
[Red] => ringo
[Blue] => budou
[Yello] => banana
)
関数("Blue","Green")
Array
(
[Red] => ringo
[Green] => budou
[Yello] => banana
)
0704nobodyさん
2008/02/20(水) 13:26:09ID:???0707nobodyさん
2008/02/20(水) 13:35:11ID:???0708nobodyさん
2008/02/20(水) 13:44:51ID:???少しは考えようぜ
http://jp.php.net/manual/ja/ref.array.php
使えそうなもの探して自分なりに作ってみ
0709nobodyさん
2008/02/20(水) 13:54:54ID:0elSO0M+を
mb_splitの[都道府県]で分解すると
「大阪」と「大阪市」になりますが、
「大阪府」と「大阪市」に分けることって可能でしょうか?
区切り文字消さないオプションとかないですよね・・・orz
0710nobodyさん
2008/02/20(水) 14:02:12ID:???0711nobodyさん
2008/02/20(水) 14:23:35ID:???配列に入れる段階で順番にこだわる理由がわからない。
実際に配列を操作するときは特定のアルゴリズム下で行われるべきなので、
最終的にソートして表示したときなり、検索して取り出したときの結果は変わらない。
0712nobodyさん
2008/02/20(水) 14:34:38ID:???0713nobodyさん
2008/02/20(水) 14:40:34ID:???可読性とかそういう問題じゃない。というか配列の順番に可読性も何も・・・
DBから取り出して配列にいれた段階で、その配列を実際眺めるなんてことしないだろ。
膨大なデータになればなるほど、そんなこと考えたりしない。
配列というのは、どういうグループでどういう値が配列に入っているかを理解していればいい。
あとは配列を操作する段階でどうにでもなる。
0714nobodyさん
2008/02/20(水) 15:03:20ID:0elSO0M+サンクスです
とりあえず都道府県47個は個別対応してみます。
あー、まだ質問あるけど流石に自重しなきゃ('A` )
0715nobodyさん
2008/02/20(水) 15:14:46ID:???都道府の4つ+それ以外でいいような?
0716nobodyさん
2008/02/20(水) 15:18:37ID:0elSO0M+大阪府東大阪市→大阪 東大阪市
になるので、そこから「大阪」で検索かけて「府」を取得しようかと・・・
0717nobodyさん
2008/02/20(水) 15:20:46ID:???さて
0718nobodyさん
2008/02/20(水) 15:21:04ID:???0719nobodyさん
2008/02/20(水) 15:23:14ID:0elSO0M+も・・・もしかしたら、他に都道府県が増えるかも・・・
ないよね、うん、ありがと
0720nobodyさん
2008/02/20(水) 15:23:36ID:???本当に下らない質問だな。
0721nobodyさん
2008/02/20(水) 15:24:16ID:0elSO0M+本当にくだらない答えだ
0723nobodyさん
2008/02/20(水) 15:25:04ID:???0725nobodyさん
2008/02/20(水) 15:27:38ID:0elSO0M+住所最適化のために住所データベースより該当する行を取得しているんだけど、
京都府京都市大阪〜みたいな変な住所があったorz
複数キーワードを用意して、一番多くマッチした行の順番で返しているから、
「大阪」だけだと、「京都府京都市大阪」も「大阪府大阪市」も返ってくる。
0726nobodyさん
2008/02/20(水) 15:28:56ID:???0727nobodyさん
2008/02/20(水) 15:30:23ID:0elSO0M+見事に岐阜県岐阜市芥見海戸山が一番上に\(^o^)/
ハァ・・・
0728nobodyさん
2008/02/20(水) 15:35:10ID:???0729nobodyさん
2008/02/20(水) 15:39:48ID:???0730nobodyさん
2008/02/20(水) 15:48:12ID:???そうやるのが定石だよね。
ちなみに住所名データは郵便番号との対応表という形で日本郵便からDLできる。参考まで。
http://www.post.japanpost.jp/zipcode/download.html
遷都したら東京府になる(戻る)のかな?
0731nobodyさん
2008/02/20(水) 15:48:30ID:???0732nobodyさん
2008/02/20(水) 15:50:19ID:???0733nobodyさん
2008/02/20(水) 15:56:52ID:???0734nobodyさん
2008/02/20(水) 16:24:42ID:???0735nobodyさん
2008/02/20(水) 17:12:38ID:???0737nobodyさん
2008/02/20(水) 17:21:14ID:???0738nobodyさん
2008/02/20(水) 17:21:19ID:???0739nobodyさん
2008/02/20(水) 17:25:24ID:???俺は4万件だったけど、おおよそ郵便番号使って分けた後、
入力ミスや合併前等は人海戦術だった。
0740nobodyさん
2008/02/20(水) 18:04:32ID:???都道府県
市町村
それ以下
の三つで入れてもらえば良くね
って後処理の話だっけ?
0741nobodyさん
2008/02/20(水) 18:23:15ID:???0742nobodyさん
2008/02/20(水) 18:33:27ID:0elSO0M+memory_limitの無制限は可能ですか?
0743nobodyさん
2008/02/20(水) 18:51:43ID:6Ca7eWC6というのがあって、この値を1, 2に入れ替えたいのですが、
直感的に、
$array[0] = $array[1];
$array[1] = $array[0];
という風に書いてしまうと、両方1になっていまいます。
それで記憶用の変数を用意し、
$i = $array[0];
$array[0] = $array[1];
$array[1] = $i;
のようにすると思ったとおりになってくれるのですが、
もっと適切な書き方はありませんか?
他言語でも応用するので、PHP特有の書き方やPHP関数の使用ははなしの方向でお願いします。
0744nobodyさん
2008/02/20(水) 18:53:12ID:0elSO0M+0745743
2008/02/20(水) 18:56:21ID:???それはPHPのネイティブ関数なので・・・
それと説明足りませんでしたが、ただ単に逆順にいれかえるというわけではないです。
0746nobodyさん
2008/02/20(水) 18:58:43ID:???アセンブラとかするならもっと細かく書くけど、
ってか関数かしちゃえばいいんじゃない?
0747nobodyさん
2008/02/20(水) 18:58:48ID:???0748743
2008/02/20(水) 19:04:59ID:???JavaとVBです。
各言語の関数等をつかうか、作るかしかないですかね。
左辺と右辺を交換できるような、どの言語でも実装されてる演算子みたいのがあれば一番いいのですが。
$array[0] ⇔ $array[1]みたいな。ないですよね、そんなの。
>>747
すみません。一応PHPでやっていたので。
質問に書き方の制約がついても問題ないかと思いまして。
0749nobodyさん
2008/02/20(水) 19:06:10ID:???0751nobodyさん
2008/02/20(水) 21:13:53ID:???本当の馬鹿に対する可読性が心配になるので避けがちだな
>ただ単に逆順にいれかえるというわけではない
の内容が分からん事にはなんとも
0753nobodyさん
2008/02/20(水) 22:18:57ID:???0754nobodyさん
2008/02/20(水) 22:22:07ID:???コマンドラインから実行するときに、
メインで実行される暗黙のメソッドはないのでしょうか?
javaでいうmainメソッドみたいなものです。
アドバイス宜しくお願いします
0755754
2008/02/20(水) 22:22:29ID:KIJWvRfX0757754
2008/02/20(水) 22:32:39ID:KIJWvRfX無いですか...
class_Cというクラスがあり、コマンドラインから
$ php ./class_C.php
と実行すると、
class_C内の特殊なメソッドが呼ばれるようなイメージです。
$ java ./classC
とやると、自動的にclassC内のstatic void mainが呼ばれるようなイメージです。
コマンド内からphpクラスのコードを実行する方法が思いつかないので。
0759nobodyさん
2008/02/20(水) 22:36:29ID:???public static function mainでも作って書いておけば?
無理にjavaのマネする必要なくね?
0760754
2008/02/20(水) 22:40:26ID:KIJWvRfXやっぱりないですか...
既に作ってあるクラスがありまして、
それをシェルから呼びたいのですが、
何かいい方法がないかと思いまして。
クラスを作り直すのはできれば避けたいのですが、やっぱりダメそうですね。
ありがとうございました。
0762nobodyさん
2008/02/20(水) 22:53:15ID:???0763754
2008/02/20(水) 23:02:54ID:KIJWvRfXイメージ的には、これをcronデーモンから実行させるイメージでした。
-----------------------------------------------------------
#!/bin/sh
/usr/local/bin/php /public_html/hogehoge/MainClass.class.php
exit
-----------------------------------------------------------
クラスではなくベタ書きならうまくいくのですが、
そのクラスは既にテスト済みで、そのファイルだけクラスじゃないのは、ちょっとと思いまして。
>>762
すみません、それはどういうような機構でしょうか?
宜しければ、その方法をアドバイスいただけないでしょうか?
0764nobodyさん
2008/02/20(水) 23:06:04ID:???だからそのMainClass.class.phpでどのように
そのクラスを実行する設計を?
定義して放置プレイ?
0765754
2008/02/20(水) 23:33:51ID:KIJWvRfXMainClass.class.phpは、実行するクラスではなくて、
実装される側のクラスのことです。
実行主体はcrondです。できれば、MainClass.class.php内部はいじらずにできればいいのですが、厳しいそうですね。
0766nobodyさん
2008/02/20(水) 23:40:54ID:???球技(言語)が変わったらその言語の基本くらいは勉強しろカス
ってことで>>8
0767nobodyさん
2008/02/20(水) 23:46:42ID:???しかし、今更zlibが必要になってしまったのですが、再インストールするしかないのでしょうか?
バージョンはPHP5.2.5です。
よろしくお願いします。
0768nobodyさん
2008/02/21(木) 00:11:51ID:vEZx6YzIphp -r 'require "MainClass.class.php"; MainClass::main();'
みたいにしたら駄目なん?
0769743
2008/02/21(木) 00:14:20ID:???>>750
ありがとうございます。ではその方法でやることにします。
>>751
ビット演算子ですか。あれは難解なので避けてます・・・
でも参考になります。ありがとう。
>>758
もちろんJavaで配列のようなことはコレクション使いますけどね。
ただどうしても今回必要だったので…
というわけで>>750さんのアドバイスどおりにしたいと思います。
0770nobodyさん
2008/02/21(木) 00:14:30ID:???たしかCLIの時だけ、というかCLiで実行した事を判定できる変数かなんかがあるから。
その時だけ実行するロジックを組めばいいんじゃね
それすらも変更できないんなら知らん
0775nobodyさん
2008/02/21(木) 00:48:42ID:???0776nobodyさん
2008/02/21(木) 01:24:48ID:rvNkXnTF配列は連想でも多重でもない単純な形のものだとしてお願いします
0777nobodyさん
2008/02/21(木) 01:26:46ID:???0778nobodyさん
2008/02/21(木) 01:28:56ID:???0779nobodyさん
2008/02/21(木) 01:32:24ID:???PHPにmain関数などない
メソッドからはみ出たとこがmain関数だと思え
クラス。メソッド以外のすべてがmain関数でもある
main関数の中でクラスやメソッドを定義してるのと同じだ
0780nobodyさん
2008/02/21(木) 01:37:10ID:???クラスなんて使うなや?非効率もいいもんだ
なんの為のスクリプト言語やと思ってんだ
0781nobodyさん
2008/02/21(木) 01:39:01ID:???なんでクラス使うん?
0782nobodyさん
2008/02/21(木) 01:51:42ID:???PHPでなんぼ稼いだんや?
0783nobodyさん
2008/02/21(木) 01:57:25ID:???0784nobodyさん
2008/02/21(木) 02:14:34ID:???0785nobodyさん
2008/02/21(木) 03:20:41ID:???Example#2 再帰的な count() の例 (PHP >= 4.2.0)
<?php
$food = array('fruits' => array('orange', 'banana', 'apple'),
'veggie' => array('carrot', 'collard', 'pea'));
// 再帰的なカウント
echo count($food, COUNT_RECURSIVE); // output 8
// 通常のカウント
echo count($food); // output 2
?>
何故6でないのか謎すぎる。
0786nobodyさん
2008/02/21(木) 03:55:02ID:uBvv/k1HXAMPPをインストール後に以下の手順でエラーがでてしまうのですが、何が原因なのでしょうか???
1. Terminal shellに行って、システム管理者ルートでログインします。
sudo su
2. XAMPPをスタートするには、このコマンドをコールしてください:
/Applications/xampp/xamppfiles/mampp start
ここで、このような感じのエラーメッセージがでていまいます。
(No such file or directory, errno = 2)
XAMPP: Error 133! Couln't start ProFTPD!
ちなみにこの段階でXAMPP Control Panelを起動しようとすると「このシステムとは互換性がないためアプリケーションを起動できません」とメッセージが出てしまいます。
OSはMacOSX.2.8で、インストールしたのがXAMPP Mac OS X 0.7.2です。とても困っていますのでどなたかよろしくおねがいします。
0787nobodyさん
2008/02/21(木) 08:03:59ID:???あっちで答えちまった・・・
0788nobodyさん
2008/02/21(木) 08:38:59ID:???おまいら頑張って技術磨いとけよ!!俺の金の成る木なんだからな
0789514
2008/02/21(木) 09:16:22ID:FrueJpz5ある程度理解できました。
次は何をすればいいんですかね?
0791nobodyさん
2008/02/21(木) 10:25:29ID:v3nyJWBc40%ほど処理したところで
Fatal error: Out of memory (allocated 2001731584) (tried to allocate 37 bytes) in C:\xampp\php\PEAR\PEAR.php on line 863
のようなエラーが出ます。
これは何か変数に格納していって、それが溜まっているのでしょうか?
0792nobodyさん
2008/02/21(木) 13:53:21ID:mkhVTZDngetdateの引数に同じものを入れると更に9時間進んだ時間が取得されてしまいます。
getdate関数は自動的に国別の時間のずれを計算してくれるということでしょうか?
0794nobodyさん
2008/02/21(木) 13:58:06ID:mkhVTZDnということはgetdateはサーバの設定を見て東京標準であればそれで計算して
gmdateの場合はサーバの設定関係なくグリニッジ時間で計算するということですか?
0795nobodyさん
2008/02/21(木) 14:04:19ID:???http://www.php.net/manual/ja/function.gmdate.php
っていうかマニュアル読もうよ。
俺はfirefoxの検索プラグインに公式マニュアルの関数検索入れてるよ。
opensearchfoxって拡張使うと簡単に出来る。
0796nobodyさん
2008/02/21(木) 14:10:34ID:mkhVTZDnスレ汚し失礼しました。
0798514
2008/02/21(木) 15:11:30ID:FrueJpz5配列と関数と制御は理解しました。
本持ってないので買うのがいいですか?
お勧めの本とかございましたら教えて頂けると幸いです
0800514
2008/02/21(木) 15:21:07ID:FrueJpz5そうですね。 自分で見て自分にあった物を買うのがいいですね。
失礼しました
0801nobodyさん
2008/02/21(木) 15:30:12ID:???0802nobodyさん
2008/02/21(木) 16:05:44ID:???本読むよりPHP 配布とかでぐぐって配布してるフリーのPHPのコード読んだほうがためになる。
最初はさっぱりわからんだろうが関数が実際どういう用途で使われるかもわかってくる。
■ このスレッドは過去ログ倉庫に格納されています