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

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

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

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

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

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

◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)

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

【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0781nobodyさん2011/11/23(水) 03:53:16.90ID:???
>>777
男は黙ってvimだよな
0782nobodyさん2011/11/23(水) 04:00:07.99ID:???
>>781
viは出すな。Emacsとの宗教戦争になるwww
0783nobodyさん2011/11/23(水) 06:59:51.55ID:???
vim使うと最後に改行ついちゃうじゃん、なんて言われたことがあるよ。
うん、ファイルだからね、と返したらハテナついてたけどめんどくさいからほっといた
0784nobodyさん2011/11/23(水) 09:00:34.23ID:???
男は黙ってedline
0785nobodyさん2011/11/23(水) 09:54:41.56ID:???
たまに環境設定してない状況でedが起動してしまうことあるな
ありゃ混乱するw
0786nobodyさん2011/11/23(水) 10:41:12.32ID:dmtpqfj9
nanoだろ普通

>>780
初心者向けとしてNGなら納得はできるな
0787nobodyさん2011/11/23(水) 10:45:27.92ID:pg1I2OrG
windows + apache2.2 + php5.3で
localhost/以下はモジュールで動かせました
localhost/cgi-bin/以下はcgiとして動作するようにしたいのですが
ruby,python,perlは動くのですがphpだとソースコードがそのまま表示されたりページを開くたびにソースコード自体がダウンロードされたりします
マニュアルやら検索でヒットしたページの通りにやってますが上手く来ません
モジュールとCGIを両方使う正しいapacheの設定方法を教えて下さい
0788nobodyさん2011/11/23(水) 10:52:46.68ID:dmtpqfj9
スレチ
0789nobodyさん2011/11/23(水) 11:22:02.38ID:???
var_dump(strpos('(',"123()"));
falseになるんだけどどうしたらマッチするようになりますか?
0790nobodyさん2011/11/23(水) 11:24:55.01ID:???
>>787
CGIで動作させるためには拡張子をCGI扱いにするかファイルの拡張子をCGIに変更しないと無理ですよ。
またはディレクトリ毎に設定するか。
あとは自力でどうぞ!
0791nobodyさん2011/11/23(水) 11:26:47.32ID:???
>>789
あ、引数反対かw
0792nobodyさん2011/11/23(水) 13:35:17.80ID:pg1I2OrG
>>790
そのへんはマニュアルや検索で十分見て試したので知ってます
0793nobodyさん2011/11/23(水) 13:49:45.09ID:???
>>792
どっちか行ってこいPHP関係ない

Apache統合スレ 11 (HTTPServer以外も含む)
http://hibari.2ch.net/test/read.cgi/mysv/1286137109/
Apache関連 Part11
http://hibari.2ch.net/test/read.cgi/unix/1222729860/
0794nobodyさん2011/11/23(水) 13:55:13.49ID:???
>マニュアルやら検索でヒットしたページ
の内容書かないから、
こっちが答えても片っぱしから知ってますと言われるだけだし
答えるだけ無駄な気がするw
0795nobodyさん2011/11/23(水) 14:40:47.62ID:???
XAMPP使いがたむろってるスレで聞いても答えられる奴なんていねえよ
0796nobodyさん2011/11/23(水) 14:44:51.23ID:???
だいたい、そのソースがcgiなのかphpなのかを
鯖から見てどうやって判別するんだよって話だな
0797nobodyさん2011/11/23(水) 14:56:29.71ID:???
>>796
手軽なのはやっぱり拡張子でわける方法だよね。
試したこと無いけど,htaccessでAddTypeで切り替える?

>>786
>初心者向けとしてNGなら納得はできるな
でもそれ上級者とかプロ向けとかも書かれている。
そのプロ向けのZendStudioなんてプロ向けと言うよりキワモノ向けの気がする。
0798nobodyさん2011/11/23(水) 14:59:02.30ID:???
みなさんってデバッカは何使っている?
Zend Debbuger?xdebug?

