【PHP】下らねぇ質問はID出して書き込みやがれ 93
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2010/02/15(月) 19:23:06ID:???過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 92
http://pc11.2ch.net/test/read.cgi/php/1263035502/
◆質問用テンプレ
【OS名】vine linux
【PHPのバージョン】php5.26
【連携ソフトウェア】mysql
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0798nobodyさん
2010/03/11(木) 00:14:26ID:???0799nobodyさん
2010/03/11(木) 00:21:26ID:???0800nobodyさん
2010/03/11(木) 00:21:57ID:???フォーム入力欄に副クエリーとかテーブル結合とかまで入れて、
サーバーに過度の負荷を与えたりとか。
入力欄「abc or id = (select * from (select * from (select * from(....) )))」
id=の後をダブルクオーテーションで囲んで、794を参照。
0802nobodyさん
2010/03/11(木) 00:43:05ID:uZgmI9Anわからないんだったら出てくるなよバカ
0803nobodyさん
2010/03/11(木) 00:51:33ID:???わかっているからこそプログラミングでの常識レベルと判断できるのですかなにか?
本当に>>798の状態ですよね。
0805nobodyさん
2010/03/11(木) 01:01:25ID:uZgmI9An的確に説明できる人いませんか?
0806nobodyさん
2010/03/11(木) 01:13:39ID:???http://www.google.co.jp/search?q=%67%75%67%75%72%65%6b%61%73%75
0807nobodyさん
2010/03/11(木) 01:13:46ID:???http://www.google.co.jp/search?hl=ja&q=%E5%86%8D%E5%B8%B0%E7%9A%84%E3%81%AB%E5%87%A6%E7%90%86&lr=lang_ja
最近のゆとり組はパソコンすらまともに使えなかったりするからな。
グーグルできなくても当たり前みたいだよ。
でもオナニーとmixiはできます。みたいな。
大きな器が必要だよみなさん。これから全盛期の人間が本格的に社会に出てくるぞ。
0808nobodyさん
2010/03/11(木) 01:14:17ID:???0809nobodyさん
2010/03/11(木) 01:30:26ID:???説明できるのいないと言うが再起処理って初歩中の初歩。
説明するのがばからしい。こんな初歩すら自分で調べられない馬鹿には仮に説明したところで理解できないね。
0810nobodyさん
2010/03/11(木) 01:33:21ID:???これからphpはwww
0811nobodyさん
2010/03/11(木) 01:34:35ID:???0813nobodyさん
2010/03/11(木) 01:48:58ID:???0814nobodyさん
2010/03/11(木) 02:01:23ID:S9Wmg552IDチョックは簡単だぞ
IDを数字にすればOK
0815nobodyさん
2010/03/11(木) 02:10:44ID:???0816nobodyさん
2010/03/11(木) 02:13:34ID:???0817nobodyさん
2010/03/11(木) 05:02:26ID:???0818nobodyさん
2010/03/11(木) 05:10:15ID:???>・ 質問者として、態度をわきまえること。
>・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
0819nobodyさん
2010/03/11(木) 05:28:59ID:???0820nobodyさん
2010/03/11(木) 05:40:39ID:uZgmI9Anじゃ、文字列から「(」と「)」の間の文字を取り除くにはどうしたらいいでちゅか?
ただし「(」と「)」は入れ子になっている可能性がありまちゅ。
//わからない人は出てこなくていいでちゅよ。
0822nobodyさん
2010/03/11(木) 06:07:14ID:???0823nobodyさん
2010/03/11(木) 06:09:39ID:???入れ子になっている可能性も考えるともう正規表現だと無理があるかな。
文字列を1文字1文字再帰的に処理して行く。
0824nobodyさん
2010/03/11(木) 06:11:50ID:???文字列としても文字としても簡単に扱えるから。
0825nobodyさん
2010/03/11(木) 06:19:09ID:uZgmI9An0826nobodyさん
2010/03/11(木) 06:30:08ID:???だったらやればいいじゃん。入れ子はどう考慮するか理解してないようだけどね。
どっちにしても再起処理は不可欠だね。
0827nobodyさん
2010/03/11(木) 06:32:44ID:???0828nobodyさん
2010/03/11(木) 09:27:15ID:???0829nobodyさん
2010/03/11(木) 09:30:01ID:???0830nobodyさん
2010/03/11(木) 11:07:09ID:1xNa3qka【PHPのバージョン】php5.31
【連携ソフトウェア】ImageMAGIC
ImageMAGICを使いgifのサムネイルを作っています。
サイズがどうしても重くなるので、最初の5フレームだけ抜き出すようにしました。
元画像を分割
convert +adjoin a.gif /tmp/image%04d.gif
分割された画像0〜4までを結合&リサイズ
convert -adjoin -loop 0 -delay 20 /tmp/image0000.gif /tmp/image0001.gif /tmp/image0002.gif /tmp/image0003.gif /tmp/image0004.gif -resize $150x150\> as.gif
しかしこのやり方では場合によっては処理に1分以上かかることがあります、非常に重いです。
ImageMAGICではおそらくどんなやり方をしてもこの処理時間は縮めるのは難しいと指摘されました
もっと軽くて効率的なやり方はないでしょうか?どうぞよろしくお願いしますm(__)m
0832nobodyさん
2010/03/11(木) 11:31:58ID:G8nMSG6F0833nobodyさん
2010/03/11(木) 12:10:43ID:0kmM8iNj例えば、サーバのフォルダ構造を想像して
/hoge/huga/aaa.php
/hoge/huga/bbb.php
/hoge/hoge/ccc.php
/hoge/hoge/ddd.php
ってなってた時、4つ全てのファイルの処理をする場合に
「/hoge/以下を再帰的に処理する」なんていいますね。
0834nobodyさん
2010/03/11(木) 12:17:12ID:0kmM8iNj続けて質問なのですが
urlencodeに関して
例えば
http://itpro.nikkeibp.co.jp/article/Keyword/20100309/345549/?ST=network
のタイトル、「 短縮URLとは、Webサイトが使うURLを短く変換したもののこと。
Webサービスとして運営されている短縮URLサービスを使うことで、アルファベット数文字程度にする。
短くしたURLは、自分のTwitterやブログなどに張り付けて使う。」
をphpでURLエンコードした結果と
http://www.tagindex.com/tool/url.html
でエンコードした結果が違うのですが
PHPでtagindex.comさんで変換したようにアルファベット、記号含め全て"%xx"の形に変換する方法を教えてください
0835nobodyさん
2010/03/11(木) 12:26:15ID:???0836nobodyさん
2010/03/11(木) 12:26:56ID:???0837nobodyさん
2010/03/11(木) 12:35:54ID:???http://pc11.2ch.net/test/read.cgi/php/1266229386/
のようにunixtimeでスレッドを識別していて、同じ時刻にスレを立てた人が複数いると
unixtimeがかぶってしまうので拒否するようになってるみたいです。
この識別を連番以外で重複なく、
また、複数人が同時刻にスレを他てようともどちらも立てることができるようなものにしたいのですが、
なにかいい方法はありますでしょうか?
0839nobodyさん
2010/03/11(木) 12:50:46ID:w3xbnBCuselectじゃなくてshowなのでフェッチできない。
さてどうしたらいいかな。
0840nobodyさん
2010/03/11(木) 13:05:02ID:???0841834
2010/03/11(木) 13:18:42ID:0kmM8iNj文字コードを一応SJIS、EUC、UTF-8試したのですがどれも元々アルファベット、記号の物は
変換されませんでした。
http://jp.php.net/manual/ja/function.urlencode.php
マニュアルには
>-_. を除くすべての非英数文字が % 記号 (%)に続く二桁の数字で置き換えられ
とあるので上記の挙動は仕様通りなのですが、
http://www.tagindex.com/tool/url.html
では英数文字も非英数文字も全てが%xxに変換されていて、これをPHPでやりたいのです。
こんな関数はデフォルトでは実装されていないでしょうか?
0842nobodyさん
2010/03/11(木) 13:30:49ID:???0843nobodyさん
2010/03/11(木) 13:44:11ID:???>http://www.tagindex.com/tool/url.html
>では英数文字も非英数文字も全てが%xxに変換されていて、これをPHPでやりたいのです。
英数文字は変換されないと思うけど?
0844nobodyさん
2010/03/11(木) 15:17:30ID:???0845nobodyさん
2010/03/11(木) 15:34:58ID:???文字列から文字コードはord()なりunpackなりで
0846834
2010/03/11(木) 17:14:21ID:0kmM8iNj>>843のおっしゃるとおり英数文字は変換されていなかったです…
urlencode()した文字列と件のサイトで変換した文字列を見比べているつもりが
関係無い文字列を見比べてました。
もう日が暮れる;;
おそらく>>842さんご指摘の改行コードとあとはurlencodeが変換しない「+」をstr_replaceとかで
変換すればいけそうです。
0847nobodyさん
2010/03/11(木) 19:18:34ID:???0849nobodyさん
2010/03/12(金) 06:26:13ID:eE8Qh1j0echo $_POST["test"];
echo '<form method="post" action="test3.php"><input type="text" name="test" /><input type="submit" value="Check" /></form>';
?>
テキストボックスに
"hoge"
と入力して送信すると
\"hoge\"
と表示されます。
この \ が勝手に付加されてしまうのですが、
これはそういうもんなのでしょうか?
よろしくお願いします。
POSTされたデータの
" を \"、
/ を \/
[ を \[
・・・
みたいな変換をしていたのですが、"だけ\\"
になってしまったので、なんか統一感がないなぁ、程度の悩みです。
0850nobodyさん
2010/03/12(金) 08:20:56ID:???http://www.php.net/manual/ja/security.magicquotes.php
0851nobodyさん
2010/03/12(金) 08:35:11ID:eE8Qh1j0これが知りたかったのです。
ありがとうございました。
0852nobodyさん
2010/03/12(金) 09:55:06ID:Yfu1bPWM【PHPのバージョン】php5.2.1
【質問内容】
intの最大値が32bitの環境で64bitの整数を使いたいのですが、
方法ありませんか?
0853nobodyさん
2010/03/12(金) 10:05:46ID:???http://www.php.net/manual/ja/book.bc.php
0854nobodyさん
2010/03/12(金) 10:35:58ID:Yfu1bPWMありがとうございます!
解決しました。
0855830
2010/03/12(金) 10:42:54ID:HJClOaz10856nobodyさん
2010/03/12(金) 11:28:29ID:???0857nobodyさん
2010/03/12(金) 12:03:25ID:???GD アニメgif php でぐぐったら出てきたぜ
0859nobodyさん
2010/03/12(金) 14:48:01ID:cUrmnSSn元々C/C++などのコンパイル言語ということもあり、疑問がありまして。
PHPにもrequireやincludeといった素晴らしい機構があるのですが、
これの引数には変数を指定することができるようです。
となると、PHPというのはincludeなどの展開は実行時に毎回行っているということになりますよね?
PHPはアクセスがあるたびに
・ソースコード解釈
・コンパイル
・実行
をやっているのでしょうか?
それともコンパイル済みの中間ファイルあたりをどこかに持っていて、ソースコードが更新されていなければそちらを使っているのでしょうか?(ファイルの更新日時あたりを利用して)
そして、どちらにしろincludeなどは実行時に動的に読み込まれると。
単にファイルを分割したいだけなので、変数などが使えない高速のincludeなどが欲しいのですが、それは無いものでしょうか?
色々な質問がまざってすいません。
0860nobodyさん
2010/03/12(金) 14:56:20ID:???中間ファイルをキャッシュするためには各種アクセラレータが必要です
APCとかeAcceleratorあたりでググってみて下さい
0861nobodyさん
2010/03/12(金) 15:46:43ID:???処理系に依ります。
Cだってインタープリタがありますし、CやC++でもincludeされる部分は最初に一回だけ
コンパイルして(それが変更されない限り)コンパイル済みコードを再利用するものがあります。
PHPだからとかCだからのように言語で言う話ではないのです、実際のところ。
0862nobodyさん
2010/03/12(金) 15:54:28ID:???0863nobodyさん
2010/03/12(金) 16:01:14ID:???0864nobodyさん
2010/03/12(金) 17:03:24ID:cUrmnSSnありがとうございます。
基本的には毎回コンパイルするイメージなんですね。
元々スピードを求める言語ではないので、それで納得しておこうと思います。
APCなどについてはこれから調べてみます。ちょっと見てみた感じ、とても良さそうですね。
0865nobodyさん
2010/03/12(金) 17:25:34ID:???ですが、対応バージョンがPHP5.0までのようで、新たに追加されたクラスや例外などの関数名がハイライトされません
ユーザ関数として登録もできるのですが、システム関数との見分けがつかなくなるのでなんとかしたいです
PHPエディタ作者は、要望掲示板の内容を読んでいないようで、対応の見込みが無いのですが
他のエディタで、プロジェクト管理機能とテンプレート機能を持つPHPエディタはないでしょうか?
0867nobodyさん
2010/03/12(金) 19:51:29ID:???0868nobodyさん
2010/03/12(金) 19:57:19ID:NKXaLgFF0869nobodyさん
2010/03/12(金) 19:59:35ID:???0870nobodyさん
2010/03/12(金) 20:30:47ID:sa3ugaEOn回以下でリクエストするためにはどうしたらよいでしょうか?
0871nobodyさん
2010/03/12(金) 20:31:23ID:???0872nobodyさん
2010/03/12(金) 20:34:43ID:sa3ugaEOひとりのユーザーがphpを実行しているのではなく、複数のユーザーが実行している時でも
sleepで対応できるのでしょうか?
0873nobodyさん
2010/03/12(金) 20:44:11ID:???0874nobodyさん
2010/03/12(金) 20:48:19ID:???リクエストの度にタイムスタンプ(microtime)を記述したファイルを生成。
また、PHP実行の度に、そのタイムスタンプを読み込み、例えば制限が「1秒に10回まで」なら、
(現在時-タイムスタンプ)が0.1秒以上でないとリクエストしない、とか。
0875nobodyさん
2010/03/12(金) 20:53:12ID:???最新の10件を取り出して一番古いのが1秒居ないだったら待機
0876nobodyさん
2010/03/12(金) 20:56:03ID:???0877nobodyさん
2010/03/12(金) 21:07:16ID:sa3ugaEO0878nobodyさん
2010/03/12(金) 22:15:26ID:???0879nobodyさん
2010/03/12(金) 22:20:23ID:sa3ugaEOそうなるときつい気もしてきました
0880nobodyさん
2010/03/12(金) 22:24:44ID:???なんか制限のあるAPI使うってことはユーザリストと処理内容を元に自分で処理するような気がするんだけど
0881nobodyさん
2010/03/12(金) 22:47:37ID:???モニタは、過去1秒なら1秒間のリクエストの記録(オンメモリ)を保持して、
10個を超えそうならリクエスト拒否。
リクエストが来た時点で記録を調べて、1秒以上古いのは捨てる。
ファイルもDBの要らんでしょ。
0882nobodyさん
2010/03/12(金) 22:50:48ID:???0883nobodyさん
2010/03/12(金) 23:02:16ID:???サーバー負荷が大きくなって初めて調べられて連絡が来るというパターンが多い。
ある時には1秒3回あっても、平均を取ると60秒に20回とかなら、まず文句言われない。
しかも、アフィリエイト系APIの場合には、儲かっていると基準が甘くなったりする。
以上、経験論ではあるけど、例外があったらゴメンナサイ。
0884nobodyさん
2010/03/13(土) 06:06:30ID:GjD8zhAGDBから取ってきたリストをforeachでぐるぐる回してるんですが、
一行評価する度に消えちゃうじゃないですか。
もっかい読み出すっていう関数は無いでしょうか。
<?php foreach( $data["datas"] as $data ){
if($data["category"]==1){
0885nobodyさん
2010/03/13(土) 06:12:36ID:GjD8zhAG(あんま関係ないけど)cheetan使ってまして、
MySQLのテーブルにname,categoryとあったとして、
ビューで呼び出す側のindex_.html側で
<?php
foreach( $data["datas"] as $data ){
if($data["category"]==1){
echo $data["name"];
}
}
foreach( $data["datas"] as $data ){
if($data["category"]==2){
echo $data["name"];(上と全く同じ処理)
}
}?>みたいな事をやって結果的に
category 1の人は Aさん、Cさん、Eさん
category 2の人は Bさん、Dさん
みたいに出力したいのですが、
なんか根本的に処理がおかしい気が自分でもしてます;
0886nobodyさん
2010/03/13(土) 06:19:34ID:TPMaSDUCリソースから1行ずつ取り出して新たに配列作れば使いまわせたんで、
とりあえずそうしてます。
$result = mysql_query($sql,$con);
while( $row = mysql_fetch_array($result) ){
$data[] = $row;
}
0887nobodyさん
2010/03/13(土) 06:35:40ID:???俺だったらcategoryをキーにした連想配列に入れて再度ループして表示するか
予めカテゴリ別に取得して表示するか
DBのAPI利用してグループ化して取得して表示するかする
0888nobodyさん
2010/03/13(土) 06:42:00ID:GjD8zhAG>>886 配列に入れてからfor文でまわすのを
繰り返すっていう事でしょうか。
>>887 DBもっかい取ってくるってのは、その分SELECT文が
走るって事ですよね。サーバのHDD負荷をできる限り減らしたい
ので、みんなどうしてるんだろなって。
HTML出力する時に、HTMLって上から下に書かないといけない
じゃないですか;前に戻って書けないというか。
やっぱぐるぐる回すしかないんですかね;
0889nobodyさん
2010/03/13(土) 06:53:46ID:???いやDBもっかい取ってくるのは3行目だけだが。
あと別にHTML出力は変数に入れて最後にまとめて表示してもいいし、
887で書いたのはロジックを先に処理してあとで表示する方法
0890nobodyさん
2010/03/13(土) 12:03:41ID:???<?php
foreach( $result as $row ){
if($row["category"]==1){
$temp .= $row["name"];
}elseif($row["category"]==2){
$temp2 .= $row["name"];
}
}
echo $temp . $temp2;
?>
0891nobodyさん
2010/03/13(土) 12:05:16ID:???0892nobodyさん
2010/03/13(土) 12:05:18ID:???0893nobodyさん
2010/03/13(土) 12:06:08ID:???0894nobodyさん
2010/03/13(土) 12:13:05ID:???708 名前:デフォルトの名無しさん 投稿日:2005/05/11(水) 23:22:55
20通りくらいのパターンをswitch文を使って表しているのですが、
switchは遅いという情報を見つけました。
ifで表現したら速くなりますか?
A
基本的には気にする必要なし。
switchの分岐が多すぎることの方が問題。
710 名前:デフォルトの名無しさん 投稿日:2005/05/11(水) 23:26:16
>>708
君が気にする程違うわけでもなし、
気にしないといけない程
クリティカルなプログラムも書かないだろうし、
何よりコンパイラのオプティマイザに任せた方が
余程いい結果が得られる。
711 名前:デフォルトの名無しさん 投稿日:2005/05/11(水) 23:27:48
そもそも case や else がアホみたいに出てくるのは
良くない設計の兆候。まずは設計を見直せ。
714 名前:デフォルトの名無しさん 投稿日:2005/05/11(水) 23:42:02
>>708
switchをジャンプテーブルに変換してくれるコンパイラならifより速い
0895nobodyさん
2010/03/13(土) 13:03:19ID:???0896nobodyさん
2010/03/13(土) 21:22:52ID:???html内に出来るだけ短いphpで画像をランダム表示させようとしてるんだけれど、どうしてもうまくいかない。
<?php
$num = rand(1,200);
print "<img src=\"imagfile\{$num}.jpg\">\n";
?>
まだ始めたてでスレ内のレベルの高さにgkbrしてるけど、お願い
0897nobodyさん
2010/03/13(土) 21:26:42ID:???■ このスレッドは過去ログ倉庫に格納されています