【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カテゴリ)の各スレで
0652nobodyさん
2007/10/19(金) 18:27:49ID:TMxSN4fU有難う御座います
MySQLスレにいってきます
0653nobodyさん
2007/10/19(金) 18:28:48ID:???使ってみました、できませんでした、じゃ何もわからない
mb_encode_mimeheaderというキーワードがあるんだから、
ぐぐってサンプルになりそうな解説を探すべき
0654nobodyさん
2007/10/19(金) 18:44:16ID:???0655nobodyさん
2007/10/19(金) 18:46:04ID:???自分の手の内を明かさないのは死んだお爺ちゃんの遺言かな?
まずはどういう処理をして駄目だったのか表に晒そうよ
そうじゃないと他人には何が原因なのかわからない
0656nobodyさん
2007/10/19(金) 18:47:03ID:???0657nobodyさん
2007/10/19(金) 19:03:17ID:???http://example.com/index.php/controller_name
として、$_SERVER['PATH_INFO']からcontroller名取得してクラス生成してるんだけど、
index.php/ってやっているからか、1個下の階層として認識されちゃうんだよな。
index.phpを基準にデザインしたHTMLの画像が表示されなくなった。解決法plz
0659nobodyさん
2007/10/19(金) 19:23:29ID:???お前程度のレベルのやつが作るなw
ほかのフレームワークを使って勉強しろ。
0660nobodyさん
2007/10/19(金) 19:26:04ID:???まあ作った本人以外、誰も使わんだろうけど。
0661nobodyさん
2007/10/19(金) 19:26:13ID:???0662nobodyさん
2007/10/19(金) 19:41:00ID:???会社で使うぐらいだぜ
PHPじゃないけど
0663nobodyさん
2007/10/19(金) 20:34:22ID:xPmGrIJ2あるブログの新着記事が投稿されたら、そのタイトルと日付を
自サイトのトップページにIFRAMEで新着情報のスペースを作り
自動で反映されるようにしているのですが、「dc:date」の中の
日付だけを表示させたいのですが、行き詰っています。
↓がrssv.phpというファイルをいただいて、今の状態です。
−−−−−−−−−−−−−−−−−−−−−−−−−−
A;
$num = ($_GET['n']) ? $_GET['n'] : count($r->getItems());
for ($i=0; $i<$num; $i++) {
$val = $r->getItems();
$title = mb_convert_encoding(strip_tags($val[$i]['title']), $code, "UTF-8,EUC-JP,SJIS");
$link = htmlspecialchars($val[$i]['link']);
$date = $val[$i]['dc:date'];
// 内容
echo <<<B
<tr bgcolor="#ffffff"><td><small>
$date<br>
<a href="$link" target=_new>$title</a><br>
$desc
</small></td></tr>
B;
}
//フッタ
echo <<<C
−−−−−−−−−−−−−−−−−−−−−−−−−−
0665663
2007/10/19(金) 20:39:31ID:xPmGrIJ2とすればできるというのを見つけましたが、できませんでした。。
phpなのでsubstrというものを使って設定すれば・・と思いましたが
↑662の中にどう記述すればできるのか・・行き詰ってます。
どうすれば、<dc:date>の日付部分だけを表示させることができるの
でしょうか?どうぞよろしくお願い致します。
0666663
2007/10/19(金) 20:46:26ID:xPmGrIJ2早速のレスありがとうございます。
var_dump($val); というものを記述すれば可能なんですか?
↑のどこに記述すればいいのでしょうか?ぜひ教えてください!
0667nobodyさん
2007/10/19(金) 20:52:29ID:X7lKhvjyvar_dump()はデバッグ手法であって解決策じゃないよ
0669nobodyさん
2007/10/19(金) 20:57:43ID:???実行しようともしないような人には無理だ。
0670nobodyさん
2007/10/19(金) 21:00:18ID:???スクリプト作ってくれっていってるような質問だろうし放置でおk
0671nobodyさん
2007/10/19(金) 21:13:24ID:38gaNyWe0672663
2007/10/19(金) 21:23:52ID:???書き方なんか勘で弄くってるだけで、全然分かってないっす
php入門から始めます。。。
0673nobodyさん
2007/10/19(金) 21:31:59ID:???0675nobodyさん
2007/10/19(金) 21:33:37ID:???0676nobodyさん
2007/10/19(金) 21:34:10ID:???もっと経験積んでる人は肝心な部分を特定してその場所のみ貼り付ける
あと、自分で試してみたことも書くのが普通ぐらい
0677663
2007/10/19(金) 21:37:39ID:???知ってる人にどこを直せばいいか聞けば、簡単にできるだろう
と思ってました。。実際に、今回以外にphpを自分で書くこと
なんか恐らく二度とないでしょうし・・
ただ単にdc:dateの日付だけを表示させることって大変なんですね。。
もう拘らずに、全て表示で自分を納得させます。お騒がせしました。。
0678nobodyさん
2007/10/19(金) 21:41:31ID:???0680nobodyさん
2007/10/19(金) 21:44:43ID:???0683nobodyさん
2007/10/19(金) 21:58:51ID:???>知ってる人にどこを直せばいいか聞けば、簡単にできるだろう
>と思ってました。。実際に、今回以外にphpを自分で書くこと
なんの根拠も無しにこう思えちゃうのが素晴らしいと言うか
頭のネジが2, 3本外れていると言うか
0684nobodyさん
2007/10/19(金) 22:01:01ID:???スレタイを死守すべくエスパーしてみる>俺
$date = $val[$i]['dc:date'];
の後に、
$data = substr($data, 0, 10);
みたいなことやればいいんじゃね?
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:???■ このスレッドは過去ログ倉庫に格納されています