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

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

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2008/03/16(日) 17:23:27ID:???
まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り

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

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

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

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

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0655nobodyさん2008/04/03(木) 17:42:20ID:???
>>653
$ が { のすぐ後に続く場合にのみ認識されます
ってとこ見ると可変関数しかないんでないかなー。
0656nobodyさん2008/04/03(木) 17:48:38ID:2KfD0E2x
>>653-654
ありがとうございます
{$test(1)}みたいに、引数を持たせることは出来ないんでしょうか? 最終的には
for($i=0;$i<10;$i++){
print <<<EOF
 {$test($i)}
EOF;
}
みたいな感じで動的に変化する処理を考えてたので…… 弱ったなぁ
根本的にやり直ししかないのかな、、
0657nobodyさん2008/04/03(木) 17:58:22ID:???
>>656
そこだけヒアドキュメントやめるなりすればいいだけだと思うが
0658nobodyさん2008/04/03(木) 17:59:30ID:???
ここ見てると、やたらヒアドキュメントが好きな人が多いけど、なんで??
0659nobodyさん2008/04/03(木) 18:12:19ID:???
>>655
というか可変関数で出力できないでしょ
ヒアドキュメント内は
0660nobodyさん2008/04/03(木) 18:15:15ID:???
>>659
ところがどっこい{$hoge(1)}で出来る。
0661nobodyさん2008/04/03(木) 18:17:54ID:???
ヒアドキュメントなんだし他に何行もあるんだろ

>>656
for($i=0;$i<10;$i++){
if($i==1){$test = "結果1";}else{$test = "結果2";}
print testFunc($test);
}

function testFunc($test){
return <<<EOF
{$test}
EOF;
}

よく分からんがこんな感じでどうよ?
06626562008/04/03(木) 18:27:04ID:2KfD0E2x
みなさんすみません
>>661さんのと可変関数ていうのを調べて、トライしてみます
確かに最悪ヒアドキュメントやめればいいんですよね
ソースが汚くなりそうで気が引けるんですが…

ともかくありがとう またよろしくお願いします
0663nobodyさん2008/04/03(木) 18:28:29ID:???
まずマニュアルを読め
0664nobodyさん2008/04/03(木) 18:45:05ID:???
汚くなるのは作り方が悪いだけだろ
0665nobodyさん2008/04/03(木) 18:45:32ID:???
>>660
ひとまずphp4では出来ないな
php5限定か
0666nobodyさん2008/04/03(木) 18:49:15ID:???
>>660
{$hoge(1)}って
どういう意味になるの?
変数とユーザー関数混じっているんだけど
0667nobodyさん2008/04/03(木) 18:52:34ID:???
>>666
それはググレばあっという間に解決するぞ
0668nobodyさん2008/04/03(木) 19:31:29ID:???
可変関数はis_function_exists()してからcall_user_func()で呼んでるなぁ。
0669nobodyさん2008/04/03(木) 20:12:51ID:???
個人的にヒアドキュメントを使ったソースの方が汚い気がする。
   <<<AAA
AAA; ←こいつインデントできねーし
06706472008/04/03(木) 20:19:44ID:BSwpnKE2
ありがとうございます。
cronというのは、UNIX(?)で設定するということですよね!?

たとえばPHPファイルを一つ置いて、勝手に巡回するとかできないでしょうか?
0671nobodyさん2008/04/03(木) 20:28:41ID:???
>>670
WebCronでぐぐるといい。
勝手に指定したページにアクセスしてくれる。
0672nobodyさん2008/04/03(木) 20:49:27ID:4LgtZJ5T
Authってなんて読むの?
0673nobodyさん2008/04/03(木) 20:52:04ID:???
スレと関係ある質問をしろ
0674nobodyさん2008/04/03(木) 20:55:10ID:4LgtZJ5T
>>673
PEARとかでもAuthってあるから聞いてみた。
ぐぐったり辞書見ても書いてないんだもの。

サポートセンターに電話する時はずかちい
0675nobodyさん2008/04/03(木) 20:58:13ID:???
単語でわからんかったら
Authとは
とかそんな感じで検索すればだいたい出る
0676nobodyさん2008/04/03(木) 21:00:59ID:???
またかよ
0677nobodyさん2008/04/03(木) 21:33:03ID:4LgtZJ5T
>>675
出ませんねぇ…
0678nobodyさん2008/04/03(木) 21:35:44ID:???
>>674
お前は何を言ってるんだ
0679nobodyさん2008/04/03(木) 21:36:38ID:???
おめーはinformationがinfoとかになってても「わかりません」とか言うのか
0680nobodyさん2008/04/03(木) 21:40:59ID:???
「Authとは」でググっても
goo辞書で「Auth」で英和辞書引いても
そのものずばりが出てくるじゃねーか。嘘吐いて他人の手間増やして楽しい?
0681nobodyさん2008/04/03(木) 22:58:11ID:YxD7y5X8
for($i=0;$i<5;$i++){

}
0682nobodyさん2008/04/03(木) 22:59:43ID:YxD7y5X8
すみません、間違って途中で押してしまいました・・・。

for($i=0;$i<5;$i++){
echo $i;
}
こういうforで出力する時、表示は「01234」となりますが、
カウントダウンのように、0の次は1、1の次は2など、
順番に表示させることは出来ないのでしょうか?
0683nobodyさん2008/04/03(木) 23:10:10ID:???
できまsn
0684nobodyさん2008/04/03(木) 23:43:08ID:???
じゃばすくりぷとって知ってる?
0685nobodyさん2008/04/03(木) 23:43:16ID:???
>>682
そういうのがやりたいならJavaScriptかなー
06866822008/04/03(木) 23:54:43ID:???
>>683-685
Javascriptはすでにやっているので、他の方法を探してみました。
無理だと言うことですね。他の方法を探してみます。
0687nobodyさん2008/04/04(金) 00:00:01ID:???
>>682
43210って出したいって意味なら出来る
0688nobodyさん2008/04/04(金) 00:05:08ID:???
JavaScriptを使わないってことはページを手動で更新するってことだ。
それでいいならクッキーを利用して5の次4,3,2,1,0なんて表示は出来るがな。
0689nobodyさん2008/04/04(金) 00:09:15ID:???
>>686

>Javascriptはすでにやっているので、他の方法を探してみました。

サーバサイドとクライアントサイドがごっちゃになってないかな?
て思った。
06906822008/04/04(金) 00:14:46ID:???
>>689
サーバサイドでやりたいので、PHPを試しました。

ですが、やっぱりJavascriptしか無理っぽいですね・・。
タイマーみたいなのが作りたいので、ストップ処理も入るし、
そうなると、forとsleepを使っても出来ないみたいです。
0691nobodyさん2008/04/04(金) 00:28:43ID:???
>>669
かなり目立つように書いてカタマリに見える工夫するかなあ。
エスケープするときなんかはイチイチ考えなくていいしキレイ(な気がする)


-----
echo "<h1 id=\"header\">{$a}</h1>" ;

-----
echo '<h1 id="header">'.$a.'</h1>' ;

-----
echo <<<__________D_O_C__________

<h1 id="header">{$a}</h1>

__________D_O_C__________;

0692nobodyさん2008/04/04(金) 00:45:45ID:???
>>690
違いは分かってるよ!!!と主張してるみたいなので方法論。

header()でrefreshすれば近いことはできるんじゃ?

0693nobodyさん2008/04/04(金) 00:51:41ID:f6Xk8xc+
文字列である'$name'を、ローカルにある変数$nameの値で置き換えたいのですが
どのような方法があるでしょうか。

↓例えばこんな風になってて
$string = '$name';
$name = 'MyName';

$stringを使って"MyName"と表示させたいのです。
すぐ思いつくのはevalですが、文のみということみたいなので(?)
無理やりあてはめて書いてみたのが

echo eval("return $string;"); //MyNameと表示される

でもこれだとなんか変というか・・・(コードの見た目が)
他により一般的な書き方があったらおしえてください。
0694nobodyさん2008/04/04(金) 01:04:03ID:???
>>690
>forとsleepを使っても出来ない
これは目的のものがJavaScriptでは出来なくて諦めたってことだよな?

断言してもいいが、やり方が間違ってるだけで出来ないことは絶対ない。
コードの一部を載せるんじゃなく、最終目的を明確にした上でweb制作板のJavaScriptスレに質問してみな。
06956932008/04/04(金) 01:34:35ID:f6Xk8xc+
自己レスです。

$string = '$name';
$name = 'MyName';
eval("\$string = \"$string\";");
echo $string; //MyNameと表示される

マニュアルに載っていた例ですが、実際のコードの前後の兼ね合いから
案外すっきりいけるようでしたので、これでいってみますm(_ _)m
0696nobodyさん2008/04/04(金) 11:09:35ID:???
WebCronってタイムアウトしそうな重いページだと、リトライしてくれるのかしら・・・

>690
サーバーサイドの時点で、ページ遷移は絶対必要だから
タイマーの部分だけiframeとrefreshで回転させて・・・
0697nobodyさん2008/04/04(金) 11:22:02ID:???
無理にサーバサイドでやる理由がわからんな・・。
0698nobodyさん2008/04/04(金) 13:23:02ID:???
>>76
安易にパーミッションを777にするよりも、
まずディレクトリーのオーナをかえて、必要最低限度のパーミッションにした方がいいよ。
0699nobodyさん2008/04/04(金) 14:09:44ID:???
2週間以上前のレスにレス返すなよw
0700nobodyさん2008/04/04(金) 14:25:36ID:???
ごめん、10日近く京都に納品で環境構築していたから、
その間レスできなかった。やめた方がいい?まだ、気になるレスがあるんだが・・・
0701nobodyさん2008/04/04(金) 14:27:06ID:???
好きにしろよ
本人は見てるか分からんが、参考になる人はいるだろうし
0702nobodyさん2008/04/04(金) 14:27:16ID:???
>>700
(屮゚0゚)屮 カモーン
0703nobodyさん2008/04/04(金) 14:34:51ID:???
http://bananavi.jp/shizuoka/mobile/bbs/bbs.php?area_id=3

こんなPHP探してるんですが何処で配布されてますか?
0704nobodyさん2008/04/04(金) 14:52:44ID:???
Shift_JISで書いているファイルにShift_JISで書いたファイルをincludeしてechoすると
文字化けしてしまいます。
エンコードが違うならわかりますがなんででしょうか?
0705nobodyさん2008/04/04(金) 14:53:14ID:???
エンコードが違います
07065392008/04/04(金) 14:56:39ID:???
恵まれない子に愛のレスを。。。
0707nobodyさん2008/04/04(金) 14:58:19ID:???
>>704
スクリプトの内部エンコードが違う。
残念だけど、PHP を Shift-JIS で書くのはおススメしない。UTF8 か EUC-JP を使うべし。
http://manual.xwd.jp/ref.mbstring.html
07087042008/04/04(金) 15:05:46ID:???
>>707
なるほど
ありがとうございます
0709nobodyさん2008/04/04(金) 15:10:15ID:mEsRuTBT
プロジェクトに必要なライブラリってどこにどんな感じに定義してますか?
必要としているPEARのパッケージのリストとか
0710nobodyさん2008/04/04(金) 15:59:03ID:???
シフトJISだからだ
0711nobodyさん2008/04/04(金) 18:21:35ID:???
所詮、このスレの住人はこの程度か
どうもありがとうございました
0712nobodyさん2008/04/04(金) 18:38:04ID:???
中二乙
0713nobodyさん2008/04/04(金) 19:42:09ID:???
すまん。俺中一だwww
0714nobodyさん2008/04/04(金) 19:44:20ID:YqX/EKLM
phpからmysqlにDELETEのsql文を投げて、実行された行数を知りたいです
それが一発でわかる関数などあるでしょうか?
理想としては、以下の処理が出来るようにしたいです。
1)1回目の削除実行→3行削除されたとわかる(「3件削除しました」とメッセージ)
2)2回目の削除実行→すでに削除済みなので0(行)が返ってくる
3)「(0だから)対応するデータはありません」などとアラート表示
よろしくお願いします
0715nobodyさん2008/04/04(金) 20:12:09ID:???
>>714
http://jp2.php.net/manual/ja/function.mysql-affected-rows.php でどう?

