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

【PHP】質問スレッドpart33【php】

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2006/02/16(木) 03:19:52ID:xwXojaq/
PHP全般の質問スレです。
【基本ルール】
・新規質問の方は上げてください。age進行でお願いします。
・質問者は2回目以降、最初のレス番号を名前欄に入れてください。
・回答者は質問者に対して>>(アンカー)をつけてください。
・煽り・荒らしは放置。荒らしに反応した香具師も荒(ry
・解決しなくてもこたえてもらったら礼を。
【質問テンプレ】
・マニュアルを調べたか、google検索したか(調べたキーワード)
・タイトル(禁:教えてください!etc) 例:requireとinclude
・内容 例:requireとincludeはどう違うのですか?
・質問する際には環境も明記。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークはそれぞれの該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
・オブジェクト指向については良スレがないから本を買え
・速さについては自分でベンチをとってここに書け(違う環境の人も調べてくれるかも)
【PHP マニュアル】
http://www.php.net/manual/ja/
※マニュアル上部の「search for」から検索を活用すべし(便利)。

過去スレ、関連リンク、FAQ等>>2-10辺り
0263nobodyさん2006/02/23(木) 23:36:05ID:???
>>262
ヒント:戻り値
0264nobodyさん2006/02/23(木) 23:51:45ID:???
今日の10日後とかを表す簡単な方法きぼんぬ
0265nobodyさん2006/02/23(木) 23:54:03ID:???
>>264
ヒント:http://jp2.php.net/manual/ja/ref.datetime.php
0266nobodyさん2006/02/24(金) 00:57:31ID:???
おまいら、下らない質問スレ行けって
0267nobodyさん2006/02/24(金) 01:03:46ID:???
まぁ、難しい話だよな
自分の質問が下らないかどうか分かるレベルならこのあたりの質問はしない
つまり質問者にどうこう言ってもねぇ・・
0268nobodyさん2006/02/24(金) 01:18:16ID:???
でも「簡単な方法きぼんぬ」がくだらなくない質問だったら
世の中の質問はみんなくだらなくないと思う。
ぶっちゃけ、くだ質の中でも最低ランクの質問だと思うぞ >>264
0269nobodyさん2006/02/24(金) 01:40:17ID:???
回答者がくだらねぇと思ったらスルーすればいいだけじゃん
0270nobodyさん2006/02/24(金) 01:49:26ID:???
つーか質問者じゃなくくだらない質問に回答するやつがくだ質スレに逝け
0271nobodyさん2006/02/24(金) 02:33:27ID:???
でもスルーだと誰も読んでいないのか、スルーなのか、誰も分からないのか判別付かないかも
「そんな下らない質問するな」とでも書くか?
0272nobodyさん2006/02/24(金) 04:09:55ID:???
array(['user_id']=>'3',['user_id'] =>'7')

となっている動的に返される配列を

array('3','7')

のように変換したいのですが、どうするのがスマートですか?

foreachで展開してまた、配列を作るという頭の悪そうなアルゴリズムしか浮かばないです
orz...
0273nobodyさん2006/02/24(金) 04:24:41ID:???
>>268-271
くだらない会話
0274nobodyさん2006/02/24(金) 05:32:32ID:???
>>272
array_values ってこと?
0275nobodyさん2006/02/24(金) 06:29:28ID:???
だな
>>272
ちっとはマニュアル調べろって
http://www.php.net/manual/ja/function.array-values.php
0276nobodyさん2006/02/24(金) 16:23:17ID:???
有料共用のレンサバでHPを運用しています
PHPスクリプトは動いていますがPHPが作ったディレクトリやファイルが消去できなくなっています
FFFTPでパーミッション等の設定をいくら変えてもダメです
で原因はパーミッションでは無くディレクトリやファイルの所有者自体が違うから
まではわかりました(すべてではないが一部ある)
このレンサバの仕様は
CGI の実行権限 others権限(SuEXEじゃないサバ)
ファイルの所有者は私
PHPはCGI版ではなくapacheのモジュールとして動作
CGI を実行するユーザ名 wwwユーザー
つまりPHPが作ったディレクトリやファイルの一部が私ではなくwwwユーザーになっているものが
原因のようです(すべてではないが一部ある)。FFFTP上でも所有者名が違うことがわかります。
Googleしたところ、CGI等が作ったファイルが所有者違いのため消せないことがある
そういう場合はCGIを使って消すべしとあったのでFFFTPで直接消そうとするのではなく
rmdir()やunlink()のスクリプト経由でやってみましたがこれもダメです
今回は最悪サバ缶に消去を頼むとしても、原因を突き止めないと消せないファイルはこれからも
作られ続けるので
PHPのどこを気をつけたらこの症状が防げるか
これを消すPHPのプログラムがあったら教えていただけませんか
0277nobodyさん2006/02/24(金) 16:39:38ID:???
>>276
鯖引越がBEST
02782762006/02/24(金) 17:06:05ID:NYH/iAxr
>>277
エエェェ(´д`)ェェエエ 
良ければもう少し詳しく教えていただければ助かります
このサバにいるかぎり直す方法はナイということですか?
共用だから他にも利用者がいるので文句が多数出ないように
そういう仕様にはしないような気もします
この理解は違うのでしょうか
0279nobodyさん2006/02/24(金) 17:11:58ID:???
>>276
やり方が悪いだけだと思う
エラー表示させたら原因もわかるだろ
0280nobodyさん2006/02/24(金) 17:14:51ID:???
そのディレクトリのオーナーならそのまま消すこともできるだろうが
ディレクトリ自体もphpで掘ったなら、ちょっとめんどうだね
0281nobodyさん2006/02/24(金) 17:27:08ID:???
>>276
phpの問題、つうか、セキュリティ上の問題。

セーフモードで動いてるんで、そうなる。
鯖を変えたところで、セーフモードでやってる所じゃ同じ事になるね。

たぶん、phpでファイルを消すスクリプトがおかしいんだろ。
ファイル作ったときに、パーミッションを適正に設定してないとかじゃねーの?
0282nobodyさん2006/02/24(金) 17:28:24ID:???
>>276
普通は、ディレクトリを先に作っとくもんだ。
0283nobodyさん2006/02/24(金) 17:28:26ID:???
なぜこのスレに皮先が…orz
02842762006/02/24(金) 17:31:58ID:NYH/iAxr
>>>280
>ディレクトリ自体をphpが掘ったなら
こういう現象になることがあるということですか?

>>279
PHPスクリプト自体はご機嫌よく稼動しています
エラーはとくに無いみたいです
02852762006/02/24(金) 17:46:14ID:NYH/iAxr
>>281
セーフモードじゃないということで借りています
借りる時(試用期間中)にチェックもしました
http://php.morva.net/manual/ja/features.safe-mode.php
の真ん中のほうにあるチェックの仕方をやってみました
セーフモードじゃないと思っていたこと自体が間違いということでしょうか

>>282
とりあえずディレクトリをPHPに作らせないようにして
一度やり直してみます
どうもありがとうございました

0286nobodyさん2006/02/24(金) 19:06:51ID:???
皮先うぜえな
0287nobodyさん2006/02/25(土) 12:21:13ID:???
なにこのひどい過疎っぷり
0288nobodyさん2006/02/25(土) 12:31:18ID:???
くだ質で十分だとみんな気づいちゃったんじゃない?
そもそも下らないかどうかなんて、主観というか本人のレベルに依存する話だしな。
0289nobodyさん2006/02/25(土) 13:56:44ID:???
皮先が通ったあとはペンペン草も生えないってどこかでみたことある。
0290nobodyさん2006/02/25(土) 14:45:50ID:Z8amSH1W
全くの素人です。
os=windows XP
HTMLコーディング=出来ます。
CGI=有り物の設定をちょこっと変更する程度。
PHPでこんなことをやろうと思っています。
-------------------------------------------------------------------
HPの右隅にカレンダーと新着を置いて、別webページより管理
カレンダー:2ヶ月表示オートで切り替わり、管理ページより指定した日にちだけ
だけ赤く表示・キャンセル機能
新着:管理ページより、新着情報入力追加・削除・コメントリンク機能
-------------------------------------------------------------------
HPで表示するだけ、別webページで管理変更をPHPで作れるのでしょうか?
PHPで出来るとしたら、構造はたぶん頑張って勉強して出来ても、HPへの引き継ぎ処理が何をどうやればいいか見当が付きません。
PHPの根本から勉強しなくては出来ない事でしょうか?
0291nobodyさん2006/02/25(土) 15:15:28ID:???
>>290
貴方が使われてる「HP」の意味が不明瞭です。
(HomePageの略であろうことは判ります)
現在のHomePageの意味合いは、Webブラウザでアクセスできる
インターネット上のコンテンツぐらいの大雑把なものなので
CGIやPHPで作った動的なコンテンツもHomePageといえます。
0292nobodyさん2006/02/25(土) 15:39:02ID:???
>>291
そこまで言うなら
ホームページ→ブラウザのホームボタンを押した時に表示されるページ(サイト)
0293nobodyさん2006/02/25(土) 15:41:53ID:???
>>290
3回くらい読み返してみましたが
何を聞きたいのかさっぱりわかりません。
適当におぎなって推測しても5通りくらいに解釈できます。
質問を整理してください。
0294nobodyさん2006/02/25(土) 15:44:41ID:Z8amSH1W
>>291
不明瞭な表現をし、失礼致しました。
トップページのカレンダーと、新着情報を管理ページからの変更で内容が変わるようにしたいと考えております。
管理用のアクセス制限ページを作り、そこで変更・追加・削除の管理したいと思っております。
0295nobodyさん2006/02/25(土) 15:51:55ID:???
>>294
いや、具体的な機能(表示とか管理)の話以前に
「HPへの引き継ぎ処理が」というところで
その"HP"って何よ?という疑問がでるということ。
0296nobodyさん2006/02/25(土) 16:00:13ID:Z8amSH1W
>>293
1.PHPでサイトトップページの二ヶ月表示のオートカレンダーの色変更を別ページから、更新できるようにすることが可能でしょうか?
2.PHPでサイトトップの新着情報の変更・追加・削除・を別ページから、更新できるようにすることが可能でしょうか?
3.PHPで出来たとしても、(テンプレ等探しましたが見あたらず)本を読む程度の漱石じゃ不可能そうでしょうか?
02972952006/02/25(土) 16:00:20ID:???
ああ、サイトのトップページのことね。
そのトップページの生成方法を
・新着情報等をincludeするSSIを利用したshtmlにする。
・新着情報等をincludeするPerlやPHPを利用したCGI他の動的なものにしてhtmlを出力する。
・トップページは静的なhtmlにして、そのhtmlを別の管理プログラムで書きかえる。
02982952006/02/25(土) 16:03:27ID:???
>・新着情報等をincludeするPerlやPHPを利用したCGI
これはincludeじゃなくて「取り込む」という意味で
0299nobodyさん2006/02/25(土) 16:07:13ID:???
>>290
PHPでそういうサイトを作れるか?ということであれば、作れます。

> PHPの根本から勉強しなくては出来ない事でしょうか?
ある程度自在に操れない人の場合、自作するのはかなり困難でしょう。
残念ながら、そういう仕組みの既存のスクリプトがあるかどうかは知りません。

>>295
引継ぎ、つーか、(PHPスクリプトが処理する)変更を(HTMLで作ろうとしている)画面上に反映、ってことだべ。
HTMLにPHPを埋め込める つー悲しい誤解が導き出した悲劇だぁね。

実際には、こういう手順になる。
1. もともとhtmlファイルだったものをphpの中の人が処理できるように拡張子phpに変更する。
2. 必要に応じてphpの命令を埋め込む。
03002902006/02/25(土) 16:13:10ID:Z8amSH1W
>>293 >>295 
ありがとうございます。
解決の糸口が見えてきた気がします。
メモして、何とか探して勉強してみます。
0301nobodyさん2006/02/25(土) 16:14:46ID:???
>>290
名に言ってるかさっぱりわかんね
だがIDを出している点は評価してやる。

>>295
てめえは帰れよ
0302nobodyさん2006/02/25(土) 16:14:48ID:???
>>300
>>290は>>293と>>295のレスから
どうやって解決の糸口を見つけたのか…
謎は永遠に残ったままなのであった
0303nobodyさん2006/02/25(土) 16:24:17ID:???
>>301
もっと感応能力を磨かないと、優秀なエスパーにはなれないよ
0304nobodyさん2006/02/25(土) 16:32:22ID:???
このスレには馬鹿が多すぎる
0305nobodyさん2006/02/25(土) 16:35:37ID:???
そんなこと言われてもねぇ
0306nobodyさん2006/02/25(土) 17:25:15ID:cZFcTwP1
php5でrdfを解析しています
<rdf:Seq><rdf:li rdf:resource="http://www.hoge.com/test.php"/>
このようなタグや属性があった場合
getElementsByTagName("rdf:Seq")やgetAttribute("rdf:resource")ではうまくいかず
getElementsByTagName("Seq")やgetAttribute("resource")と書くとうまくいくのですが
このような事が起こってしまう原因をご存知の方はいますか?
できれば正確な名前"rdf:Seq""rdf:resource"でアクセスするようにしたいです
0307nobodyさん2006/02/25(土) 17:41:51ID:???
>>306
getElementsByTagNameNS()
0308nobodyさん2006/02/25(土) 17:46:17ID:???
>>288
そろそろこのスレとくだ質を統合する時期にきてるのかもね。
くだ質だけあれば十分w
0309nobodyさん2006/02/25(土) 18:23:02ID:???
>>307
ありがとうございました
なんとかできそうです
0310皮先くん ◆N3i.Qu1SoY 2006/02/25(土) 19:59:19ID:???
SSIでbashを使って
ttp://oresama.hopto.org/~sheel/nwbachlow.shtml
このように2006年2月の各都市の最低気温の平均値を自動算出させて
使っています。重宝しているのですが、スクリプトをいちいち書き換えなければ
現状では2006年の2月しか対応できません。

そこで質問です。
formを使って○年の△月の○と△の部分をshellscriptに送る方法は
ありますか?
もしくはshellscriptではなく
phpで2006年2月の各都市の最低気温の平均値を自動算出可能ですか?
0311nobodyさん2006/02/25(土) 20:06:18ID:???
>>310
> phpで2006年2月の各都市の最低気温の平均値を自動算出可能ですか?
データがあれば、スクリプト組めば算出できるんじゃね?

shellscriptはスレ違いだと思う。
0312nobodyさん2006/02/25(土) 20:08:33ID:???
>>310
bashスクリプトがコマンドライン引数を受け取って処理できるようにしてあれば
$output = `スクリプト $引数`; って形でスクリプト呼んで出力を受け取れるよ。
0313nobodyさん2006/02/25(土) 20:32:21ID:???
皮被りはスルーの方向で
03143112006/02/25(土) 20:36:25ID:???
>>313
スマソ 忘れてた
OK、了解。
0315皮先くん ◆N3i.Qu1SoY 2006/02/25(土) 20:46:54ID:F0bSXXFW
>>311
ありがとうございます。
データは気象庁のWebサイトからcurlコマンドで取得しています。
phpでは、bashみたいに
(1)curlして
(2)好きな行の好きな数値だけをgrepやsedでピックアップ
ってなところも可能ですか?
0316nobodyさん2006/02/25(土) 22:28:03ID:???
(´-`).。oO(質問マダー?(・∀・)っ/凵 ⌒☆チンチン)
0317nobodyさん2006/02/25(土) 22:49:04ID:???
最近、質問が少ないね…
0318nobodyさん2006/02/25(土) 23:58:42ID:???
質問カマーンщ(´д`)
0319nobodyさん2006/02/26(日) 00:01:22ID:???
えと・・あの・・・(もじもじ) や、やっぱりやめときま・・あ、でもこれ訊かないといけないし・・
ば、ば・・バナナはおやつにはいるんですか?
0320nobodyさん2006/02/26(日) 00:32:55ID:???
>>285
むかーしハマったの思い出した。。
コレ使ってみ

function delDir( $dirname )
{
if ( ! file_exists( $dirname ) ) return "見つからない";
$dh = opendir( $dirname );
if ( $dh === false ) return "開けない";
while ( ( $file = readdir($dh) ) !== false ) {
if ( $file == "." || $file == ".." ) continue;
if ( ! unlink( $file ) ) {
closedir( $dh );
return "ファイルが消せない→$file";
}
}
closedir( $dh );
if ( ! rmdir( $dirname) ) return "だめでした";
return "おしまい";
}
0321nobodyさん2006/02/26(日) 00:37:20ID:???
>>320
削除できない時に、もちっとchmodして足掻いてほしい。
0322nobodyさん2006/02/26(日) 00:49:02ID:???
>>321
あー、こうかな
if ( ! unkink( $file ) && ( ! chmod( $file, 0666 ) || ! unlink( $file ) ) ) {
0323nobodyさん2006/02/26(日) 01:08:38ID:???
>>322
こらこらその行の前に$file=$dir.'/'.$file入れろ
関係ないファイル消すぞ
0324皮先くん ◆N3i.Qu1SoY 2006/02/26(日) 02:26:44ID:WcIHh0oV
>>241
>>242
の件ですが、
ttp://oresama.hopto.org/~sheel/phptest/formtest/form.php
このようになんとかうまくいくようになりました。
form.phpで書き込まれた(または選択された)値について
POSTでform.phpへ値を返すようにしています。
>>241
でつまずいていた原因がわかりました。
それはPOSTで値を受け取る方法が
$name
として受け取っていたからでした。
正しくは(PHP4.3の場合は)
$POST_name
が正しいのです。

俺様自力で何でも解決できちゃう強者なので、
そのすごさをここでおまいらにいちいち報告してやりますね。
0325nobodyさん2006/02/26(日) 02:37:38ID:???
324が見えないな
0326皮先くん ◆N3i.Qu1SoY 2006/02/26(日) 02:42:30ID:WcIHh0oV
まぁ焦らずともそのうち見えるようになるよ。
0327nobodyさん2006/02/26(日) 03:16:23ID:???
なんでスレ番が飛んでるの?
0328nobodyさん2006/02/26(日) 03:18:22ID:???
世界の七不思議の一つ
0329nobodyさん2006/02/26(日) 03:49:50ID:tRG/7BVD
mb_send_mail関数で日本語メール送信すると日本語の部分が??になる
php.iniは間違いなく設定してある
同時にログを取るためにfwrite関数を使ってるけどこれも化けてない
考えられる原因を全て答えろ童貞うんこちんこども
0330nobodyさん2006/02/26(日) 03:59:19ID:???
mb_language("Japanese");
mb_internal_encoding("使ってる文字コード");

これをmb_send_mailする前に呼べばうまくいったような覚えがするが
動かなかったらごめんね、小便野郎
0331nobodyさん2006/02/26(日) 04:01:30ID:???
皮もついに名無しか...
0332nobodyさん2006/02/26(日) 04:05:05ID:???
皮先結局nobodyかよwwwwwwwテラバロッシュwwwwww
0333皮先くん ◆N3i.Qu1SoY 2006/02/26(日) 04:16:24ID:WcIHh0oV
九州と較べるとめずらしく今日は東京は寒いんですね。
ttp://oresama.hopto.org/~sheel/lowestbach.shtml

PHPでもこの程度のことが簡単にできるといいんだが・・・。
0334nobodyさん2006/02/26(日) 10:50:39ID:???
質問マダー?
0335nobodyさん2006/02/26(日) 11:02:06ID:???
皮先のせいで相当空気悪くなったからなぁ・・・
0336nobodyさん2006/02/26(日) 11:14:21ID:???
質問マダー?
0337nobodyさん2006/02/26(日) 11:20:04ID:???
>>177もう一回来ないかな。
0338nobodyさん2006/02/26(日) 11:55:23ID:???
>>308
個人的にはこっちのスレ残して欲しい。くだ質は読んでないし書き込みもしてないし。
まあ本当にスレの必要がなくなれば誰も書き込まなくなって自然に落ちるのだから統合だのなんだの言うだけ無意味だが。
人がいる限りどうせ次スレ立つでしょ。
0339nobodyさん2006/02/26(日) 12:07:01ID:???
回答する人もあんなやつの質問には答えたくないだろうな
0340nobodyさん2006/02/26(日) 12:29:18ID:???
偏差値90とか平均点10くらいのテストで一人だけ100点とるようなことじゃないと無理
平均点10のテストなんて中学生に東大入試解かせるとかそんなんだろ
実際は数学英語国語全て偏差値30以下の池沼なんだろうけど
0341nobodyさん2006/02/26(日) 12:33:24ID:???
高三のとき駿台模試でネタバレ使って数学満点とっても70後半だったな。
90なんてハッタリは偏差値の概念知ってたらこけないから>>174は中卒だろ。
0342nobodyさん2006/02/26(日) 12:41:01ID:???
池沼学校で超優秀な生徒だったんだろ


池沼学校で国語偏差値30なら池沼の中の池沼だなwwwwwwww
0343nobodyさん2006/02/26(日) 12:41:10ID:???
偏差値の計算方法を知っていれば嘘か本当かはすぐわかる
0344nobodyさん2006/02/26(日) 13:13:54ID:???
そんなに引っ張るネタか?
また来られたらウザイしもうやめようやそのネタ
0345nobodyさん2006/02/26(日) 14:24:47ID:???
小さなことで後からつつくのは愚かな行為だ。
ここはPHPのスレなんだから、質問以外の会話は必要ないだろう?
大人数で一人の人間を攻撃するなんて君たちは最低のクズだな
0346皮先くん ◆N3i.Qu1SoY 2006/02/26(日) 14:27:36ID:dOqMy4uq
まぁ実際のところ>>340の言う通りで、
全国平均点が10点もないとんでもないテストがあって、
それで100点取ってみたら偏差値105くらいだったよ。数学な。
まぁ2年の最初で3年も一緒に受けるテストだったからそれくらいの平均点はしょうがないし。

それにしても>>342の言うことは正しい。
東大に行ったくらいで神扱いな底辺高校だった。
0347nobodyさん2006/02/26(日) 14:33:01ID:???
for文の中で、一番最後にやりたい処理があるんだけど
ループ内でcontinue使いまくりで最後ってどこよ?てときに
for( $i=0; $i<100; f(),$i++ ){
$i++のとこによく関数呼び出しいれちゃうんだけど、これって
マナー的にはどうなの?
0348nobodyさん2006/02/26(日) 14:46:53ID:???
ループするたびに関数呼び出すよりは
ループ内で条件分岐させた方がスマートだと俺は思う。
0349皮先くん ◆N3i.Qu1SoY 2006/02/26(日) 14:53:45ID:dOqMy4uq
>>324
の件なんですが、
formでPOSTされたものをphpスクリプトで受け取る方法はわかったのですが、
POSTされた値をtext.batファイルに書き込むことがいまいちわかりません。
これはどうやったらいいのでしょうか?
今は↓こんなふうにやっていて、submitするとtext.datに
書き込まれるはずなんだけどなぁと思いますがうまくいきません。
ちなみにアクセス権はよくわからないのでなにも考えなくていいように
全部777にしています。どうも「print」の部分はうまくいくのに、
「fopen」関連はちゃんと動作していない感じです。text.batに何も書き込まれないので。どこがわるいのでしょうか?

<?php
$filename = "text.dat";
if (isset($_POST['submit'])) {
print "Your name is " . $_POST['name'] . ".<br>";
print "Your sex is " . $_POST['sex'] . ".<br>";
print "Your hobby is " . $_POST['hobby'] . ".<br>";
print "Your OS is " . $_POST['OS'] . ".<br>";
print "Your opinion is " . $_POST['kansou'] . ".<br>";
$file = fopen($filename,"w");
flock($file, 2);
fwrite($file, $POST_['name']);
fwrite($file, $POST_['sex']);
fwrite($file, $POST_['hobby']);
fwrite($file, $POST_['OS']);
fwrite($file, $POST_['kansou']);
flock($file, 3);
fclose($file);
}
?>
0350nobodyさん2006/02/26(日) 15:04:02ID:???
しかしこの固定ってホント理解力ないよな
典型的に頭悪いガリ勉タイプだと思う
0351nobodyさん2006/02/26(日) 15:55:59ID:izomZemY
ども、たった今PHP始めたところです。
質問なのですが、
if文の条件部分に間違えて代入演算子を使ってしまったのですが
PHP、アパッチ共に怒ってくれませんでした。

if( $hoge = "hogehoge" )
{

}

で、入門書で調べたところ、
「気をつけてコーディングしてください」
とだけあったのですが、
皆さんは、自分で気をつける以外の方法をお持ちですか?
(チェックツールのようなもの?)
0352nobodyさん2006/02/26(日) 16:06:39ID:???
;
0353nobodyさん2006/02/26(日) 16:09:31ID:???
>>351
その間違い間違いであるがエラーではないからだれも教えてくれません。
その手のミスを防ぐ原始的な方法としては
if ( "hogehoge" == $hoge) ;
と書くようにすること。こうすれば "hogehoge" = $hoge はエラーとなるのでわかりやすい
0354nobodyさん2006/02/26(日) 16:16:39ID:???
$x == NULL
で良く使われるヤツだな。

NULL == $xって最初は何だ?って思うんだけどね。
0355nobodyさん2006/02/26(日) 16:20:59ID:???
>>351
ifの条件式の中で代入演算子が使えなくなったり怒られたりするようになると、手間が増えて面倒。
特にNULL,FALSE,なんかの値(や配列)のどれかを返す関数を使う場合、ifやwhileの条件式の中で使うとすっきりと書ける。

ミスの対処法は>>353が書いてるようにするくらいしか無いんでね?C FAQでも見かけた希ガス。
0356nobodyさん2006/02/26(日) 16:23:25ID:???
なるほどな、そう書けばタイプミスしても代入されずに済むか
0357nobodyさん2006/02/26(日) 16:37:46ID:YAFRqcKG
MySQLに接続失敗したときに出るメッセージを出力されないようにするにはどうすればいいんですか?
0358nobodyさん2006/02/26(日) 16:39:13ID:izomZemY
>>353
いや、ホント助かりました。
ありがとうございます。

VB→C#とやってきてるのですが、
$hoge = 12;
$hoge = "test";
#hoge = date("Y");
とか、型宣言してないのに。。とか、驚き中です。

先ほどの質問後にIDEでもあればいいのかなと思い、
ttp://phpspot.net/php/phpeditor.html
がHITしたので、特徴にある、
「・構文チェック機能 … ボタン一発で構文エラーがないかチェックできます。」
で、前述のif($hoge = "hoge")が怒られるかどうか確認してみます。

>>354
あ〜、なるほど〜って感じです。
先輩。助かりましたよ。
ありがとうございます。

>>355
そうですよね、条件文内で関数使いますもんね。
>特にNULL,FALSE,なんかの値(や配列)のどれかを返す関数を使う場合、ifやwhileの条件式の中で使うとすっきりと書ける。
これ、メモっておきました。
ありがとうございます。


ちょっとした疑問追加です。
echo関数の引数に、改行コードを含めるのは慣例で、
理由はHTMLとして出力された時に読みやすくする為という事でよいですか?
0359nobodyさん2006/02/26(日) 17:00:53ID:???
>>358
> 「・構文チェック機能 … ボタン一発で構文エラーがないかチェックできます。」
> で、前述のif($hoge = "hoge")が怒られるかどうか確認してみます。
それを怒るIDEは存在しないと思いますよ。構文としては合ってるし、よく使うから。
if($hoge = hoge()) {
 hoge2($hoge);
}
みたいな感じで、関数の戻り値をチェックするのと同時に変数に格納しといて
ifの中でその値を利用する…みたいな書き方は普通にやります。
よく使うケースは
if($fp = fopen("file", "a")) {
 fputs($fp, $data);

}
$hoge = hoge();
if($hoge) {
 hoge2($hoge);
}
と分けてもいいんだけどかえって煩わしいので。

それにしても if("hoge" == $hoge) ってミスタイプ防止が目的だったのか…
同じ会社でこういうコーディングする人がいるから何でだろうとずっと思ってたよ。
0360nobodyさん2006/02/26(日) 17:01:29ID:???
>>357
適切なエラー処理

根本的な接続ミスの対処
0361nobodyさん2006/02/26(日) 17:03:45ID:???
>>357
該当部を@でエラー出力を抑制し、
自前でエラー処理をしておく。
0362nobodyさん2006/02/26(日) 17:04:43ID:???
あちゃ。変なとこで投降しちゃった。まぁ、意味は通るからいいか。

>>358
> echo関数の引数に、改行コードを含めるのは慣例で、
そんな慣例は無いと思うけど。

> 理由はHTMLとして出力された時に読みやすくする為という事でよいですか?
出力に改行が欲しければ改行を付ける。不要なら付けない。そんだけ。
HTML中の改行は、場所によっては無視されるのでデザインに影響しないけど、
場所によっては表示に隙間ができたりする場合もあるから要不要はちゃんと考えないと。
■ このスレッドは過去ログ倉庫に格納されています