【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カテゴリ)の各スレで
0623nobodyさん
2007/10/19(金) 16:25:38ID:KOAwsoaiログファイルをfile関数で読み込むとき、ログファイルが存在しなかった場合、
エラーになりますよね。
そこで、@でエラーを出力しないって方法と、is_fileで存在チェックを置く方法、
どちらが正攻法でしょうか?
0624nobodyさん
2007/10/19(金) 16:27:53ID:???ちゃんとファイルがあるか確認すべき
0625nobodyさん
2007/10/19(金) 16:36:09ID:???エラーを出さない書き方を心がけます
0626nobodyさん
2007/10/19(金) 16:36:43ID:???0630nobodyさん
2007/10/19(金) 16:55:27ID:???例外は想定外なことがあったときの処理機構
0631nobodyさん
2007/10/19(金) 17:15:02ID:T1qgNKd7引数で渡したもの全てエンコードしてくれるんでしょうか?
なぜか本文以外が文字化けしてしまうんですが・・・
0632nobodyさん
2007/10/19(金) 17:22:04ID:???0633nobodyさん
2007/10/19(金) 17:23:01ID:???is_fileの判別だけでは不十分。
ロックされて読み取りできない場合でもtrueを返すし、本当にその時読み取りできても、fileを呼ぶ時には削除されているかもしれない。
読み取りエラーと、ファイルの存在がない場合を区別する必要がなく、エラーをログに取る必要がないなら、
$data = @file('foo.log');
if ($data === FALSE) { echo '読み取り失敗'; }
else { do something }
>>631
mb_internal_encodingとmb_languageを設定
0634nobodyさん
2007/10/19(金) 17:24:00ID:???0635nobodyさん
2007/10/19(金) 17:37:25ID:???誰だよ、前に"で囲むとか教えた奴
0639nobodyさん
2007/10/19(金) 17:45:07ID:???0641nobodyさん
2007/10/19(金) 18:03:23ID:TMxSN4fU0642nobodyさん
2007/10/19(金) 18:03:57ID:???まずはマニュアルに目を通そうぜ
・To句 -> 自動的にはエンコードしない
・ヘッダ、本文 -> エンコードする
但しだ、ヘッダに含むFrom句を 俺だよ<[email protected]> の様にした場合
"俺だよ"の部分はそのままじゃ化けるからな
正しいかどうかは別として"俺だよ"の部分をMIMEエンコードで逃げとく
0643nobodyさん
2007/10/19(金) 18:05:00ID:TMxSN4fUMySQLの「居酒屋」という文字の「居」だけ検索できなくって・・・
「安い居酒屋があります!」→「居酒屋」→ノーヒット
「安い居酒屋があります!」→「屋」→ヒット
「安い居酒屋があります!」→「酒屋」→ヒット
「安い居酒屋があります!」→「居酒」→ノーヒット
「安い居酒屋があります!」→「居」→ノーヒット
0644nobodyさん
2007/10/19(金) 18:10:36ID:???0646nobodyさん
2007/10/19(金) 18:16:01ID:???またファビョって粘着されるのかと思うと・・。
0648643
2007/10/19(金) 18:18:50ID:TMxSN4fU0649nobodyさん
2007/10/19(金) 18:19:36ID:T1qgNKd7mb_encode_mimeheader()使っても文字化けしちゃいました。
謎の文字列っぽいのが、???????????になってしまった。(2回エンコードされたかんじ)
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:???■ このスレッドは過去ログ倉庫に格納されています