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

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

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2006/02/24(金) 22:05:48ID:YHkZgU8b
PHPに関するくだらねぇ質問用スレです。 
ここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。 

まず読め【PHP マニュアル】 
http://www.php.net/manual/ja/

本スレ【PHP】質問スレッドpart33【php】
http://pc8.2ch.net/test/read.cgi/php/1140027592/l50

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

過去スレは>>2
0610nobodyさん2006/03/09(木) 01:21:00ID:???
>>608
推奨じゃないから
0611nobodyさん2006/03/09(木) 01:21:30ID:???
>>607=>>605
0612nobodyさん2006/03/09(木) 01:28:38ID:???
>>607=ツンデレ
0613nobodyさん2006/03/09(木) 01:32:41ID:SHZr9acF
PEARについて詳しくかかれた本ってあります?
オンラインものじゃなくて、本があったほうがうれしいんで・・・
0614nobodyさん2006/03/09(木) 01:35:37ID:???
>>613
PHP関連の書籍(但しPHP出版系お断り)第2版
http://pc8.2ch.net/test/read.cgi/php/1117066073/

参考書籍推薦スレッド
http://pc8.2ch.net/test/read.cgi/php/1014836425/
0615nobodyさん2006/03/09(木) 01:46:10ID:???
PEARって便利なんだなあ
うふひひふ
0616nobodyさん2006/03/09(木) 02:02:35ID:???
http://pc8.2ch.net/test/read.cgi/php/1140786348/
これをparse_urlで分解するとpath には/test/read.cgi/php/1140786348/が戻されますが、
真ん中の「php」の部分だけを戻したいときはどうしたらいいでしょう。
0617nobodyさん2006/03/09(木) 02:07:54ID:???
>>616
○投げスレではない。
あとIDだして質問しろ
0618nobodyさん2006/03/09(木) 02:11:01ID:???
617 名前:nobodyさん[sage] 投稿日:2006/03/09(木) 02:07:54 ID:???
>>616
○投げスレではない。
あとIDだして質問しろ
0619nobodyさん2006/03/09(木) 02:12:32ID:???
俺も前丸投げスレじゃないって言われたんだけどどういう意味なの?自治したいだけなの?
0620nobodyさん2006/03/09(木) 02:16:29ID:???
>>619
質問スレの自治厨なんて質問に答えられない奴に決まってんだろw
06216172006/03/09(木) 02:19:26ID:???
>>619-620
死ねよバカども
頭悪いくせに2chくるなよwwww氏ね。逝け。クズが。
0622nobodyさん2006/03/09(木) 02:50:21ID:dcUpKQFS
コールバック関数に引数を渡したいのですが、
どうやれば良いでしょうか?
0623nobodyさん2006/03/09(木) 03:07:54ID:???
無理
0624nobodyさん2006/03/09(木) 03:17:09ID:???
>>616
"/"でsplitして、ゴニョゴニョする

というかその条件だけだとどういう方法がベストか分からないかも
0625nobodyさん2006/03/09(木) 04:07:23ID:???
>>622
カプセル化したのをグローバルに使えば?
0626nobodyさん2006/03/09(木) 07:59:21ID:???
>>561
ちゃんとNoticeが表示されるよ
みんなNotice消してるのかな
0627nobodyさん2006/03/09(木) 08:10:27ID:???
php.ini の デフォルトではNoticeも表示されるだろ
消す意味あるの?

たまに配布されているphpスクリプトでもNoticeエラーでまくることあるけど、
エラーは全て表示でコーディングした方がいいよ

