トップページphp
732コメント231KB

【PHP】質問スレッド Part9

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん03/07/12 03:18ID:???
■本家
 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-3ぐらい
0360nobodyさん03/08/02 08:54ID:???
あげあげあげ
0361あぼーんNGNG
あぼーん
0362あぼーんNGNG
あぼーん
0363あぼーんNGNG
あぼーん
0364名無しさん03/08/02 15:48ID:???
>>353さん、ありがとうございます。

早速やってみたのですが、まだエラーがでています。

$array = $a->Test($b);

という行の上に
$array['index'] = '';
としました。

$a->Test($b);
が何を表しているかわからないので、これであっていないんだと思います。
$array ごと初期化はできないのでしょうか?(的はずれかもしれませんが)
0365nobodyさん03/08/02 16:39ID:???
>>364
それだけじゃ何をどうしたいのか分かんないよ。

せめてエラーメッセージと、
エラーの出てる行の前後のスクリプトを表示してくれ。




でも、マニュアル見ても分かんないんじゃなぁ・・・
0366ファイル操作の質問03/08/02 19:52ID:YoYEkQEt
<?php
// ファイル名
$file_name = "test.txt";

// ファイルを追記モードで開く
$file = fopen($file_name, "a") or die("OPENエラー $file_name");

// ファイルをロックする(排他的ロック)
flock($file, LOCK_EX);

// 書き込む文字列
$string = "文字列を書き込みます";

// データを書き込む
fputs($file, $string);

// fputs()関数でデータをファイルに書き込みます。

// ロックを解除する
flock($file, LOCK_UN);

// ファイルを閉じる
fclose($file);
?>

なぜか「// ファイルを追記モードで開く」の部分でdie("OPENエラー $file_name")の方が実行されてしまいます。
なぜなんでしょうか?
もうこれに4時間ついやしてる折れって。。(´・ω・`)

036703/08/02 20:14ID:AkiTeJ92
>>366
ファイルの置いてあるディレクトリに書き込み権限はあるのか?
mkdir a; chmod 777 a とかして、$file_name="a/test.txt";
でやってみ。
---
俺的ポータルサイトを作ろう
http://mysite.ddo.jp/
0368nobodyさん03/08/02 20:25ID:???
>>365さん、すみません。
以下がコードです。

$b = array(

'x' => $X,
'y' => 1,

);

//$b['string'] = "";
//$b['result'] = '';
$a = $p->Test($b);

if ($a['string']){
echo $a['string'];
}else{
$end = $a['result'];
}

以下がエラーです。

Notice: Undefined index: string in
/home/user/public_html/class/xxx.php(xxx) : eval()'d code on line xx

Notice: Undefined index: result in
/home/user/public_html/class/xxx.php(xxx) : eval()'d code on line xx
0369nobodyさん03/08/02 21:28ID:???
>>368

$p->Test($b) を実行したときの戻り値が $a に入るわけだが、
その $a に $a['string'] も $a['result'] も設定されてないってことだな。

$p->Test() がそういう仕様なら Notice だから気にするな。

でないとすれば $p->Test() の中身を見てみないとなんともなぁ・・・

$p->Test() に渡す引き数ってそれで合ってる?
037036603/08/02 21:28ID:???
>>367
神様!!!!!

あまりに疲れたためPCの横で寝ちゃってましたw
そんで今言われた通りにやったら動きました!!サンクス〜( ´∀`)
0371nobodyさん03/08/02 21:51ID:sYR+wwax
test
0372nobodyさん03/08/02 22:34ID:2wasv+SN
PHP始めて2日目です。
1行掲示板を練習もかねて作ろうと思っているのですが、
フォーム(ボタンとか、エディットボックスとか)
<INPUT TYPE="SUBMIT" VALUE="送信" NAME="action">
こうすると、NAMEで指定した物が、変数$actionとして使えるのでしょうか?
サンプルがあったので、試してみましたが、ボタンを押しても$actionには
何も入ってないようなのです。
もしかして、根本から間違ってますか?
0373nobodyさん03/08/02 22:34ID:2wasv+SN
if($action=="送信"){

$fp=fopen("bbs.log","r+");
rewind($fp);
fwrite($fp,$comment,256);
fclose($fp);
}
0374nobodyさん03/08/02 23:03ID:???
そのサンプルは古いのかも知れん。
"かなり前から" PHPのデフォルトの設定が、
$_POST['action']や$_GET['action']を使うようになっている。
register_globalsで検索してみ。
0375nobodyさん03/08/02 23:35ID:???
>>372
勉強の仕方を間違ってる。
要するに馬鹿だって事。
マニュアルあげるから二度と来るな。
http://www.php.net/manual/ja/
0376nobodyさん03/08/03 00:08ID:???
>>375
何か嫌な事でもあったのか?
037737503/08/03 00:17ID:???
スマソ。言い過ぎた。
あまりに広告やage荒しが多いんでナーバスになってた。