あと、delete で where条件を指定しない(全削除)の場合は、1=1みたいなダミーの
条件文が必要だけど、PDOを使うと自動的に付けてくれるとか、聞いたことがある。

0716nobodyさん2008/04/04(金) 20:14:10ID:???
>>715 補足
ダミーの条件が必要らしいのは、行数を知りたい場合だけ。
消すだけなら要らない。
0717nobodyさん2008/04/04(金) 20:56:03ID:???
>>682
それは毎回文字が消えて次の文字が表示されなきゃだめなわけ?

ただ順番に文字を表示するだけなら

ob_flush();
flush();

使えばいくない?
0718nobodyさん2008/04/04(金) 21:49:14ID:???
任意のウェブサイトのphpファイルのソースを見る方法って存在しますか?
0719nobodyさん2008/04/04(金) 21:50:19ID:???
>>715
出来ました!!
こりゃ便利! 助かりましたありがとう!
0720nobodyさん2008/04/04(金) 21:55:09ID:???
>>718
犯罪ダメ絶対
0721nobodyさん2008/04/04(金) 23:10:34ID:???
ソースを見るだけで犯罪になるの?
0722nobodyさん2008/04/04(金) 23:49:40ID:???
>>718
ウェブサイトの管理者に頼み込む
合法ぅ
0723nobodyさん2008/04/05(土) 00:26:17ID:???
>>721
不正アクセス禁止法で逮捕
0724nobodyさん2008/04/05(土) 00:28:40ID:???
.phpsでアクセスする
最後のsはソースの意味
詳しくはググれ
0725nobodyさん2008/04/05(土) 00:29:25ID:???
phps 拡張子
0726nobodyさん2008/04/05(土) 00:34:13ID:???
>>724
それで見れるんなら苦労しないだろ・・
0727nobodyさん2008/04/05(土) 00:48:09ID:???
マジレスカコワルイ
0728nobodyさん2008/04/05(土) 02:10:23ID:2dn41xYV
$pInfoAryという配列を作り、以下のプログラムを書きましたが何も出力されません
出力するデータが配列中にあるのは確認してあります、何故でしょうか?