0628nobodyさん2006/03/09(木) 09:49:04ID:???
Noticeなんて表示させなきゃ問題ないじゃん
出ても動くんだからさ
0629nobodyさん2006/03/09(木) 09:59:37ID:???
>>628
Warningだって止まりはしないので、表示させなければ問題なしですか。
0630nobodyさん2006/03/09(木) 10:02:23ID:???
Errorだって無視すれば・・・
0631nobodyさん2006/03/09(木) 10:18:29ID:???
>>627
「最近の」デフォルトな。以前はデフォルトじゃなかった。
昨今のPHPブームでNotice出しとかなきゃミスコーディングするやつが続出したんだろ。
PHPなんて本来お手軽に作れるからこそ価値あるものだし、元々の言語構造的に
厳密にコーディングしたところでかなり無駄なんだからわざわざ出すもんじゃないんだがな>Notice
06326272006/03/09(木) 12:23:00ID:???
>>631
そうか?
一般の他の言語なら動けばいいだけだ。
しかし、phpはWebプログラミング用の言語であり、他言語との連携も重視されている。
言語構造的に正しくコーディングすることはセキュリティホールの発生確率を下げることになる。

以前はデフォルトじゃなかった、というが、以前はGETで送信されてきた「hoge」が、$hoge にそのまま入っていたよね。
そして、Noticeエラーも出ないから変数の初期化忘れても気が付かないわけだ。
その2つが組み合わされたら即大変危険なセキュリティホールの完成だったじゃないか。
0633nobodyさん2006/03/09(木) 12:29:30ID:???
noticeの意味考えろや
せいぜい「通知」
気になる人は治しとけってだけ
0634nobodyさん2006/03/09(木) 12:36:57ID:???
>>633
へぇー
変数の初期化をしないことは普通の言語では重大なエラーに相当するんだけどね

おまいさんは、Apacheのログの Notice 全部記録されなくて困らないの?

