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

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

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

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

◆質問する場合の注意
1. 自分のIDを表示させること。(メール欄に何も記述しないでください)
2. サーバーのOS、WebサーバーとPHPの種類やバージョン等を明記すること。
3. 己の行った操作、変更などを詳しく明記すること。
4. エラーメッセージはそのまま表記すること。「エラーが出ます」では絶対分かりません。
5. 質問者としても態度をわきまえること。
6. 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。

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

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークはそれぞれの該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
・オブジェクト指向については良スレがないから本を買え。理解できないならムリに使うな。
・速さについては自分でベンチをとってここに書け(違う環境の人も調べてくれるかも)
0312nobodyさん2006/10/11(水) 17:35:48ID:???
Location()って何だ…?

http://jp.php.net/manual/ja/function.header.php

movie.php
<?php header("Location: http://example/movie/"; . (date("z")) . ".amc"); ?>

じゃないのか?
0313nobodyさん2006/10/11(水) 17:36:08ID:???
>>310
おばかさんはお前じゃね?
その程度のエラー訳して自己解決しろよ
0314nobodyさん2006/10/11(水) 17:37:14ID:WiH1H+/l
>>313
一行目は余分なんです(´;ω;`)
0315nobodyさん2006/10/11(水) 17:39:50ID:???
>>311
君は、何事にも、もう少し落ち着いたほうが良いと思う。
行動する前に、一拍考える時間を。
0316nobodyさん2006/10/11(水) 17:41:34ID:WiH1H+/l
>>315
…!! これは!!!
吊ってくる。
0317nobodyさん2006/10/11(水) 17:43:48ID:???
>>310 は、ひとことも「おばかさん」なんて書いてないのに
「おばかさんはお前」なんていわれてかわいそう
0318nobodyさん2006/10/11(水) 17:48:37ID:???
ここのスレはいい人ばかりで大好きです。
ありがとう。
0319nobodyさん2006/10/11(水) 17:50:42ID:???
>>285
285は、使ってみる前に、phpマニュアルを読む、ぐぐってサンプルを
拾ってみる。ぐらをはしような。
0320nobodyさん2006/10/11(水) 17:57:48ID:???
>>309
警告メッセージに書かれた文字列から判別するしかないと思う
0321nobodyさん2006/10/11(水) 18:33:31ID:???
>>309
$php_errormsgでぐぐれ
0322nobodyさん2006/10/11(水) 20:25:52ID:???
業務経験のある方に質問したいのですが、
コーティング規約とかによるのかもしれませんが、
PHPにおける、変数名、定数名、クラス名、関数名のつけ方は、
業務ではどのような感じでつけていますか?

頭に大文字、全て小文字、アンダースコアで繋ぐなど。
Hogehoge hogehoge hoge_hoge HogeHoge等・・・
0323nobodyさん2006/10/11(水) 20:36:38ID:???
規約によりますね。

アンダースコアって使うのかなあって感じですが。

個人的にはクラス姪は HogeHoge, instantiateしたのは hogeHogeが好きだけど
03243092006/10/11(水) 20:52:44ID:VRU7wb5k
>>320-321
ううむ、厳しいですね。ありがとうございました。
0325nobodyさん2006/10/11(水) 21:04:51ID:???
ここのスレはいい人ばかりで大好きです。
ありがとう。
0326nobodyさん2006/10/11(水) 21:19:21ID:???
DEFINE_NAME
Namespace_Package_ClassName_Etc
$variable_name or $variableName
$property_name or $propertyName
$_private
functionName()
methodName()
0327nobodyさん2006/10/11(水) 21:58:43ID:???
ipアドレスをgethostbyaddrでホスト名に変換させてるんだけど、
100個くらいになるとかなり時間がかかる。
これを改善する方法は無い?
0328nobodyさん2006/10/11(水) 22:14:40ID:qjuz9ghD
http://script.s16.xrea.com/
の2chbbsのスクリプトを携帯用のDOCOMOのutn取得改造しようと思い
http://script.s16.xrea.com/2ch/test/read.php/php/1048578946/193-292
の257−260どうりにやったら263の人と同じく
【ERROR:末端情報を送信してください】
になりました
これどうしたらいいですか?
サポ番で教えてくれないんで・・・
0329nobodyさん2006/10/11(水) 22:15:20ID:???
DNSだっけ?
それにホスト名はとりにいってるからね
0330nobodyさん2006/10/11(水) 22:31:58ID:???
ここのスレはいい人ばかりで大好きです。
ありがとう。
0331nobodyさん2006/10/11(水) 22:42:01ID:???
>>328
改造はスレ違い
0332nobodyさん2006/10/11(水) 23:26:06ID:???
>>327
その場でやらずに事前に変換しとくくらいしかないのでは…
それともローカルでDNSサーバー立ててそいつとプライベートで通信すれば
少しは速度向上できるのかな。
0333nobodyさん2006/10/11(水) 23:26:25ID:???
>>328
公式じゃない場合、利用者が送信することを選択しない限り送信されないよ。
03343222006/10/11(水) 23:55:58ID:???
>>323 >>326
どうもありがとうございます。
どのようにつけたらベストなのかわからず迷っていたので、
大変参考になります。ありがとうございます。
0335nobodyさん2006/10/11(水) 23:59:47ID:???
ここのスレはいい人ばかりで大好きです。
ありがとう。
0336nobodyさん2006/10/12(木) 08:06:14ID:???
>>276-277
お前らが嵐に余計な反応するから・・・(涙
0337nobodyさん2006/10/12(木) 08:09:56ID:???
>>276-277とは違う奴だったりしてw
まぁ専ブラでNGワード登録して弾いてるから全く問題なし

むしろ、この人また書き込んでるよ。ご苦労様( ´,_ゝ`)プッ と笑えるなぁ
0338nobodyさん2006/10/12(木) 08:30:21ID:???
ここのスレはいい人ばかりで大好きです。
ありがとう。
0339nobodyさん2006/10/12(木) 09:16:31ID:???
phpスレなのに「人」だと決め付けてしまうあたり、まだまだですね。
0340nobodyさん2006/10/12(木) 09:19:32ID:???
PHP使いは人以下ですか そうですか ありがとう
0341nobodyさん2006/10/12(木) 09:24:12ID:???
なんのこっちゃw
0342nobodyさん2006/10/12(木) 09:27:27ID:???
>>339-340
流れにワロチw
0343nobodyさん2006/10/12(木) 09:41:58ID:???
ApacheのIndexesみたいに
そのフォルダ下のファイルの一覧を表示させるようなPHPスクリプトはありませんか?
0344nobodyさん2006/10/12(木) 09:45:23ID:???
スレ違い
0345nobodyさん2006/10/12(木) 09:57:04ID:???
>>343
そのくらい自分で作りなさいよ。数行で終わるだろ?
0346nobodyさん2006/10/12(木) 16:16:05ID:???
>>343
http://au.php.net/manual/ja/function.opendir.php
このへん使って自分でがんばれ。
0347nobodyさん2006/10/12(木) 16:20:29ID:???
>>346
こっちでもよくね?/ ,' 3  `ヽーっ
http://www.php.net/~helly/php/ext/spl/classFindFile.html
0348nobodyさん2006/10/12(木) 16:30:56ID:???
>>346-347
どこまで真面目に作るかによるけど
簡単なのならこれが1番楽
ttp://www.php.net/manual/ja/function.glob.php
0349nobodyさん2006/10/12(木) 16:41:50ID:???
>>340-341
馬鹿スwwwwwwwwwwwwwwww
0350nobodyさん2006/10/12(木) 21:40:10ID:???
phpスクリプトをWindows上で単体で動作させる(.exe化)ことって出来る??
0351nobodyさん2006/10/12(木) 21:44:11ID:???
出来るよ。
0352nobodyさん2006/10/12(木) 21:50:06ID:???
>>350
http://winbinder.org/index.php
これ使えばできる
一応他にもあった気がするが忘れた
0353nobodyさん2006/10/12(木) 22:30:16ID:???
>>352
横からだが、面白そうだしちょっとそれ使ってみる
0354nobodyさん2006/10/12(木) 23:52:16ID:???
被検索語のランキング表示ができるスクリプトを探しているのですが
どなたかご存知ありませんでしょうか。MT用のプラグインはあるみたい
ですが、単体で使えるものがてんで見つかりません。。。orz
0355nobodyさん2006/10/13(金) 02:00:28ID:???
で、検索にはなにを使ってるんだね?
0356nobodyさん2006/10/13(金) 02:47:41ID:???
ぐーぐる
0357nobodyさん2006/10/13(金) 05:01:25ID:???
最近オブジェクトPHPはじめたのですが、
スタティック変数にするメリットってたとえばどういうときなんでしょうか?