function returnData(){
 return $pInfoAry;
}
$aaa = returnData();
echo $aaa[0]['gakki1'];

ちなみに、以下もダメでした
function returnData(){
 return var_dump($pInfoAry);
}
$aaa = returnData();
echo $aaa;

以下は大丈夫だったんですが、、
function returnData(){return "さんま";}
$aaa = returnData();
echo $aaa;
0729nobodyさん2008/04/05(土) 02:17:36ID:???
gakkiの話なんか一切出てきてないじゃないか。
0730nobodyさん2008/04/05(土) 02:24:44ID:???
function returnData(){
 return $pInfoAry; ←この段階で$pInfoAryの中身はnull
}
0731nobodyさん2008/04/05(土) 02:28:31ID:???
>>728
OOPのgetterでもないのになんでそんな書き方するの?
普通に$pIngoAry[0]['gakki1'];でいいじゃない。
0732nobodyさん2008/04/05(土) 02:39:32ID:???
>>728
スコープの範囲を勉強をしたほうがいい
globalを定義するか引数で値を渡すか
そもそもそんな無意味そうな関数作っても・・・
07337282008/04/05(土) 05:55:14ID:2dn41xYV
>>730-732
ありがとうございます そうでした、スコープすっかり忘れてました
恥ずかしい… ていうかヤバイなぁ、どんどん忘れてく
ちょっと試したいことがあるので、無意味な関数かどうかは今のところ
わからないんですが、、
また何かあったら質問します すみませんがよろしくお願いします
0734nobodyさん2008/04/05(土) 07:05:54ID:IhNkb+FD
PHPのファイルを作成したので
Xamppで開発環境を整えて
ブラウザで見ようとしたのですが
Not Foundで
「The requested URL /xampp/index.php was not found on this server.」
というエラーが出てうまくいきません
どのような原因が考えられますか?
0735nobodyさん2008/04/05(土) 07:18:40ID:???
まんまwas not found on this serverじゃないのか
0736nobodyさん2008/04/05(土) 07:21:47ID:IhNkb+FD
>>735
今回見れなかったtest.phpと同じディレクトリに
index.htmlがあるんですがそれは見れるんです
サーバ上で見つからなかったというのは
どのような原因が考えられますか?
0737nobodyさん2008/04/05(土) 07:48:45ID:???
まずはエラーログ見れ。
0738nobodyさん2008/04/05(土) 08:01:35ID:IhNkb+FD
[Sat Apr 05 06:44:58 2008] [notice] Child 4608: Exit event signaled. Child process is ending.
[Sat Apr 05 06:44:59 2008] [notice] Child 4608: Released the start mutex
[Sat Apr 05 06:45:00 2008] [notice] Child 4608: Waiting for 250 worker threads to exit.
[Sat Apr 05 06:45:00 2008] [notice] Child 4608: All worker threads have exited.
[Sat Apr 05 06:45:00 2008] [notice] Child 4608: Child process is exiting
[Sat Apr 05 06:45:00 2008] [notice] Parent: Child process exited successfully.