プログラミング言語を考える時に、もとの単語の意味なんて気にしちゃ駄目。
0635nobodyさん2006/03/09(木) 12:44:57ID:???
ま、下らん煽りあいはやめとけ。
どっちが穴を防げるかっつったら議論の余地も無いだろ。
0636nobodyさん2006/03/09(木) 12:56:51ID:???
>>632
register_globalsがOFFになったのは随分前の話。これは本当にセキュリティホール。
NoticeがデフォルトONになったのはつい先日の話。これはへたくそプログラマが増えたせい。
0637nobodyさん2006/03/09(木) 13:47:54ID:???
言語なんてただの手段。
堅牢なプログラムが必要なら堅牢な組み方しろよ。言語関係なく。
0638nobodyさん2006/03/09(木) 14:06:11ID:???
E_STRICTを付けるか、display_errors = Offかのどっちかだろ。
0639nobodyさん2006/03/09(木) 14:19:09ID:31uVLi9S
HTTP_RequestでaddPostDataやsendRequestを使ってPOST送信するとサーバー側のIPからPOSTされたことになりますよね?
それを使用者のIPでPOSTするにはどうすればいいんでしょうか?
0640nobodyさん2006/03/09(木) 14:31:41ID:???
使用者というかクライアントだろ。
<FORM>タグでフォームを用意して、ユーザーにSUBMITボタンおしてもらう。
PHP使わbネくてもできるb諱B
0641nobodybウん2006/03/09(木) 14:35:46ID:31uVLi9S
>>640
それじゃあやりたいことができないんですよ・・・
0642nobodyさん2006/03/09(木) 14:36:00ID:X3uNYaoU
こんにちわ。PHPで引数を送りたいのですが、
現在file_get_contents("hoge.php?id=35")でやっています。
しかし、いちいちファイルを読み込む為時間がかかります。
引数だけ送ってファイルを読み込みたくない場合はどうすればよい
でしょうか。
0643nobodyさん2006/03/09(木) 14:36:41ID:???
>>642
file_get_contents("hoge.php?id=5");
になおす
0644nobodyさん2006/03/09(木) 14:37:26ID:???
セッションのことがいまいちわからないんですが、
わかりやすく解説しているサイトなどはないでしょうか。
0645nobodyさん2006/03/09(木) 14:37:27ID:???
>>641
POSTの仕組み勉強しなさい。
0646nobodyさん2006/03/09(木) 14:38:33ID:???
>>645
答えられないの?
0647nobodyさん2006/03/09(木) 14:39:52ID:???
>>646
>>645が答え。
車で空飛ぶにはどうしたらいいでしょうといわれても
車とはなにか学べとしか言えん。
0648nobodyさん2006/03/09(木) 14:40:30ID:???
>>646
原理的に無理、と遠まわしに言ってることにも気が付かないか
0649nobodyさん2006/03/09(木) 14:43:24ID:???
悔しくて2連投とかw
0650nobodyさん2006/03/09(木) 14:43:55ID:???
つーか普通にできるけどな
0651nobodyさん2006/03/09(木) 14:45:11ID:???
ヤフオクのストア管理画面とかログインにそれつかってるよな。
当然出る警告がウザイ。
0652nobodyさん2006/03/09(木) 14:46:48ID:???
まあでもPHPの仕事じゃないと思われ。
0653nobodyさん2006/03/09(木) 14:50:03ID:???
HTTP_Request::addHeader()
とか?
0654nobodyさん2006/03/09(木) 14:52:15ID:???
>>652
だな。perlの仕事だ。
0655nobodyさん2006/03/09(木) 14:58:11ID:???
Perlつえーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
0656nobodyさん2006/03/09(木) 15:00:46ID:???
あれだ、Perl本体インストールさせてPOSTするスクリプトダウンロードさせて、実行させるんだろ!
天才だな
0657nobodyさん2006/03/09(木) 15:03:28ID:???
それphpでもできるんじゃね?
0658nobodyさん2006/03/09(木) 15:16:55ID:???
できるけど、面倒すぎてユーザーが拒否すると思う
0659nobodyさん2006/03/09(木) 15:22:24ID:???
>まあでもPHPの仕事じゃないと思われ。
なんの仕事?
0660nobodyさん2006/03/09(木) 15:34:55ID:???
>>659
java
0661nobodyさん2006/03/09(木) 16:15:43ID:???
>>659
TCP/IPスタック
0662nobodyさん2006/03/09(木) 19:38:32ID:???
>>1-661
自作自演乙
0663nobodyさん2006/03/09(木) 20:55:15ID:???
シマンネ
0664nobodyさん2006/03/09(木) 21:03:05ID:???
header()関数で、
header('Server: unknown');
のようにして、サーバ環境を隠蔽しようとしたのですが、うまくいきません。
エラーが出るわけではないのですが、Server: Apache/1.3.34 PHP/5.1.2の
ようにレスポンスが帰ってきます。
header()関数でサーバ環境を隠蔽するにはどのようにすればいいでしょうか。
0665nobodyさん2006/03/09(木) 21:08:01ID:???
>>664
�_
0666nobodyさん2006/03/09(木) 21:10:18ID:???
>>665
miriですかぁ…
それは、PHPではということですか?
0667nobodyさん2006/03/09(木) 21:20:48ID:???
皮先うざすぎ
消えろ
0668nobodyさん2006/03/09(木) 21:23:37ID:???
さいきんの厨房はカルシウム不足で切れやすいというが
それと同じくして無能な人間がふえているのも現状だと言える。
0669nobodyさん2006/03/09(木) 21:25:10ID:???
>>668
自己紹介とかいらんのや
0670nobodyさん2006/03/09(木) 21:36:09ID:???
>>664
ブラウザに「Server: Apache/1.3.34 PHP/5.1.2」なんて情報渡してるんだっけ?
06716642006/03/09(木) 21:39:40ID:???
>>670
はい。firefoxなどのブラウザで見るぶんには意識することはありませんが、
ほとんどのサーバはヘッダ情報として「Server: Apache/1.3.34 PHP/5.1.2」
のような情報を送信します。
0672nobodyさん2006/03/09(木) 21:41:29ID:???
htaccessに
Header Set
06736642006/03/09(木) 21:51:11ID:???
>>672
Apache側の設定をいじるわけですね。
Header Setでググってきます。ありがとうございました。
0674nobodyさん2006/03/09(木) 21:56:26ID:???
>>670
環境変数のSERVER_SOFTWAREのことジャマイカ?
最近の鯖管理者のトレンドとしてはSERVER_SOFTWAREで
全ての情報を出さず、Apacheとだけしている、、ラシイ
0675nobodyさん2006/03/10(金) 00:18:54ID:???
=========================
<?php
/*?>*/
?>
↑これだと問題ない。当たり前だ
=========================
だけど
=========================
<?php
//?>
?>
↑コメント以降は評価しないはずなんじゃないの?
=========================
?>
=========================
って出力されちゃう。
おかしくね?php4.3.11
0676nobodyさん2006/03/10(金) 00:43:28ID:???
>>675
正常。
「//」でそれ以降は評価しない、というのはPHPの命令部の話であって
PHPタグはコメントの評価よりも先に解釈されている。
だから // ?> でのコメント部分は //「 」?> この「〜」部分だけ。

