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

【PHP】下らねぇ質問はID出して書き込みやがれ 123

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2012/09/25(火) 23:39:55.21ID:???
質問者はまず>>1を良く読むこと(必須!)
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。

◆前スレ
PHP】下らねぇ質問はID出して書き込みやがれ 122
http://kohada.2ch.net/test/read.cgi/php/1344963135/

◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】

◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)

◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
0434nobodyさん2012/10/15(月) 02:19:42.88ID:???
>>433
$x%0
0435nobodyさん2012/10/15(月) 06:13:48.13ID:???
>>433
[2次元配列に格納されている配列] が、偶数か奇数かは どうやって判別するのでしょうか。
0436nobodyさん2012/10/15(月) 06:23:18.33ID:???
>>421
もう一回上げて
0437nobodyさん2012/10/15(月) 06:44:35.62ID:???
>>433
そんな関数はないから自作しなさい
0438nobodyさん2012/10/15(月) 15:55:02.13ID:???
>>433 原文:2次元配列に格納されている配列を偶数と奇数に分けて別々の入れるに格納

> 2次元配列に格納されている配列を偶数と奇数に分けて
>>435 の指摘のとおりに配列を偶数と奇数に分けるとは何かを、まずは教えてください。

> 別々の入れるに格納
 別々の入れるが何かを、まずは教えてください。