class Hoge {
 public static $a = 1;
}
echo Hoge::$a;

とかくのと、

class Hoge {
public $a = 1;
}
$hoge = new Hoge;
echo $hoge->a;

と書くのでは結果的には一緒ですがどう違うのでしょうか?
0358nobodyさん2006/10/13(金) 05:39:40ID:???
>>357
$hoge1 = new Hoge;
Hoge::$a = 100;
$hoge2 = new Hoge;
$hoge2->a = 2;
Hoge::$a = 200;

echo $hoge1->a; // 1
echo $hoge2->a; // 2
echo Hoge::a; // 200

インスタンス変数はインスタンスごとにそれぞれの値を与えたい場合に使う。
スタティック変数はインスタンスによらず、クラス全体で共通の値を与えたい場合に使う。
余談だけど、クラス内の変数はなるべくprivateにしような。
0359nobodyさん2006/10/13(金) 06:01:48ID:???
>>358
おーわかりやすい説明ありがとうございます。
これでひとつまた賢くなりました。
メンバ変数はprivateがよいのですね?了解しました!
早朝にわざわざレスありがとうございましたm(__)m
0360nobodyさん2006/10/13(金) 09:18:45ID:???
>>353
レポよろ
0361nobodyさん2006/10/13(金) 10:49:27ID:???
ここのスレはいい人ばかりで大好きです。
ありがとう。
0362nobodyさん2006/10/13(金) 11:21:08ID:7vpqtGwf
よく携帯サイトなどで見かけるのですが
mailtoを利用して空メールをさせて
折り返しに登録メールや案内メールを送るのがありますが
これは何かメールサーバみたいなものやサーバの設定が必要だと思うのですが
そういったものを用意せずに
mailtoを利用した感じのものでメアド取得は出来ませんでしょうか?