それから
/* ?> */
?>
ってやつのコメント範囲は
/*「 ?> */
?>」
ここまで。(後ろの */ はPHPタグ外なのでHTMLに*/と書かれている状態)
つまり、それはコメントが閉じてない状態になっているため、以降が全部見えてない。
0677nobodyさん2006/03/10(金) 00:49:21ID:???
横槍だけど
print "?>";
print '?>';
は出来るんだね
06786752006/03/10(金) 00:53:31ID:???
>>676
なるほど。
先日ちょっとした手違いでソースが上記のようになりこんな現象を体験したもので不思議に思った次第です。
わざわざこんな風に書く事なんてあり得ないんですが、ひとつ勉強になりました。

もう一つ、最近思い悩んでることがあります。
$a = "moto_a";
$b = "moto_b";
$c = "moto_c";

これらの変数に、文字列"_tuketashi"を加えて(これは何の問題もない)
元の変数名に"_plus"を加えた変数名の新たな変数を、phpの処理で作りたい。
ここのロジックがわかれば元の変数を配列にぶち込んで関数で一気に処理出来たらいいんだけど。

$a = "moto_a_tuketashi";
$b = "moto_b_tuketashi";
$c = "moto_c_tuketashi";

変数名($がついてない)だけを引数で与えて、自作関数でなんとかするとか、evalでどうにかするっていうのは出来たけどいまいちスマートじゃない。
変数「名」を取得して、特定の文字列を付け足した新たな変数を作るという部分で悩んでるんだけど、なんかいい方法はないでしょうか?
0679nobodyさん2006/03/10(金) 01:01:19ID:arwUV0AH
>>672
>>664じゃないけど知りたくなってググったがわからん。後学のために教えてくれ。
0680nobodyさん2006/03/10(金) 01:02:09ID:???
>>678
変数名のセットはともかく「取得」ってのは「どっから??」って思うのでこれはパス。
とりあえずこんな感じでどうか。
foreach(array("a", "b", "c") as $env) {
 ${"{$env}_plus"} = "${$env}_tuketashi";
}
0681nobodyさん2006/03/10(金) 01:12:37ID:???
>>678
俺はHTMLソースを表に出さないようにコメント化して非表示にしたり、
HTMLソースとしては見せたくない内部的なコメントを書くのに<!-- -->を使わず
<html>
<?php /* ここからコメントアウト?>
<div>
</div>
<?php ここまでコメントアウト */?>
とか
<div>
<?php //項目名 ?><span></span>
<table>
みたいなHTMLもたまに使うよ。
0682nobodyさん2006/03/10(金) 01:20:16ID:???
>>679
すぐ検索できたぞ・・
おれもphp関係ないけど興味あったので調べてみた
http://www.heeha.ws/index.php?Apache%B4%D8%B7%B8
はまとまってるんじゃないかな
0683nobodyさん2006/03/10(金) 01:20:56ID:???
>>682
そこにも書いてあるけどapache側で完全に出ないようにしないと意味無いよね・・
0684nobodyさん2006/03/10(金) 01:31:26ID:???
>>682
thx
06856782006/03/10(金) 01:54:26ID:???
>>680
たしかに取得という言い方はちょっと変ですね。
$aという変数があったら、「$a」から「$」をとった部分を文字列として「a」として取り出せないかな。と。
こういうことを言いたかった。