自分は現在はxdebugを利用している。
0799nobodyさん2011/11/23(水) 15:17:05.82ID:???
>>421
$data = file("対象ファイル");
foreach ($data as $line) {
  echo rtrim($line) . "\n";
}

いまさらだけどね。
最速かどうかはわからん。
0800nobodyさん2011/11/23(水) 15:25:54.18ID:???
hahaha

$a="〜";
$b=file($a,FILE_IGNORE_NEW_LINES);
$c=implode("\n", $b);
0801nobodyさん2011/11/23(水) 15:32:10.45ID:???
>>798
var_dump();
echo 'passed check point ?'; // ? は適当な数字
だけですましてる。
0802nobodyさん2011/11/23(水) 15:39:10.42ID:???
FILE_IGNORE_NEW_LINESか、覚えとこ。
0803nobodyさん2011/11/23(水) 15:53:08.82ID:???
>>801
Xdebug使ってみなよ。
var_dump()をものすごく綺麗に生成して表示してくれるから。
0804nobodyさん2011/11/23(水) 19:33:34.32ID:???
【OS名】windows 7 32-bit
【PHPのバージョン】5.3.8 (XAMPP 1.7.7)
【連携ソフトウェア】MySQL
【質問内容】
基本的なことですが、
PHPで生成されるウェブサイトを表示したユーザーには
PHPのソースが見えることはありませんか?
障害発生時でも見えませんか?

言うまでもありませんが、変数名やデータベース名などが見えると
セキュリティ上まずいので。
08058042011/11/23(水) 19:34:03.70ID:9QlOj3Cf
age忘れていました。
0806nobodyさん2011/11/23(水) 20:18:11.71ID:???
>>804
人為的ミス、サーバーのアップデート時とかCGIだとパーミッション設定ミスなどで
ソースが見れたケースは過去に何度か経験あるので絶対に見れないとは言わない。
それよりもエラー表示を隠し忘れていて情報晒しているサイトならよくみかけるw
08078042011/11/23(水) 20:53:18.61ID:9QlOj3Cf
>>804
ミスやセキュリティホールは仕方ないですね。
仕様では「見えない」と承知しました。
ありがとうございます。
0808nobodyさん2011/11/23(水) 21:21:22.49ID:???
ちょw
そんな仕様ない
「見えない」ように鯖で設定しないとダメ
0809nobodyさん2011/11/23(水) 21:29:56.02ID:???
>>804
見えたらまずいようなものはドキュメントルートに置くなっ!!!!!!!!!!!
08108042011/11/23(水) 21:34:21.21ID:9QlOj3Cf
>>809 >>808
hoge.php
で生成されたページを表示したいが、ソースは見せたくないときは
hoge.phpを見えない場所に置いてページを表示させるには
どのようにするのが適切でしょうか。
0811nobodyさん2011/11/23(水) 21:42:14.31ID:???
>>810
フレームワーク使う
0812nobodyさん2011/11/23(水) 21:43:23.90ID:???
禅問答のように思えているのかもしれないけど、
公開ディレクトリにあるスクリプトは非公開ディレクトリのスクリプトを読み込むことができるので。
0813nobodyさん2011/11/23(水) 21:45:24.00ID:???
>>808>>809もセキュリティー側に関してはド素人だと言うことがよくわかりますね。
問題は人為的なミスなどって考えないのかな?

それと
>見えたらまずいようなものはドキュメントルートに置くなっ!!!!!!!!!!!
レンタルサーバによってはそのFTPで接続できるのがそのドキュメントルート以下って事もあることを理解できないのかな?
08148042011/11/23(水) 21:50:51.45ID:9QlOj3Cf
>>812
hoge.phpから../mienai/mienai.phpを実行すればいいわけですね。

>>811
すみません。ピンとこないので精進します。

