【PHP】下らねぇ質問はここに書き込みやがれ 62
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2008/01/10(木) 18:09:19ID:???PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 61
http://pc11.2ch.net/test/read.cgi/php/1198002831/
◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0154nobodyさん
2008/01/14(月) 18:34:26ID:kFFYYs1+PHPで吐き出したXMLを読み込もうとするとこのようなエラーが出てしまいます。
YahooのRSSを真似たので、中身は同じだと思うのですが、なぜこんなエラーが出るのでしょうか
0155nobodyさん
2008/01/14(月) 18:35:43ID:hiecVsD+ありがとうございます。できました。
0156nobodyさん
2008/01/14(月) 18:36:16ID:kFFYYs1+サーセン
0157nobodyさん
2008/01/14(月) 18:45:35ID:???http://jp.php.net/manual/ja/function.mb-strimwidth.php
専用の関数があるよー。
0158nobodyさん
2008/01/14(月) 20:18:32ID:???0160nobodyさん
2008/01/14(月) 23:07:59ID:???文字列切り取りもmb_substerよりこっちのがいいよ
0161nobodyさん
2008/01/14(月) 23:08:26ID:???0162nobodyさん
2008/01/15(火) 00:20:26ID:Yg4ty3XIPHPの特徴を学びながら、コードを書いていきたいなと思っています。
以下のサイトで、PHPのメリットを読んだのですが、Perlとの違いで
大きな部分はイメージやPDFファイルが作れたりするところですよね。
http://www.php.net/manual/ja/intro-whatcando.php
まずは、Perlで自作した掲示板をPHPに移植するところから
やってみようと思ったのですが、この移植の場合は、特にメリットや
書き方のスタイルに違いは無いと思ったのですが、それであっているのでしょうか?
処理内容
・ユーザの書き込みをログファイルに書き込む。
・ログファイルの内容をhtml出力する。
・検索をし、該当するデータのみを表示させる。
プログラミングの全体構成
・POSTのデータを取得し、処理を行う関数を振り分ける。
・各種パラメータはグローバル変数で設定する。
0166nobodyさん
2008/01/15(火) 10:31:18ID:???>大きな部分はイメージやPDFファイルが作れたりするところですよね。
Perlやったことないから知らないけど、なくても自作すれば作れるようになるでしょ。(大変そうだけど)
Perlって構文が特殊だから少し戸惑うだろうけど慣れればほぼ一緒。
書き方のスタイルは少し違ってくるだろうけど、大きなメリットは別にないんじゃない?
強いて言うなら小規模の物ならPerl/CGIと比べてパフォーマンス面で優れてるぐらいかな。
最近のPC事情を考えるとその辺は割りとどうでもいいような気はするけどね。
それよりDB使った掲示板にこの際移行してみたら?
0167nobodyさん
2008/01/15(火) 10:47:34ID:9YYFPVXqShift_JIS⇔sjis
EUC-JP⇔ujis
のような相互変換をしてくれる関数とかありませんか?
0168nobodyさん
2008/01/15(火) 13:07:16ID:SIMemfh4<input type="text" name="test"/><input type="submit"/>
</form>
<?php
$test = $_POST['test'];
echo $test;
?>
上記のようなフォームを送信後、その値を表示する簡単なプログラムを作ったのですが
携帯電話(au)から入力して送信すると文字化けしてしまいます。
123→123\0
あいう→%82%a0%82%a2%82%a4\0
上記のようになってしまうのですが、正常に表示させるにはどういった処理が必要なのでしょうか?
phpファイルの文字コードを変更して保存しても意味がないようでした。
よろしくお願いします。
0169nobodyさん
2008/01/15(火) 13:22:57ID:???文字コードじゃなく、urlencodeされた状態のままになってる。
普通は$_POSTで取得したときに勝手にデコードされてるはずなんだが・・・
0170168
2008/01/15(火) 13:48:56ID:SIMemfh4urldecode ($test);
を使ってデコードすることで解決しました。
処理を掲示板に組み込むので、全ての変数にこれを入れておきたいと思います。
ありがとうございました。
0171nobodyさん
2008/01/15(火) 14:06:19ID:???preg_replace( array( '/UTF-8/', '/Shift_JIS/', '/EUC-JP/' ), array( 'utf8', 'sjis', 'ujis' ), $string );
0172nobodyさん
2008/01/15(火) 14:07:04ID:???0173nobodyさん
2008/01/15(火) 14:08:09ID:9YYFPVXqありがとうございます。
専用の関数はないのですね。
自分で作ってみます。
0174nobodyさん
2008/01/15(火) 15:28:05ID:???0175nobodyさん
2008/01/15(火) 15:44:28ID:???0176nobodyさん
2008/01/15(火) 16:05:50ID:9YYFPVXq0177nobodyさん
2008/01/15(火) 17:36:36ID:WIMu7eDHメールフォーム作ってその内容をメールで通知するとすると、
やはりメールサーバが必要になるんですか?
そこまでフォローしてくれる関数とかはないの?
0179nobodyさん
2008/01/15(火) 17:39:51ID:???0180177
2008/01/15(火) 18:10:26ID:WIMu7eDH0181nobodyさん
2008/01/15(火) 18:17:27ID:???PHPで、入力結果をcsvに結果を書き出すアンケートプログラムを作りたいのですが、
肝心のPHPの部分が分かりません。分かる方いたらお願いします。
HTTP側の画像はこれです。
ttp://uproda11.2ch-library.com/src/1159458.jpg
0183nobodyさん
2008/01/15(火) 18:19:24ID:???0185nobodyさん
2008/01/15(火) 18:44:12ID:???そんなんじゃ3万くれたらやってあげよう。とか言われるぜ。
0187nobodyさん
2008/01/15(火) 19:48:43ID:S1LM8YrJまたはダウンロードする方法があれば教えてください!
↓このサイトが、どうやってRSSを読み込んで表示させているのか知りたいので・・・
ttp://owata-net.com/
0188nobodyさん
2008/01/15(火) 19:58:06ID:???0189nobodyさん
2008/01/15(火) 20:07:50ID:???>サイトで使われているPHPのソースを見る方法
出来るわけない。出来たとしたらそれはセキュリティホール。
DBの接続情報なんか書いてるものが外部から見えたら大変だろ。
RSSなんてxmlなんだから専用の関数使うか、
構文解析して表示してるだけに過ぎない。
0190nobodyさん
2008/01/15(火) 20:13:45ID:???>>187
ソース公開してなきゃ無理。
ソース抜けたらセキュリティなんかあったもんじゃねえでしょ。
RSS読込んで表示させたいだけなら、そういうライブラリやフレームワーク探すのが手軽かな。
php5だとZend Frameworkのとか
0191nobodyさん
2008/01/15(火) 20:14:13ID:???0192nobodyさん
2008/01/15(火) 20:33:19ID:S1LM8YrJ>>190
なるほど・・・回答ありがとうございます!
初心者なのでソースを見て研究しようかと思ったのですが
PHPソースって見れないものなのですね。
0193nobodyさん
2008/01/15(火) 21:15:27ID:???0194nobodyさん
2008/01/16(水) 00:02:57ID:UPc0pgTuトランザクション処理増やすとpg_execute()でこけちゃうんだよね。
もしプリペアとトランザクションが併用できないなら教えてください。
0195nobodyさん
2008/01/16(水) 00:35:09ID:???0196nobodyさん
2008/01/16(水) 01:21:17ID:fdtlATv5例えば、PerlだとActivePerl(とPostgreSQLのWindows版)みたいなものです。
開発しながら動作確認をレンタルサーバでやると迷惑がかかりますが、
そのサーバとは別にLinuxでマシンを組むしかないのかの確認をしたくて
こちらで質問してみました。
0197nobodyさん
2008/01/16(水) 01:29:27ID:???0198nobodyさん
2008/01/16(水) 01:31:05ID:???0200nobodyさん
2008/01/16(水) 01:37:24ID:fdtlATv5すばやい回答ありがとうございました。
XAMPPとか準備されてるのですね。そちらをもう少し調べてやってみます。
0201nobodyさん
2008/01/16(水) 01:38:44ID:???AN HTTPDやウィンドウズ版のapache
というサーバーソフトがある。
これ入れたらローカルPCで動作する。
0203nobodyさん
2008/01/16(水) 03:02:16ID:???0204nobodyさん
2008/01/16(水) 03:07:26ID:???ゴミが増えるだけだしね。
テスト用の別マシンかVMでやるなら話は別だけど。
0205nobodyさん
2008/01/16(水) 07:47:11ID:???Windows版のApacheやMySQLはサービスとして動くので、
一度インストールすれば後は手間がかからない。
ローカルマシンでテスト後、本番サーバーに転送というのが
普通の開発方法だと思うが。
0206nobodyさん
2008/01/16(水) 08:48:57ID:???0207nobodyさん
2008/01/16(水) 10:18:31ID:???Windowsでやりたくないならそれにインスコすればいいのに
変な日本語になってるけどキニシナイでくれ
0208nobodyさん
2008/01/16(水) 10:56:03ID:zeEvpiQl0209nobodyさん
2008/01/16(水) 11:19:50ID:jNLvN05l演算子なら比較演算子でなくても何でもOKですよ。
型を含めた同一性を比較するなら===でOK
0210nobodyさん
2008/01/16(水) 11:20:38ID:???http://jp.php.net/manual/ja/control-structures.switch.php
===演算子以外では全て緩やかな比較のなはず。strictオプションがある関数もあるけど。
0211nobodyさん
2008/01/16(水) 11:22:58ID:jNLvN05l0212208
2008/01/16(水) 11:59:52ID:zeEvpiQlswitchのcase x:の比較のことです。
有難う御座いました。
0213nobodyさん
2008/01/16(水) 17:26:39ID:zeEvpiQlTest();
}
このclassの定義の仕方ってどういう意味なのでしょうか?
普段は
class hogehoge{
function 〜
}
のようにするのですが・・・
0214nobodyさん
2008/01/16(水) 17:35:15ID:???0215nobodyさん
2008/01/16(水) 17:40:14ID:???>このclassの定義の仕方ってどういう意味なのでしょうか?
何を聞きたいの?extendsを聞きたいのかメソッドの書き方を聞きたいのかわからん
0216nobodyさん
2008/01/16(水) 17:42:40ID:???0217nobodyさん
2008/01/16(水) 17:54:30ID:???継承される側をスーパークラスと呼んで、される側をサブクラスと呼ぶ。
class B extends A
の場合BがAのサブクラスでAがスーパークラス。
どういうときに使うかというとスーパークラスのメソッドをオーバーライドして使う時とかに使う。
なんていっても理解できないと思うので、
OOP勉強したいならJavaの入門書でも読むといいよ。
0218nobodyさん
2008/01/16(水) 17:58:58ID:???こんな書き方しないっていったのね
interfaceやabstractでも修飾子は必要だし
コンストラクタやメソッドもfunctionつけて中身ちゃんと書かないといけないし
0219nobodyさん
2008/01/16(水) 18:07:16ID:???記述はどちらも同じなのですが……
Warning: fopen(text.txt) [function.fopen]: failed to open stream : Permission denied in (URL〜)index.php on line 206
206行目は
$fp = fopen("text.txt", "r+");
と記述しています。
もちろんtext.txtは存在します。
なぜエラーが出るのか分かる方がいましたら返答お願いします。
0221nobodyさん
2008/01/16(水) 18:12:03ID:???0222nobodyさん
2008/01/16(水) 18:12:35ID:???test.txtのパーミッションを666にする。
0223nobodyさん
2008/01/16(水) 18:14:58ID:???アップロード時に手動でパーミッション変えるか、
初期設定用みたいなPHP用意してchmodで変えるかどっちがいいの?
つうかchmodってセーフモードじゃ使えないから前者でやってるんだけど。
0224nobodyさん
2008/01/16(水) 18:18:51ID:???個人的には、ファイルがなければ作成・パーミッション設定のがいいかと思う
いや、俺の独断と偏見だから参考にしないほうがいいかもしれんが
0225nobodyさん
2008/01/16(水) 18:52:58ID:???0226nobodyさん
2008/01/16(水) 20:16:57ID:zeEvpiQlなんとなくだけど理解できました〜。
0227nobodyさん
2008/01/16(水) 20:34:24ID:???include_path = ".;C:\xampp\php\PEAR\;C:\xampp\php\Smarty\"
php.iniだと成功するんだが
parse_ini_fileの場合、""内の「;」がコメント扱いになってしまう・・・
0228nobodyさん
2008/01/16(水) 20:55:39ID:???0229nobodyさん
2008/01/16(水) 21:02:32ID:???また可能であればどのようにすればよいのでしょうか?
0230nobodyさん
2008/01/16(水) 21:15:03ID:???0231nobodyさん
2008/01/16(水) 21:16:34ID:???それよりもwebサーバの(拡張)機能を使った方がいいんじゃないかな。
apacheならmod_bwshareとか。
0232nobodyさん
2008/01/16(水) 21:37:18ID:???0233nobodyさん
2008/01/16(水) 21:45:34ID:???0234229
2008/01/16(水) 21:48:38ID:???一般的な無料のレンタルWEB鯖とかの話です
そういう場合はアパッチの設定なんてできないですよね
クライアント一人あたりのDL速度を調整するような関数なりプログラムなんかはないということでしょうか
0235nobodyさん
2008/01/16(水) 21:59:12ID:???0236nobodyさん
2008/01/16(水) 22:09:56ID:???挙句の果てにタイムアウトで鯖から接続切られたりとか。
一人の人に接続(帯域)を占有されたくないってのが元々の目的なら、
一定時間内に同一IPの人がダウンロードできる数を制限する、とかの方が簡単でいいんじゃないかな。
そういうのなら誰かが作ったのが配布サイトに転がってたりするんじゃないかな。
てか、別にPHPじゃなくてもよくね?
0237nobodyさん
2008/01/16(水) 22:10:19ID:???レベルひっくw
低脳な、学歴のないやつばっかだなここ・・・
0238nobodyさん
2008/01/16(水) 22:18:04ID:???0239nobodyさん
2008/01/16(水) 22:22:36ID:???0240nobodyさん
2008/01/16(水) 23:24:15ID:???0241nobodyさん
2008/01/17(木) 00:05:52ID:???0242nobodyさん
2008/01/17(木) 00:15:23ID:???0244nobodyさん
2008/01/17(木) 00:59:14ID:???0245nobodyさん
2008/01/17(木) 01:02:00ID:ckn0RAb7で、アップしてサイズ変更・保存というプロセスは最後まで上手くいってるんですが、
apacheのエラーログにはエラーが出てしまいます
PHP Warning: imagecreatefromjpeg(../../../test/img/user/pic3.jpg)
[<a href='function.imagecreatefromjpeg'>function.imagecreatefromjpeg</a>]:
failed to open stream: No such file or directory
というエラーが出るんですが、実際には「../../../test/img/user/pic3.jpg」は
存在してるし、だからこそちゃんとリサイズと保存まで出来てるのではと思います
同じようなエラー(少なくとも見た目の動作はちゃんとしてるのにエラーがでる)を
経験した方いないですか? どのように解決しました?
また、このエラー?をログに書き出ないようにする方法はないでしょうか?
よろしくお願いします
0246nobodyさん
2008/01/17(木) 05:19:51ID:???いやエラーでてるんだったら結果が正しく見えてようが、とにかく該当箇所はおかしいんだろ。
出来てるのではと思います、とかじゃなくて、エラーが出力される以上まずはコードを疑ってかかれよ。
普通に使ってる分にはPHP自体がバグってることはそうそうねーから。
0247nobodyさん
2008/01/17(木) 08:28:29ID:???「PHPからの警告!/../../test/img/user/pic3.jpgがありません」
って言われているのに「私は/../../test/img/user/pic3.jpgのリサイズと保存は出来ている
と思います」と頑なに主張する245が可愛い
0249nobodyさん
2008/01/17(木) 08:55:04ID:???0250nobodyさん
2008/01/17(木) 09:12:48ID:O85eEBCtvar_dump($db);
NULLすら表示されませんorz
エラーも出ないし(他のエラーは出ます、error_reporting = 2047、display_error = On)
これのあとにechoなどしても表示されません・・・。
まじ簡便orz
どうすれば表示されるのでしょうか
0251nobodyさん
2008/01/17(木) 09:21:06ID:???die($db->getMessage());
}
0252nobodyさん
2008/01/17(木) 09:30:00ID:???ある変数をセッションに登録するときに、
$_SESSION['hoge'] = base64_encode(serialize($hoge));
とやって、参照するときには
$hoge = unserialize(base64_decode($_SESSION['hoge']));
としてました。
これって、いったい何のメリットがあるんでしょうか?
配列とかオブジェクトをセッションに登録できる、ってことですか?
■ このスレッドは過去ログ倉庫に格納されています