で、ソースの方ですが、なるほど。
こういう感じで$(ドル)重ねちゃうんですね。こんなやり方もあったんだ。
ただ、やっぱり引数に与える文字列は手動で、ってことになっちゃうんですね・・・
それでも最初に配列を作っておけばいいから、かなりすっきりしますね。

受け取った値を表示用に整形して元の値はそのまま残しておきたいってケースが結構あるんです。
それで、元の変数に手を加えて名前をちょっとだけ変えた変数を生成ってやりたいんですよ。
>>681
いただきます
0686nobodyさん2006/03/10(金) 01:57:13ID:JMSIppfw
2日間試行錯誤してみましたがわからなかったので教えていただけると嬉しいです。
「?????」
のようなUnicode10進で書かれた文章を、
「あいうえお」
という形に変換、またはその逆を行いたいのですが、どのように行えば良いのでしょうか。
06876862006/03/10(金) 01:59:35ID:JMSIppfw
すいません。化けてしまいました。

「?????」
↓
「&#12354;&#12356;&#12358;&#12360;&#12362;」

です。
0688nobodyさん2006/03/10(金) 03:10:33ID:???
>>686
まずはUCS-2とUTF-8の関係を調べると良い。
ttp://homepage1.nifty.com/nomenclator/unicode/ucs_utf.htm
ttp://homepage1.nifty.com/nomenclator/unicode/data/hiragana.htm
http://www.unicode.org/charts/PDF/U3040.pdf
0689nobodyさん2006/03/10(金) 03:48:26ID:???
xxxxx.xxxxx.jp

アクセスログでこういうリモートホストがあった場合に、
これが属性JPなのか汎用JPなのか判別するいい方法ありませんか。
リモートホストをドメインでグルーピングしたいんですが。
0690nobodyさん2006/03/10(金) 03:58:00ID:???
>>689
co.jp
or.jp
gr.jp
ac.jp
ed.jp
ne.jp
かどうかで判断すればいいんじゃないのかな・・
これで全部かは知らんけど
0691nobodyさん2006/03/10(金) 04:17:37ID:???
>>689
リモホをドットで区切って後ろから二つ目が2文字なら属性っていうのはどうよ
gTLDじゃないっていう前提が必要だが
06926902006/03/10(金) 04:27:21ID:???
>>689
http://www.nic.ad.jp/ja/dom/basics.html
がまとまってそうだから読んでみれば?
法則自体は難しくないから.jpだけなら比較的簡単に作れるんじゃない
0693nobodyさん2006/03/10(金) 04:40:42ID:???
>>690-692
ありがとうございます
691さんのやり方使おうと思ったんですが、地域型ドメインなんていう厄介なものもあるんですね
検討してみます
0694nobodyさん2006/03/10(金) 05:35:55ID:???
>>693
691の提示しているやり方でなんら問題ない。
http://jprs.jp/info/jp-dom/character.html
06956942006/03/10(金) 05:45:18ID:???
ああ、汎用JPドメインと属性型地域型JPドメインの区別も必要な訳か。
これの区別は難しいと思うよ。
06966942006/03/10(金) 05:48:20ID:???
×属性型地域型JPドメイン
○地域型JPドメイン
ごめん頭回ってない。もう居ぬわ。
0697nobodyさん2006/03/10(金) 06:43:32ID:+ksaxYfx
http://php.s3.to/bbs/emoji.phps