0363nobodyさん2006/10/13(金) 11:46:12ID:???
フォームからGETで配列を渡すのどうすればいいんでしょうか?
postなら分かったのですが。
0364nobodyさん2006/10/13(金) 11:58:35ID:???
>>363
おなじ
0365nobodyさん2006/10/13(金) 12:23:56ID:???
>>362
スレ違い。
しかもメールを送られた時の処理なのに、メールサーバの設定をせずに潜り抜ける意味がわからない。
そういうのは普通/etc/aliasesか.forwardから適当にスクリプトを起動する。
0366nobodyさん2006/10/13(金) 12:28:57ID:???
POP見に行くPHPでも実現は出来るけどね
0367nobodyさん2006/10/13(金) 13:27:29ID:???
くだらない質問で恐縮なのですが、
swfにxmlを読み込ませる場合、セキュリティの都合上
自ドメインのxmlしか読み込めないらしいのですが
他ドメインのxmlを自サイトのファイルにインクルード
して読み込ませることは出来ますか
0368nobodyさん2006/10/13(金) 13:43:17ID:???
>>362
通常は受信メール毎にスクリプトを自動実行させるように
sendmail等のサーバー設定を行って組むんだが、
受信BOXのメールを定期的に動かしたスクリプトでPOP受信すれば
若干のタイムラグは発生するが同様のことはできるよ。
0369nobodyさん2006/10/13(金) 13:44:38ID:???
>>367
自分で答え書いてる
後は試すだけ
0370nobodyさん2006/10/13(金) 13:53:31ID:wYHWwd6x
プロバイダの関係かなにかで、メーラーの送信ポートを587にしろとメールがきました。
もちろん、メーラーの設定は変えたのですが、
Mac OSXを確認用サーバーに使用しており、phpからのメール送信ができなくなってしまいました。
特にエラーはでないのですが、送信されない状況です。