>>813
そういう仕様のサーバもありそうですね。
0815nobodyさん2011/11/23(水) 21:51:41.50ID:???
それを言ったら
管理できる人間はアクセスして盗み見ることができるからソースコードを暗号化しないといけないな
キリがない事は言わないように
0816nobodyさん2011/11/23(水) 21:55:17.36ID:???
>レンタルサーバによってはそのFTPで接続できるのがそのドキュメントルート以下って事もあることを理解できないのかな?

kwsk
0817nobodyさん2011/11/23(水) 21:55:32.44ID:???
>>813
そのレンタルサーバを使うのがよくない。

>>815
ヒューマンエラーによる問題発生時にいかに被害を抑えられるかという話だろ
08188042011/11/23(水) 21:56:50.89ID:9QlOj3Cf
>>808
サーバで「見えない」設定をすれば見えない仕様ということですね。

Apacheのhttpd.confに
AddType application/x-httpd-php .php
と書いておけば「ソースは見えない」という意味ですよね?
0819nobodyさん2011/11/23(水) 21:59:08.55ID:???
>>818
おいw
0820nobodyさん2011/11/23(水) 22:00:03.45ID:???
>>817
レンタルサーバでpublic_html外に置けないなんて無料サーバぐらいじゃね
あなたは無料サーバしか使ったことないような人?
08218192011/11/23(水) 22:01:07.48ID:???
817じゃなくて>>813宛て
0822nobodyさん2011/11/23(水) 22:09:21.73ID:???
>>820
サーバの仕様による。
そんなことも知らないの?
0823nobodyさん2011/11/23(水) 22:11:13.17ID:???
>>821
アンカー一つまともにつけれない君の書き込みの何処を信用しろと?
この状態を勝手に推測すると
>>819=>>820?
で、819って名前の所に書いてあるのは実は820って書くつもりだった?

どっちにしてもおまえは馬鹿だと言うことは理解できた。
0824nobodyさん2011/11/23(水) 22:12:12.44ID:???
0825nobodyさん2011/11/23(水) 22:15:05.66ID:???
レンサバの話のまとめ


・ドキュメントルートに置くのは無駄派と有効派の戦い

続き再開

↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
0826nobodyさん2011/11/23(水) 22:18:58.55ID:???
>>825===>>819必死に話をそらして必死だな。

直接ファイルを覗いてほしくない場合は.htaccessでdeny from allを使っておけ。
でも.htaccessが使えるサーバかどうかもサーバのようによって違うから注意。

エラーは非表示にしておけ。
0827nobodyさん2011/11/23(水) 22:19:42.24ID:???
>>823
はい、ではドキュメントルートの上に置かない方法を書いてください
もちろん書けますよね
よろしくお願いしますね^^
0828nobodyさん2011/11/23(水) 22:21:41.21ID:???
>>826
へぇ〜ドキュメントルートの上に置くのはダメでhtaccessだとOKなんですね
後、やたら認定してるのは自分に味方を付けないと心細い証拠かね?
08298042011/11/23(水) 22:22:31.10ID:9QlOj3Cf
>>826
やはりエラーが非表示は基本ですか。

Notice: Undefined index: number in C:\xampp\htdocs\hoge.php on line 2
Notice: Undefined index: name in C:\xampp\htdocs\hoge.php on line 3
Notice: Undefined index: nyukin in C:\xampp\htdocs\hoge.php on line 4
Notice: Undefined index: zandaka in C:\xampp\htdocs\hoge.php on line 6
などと表示されると別のところからPOSTされて残高を勝手に増やされそうな
気がしたので。
0830nobodyさん2011/11/23(水) 22:24:48.66ID:???
ひとり必死な馬鹿がいるwww
それはアンカーすらまともにつけれないアホ。

>後、やたら認定してるのは自分に味方を付けないと心細い証拠かね?
もうばれて必死www

>へぇ〜ドキュメントルートの上に置くのはダメで
駄目とは一言も書かれてない気がする。
妄想癖がつよい人みたい。
0831nobodyさん2011/11/23(水) 22:27:14.27ID:???
>>829
テスト環境は表示で良いんだよ。
ただ本番サーバは非表示にしてエラーはファイルとしてログ出力するようにしておく。