このプログラムを調べています。

$wを何もしなくても0と1の配列に別れていますが、これはどういうことですか?


この定義していないのに配列で扱うというのは、なぜですか?これを配列で定義すると、どうに分けられた答えが返ってきますか?
0698nobodyさん2006/03/10(金) 07:00:47ID:???
>>697
$w = mb_substr($str, $i, 1, "SJIS");
って行で $w が最初に出て来てるじゃん

mb_substr でググルなりしてみなされ
0699nobodyさん2006/03/10(金) 07:04:54ID:+ksaxYfx
いや、そうじゃなくてこの0と1の変数の意味がわかんないんです。。

戻り値は普通そのsubstrされた文字なのはわかるのですが、なぜ配列になっているのかがわからないです。。
0700nobodyさん2006/03/10(金) 07:37:29ID:???
>>697
このユーザ関数の説明みたいなページは無いの?
0701nobodyさん2006/03/10(金) 08:44:51ID:???
>>697
$wがマルチバイト文字(2バイト)だから
$w[0]$w[1]にわけられる
俺はこういう場合は$w{0}を使うけどね
0702nobodyさん2006/03/10(金) 08:48:48ID:???
$w = "abcde";
の文字列に
echo $w[3]; // dが表示
のように配列でアクセスできることの応用かな
ただし文字列に配列でアクセスするときは{ }が推奨されている
0703nobodyさん2006/03/10(金) 10:50:40ID:???
これ
ttp://jp2.php.net/manual/ja/language.types.string.php#language.types.string.substr

散々出ているが、レッツ!のスクリプトは古く、
かつメンテナンスされていない物が多いので
(特に初心者は)あまり参考にすべきではないと思う
0704nobodyさん2006/03/10(金) 11:40:13ID:???
目的はアク禁なら、事前にドメインを持てばおけ。
にちゃんの解除以来板でも見て候補拾えばよろし。

ソース出したくないなら、そもそもphpは向いてないよ。
mixiみたいに設定ミスで流出の危険は常に有る。
アプリケーション鯖みたいにリクエストだけ別に投げて処理するようにしないと。
0705nobodyさん2006/03/10(金) 11:52:24ID:???
波括弧って1文字しかアクセスできないの?
0706nobodyさん2006/03/10(金) 14:56:54ID:???
ttp://php.s3.to/simple/
レッツPHPのbasic認証のパス失敗したらlog残すみたいな
スクリプト配布しているところ知りません?
0707nobodyさん2006/03/10(金) 15:36:33ID:OI9+vMb4
以下のようなソースを a.php として書いたんですが(UTF-8で)

<?
header('Content-type: text/xml; charset=utf-8');
echo('<?xml version="1.0"?>');
echo('<xmldoc><data>1</data></xmldoc>');
?>

以下のようなエラーが出てしまいます。どうしたら回避できますか?
これより前にヘッダなんか送ってなんかないよ〜。
Warning: Cannot modify header information -
headers already sent by (output started at /usr/local/apache2/htdocs/a.php:1) in
/usr/local/apache2/htdocs/yj.php on line 2
1

環境は
Apache/2.0.50 (Unix) PHP/4.4.0
です。

0708nobodyさん2006/03/10(金) 15:41:13ID:???
>>706
板違い

>>707
<? の前に空白文字(改行やスペース)が入ってるだろ
07097072006/03/10(金) 15:49:35ID:OI9+vMb4
>>708
ありがとうございます、入ってませんでした。

>>707にコピペした以外1バイトたりとも余計なものはありません。。
もちろん
<?
が1行目です。
07107072006/03/10(金) 15:50:56ID:???
あああああ。
ソースを shift_jis で保存しなおしたらでけた。
なんでだ。
■ このスレッドは過去ログ倉庫に格納されています