とりあえず、php.iniの設定で、
smtp_port=の部分を587にしてみましたが、ダメでした。

何か解決策がありましたら、教えてもらえると有り難いです。
0371nobodyさん2006/10/13(金) 14:02:41ID:???
>>370
まずはそのプロバイダから来たメールを張りつけろ。
話はそれからだ。
0372nobodyさん2006/10/13(金) 14:08:35ID:???
Message Submission?
0373nobodyさん2006/10/13(金) 14:33:47ID:wYHWwd6x
>>371
メールのほうは捨ててしまったのですが、恐らく↓の影響かと思います。

ttp://www.plala.or.jp/access/community/mailplus/smtp_auth.html
0374nobodyさん2006/10/13(金) 14:45:50ID:???
>>373
smtp認証はしゃべれないはず。
fsockopenでプロトコル手書きするか何か別の手を使うしかないと思う。
0375nobodyさん2006/10/13(金) 14:58:01ID:???
phpmailerとか
0376nobodyさん2006/10/13(金) 15:12:22ID:???
ここのスレはいい人ばかりで大好きです。
ありがとう。
0377nobodyさん2006/10/13(金) 17:10:43ID:0s8cJuHn
PHPに限った事ではないんですが、SQLiteとかのデータベースを使う利点を教えてください。
例に出ていたのですが、たとえば図書館の本検索システム。
これはデータベースでやってるところが大多数らしいのですが、データベースを使わずにやっても出来ると思うのですが、どうなのでしょうか?
件数が30万件とかものすごく多くなると速度に差がでてくるのでしょうか?
それともサーバーの負荷の問題でしょうか?
03783732006/10/13(金) 17:22:09ID:???
ありがとございます。
全然詳しくないのでアレなんですが、メーラーの設定みたいに、
ポート25を587に変えるだけじゃダメなんですねぇ。

0379nobodyさん2006/10/13(金) 17:33:04ID:???
>>377
一番大きな理由は開発が楽だからだよ。
0380nobodyさん2006/10/13(金) 17:43:43ID:???
>>378
php.iniのSMTP PORTは、 Windows Onlyだからね。
0381nobodyさん2006/10/13(金) 18:13:07ID:???
>>377
30万件のレコードから、検索や抽出、並べ替えなんかをするのを
がんばって作ってみな。
まあ、結果を得られる速度はDBに負けるだろ。
もし対等に渡り合えるのがかけてるんなら、DBを作れたって話だ。
0382nobodyさん2006/10/13(金) 19:13:58ID:???
>>377
件数が多い場合や複数条件の組み合わせでやっぱ速度に大きく差が出るね。
速度に差が付く理由の1番大きなところはインデックスの生成だから
そこを自作してやればDBと対等かそれ以上の速度を出すことは可能。
それ以外にもデータ更新時に破損しにくいとかの堅牢性やメンテのしやすさ
なんかも理由には挙がるけど、データがほとんど更新されない静的データなら
どっちでも大した問題にはならないと思う。
検索処理と並行して頻繁に更新されるデータならDBで作ってないとすごく怖い。
03833772006/10/13(金) 20:14:05ID:0s8cJuHn
>>379
>>381
>>382
皆様ありがとうございます。 やはり速度がかなり違うのですね。
データが破損しにくいとは知りませんでした。 どっちにしろ手間かけるくらいならDB使ったほうがいいということですね。
ありがとうございました。
0384nobodyさん2006/10/13(金) 20:25:25ID:???
階差は約1時間ですねー
0385nobodyさん2006/10/13(金) 20:46:39ID:jl8poghH
画像のパスを表示せずに、画像をブラウザに表示させる方法ってあるでしょうか?
画像を右クリックで保存等は出来ても構わないのですが、画像のパスだけは
隠しておきたいのです。
テストではGDを利用して出来たのですが、使うサーバはGDが使えないのです。。
宜しくお願いします。
0386nobodyさん2006/10/13(金) 21:19:22ID:???
>>385
>GDを利用して出来た

