【PHP】下らねぇ質問はここに書き込みやがれ 56
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2007/10/11(木) 17:55:41ID:uObe69hrPHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 55
http://pc11.2ch.net/test/read.cgi/php/1191058556/
◆質問する時の注意
・ sage進行(メール欄にsageと記入すること)「sage進行」とはスレを目立つ上部に上げないことによって、荒らしが発見できないようにすることです
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
・ 書き込むときには、「公式マニュアル、リファレンス本は読みました」と明記すること
(でないと、公式マニュアル読めと煽られます)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
・質問者が「公式マニュアル読んだ」と書いていないからといって、
公式マニュアルに書いてもいないのに、公式マニュアルよめと適当なことを言わないこと。
質問者は公式マニュアルを読んでいるかもしれない。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0685nobodyさん
2007/10/19(金) 22:03:46ID:???どうしようもない奴しかいねーのかよw 俺には難しくて分かりませんって素直に言えばいいのにww
0687nobodyさん
2007/10/19(金) 22:06:45ID:???0689nobodyさん
2007/10/19(金) 22:15:07ID:???0690nobodyさん
2007/10/19(金) 22:16:54ID:???0691nobodyさん
2007/10/19(金) 22:20:10ID:???実際、アホしか紛れ込んでこないだろ
・"エラーになりました", "動きません"
なんて言って欲しいんだ?「で?」って言って欲しいのか?
・スクリプトの欠片貼り付けて"どこ直せばいいですか"
一体ナニ喰わせてるんだ?それだけで何をわかれと?
0692nobodyさん
2007/10/19(金) 22:22:33ID:???0693nobodyさん
2007/10/19(金) 22:28:49ID:???煽りすぎるのは逆効果だぞ
淡々とやればいいじゃん
0694nobodyさん
2007/10/19(金) 22:28:54ID:???対象のブログのRSSのURLをはっつけるか、
それがいやならどのブログサービスの種類(ライブドアとか)・どのブログツール(MovableTypeとか)をつかってるのか書けば
もれなく書いてみてもいい。
0696nobodyさん
2007/10/19(金) 22:32:06ID:???要するに>>663は文字列の一部を抽出したいだけなんだから、サンプル示せばいいだけのこと。
毎度ダラダラよくやるよなホントw
0697nobodyさん
2007/10/19(金) 22:46:40ID:???ファイルをShift-Jisでしか更新できないんで新しいソフトを買おうと思うんだが
PHPを使う上でお勧めなのはどれだろう?
0698nobodyさん
2007/10/19(金) 22:49:40ID:???0699nobodyさん
2007/10/19(金) 22:49:59ID:???0700nobodyさん
2007/10/19(金) 22:52:53ID:???htmlとphpは切り離して考えろ
デバッグ機能があるIDEでも使え
0701nobodyさん
2007/10/19(金) 22:54:18ID:???PHPエディタ
http://phpspot.net/php/phpeditor.html
0702nobodyさん
2007/10/19(金) 22:55:58ID:???0703663
2007/10/19(金) 22:58:26ID:???おおおーーーー!!できました!マジでありがとうございます!!
なんだか騒ぎの元になっちゃってるな・・失礼こきました。
0704nobodyさん
2007/10/19(金) 23:00:56ID:???0705nobodyさん
2007/10/19(金) 23:04:12ID:???0706nobodyさん
2007/10/19(金) 23:10:35ID:???0707nobodyさん
2007/10/19(金) 23:45:41ID:64rGyn5nコーディングに関することではないんですが、phpのCGIモードと
モジュールモードというのはどう違うんでしょう?
レンタルサーバを借りる上で、CGIモードはokだけどモジュールモードでの
利用ができないサーバがあり、どのような不都合になるのか知りたくて質問しました。
普段はwinXPにapache2 php5で自宅でテストしてる程度なんですが、
モードというのは意識していません。 何か出来なくなる処理があるんでしょうか?
0708nobodyさん
2007/10/20(土) 00:12:43ID:KSBr51Dvtrim(strip_tags((substr($main_txt,0,300)), '<p>'));
としてhtml文章を取得してるのですが、
途中にタグとかあると文字列の最後が ? になる場合があるので
($main_txt,0,300) の300を調整してますが、調整しないで最後の ? となってしまった部分を
削除って出来ないもでしょうか?
それと、取得した文字列にstrip_tagsの残骸のような感じで、空白が出来るのですが、その空白も削除したいのですが。
0709nobodyさん
2007/10/20(土) 00:14:31ID:???0710nobodyさん
2007/10/20(土) 00:31:03ID:POR/JvMA0712nobodyさん
2007/10/20(土) 01:05:50ID:pJAmMZYu$ua = $_SERVER["HTTP_USER_AGENT"];
header("Content-type: image/gif");
if(!strtr($ua,"Opera")){
$ss = imagecreatefromgif("ad.gif");
imagegif($ss);
}else{
$dd = imagecreatefromgif("bc.gif");
imagegif($dd);
}
?>
uaにoperaが含まれる人はad.gifを、それ以外はbc.gifを表示させるために、このようなスクリプトを書いたのですが、
html上に貼っても直接アクセスしても画像が表示されません。設置サーバーはxreaです。エラーなどは吐かず、
「リンクの切れた画像を貼っている」状態と同じ表示になります(IEでいうバッテン印)
ちなみにif文を書かずに直接
header("Content-type: image/gif");
$ss = imagecreatefromgif("ad.gif");
imagegif($ss);
だけ記述した場合はまともに作動するので、GDなどの問題ではないと思います(詳しくはわかりませんが・・・)
説明下手ですいません、原因わかる方いたらよろしくおねがいします。
0714nobodyさん
2007/10/20(土) 01:19:03ID:???strtrはstrposにするかeregとかpreg_matchにした方が良い
strtrは置換用
もう1個余計なこと言うと
if句の中でimagegifとか呼んでるけど
$img = 'ad.gif';
if (strpos($ua,'Opera') == false) {
$img = 'bc.gif';
}
$dd = imagecreatefromgif($img);
imagegif($dd);
こんな感じの方がすっきりする
0715nobodyさん
2007/10/20(土) 01:19:24ID:???直接というのはこのphpファイルに直接、ということですよね?
その場合も同様にバッテン印です。
ad.gif bc.gifに直接、ということでしたら正常に表示されます
?>消しましたがダメでした。
ためしに
if(!strtr($ua,"Opera")){
$ss = imagecreatefromgif("ad.gif");
imagegif($ss);
}else{
echo "あいうえお";
}
このように書き換えてみたのですが、これでuaにOperaが含まれてなくても"あいうえお"ではなく画像を出力しようとしてしまうようです。
うーん、なんでだろう
0717nobodyさん
2007/10/20(土) 01:26:10ID:???あ、これで書き直したら直りました!ありがとうございます!!
原因はよくわかんないけど、
>if句の中でimagegifとか呼んでるけど
これがまずかったんでしょうかね・・・
すっきりという意味でも、
独学でプログラム始めたばかりで、自分で見ても無駄の多いコードだなぁ…とは思うんですが、そう簡単に矯正できなくて…
こうしたことを教えていただくと実に勉強になります。
本当にありがとうございました。
0718nobodyさん
2007/10/20(土) 01:30:05ID:???>>if句の中でimagegifとか呼んでるけど
>これがまずかったんでしょうかね・・・
こういうのが原因では無い
これは書き方だけ
多分なんらかの文字列とかが出力されて
出力された画像ファイルが壊れてたんじゃないかなと思う
0719nobodyさん
2007/10/20(土) 04:32:47ID:???・文字列が含まれるかを判定したいはず
strtr()は見つかった文字列を別の文字列に置き換える関数だわ
・関数の使い方に誤りがある
strtr($ua,"Opera") 引数が足りないよ Warning:出るよ
きっとレンタル屋さんが display_errors = off で運営してるから
エラーや警告を確認できないんだろうね
・関数の戻り値は常に false である
使い方に誤りがあるから $ua に何を突っ込もうが結果は常に false のみ
ゆえに if文の判定は true の否定だから常に 真 のみ
まずは何が誤りであるかを自分で認識する力をつけないと成長しないよ?
0720nobodyさん
2007/10/20(土) 04:43:38ID:???のを放置したままのWebサイトに出くわすことがあって萎え…
0721nobodyさん
2007/10/20(土) 04:57:51ID:???if文でこんにちはを出力する処理を何通りも書いて練習してる
0722nobodyさん
2007/10/20(土) 05:00:27ID:???0723nobodyさん
2007/10/20(土) 05:24:39ID:???もしくは、不注意な人。
0724nobodyさん
2007/10/20(土) 05:52:03ID:???0725nobodyさん
2007/10/20(土) 09:35:20ID:???0726nobodyさん
2007/10/20(土) 09:40:01ID:???うちの会社では自販機のつり銭のロジックを書かせるのが、
入社試験で必ず出している。まずは基本だから、それをまずやってみればいい。
意外に難しくて、正答率は20%以下。
0728nobodyさん
2007/10/20(土) 10:39:25ID:???if文の練習をする題材としてなら、改題してこんな感じかな。
投入金額と購入金額からつり銭の枚数を計算しないさい。
かな。
条件としては、つり銭の枚数は最小限の枚数にすること。
投入金額は10円単位で1000円まで。
つり銭につかう硬貨・紙幣は、10円、50円、100円、500円、1000円。
function get_tsurisen($tonyu_kingaku, $konyu_kingaku) {
$tsurisen_maisu = NULL;
// つり銭ロジック
return $tsurisen_maisu;
}
0729nobodyさん
2007/10/20(土) 11:17:12ID:2lqi/a9OCall to undefined function mb_convert_encoding()と出たのです
この場合いったいどうすればいいでしょうか
0730nobodyさん
2007/10/20(土) 11:37:29ID:???phpのconfigureのオプションにmbstringが入ってないと思われる
オプションをつけてphpを再コンパイルする
>>728
ロジックの主な部分でif文いらないんだが
$tsurisen_maisu = array();
$tsurisen_maisu['1000'] = floor($tsuri/1000);
$tsuri = $tsuri%1000;
$tsurisen_maisu['500'] = floor($tsuri/500);
$tsuri = $tsuri%500;
$tsurisen_maisu['100'] = floor($tsuri/100);
$tsuri = $tsuri%100;
$tsurisen_maisu['50'] = floor($tsuri/50);
$tsuri = $tsuri%50;
$tsurisen_maisu['10'] = floor($tsuri/10);
$tsuri = $tsuri%10;
0731nobodyさん
2007/10/20(土) 11:38:50ID:2lqi/a9Oありがとうございます
0732nobodyさん
2007/10/20(土) 11:56:43ID:???>>ロジックの主な部分でif文いらないんだが
偽造硬貨対策 >>if文
if(is_gizocoin($tonyu_kingaku)){
tuuhoo(110);
} else {
// つり銭ロジック
}
0734nobodyさん
2007/10/20(土) 13:17:01ID:???なので再インストールしたいのですが、@CMSのデータベース名やテーブル接頭語はどう設定すればいいのでしょうか?
大変困っています。
0735nobodyさん
2007/10/20(土) 13:21:52ID:???0736nobodyさん
2007/10/20(土) 13:27:18ID:???ぎぞこいん ぎぞコイン ぎぞうコイン OK!把握した!偽造コインか!
とんゆ_きんがく (きんがくは金額だな) とんゆ金額 とにゅ金額 とうにゅう金額 OK(略)
つうほお (これまでの試練で読めるようになった俺にはチョロイぜ!) つうほう 通報だな!
110 (´・ω・`) 通報というからには、110のはずだがここで引数があるのには理由がある筈だ。。
そうか、通報先を電話番号で指定するんだな! でも、0から始まる場合は数値扱いでいいのか。。。
0738nobodyさん
2007/10/20(土) 13:34:13ID:???多分アンカミスだとは思うが
730みたいなコード書く奴は実際にいるよ
ただ後で修正する時大変だなーと
思うことしばしばあるけど・・・
0739nobodyさん
2007/10/20(土) 14:19:30ID:0NCrF6x5無視していいですか?というより出さないかきかたはあるんでしょうか?
0741nobodyさん
2007/10/20(土) 14:26:19ID:???作ってみた
改行上限で読みにくくはなってる
class Turi {
var $coinMapDef = array(1000,500,100,50,10);
var $coinMap = array();
var $turiCoinMap = array();
function Turi($coinMap = null) {
$this->coinMap = $this->coinMapDef;
if (is_array($coinMap) == true) {$this->coinMap = $coinMap;}
}
function calc($inMoney, $buyPrice) {
$turi = $inMoney - $buyPrice;
if ($turi < 0) {return false;}
elseif ($turi === 0) {return array();}
$this->getEachCoinCount($turi);
return $this->turiCoinMap;
}
function getEachCoinCount($money) {
$turiCoin = $this->getEachCoin($money);
if ($turiCoin === false) {return;}
$count = floor($money / $turiCoin);
$this->turiCoinMap[$turiCoin] = $count;
$nokoriMoney = $money - $count * $turiCoin;
$this->getEachCoinCount($nokoriMoney);
}
function getEachCoin($money) {
foreach ($this->coinMap as $value)
if ($value <= $money) {return $value;}
return false;
}
}
0742nobodyさん
2007/10/20(土) 14:29:14ID:???<?php
$hoge = $_GET['hoge']
こんな感じにいきなり書いてるからNOTICEが出る
理由はGETでhogeが投げられてもいないのに値を取得しようとしてるから
こういう場合は必ず値がセットされてるか確認してから入れる
if (isset($_GET['hoge'])) {
$hoge = $_GET['hoge'];
}
0743739
2007/10/20(土) 14:34:43ID:0NCrF6x5どうもご丁寧にありがとうございます。
納得いきました。
これからはそのような書き方にします。
0744nobodyさん
2007/10/20(土) 14:51:53ID:???== trueは冗長だろ
0746nobodyさん
2007/10/20(土) 15:06:12ID:???0747nobodyさん
2007/10/20(土) 15:06:45ID:???0748nobodyさん
2007/10/20(土) 15:30:01ID:???0749nobodyさん
2007/10/20(土) 15:46:53ID:???過去に自分で書いたものすら読めないほど退化してるから
0750nobodyさん
2007/10/20(土) 15:48:52ID:???0751nobodyさん
2007/10/20(土) 17:06:17ID:???0752nobodyさん
2007/10/20(土) 17:25:49ID:???ろくなコード書けないんだろう
自分じゃソースすら晒せないんだからwww
0753nobodyさん
2007/10/20(土) 17:28:01ID:???0754nobodyさん
2007/10/20(土) 17:30:43ID:???0755nobodyさん
2007/10/20(土) 17:35:43ID:???はっきり言ってアフォ
0756nobodyさん
2007/10/20(土) 17:58:13ID:???お前のほうがよほどお察しだろ
読みにくいからイラネっていってるだけだし歪曲するなよヴォケ
読みにくいっていうのは正論
仕事でも三項演算子なんて使わん
0758nobodyさん
2007/10/20(土) 18:06:42ID:???0759757
2007/10/20(土) 18:07:43ID:???0760nobodyさん
2007/10/20(土) 18:09:42ID:???0761nobodyさん
2007/10/20(土) 18:10:50ID:???後々生まれるわけわからんこと主張する変なアホが出てくるんだ
コーディング規約で使わないことになってる三項演算子をかっこいいと思ってるらしく
何で使わないんですかね?
チームで開発するんだから可読性考えるのは当たり前
え?可読性よくないですか?わかりやすいと思うけどな
とか俺様に意見する駆け出しがふえるんだよヴォケ
ここは初心者スレであると同時に未来の実務PGが生まれる可能性がある場所なんだから
余計なこと教え込むな
入ってきたときこっちが矯正するのに無駄な時間がかかる
0762nobodyさん
2007/10/20(土) 18:12:30ID:???0763nobodyさん
2007/10/20(土) 18:15:26ID:???挙動が気になる関数ってあるじゃん
mb_send_mail()とかmb_send_mail()とかmb_send_mail()とか
0765nobodyさん
2007/10/20(土) 18:21:52ID:???>(is_array($coinMap) == true)
>== trueは冗長だろ
冗長だけど、おれもそう書くよ。可読性が向上する。
俺の場合は、== TRUEって書くけどな。
0766nobodyさん
2007/10/20(土) 18:24:26ID:???俺は目は通さない
通した所で動作が変とかあったとしても
phpのコミッタでないから修正できないし
それにローカルだけ修正とか変更したら
バージョンアップ毎に書き換えないといけないから
inとoutとどういう動作をするかの仕様が解れば
それにあわせて作ってる
0767nobodyさん
2007/10/20(土) 18:39:10ID:???pearのソースは見ても、わざわざPHPのCのソースまで見る人は少ない気が・・・理由は概ね766と同じ
>>765
俺の場合 ture false が必ず返ってくることが約束されてる組込み関数は冗長だと思うので書かない派かな
だけど if ($fp) { とか if ($db) { みたいな書き方は気分的に好きになれない
0768nobodyさん
2007/10/20(土) 18:47:13ID:???>俺の場合 ture false が必ず返ってくることが約束されてる組込み関数は冗長だと思うので書かない派かな
組み込み関数は書かないが、逆に自作の関数だったら書くってことか?
大量のコードの中で瞬時に組み込みか自作か分かりにくい場合もあるし、
そもそも区別する意味がない気がする。
コーディング規約として、制御文の条件判定の際はTRUE又はFALSEを明示すること。って決めた方がすっきりすると思うけど。
0769nobodyさん
2007/10/20(土) 18:53:04ID:???//false時の処理
}
と書く奴がいるが、
if ($isCorrect == true) {
//true時は処理をしない
} else {
//false時の処理
}
と書くようにな!!
0770nobodyさん
2007/10/20(土) 18:59:06ID:???「自分はこうです」「私はこう思います」で留めておいたほうがいい気がする
0772nobodyさん
2007/10/20(土) 19:08:52ID:???0778nobodyさん
2007/10/20(土) 20:19:05ID:???日本語のニュアンスの違い
「レベルの低さ」と言うと「低い」ことを臭わせているけど、
「レベルの高さ」と言うと>>773が思っているように「高い」ことを匂わせることもあるけど、
「縦・横・高さ」と同じで、高い・低いを想像させない中立的な言い方でもある
0779nobodyさん
2007/10/20(土) 20:38:58ID:???日本語が変になった
日本語のニュアンスの違い
「レベルの低さ」と言うと「低い」ことを臭わせているが、
「レベルの高さ」と言うと>>773が思っているように「高い」ことを匂わせることもあるけど、
「縦・横・高さ」と同じで、高い・低いを想像させない中立的な言い方でもある
0780nobodyさん
2007/10/20(土) 20:41:31ID:???0782nobodyさん
2007/10/20(土) 20:59:39ID:???再帰がめずらしくて使ってみたかったのか?w
末尾再帰にするくらいならループにすべきところ
つり銭がないときのチェックはあるのに
$inMoneyに10円未満があったときは無視して正常に返すのかw
しかし、なんでこう難しくつくろうとするのかね・・・
あと>>741が悪いんじゃないけど、
private,public,protectedのついてないクラスってほとんど意味ないよね
0783nobodyさん
2007/10/20(土) 21:14:20ID:???そうやってむきになってどうでもいいレスにレス返すから
レベルがどうたらといわれるんだよ
ほんと君みたいなやつは消えてくれていい
■ このスレッドは過去ログ倉庫に格納されています