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

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

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2007/01/10(水) 11:20:10ID:???
PHPに関する質問用スレです。ここならお前の下らない質問に回答があるかも知れません。

まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り

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

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

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

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

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ http://pc10.2ch.net/php/subback.html
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで http://pc10.2ch.net/db/subback.html
・速さについては自分でベンチをとってここに書け(違う環境の人も調べてくれるかも)
 しかし初心者が目的も定めずに速度を気にしたところでほとんど意味は無いぞ
0446nobodyさん2007/01/17(水) 04:08:20ID:???
>>445
>>317に相談すればいい。
0447nobodyさん2007/01/17(水) 04:43:36ID:???
ソースも出さない馬鹿は放置汁。
0448nobodyさん2007/01/17(水) 11:26:57ID:???
while (!feof($fp)) {
$buffer = fgets($fp);
echo $buffer;
}

ファイルポインタが次の行に進むタイミングって、fgetsが1行読み込んだ後ですか?
fgetsは1行読み込むと同時にファイルポインタを1行進めるっていう関数でおk?
0449nobodyさん2007/01/17(水) 11:27:29ID:cKV9B/mv
あげ忘れ
0450nobodyさん2007/01/17(水) 11:47:13ID:???
>>448
そうだろう
0451nobodyさん2007/01/17(水) 12:47:54ID:???
ファイルポインタいうな
0452nobodyさん2007/01/17(水) 13:51:46ID:???
ファイルカーソゥ♪
0453nobodyさん2007/01/17(水) 14:05:08ID:???
functionに配列を適応することは出来ないのでしょうか?
例えば
$array=array("あああ","いいい",ううう"");
testFunc("$array");

function testFunc($array){
print_r($array);
}

としても表示されません。。
0454nobodyさん2007/01/17(水) 14:12:49ID:???
>>453
実引数がおかしいぞ。ダブルコーテーションで囲まずやってみそ。
testFunc($array);
0455nobodyさん2007/01/17(水) 14:14:15ID:???
>>454
出来ました!凡ミスだったんですね。。ありがとうございました。
0456nobodyさん2007/01/17(水) 14:22:26ID:???
Arrayって表示されるんかな?それは
0457nobodyさん2007/01/17(水) 14:28:22ID:???
外部変数の$_GETや$_POSTってあるじゃないですか
ちょっとうまくいかないので、質問させてください。

$method = GET;
$method = "_$method";
print_r($$method);

これはprint_r($_GET);と動作は同じです。
通常これで外部変数が取得できます。

しかしメソッドや関数ないで上記を動作させると、
なぜか$_GETの配列を返してくれません。

メソッドや関数内ではprint_r($_GET)で配列を返してくれるため、
理由がわかりません。どうしてなんでしょうか?
0458nobodyさん2007/01/17(水) 14:35:21ID:???
>>457
ソース
0459nobodyさん2007/01/17(水) 14:35:27ID:???
array_searchって最初の値は無視する・・・わけないですよね?

$array=array("りんご","みかん","バナナ");
$array2=array("りんご","みかん");

for($i=0;$i<count($array2);$i++){
if(array_search(,"$array2[$i]",$array)){
echo $array2[$i];
}
}

