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

【PHP】質問スレッド Part15

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん04/03/07 02:03ID:???
PHP全般の質問スレです。
上級者用や雑談スレを立てたくなった場合は後から適宜立ててください。

■本家
 http://www.php.net/

■日本 PHP ユーザ会
 http://www.php.gr.jp/

■PHP マニュアル
 http://www.php.net/manual/ja/

■PEAR マニュアル
 http://pear.php.net/manual/ja/

過去スレ, 関連スレ及び注意事項等は、 あふぉが居なけりゃ>>2-5
0175nobodyさん04/03/10 19:07ID:???
>>173
まさか仕事でやってる訳じゃないだろうな?
0176nobodyさん04/03/10 19:09ID:???
>>172
includeされる側でパス決めてないかい?
includeする側のファイルからみたパスを取るようにする。

>>173
お前はクズ。
仕事ではプログラムするな、ボケ。

>>174
正解。
プリフィックスを付けなければならないわけではなく、
これが、数値、文字等他の人が見てもわかればよい。
0177nobodyさん04/03/10 19:10ID:???
PHPで用意してある関数にもエラーならfalseを返すものなんていっぱいあるのに
0178nobodyさん04/03/10 19:15ID:???
>>177
だな。
>>176は考え方が偏ってる
0179nobodyさん04/03/10 19:16ID:???
>>176
ダメな理由を具体的に書けよ
0180nobodyさん04/03/10 19:18ID:???
戻り値が数値とFALSEという括りなら良いんだが、
文字列かFALSEという括りとなると、設計上おかしい。
0181nobodyさん04/03/10 19:18ID:???
ろくでもない先輩に教え込まれたんだろう。
0182nobodyさん04/03/10 19:19ID:???
PHPでは""や"0"もFALSE扱いですが?
0183nobodyさん04/03/10 19:19ID:???
>>180
設計上どうおかしいの?
0184nobodyさん04/03/10 19:21ID:???
>>183
うっせーな。
こだわりだよ。
0185nobodyさん04/03/10 19:22ID:???
ここはPHPしかできない連中の集まりか?
それとも自己チューの集まりか?
0186nobodyさん04/03/10 19:23ID:???
なんだただの個人的なこだわりかよ。そんな事ここで吠えられてもな
文字列もbool値も返す関数だってPHPにあるのに
0187nobodyさん04/03/10 19:23ID:???
アバウトさがPHPの良さなんて考えるのはおかしいんじゃないかな?
0188nobodyさん04/03/10 19:24ID:???
戻り値も特定できない関数作って喜んでいる、
お間抜けさんの集まるスレはここですか?
0189nobodyさん04/03/10 19:25ID:???
文字、数値、配列が返値でまざるのはダメだが、falseは許容って感じ。俺の場合。
0190nobodyさん04/03/10 19:25ID:???
文字列をFALSEで返す事はアバウトか?
0191nobodyさん04/03/10 19:26ID:???
宗教戦争みたいなもんだろ
こんなの
0192nobodyさん04/03/10 19:27ID:???
>>189
お前俺
0193nobodyさん04/03/10 19:28ID:???
文字列、またはfalse
数値、またはfalse
配列、またはfalse

こういった使い方はOKだろ
0194nobodyさん04/03/10 19:29ID:???
VBのときもそうだったけど、
PHP開発者も、厳しい規約があれば全く使い物にならない。
プログラムの必須知識である型を無視できて、
手軽さが良くて使っているのがほとんどだろう。
まあ、PHPで本格的なシステム作るわけでないし、
他ができる連中はPHP使わなければ良い話だ。