0439nobodyさん2012/10/15(月) 17:31:34.42ID:???
説明能力がないというより言語障害の域
生きてて恥ずかしくないのかね
0440nobodyさん2012/10/15(月) 17:41:33.39ID:???
そもそも何がやりたいの?
0441nobodyさん2012/10/15(月) 18:04:50.82ID:???
学校の課題か何かでしょ
何がやりたいのかより、先生が出した課題の原文そのまま載っける方がいいよ
0442nobodyさん2012/10/15(月) 22:21:18.20ID:Z/nx/LGU
<input name="photo<?= $i ?>" type="file" />
で、30個くらい 同時にアップロードできるフォームをつくったんですけど
どうがんばっても次のページで
$_FILESで取得出来る枚数が20個です。
<input name="photo<?= $i ?>" type="file" /> は20個が限界ですか?
0443nobodyさん2012/10/15(月) 23:16:54.16ID:???
添え字が奇数と偶数の要素を分けたいんだろ?
0444nobodyさん2012/10/16(火) 00:12:37.17ID:???
>>442
5.2.12から
max_file_uploadsのオプションで設定されて、
デフォルトが20です。
0445nobodyさん2012/10/16(火) 11:17:52.30ID:???
CONFIG.SYS の FILES=20 の数値を増やして再起動
0446nobodyさん2012/10/16(火) 17:45:32.16ID:???
再起動しなきゃならないゴ~ミ言語wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
0447nobodyさん2012/10/17(水) 11:04:54.96ID:???
無駄な煽り言葉ってゴ~ミだね
0448終わってるな2012/10/17(水) 18:16:53.23ID:???
過疎イヒが進んだクソすれ
0449nobodyさん2012/10/17(水) 21:33:17.94ID:???
よかったなお前の荒らしが奏功して
0450nobodyさん2012/10/18(木) 01:50:13.76ID:ZUhtOgWu
PHP5.2くらいから
function hoge(Foo foo) {
みたいに引数に型をしていできるようになりましたが、
この引数の型を取得するにはどうしたらいいでしょうか?
あるクラスのあるメソッドの引数の型は何かというのを取得したいのです。

0451nobodyさん2012/10/18(木) 02:03:51.83ID:???
試してないしマニュアル開くのもだるいから
適当回答だけどReflectionでどうにかならんか?
0452nobodyさん2012/10/18(木) 02:15:35.05ID:???
>>451
レスありがとうございます。
ReflectionParameterクラスがかなり近い感じですが、
型を取得するメソッドが見当たらないみたいです。。。
04534502012/10/18(木) 02:18:39.47ID:???
いや、
ReflectionParameter::getClass()
↑こいつで行けるみたいですね。
ありがとうございました。
0454nobodyさん2012/10/18(木) 05:04:51.03ID:Vg/ocySG
教えてください。
下記のような文字列を持った変数があり、

$a = '<h1><?php echo "Hello"; ?></h1>';

こいつのphp部分を展開して「<h1>hello</h1>」という文字列にしたいです。
一旦外部ファイルに変数を書き出してincludeするとphp部分が展開されるのですが、
いちいち外部ファイルに書き出さないで展開できる方法ありますか?

file_put_contents( 'test.txt', $a);
ob_start();
include 'test.txt';
$a = ob_get_clean(); //展開されてる
0455nobodyさん2012/10/18(木) 06:00:37.70ID:???
方法はあるがやり方忘れた
確かメモリで展開するような方法
0456nobodyさん2012/10/18(木) 06:31:59.37ID:Vg/ocySG
>>455
早朝からありがとうございます。
ヒントもらって調べて、こんなやり方がありました。がincludeできません。

$fp = fopen('php://memory', 'r+');
fwrite($fp, $a);
fclose($fp);
include('php://memory'); // ダメ
include $fp; //ダメ

このストリームっていうものを初めて触ったんですが、
たしかにメモリ上に一時ファイルはできてるっぽいんですが、
どうやってincludeすればいいんでしょうか?
0457nobodyさん2012/10/18(木) 06:56:23.32ID:Vg/ocySG
うおー、できました。

ob_start();
include "data://text/plain;base64,".base64_encode($a);
$a = ob_get_clean();
0458nobodyさん2012/10/18(木) 07:02:19.16ID:Kix8858B
えっ
http://php.net/manual/ja/function.eval.php
0459nobodyさん2012/10/18(木) 09:57:52.63ID:???
よくよく調べたら別にbase64かまさなくてもいけました。

>>458
phpタグがあるとevalできないです。
0460nobodyさん2012/10/18(木) 10:06:27.16ID:???
>>459
$a = '<h1><?php print "Hello"; ?></h1>';
print preg_replace_callback('/<\?php(.*?)\?>/',function($r){ ob_start(); eval($r[1]); $ret=ob_get_contents();ob_end_clean();return $ret; },$a);
0461nobodyさん2012/10/18(木) 14:05:49.40ID:???
冗談抜きで頭悪い奴しかいないな
クズすぎる
0462nobodyさん2012/10/18(木) 16:53:07.56ID:T12STdKl
.htaccessの記述でインクルードパスを追加しています
php_value include_path "path1:path2"

ウェブアクセスではこれで済みますが、コマンドラインからテストするようなときのため
スクリプト中にset_include_path()で追加するコードを追加したいんですが
そうするとウェブアクセス時には重複してパスが追加されてしまいます。
追加済みであることを区別する方法はないでしょうか。

例えばperlで.htaccessに記述しようとする場合なら、PERL5LIBという環境変数にセットするので
これを見ることで判定できます。
なにかそういう方法があればと思ってるんですが・・
0463nobodyさん2012/10/18(木) 16:59:12.05ID:wQYl1awA
phpで、認証ページからログイン、flashを使った写真表示のページを作成しています
元のリンク先からページを開いた際に、うまく表示されるときと表示されない時があり、
それも不定期にその現象がでます(何も表示されない時は真っ白)
error_reportingで全てのエラー表示を設定し、サーバーのアクセスログやエラーログも
チェックしているのですが、何も表示されず・・・
他に原因を探るのにチェックすべき点などはありますでしょうか?
なお、認証は失敗するとセッションを削除して強制的にログアウトさせています
表示されないときも引き続きリンク先をクリックしていると表示されるようになるので
認証は引き続き行われていると思うのですが
0464nobodyさん2012/10/18(木) 17:07:28.84ID:T12STdKl
>>463
画面が真っ白っていうのは、えてしてdisplay_errorsが無効になってるからだよ。
php.iniを編集するかini_set()かで有効にすれば
なんらかのエラーメッセージが画面上に表示されるんじゃないかな
0465nobodyさん2012/10/18(木) 17:32:56.49ID:???
設定変えないとエラーすら分からない基地害言語乙
0466nobodyさん2012/10/18(木) 17:36:34.39ID:wQYl1awA
>>464
レスありがとうございます
display_errorsはOnでした

glob("*.jpg")でディレクトリ内のファイル名を取得してflashで読み込んでいて
自分なりに検証してましたが、どうも大量の写真があるページにその現象がでるようで
ページを分けて一度に読み込む写真の枚数を減らしたところ、表示が確実にできるようになりました

大量の読み込みによって、表示ができなくなるのはどういった理由でしょうか?
メモリ関連なのかなと思ったりもするのですが、よくわからず・・・
0467nobodyさん2012/10/18(木) 17:49:14.40ID:???
>>462
get_include_path()でチェックは?
それか、set_include_path()で「追加」ではなく必要なパスを「設定」するとか
.htaccessは削除してプログラムだけで設定すれば?
0468nobodyさん2012/10/18(木) 17:52:52.65ID:???
>>466
HTTPの応答はどうなってる?
コード、ヘッダ、ボディ
0469nobodyさん2012/10/18(木) 21:11:54.20ID:???
PHPって糞言語だと思うけど
>>466みたいなクズがさらに評判を下げてるんだな
0470nobodyさん2012/10/18(木) 22:59:45.41ID:???
巣に帰れカス
0471nobodyさん2012/10/19(金) 02:41:50.91ID:???
ゴミ言語流行らせてit業界に迷惑かけるなカス
0472nobodyさん2012/10/19(金) 02:57:50.01ID:???
俺は悪くねえし
0473nobodyさん2012/10/19(金) 04:27:46.05ID:???
迷惑なのはお前の存在
0474 忍法帖【Lv=3,xxxP】(1+0:8) 2012/10/19(金) 07:30:32.21ID:???
0475nobodyさん2012/10/20(土) 14:21:14.34ID:ZMpEOeTK
PHP 5.4です。
SQL(今はSQLite3、将来的にMySQL)で条件に合致する全件数とそのうちのa〜b件目のデータを表示したいです。
この場合、SQL側には合致するもの全件のデータを出力させてPHP側で数えつつ該当するデータを表示させるか、
一度SQLにCOUNTさせて全件数を取得し、再度a〜b件目のみデータを出力させPHP側で何もせずそのまま表示するか、
レコード数等で一概に言えないと思いますが、パフォーマンスやデータの安全性の観点からどちらにすべきでしょうか?
0476nobodyさん2012/10/20(土) 15:10:28.16ID:???
>>475
考えるまでもないし、おそらくご自分でも分かっているのでしょう。
0477nobodyさん2012/10/20(土) 15:15:08.05ID:???
>>475
勉強のためにどちらも試してみることをお勧めします
0478nobodyさん2012/10/20(土) 16:04:06.31ID:???
638:デフォルトの名無しさん :2012/10/20(土) 15:59:33.91
PHPとRubyはほぼ出始めから産廃
0479nobodyさん2012/10/20(土) 17:13:52.30ID:mvm6LY/H
お問い合わせとか資料請求とかのフォームの場合でも
CSRF対策はするべきでしょうか?

「ログインや商品注文の時だけで良い」という意見や
「全てのフォームで対策するべき」という意見もあり、
どちらの方が一般的なのか悩んでいます。

出来れば余計なコードは省きたいため、ご意見下さい
0480nobodyさん2012/10/20(土) 17:32:38.70ID:???
>>479
前者の意見ってどこに書いてあったの?
0481nobodyさん2012/10/20(土) 18:00:00.23ID:???
自動で投げ込まれて困るところすべてやるべき
0482nobodyさん2012/10/20(土) 19:07:58.65ID:mvm6LY/H
>>480
「CSRF対策」でググった時にそういう意見もありました。

>>481
極論を言えば全て困るのですが、
正直、携帯用のフォーム対応を考えると
少々面倒だったり、セッションハイジャックの方が気になったりして、
「そこまでするべきか?」と疑問に思います。
0483nobodyさん2012/10/20(土) 19:24:47.82ID:???
じゃあテメーの好きにすればいいだろゴミ
0484nobodyさん2012/10/20(土) 19:26:03.28ID:IirBV06M
キャッシュ保存するフォルダって保存するファイル数、どれくらいまでに抑えた方が良いんでしょうか?
多すぎると、処理速度落ちると思うのですが・・・
0485nobodyさん2012/10/20(土) 19:32:16.65ID:???
今回の遠隔操作に便乗して

CSRFで勝手に市の意見フォームに殺人予告投稿されて
犯罪予告冤罪食わされた事件が新聞に載ってたから
対策するに越したことはない

//新聞にCSRFってマンマ書いてあって吹いた
0486nobodyさん2012/10/20(土) 19:37:43.63ID:???
>>482
URL教えて
0487nobodyさん2012/10/20(土) 19:44:57.98ID:ZMpEOeTK
>>476-477
そうですね。
せっかく目の前にPHPがあって数万件のレコードを作るのだって簡単ですし
0488nobodyさん2012/10/20(土) 21:09:13.28ID:???
>>482
セキュリティ気にする奴がPHP使ってる時点でおかしい
まともな奴ならセキュリティを考えた時点でPHPは選択肢から外す
0489nobodyさん2012/10/20(土) 21:10:24.06ID:???
preg_replaceでうまく変換されないんですけど、文字コードって関係ありますか?
ちなみにutf-8です。
オプションのuをつけるとエラーでるので原因不明です。

たとえば「あいうえお」って文字を消そうとして

第一引数に"/あいうえお/"、第二引数に''
ってしても消えません
0490nobodyさん2012/10/20(土) 21:15:45.83ID:???
ちなみにstr_replaceでも消えません。。
0491nobodyさん2012/10/20(土) 21:21:16.74ID:???
文字コードって関係あります
\xXXで書くと確実
0492nobodyさん2012/10/20(土) 21:32:11.85ID:???
>>491
ありがとうございます。
\xが必要ってことですか?

あいうえおの場合だと

\xあいうえおって書けばいいんでしょうか?
0493nobodyさん2012/10/20(土) 21:39:40.25ID:???
utf-8のあいうえお
"\xE3\x81\x82"
"\xE3\x81\x84"
"\xE3\x81\x86"
"\xE3\x81\x88"
"\xE3\x81\x8A"
0494nobodyさん2012/10/20(土) 21:42:03.36ID:???
えー!
じゃあ対象文字が16進数で何かを調べなきゃいけないってことですか?
ちょっと待ってくださいよ
0495nobodyさん2012/10/20(土) 22:21:38.48ID:???
>>484
OSのファイルシステム依存です
当然どんなOSでも数が多いと遅くなります。
0496nobodyさん2012/10/20(土) 22:23:41.17ID:???
IDでてねーやつに、バカなレスして荒らすのは止めてくれませんか。
0497nobodyさん2012/10/20(土) 23:20:44.78ID:???
どうせPerl厨が荒らしてんだろ
0498nobodyさん2012/10/21(日) 17:41:30.34ID:???
PHP技術者認定試験 part1
http://ikura.2ch.net/test/read.cgi/lic/1348281475/
0499nobodyさん2012/10/22(月) 00:20:45.74ID:+0fUS7Jz
preg_replaceについて

$str = 'あああabcいいい';
$str = preg_replace('/(.+?)([a-zA-Z])(.+?)/i',"\1変換\3",$str);
上記のような置き換えで
パターンの結果?(言葉が見つかりません)を取得するのに置き換えのところで「\1」や「\3」などを使うと思うのですが、
これをたとえば
preg_replace('/(.+?)([a-zA-Z])(.+?)/i',"\1"._func("\2")."\3",$str);
というように独自関数の引数に使いたいのですが
function _func($str)
{
echo $str;
}
として引数を見てみると「\2」と表示されてしまいます。
この場合どうすればよろしいですか?
0500nobodyさん2012/10/22(月) 00:43:50.64ID:???
>>499
Perl使え
道具は選ばないと作業効率も完成度も酷いことになるぞ
上手い奴なら道具は選ばなくてもそれなりのものを作れるが
中級者以下は道具の影響をモロに受ける
0501nobodyさん2012/10/22(月) 00:44:28.78ID:???
>>499
$str ='あああabcいいい';
$str= preg_replace('/(.+?)([a-zA-Z])(.+?)/e',"'$1'._func('$2').'$3'",$str);
print $str;
function _func($str)
{
return "*$str*";
}
0502nobodyさん2012/10/22(月) 01:37:10.20ID:???
>>500
中級者以下乙w
0503nobodyさん2012/10/22(月) 07:22:01.03ID:???
pregはPerl互換を謳っておきながら、
使いにくい糞だな
正規表現リテラルくらい導入しとけよ
0504nobodyさん2012/10/22(月) 09:46:03.73ID:pw1US0yc
セキュリティ考えたらphp使うなっていうけど、
じゃあ実際なにつかえばいいの? 冗談抜きで
0505nobodyさん2012/10/22(月) 09:52:27.41ID:???
PHPフレームワークを使えばいい
0506nobodyさん2012/10/22(月) 11:07:11.10ID:???
正規表現リテラルは欲しいところだな
0507nobodyさん2012/10/22(月) 12:26:38.25ID:???
パーサがまた遅くなるな
0508nobodyさん2012/10/22(月) 13:47:22.92ID:???
>>504
セキュリティ考えたらphp使うな、なんて言われてない
言ってるのはPerl厨だけ
0509nobodyさん2012/10/23(火) 01:03:51.62ID:???
そう思い込むのは勝手だけどそれでお前の鯖がハッカー踏み台になって他を攻撃したら迷惑がら公開すんなよ
WWWから隔絶されたネットワーク内だけでやれ
0510nobodyさん2012/10/23(火) 01:20:38.24ID:sqK5MN/v
 
0511nobodyさん2012/10/23(火) 09:29:11.64ID:???
>>509
こいつなにいってんだ?
ハッキング対策はプログラム以前のソフトウェア、ハードウェア単位でやるもんだろ
php叩きたいがために自分の無知を晒してんな
0512nobodyさん2012/10/23(火) 10:31:41.29ID:???
WWWって言いたかっただけだろうきっと
0513nobodyさん2012/10/23(火) 10:49:38.21ID:???
迷惑がら
0514nobodyさん2012/10/23(火) 10:54:08.22ID:???
そう思い込むのは勝手だけどそれでお前の鯖がハッカーの踏み台になったら迷惑だからイントラでやれよ

これが正しい
0515nobodyさん2012/10/23(火) 10:55:55.09ID:???
そもそもなんで自鯖の話になってんだか
0516nobodyさん2012/10/23(火) 11:17:50.92ID:???
「perl使ってるからボク安心♪」、そう思いたいんだろう
0517nobodyさん2012/10/23(火) 11:46:03.17ID:???
なんで鯖の話が出てくるんだ
それに食べ物を踏むなんてバチが当たるぞ
0518nobodyさん2012/10/23(火) 11:58:33.41ID:???
おなかすいた
0519nobodyさん2012/10/23(火) 13:37:02.06ID:???
>>509
そういう、根拠のない書き込みは迷惑がらやめろ
0520nobodyさん2012/10/23(火) 14:20:13.95ID:???
迷惑がらって何
0521nobodyさん2012/10/23(火) 16:18:45.95ID:FndRAY7p
はいはーい、しつも〜ん!

横浜市のウェブサイトに殺人予告した事件の話だけど、あれCSRF対策してなかったってことでしょ?
どこの業者が作ったのか知ってる人いるぅ?
もしかしてphp使ってたの〜?
0522nobodyさん2012/10/23(火) 16:36:49.16ID:???
横浜市のHPの意見フォーム開いて
フォームのaction先のURLの拡張子見ればよろし
0523nobodyさん2012/10/23(火) 16:38:54.00ID:???
ぶっちゃけCSRF対策なんてrecapture使うか、外部リクエスト閉じるだけで充分だよな
0524nobodyさん2012/10/23(火) 16:49:50.59ID:???
市のHPにreCAPTCHAあったらキモいわ
>>522
postmail.cgiでした
0525nobodyさん2012/10/23(火) 16:57:08.14ID:???
CGIってことはperlですね
PHPは普通CGIでは使わないし
rubyやpythonの可能性も低いし
0526nobodyさん2012/10/23(火) 16:57:52.93ID:???
reCAPTUREぐらい問題ないだろ
デザインだってほぼ自由だし(憤慨)
0527nobodyさん2012/10/23(火) 17:14:28.90ID:???
どうせKENTで拾ったpostmail.cgiだろw
0528nobodyさん2012/10/23(火) 19:54:52.40ID:???
perlだと何か問題が?
0529nobodyさん2012/10/23(火) 20:07:23.23ID:BhC6UlCs
あるクラスに更新日付や作成日付やデータなどを持たせてて、このインスタンスが1000個くらいあるんですが、
これを作成日付順に並べ替えたいです。

でも作成日付は年月日までしかデータが無いので重複してしまいます。
なので、

array[作成日付] = new DATA(引数,・・・);

っていう連想配列のキーを作成日付にしてasortでソートしようと思っても
重複する部分は上書きされてしまうので思うようにいきません。

どうにかして作成日付順にソートする方法ないでしょうか?
0530nobodyさん2012/10/23(火) 20:23:08.09ID:???
メモリ上でなくSqliteでやる。
0531nobodyさん2012/10/23(火) 20:25:56.13ID:VHjaAdVt
>>529
キーに日付を使うのを止めて、usortで、比較関数でインスタンスの日付を比較させるか
array[作成日付] [] = new DATA(引数,・・・); あたりでやるかどっちか。
0532nobodyさん2012/10/23(火) 20:46:44.65ID:H8aWMiOD
phpでの変数はそのファイル内でのみ有効なのでしょうか?
例えば、1.phpでいくつか変数に代入したあと、プログラムを実行し、
2.phpで再びその変数を参照することはできますか?
0533nobodyさん2012/10/23(火) 21:04:45.05ID:BhC6UlCs
>>530
一度DBでぶっこんでからSQLの処理でソートするってことですか
諸事情で最初は古いやつから番号を割り振りってDBに登録したいのでやめときます

>>531
うーんusortの使い方がよくわからん。。。
二つ目の方法もよくわからんなぁw

もうちょっと考えて見ます。。
■ このスレッドは過去ログ倉庫に格納されています