>Notice: Undefined index
>などと表示されると別のところからPOSTされて残高を勝手に増やされそうな
wwwww
もう駄目としか・・・・
0832nobodyさん2011/11/23(水) 22:28:26.78ID:???
>>829
Notice: Undefined indexがでるソースを書いている時点でもう馬鹿としか言いようがない。
しっかりチェック処理しろよww
08338042011/11/23(水) 22:32:44.93ID:9QlOj3Cf
>>831-832
ありがとうございます。
その前のページ(html)からpostされたデータを処理するphpですが、
PHPだけで実行するとそうなりました。
0834nobodyさん2011/11/23(水) 22:35:55.24ID:???
>>833
>その前のページ(html)からpostされたデータを処理するphpですが、
>PHPだけで実行するとそうなりました。
ならねーーーーよ。
しっかりとチェック処理してない証拠。
最低限isset()は使ってチェックしろよ。

08358042011/11/23(水) 22:41:32.24ID:9QlOj3Cf
>>834
入力値のチェックですね。
まずは動くかどうかというレベルなので…
これから入れます。
08368042011/11/23(水) 22:42:00.79ID:9QlOj3Cf
>>834
入力値のチェックですね。
まずは動くかどうかというレベルなので…
これから入れます。
0837nobodyさん2011/11/23(水) 22:42:15.72ID:???
質問です。

自分がphpで作成したwebページで、parse_ini_fileを使って、
hoge.iniというファイルから設定データを読みこんでいます。

hoge.iniを変更しても、時々parse_ini_fileで変更前のデータが読まれることがあります。

どのような原因が考えられるでしょうか?また対処方法はありますか?

よろしくご教示お願いいたします。

08388372011/11/23(水) 22:48:06.53ID:x/DZrHIk
ID出し忘れました
0839nobodyさん2011/11/23(水) 23:16:57.55ID:???
>>837
キャッシュされる仕組みが入っているとか
0840nobodyさん2011/11/23(水) 23:51:05.42ID:???
時々なんて動作をするとは思えないのでサーバー側ではなくクライアント側のキャッシュではないだろうか
0841nobodyさん2011/11/24(木) 00:26:28.39ID:???
関数の引数について質問です。
デフォルト値が決まっている引数が沢山ある関数、例えばmktimeの様な関数は
int mktime ([ int $hour = date("H") [, int $minute = date("i") [, int $second = date("s") [, int $month = date("n") [, int $day = date("j") [, int $year = date("Y") [, int $is_dst = -1 ]]]]]]] )
後の方にある引数を指定だけ指定したくてもそれが出来ずに、引数を全部指定する必要がありますよね。
この場合は$is_dstだけ指定したい時があっても、第一引数から順番に指定しなければいけません。

この場合は、引数を配列にして
mktime(array("is_dst"=>1));と指定出来たら順番を気にする事無く便利だと思い、
自作関数の引数はこの配列のタイプで書こうかな。と思っているのですが、この方式の欠点というのがあれば教えて欲しいです。