エラーログはこんな感じです
アパッチは問題がないようです
0739nobodyさん2008/04/05(土) 11:59:09ID:???
xamppなんて使うな
0740nobodyさん2008/04/05(土) 12:14:32ID:???
>>738
どうしてphpの質問をしないのですか?
よかったら教えてください
0741nobodyさん2008/04/05(土) 12:21:33ID:L0wIdTdL
一行掲示板でformにaction="<?= $_SERVER[ "PHP_SELF" ]; ?>とやっています
phpをiframeで呼び出した時、コメントを書いてinput内でエンターを押しても何もおきません
$_POSTに中身はあるのにログの更新がされていません(ちゃんとsubmitを押すとok)
直接開いた場合と、iframeではどんな差異があるのでしょうか?
ちなみにiframeにしているのはニコ動のように独立させたいからです
0742nobodyさん2008/04/05(土) 12:29:26ID:???
なんで=2回も書いてんの?
0743nobodyさん2008/04/05(土) 12:51:29ID:???
>>741
いまいち言ってることがわからんから勘レスだが
ブラウザの仕様の問題でPHPの話じゃないんじゃね?
0744nobodyさん2008/04/05(土) 14:23:10ID:IhNkb+FD
>>739
本来はわかりやすくて簡単なはずなんです
どうしても使いこなしたいのでもうちょっと粘っていきます

