【PHP】下らねぇ質問はここに書き込みやがれ 35
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2006/12/21(木) 13:42:19ID:???まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 34
http://pc8.2ch.net/test/read.cgi/php/1165519374/
◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ http://pc8.2ch.net/php/subback.html
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで http://pc8.2ch.net/db/subback.html
・速さについては自分でベンチをとってここに書け(違う環境の人も調べてくれるかも)
しかし初心者が目的も定めずに速度を気にしたところでほとんど意味は無いぞ
0232nobodyさん
2006/12/25(月) 22:10:54ID:3ON9VEdMXMLHttpRequestについて勉強しているのですが、
PHPで複数回レスポンスを送信するにはどうすればいいのでしょうか?
受信できるかどうかわかりませんが、
while ($a <= 10) {
//$aを送信するとして、ココの記述が知りたい
}
という状態です。
よろしくお願いします。
0233nobodyさん
2006/12/25(月) 22:24:25ID:???10個の値を書いてXML1回で渡すんじゃダメなの?
0234nobodyさん
2006/12/25(月) 22:26:45ID:???URLが http://example.com/hoge.php?x=10&y=20#label
のように引数の後にラベルがつく形になっているとき、
hoge.phpが出力するHTML内に<a name="label"></a>があっても、
そこにジャンプしてくれない・・・というバグです。
(ちなみにIEでは上記のやり方でしっかり飛ぶので、IEまたはFirefoxの仕様なのか
それともバグなのか、ハッキリしないけど)
0235nobodyさん
2006/12/25(月) 22:28:00ID:???HTML・CSSとPHPの間にJavaScriptをはさむのが主流。
漏れの場合は、HTML・CSSの次にXMLとFlashをやって、今PHP勉強中って感じ。
ActionScriptも多少かけるんで、JavaScriptもそれなりにいけるかなー
0236nobodyさん
2006/12/25(月) 22:32:08ID:???とほほ -> HTML/CSS -> K*NT -> Perl -> 一旦全て忘れて -> Perl -> Le*'s -> PHP -> 一旦全て忘れて -> PHP
0237nobodyさん
2006/12/25(月) 22:32:33ID:FViFZp7Lどうすれば良いのでしょう?
例えば、$gggが1234で http://abc.jp/test.php?r=1234
というURLにしたい場合、
<?php
$ggg = 1234
file_get_contents
("http://abc.jp/test.php?r=$ggg");
?>
にすると、$gggの部分が無視されてしまいます。
0238nobodyさん
2006/12/25(月) 22:35:45ID:???ひろみちゅがコンドーム買ってるぞ。
清純な彼のイメージが(つД´)
0239nobodyさん
2006/12/25(月) 22:35:51ID:???そうなんだ・・。本屋とか行くとPHP&MySQLっていう本を良く目にするんだけど、PHP勉強すると同時にMySQLも勉強した
ほうがいいのかな。
0240nobodyさん
2006/12/25(月) 22:43:33ID:3ON9VEdMXML1回で渡すのはだめなんです。
どうやっても受け取れないもんなのでしょうか?
0242nobodyさん
2006/12/25(月) 22:48:27ID:???そしたらクライアントのJavaScript側でループすべきだよ(10リクエスト10レスポンス)
どうにもループさせる理由がわからんが・・・
0243nobodyさん
2006/12/25(月) 22:57:22ID:???>firefoxでバグ
むぅ、たしかにIEだと成功するが、FFだとダメだな。。。
ちなみに俺のFFは最新の2.0.0.1だが、そっちは?
0244232
2006/12/25(月) 23:35:04ID:3ON9VEdMループさせる理由は、WebアプリでDB操作(INSERT/UPDATE)をするためなんです。
なので実際は10回どころか千・万単位のリクエストになります。
画面なしのバックグラウンドで動かすわけにはいかない、という条件です。
推定処理時間は数分です。
その処理時間の間に何か表示させたいと思っています。
無理な場合は、NowLoading...みたいな感じで処理中表示のajaxを使うつもりですが、
出来たらプログレスバーを作りたいと思ってajax、XMLHttpRequestについて勉強していました。
1リクエスト複数レスポンスというのは無理なんでしょうか、、、
0245nobodyさん
2006/12/25(月) 23:37:29ID:???0247234
2006/12/25(月) 23:54:14ID:???当方の環境は、IE6.0、Firefox1.5と、2.0です。
Firefoxはどちらでもダメでした。
これって既知のバグなんでしょうか?
0249nobodyさん
2006/12/26(火) 00:03:48ID:???0250nobodyさん
2006/12/26(火) 00:09:52ID:???0251nobodyさん
2006/12/26(火) 00:52:31ID:???html も php も全然関係ないじゃん
query 文字列の後に hash がくるのは正しい URL だし
それで常にジャンプできないようであれば
Firefox の不具合でしょ
0252nobodyさん
2006/12/26(火) 01:12:54ID:???まぁバグだと思うならレポート出せばいいよ。
0253nobodyさん
2006/12/26(火) 01:16:09ID:???けど、それらしい情報ないな
0254nobodyさん
2006/12/26(火) 01:17:21ID:???未完成といわれても仕方ない。
でも本当に本当なの?ちょっと信じられないのだが。
俺はFF入れてないからわかんないけどaタグの書き方とか間違ってない?
0255nobodyさん
2006/12/26(火) 01:32:04ID:???0256nobodyさん
2006/12/26(火) 01:33:02ID:???でも自環境でテストしてみたら、
たしかにFFのアンカーラベル機能は死んでる様子。
0257nobodyさん
2006/12/26(火) 01:40:34ID:???具体的には、test.php(ひたすら改行して、縦に長〜いページを出力するだけのスクリプト)で、
出力するHTMLの一番下(BODY閉じタグの直前)に、<a name="#label"></a>と記述。
この状態でtest.php#labelにFFからアクセスしても、ページ下部のラベルには飛ばない。
>>234はクエリ文字列のあとにラベルを付けた状態らしいが、俺はクエリ文字なしでも同じ結果だった。
0259nobodyさん
2006/12/26(火) 01:45:49ID:???id="#label"
0260nobodyさん
2006/12/26(火) 01:46:27ID:???目的地アンカーの最適化
http://www.seo-equation.com/reference/cat17/end_anchor
>旧来の HTML では、a要素の name属性にアンカー名を付与して
>ウェブページ内の特定箇所をリンク先として参照できるようになる
>目的地アンカー(終点アンカー)が一般的に良く使われていますが、
>XHTML1.1 では、name属性は完全に廃止され、
>旧来の目的地アンカーのテクニックは利用できません。
>本文書では HTML4 の仕様から新たに登場した id属性を指定することで、
>これを代替する手法を解説します。
0261nobodyさん
2006/12/26(火) 01:56:39ID:???多分デフォルトのメモリ量では確実に不足してると思われるんですけど・・
0262nobodyさん
2006/12/26(火) 01:58:20ID:???<p id="label">なんたらかんたら</p> 飛ぶ。日頃使ってる。
<a name="label">ここへ飛べ</a> 昔、こうしてた。飛ぶ。
<a name="label"></a> さっき試した。飛ぶ。
<a name="#label"></a> IE6: なぜか飛ぶ/Fx: 飛ばない。
で、なんでFxスレなんですか。
0263nobodyさん
2006/12/26(火) 02:07:00ID:???バグだと疑うならまずはIEを疑ってください。
と信者が申してました。
0264nobodyさん
2006/12/26(火) 02:13:18ID:???やったこと無いけど、一番重そうなページで memory_get_usage とか
memory_get_peak_usage を使ってメモリの使用量を測定し、想定する
同時接続数を掛けてみてはどうか?
0265232
2006/12/26(火) 02:29:42ID:K7ycYnW/すいません。書き方が悪かったので訂正します。
ループさせる理由は、WebアプリでDB操作(INSERT/UPDATE)をするためなんです。
なので実際は10回どころか千・万単位のリクエストになります。
画面なしのバックグラウンドで動かすわけにはいかない、という条件です。
推定処理時間は数分です。
その処理時間の間に、進み具合が分かるプログレスバーを表示させたいと思っています。
-----
元の書き込みのwhileは別例になります。
DBとか書かないほうが説明しやすいかと思いまして、、、
動作としましては、
Javascriptからの1リクエスト、
↓
----- ループ -----
PHPからのレスポンス送信
↓↑
Javascriptでのレスポンス受信
-----------------
が可能かどうかが知りたかったんです。
これが出来れば処理状況表示のプログレスバーも出来そうな気がするので、、、
よろしくお願いします。
0266nobodyさん
2006/12/26(火) 02:42:30ID:???こんな感じじゃない?すげー重くなりそうだけど。
function insertDB(){
for( i=0; i<100; i++ ){
Ajaxでサーバに i 件目を格納させるリクエストを飛ばす;
成功したらプログレスバーのwidthを+1pxする;
}
}
0267nobodyさん
2006/12/26(火) 02:55:40ID:???てかここって php のスレだよね
0268nobodyさん
2006/12/26(火) 03:03:50ID:???最初の一件のリクエストで何万件だかの SQL を発行
進捗とともに状況をファイルに書き出す
ajax で一定時間ごとにファイルを読みに行く
そんな難しいことじゃない
けど 232 はもっと勉強が必要だと思う
0269nobodyさん
2006/12/26(火) 03:06:04ID:???ありがとうございます。
メモリの設定値はphp.iniを変更するだけでいいですよね?
大丈夫かなぁ
ちなみに関数の使い方はマニュアルをみたのですがなんか理解しずらいっす
0270nobodyさん
2006/12/26(火) 03:14:54ID:???0272nobodyさん
2006/12/26(火) 05:09:35ID:???0274nobodyさん
2006/12/26(火) 09:43:15ID:???女性用のほうが慣れてるぜwww
でもパイパンにするのにあのカミソリじゃ危ない希ガス・・・
0275nobodyさん
2006/12/26(火) 10:09:13ID:???0276nobodyさん
2006/12/26(火) 11:10:06ID:???0277nobodyさん
2006/12/26(火) 11:37:45ID:???自動的にスレを保存するにはdatファイルにアクセス・読み込み・保存でよろしいのでしょうか?
datファイルとはお金をかけないと不正アクセス禁止法にひっかかるのでしょうか?
0278nobodyさん
2006/12/26(火) 11:40:07ID:???なんでだろ?他の言語では広げるのはできないけど、狭めるのはできるよね?
http://php.justdn.org/manual/ja/language.oop5.visibility.php
PDOのコンストラクタはpublic → 継承したSingletonクラスでpivateにしたい。
0279nobodyさん
2006/12/26(火) 11:52:40ID:UoOJj1FX登録サイト(mixiなど)でみかける住所フォームで、
都道府県を選択したら自動でその市区郡が選択できるようになるのがありますが、
PHPで同様なことをしたいのです。
どうしたらよいでしょうか?
参考になるコメント、助言お願いします。
0282nobodyさん
2006/12/26(火) 11:57:24ID:???できないのは仕様ですと言われればそれまでだからな・・・。
余談だけどPHPでシングルトンやるなら、結局は実行時にしかチェックされないってことも考えるといいかも。
たとえコンストラクタをprivateにしても、phpの場合は実行時にnewをして初めてエラーが出る。
だからJavaでコンパイル時にチェックさせるような実装を真似る必要はなくて、コンストラクタをpublicにしかできなくても、例えばクラス外からnewされたら例外を投げる、みたいなやり方で十分だと思う。
もしくは継承ではなく、コンポジションにする(PDOのインスタンスをプロパティとして持つ)って手もあるんじゃないかな。
0283nobodyさん
2006/12/26(火) 11:59:15ID:???非同期でやるならJavaScriptだけどmixiは画面遷移してるね。
都道府県が選択されたらonChangeでPostして都道府県IDを飛ばすだけだな
0284279
2006/12/26(火) 11:59:21ID:???都道府県を選択
↓
次のページへ移動
↓
市区群表示
じゃだめか?
0285nobodyさん
2006/12/26(火) 12:04:01ID:TexWR+4fhiddenをつかおうがセッションを使おうが、一回はpostされるわけですよね?
postの中身を改ざんされる恐れがあると思うんですが、
予防法などありましたらアドバイスお願いいたします。
0288nobodyさん
2006/12/26(火) 12:24:47ID:???0289nobodyさん
2006/12/26(火) 12:28:10ID:???0290nobodyさん
2006/12/26(火) 14:05:13ID:Jf/WWK780292nobodyさん
2006/12/26(火) 14:40:10ID:???0294nobodyさん
2006/12/26(火) 16:00:44ID:???どこかライセンス認証に向いてるシステム作ってるサイトしらない?
自分で作ってもいいんだけど、既存のものがあるなら見てみようと思ってさ。
0296nobodyさん
2006/12/26(火) 16:50:16ID:???そういうケチを付けるだけの情報量ゼロないちゃもんもいりませんから。
とかいうとお前もなと不毛な鸚鵡返しが返ってくると↓↓↓↓↓↓↓↓
0297nobodyさん
2006/12/26(火) 16:54:22ID:???0298nobodyさん
2006/12/26(火) 17:17:40ID:???不要な文字を除去したいのだけど
str_replaceにはどう書けばいいのでしょうか?
0300298
2006/12/26(火) 17:30:33ID:???そのものではなくて、文字コード0x00とUTF-8のBOMという意味です。
0301nobodyさん
2006/12/26(火) 17:40:21ID:fFhrPh3DVBSファイルの内容は、
Set objSystemSet = GetObject("winmgmts:{impersonationLevel=impersonate,(Shutdown)}").InstancesOf("Win32_OperatingSystem")
For Each objSystem In objSystemSet
objSystem.Win32Shutdown 8
Next
という割と有名なやつです。poweroff.vbsで保存されております。
PHP上の呼び出しは、
$ret = system("C:\**********\poweroff.vbs");
となっております。
PHP上で実行すると、確かにシャットダウンは開始するのですが、
画面が暗転してシャットダウンが途中で止まったり、
ログイン時のダイアログが表示されたり、たまに完全にシャットダウンされたりします。
ちなみに直接VBSを呼び出すと無事シャットダウンされます。
OSはXP、Apache1.3.28+PHP4.4.2です。
何か原因があるのでしょうか?
0302nobodyさん
2006/12/26(火) 18:10:25ID:???0303nobodyさん
2006/12/26(火) 18:38:36ID:Jf/WWK78そそそ、それでした!!
ありがとうございまーす
0305232
2006/12/26(火) 20:53:02ID:???そういう手法は全く考えてませんでした。
ズバリな回答ありがとうございました!
> けど 232 はもっと勉強が必要だと思う
(´・ω・`) がんばります
0306nobodyさん
2006/12/26(火) 21:18:27ID:???ログのどこみたらのってますか?
0308nobodyさん
2006/12/26(火) 22:21:43ID:???ヒントをやるから自分でみつけろ
1. http://pc8.2ch.net/php/dat/1166676139.dat
2. 「<>」で区切ってある
しかし2ちゃんねるはデータベースを用いないのな。
0309nobodyさん
2006/12/26(火) 22:47:18ID:???0310nobodyさん
2006/12/27(水) 00:49:17ID:uQ88JK/10311nobodyさん
2006/12/27(水) 00:51:59ID:???∩_
〈〈〈 ヽ
〈⊃ }
∩___∩ | |
| ノ ヽ ! !
/ ● ● | /
| ( _●_) ミ/ <こいつ最高にアホ
彡、 |∪| /
/ __ ヽノ /
(___) /
0312nobodyさん
2006/12/27(水) 00:58:17ID:0HWbicIg$tit ="この部分";
//〜〜
$Yow ="この部分";
//~~
//~~~^^
$ok ="この部分";
//〜〜
このように記述されてるPHPの「各""(ダブルクォーテーション)の中」に
「文字を書き込み」、かつ「""の中身」に既に文字が入っていれば
「上書きして文字を書き込む」PHPを作成したいのですがどうすれば良いでしょうか
0313nobodyさん
2006/12/27(水) 01:00:16ID:???0314nobodyさん
2006/12/27(水) 01:02:35ID:0HWbicIg$tit ="この部分と";
//〜〜
$Yow ="この部分と";
//~~
//~~~^^
$ok ="この部分";
//〜〜
に特定の文字を書き込むPHPを作成したいのですがどうすれば良いでしょうか
0315nobodyさん
2006/12/27(水) 01:06:46ID:???<?php
mb_internal_encoding("UTF-8");
$str = 'あaいiうuえeおoかkaきkiくkuけkeこkoさsaしshiすsuせseそsoたtaちchiつtsuてteとto';
echo mb_substr(mb_convert_encoding($str, 'UTF-8', 'SJIS'), 0, 10);
echo "\n";
echo mb_convert_encoding(mb_substr($str, 0, 10), 'UTF-8', 'SJIS');
?>
結果が
あaいiうuえeおo
あaいiうu
となります。mb_substrの返り値が違うのは
Shift_JISは1〜2byteのみで表現するのでbyte数で返してもほとんど支障はない
UTF-8は1〜6byteで表現しbyte数で返すと文字数が少なすぎる場合があるので文字数で返す
ということでいいんでしょうか?
0316315
2006/12/27(水) 01:07:45ID:/UATDQ7l0317nobodyさん
2006/12/27(水) 01:18:25ID:???ノロが怖いので丁寧にチンチンを洗ったら気持ちよくなりました。
ノロって気持ちいいんですね。
上の条件を満たす関数を作りなさい。
優秀賞はノロウィルス一年分贈呈
0318nobodyさん
2006/12/27(水) 01:26:54ID:uQ88JK/1パソコンが壊れた場合、phpがインストールできなくなるのでしょうか?
0320nobodyさん
2006/12/27(水) 02:04:27ID:???置き換えたい文字列をあらかじめ __hogehoge__ とかにしておいて、
すべて変数$beforeにいれておき
$after = str_replace( $before, "__hogehoge__", "書き込みたい文字列" );
0322nobodyさん
2006/12/27(水) 02:56:36ID:???ifとelseifのみの、elseがない条件文のようなものという認識であってますか?
0323nobodyさん
2006/12/27(水) 02:59:17ID:???0324nobodyさん
2006/12/27(水) 03:31:32ID:???なんかメリットあるのか?
0325nobodyさん
2006/12/27(水) 03:38:49ID:???message (イベント)を処理するときに使う
if 文で書くと冗長になる
0326nobodyさん
2006/12/27(水) 03:56:17ID:???条件 b の時に処理 1 と 2 をなんて時に使う
if 文で書くと
同じことを複数書くか(メンテナンス性が最悪)
if 文を増やすか(速度的なペナルティがある)するしかない
Web アプリではあまり使わないけれども
0327nobodyさん
2006/12/27(水) 08:39:13ID:???0328nobodyさん
2006/12/27(水) 10:08:35ID:???0329nobodyさん
2006/12/27(水) 10:19:29ID:???別にデメリットがあるわけでもなし、
使わんとかいう理由がわからん。
…と、思ったんだけど、
自分のソース見たら使ってなかったw
0330nobodyさん
2006/12/27(水) 12:34:33ID:???0331nobodyさん
2006/12/27(水) 12:39:10ID:???■ このスレッドは過去ログ倉庫に格納されています