それにフォームの処理なんてマニュアルにそのまんま載ってるし。
マニュアルで分かりにくい所とか、俺ならこうするとかだったら
まだレスのしようもあるのだが。
いくら初心者だとはいえ、>>372の質問はあまりにも安易すぎる。
0378nobodyさん03/08/03 00:26ID:FS5J2fjr
ISDNだからマニュアルの表示が遅いんだよ。
どこかに、HTMLマニュアルがあるような記述を見つけ、
その先に行ってみたけど、何処に置いてあるのかわからなかった。
0379nobodyさん03/08/03 00:29ID:???
メール欄にsageと入れなかっただけでage荒らしか
038037503/08/03 00:37ID:???
>>378
http://www.php.net/download-docs.php
のJapanese,Many HTML Filesを解凍してローカルに置いとくと便利。
0381nobodyさん03/08/03 00:54ID:vKGFWbMw
$a[$b[0]]
これだとエラーです。
どう書けばいいのかわかる人おせーて
0382nobodyさん03/08/03 01:45ID:???
$a[$$b[0]]
0383nobodyさん03/08/03 02:59ID:???
>>378
マニュアルダウロードできるよぅ
0384nobodyさん03/08/03 04:42ID:???
いろいろ調べてみましたが煮詰まってしまったんで。。

index.cgi?100
は100という値を取得できたんですが、

index.php?100
の取得方法がわかりません。
どうすればいいんでしょーか。。。
0385nobodyさん03/08/03 06:35ID:???
>>384
phpinfo.phpを置いて
http://127.0.0.1/phpinfo.php?100
としてじっくり眺めよ
0386nobodyさん03/08/03 07:11ID:???
下の方を
0387nobodyさん03/08/04 07:09ID:9xOvs6pQ
age
0388あぼーんNGNG
あぼーん
0389nobodyさん03/08/04 14:43ID:???
>>382
便乗なんですが、なぜそのような書き方なんでしょう?
0390nobodyさん03/08/04 18:29ID:???
>>389
http://www.php.net/manual/ja/language.variables.variable.php
0391nobodyさん03/08/04 20:40ID:???
っつーか >>381 では質問の書き方が不適切過ぎる。技術系メーリングリストの~ でも読んで出直し。
それで回答が出せるのは FAQ だから + >>382 の予想。

$b = array('foo', 'hoge');
$a = array(
'foo' => 'bar',
'hoge' => 'huni'
);

だとまた違う。
まぁどっちにしろ >>381 はみそ汁で顔洗って出直して来なさいってこった。
0392nobodyさん03/08/05 00:22ID:???
違うバージョンのphp4を同居させてapacheを動かすことはできますか。
具体的には、バーチャルサーバで言えば、
http://hoge1.example.co.jp/でphp-4.3.2を動かして
http://hoge2.example.co.jp/でphp-4.3.3-r2を動かす、
という形です。


0393あぼーんNGNG
あぼーん
0394nobodyさん03/08/05 01:04ID:???
>>392
httpd 分ければどうよ。
0395nobodyさん03/08/05 14:07ID:JWM3Qj9u
今日phpに目覚めたものですが、VBのoption explicitみたいな
変数の宣言を強制するようなのありますか?
0396nobodyさん03/08/05 14:17ID:gEMhSTJL
>>395
定数を使ったらダメなんでつか ?
えっ 違う? ((o(δ_δ;)o))ドキドキ
0397nobodyさん03/08/05 14:43ID:???
>>395
無い。必要ない。
変数の typo はこまめに確認とったりして注意しる。

PHP way を学べ。
0398あぼーんNGNG
あぼーん
0399うんぬ03/08/05 14:49ID:???
>>395
明示的に型宣言したいって解釈でいいんですよね?
そもそもPHPは型無し言語なんで、"変数宣言が無い"ゆえに
宣言を強制するオプションがありません。

