【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カテゴリ)の各スレで
0694nobodyさん
2008/01/03(木) 21:56:40ID:???絶対に出力後が代入されてしまうのですが
0695nobodyさん
2008/01/03(木) 22:01:34ID:???0696nobodyさん
2008/01/03(木) 22:07:30ID:???0697nobodyさん
2008/01/03(木) 22:08:14ID:???0698nobodyさん
2008/01/03(木) 22:10:13ID:???0699 ◆SHiMA//5DA
2008/01/03(木) 22:11:06ID:DBOTcnZE0700nobodyさん
2008/01/03(木) 22:26:00ID:???0701nobodyさん
2008/01/03(木) 22:28:23ID:???どういうことなのかよく分からんが、第6感を働かせて
みたところ、「issetで存在を確認したい変数を関数の
引数に入れて処理させるだけの話じゃないのか」という
結論に達した。
もしくは関数呼ぶ前にifなりなんなりで処理してしまうとか。
……>>694が意味不明でやっぱりよく分からんな。
0702nobodyさん
2008/01/03(木) 23:02:36ID:???書き込み多いので変なことにならないか心配すぎる
0703nobodyさん
2008/01/03(木) 23:04:04ID:???0704nobodyさん
2008/01/03(木) 23:06:12ID:???0705nobodyさん
2008/01/03(木) 23:22:41ID:???0706nobodyさん
2008/01/03(木) 23:48:17ID:???RDBMSにはファイルのロック以上に緻密なロックの仕組みがあり、それを
知らないと意図通りの更新や読み出しができないことはある。
なのでそれはきちんと勉強した方がいい。
MySQLにどの程度実装されているかは知らないけど、ファイルロックよりは
安全にデータの更新や参照ができるはず。
0707nobodyさん
2008/01/04(金) 00:52:28ID:Qh7lpWjFglobal $wpdb;→$random_idにランダムな記事のIDを指定をし、そのIDに基づいて
query_posts('page_id=urlencode($random_id)');
while (have_posts()) : the_post();
ループ
endwhile
としているのですが、どうもうまくいきません。
query_posts('page_id=urlencode($random_id)');
の部分の書き方がおかしいのかと思いますが、どうすればいいのかわからないのでおしえていただけませんか。
0708nobodyさん
2008/01/04(金) 04:38:17ID:eljYrwXkerror_reporting(E_ALL);
class Hoge
{
public static $name = 'test';
}
$obj = new Hoge;
echo Hoge::$name; //test
echo $obj->name; //Notice: Undefined property: Hoge::$name
echo $obj::name; //Parse error: syntax error, unexpected T_PAAMAYIM_NEKUDOTAYIM
phpではインスタンスからはstatic変数にアクセスできないってことなんでしょうか?
他にどういう方法がありますか?
(アクセサ使えって話かもしれないけど)
0709nobodyさん
2008/01/04(金) 04:45:07ID:???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カテゴリ)の各スレで
0710nobodyさん
2008/01/04(金) 05:30:54ID:???http://www.php.net/manual/ja/language.oop5.static.php
0711nobodyさん
2008/01/04(金) 07:51:10ID:???windows
preg_replaceでーを比較しようとしたところ
for character class at offsetというエラーがでました。
SJISだからかなとおもってEUC-JPに変換してみましたがやはり同じエラーがでました。
どうしてなんでしょうか?
0713711
2008/01/04(金) 10:02:56ID:z4j42IHm0714nobodyさん
2008/01/04(金) 10:10:03ID:???変換ができてないとか
SJISだとエラー吐くよ
0715nobodyさん
2008/01/04(金) 10:12:04ID:eljYrwXkそれは勿論読んだ上の質問。
その例で言うと
print $foo::$my_static . "\n";
がパースエラーになるんだけどなんで?
0716nobodyさん
2008/01/04(金) 10:49:17ID:???>〜中略〜
>print Foo::$my_static . "\n";
読んだ、ねぇ
0717nobodyさん
2008/01/04(金) 11:59:14ID:???質問者はインスタンス経由でstaticフィールド変数にアクセスする書式がないのか聞いてるんでしょ?
>>715
でも、
http://www.php.net/manual/ja/language.oop5.static.php
>static なメンバは、インスタンス化されたクラスオブジェクトから アクセスすることはできません (static なメソッドからは可能です) 。
ってはっきり書いてあるから、疑問を持つ余地はないかと。
マニュアルページのサンプルがエラーになるのは、どうかと思うが。
0718nobodyさん
2008/01/04(金) 12:23:57ID:???windows のセットアップバイナリは壊れたまんまだし、
.chm のヘルプファイルのキーワード文字化けも一向に直そうとしないし…
0719nobodyさん
2008/01/04(金) 14:12:45ID:KzTuE4cgなぜか、下記スクリプトでは動きません。(結果が表示されません。echo date をはずしてもブランクが表示されます)ご教授ください。
<?php echo date("y.m.d H:i:s", filemtime("http://xxx.com/index.php")); ?>
サーバー:さくら
バージョン:4.4.7
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ページで表示されるようにしないのは、
メモリが関係しているから。
なので、ページを分割するか、途中で処理を無理やり止めてしまうか
しか方法はない。
■ このスレッドは過去ログ倉庫に格納されています