俺らは底辺だと言われようと、使い文にならんと言われようと、
気にせずPHP使うだけだし。
0195nobodyさん04/03/10 19:30ID:???
>>182
違います
0196nobodyさん04/03/10 19:30ID:???
俺は
Array…成功
文字列…失敗
false…処理しない
みたいな使い方してるよ。
0197nobodyさん04/03/10 19:33ID:???
>>196
難解だな
0198nobodyさん04/03/10 19:36ID:???
ミムラはカバっぽいな
そこがいいんだが
0199nobodyさん04/03/10 19:36ID:???
誤爆
020017204/03/10 19:38ID:???
>>176
ありがとうございます。
includeする側から見たファイルパスでやっていますが、
違うディレクトリに入ったところから取り込むと、ダメになってしまいます。

具体的に説明すると、
public_html/に 1linebbs.php と log.dat が入っていて、
ここと同じディレクトリの index.php から include するのはできるのですが、
hoge/ に入った index.php から include すると、
当たり前ですが log.dat を読み込めません。
1linebbs.php が log.dat を読み込んで表示するようになっているからです。

また、解りにくくなってしまいましたが、うまい解決方法があったら教えてください<(_ _)>
0201nobodyさん04/03/10 19:39ID:???
>>182
$a = FALSE;
$b = "";
if ($a == $b) echo("auau");
if ($a === $b) echo("hoge");
0202nobodyさん04/03/10 19:42ID:???
182はどう見ても釣りだろ
0203nobodyさん04/03/10 19:49ID:???
なんか>>170の自演が痛いんですけど。

>成功で文字列、失敗ならFALSEなんて、
>糞関数作る口か?
これって、一応釣ってるんですよねぇ?
食いついたほうがいいんでしょうか
0204nobodyさん04/03/10 19:51ID:???
素で間違えてる香りがプンプンと
0205nobodyさん04/03/10 19:53ID:???
>>203
関わるな!鳥インフルが伝染るぞ!
0206nobodyさん04/03/10 19:56ID:???
>>203
しかもあれだけ釣っておいて最後は「こだわり」だもんな。
個人的なことじゃんw
0207nobodyさん04/03/10 19:59ID:???
>>203-206
( ´,_ゝ`)プッ
0208nobodyさん04/03/10 20:00ID:???
やれやれ次元が違う相手と話するのがこんなにつらいとはな
まぁ、PHP使って楽しんでくれや
0209nobodyさん04/03/10 20:01ID:???
>>170=>>207=>>208
うはwwwww
0210nobodyさん04/03/10 20:04ID:???
>>208
業務で使ってる人と、
趣味で使ってる人が入り乱れてるからしょうがないよ。
趣味の人に、厳格な規約押し付けてもしょうがないし。
0211nobodyさん04/03/10 20:05ID:???
>>200
ファイルがみつからんのか、
ファイルが開けないのか不明。
もし、みつからないのであれば、
読もうとするファイル名出力してミソ
0212nobodyさん04/03/10 20:13ID:???
俺なんかはPHPの関数がFALSEを吐く様な事してるから
「あぁ、こんな使い方も出来るのね」って単純に感動したクチなんだけどね。
0213nobodyさん04/03/10 20:30ID:???
>>211
相対パスでincludeして、そこからさらに相対パスでログを読み込んでいるので、
違う場所から読み込もうとしてもできないんでつ(´・ω・`)
0214nobodyさん04/03/10 20:45ID:???
ディレクトリの構成を見直した方がいいんじゃないの?
0215nobodyさん04/03/10 21:22ID:???
【まとめ】

厳密さを求める香具師は JAVA 使え
0216nobodyさん04/03/10 21:44ID:???
ネイティブコードも吐けない糞言語JAVAを薦めるなんて
お前頭おかしいだろ?
よく生きていけるな
0217nobodyさん04/03/10 21:47ID:???
>>213
やりたいことは判らないでもないが、
元々includeはコードを取ってくるもんであって
処理結果や動作をもってくるものではないです。
HTTPストリームを使ってPHPでの実行結果を
取って来ることも、まあ出来るけどね。