# う〜ん。これだと誤解を招くかしらん?
0400ヽ(´ー`)ノ03/08/05 14:56ID:???
> 変数の宣言を強制するようなのありますか?
error_reporting(E_ALL); で、値の入っていない変数を使うと警告が出るようになる。
が、代入に関しては何も言われないし、明示的な型宣言はできん。それで我慢してくらさい。

// PHP5 だと関数の引数がオブジェクトである場合に限って、型宣言できる(type hints)。
// …けど、null を許容しない、基本的な型(string, int, ...) に使えない等、使い勝手は悪い。

040139503/08/05 15:09ID:???
みなさん親切にありがとうございます。
phpユーザーは良い人が多いですね。
型は宣言しなくてもいいのですが
例えば
var hoge;
hoge=1;
みたいに、hogeを使うよって宣言がないといけないみたいに
できたらいいなーと思ったのですが、なさそうですね。
了解しました。
0402nobodyさん03/08/05 15:17ID:???
あと VB は知らんけど PHP ではパフォーマンスの問題から Option Explicit を宣言する意味もあったけど PHP では無用。
0403nobodyさん03/08/05 16:34ID:qZU1psh3
こうして見ると、PHPの言語仕様はつくづくダメだな。
0404nobodyさん03/08/05 17:42ID:???
>>403
スクリプト言語としては十分まっとうだと思うのだが
0405nobodyさん03/08/05 17:57ID:???
こうしてみると、夏厨の脳髄はとことんダメだな。
040640303/08/05 18:48ID:qZU1psh3
>>404
変数制限、型宣言が不要なクセに例外処理も出来ないってのは
Webアプリケーションを作る上で非常に厄介じゃない?
0407nobodyさん03/08/05 19:13ID:???
evalでできる。
0408nobodyさん03/08/05 21:48ID:???
低級言語からみれば天国。
0409nobodyさん03/08/05 22:31ID:???
>>406
例外はPHP5で実装されると思ったが。
0410nobodyさん03/08/05 23:31ID:???
php5といえば、liteSQLの使い勝手とかを論ずる者は居らんのか?
0411nobodyさん03/08/06 03:56ID:???
言語の複雑さと実行時間はトレードオフでは?
PHP5のリリースにはまだまだ程遠いし、普及にはもっと時間がかかるだろう。

現状で変数宣言や例外処理が必要だと思うのであればJSP使えば?
0412nobodyさん03/08/06 08:17ID:???
>>410
liteSQLを使ってみてどうだった?
0413 ◆AngelH/kMI 03/08/06 12:55ID:???
SQLiteは微妙な感じ。
問題はファイルの権限かな・・・。
webサーバの実行権限でファイルが作られちゃうから
やや鬱陶しい。

// suExecのような何かがあればいいんだけど・・・。
041440303/08/06 15:12ID:pMqs3vkb
>>411
もちろん、Servlet+JSP使ってますよ。

俺が言いたいのは、PHP4の言語仕様がWebページを作る用途にはちょっと
弱いんじゃないかってこと。
勘違いされそうだから書いておくけど、PHP4の機能(関数)は充分だと
思いますよ。ここで言いたいのは「言語仕様」です。

そんなわけでPHP5には期待してるけど、どうせまたVerUpの度に
仕様がコロコロ変わっていきそうな予感。

0415あぼーんNGNG
あぼーん
0416nobodyさん03/08/06 16:17ID:???
夏だなぁ
0417ファルコン03/08/06 16:40ID:EjLq1O6J
PHPの質問なんですが、
割り算の計算をして、その結果を%で表示するようにするにはどうすれば良いのでしょう?
0418nobodyさん03/08/06 17:05ID:???
>>417
echo $a*100/$b."%";
0419ファルコン03/08/06 17:49ID:EjLq1O6J
>>418
ありがとうございます。私 頭が悪くて・・・
頭が悪いついでにもう1つお伺い致したいのですが、計算結果を少数点
第一位で表示するにはどうしたら良いのでしょう?
またまた初歩的で申し訳ありません。
0420あぼーんNGNG
あぼーん
0421nobodyさん03/08/06 18:15ID:???
>>419
printfやsprintfで検索しろ。
または
$number = $a*100/$b;
echo number_format($number, 1, '.', '')."%";
という関数もある。
0422ファルコン03/08/06 18:28ID:EjLq1O6J
>>421
さんきゅーべりー マッチョっちょ。。
チンコ
0423nobodyさん03/08/06 21:40ID:hf0zm5wx
あるページにリンクして戻るボタンを押した場合やhistory.back等で
戻ってきた場合と通常に開いた場合のチェックを行いたいんですが
何かいい方法はないでしょうか?

用は通常にページを開いた場合は処理1を行うが
戻ってきた場合はこの処理は行わない という用にしたいのです。
0424あぼーんNGNG
あぼーん
0425nobodyさん03/08/06 21:48ID:???
>>423 Javaであるきがする
0426あぼーんNGNG
あぼーん
0427あぼーんNGNG
あぼーん
0428あぼーんNGNG
あぼーん
0429nobodyさん03/08/06 23:34ID:???
php5入れて試してたんだが今日飽きてphp4を上から入れなおした。
どっちも動かなくなった。なんで?
誰か教えろ!
0430あぼーんNGNG
あぼーん
0431nobodyさん03/08/06 23:53ID:???
>>423
ページボタンで戻る遷移だけ、何かデータ付加したら?
postなり、getで
0432nobodyさん03/08/07 00:53ID:UxoE+zms
ある変数の中に格納されてる文字列の中に、
マルチバイト文字が含まれてるかどうかを
チェックする関数を作りたいんですが、
どうやったらいいんでしょう????????
0433あぼーんNGNG
あぼーん
0434nobodyさん03/08/07 01:04ID:???
>>432
ASCII文字しか含まれていないことを判定汁
0435nobodyさん03/08/07 02:17ID:UxoE+zms
>>434
さんくす!
0436nobodyさん03/08/07 02:32ID:???
タコな質問で age るなよ、、、この夏厨どもが、、
0437nobodyさん03/08/07 07:16ID:mVyuHaZs
乳首みれた?
http://homepage3.nifty.com/coco-nut/
0438_03/08/07 08:07ID:???
http://homepage.mac.com/hiroyuki45/hankaku09.html
0439ヽ(´ー`)ノ03/08/07 09:43ID:???
> php5入れて試してたんだが今日飽きてphp4を上から入れなおした。
阿呆か(;´Д`)
Apache 使ってるのなら httpd.conf を元に戻して apachectl restart しる。
もっと詳しく書かないと分からないですよ。
0440nobodyさん03/08/07 22:02ID:7EOk90iT
変数$test1 と言う名前をつけたいとき
この1を変数を使って表すにはどうしたらいいのでしょうか?
$test$iみたいな感じで・・
0441_03/08/07 22:09ID:???
http://homepage.mac.com/hiroyuki45/
0442直リン03/08/07 22:13ID:S+ynyqfm
http://homepage.mac.com/maki170001/
0443nobodyさん03/08/07 22:15ID:???
>>440
そんな方法などない
どこからそんなこと思いつくんだ?
根本的な考え方がおかしいとしか思えん
0444nobodyさん03/08/07 22:21ID:???
>>440
そういう時は配列を使うものだ
0445nobodyさん03/08/07 22:52ID:???
>>440
割とできないか?
$i=1;
${"test".$i}="hoge";
$i=2;
${"test".$i}="booboo";
echo $test1.$test2;
普通に動くけどな。
0446nobodyさん03/08/07 23:02ID:???
普通はやらないけどな。
0447nobodyさん03/08/07 23:26ID:???
>>440
可変変数を使う

俺的マニュアルアドレス↓
file://localhost/D:/php_manual_ja/language.variables.variable.html
0448nobodyさん03/08/08 02:17ID:???
$id = "1";
$name = "test" + $id;

だとすれば

$$name で $test1 にアクセスできるよん。
0449nobodyさん03/08/08 08:56ID:dZ77IgMd
phpで書いたカウンタ−は拡張子がhtmlでは動かせないの?
やっぱ拡張子をphpにしなきゃダメ?
0450nobodyさん03/08/08 09:03ID:???
.htaccessをいじれば
動かせると思われます。
0451nobodyさん03/08/08 10:04ID:vELPBb//
mysqlとphp4.3を使っているのですが、order byでこちらの望む順番でソートさせたいのです。
具体的に言うと
dragon > wyvern > knight > soldier > mob
みたいな感じでソートしたいのです。
こういう場合、どういう方法があるでしょうか?
045244003/08/08 10:19ID:feXjXqTi
>>445 >>448
ありがとうございました。
今回は445さんの方法を使わせていただきます^^。
通常は配列なんですけど
あらかじめあったPHPソースが配列なしの形になっており
後の処理を変更するのもめんどくさいので
for文で短縮しようかなと思いましてこんなになってしまった次第です。
0453nobodyさん03/08/08 10:22ID:???
>>451
sort用のカラムを追加すれば?
0454nobodyさん03/08/08 12:02ID:???
order by dragon, wyvern, knight, soldier, mob
これでいけなかったっけ
0455nobodyさん03/08/08 12:05ID:???
ちなみに
order by dragon asc, wyvern desc, knight asc, soldier desc, mob asc
とかも出来た気がする
0456nobodyさん03/08/08 12:34ID:/wzFscJ0
http://esenden.com/rank/ninki/ranklink.cgi?id=groovy
0457nobodyさん03/08/08 16:32ID:9ZNjRmLB
関数ですが
$a = "b";
function cb () {};
文字列cに変数aを追加して関数を呼び出すにはどうしたら良いでしょうか?

perlだと&{'c'.$a}();
0458nobodyさん03/08/08 16:38ID:???
1. 少し上のログ見てちょっと考えてみろ
2. Perl に帰れ
3. 初心者板逝け

最近このスレが見にくくて仕方がない。釣りか?
0459nobodyさん03/08/08 16:41ID:???
ああ、あと

4. RTFM

思いっきり載ってた。マニュアル通読して氏ね。
0460nobodyさん03/08/08 16:51ID:???
{'c'.$a}();
${'c'.$a}();
共にダメだったので、
マニュアルの関数部分は読んで、変数に入れない方法が知りたかったのですが。
説明不足ですいません。
■ このスレッドは過去ログ倉庫に格納されています