どうやって??
0387nobodyさん2006/10/13(金) 21:27:48ID:???
headerのcontent-typeとreadfileでできるんじゃね
0388nobodyさん2006/10/13(金) 22:27:07ID:???
>>385
/img/****.jpg だろうが、 /img.php?****.jpg だろうと
どっちにしても、画像のパスには違いないわけだが…

直リンク対策や、会員限定とかのためにPHPを通して表示したいって事?

何が目的なのか、良く判らないんだけど
0389nobodyさん2006/10/13(金) 23:38:25ID:???
GETで投げられた変数をPHPで受け取って使う場合に

http://hoge.com/?id=passwd

$id = "";
if(isset($_GET["id"])){ $id = $_GET["id"]; }

としてから受け取っているけど、これって正解ですか?
0390nobodyさん2006/10/13(金) 23:49:32ID:???
>>388
俺も初め385の意味がわからなかったが、387を読んで、画像のパスを隠すというのはおそらくサーバ上での絶対パスを隠すという意味ではないかと推測。
で、もしそうなら387でFA。
0391nobodyさん2006/10/13(金) 23:51:43ID:???
>>389
問題ないと思います
0392nobodyさん2006/10/14(土) 00:18:04ID:???

$arr = array("1"=>array("1"=>array("id"=>5,"gender"=>0,"age"=>14)
,"2"=>array("id"=>33,"gender"=>0,"age"=>23)
,"3"=>array("id"=>143,"gender"=>1,"age"=>43)));

これを

$ages=array(14,23,43);

に加工したいんですが、可能ですか?
0393nobodyさん2006/10/14(土) 00:23:19ID:???
--環境(windows XP, postgreSQL8.1.4, php5.1.6)--
phpのinsertでserialの項目を省略して記述したいのですが、省略すると追加できません。
試しにコマンドプロンプトで同じinsert文を記入するとなぜか追加できてしまいます。

『失敗したinsert文』--> insertからbbsidを省略しています
create table bbstable (
bbsid serial,
name text,
title text,
coment text,
updatetime text);
$sql = 'insert into bbstable (name, title, coment, updatetime) values (?, ?, ?, ?)';
$stmt = $dbh->prepare($sql);
$flag = $stmt->execute(array($name, $title, $coment, $updatetime));

『成功したinsert文』--> コマンドプロンプトで実行
insert into bbstable (name, title, coment, updatetime) values (1, 2, 3, 4);
  ↑これでbbsidに採番された値が入っています

調べると以下のような説明を行っているサイトがあったのですが、まずserial型のデータをselectで取得してから、insertを行っています。
せっかく自動採番の項目なのに変だと思っています。何か思い違いをしているのでしょうか?

『解説にあったサンプルPG』
CREATE TABLE person (
id SERIAL,
name TEXT
);
new_id = execute("SELECT nextval('person_id_seq')");
execute("INSERT INTO person (id, name) VALUES (new_id, 'Blaise Pascal')");
0394nobodyさん2006/10/14(土) 00:27:32ID:???
>>392
foreach($arr[1] as $a) {
$ages[] = $a["age"];
}
0395nobodyさん2006/10/14(土) 01:39:03ID:???
冗長だと思う。

$id = isset( $_GET['id'] ) ? $_GET['id'] : '';
0396nobodyさん2006/10/14(土) 01:41:44ID:???
>>395>>389に対するレスね。
0397nobodyさん2006/10/14(土) 02:07:22ID:HT3mnicj
同じドメインのパスでも、
クッキーの変数ごとに期限を設定できるんでしょうか?
すぐに消えるクッキーとずっと残るクッキーを同居できますか?
03983972006/10/14(土) 02:19:24ID:???
別々に設定できるみたいですね。
0399nobodyさん2006/10/14(土) 02:55:28ID:???
>>395
短くしたいならこれでいい。
$id = @ $_GET['id'];
0400nobodyさん2006/10/14(土) 08:20:59ID:???
PHPってArrayクラスってないの?
いまどき count(ary)とかやって要素数得るのダセーとか思うんだけど・・・
0401nobodyさん2006/10/14(土) 08:32:36ID:+DX4AjuZ
なにがどうダサいのかまず説明しなよ。
C++やJavaみたいにデフォでは満足なリスト機能を持たない言語なら
クラスで用意するのも分かるが、LispやPerlやPHPくらいになると
むしろクラスで処理するのがナンセンスに感じるけどね。
count($arr)だって実際はプロパティ値返すだけだし。
0402nobodyさん2006/10/14(土) 08:42:05ID:???
>>400
お前の存在自体がダサいwwwwwwwwwwwwwwwwwwwww
0403nobodyさん2006/10/14(土) 09:01:08ID:???
2バイト文字が含まれている文字列から、
英数字だけをとりだしたいのですが、
いい方法はありますか?

はじめは以下のようにやっていたのですが、
文字の組み合わせによって余計な文字が出てくる場合があります。
preg_replace('/[^\w]/', '', $str);

mb_eregi_replace を使ってみたのですが、
使い方があっていないのかうまくいきません。
04044002006/10/14(土) 09:01:33ID:???
なんかCで構造体の引数を第一引数に渡してる感がするんだな。
あと文字列もクラスじゃない。
JavaやC#だったら、インテリセンスでメソッドが出てくるが、
PHPだとそうはいかない。それがだるい。
0405nobodyさん2006/10/14(土) 09:08:25ID:???
>>404
ふいんき(何故か(ry)で騙るなバカ
0406nobodyさん2006/10/14(土) 09:12:30ID:???
>>404
文字列をわざわざクラス化!?w
だったらC++やJavaで整数がなんでクラスじゃないのか説明してみなよ。
それはダサくないのかね?
04074002006/10/14(土) 09:17:31ID:???
普段、四則演算くらいしかオペレーションがないからだろ。
とにかくインテリセンスがきかんのがうざい。
インテリセンスでクラスのメソッド名が出てきたら、
だいたい該当するのはどれなのかわかる。
PHPは、いちいち調べるのがめんどい。
タイポする可能性も増える。
しかも型もコンパイルないからエラーにならんし。
つーか、こんな言語愛用してるのは糞だ。死ね!
04083852006/10/14(土) 09:18:49ID:53yXNDSa
385です
>>390さんの通り、サーバに置いてある画像の絶対パスは隠しておきたいのです。
headerのcontent-typeとreadfileでどのようにやるんでしょうか。
よろしければヒントお願いします。
0409nobodyさん2006/10/14(土) 09:22:05ID:???
>>408
マニュアル見てみたんですか?
0410nobodyさん2006/10/14(土) 09:28:56ID:???
>>400
お前がそう思ってるならそれでいい。
糞だと思うなら使わなきゃいいし、このスレを見る必要もない。

もう来るなよ。
04113852006/10/14(土) 09:32:17ID:53yXNDSa
>>409
すみません。勘違いしてました。
マニュアルちゃんと読みます。
>>408は無しでお願いします。
■ このスレッドは過去ログ倉庫に格納されています