>>215
厳密さを求めると寧ろJavaの厳密でない部分
(結構ある)が鼻についてしょうがない。
PHPは適当なままで良いが、もちっと適当さにも
統一感をくれ。
0218nobodyさん04/03/10 21:48ID:???
ObjectPascalが一番厳密で使いやすい
0219nobodyさん04/03/10 21:57ID:???
>>216
はい。おかしいです。
自分でもよく生きているなと思います。
0220nobodyさん04/03/10 22:12ID:???
ここの人たち口悪いよ
もうちょっと言葉選んでくれ
0221nobodyさん04/03/10 22:19ID:???
session_destroy
session_unset
破棄と開放はどう違うんでしょうか??
破棄=定義しているが中身がNULL
開放=未定義

ってことですか?
0222nobodyさん04/03/10 22:32ID:???
>>221
アウト!
0223nobodyさん04/03/10 22:32ID:w+pCKnpt
mkdirでディレクトリが作成されないのですけど、
サーバで許可されていないからでしょうか?

mkdir("./aaa",0707);
0224nobodyさん04/03/10 22:41ID:???
>>223
知らんがな。エラーメッセージ見るなり、鯖管に聞くかせーや。
0225nobodyさん04/03/10 22:49ID:???
>>222
やっぱちがいますか・・・
教えてくださいm(_ _)m
0226nobodyさん04/03/10 23:54ID:???
mysqlと一緒に使ってるとDBにアクセスするたび例外なく
システムビープなりませんか!?
漏れだけか…。
Windowsで動かそうなんて無謀だったか。
(PHP4.3.5.5+mysql-3.23.38+Anweb1.42k php.exe使用)
0227nobodyさん04/03/11 00:20ID:???
>>226
俺さ、SQL文ミスるたびにシステムビープ鳴るのどうにかならないかなぁ、って思って検索したら
あなたのようなことを書いてるのが多くてびっくり。
俺は、PHP4+MySQL4+Apache1.3.19なんだけど、「アクセス時」にビープ音はならないねぇ。
0228nobodyさん04/03/11 00:29ID:???
ウチでは
・コマンドラインでSQL文を間違えるとビープ音が鳴る
・PHPでSQL文を間違えてもビープ音は出ない
だな。MySQL 4.0.15 , PHP4.3.3 , Windows 2000 , Apache 1.3.29。
0229nobodyさん04/03/11 00:32ID:???
>>226
MySQLが古いのか、httpデーモンが悪いのか
どっちかだろうな
0230nobodyさん04/03/11 00:37ID:???
なあなあ、現在開いてるファイルのファイル名を変数に代入するのは

どうしたらいいだ?
0231nobodyさん04/03/11 00:47ID:???
知ってるが
   お前の態度が
      気に入らない
0232nobodyさん04/03/11 00:51ID:???
>>231
まあまあ、おしえてくでよ
0233nobodyさん04/03/11 00:52ID:???
レスどうもです。コマンドラインミスるとbeep鳴るのは分かりますが、
動作確認したのがphpmyadminなので、SQL文ミスの恐れはないと思います。
先ほどisapiに変えてみたところビープが消えました。
が、isapiだと、これはこれでライブラリロード中のまま止まったりするし…。

サーバー側でメモリのエラーが出る→システムビープが鳴る
こんな予想立てて、ちょっくらanwebのサクーシャに問うてみます。
0234nobodyさん04/03/11 02:25ID:???
for($i=0; $i<8; $i++) $pass.=$char[array_rand($char)];

$charには、a-Z、0-9の文字が入ってます。$char[0]>a,$char[1]>b・・・・
これってちゃんと8個のランダムな文字列になってますよね?
srand();はしてないですけど。


ローカル(Windows)で動作試したんですが、10回ほどで同じものが出てきた時もありました。
62通りの8乗分の1なのに、たった10回で・・・
偶然、でいいんでしょうか?
何か気になります
0235nobodyさん04/03/11 05:59ID:???
>>231
おまいはいつもそれだけだな ばかかとおもわれるぞw

