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

【PHP】くだらねぇ質問はここに書き込みやがれpart2

レス数が1000を超えています。これ以上書き込みはできません。
0001nobodyさん05/01/09 06:01:24ID:tJkdKk+e

お前の下らない質問に回答があるかも知れないスレッドです。
0910nobodyさん05/02/05 15:46:57ID:???
define("ROOT_PATH","/usr/home/****");
require(ROOT_PATH."/file/hogehoge.dat");

とかしとけば今後環境変わっても便利
0911nobodyさん05/02/05 16:02:06ID:???
>>908
なんで同じにせにゃならんのよ?
アホなこと考えないで正しい絶対パス指定か相対パスでも使え。
0912nobodyさん05/02/05 16:02:16ID:HfaJ2irn
>>910
ありがとうございます。defineを使うのですね。
でもまだ少し疑問点があります。

hogehoge.datをいくつものファイルで読み込む必要がある場合、

define("ROOT_PATH","/usr/home/****");

もそれぞれのファイルに書く必要があるんでしょうか?
1回記述するだけですむ方法が思いつきません・・
0913nobodyさん05/02/05 16:04:27ID:???
>>912
いちいち聞いてないでdefineがどういうものか先に調べれ
0914nobodyさん05/02/05 16:11:30ID:???
しょうがないのでとりあえず各ファイルへのパスを指定する変数を
定義したファイルをひとつ作っておき、それは相対パスで読み込み、
それ以外はその定義ファイルから読み込んで対応することにしました。