組み込み関数でmktime(array("is_dst"=>1));の様な指定が出来る関数は(ほぼ?)無いと思うのですが
この方式には何か欠点があるのでしょうか。
08428412011/11/24(木) 00:28:10.08ID:FvXT6b8c
ID出し忘れました
0843nobodyさん2011/11/24(木) 00:37:52.27ID:???
JavaScriptではよく見る手法だがPHPではあんまみないな
http://jp2.php.net/manual/ja/ref.funchand.php
可変長引数でうまくやってる感じはする
0844nobodyさん2011/11/24(木) 00:40:12.02ID:???
jsだと["key":"value"]で配列が書けるけど、phpだとarray("key"=>"value")で6バイト増えるからかな
0845nobodyさん2011/11/24(木) 00:45:00.49ID:???
>>844
key:value形式にするなら{}こっち使え。[]使うな。
0846nobodyさん2011/11/24(木) 00:45:02.73ID:???
まぁだいたい飛ばす引数にnullいれとけばイイいい関数が多いしな
たいして指定も気にならない
mktimeのis_dstに限っちゃ5.1から廃止されてるしな
0847nobodyさん2011/11/24(木) 00:47:35.39ID:???
別途setSummerTime(true)って関数作ればいいんじゃね
0848nobodyさん2011/11/24(木) 00:58:16.54ID:???
>>841
しいて言うなら名前が強制されるところかなぁ
0849nobodyさん2011/11/24(木) 05:38:33.55ID:???
サンプルコードに
$msg .= " File Size: " . @filesize($upload_name);
という記述があったのですが、filesizeは@なんて付けると
phpマニュアルには載ってません。
$msg .= " File Size: " . filesize($upload_name);でも
問題なく動いてます。
@は何のためについているのですか?
0850nobodyさん2011/11/24(木) 05:39:58.14ID:???
>>1
0851nobodyさん2011/11/24(木) 11:24:33.95ID:???
@使う奴は、手抜き大好き手こき大好き
0852nobodyさん2011/11/24(木) 11:36:07.10ID:???
@使うとエラーのでない最強のスクリプトを書くことができますw
0853nobodyさん2011/11/24(木) 11:38:09.28ID:???
error_report(0) だっけ?
これ付けても構文エラーの時は表示されるんだな
0854nobodyさん2011/11/24(木) 11:41:28.10ID:dbWHUVya
んじゃ、ついでに関連質問
実際さ、@ってどれくらいの頻度でつかってる?orどーゆーときに使ってる?
自分はもうクセで、基本的にissetとかでUndefinedの判断とも入れてるから、ほとんど使わないんだけど
使うタイミングとか教えてくれたらウレシス
0855nobodyさん2011/11/24(木) 12:01:37.50ID:???
ネット経由などチェックコストの高い場面では使っている
あと気が向いたら0で割るなぼけ!といわれる場面の一時しのぎにw
0856nobodyさん2011/11/24(木) 12:07:59.73ID:???
よくわからずfopenに@を付けてます
ローカルのファイルでファイルがない場合は新規作成するモードならいらないすか
0857nobodyさん2011/11/24(木) 12:15:23.16ID:???
PHP4の環境で・・・  やめたい。
0858nobodyさん2011/11/24(木) 12:33:45.25ID:???
loadHTML
0859nobodyさん2011/11/24(木) 13:31:39.15ID:???
> 基本的にissetとかでUndefinedの判断とも入れてるから

不思議な日本語を読むときに @ を入れてるかな…
0860nobodyさん2011/11/24(木) 14:57:50.20ID:oV1VI/p5
今JAVAのソースのPHPへの変換作業を行っています。

final int yOffset = -1942;
final int mOffset = 65;

Date date = new Date(System.currentTimeMillis());
Calendar cal = Calendar.getInstance();
cal.setTime(date);
int y = cal.get(Calendar.YEAR);
int m = cal.get(Calendar.MONTH);
char yc = (char)(y + yOffset);
char mc = (char)(m + mOffset);

以上JAVAのソースです。
これをPHPで同じことをしたいのですが最後の二行のキャストでの
数字→アルファベットへの文字変換をどうしたらよいのかわかりません。
よろしくお答え願います(T_T)
0861nobodyさん2011/11/24(木) 15:07:43.50ID:???
型無しのPHPにそんなのを期待されても・・・
0862nobodyさん2011/11/24(木) 15:46:54.67ID:???
chrだな
アルファベットじゃねーけど。
08638602011/11/24(木) 16:00:19.02ID:oV1VI/p5
PHPだと同じことはできないんでしょうか?
すみません初心者なもので何ができないかの判断もつけがたいです
08648602011/11/24(木) 16:11:49.75ID:oV1VI/p5
chrを使ってみろということですね。
ありがとうございます。試してみます
0865nobodyさん2011/11/24(木) 16:14:27.92ID:???
たとえば2000年なら58になるから文字は :
Calendar.MONTHは 0-11だから65足した文字コードなんで
AからL
08668602011/11/24(木) 16:41:25.32ID:oV1VI/p5
できました!ありがとうございました。
08678602011/11/24(木) 16:57:51.46ID:oV1VI/p5
すみません。もう一個質問お願いします

