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

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

レス数が900を超えています。1000を超えると表示できなくなるよ。
0001nobodyさん2008/04/11(金) 06:38:35ID:???
まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは970が立ててください立たなかった場合は980よろ

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

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

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

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

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0834nobodyさん2008/05/01(木) 20:55:07ID:???
短時間に認証エラーを繰り返したIPはブラックに自動登録、
以降のアクセスは警視庁・インターポールにリダイレクトしてる漏れは天才。
0835nobodyさん2008/05/01(木) 21:05:11ID:???
>>833
そういうのが Firewall にとっては最も検知しやすかったりします

スレ違いな話題だし、問題児はそろそろネットワーク板にでも誘導するか…('A`)
0836nobodyさん2008/05/01(木) 21:18:32ID:???
最近はログイン条件にパスの他にプロバイダ入れるのが主流だな。
国内の特定のプロバイダからしかアクセスできないようにしておけば
万が一の時もすぐタイーホ。

銀行なんかは重要な手続きは携帯からやらせて、
端末ID使ってる所もあるね。
0837nobodyさん2008/05/01(木) 22:44:33ID:???
主流・・・なのか?
0838nobodyさん2008/05/01(木) 23:10:15ID:???
ログイン情報って無駄なものを入れないためにいつも1っていれて判断してたけど
プロバイダいれるメリットは?
0839nobodyさん2008/05/01(木) 23:36:23ID:???
主流かどうかは知らんが、アカウントに許可IPアドレスを設定するのは普通にある
メジャーなプロバイダならログもちゃんと管理してるだろうから、パスワード漏れ等でログインされても
追いやすいって話じゃね

つうか1で判断ってセッションハイジャック防止とかノーガードか?
0840nobodyさん2008/05/02(金) 00:09:18ID:???
国内の特定のプロバイダからしかアクセスできないようにする
大変すぎだろ?

海外からのアクセスなんて当たり前にあるし、
プロバイダが増えたり減ったりしたらどうするんだ?

個人ブログじゃないんだしさ。
0841nobodyさん2008/05/02(金) 00:09:57ID:???
>>839
セッションハイジャックおこるの?
0842nobodyさん2008/05/02(金) 00:16:59ID:???
>>840
認証ページ(ディレクトリ)だけにアクセス制限をかければいいだけですよ
0843nobodyさん2008/05/02(金) 00:32:23ID:ESOY+ESo
うまくすりぬける人はパスワードなんか無視してURLをゲットするの?
0844nobodyさん2008/05/02(金) 00:53:26ID:???
>>842
だからそれじゃ特定のプロバイダ人しか
認証できないだろ。

それに悪意のある人間が日本国内から
アタックしたらどうするんだ?

意味無いじゃんか。
0845nobodyさん2008/05/02(金) 01:39:52ID:71gb5g2D
遅レスだけど

>>654
えー!!!!こんなことできんの!?
プログラムはCから覚えた俺には強烈な型柔軟性に吃驚だよぅ
0846nobodyさん2008/05/02(金) 01:47:50ID:???
おまえらプログラムもいいがたまにはオンゲーでもしようぜ
対人がおもしろいMMOだから遊びにおいで

ロストオンライン
http://game13.2ch.net/test/read.cgi/mmo/1209016763/
0847nobodyさん2008/05/02(金) 02:11:59ID:???
>>846
なんでチョンゲーなん?
0848nobodyさん2008/05/02(金) 02:27:27ID:???
C言語でも、同じようなことはできるがな。
0849nobodyさん2008/05/02(金) 02:28:24ID:???
>>845
ほんとにCやった?
0850nobodyさん2008/05/02(金) 02:30:10ID:???
C言語に文字の配列はあっても文字列変数なんて概念はないぞ
ましてそれをインクリメントなんてできんの?
0851nobodyさん2008/05/02(金) 02:33:25ID:???
文字列をそのままできなくても文字のインクリメントはできる。
0852nobodyさん2008/05/02(金) 02:37:09ID:???
文字列のインクリメントができるのが驚きなんじゃないか
さらに言えばCは文字のインクリメントができるんじゃなくて
文字コードを数値としてインクリメントができるだけだし

ってまあスレ違いだからどうでもいいか
0853nobodyさん2008/05/02(金) 02:55:18ID:???
話してる内容自体には個人的には賛成なんだが

散々自分の意見言っといて
最後に「スレ違いだからここまで」って
典型的な荒らしの書き方じゃないか。
0854nobodyさん2008/05/02(金) 04:20:13ID:???
スレチは他所で。
まともな意見だと思うがな。
0855nobodyさん2008/05/02(金) 05:29:35ID:???
コンパイラとインタプリタをの優劣を論じても意味はない。
スレチ以前の話。
0856nobodyさん2008/05/02(金) 10:02:15ID:???
上で出ているPHPの認証画面とは任意の人間に認証させるようなページ?
わたしは管理者だけが認証できればよいと理解していました

何らかのサービスを管理するための認証画面だと思っていたのですが
例えば、掲示板の書き込みを一括削除したり等する画面への認証など

であれば、管理者だけが管理画面に対して認証できればよいだけなので、
特定のRemote host(日本国内の限定されたISP)からのアクセスのみを
.htaccessなどで許可しておけばさらに安心だと思うのですが
0857nobodyさん2008/05/02(金) 10:44:23ID:???
phpって文字列に対して(int)とか、
不正なキャストを行った場合の処理ってどうなる仕様なのでしょうか?
0858nobodyさん2008/05/02(金) 11:07:54ID:???
マヌアルの中からあなたのかわりに探してあげたよ!
http://jp.php.net/manual/ja/language.types.integer.php#language.types.integer.casting
0859nobodyさん2008/05/02(金) 13:06:24ID:???
うむ、ごくろう。
0860nobodyさん2008/05/02(金) 15:22:43ID:eCOkp8a7
変数名に変数を使うことって出来ないのでしょうか?

$hoge = "bcd"
$a$hoge = "abcd"

だとしたら、
$hogeの内容が変数名に代入されて

$hoge = "bcd"
$abcd = "abcd"

となるようにしたいのですが・・・やっぱ無理でしょうか?
別の方法があれば教えてほしいです。
0861nobodyさん2008/05/02(金) 15:28:29ID:???
あまり薦めないけど

$hoge = "bcd";
eval( "\$a$hoge = \"abcd\";" );

echo $abcd . "\n";
0862nobodyさん2008/05/02(金) 15:54:35ID:???
evalなんぞ使わなくても
${'a'.$hoge} = 'abcd';
0863nobodyさん2008/05/02(金) 16:00:10ID:???
>>862
なるほど、中括弧で括るのですか。
ありがとうございました。
0864nobodyさん2008/05/02(金) 16:00:44ID:???
>>860
可能だがしかしそれどんな設計だよ
0865nobodyさん2008/05/02(金) 16:38:44ID:1oP7bnHx
変数名に変数ねぇ。
やろうと思ったことすらない。 難読化に役立つんじゃねぇかなぁ。
0866nobodyさん2008/05/02(金) 16:43:12ID:???
変数名に変数か、考えた事すら無かったわ
0867nobodyさん2008/05/02(金) 16:53:31ID:???
同じく変数に関する質問なのですが、
「echo "あいうえお"; echo $ABC; $A=$C+$D」というプログラムをひとつの変数に収めることって出来ないんでしょうか?
0868nobodyさん2008/05/02(金) 16:55:06ID:???
>>867
>>1
0869nobodyさん2008/05/02(金) 16:58:20ID:???
>>868
氏ね
0870nobodyさん2008/05/02(金) 16:59:11ID:???
志村〜
0871nobodyさん2008/05/02(金) 17:08:21ID:???
>>867
$foo = 'echo "あいうえお"; echo $ABC; $A=$C+$D;';

で、なにがしたいんだ?
0872nobodyさん2008/05/02(金) 17:23:51ID:???
「eval したいんです!」
「だからなんで eval が要るんだ?」
「使ってみたいだけなのに、なんで要るのか訊かれても…」

こんな感じじゃないのかな。
0873nobodyさん2008/05/02(金) 17:36:09ID:???
変数名に変数、普通に使ってますが・・・だめですか・・
0874nobodyさん2008/05/02(金) 17:51:53ID:???
普通は連想配列(PHPだと配列と区別ないが)を使って $a[ $hoge ] = "abcd"; とか書く
変数名に変数を使うと便利な状況が思いつかない
0875nobodyさん2008/05/02(金) 17:56:08ID:???
こういうのは実際に"便利な状況"に遭遇してから分かるのであって、
初めから頭で考えても思いつかないだろ
0876nobodyさん2008/05/02(金) 18:19:24ID:nE3gn/Rr
Perl 関係のスレにも ${$varname} したい人がときどき来るんですけど
自分も>>874な感覚で $array[$key] (PHP) / $hash{$key} (Perl) で済むように
思うことが多いなあ。${$varname} したい状況がわからない。

でも、言語仕様としては用意されてるから駄目ではないし(…です。>>873
今の自分は「C のポインタって何が便利なんすか?」って人と変わらん状態なのかな。
0877nobodyさん2008/05/02(金) 18:52:31ID:???
うん、みんなが優しいのは分かったけど、
例外を作りつづけてもよくないと思うぞ?

>>1
・偽者防止に必ずIDを表示(メール欄に何も記述しない)、若しくはトリップをつける事。

質問者も質問するなら最低、
テンプレにくらい目は通そうぜ?
0878nobodyさん2008/05/02(金) 18:52:59ID:???
うぅ〜んまんだむ!
0879nobodyさん2008/05/02(金) 18:55:26ID:???
GETでもPOSTでも動くように可変変数使って書いたことがあるけど
それが最初で最後だなぁ
0880nobodyさん2008/05/02(金) 19:20:38ID:???
>>879
それは、二行にすりゃいいんじゃw
0881nobodyさん2008/05/02(金) 21:02:31ID:CcSXHmXb
動的に関数を定義するにはどうしたらいいですか?
0882nobodyさん2008/05/02(金) 21:03:05ID:???
if(){
function b(){}
} else {
function a(){}
}
0883ぬるぽ(^^)/2008/05/02(金) 21:37:24ID:???
PHPで、どんなセキュホがあれば、スクリプトみられたり するんですか?
教えて下さい。
http://z-z.jp/
なんでここはスクリプトみられてるのですか
教えて下さい
0884nobodyさん2008/05/02(金) 21:43:28ID:???
phpじゃないじゃん
0885nobodyさん2008/05/02(金) 21:48:36ID:???
そこのスクリプトの見方を教えてくれれば、
PHPのも教えてあげるよ
0886nobodyさん2008/05/02(金) 21:51:44ID:???
>>883,>>885
さあ厨房は帰った帰った
0887nobodyさん2008/05/02(金) 22:47:59ID:vDcZA+4C
おまえら友達居ないだろ?
0888nobodyさん2008/05/02(金) 22:57:12ID:???
>>887
自分を攻撃すると意味の分からない話にもってくゆとり乙
0889nobodyさん2008/05/02(金) 23:00:15ID:vDcZA+4C
>>888
俺はたしかにゆとり教育受けてるが、おまえみたいに友達いないよりはマシだ。
こんなところにずっと張り付いてて楽しいか?
0890nobodyさん2008/05/02(金) 23:01:31ID:???
>>889
会ったことも無いのに友達がいないといえるところがゆとりだな
0891nobodyさん2008/05/02(金) 23:08:42ID:???
友達いないけど彼女いるから
0892nobodyさん2008/05/02(金) 23:49:49ID:???
そこは PHP 使われていないですよ

スレ違いだから↓あっちで聞きなさい!

くだすれPerl(超初心者用)2
http://pc11.2ch.net/test/read.cgi/php/1204488452/
0893nobodyさん2008/05/03(土) 00:38:01ID:cJNbL5n/
php 5.2.3 windows xp sp1 apache2な環境ですが
コマンドラインの php -l ファイル名 と同じ動作をする php 関数かなんかはないでしょうか。
プライベート用のテスト鯖でDBにソースを保存して簡易CMS的に使おうと考えており
DBに保存する前にソースが動くかどうかの確認をしたいのです。
0894ぬるぽ(^^)/2008/05/03(土) 00:55:21ID:???
PHPで、どんなセキュホがあれば、スクリプトみられたり するんですか?
教えて下さい。
http://z-z.jp/
なんでここはスクリプトみられてるのですか
教えて下さい
0895nobodyさん2008/05/03(土) 01:06:37ID:???
>>894
そこにPHPは使われていません
Perlが使われています

下のところ↓で聞いてください

くだすれPerl(超初心者用)2
http://pc11.2ch.net/test/read.cgi/php/1204488452/
0896nobodyさん2008/05/03(土) 01:06:55ID:???
>>894
氏ねゆとり
0897nobodyさん2008/05/03(土) 01:17:15ID:3FEggVxI
ブログのテンプレートでよく見かける
<a href="{$BBSPATH}">掲示板トップ</a>
のようなことをしてデザインとプログラムを分けたいのですが、
どのような仕組みで作ればいいのでしょうか?
0898nobodyさん2008/05/03(土) 01:29:10ID:???
正規表現を覚えて\{(\$[A-Za-Z_-]+)\}でマッチングさせて\1で
帰ってきた変数名で、その部分を置き換える。


っていうのは#FF0000なFALSEで、何も考えずにincludeして使えば良い。
{$変数}の"{"と"}"は、周りの文字にくっつかない為の方法で表示はされない。
単に変数埋め込んでるだけ。
0899nobodyさん2008/05/03(土) 01:38:21ID:3FEggVxI
>>898さんの説明が難しくて私には・・・まだやすぎるのかな・・・

自分なりに考えたのですがこういうやり方はどうなんでしょうか?
プログラムファイルからスキンファイルをfile_get_contentsで読み込んで、
str_replaceを使ってスキンファイルに書かれている変数(たとえば{BBSPATH}など)を置換。
っていうのはダメですよね・・
0900nobodyさん2008/05/03(土) 01:47:21ID:???
>>899
それで問題ない
0901nobodyさん2008/05/03(土) 01:54:15ID:???
ありがとうございます。この方法なら自分にもできそうなので取り組んで見ます
0902nobodyさん2008/05/03(土) 02:06:58ID:???
・・・まだやすぎるのかな・・・
0903nobodyさん2008/05/03(土) 02:07:24ID:???
file_get_contentsでやっても、evalすれば
$varは展開されるけど、それで出来るのは、単一の値を持つスカラーしか置き換えられないから
smartyみたいなのはstr_replaceとか正規表現使ってるっぽい気がする。

ソース見てないけどあれってifとか使えるし、<option>タグで
中身ぞろぞろ引き出せるんだよね?…ってやっぱevalでも出来るかな?
まあ、自分で置換すれば、<option>で項目が増減するのも
タグに独自ルール作って扱えるよね。

ちなみにZendFrameworkは普通に<?php ?>だよ
<?php if(hoge): ?>
<?php endif; ?>って{}使わない方のもう一つのifの書き方を
使ってるのが見やすくてなるほどと思った。

常に表示枠固定じゃない限り、foreachはどうしても
使うことになると思うし、それ考えるとZendのやり方が良いと思う。
09049032008/05/03(土) 02:13:06ID:???
ごめん、開始タグと終了タグあるのはstr_replaceじゃ無理だ。
単に置き換えるだけなら出来るけど、それならevalした方が断然良い。
やっぱ正規表現必要。
0905nobodyさん2008/05/03(土) 02:18:04ID:???
>>901
PHPBlosxomとか参考にすれば?

ttp://sourceforge.net/projects/phpblosxom/
0906nobodyさん2008/05/03(土) 04:22:31ID:Bi5B2zuj
>>891
>友達いないけど彼女いるから
ワラタwww彼女いる事自体はなんの自慢にもなんないだろwww
妥協すればだれでもできるwww
0907nobodyさん2008/05/03(土) 08:52:05ID:IxjoBmKw
preg_match("/<title>(.*)<\/title>/",$file_data,$file_title);

これで読み込んだファイル内のtitleタグのテキストを取得しています。
しかし、<title></title>の間に改行が入ると取得できなくなります。
改行が入っていても、取得するにはどうすればいいのでしょうか?
改行を削除する方法以外でお願いします。
0908nobodyさん2008/05/03(土) 09:18:15ID:???
>>907

.
↑は改行を含んでませんよ
ちゃんと改行も含めないと
\nと.
09098732008/05/03(土) 11:22:48ID:???
遅レスだけど、変数名に変数を使うことってそんなに頻繁にはないけど
(言われてるように、連想配列で済む場合が多いから)
>>898みたいな正規表現と組み合わせる場合とか、変数と他の何かが
一定のルールで名称付けされてて、かつそれが膨大な量の時とか、
あとはリファレンス的に使ったりとか、そんな場合です。
これはPerlの時から使ってた。
確かにこれらの場合も、他のやり方とか、配列で済ませられるかもしれないけど、
簡単な方を選んでしまった。
0910nobodyさん2008/05/03(土) 11:45:38ID:???
>>907
http://www.php.net/manual/ja/reference.pcre.pattern.modifiers.php
s (PCRE_DOTALL)
0911nobodyさん2008/05/03(土) 11:48:07ID:???
てか普通にsmarty使えばいいんじゃね?って言うのはなしなの?
なんでわざわざ車輪を再発明すんの?
0912nobodyさん2008/05/03(土) 12:13:39ID:???
phpのプログラマーって、論文とか書いたことがない奴ばかりか?

論理的思考もなく、単に関数と関数をパズルのような感覚でつなぎ合わせれば、
それなりのものが出来てきて、さぞ自分は有能なエンジニアだと錯覚を起こしているのではないですか?

有能か似非かを分ける方法は簡単。
設計書orテスト仕様書を書かせてみればすぐ分かる。
もっと言えば、作っているシステムを誰でも分かりように1枚の絵にまとめろ、という課題を出せばいい。

たちまち、化けの皮が剥がれる。
0913nobodyさん2008/05/03(土) 12:14:36ID:???
掲示板のスキソのように使うまでもない小物とか、
テンプレートエンジンがない環境とか

実は俺もスキソのためにSmartyをダウソして中を見てみた訳だが、
何が何だかワケワカメだったw
0914nobodyさん2008/05/03(土) 12:45:58ID:???
>>913
Smaryのコード自体は大してレベル高くないんだけどphp4仕様で書かれてるから非常に読みにくい
0915nobodyさん2008/05/03(土) 13:01:45ID:???
メカニズムが車輪の再発明でも、雪道に強いタイヤとか
自分の欲しい物を作るのは、間違いじゃないと思うよ。

smartyみたいに、大した事出来ないのに無駄に大きいライブラリは
拡張するより、一から書いた方が早いだろうし。

今の風潮で何作るのにも出来合いのライブラリを使っていく発想だと
9割のクラスが使われないまま読み込まれていたりとかおかしな事になる。
0916nobodyさん2008/05/03(土) 13:10:32ID:???
四角い車輪の再発明乙
0917nobodyさん2008/05/03(土) 13:13:26ID:???
>>916
雑誌とかに惑わされずにsmartyの中見てみれば、
smarty自体が四角い車輪な事がすぐわかるはずだけど。
あれは、個人が適当に作ったのを公開してるのとレベルあまり変わらない。
0918nobodyさん2008/05/03(土) 13:16:04ID:???
「見ればわかるはず論」はいらない。

理由を言え。
0919nobodyさん2008/05/03(土) 13:18:22ID:???
php自体で書かれてるんだから見て分らないやつは使うな。
0920nobodyさん2008/05/03(土) 13:20:55ID:???
>>919
そういう暇は無いんで、
どこを見ればよいかと、そこを教えてください。
0921nobodyさん2008/05/03(土) 13:22:46ID:???
>>917
どの辺が?
0922nobodyさん2008/05/03(土) 13:36:47ID:???
だから、君達は技術者じゃないだよ。単なる組み立て屋。
0923nobodyさん2008/05/03(土) 13:46:21ID:???
>>922
だから聞いてます?どこがと聞いてんだけど。説明できないんだw
0924nobodyさん2008/05/03(土) 13:48:18ID:???
書き方が凄く汚い。
$varへの代入とdefineの使い方が曖昧。
define使ってると思えば、弄る事の無いsmartyバージョンナンバー
$varに入れてるし。

php4で書かれてる時点でphp5からextendする気は起きないだろ。
smartyプラグインで決められたオレオレ使用にしたがってカスタマイズするか?

突っ込みどころは一杯あるけど、コード内にvimのタグ入ってる時点で、
書いてるやつが自分のためだけに作ってるオレオレエンジンだって気付けよ。
0925nobodyさん2008/05/03(土) 13:50:47ID:???
お前ら暇だな!
0926nobodyさん2008/05/03(土) 13:52:14ID:???
だが、これは
下らねぇ煽りあいはここに書き込みやがれ 1の序曲にすぎなかった
0927nobodyさん2008/05/03(土) 13:53:07ID:???
>>924
書き方wwww
まぁな、書き方は目立つし突っ込みやすいからな。
0928nobodyさん2008/05/03(土) 13:55:48ID:???
人が作ったコードを使うこと、いや使い方すらわからなくて人に聞いている状態なのに、
俺は技術者だと威張り腐っているって何?

人間として腐ってんじゃねーの?
0929nobodyさん2008/05/03(土) 14:09:44ID:???
書き方が気に食わないっつー話かw
09309242008/05/03(土) 14:17:25ID:???
>>922
技術者だと威張ってる奴なんてどこにもいないだろw
ここにいるのは「パーソナルホームページ」を作ってる趣味人が大半だから
おちけつ。

彼らは、「お前は技術者じゃない」って言われても、困るだろ。
夕飯作ってる主婦にいきなり、「お前は料理人として失格だ」
って言ってるくらい暴言だ。
0931nobodyさん2008/05/03(土) 14:28:46ID:???
技術者だからこそ人が作ったコードを使うんだけどなあ
趣味なら全部自前で書いていくら時間かけても楽しければいいけど
09328732008/05/03(土) 14:28:52ID:???
俺は一応技術者だけど、ほとんどライブラリは使ったことないな。
技術者としても会社の一員としても正しくないかもしれないけど、
やっぱ他の人が作ったものを心底信用することができないのと、
自分で開発するのが楽しいから。
ま、言っても全部自分でってわけにもいかないし、自分が作ったものが
完璧だとは断言できないけど、でもまぁ、そうやって成長していってるってのもある。
0933nobodyさん2008/05/03(土) 14:33:39ID:???
       _, ,_
     <[;゚Д゚]> ア゙ー!? なんでおまいの楽しみや成長のために
      [_]     つかいづれえ心底信用できねえものを使わせられにゃならんのよ
      < > 
レス数が900を超えています。1000を超えると表示できなくなるよ。