【PHP】下らねぇ質問はここに書き込みやがれ 61
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2007/12/19(水) 03:33:51ID:???PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 60
http://pc11.2ch.net/test/read.cgi/php/1196511516/
◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0721719
2008/01/04(金) 14:23:57ID:KzTuE4cg/homeからのパスに書き直したら取得できました。
ありがとうございました。
0722nobodyさん
2008/01/04(金) 16:07:08ID:WmrqhPBtstrtr($word," "," ");
これで変換出来るのですが、複数の全角スペースが含まれている時、
1つの半角スペースにしたいです。その場合、もっとも簡単な方法(関数)
はありますでしょうか?(forを使う方法は自分で試しました。)
0723nobodyさん
2008/01/04(金) 17:02:46ID:HZMzJv1w勉強のため、ユーザーがフォームから名前を入力して、ファイルに記録する簡単なスクリプトを書いて練習してます。
そこで名前は18バイトまでの入力を受付け、それ以上の入力はもう一度やりなおしさせるためのチェックをしてみました。
半角1文字=1バイト、全角文字1文字=2バイトとして計算したいのですが、ここで詰まっております。
UTFなため全角文字を3バイトとなってしまいます。
$_POST['name']←これがユーザーが入力した名前が入ってる変数です
ためしに、フォームより、名前「あああ」を入力してみたとして、6バイトとしてサーバで解釈したいのですが、
echo strlen($_POST['name']);←これだと半角1バイトですが、全角3バイトで9と表示されます。
echo mb_strlen($_POST['name'], "UTF8")←これは3と表示されます。
どなたかご教授お願いします。
0724nobodyさん
2008/01/04(金) 17:16:24ID:???http://jp.php.net/manual/ja/function.mb-strwidth.php
こいつでどないかな。
0725nobodyさん
2008/01/04(金) 17:47:17ID:???> echo mb_strlen($_POST['name'], "UTF8")←これは3と表示されます。
9バイトで3文字→一文字3バイト、ってわかるのなら
一文字2バイト換算で 3文字 x 2バイト = 6って計算はできるよね
ぢゃあ、strlenで10バイト、mb_strlenで4文字だったら、
「半角」の文字数を x 「全角」の文字数を y と置いて
連立二次方程式の解の公式を使って、
半角の字数と全角の字数を計算して、
x + y * 2 を求めりゃいいんじゃないの
(深く考えずに書いているので、まにうけないでください)
0727nobodyさん
2008/01/04(金) 18:15:59ID:???0728nobodyさん
2008/01/04(金) 19:00:42ID:HZMzJv1wありがとうございます。そのやり方で解決しました。
0730nobodyさん
2008/01/04(金) 22:13:43ID:jY1Gv87H<input type=text name=url value="$_POST['URL']" />
としたんですが、ブラウザのフォームには表示されません
$_POST['URL']にはhttp://www.sample.com/が代入されてるのをソースでは
確認できたんですが、、 なぜでしょうか?またどうしたらいいですか?
0731nobodyさん
2008/01/04(金) 22:14:29ID:???0732nobodyさん
2008/01/04(金) 22:49:56ID:mPgF8z0i実際作るとなるとどうやっていいのかさっぱりで…。
色々サンプル(pukiwiki, XOOPS)を見てみたんですが、うーんと唸ってしまいます。
初心者向けのわかりやすい、また短めのサンプルコードなどありましたら教えて頂けませんか?
よろしくお願いします。
0735nobodyさん
2008/01/05(土) 00:43:33ID:???「オブジェクト指向をできるようにした言語」と「オブジェクト指向であろうとした言語」には習得効率の差がある
それで学習したら戻ってくればおk
OOPL/デザパタの各種利点・欠点を把握した上で「どうPHP上で生かそうか」という頭になりさえすればいいのだ
0737nobodyさん
2008/01/05(土) 01:06:52ID:???PHP5は、けっこうマトモなオブジェクト指向言語だと思うけど。
0738nobodyさん
2008/01/05(土) 01:12:16ID:???0739nobodyさん
2008/01/05(土) 01:15:50ID:???0740nobodyさん
2008/01/05(土) 01:16:12ID:???0741nobodyさん
2008/01/05(土) 01:17:42ID:???0742nobodyさん
2008/01/05(土) 01:18:08ID:???0744nobodyさん
2008/01/05(土) 02:14:09ID:9q7TTvct$file = fopen("ログファイル.txt", "r");
↑のようにログファイルを読み込み、項目の抽出・判定を
行うスクリプトを作っています。
職場のLinux環境では、正常に動くのですが、
家のLinuxでは、ログファイルの読み込みが出来ず、
項目の抽出が出来ず空欄となります。
スクリプト自体にはエラーは出ずに、読み込みだけ出来ていない状態です。
家のlinuxがおかしいと思い、簡単なファイルを読み込む
テストスクリプトで試したところ、テストスクリプトでは、
家のlinuxでも正常に読み込めました。
テストスクリプトも本番用スクリプトをコピーしたもので、
スクリプトの行数が違うくらいで特に差がありません。
(テスト50行、本番700行)
同じ記述なのに、fopen出来たり出来なかったりするような
状況なのですが、解決方法等ありますでしょうか。
0745代行者
2008/01/05(土) 02:15:45ID:???職場のはパスが通ってるとか。
0746nobodyさん
2008/01/05(土) 02:16:11ID:???0749744
2008/01/05(土) 02:54:41ID:9q7TTvct良く見たら、fopenの問題では無く、preg_matchが動作していませんでした。
テストスクリプトで動作していたのは、eregでした。
職場はPHP4環境ですが、preg_matchが正常に動作します。
家でも最初、PHP4環境で試したのですが、動作せず、PHP5にあげてしまいました。
php.ini等にpreg_matchが正常に動作するような設定等無いでしょうか。
権限も疑ったのですが、パーミッションは755で、グループはrootとなっております。
0750nobodyさん
2008/01/05(土) 03:43:12ID:???0751nobodyさん
2008/01/05(土) 04:44:06ID:???PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 60
http://pc11.2ch.net/test/read.cgi/php/1196511516/
◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0752nobodyさん
2008/01/05(土) 06:37:12ID:???俺様のNGトラップによってあぼんされました。たくさん仕掛けてるから何でひっかかったんだか気になるけどどうでもいい
0754nobodyさん
2008/01/05(土) 08:03:39ID:???その話はここで突っ込むと、宗教戦争にしかならないからなー。
何を「マトモ」か言い始めると、JavaもC++も含めてどの言語だって批判の俎上に上げられてしまう。
絶対Smalltalkがどうのとか言い出す奴出て来るしw
PHPは実用的な仕組みを色々借りて来てるけど、良い悪いじゃなく
「なぜこういう仕様になった/なってるのか」みたいな視点で
学びにくい点もあると思うよ。
PHPに斬新な言語であってもらう必要はないから、悪い事じゃないけど。
0755nobodyさん
2008/01/05(土) 10:07:31ID:???0756nobodyさん
2008/01/05(土) 10:10:03ID:???十分マトモだと思ってる。
OOであることとは関係がないけど、相性の良さから有ったほうが良いと思うのは、ガベジコレクションと例外処理。
PHPの言語仕様がキレイかと言われれば相当疑問だけど、それとOO言語としてどうかという話は別物だと思ってる。
0757nobodyさん
2008/01/05(土) 10:21:24ID:???0758nobodyさん
2008/01/05(土) 10:26:15ID:???相当荒れているということか?
0762761
2008/01/05(土) 10:41:17ID:???Webアプリでも複雑なデータ構造をメモリに持つ場合、やっぱり free/delete だと、ちょっとつらい。
0763nobodyさん
2008/01/05(土) 11:15:29ID:???自分は1/10くらい貰ってるんだけど
0764nobodyさん
2008/01/05(土) 11:17:36ID:???SOHOやフリーで細々食え出した奴 27人目
http://pc11.2ch.net/test/read.cgi/hp/1197725381/
0765nobodyさん
2008/01/05(土) 12:06:41ID:fWLhflwQ具体的に何処がいいのかが良く分かりません。
例えば、PerlのDBIは、データベースからデータを取る場合、
以下のようなモジュールを使えば非常に便利です。
selectrow_array、selectcol_arrayref、selectall_arrayrefなど。
これ以上の機能のモジュールがPHPにはあるということなのでしょうか。
サイトをいくつか検索してみたのですが、思うような
情報が得られませんでしたので、ここで質問してみました。
ヒントとなるキーワードだけでも良いので、よろしくお願いします。
0766nobodyさん
2008/01/05(土) 12:17:21ID:???http://jp.php.net/manual/ja/ref.pdo.php
こんなんとか。
0768nobodyさん
2008/01/05(土) 12:49:37ID:???と言ってみる
0769nobodyさん
2008/01/05(土) 15:33:31ID:???0771nobodyさん
2008/01/05(土) 18:28:48ID:Dao7FJFaheader("Content-Length: ".$content_length);
header("Content-Type: audio/mpeg");
$fp = fopen($file_path,"rb");
while($buf = fread ($fp, 4096)){
echo $buf;
}
fclose($fp);
tp://foo.jp/hogehoge.php?id=xxx にアクセスすると、上記のような感じでサーバー上にあるmp3やmp4を読み込んで
ブラウザ上で再生させたいのだが、ファイルがダウンロードされてしまう。
普通にtp://foo.jp/hogehoge.mp3 とファイルを置いてアクセスするとプレイヤが起動して再生するようにしたいのだが、
どうすれば良いでしょう?Content-Type をいろいろ変えてみたんですが・・・。
0773nobodyさん
2008/01/05(土) 19:22:00ID:Dao7FJFaありがとう、うまくいったよ。ほんとうにありがとう
0775nobodyさん
2008/01/05(土) 23:27:19ID:BCQmUqUR取得することできますか? RSSのないページです。
ヒントがあれば教えてください、検索してみます。
いまんとこ見つけれてません。
0776nobodyさん
2008/01/05(土) 23:31:51ID:???取得した内容を調べる。
さぁ、分かんないのはどぉーこだ?
0778nobodyさん
2008/01/06(日) 00:56:47ID:???0779nobodyさん
2008/01/06(日) 02:00:46ID:???$contents = file_get_contents($url);
$retAry = array();
preg_match('!<title[^>]*>(.*)</[^>]*>!',$contents,$retAry);
return $retAry[1];
}
0780nobodyさん
2008/01/06(日) 02:12:36ID:Njbvq9C9以下のコードではipアドレスが取得出来ませんでした。
$ip = $_SERVER['REMOTE_ADDR'];
そこで、以下のように書いてみると取得できました。
$ip = getenv("REMOTE_ADDR");
FORMタグにてPOSTされたものも、以下のコードでは
取得できなかったのですが、
上記getenvにあたる関数はないのでしょうか。
$pos = $_POST['test'];
よろしくお願いします。
0781nobodyさん
2008/01/06(日) 02:28:45ID:???まさかとは思うがphpのバージョンって4.1より古い?
$_HTTP_POST_VARSとか$_HTTP_GET_VARSん使ってみるといいかも
0782nobodyさん
2008/01/06(日) 02:52:45ID:???0783780
2008/01/06(日) 02:54:37ID:Njbvq9C9教えていただいたコードを使ってみたり、
phpのバージョンをしらべてみたりしてみます。
0784nobodyさん
2008/01/06(日) 04:36:15ID:5j6bL89Becho "両方成功";
}
だとhoge()に成功しないとhuga()を実行してくれませんよね。
hoge()に関係なくhuga()も実行したい場合に以下のコードを書いてみたんですが、あまりスマートじゃない気がします。
何かもっといい方法がありましたら教えてください。
$bool1 = hoge();
$bool2 = huga();
if ($boo1 && $bool2) {
//何かの処理
}
0785nobodyさん
2008/01/06(日) 04:43:56ID:???PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 60
http://pc11.2ch.net/test/read.cgi/php/1196511516/
◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0788nobodyさん
2008/01/06(日) 06:39:21ID:++XQtjIdzip.lib.phpやZipArchive()を試しに使用しており、出来る限り一時ファイルを作成したくないため
直接クライアントに送信するよう書いてみましたが、ファイルによってはメモリがきついです
何か上手な方法はありますか?
0789nobodyさん
2008/01/06(日) 06:46:09ID:???0790nobodyさん
2008/01/06(日) 06:56:26ID:++XQtjId0791nobodyさん
2008/01/06(日) 10:42:16ID:???やったこと無いけど、 if(hoge() & huga()) みたくビット演算にすれば出来るかも。
まぁ、他の人がコード読んだらバグにしか見えないから止めたほうがいいとは思うけど。
0792nobodyさん
2008/01/06(日) 11:22:00ID:???メモリ的に無理だと、対処しようが無いでしょ。
例えば、検索結果で100万件が1ページで表示されるようにしないのは、
メモリが関係しているから。
なので、ページを分割するか、途中で処理を無理やり止めてしまうか
しか方法はない。
0793nobodyさん
2008/01/06(日) 11:39:16ID:???下を見ればキリがないっていうけど、ここの回答者はひどいなw
0794nobodyさん
2008/01/06(日) 11:47:02ID:???0795nobodyさん
2008/01/06(日) 11:47:08ID:???0796nobodyさん
2008/01/06(日) 11:54:25ID:???いや、ここは週に1回、優越感をひたるために来てるからw
ってか、おまいら学歴低そうだな。IQ100はあるか?
PHPなんて下等ランゲなんかやってると、そのうちホームレスになるぞw
0797nobodyさん
2008/01/06(日) 11:56:18ID:???0798nobodyさん
2008/01/06(日) 13:51:41ID:???0799nobodyさん
2008/01/06(日) 14:06:59ID:???0800nobodyさん
2008/01/06(日) 14:08:00ID:???あんまり上げすぎると、体は大人!頭脳はじっちゃん! になっちまうから注意。な。
PHPの質問マダー?
0801nobodyさん
2008/01/06(日) 14:56:41ID:???0802nobodyさん
2008/01/06(日) 14:58:09ID:???ごめんなさい。もう書かないので許して頂けませんか。。
ちなみに>>801さんのIQはいくつでしょうか・・?
やはり801でしょうか。。
0803nobodyさん
2008/01/06(日) 15:05:59ID:???ここにいる人は人間的にもレベルがひくいっすねw
0804nobodyさん
2008/01/06(日) 15:19:16ID:???0807nobodyさん
2008/01/06(日) 15:50:31ID:???0808nobodyさん
2008/01/06(日) 15:55:37ID:???$_FILESの内容、処理だけでも大変そう
実メモリ、memory_limitの値を見てみたい
0809nobodyさん
2008/01/06(日) 16:09:02ID:???少ないメモリで動かすのは不安があるけど、実メモリそんなに使うかな。
0810nobodyさん
2008/01/06(日) 16:10:38ID:???まさか・・ね。
0811nobodyさん
2008/01/06(日) 16:19:39ID:???流石にチェックしてないのかな
自分のところengine offとかにしても、経由して他のところ
いたずらされるかもしれんけど
0812809
2008/01/06(日) 16:24:04ID:j3gkesVW昔読んだ Java Servletで作ってあったやつはそういう作りだったから、ありえない話でもない。
最近のは知らないけど、ServletAPIだとリクエストはメモリに展開されて受け渡されたから、
servlet側ではどうしようもなかったはず。
0813nobodyさん
2008/01/06(日) 16:24:29ID:???0814nobodyさん
2008/01/06(日) 16:28:07ID:???これを10時20分30秒と時・分・秒と分けて表示する方法ありますか?
0816nobodyさん
2008/01/06(日) 16:54:42ID:???0817nobodyさん
2008/01/06(日) 16:58:30ID:???0818nobodyさん
2008/01/06(日) 17:50:49ID:???こちらでお伺いします。
SELECT id FROM test WHERE id=1 or id=2 or id=3
として、IDが1か2か3のデータを出したいと思います。
上記のSQLなら3つのレコードがヒットします。
idを検索する数だけid=を付けるのは変だと思うのですが、
どういう書き方をしたらいいのでしょうか?
0819nobodyさん
2008/01/06(日) 17:53:20ID:???オプティマイザ的に差があるかどうかは知らん。
0820nobodyさん
2008/01/06(日) 18:12:36ID:???■ このスレッドは過去ログ倉庫に格納されています