>>230
__FILE__ から抜き出すとかは?
0236nobodyさん04/03/11 08:15ID:???
>>133
AN HTTPDって、メッセージ関係はAnWeb表記なんだね。知らなかった。
0237nobodyさん04/03/11 10:16ID:???
>>213
BBSの部分を関数化し、
引数にDATファイル渡すようにしれ。
同じDATや違うDAT使うのも、切り替えしやすくなるぞ。
機能だけ関数化し、設定は外出し汁。
0238nobodyさん04/03/11 11:00ID:???
>>237
それだとinclude pathのチェック機構を入れないと、ASKACCSみたいな大恥をかく羽目に。
0239nobodyさん04/03/11 11:06ID:???
なんで>>235のような教えたがり厨が増えるんだ・・・
質問の仕方ってものがあるだろ、態度悪い奴に甘えさせるなよ。
まぁ、覚えたての知識を披露したいような厨に何言っても無駄だけど
0240nobodyさん04/03/11 11:27ID:???
>>239
とりあえず厨厨うるさいやっちゃな。
厨って言いたいだけちゃうんかと。
0241nobodyさん04/03/11 11:42ID:???
厨厨train
0242nobodyさん04/03/11 12:44ID:???
ここは質問しか書いてはいけないスレですか?
0243nobodyさん04/03/11 12:56ID:???
>>240
>厨って言いたいだけちゃうんかと
藻前↑コレ言いたいだけだろ
0244nobodyさん04/03/11 13:11ID:???
俺は>>241が言いたかった
0245nobodyさん04/03/11 13:28ID:???
ファンーふぁんーひーいざーつぇーつえー
同じかぜーのなかーうぃのーうぃのーおhh
きーきーきーらきあすきーすきー
と決めーきをはこぶーよとゅとゅとれーん
0246nobodyさん04/03/11 13:53ID:???
厨厨マウスはOK?
0247nobodyさん04/03/11 14:08ID:???
>>246
チュウチュウ
0248nobodyさん04/03/11 15:24ID:???
たくさんの処理をするスクリプトを書いているのですが、いまいちソースが見にくいです。

<?php

if($_REQUEST['mode']=='a'){
処理A
}
elseif($_REQUEST['mode']=='b'){
処理B
}

?>
と、延々と続いています。
一つの処理に付き、50行くらいなので、ソースがとても見れたもんじゃありません。
そこで、

処理Aを書いているもの・・a.inc
処理Bを書いているもの・・b.inc
として

if($_REQUEST['mode']=='a'){
require('a.inc');
}
elseif($_REQUEST['mode']=='b'){
require('a.inc');
}

とすれば、メインのソースは綺麗で、しかもそのままファイルの挿入を行うので、局所とか考えなくていいので楽ですが、素人丸出しです。。
みなさんはこういう場合どういう風にするのでしょうか?
0249nobodyさん04/03/11 15:31ID:???
いいんじゃないですか?
0250nobodyさん04/03/11 15:42ID:???
俺ならこうするな

switch($_REQUEST['mode']){
 case "a":
   require('a.inc');
   break;
 case "b":
   require('b.inc');
   break;
 default:
   break;
}
0251nobodyさん04/03/11 16:33ID:???
メール送信する際にmb_send_mailを使うと文字コードの問題が出ないとの事ですが
mb_send_mailを使っても受け取ったメールは文字化けします。

なぜでしょうか?
0252nobodyさん04/03/11 16:36ID:???
>>248
山田さんのやつみたいなのは?

ttp://www.dotaster.com/~s-yamada/php/

続きが読みたいんだけどもう更新されないのかな。。。
0253nobodyさん04/03/11 16:38ID:???
>>248
require じゃなくて include かなぁ?

あと、elseif が増えるようだったら、
switch〜case にしたり、
さらにツリー構造を作って、
includeの中でinclude。
025424804/03/11 16:48ID:???
ありがとうございます。
ファイルの挿入って、別に素人しかしないわけじゃないんですね。
ファイルに関数を詰め込んで、requireして関数を呼び出すのが上手な人のやり方だと思ったんですけどそうでもないみたいですね。