こんな感じのを作ったのですが、「みかん」しか表示されません。
それで、$array2の中を$array2=array("","りんご","みかん");
としたら「りんご みかん」と表示されます。どこかおかしいのでしょうか?
0460nobodyさん2007/01/17(水) 14:37:52ID:???
ほんとだ、関数内だと出ないんだね
REQUEST使うか素直に分岐したら?
0461nobodyさん2007/01/17(水) 14:41:44ID:???
>>459
1番目の要素が見つかったとき返ってくるキーが0だからじゃね
04624592007/01/17(水) 14:46:11ID:???
>>460-461
とりあえずあまり対策がわからないので、
表示の際は array_unshift($array2,"");
として空の要素を追加するようにしました。
0463nobodyさん2007/01/17(水) 14:51:36ID:???
if(false !== array_search(...
0464nobodyさん2007/01/17(水) 14:52:22ID:???
>>462
そうですか
04654592007/01/17(水) 14:54:15ID:???
>>463
こういう方法があったんですね!大変参考になりました。
こちらを使用します。ありがとうございました。
04664572007/01/17(水) 15:00:31ID:???
>>458

現在こんな感じです

function test () {
$method = GET;
$method = "_$method";
echo $method; //文字列"_GET"
print_r($$method); //出力されない
print_r($_GET); //出力される
}
test();

$method = GET;
$method = "_$method";
print_r($$method); //出力される

echo "<a href=?test=test1>GETの送信</a>";
0467nobodyさん2007/01/17(水) 16:09:30ID:???
>>457
なんでそんなトリッキーなことしてるのかが分からん。
しかもGETは定数扱い(定数定義してないから文字列として扱われるけど)だし。
0468nobodyさん2007/01/17(水) 16:12:03ID:???
初心者ほど色々試したくなるんだろう。
仕事でこんなんやってたらぶっ叩くわw
04694572007/01/17(水) 16:51:21ID:???
>>467
>>468

GETとPOST入れ替えるだけで、
外部変数が取得できると楽かなと
思っていたのもので・・・

>>460

REQUEST試してみたんですが、なんか変な
文字列が配列に入ってるので、
おっしゃるとおり、GETとPOST分岐してみます。

ありがとうございました。
0470nobodyさん2007/01/17(水) 16:53:14ID:???
言っておくが、この板で質問している全員が
職業プログラマというわけではないからな。
0471nobodyさん2007/01/17(水) 16:56:47ID:???
つーか「PHPが仕事」なんて、声を大にして言いたくないよね。
0472nobodyさん2007/01/17(水) 17:14:41ID:???
foreach内でin_arrayしたいのですが
foreach($hoge as $key=>$var) {
if(in_array($var, $hoge)) 処理;
}
とすると全てクエリがtrueになってしまいます。
foreach内で1つの要素をとるにはどうしたらいいでしょうか?
0473nobodyさん2007/01/17(水) 17:22:31ID:???
>>471
人の仕事を馬鹿にするような人間には言われたくないよね
0474nobodyさん2007/01/17(水) 17:24:48ID:???
>>471
つーか、PHPとかCとか言語にこだわっている時点で...ry
0475nobodyさん2007/01/17(水) 17:28:16ID:???
PHP"も"扱えてなんぼだろ
0476nobodyさん2007/01/17(水) 17:30:33ID:???
>>472
そりゃあ配列から取り出した値がその配列に存在するのは当たり前だ
何がしたいん?
0477nobodyさん2007/01/17(水) 17:35:24ID:???
>>476
あっ!!…そうか…
配列に同じ数が1つ以上入っていないチェックしたいのです
0478nobodyさん2007/01/17(水) 17:41:35ID:???
>>477
in_array

マニュアルの関数一覧か逆引きとかを買う事をオススメする。
0479nobodyさん2007/01/17(水) 17:44:18ID:???
array_count_values
とかもいいかもね
0480nobodyさん2007/01/17(水) 17:45:38ID:???
>>471
煽ってやるからどんな言語だと声を大にできるのか言ってみ
0481nobodyさん2007/01/17(水) 17:59:34ID:???
>>480
このスレを見ている人はこんなスレも見ています。(ver 0.20)
SOHOとかフリーとかで細々食えだした奴 十九人目 [Web制作]
Ads by Goooooogle Part73 [Web収入]
疲れた管理人の憩いの場 23 [同人]
Ads by Goooooogle Part72 [Web収入]
組み込みプログラマーこそ真の一流!その4 [プログラマー]

>>471は、「組み込みプログラマーこそ真の一流」と言いたいんだろ。プッw
04824712007/01/17(水) 18:09:26ID:???
どんだけ痛々しい反応だよ・・・もうちょっと自分の仕事に自信持てよ。
0483軟式PHP2007/01/17(水) 18:19:26ID:???
どこが痛々しいのか俺には分からん。別にPHPを絶賛してるわけでもないし。
まぁ、言語論争は他でやってくださいな。
仕事で使ってる人はPHPは手軽にWebアプリを作れる一言語でしかないわけですので。
0484nobodyさん2007/01/17(水) 18:23:09ID:???
「PHPも仕事」だろ。
だいたいPHPを生業としてるものは、
他の言語もできて当たり前。
0485nobodyさん2007/01/17(水) 18:43:08ID:???
PHPで符号無視(0埋め)右シフトって無理でしょうか?
Javascriptで言うところの >>> が使いたいんです。
0486nobodyさん2007/01/17(水) 19:38:50ID:???
PHPは符号無し整数をサポートしていないので無理。
どうしてもMSBを使わなきゃならないなら、工夫汁。
0487nobodyさん2007/01/17(水) 19:46:10ID:???
>>477
チェックしてどうしたいかにもよるな
重複を取り除きたいならarray_unique()でいいし
0488nobodyさん2007/01/17(水) 21:28:42ID:???
$time_start = microtime(true);
処理
$time_end = microtime(true);
$time = $time_end - $time_start;

この経過時間を計る処理なんですが、
結果で4.6014785766602E-05って、このE-05とかE-06はなんなんでしょうか?
早いのか遅いのかさっぱーり分かりません。。。
0489nobodyさん2007/01/17(水) 21:35:21ID:???
>>488
浮動小数点表記。
0490nobodyさん2007/01/17(水) 21:46:45ID:???
今までは編集画面に値を渡す時など
<a href="edit.php?id=<?=$id?>">編集する</a>

のリンクから次のページに値を渡し、echo $idなどで表示していたのですが、
違うサーバで試した時、それでは動きませんでした。

それで後に次ぎページで表示する際はecho $_REQUEST["id"]としないと
URL上の変数を表示出来ないみたいなのですが、
これはregist_globalがonになってないからですよね?

また、今後はecho $_REQUEST["id"]という書き方で統一した方が良いのでしょうか?
0491nobodyさん2007/01/17(水) 21:57:54ID:???
regist_global は off が強く推奨されています
0492nobodyさん2007/01/17(水) 22:42:36ID:???
>>490
その場合は$_GET['id']を使用することをお勧めする。
0493nobodyさん2007/01/17(水) 22:57:33ID:???
>>492
わかりました。サーバを変更して初めて気づいたので
早速、プログラムのソース内全部書き替えます。

ありがとうございました。
0494nobodyさん2007/01/17(水) 23:19:31ID:I/eWBx8l
浮動小数点てどんなときにつかうんですか?タイマーの精度がintよりもいいってことですか?それとも小数点を使うためにあるのでしょうか?
0495nobodyさん2007/01/17(水) 23:33:02ID:gVMvFP3J
PHPでOOPできない奴いるの?
0496nobodyさん2007/01/17(水) 23:36:59ID:???
>>494
一般論で言えば理系の演算で用いられる極端に小さい数値や極端に巨大な数値を表現するためにある。
小数点を表現するだけなら浮動小数点以外にも固定小数点という仕組みも世の中には存在する。
固定小数点では誤差という問題が発生しないが浮動小数点では常に誤差の問題に悩まされる。
COBOLなどの事務計算向け言語では固定小数点方式が用いられている。

しかしPHPには浮動小数点以外に小数点を表現する仕組みは標準では用意されていないので
浮動小数点=小数点を使うためにある、という理解でOK。
0497nobodyさん2007/01/17(水) 23:37:35ID:???
>>495
そりゃいるだろ。
OOP専用の言語じゃないんだし。
0498nobodyさん2007/01/17(水) 23:39:37ID:gVMvFP3J
>>497
そしたら、フレームワーク使えなくね?
0499nobodyさん2007/01/17(水) 23:50:02ID:???
>>495
ページをパーツ毎に分離してincludeしてPHPってスゲーって使ってる奴もいるからな
0500nobodyさん2007/01/17(水) 23:53:25ID:???
>>498
自分がプログラムを始めた頃を思い出してみれ。
OOPもFWも言葉すら知らなかっただろ?
0501nobodyさん2007/01/17(水) 23:54:22ID:???
>>499          ____
             , -‐.:.:.:.:.:.:.:.:.:.:.:.:‐- 、
             /:.:..:.:.:.:.:.:.:.:.:.:.ヽ、:.:.:.:.:.ヽ
            /.:.:,r─-----─¬尸:.:.:.:.:.:l
         /.:.:/{-─、    _,─-尸:.:.:. ||
          | i{             |!:.:.:.:.::|:.| えっ、phpてそれ以上にスゲー事できんの!?!
          レー|  ◯      ◯ イ:.:/.:/.:|rァ
          { ハ! ' '        ' ' 'ノイィ介//')
         ト、j|   r‐--─‐、   に'// /
          ノ:ハ:.ヽ、 |/ ̄ ̄ }   /-イ/ 厶
      / ̄ ̄ `ヽ:.:.\───' イ川:/  { /
      /      \父_ー-‐ '´ /ノ.:.:/  | !
     / ヽ      〉 \   厶‐、/   lノ
    厂   \    /  {⌒>'´ ヽ\ イ
  /      \,-┴‐n<      \ヾ |
05024852007/01/17(水) 23:56:35ID:???
>>486 回答Thanks!
やっぱり無理なのか・・・頭が痛いです
他の言語を使うことを検討した方がいいのかなぁ
0503nobodyさん2007/01/18(木) 00:18:53ID:u+PvmfUj
公式マニュアルを紙で欲しいのですが、
販売している所などございましたら教えていただけないでしょうか?
0504nobodyさん2007/01/18(木) 00:34:58ID:???
>>503
PHPの公式マニュアル
http://www.php.net/manual/ja/
↑これと同じ内容の本は売ってないと思いますが、上記サイトのページを全部印刷したらいいんじゃないでしょうか?
全部印刷したら何ページくらいになるんだろう?

http://www.phppro.jp/phpmanual/
↑こんなサイトもありました。
PHPプロに頼んで本を出してもらえないですかね?
0505nobodyさん2007/01/18(木) 00:36:44ID:???
>>502
符号無し右シフト自体はできなくても、全く同じ答を出すことはできるよ。
0506nobodyさん2007/01/18(木) 01:07:25ID:???
最新情報が掲載されてるのが利点なのに製本なんて
0507nobodyさん2007/01/18(木) 01:07:52ID:???
>>498
PHPはOOP専用じゃないしフレームワーク専用でもない。
0508nobodyさん2007/01/18(木) 01:12:03ID:???
>>503
PHPのマニュアルは結構な頻度で更新してるから
できる限り紙媒体でなく本家を見るようにした方がいいよ。
05095032007/01/18(木) 01:28:20ID:???
レスありがとうございます _ _
>>504
それも考えたのですが、製本作業をしないと見づらそうなので。
>>506>>508
一度読み通すために紙媒体が欲しくて。。
無いようなので、製本サービスに依頼するか、電子ペーパーブックを検討してみようと思います。

ありがとうございました。
0510ふ2007/01/18(木) 01:42:54ID:QmQzu1gN
http://lucky.e-want.com/?kid=Syo8487861
0511nobodyさん2007/01/18(木) 02:32:01ID:???
PHPに慣れたいんじゃなくて、本家マニュアルの内容を一度に読む行為そのものが目的なのか?
0512nobodyさん2007/01/18(木) 02:43:03ID:???
リファレンスマニュアルを頭から全部読んでざっと機能を把握するのは基本中の基本のはずだが。
0513nobodyさん2007/01/18(木) 03:11:54ID:???
きっと山篭りで修行するんだろ。
インターネットが使えないから、仕方なく製本したいんだ。
0514nobodyさん 2007/01/18(木) 03:17:34ID:dfwRUKzs
IIS6.0(WindowsServer2003),MySQL

ASPとMySQLを連携させて、既にHPを作っています。
さらに機能を拡張させるため、PHPを導入しようと思いまして、
設定でISAPIフィルタに「php5isapi.dll」を読み込ませたのですが
それをすると元のHPが表示されなくなってしまいます。
原因が分かる方いましたら、よろしくお願いします。
0515nobodyさん2007/01/18(木) 03:24:14ID:???
>>512
プログラミングでそういう基本はあんまり聞いた事が…
書いて覚えろよ
0516nobodyさん2007/01/18(木) 03:37:41ID:???
>>515
そんなことしてたら言語の特徴やら機能の全体像を把握できない。
歯抜けの断片的な知識なんかより、2〜3日かけてリファレンスを
熟読して全体像を把握した方が断然早いし楽。

…素人さんなら別だけどね
0517nobodyさん2007/01/18(木) 03:38:04ID:???
PHPはやたら標準装備の関数が多いのと、
同じ機能で複数のI/Fの関数があったりするんで
リファレンス全体に1度目を通しておくのは確かに基本。
書いて覚えようとすると知識が偏る。
0518nobodyさん2007/01/18(木) 03:41:27ID:???
他の言語経験者で紙に印刷して2、3日ってえらい奇特だな
0519nobodyさん2007/01/18(木) 03:42:41ID:???
素人さんじゃない人は何さんなの?
0520nobodyさん2007/01/18(木) 03:56:17ID:???
>>503の質問のレベルからしたらおそらくプログラミング初心者だろ
いきなりリファレンス通読はやめといたほうがいいんじゃ
0521nobodyさん2007/01/18(木) 05:00:35ID:???
初心者ならマニュアルじゃなくてチュートリアル系から始めろっちゅーとりある
0522nobodyさん2007/01/18(木) 07:03:33ID:???
むしろ初心者は、
PHP4とふるいけど、基礎的なことはわかるから、
ttp://www.net-newbie.com/support/pdf2/
これでも読んどけと。
まぁ今となってはあまり書かない書きかたしてたりするんで、
マニュアルとあわせて読むと効果的。
0523nobodyさん2007/01/18(木) 10:49:38ID:Ra9i1bGq
カレントURL(現在のURL)を取得して そのURLがhttpかhttpsかで条件分岐
したいんですが どうやってカレントURLを取得したらいいのかがわかりません
(PHP4.3.2)

何か良い方法をご存知の方 ご教授いただけると幸いです
0524nobodyさん2007/01/18(木) 11:55:14ID:???
>>515
PHPとASPは相性悪いよ
05254572007/01/18(木) 12:00:47ID:???
POSTってフォームのsubmitボタンを使わなければ、
送信できないんでしょうか?
GET見たいにリンク形式では不可能ですか?
0526nobodyさん2007/01/18(木) 12:07:33ID:???
それはGETだ
0527nobodyさん2007/01/18(木) 12:08:35ID:???
フレームワーク、smartyをまったく使ったことのないけど、
それらを使うプロジェクトで即戦力になるかな
0528nobodyさん2007/01/18(木) 12:10:14ID:???
>>525
PHPとは全く関係ないけど、JavaScriptで可能。
05294572007/01/18(木) 12:13:30ID:???
>>528
ありがとうございます
0530nobodyさん2007/01/18(木) 12:17:26ID:???
>>523
$_SERVERの中身に全部入ってるよ
0531nobodyさん2007/01/18(木) 12:53:31ID:???
hoge.comというサーバで、
http://hoge.com/a/b/c/d.html
というリクエストあったら、
hoge.com/index.php
実行して、「a/b/c/d.html」は変数として受け取りたいんだけど、
そういうことはPHPだけでは不可能ですか。
やっぱりサーバ設定しないとだめですよね。
サーバはindex.htmlと、index.phpを自動的に表示するようになってる。
0532nobodyさん2007/01/18(木) 12:59:49ID:???
>>523
同じような質問
ttp://oshiete1.goo.ne.jp/kotaeru.php3?q=1418972
http, https の $_SERVER を見比べて判別するしかないんじゃね?
0533nobodyさん2007/01/18(木) 13:03:02ID:???
>>531
普通にできるんじゃね?
$SERVER['PATH_INFO']とか
0534nobodyさん2007/01/18(木) 13:16:17ID:???
>>533
できないよ。普通に404not found。
http://example.com/index.php/a/b/c/d.html
ならできるけど。
>>531
mod_rewrite
0535nobodyさん2007/01/18(木) 13:24:35ID:???
配列操作の質問なのですが、
$arr['d']='a';
$arr['c']='b';
$arr['b']='c';
$arr['a']='d';
とあったとして、ループを $arr['b'] からはじめたいのですが、
どうやったら効率がよいでしょうか。
current($arr); とか each($arr); だと先頭の $arr['d'] の値を返して、
配列カーソルを1つ勧めるわけですが、一気に $arr['b'] から始めたいのです。
キーが 'b' だということはわかっているので。

php だとキーが数字じゃなくても、実際順番はあるわけで、
$arr['b'] のポインタは 2、 みたいなかんじで取得できてもおかしくないとは思うのですが、どうにも見つからないもので。
0536nobodyさん2007/01/18(木) 13:25:50ID:???
追記:本当のキーは 'b' → 'a' のような規則性があるわけではありません。一応。
0537nobodyさん2007/01/18(木) 14:01:26ID:???
smartyの
section内で$hoge[$foo]みたいなことしたいのですが、どのようにやれば出来ますでしょうか?

{section name="val" loop=$data}
 {$hoge.$foo[val].name}
{/section}
でできませんでした…
0538nobodyさん2007/01/18(木) 14:27:03ID:???
スマートリーなるほどを話は専門スレッドへどうぞ。なるべく専門スレを活性化させてください
0539nobodyさん2007/01/18(木) 15:08:23ID:???
お、便利だなそれww
phpをhtmlとして表示とか、できそうだねw
偽装しまくろぅwww
0540nobodyさん2007/01/18(木) 15:10:16ID:???
オートログインサイトを自鯖に作りたいと思っています。例えば

ヤフーオークション  ID / Pass   【ボタン】
楽天           ID / Pass   【ボタン】
イトレード証券     ID / Pass   【ボタン】

のようなフォームを作り【ボタン】を押すと、新たなブラウザ(タブ)が開き
Yahooオークションのページへ進み、IDとPassが自動で入力され、ログイン後の画面に進む

このようなスクリプトをこしらえたいのですが、どういうロジックで進めばいいか悩んでいます
fopenでYahooオークションのURLをひっぱり、ソースにIDとPass情報を追加させて、HTMLを表示させようとしたのですが無理でした・・・
皆様のご意見お願いします
0541nobodyさん2007/01/18(木) 15:23:17ID:???
>>540
多分、無理
0542nobodyさん2007/01/18(木) 15:27:00ID:???
>>540
フィッシング サイト?
0543nobodyさん2007/01/18(木) 15:30:53ID:???
>>542
自分用です
実際、IDとPassはDBにMD5で格納してそれを呼び出す感じですが
どうにも既存サイトのIDとPass入力を自動化させるスクリプトが思いつかないのです
05445232007/01/18(木) 15:31:09ID:Ra9i1bGq
>>530
>>532
ご回答ありがとうございます
ちょっと予定とは異なりますが リンク元のURLを表す$_SERVER["HTTP_REFERER"]
を用いました
現在のURLではなかったため 結構大変でしたが 何とかできました
ありがとうございました!
0545nobodyさん2007/01/18(木) 16:03:06ID:???
>>537
{$hoge.$foo.val.name}
とかでできんじゃない?
つかったことないけどw
■ このスレッドは過去ログ倉庫に格納されています