私の疑問はその定義ファイルの位置を変更した場合にも対応できるように
ルートディレクトリから指定できないかなあと思っていました。
どうもありがとうございました。
0915nobodyさん05/02/05 16:26:55ID:???
>>909
PHPが遅い?
こんなに高速で軽快な言語が他にあるのか?(w
091691005/02/05 16:27:40ID:???
>>914
んじゃ、
require($_SERVER["DOCUMENT_ROOT"]."/file/hogehoge.dat");
ってのはどうよ?
0917nobodyさん05/02/05 16:30:31ID:???
>>909
鯖のせい・PukiWikiのせいのどちらか。
0918nobodyさん05/02/05 17:35:11ID:???
スクリプトを作って「Ver 1.00」とか書くが、次にバージョンアップしたら、バージョンはなんて書けばいい?
ってか、決まりなんてあるのか?

マジくだらねぇスマソ
0919nobodyさん05/02/05 17:43:34ID:???
>>918
メジャーバージョンとマイナーバージョンをどうつけるかは自由。
092091805/02/05 17:59:50ID:???
>>919
自由なのか…。

サンクス。
0921nobodyさん05/02/05 18:14:41ID:???
>>918
それ以前に「Ver. 1.00」にするか、「Ver. 1.0.0」にするか悩まなかったか?
あるいは最初は「Ver. 0.1」から始めるべきかな?とか
0922nobodyさん05/02/05 18:23:55ID:???
公開するものなら最初のリリースは1.0かそれに近いバージョンで出すべき。
というか、バグ取りして一応のレベルに達して1.0を名乗れるようになってから
公開するのが当然。
0.1とかじゃロクに出来上がってないものを利用者にテストさせる印象しかない。
0923nobodyさん05/02/05 19:12:29ID:???
俺としては
・ソースコード公開以前→0.x.x
・ソースコード公開した→1.x.x
て感じかなぁ。
公開する気が全くなくても、「これならソース公開してもいけるかも」てなったら
1.0にする。
0924nobodyさん05/02/05 19:20:42ID:???
それが普通だね。
本来、メジャーバージョン1未満は公開すべきではないし、
評価など目的があって公開するならバージョンをつけずに
PRとして出すべきだから。
0925nobodyさん05/02/05 19:42:51ID:???
>>909
ここだけの特別な情報だから他のやつには言うなよ。
PukiWikiは遅い。間違いない。
0926nobodyさん05/02/05 19:57:19ID:???
そうだよなぁ。
あんな重い思いしてまでウィッキーさんは使いたくはないな。
0927nobodyさん05/02/05 21:46:21ID:H7vZqk2F
PHP4 + MacOS X 10.2.8環境で以下のソースを実行すると
signal Bus error を起こしてしまいます。
対処法としては2次元配列の代入元の値を変数ではなくて数値にすると
OKになります。


なにが問題なのでしょうか?

WindowsのPHP5では異常がありません。

//だめ
<?php
$n = 500;
$in = 999999;
for ($i = 0; $i < $n; $i++)
for ($j = 0; $j < $n; $j++)
$keys[$i][$j] = $in;

?>

//OK
<?php
$n = 500;
for ($i = 0; $i < $n; $i++)
for ($j = 0; $j < $n; $j++)
$adj[$i][$j] = 999999;

?>
0928nobodyさん05/02/05 21:55:43ID:???
0.xはβとかαって感じだね。1.0でついに正式版みたいな。
ゾヌとか永遠にβ版だけどね。
0929nobodyさん05/02/06 00:19:19ID:2wEgbafX
http://www.jpring.net/post/post.html
ここにあるようなPHPとmysqlを使った検索を作ってみたいのですが、
PHPをどう組み立てたらいいか全くわかりません・・・。
色々なサイトなどを見て、参考にしようと思ってもいいところが見つからなかったのでここに来ました。
0930nobodyさん05/02/06 00:35:20ID:???
>>929
全くわからないなら何やってもムダ。諦めろ。
0931nobodyさん05/02/06 00:38:05ID:???
>>929
全く分からんようだと参考サイトを見ても分からん気がするが。
どういう処理をすればいいのか問題を分割していってごらん。
1. フォームを表示
2. フォーム送信内容から検索結果を表示
2-1. フォーム内容からmysql用のSQL文を作成
2-2. mysqlへSQL文を送信
2-3. SQL実行結果を取得
2-4. 実行結果を画面表示
こういう風な分割を繰り返していくと、PHPで用意されている関数にまで分割することができる。
それを繋ぎ合わせたものが1つのスクリプトになるわけだ。
0932nobodyさん05/02/06 01:06:06ID:???
>>931
アンタ・・・いいやつだな(・∀・)
0933nobodyさん05/02/06 01:57:10ID:???
>>897
ありがとうございました!
0934nobodyさん05/02/06 10:34:14ID:???
ファイル名から拡張子を出力する関数ってありませんでしたっけ?
0935nobodyさん05/02/06 10:53:28ID:???
pathinfo()でも使っとけ
0936nobodyさん05/02/06 11:25:52ID:???
まさにその関数です!
ありがとうございました!
0937nobodyさん05/02/06 16:34:11ID:???
Perl範囲演算子みたいなのをPHPで表現するには、どうすればいいんでしょうか?
aからzまでを配列にぶち込んで、ランダムな文字列を作りたいのですが。
0938nobodyさん05/02/06 16:44:03ID:???
>>937
・aからzまで配列にぶち込む
・乱数で文字列を作る。

以上。
0939 ◆JoKeR/NWTc 05/02/06 16:57:31ID:???
srand();$str = range('a', 'z');
$str2 = "";
for($i = 0;$i < 10;$i++){$str2 .= $str[rand(0,25)];}

↑が実際動くかどうか分からんけど、
Perl範囲演算子みたいなのはrange()使えば実現できる
0940nobodyさん05/02/06 17:58:16ID:???
>>939
どうもです。やってみます。
0941nobodyさん05/02/06 18:18:38ID:5y+gVtnD
$ip = getenv('REMOTE_ADDR');
サイトを訪問した人のIPアドレスはこれで検出できたんですが、
ホスト名までは検出できないんでしょうかね?

$host_name = getenv('REMOTE_HOST');
こう書いてみたんですがうまく検出できません。
0942nobodyさん05/02/06 18:34:27ID:???
$host = gethostbyaddr(getenv("REMOTE_ADDR"));
0943nobodyさん05/02/06 20:10:37ID:???
>>942
なるほど。
PHPではREMOTE_HOSTは取得できないのですか!
サンクスであります!
0944nobodyさん05/02/06 20:25:02ID:???
>>943
いや、鯖が必ずREMOTE_HOSTを引いて値を設定するようになっていれば
PHPで"REMOTE_HOST"で取得できるよ。普通そんな設定に鯖をしとかないけど。
0945nobodyさん05/02/06 20:37:06ID:???
>>943
ちなみにgethostbyaddrを使うと、サイトの反応が遅くなるからね。
0946nobodyさん05/02/06 20:38:03ID:GClGxaTK
$data[0] = array(size=>20,hoge=>2);
$data[1] = array(size=>10,hoge=>1);
$data[2] = array(size=>30,hoge=>3);
この場合、$data[num][size]を大きい順にソートし
2次元配列に、つまり最終的に、
$data[0] = $data[2] ←[size]=30
$data[1] = $data[0] ←[size]=20
$data[2] = $data[1] ←[size]=10
このようにソートさせたいのです。
なにか方法はありませんでしょうか。
0947nobodyさん05/02/06 20:49:35ID:???
>>946
usort
0948nobodyさん05/02/06 20:57:31ID:GLYJwer2
MySQL+PHPで掲示板の書き込み作ってるのですが、
データベースに書き込めるときと書き込めないときが出るようになってしまいました。
なんでですかね?
0949nobodyさん05/02/06 21:04:00ID:???
>>948
マルチ氏ね

http://pc5.2ch.net/test/read.cgi/php/1064937268/614
0950nobodyさん05/02/06 21:04:50ID:???
>>948
・書き込み内容によって不適正なクエリが発行。
・500人ぐらいで共有してる安鯖を使用しているため処理能力がアップアップ。
0951nobodyさん05/02/06 21:29:06ID:???
>>948
月の引力の関係。
理科年表とにらめっこすれば解る。
0952nobodyさん05/02/06 21:43:23ID:???
>>951
満月の夜はどうやらかきこめません
095394805/02/06 21:55:09ID:GLYJwer2
2つのテーブルに書き込んでて、
1つ目はいつも上手くいくのよ、で2つめの書き込みがたまに失敗する。
やっぱ月かな。
0954nobodyさん05/02/06 21:57:14ID:???
アクセス解析を作っています。
リファラを記録する際に、「リファラが自分のサイトのコンテンツであれば記録しない」ということはできないでしょうか?
0955nobodyさん05/02/06 21:57:38ID:???
>>953
呪いだな…
0956nobodyさん05/02/06 21:58:40ID:???
>>955
まじない?
0957nobodyさん05/02/06 21:58:43ID:???
>>954
記録する際に、リファラが自分のサイトのコンテンツであれば記録しなければいいのでは?
0958nobodyさん05/02/06 22:17:52ID:???
>>957
お前頭いいな!!
0959nobodyさん05/02/06 22:39:06ID:???
>>954
URLを配列かなんかに全部代入して、ifでひっかかれば弾く…ならいけるが、効率悪いかも。
0960nobodyさん05/02/06 23:10:36ID:???
クッキー発行するとか
0961nobodyさん05/02/06 23:21:21ID:???
アクセス解析という言葉を考慮すると、
「記録する際に、リファラが自分のサイトのコンテンツであれば記録しなければいい」
で、終わっちゃうんだよなぁ。。。
>>954が何に困ってるのか分からん。
096295405/02/06 23:26:52ID:???
>>961
言葉足らずですみません。
「記録する際に、リファラが自分のサイトのコンテンツであれば記録しなければいい」
というのはわかっているのですが、それをプログラムにすることが出来ないのです。
0963nobodyさん05/02/06 23:29:49ID:???
>>962
だからどこがわかんねーんだよ…
まさかリファラが自分のサイトのコンテンツかどうか判断できないのか?
096495405/02/06 23:43:56ID:???
>>963
"URL"という言葉が抜けていましたorz
なので、もっと厳密に言えば「記録する際に、リファラが自分のサイトのコンテンツのURLであれば記録しなければいい」です。

>>959氏のご助言を参考に、下のような方法を考案したのですが、どこか違和感があります…。

$referer = $_SERVER['HTTP_REFERER'];
$my_site = array(サイトの全てのページのURLをつらつら);

for($i = 0;$i < count($my_site);$i++){
if($referer == $my_site[$i]){
exit;
}
}
0965nobodyさん05/02/06 23:55:04ID:???
>>964
まずforループなんか使わずin_arrayを使えと

で、その方法だとわざわざ自分のサイトのページ全部登録しないとダメだろ
一番単純な方法として自分のサイトのルートアドレス(ex.http://www.example.com/~954/)
から始まるURL蹴るとかではあかんのかと
0966nobodyさん05/02/07 00:15:47ID:???
if (stripos($referer, 'http://www.example.com/~954/') !== FALSE) {
exit;
}
096795405/02/07 00:19:41ID:???
>>965
…なるほど。
しかし、どのようにすれば実現できるのでしょう?
リファラをexplode()で分割したりするのでしょうか…。
方法がいまいちつかめません。(^_^;
0968nobodyさん05/02/07 00:23:36ID:???
っと、すみません。
966さんのレスを読む前に書いてしまいました。(^_^;
書き込もうとしていた時にはまだレスがついてなかったので。。。

>>966
stripos()という関数を使えば実現できるのですか。。。
ありがとうございました。
0969nobodyさん05/02/07 00:26:59ID:???
まぁ、なんだ、いろいろ考えてみたところで、
最近、REFERER吐かない接続者が多いんで、そこんとこヨロシク!
って感じですかね。
0970nobodyさん05/02/07 00:29:35ID:???
stripos($referer, 'http://www.example.com/~954/') !== 0) or die();
0971nobodyさん05/02/07 00:31:20ID:???
>>970
( ´,_ゝ`)プッ
0972nobodyさん05/02/07 10:58:43ID:???
あぁ!!
最初に現れる位置だから用途が違うでしょうけど
preg_matchよりstriposの方が高速でしょうか?
0973nobodyさん05/02/07 11:48:18ID:???
>>972
単純な比較と正規表現処理とだから、当然striposの方が速いんでないの?
数値で比較して安心したいなら、
print microtime();
for(〜){ 処理内容; } // 適当な回数
print microtime();
みたいな感じで実際試してみればいい。
0974nobodyさん05/02/07 12:30:23ID:???
かなり違うね

strpos
0.61152000 1107746919
0.61356200 1107746919
preg_match
0.61358800 1107746919
0.62025600 1107746919
0975nobodyさん05/02/07 15:06:02ID:6YQico4I
同じページ内で、まず表1を表示、次へボタンを押したら表1の部分を表2に
変えたいんですがどうすれいいでしょうか?
0976nobodyさん05/02/07 15:09:01ID:???
Redhat7.3にPHPを先にインストールしてまして、あとからMySQLを
インストールしてみたのですがPHPで認識してくれません。
MySQLインストール後にPHPに認識させるためになにか設定等は
必要なのでしょうか?
0977nobodyさん05/02/07 15:09:02ID:???
>>975
hidden で値でも飛ばせばぁ?
0978nobodyさん05/02/07 15:34:30ID:???
>>976
RPMで入れたのならphp-mysqlてな感じのrpmも転がってると思うのでそれを入れる。
見つけられなかったら諦めれ。ソースから入れる手もあるが君にはまだ早い。
0979nobodyさん05/02/07 16:53:29ID:???
Warning: Unexpected character in input: '\' (ASCII=92) state=1 in .....
はどういう意味ですか?でどうしろ言われてるの?
0980nobodyさん05/02/07 17:15:03ID:???
>>979
PHPの中の人がスクリプトを読んでいった時に、
〜行目で \ というここにあってはおかしい文字を発見した。
その行以前にコーディングミスがある筈なので、それを修正する。
0981nobodyさん05/02/07 18:13:26ID:???
>>979
てめーは期待してねーキャラだからすっこんでろ
という意味。
0982nobodyさん05/02/07 18:15:57ID:???
すいません、叩かないで下さい
あのですね・・

->

上の記号の意味を教えて欲しいんです・・
map {$_->[0]}
こういう風に使われているのですが

検索したのですが、やり方が悪いせいか全然出てこなくて
<=>これとか&&とかはいっぱい載ってたのですが・・
0983nobodyさん05/02/07 18:17:38ID:???
includeしたスクリプトの中にある関数に
引数を渡すことは可能ですか?
可能であれば教えてください。
0984nobodyさん05/02/07 18:29:57ID:???
>>982
オブジェクトのメソッドやプロパティにアクセスする演算子

ex) $obj->method();

>>983
やってみたら答えはおのずと出ると思う
やってみてムリだったらまた書き込んで
0985nobodyさん05/02/07 18:31:25ID:???
:->

にっこり君
0986nobodyさん05/02/07 18:31:59ID:???
>>982
それはPerlなのでPerlスレの方が良いかと。

>>983
includeの利用云々に関係無く、普通に関数を使う時のように引数を渡してあげてください。
includeでこだわる理由があるとすれば可変長引数を使ってたりするのかな?
その場合は、func_get_arg()等を使います。
0987nobodyさん05/02/07 18:52:15ID:???
>>984>>986
レスどもです。引数は普通に渡せるのですね。
include("hoge.php('hoge')")
こんな感じでやってみたのですがエラーがでてしまいました。

>includeでこだわる理由
それはrequireの方がいいという意味ですか?
特にこだわりなどはないのですが。
0988nobodyさん05/02/07 19:08:28ID:???
いや、includeとか関係なしに普通に引数を渡せばいいんじゃ

■func.php

function f($arg) { ...... }

■main.php

include('func.php');
f('arg');
098998305/02/07 19:19:43ID:???
ああっ!なるほど!成功しました。
何か勘違いしていたようです。
どうもありがとうございました。!
0990nobodyさん05/02/07 20:05:29ID:???
勉強不足≠勘違い
0991nobodyさん05/02/07 20:09:16ID:???
つかどう見ても勘違いじゃないだろ
0992nobodyさん05/02/07 20:20:56ID:ugDz3ClP
MySQLと、PHPを連携させました。
そこで誰もが思う質問

●IEから、ユーザーの選択したデータのPHPロジック中への受け渡しはどうするのか?

●フェッチアレイした結果をIEに表示する際に、色つきかつ、罫線をつけるには?

このあたりいいサンプルがあるサイト、または、方法教えてであります
099398305/02/07 20:22:14ID:???
>>990-991
自分も後から「勘違い」は使い方が違ったなと思いました。
そして突っ込みが必ず来るだろうなと。
インクルードしたら、インクルード元にインクルード先のスプリクトが
書かれているような振る舞いになるのをすっかり忘れていました。
>>990さんの言うとおり、これも勉強不足の内ですので、
どうか目を瞑っておいてください。
0994nobodyさん05/02/07 20:28:41ID:???
>>992
今から開いてる本屋行ってPHPの入門書とHTMLの入門書買って来い
ここがくだらねぇ質問スレといえどもあんまりだぞ・・・_| ̄|○
0995nobodyさん05/02/07 20:28:45ID:???
>>992
簡単だよ
まず、沢山のマニュアルを読む
0996nobodyさん05/02/07 20:31:35ID:???
>>992
●$_REQUEST
●echo '<font color=#FF0000>'.フェッチアレイした結果.'</font><hr>';
0997nobodyさん05/02/07 20:32:32ID:???
>>992
確かに誰もが一番最初の最初の最初は知らないが・・・
0998nobodyさん05/02/07 20:40:39ID:???
>>992
>MySQLと、PHPを連携させました。

させたんかいっ!
お前は、パンツはく前にズボンをはく口だな(w
0999nobodyさん05/02/07 20:41:28ID:???
CSSで  
       ■■■■■■■■■■
       ■            ■
       ■   画像のりんく ■
       ■            ■
       ■            ■
       ■■■■■■■■■■
       httm:文字ののりんく

という風にしたいのですが
どのようにすればいいですか?
1000nobodyさん05/02/07 20:42:05ID:???
>>999
千ゲットそして最悪なミスしてすいません
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。