またJAVA→PHPの変換作業なんですが、
getBytes("Shift-jis")というのをPHPでどうやったら表せますか?
0868nobodyさん2011/11/24(木) 16:59:32.38ID:???
さてはマニュアルを読む気ないな!
0869nobodyさん2011/11/24(木) 17:01:48.81ID:???
お前ら俺の質問にも答えろよ
わからないんだったらちゃんとわかりませんって額に地面こすりつけて謝れ
0870nobodyさん2011/11/24(木) 17:13:33.03ID:???
お前の質問どこだよw
0871nobodyさん2011/11/24(木) 17:27:29.89ID:???
http://my.chiebukuro.yahoo.co.jp/my/drdamaga
一部で有名な最近暴れているPHP教えて君&お礼や返信なしで質問連続立て&逆ギレ。
確認できているだけでもPHPPro,OKWave,Yahoo知恵袋の大手で暴れている。
0872nobodyさん2011/11/24(木) 17:34:25.15ID:???
unpack("C*",$str);だな。
文字コードは必要ならshift-jisに変換後な
08738602011/11/24(木) 17:56:52.94ID:oV1VI/p5
お返事ありがとうございます。
mb_convert_encodingでエンコードしてから
unpack("C*",$str);でいけました!
助かりました(^o^)
0874nobodyさん2011/11/24(木) 22:00:13.17ID:SvbOG3Rx
配列中に存在する値を出現回数によってソートするにはどのようにすればいいのでしょうか?
sort()関数だけでは、あいうえお順になるだけで、その他の関数で上記のようなものを見つけられませんでした
0875nobodyさん2011/11/24(木) 22:13:38.12ID:???
array_count_valuesとかで
0876nobodyさん2011/11/24(木) 22:14:35.70ID:???
そんな都合のいい関数はないので自分で作るしか無い
計算量はかなり膨れると思う
0877nobodyさん2011/11/24(木) 22:49:20.59ID:SvbOG3Rx
そうですか・・・
>>875さんの教えてくれた関数も駆使して自分で作らないといけないようですね
以前JavaScriptでにたようなのがあったような気がするのですが・・・
作り方をど忘れしてしまいました

今ざっと考えてみたのですが難しいですね
ちっとも作り方のアイデアが浮かんで来ません
array_count_values()を使うと出現回数は求められるようですが、
それを単純にsort()すると数字だけのソートになりますし
0878nobodyさん2011/11/24(木) 22:57:50.34ID:???
>>877
その為の関数が array_multisort()
http://php.net/manual/ja/function.array-multisort.php#example-4383

<?php
$list = array('1unko', '2chinko', '3manko', '2chinko', '3manko', '2chinko');
$weights = array_count_values($list);
$sort_keys = array_map(function ($v) use ($weights) { return $weights[$v]; }, $list);
array_multisort($sort_keys, SORT_DESC, SORT_NUMERIC, $list);
var_dump($list);
0879nobodyさん2011/11/24(木) 23:04:35.59ID:Ed0cMJSk
$str = 'あいうえおかきくけこさしすせそ';
「お」と「か」の間に'<br>'を挿入したいのですがどうしたらいいですか?
0880nobodyさん2011/11/24(木) 23:06:00.39ID:SvbOG3Rx
>>878
おぉぉぉ!
ありがとうございます
今、array_count_values() -> arsort() のような事を試していました
listの値はともかくとして(笑)、教えていただき本当にありがとうございました

■ このスレッドは過去ログ倉庫に格納されています