>>740
Xamppに関する質問ではありません
htmlファイルは問題なく表示できるのに
作成したPHPファイルをブラウザで見ると
サーバーにありませんと言われてエラーが生じているのが問題なんです

本当にくだらない質問ですが結構悩んだつもりなので
わかる人がいたらどうか教えてください
0745nobodyさん2008/04/05(土) 14:30:58ID:???
またメモ帳でファイルを作成してindex.php.txtで保存されててっていうオチか?
0746nobodyさん2008/04/05(土) 14:34:57ID:???
>>744
本当にサーバに無いんだろ
ファイル名とアドレスを見直せ

素の状態のXAMPPなら複雑な不具合なんて起きるわけ無い
この程度のことも解決できないようなヤツがややこしい状態を作れるとも思えないしな
0747nobodyさん2008/04/05(土) 14:38:24ID:???
index.php.txt もありそうだなあ。

俺は
> 今回見れなかったtest.php
> /xampp/index.php was not found
変わったリライト仕込んでるなと思った。
0748nobodyさん2008/04/05(土) 15:10:11ID:IhNkb+FD
>>747
すみませんエラー表示をコピペしたのは
test.phpのほうではなくindex.phpのほうです

ファイルの種類はPHP Scriptなのでテキストではないようです
0749nobodyさん2008/04/05(土) 15:30:05ID:???
phpが仮に動作していないとしても、テキストとして表示されるはずなので、
ファイルが見つからないといわれてる以上、本当にそのファイルがないとしか考えられない。
xamppがC直下にインストールされていると仮定した場合、
C:\xampp\htdocsがデフォルトのドキュメントルートだが、
http://localhost/を開いた場合、C:\xampp\htdocs\xampp直下が表示されるように設定されている。
C:\xampp\htdocs以下にindex.phpをおいて、http://localhost/index.phpにアクセスした場合でも、
C:\xampp\htdocs\xampp\index.phpにアクセスされる。
C:\xampp\htdocs以下に、phpというフォルダをつくり、そこにindex.phpをいれ、
http://localhost/php/でアクセスしてみ。
0750nobodyさん2008/04/05(土) 15:32:32ID:???
おまえ優しいな
0751nobodyさん2008/04/05(土) 15:37:52ID:???
XAMMPはその辺の初期設定が初心者向きじゃないんだよな
もっと素の設定でインストールしたほうが初心者は迷わないだろうね
07527492008/04/05(土) 15:42:03ID:???
とおもったが、勘違い。
http://localhost/を開いた場合、/xamppにリダイレクトされるのは、
http://localhost/index.phpのヘッダでそうかいてたからのようだ。
Apacheの設定ではなかった。すまぬ。
このindex.phpを上書きすれば、普通にhttp://localhost/でも見れるはず。
0753nobodyさん2008/04/05(土) 16:06:28ID:IhNkb+FD
>>749
試してみましたがそれでもうまくいきませんでした
ですが再インストールするとなぜかうまくいくようになりました
原因は不明ですが結果オーライなのでもうこれでいいです
つまらない質問に真剣に対応していただきありがとうございます
0754nobodyさん2008/04/05(土) 16:48:23ID:???
       ヽ(・ω・)/   ズコー
      \(.\ ノ
0755nobodyさん2008/04/05(土) 16:49:39ID:gVFutqXh
指定の時間、たとえば27:00になる度にあるファイル(a.log)を書き換えたいのですが
どうすればできるでしょうか?
■ このスレッドは過去ログ倉庫に格納されています