ところで、requireするファイルの先頭に<?phpつけないとphpの処理をしてくれないのって仕様ですか?
0255nobodyさん04/03/11 16:55ID:bi3wfCFY
>>253
見づらくないか

require/includeの為に分岐するコーディングは
普段しないが、敢えてするならこんな感じにする。

$mode_lists = array('a', 'b', 'c', ...);
if (in_array($_REQUEST['mode'], $mode_lists) {
  require $_REQUEST['mode'] . '.inc';
} else {
  error_reporting("WARNING: Choose unrecoganized mode");
  exit(1);
}
~
0256nobodyさん04/03/11 17:14ID:???
>>254
仕様
0257nobodyさん04/03/11 18:03ID:???
function.inc・・・関数の固まり
config.inc・・・変数の定義

main.phpでfunction.incのtest()を呼び出すとすると

main.php内にconfig.incを挿入して
test($st1r,$str2);
とするか

function.incにconfig.incを挿入して、
function test($a,$b){
  global $str1,$str2;
処理
}

として、main.php内でtest();


とするのはどっちがいいでしょうか?
後者のほうが、見た目がいいと思うんですが、
関数が一杯詰まってるファイルの中でグローバル宣言は控えたほうがいいでしょうか?
0258nobodyさん04/03/11 18:08ID:???
>>257
前者

ところで、後者でなぜグローバル変数を使う必要があるのか?
025925804/03/11 18:11ID:???
チョト訂正。
config.incで定義されている変数をfunction.inc内でしか使わないなら後者(グローバル宣言は除く)
0260nobodyさん04/03/11 18:12ID:???
全部引数で渡すのが普通じゃないのか?
026125804/03/11 18:14ID:???
いや待った。
定数の定義のみなら後者でもいいが、
変数の定義なら、普通はやっぱ前者。
026225704/03/11 18:19ID:???
function.inc内は

<?php

require('config.inc);

function func1(・・・){
・・・
}
function func2(・・・){
・・・
}
function func3(・・・){
・・・
}

?>
こういう状態だからです。

026325704/03/11 18:21ID:???
あ、>>258さんへのレスです。
0264nobodyさん04/03/11 18:25ID:???
俺は表立って使ってる変数は必ず引数で渡す。
裏で生成した一部の変数、例えばDBへのコネクションオブジェクトなど、
表に出てきて欲しくない変数は、globalで渡す。
026525804/03/11 18:41ID:???
main.phpでは定義済み変数を触らなくて、
関数がglobal宣言して参照しているだけならな
変数じゃなくて定数を使用すべきじゃないのか?。
026625704/03/11 19:06ID:???
定数がいいですね、スコープも関係ないし。
>>265さん、ありがとうございました。
0267nobodyさん04/03/11 19:59ID:???
マルチバイト文字をmb_strlenしても、その「文字数」になってしまいます。。
あああ・・・>3文字
この場合は6文字と返してほしいのですが、、何かありませんか?
0268nobodyさん04/03/11 20:03ID:???
>>267
mb_strwidth()
0269nobodyさん04/03/11 20:19ID:???
>>268
ありがとうございます。
0270nobodyさん04/03/11 23:05ID:???
>>235
アリガトヴ
0271nobodyさん04/03/12 12:37ID:???
変数 $mojiの先頭が全角スペースの場合、スペースを削りたい
0272nobodyさん04/03/12 12:44ID:???
$file ="data.cgi";

ここにアクセスすると自動的にリンク元が書き込まれるようにするにはどうすればいいでしゅか?
0273nobodyさん04/03/12 12:47ID:???
>>271
どうぞ

>>272
却下
0274nobodyさん04/03/12 12:59ID:???
>>273
わかんねぇならすっこんでろカス
■ このスレッドは過去ログ倉庫に格納されています