【PHP】下らねぇ質問はここに書き込みやがれ 71
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2008/07/17(木) 19:42:52ID:DVaNTncwPHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 70
http://pc11.2ch.net/test/read.cgi/php/1214356448/
◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0561nobodyさん
2008/08/05(火) 00:51:18ID:???アセンブラ勉強した奴ならわかると思う
0562nobodyさん
2008/08/05(火) 01:03:59ID:???xamppは開発環境ではありません。
あと時間を気にするなんて毎日作り直してんの?
参考までに使った場合と使わない場合にそれぞれかかる時間を教えて。
0563nobodyさん
2008/08/05(火) 01:06:13ID:???0564nobodyさん
2008/08/05(火) 01:11:44ID:???足りない頭で、レス乙。
高級言語の仕様が1から始まるかと0から始まるかということと、
アセンブル・機械語がどうかとは全く別の話だ。
それは高級言語の実装で吸収すればいいだけの話。
0565nobodyさん
2008/08/05(火) 02:54:56ID:???俺その辺詳しくないから聞きたいんだが、
要素数が255とか65535(2進法)
10、100(10進法)
2147483647(32bitでのintとfloatの境界)
の時は[0]スタートの方が有利に思えるんだけどどうなの?
例えば10個目の配列の参照する時
[0]からの場合【[9]】
[1]からの場合【[10]】
と書くよな。
9は1文字、10は2文字
ソースのサイズは若干変化あるよな。
後、intとfloatの型変化の時も影響がデカイ気がする。
こういうレベルの影響はないのか?
0566nobodyさん
2008/08/05(火) 03:12:59ID:???hogearray[16]は、*(hogearray + 16)の構文糖衣。
多次元配列darray[4][4]は*(darray + 4 * x + 4)。 # xはsizeof(darray[0])
もし要素番号が1から始まったら、多次元配列darray[4][4]は*(darray + 3 * x + 3)。
[]で書くと4なのに、ポインタを使うと3になる。こんなややこしい仕様はバグの元。
だから要素番号は0から。
で、PHPは元々Perlので実装され、そのPerlが配列に関してはC言語の構文を真似たから、PHPの要素番号も0からになったと予想。
悪法でも何でもなく、親しめられてきた言語に合わせて、CやPerlなどからPHPに移ってきた人が混乱しないようにしただけ。
>>561
それは比較するときの話なのでは。x86やx64で言えば、0との比較はcmpしなくてもmovでZero Flagフラグが立つかどうかで分かるから。
# Core 2以降はマクロヒュージョンのおかげでcmpしようがしまいが同じだがな。
>>565
ソースが1文字増えたところでロスする時間は1マイクロ秒以下。それを気にするならソースの余計な空白やタブを取っ払う方がいい。
0567nobodyさん
2008/08/05(火) 03:28:28ID:???お前が、相当技術力があるのは認めるが、
なんで、そんな奴がこのレスにいるの?
phpなんて、単価が安い仕事ばっかだろ。
レスで書いているような内容が分かるなら、
phpよりも、かなり良い仕事が出来そうだが。
おれ何をしているかというと、昔SEをやっていたが今はシステム営業をやっていて、
自分のサイトを作るためのに個人的にphpをやっていたりする。
0568nobodyさん
2008/08/05(火) 03:36:45ID:???0570nobodyさん
2008/08/05(火) 08:58:09ID:???0574nobodyさん
2008/08/05(火) 09:32:42ID:???0577nobodyさん
2008/08/05(火) 09:47:55ID:???0580nobodyさん
2008/08/05(火) 10:07:34ID:???VB.NETは0からになったはず。
どうせほとんど別言語の体裁を取ってるし、
元々Option Base 0使ってる奴が大多数。
大差ないと思われwww
0581nobodyさん
2008/08/05(火) 10:14:01ID:???と、思ったもんだがな。
0582nobodyさん
2008/08/05(火) 12:59:08ID:???http://ja.wikipedia.org/wiki/%E7%B5%B1%E5%90%88%E9%96%8B%E7%99%BA%E7%92%B0%E5%A2%83
もしかしてphpspot(笑)とか真に受けちゃってる?
0583nobodyさん
2008/08/05(火) 13:06:04ID:???典型的な馬鹿か?
開発するために必要な環境全般をさして開発環境というんだよ
IDEのことだけをさすわけじゃない
当然デバッグのための環境(xampp)も開発環境という
IDE全てにデバッガが含まれてると思ったら大間違い
0585nobodyさん
2008/08/05(火) 13:13:01ID:???馬鹿でも出来るphpだが、それさえも出来ないって救いようがない。
0587nobodyさん
2008/08/05(火) 13:14:21ID:???http://www.rooftopsolutions.nl/article/199
0588nobodyさん
2008/08/05(火) 13:15:37ID:???そのテスト環境も開発環境の1つなのは間違いないが
文字どおり開発するのに必要な環境なわけだからな
xamppとメモ帳だけだって立派な開発環境だ
IDEにだってxamppをパッケージとして含めることはできるわけだし
オールインワンにした場合そのxamppが含まれたIDEに対して
xamppの部分は開発環境でないなんて意味不明なことはいえないだろ
0590nobodyさん
2008/08/05(火) 13:17:21ID:WvP0Kt9JPHPで出来るのかな?
0591nobodyさん
2008/08/05(火) 13:17:35ID:???いっぱしのやつならそんなの気にしない
たとえ添え字が14とかわけわからん数字からはじまっててもな
0592nobodyさん
2008/08/05(火) 13:21:00ID:???配列の添え字なんて、そもそもプログラムで意識しない。
配列が必要なデータはクラス化(ListやMapなど)してしまう。
配列の添え字を意識しなければいけない時点で、
オブジェクト指向が出来ていない証拠だよ。
今まで、そういう指摘が出ないのが不思議。
まだ、php4とか使っているのかよ?それともオブジェクト指向すら知らない?
0594nobodyさん
2008/08/05(火) 13:30:54ID:???配列を返す関数とかも色々あるんですけど、全部コレクションに入れ直すんだろうか
でもその場合でも配列は扱うよね
0595nobodyさん
2008/08/05(火) 13:35:40ID:???使わねーよw
Iteratorとか知らねーのかよw
配列を生で扱うことに何の躊躇もないなんて、可哀想な脳みそ。
0596nobodyさん
2008/08/05(火) 13:37:01ID:???これだから初心者は^^;;;
Web開発するんだからWebサーバなども含めて開発環境に決まってんだろ
必要とあらば各種SDKフレームワークなども含める
使用する統合開発環境(IDE)だけに含まれてるものだけで開発できるとは限らん
結局自分が何を作るかで必要なものが個々に必要になってくるわけ
IDEはその土台に過ぎん
0597nobodyさん
2008/08/05(火) 13:38:52ID:???だいたいOOPとかスレ違いもいいところ
PHPで無理にOOP使う必要はない
0598nobodyさん
2008/08/05(火) 13:39:40ID:???0599nobodyさん
2008/08/05(火) 13:39:49ID:???ここはPHPのスレですよ?
だいたいOOPとかスレ違いもいいところ
PHPで無理にOOP使う必要はない
0600nobodyさん
2008/08/05(火) 13:41:47ID:???0601nobodyさん
2008/08/05(火) 13:53:14ID:???0602nobodyさん
2008/08/05(火) 13:59:33ID:???0604nobodyさん
2008/08/05(火) 14:35:30ID:???0605nobodyさん
2008/08/05(火) 14:53:49ID:???0606nobodyさん
2008/08/05(火) 15:16:09ID:???>>567
>>573
>>582
>>585
>>586
>>592
>>595
ID出なくてもキチガイは目立つから以外にわかるもんだな
0608nobodyさん
2008/08/05(火) 15:37:03ID:???∧_∧ ∧_∧ ∧_∧
( ・∀・) ( ・∀・) ( ・∀・)
⊂ ⊂ ) ( U つ ⊂__へ つ
< < < ) ) ) (_)|
(_(_) (__)_) 彡(__)
0611nobodyさん
2008/08/05(火) 19:24:35ID:???0612nobodyさん
2008/08/05(火) 21:13:40ID:???0613nobodyさん
2008/08/05(火) 21:22:15ID:???0614nobodyさん
2008/08/05(火) 23:00:21ID:8enGip0recho "http://".$_SERVER["SERVER_NAME"].$_SERVER["SCRIPT_NAME"];
で一応取得できるのですが、http://とすると、
SSLページの場合は適さないと思います。
何か良い方法、または関数って無いでしょうか?
0616nobodyさん
2008/08/05(火) 23:14:18ID:???お騒がせしました。
0617nobodyさん
2008/08/06(水) 01:34:58ID:1xe8GdeyここはPHPのスレですよ?
だいたいOOPとかスレ違いもいいところ
PHPで無理にOOP使う必要はない
0618nobodyさん
2008/08/06(水) 01:38:34ID:nCuNNad/あるデータがその配列にないかを検査する
処理を書いています。
in_array()で一個ずつマッチングしているのですが、
これが一番早いやり方でしょうか?
アルゴニズムの勉強をすればもっといい方法があるのかもしれませんが、
なるべく簡単にできるやり方で良い方法があれば教えて頂きたいと思います。
ちなみに、DBは使えない環境です。その代わりメモリーは16GBあります。
0619nobodyさん
2008/08/06(水) 01:40:05ID:???0620nobodyさん
2008/08/06(水) 01:45:20ID:nCuNNad/回答ありがとうございます。
ただ、今日の夕方までが納品なので、それを今からやるのはちょっと辛いです。
現在、パフォーマンステストの段階まで来ていて、
この部分の処理をもう少し早くできればと思っています。
0622nobodyさん
2008/08/06(水) 02:21:18ID:???PHPだけの質問ではないのですが、
Google Picasa内の画像の直URL
例)
ttp://lh3.ggpht.com/Josythecook/RqUmb2H6U0I/AAAAAAAAAAw/A2d0MFM8N6Y/Adriana_Lima89.jpg
IEでもFFでもブラウザに直にURLを入れると表示されるが、
Javascriptで
image = new Image(); image.src = 'http://〜';
と入れても表示されない。※先にブラウザURL直打ちしたあとなら表示される。おそらくキャッシュを使うため
さらにPHPの
fopen('http://〜'); や file_get_contents('http://〜');
でも開けません。
PHPのCURL関数もだめでした。
※FFのLivehttpheadersでFFで画像を表示したときのヘッダー情報を真似てみました。(UA偽装など)
また、上記のいづれもPicasa以外の画像なら表示できるため、根本的にやり方が間違っているということはないと思われます。
上記のことから、Picasa側でどのような制限をかけているか判別できるかた居ますでしょうか?
また、もし可能ならPHP+CURLを使用した取得可能なサンプルを教えいただけますでしょうか?
よろしくお願いいたします。
0623nobodyさん
2008/08/06(水) 02:25:02ID:???1カラムに限定すれば楽だと思うけど。36進数で管理すればファイルサイズも節約できるよん。
0624nobodyさん
2008/08/06(水) 03:10:22ID:???FFってなんだ?
もしかしてFxのことか?
FireFoxって書いてると恥ずかしいから、
今のうちにFirefoxって書く練習しておいたほうがいいよ
fopenで普通に取得できたから、やり方が悪いんじゃないの?
0625nobodyさん
2008/08/06(水) 03:27:37ID:???火狐とかきもい略称もあるよな
支那人かお前はと・・・
と思って中文のFirefox説明を見てきた
Mozilla Firefox(正式縮寫為 Fx,非正式縮寫為FF),俗稱火狐(目前無官方中文名)
意味はなんとなくわかったwwwwww
しっかりFFも非正式ながら使われてるようだwwwww
0626nobodyさん
2008/08/06(水) 03:29:38ID:nCuNNad/レス感謝します。
なんだか、自分が想像していたより、
どんどん話が大きくなってしまって、
怖くなったので、この辺で終わりにしたいと思います。
私としましては、ただ簡単に速く出来ればと思って書いた質問でした。
なので、正直なところとして、それ以上の事はよかったのです。
0627nobodyさん
2008/08/06(水) 14:32:18ID:???0629nobodyさん
2008/08/06(水) 15:51:10ID:???2.fwriteでtxtファイルに書き込みます(php)
3.@に戻ってテキストボックスに入力、txtファイルに書き込み
…と、したかったのですが、
上書きされてしまい、最後に入力したデータしかtxtファイルに保存されません
どう回避すればよろしいでしょうか?
0630nobodyさん
2008/08/06(水) 15:52:09ID:???追記したいなら追記モードでオープンとか。
0631nobodyさん
2008/08/06(水) 15:53:45ID:???0633nobodyさん
2008/08/06(水) 16:19:24ID:???fopen(書き込みたいファイル, 'a')
0634nobodyさん
2008/08/06(水) 16:21:17ID:???int file_put_contents ( string $filename , mixed $data [, int $flags [, resource $context ]] )
flagにFILE_APPENDやれば追記する
0636nobodyさん
2008/08/06(水) 19:39:32ID:???0637nobodyさん
2008/08/06(水) 19:43:19ID:???0638nobodyさん
2008/08/06(水) 21:27:26ID:???質問させて下さい。
前提として以下の様なフルパス指定のソースが大量にあります。
requiere "/export/home/hoge.php"
このソースを変更せず、windowsのeclipse pdt
で動かしたいと思っています。
windowsにはルートディレクトリがないため、
requiereでエラーとなりますが、これを回避する
方法はないでしょうか?
考えているのは、
1、SFU、Cygwinでなんとかならないか
2、requiereのソースを探してきて改造するか
以上、よろしくお願いします。
そのほかPHPクロスプラットホーム開発の
ノウハウがあるサイトがあれば教えてくださいませ。
0639nobodyさん
2008/08/06(水) 21:30:35ID:???0640nobodyさん
2008/08/06(水) 21:34:16ID:???0642nobodyさん
2008/08/06(水) 21:49:58ID:???ヒソヒソ( ゚o゚)ヤダァ(゚o゚ )ネェ、キイタ?( ゚o゚)オクサン(゚o゚ )アラヤダワァ
0643nobodyさん
2008/08/06(水) 21:51:54ID:???何のこっちゃ?
0644nobodyさん
2008/08/06(水) 21:53:45ID:???おっしゃるとおり、windowsにもルートディレクトリがありますね、
ごめんなさい。
「/」のルートディレクトリに訂正です。
0645nobodyさん
2008/08/06(水) 22:03:01ID:???フォルダツリーを作ってやったら出来るんじゃないの?
cドライブにインスコしてたら
c:\export\home
にファイル置くとか
0646nobodyさん
2008/08/06(水) 22:13:06ID:???ありがとうございます。
試しましたが、ダメでした。
が、ボケてただけかもしれないので
もう一度やり直してみます。
0647nobodyさん
2008/08/06(水) 22:17:41ID:???0648638
2008/08/06(水) 22:26:36ID:???>>645さんのおっしゃる通り、正常に動作しました。
失礼致しました。
環境の違いは以下ぐらいです。
正常動作する:PDT v1
動作しなかったと思われる:PDT V1.0.3
スレ汚しごめんなさい。
0649nobodyさん
2008/08/06(水) 23:00:47ID:???0650nobodyさん
2008/08/06(水) 23:03:06ID:???どのように使うのでしょうか?
LINUX、PHP5.2.6、ROOT有レン鯖です。
宜しくお願いします。
0652nobodyさん
2008/08/07(木) 03:54:19ID:???SQLインジェクションを防ぐために、SQL文を生成する際、「escape_string」を使用しています。
しかし、人為的なミスで「escape_string」を使用せずにSQL文を生成していまうことがあります。
そこで、mysqliクラスを完全にくるんだクラス(OrgDBクラス)を1つ作成して、DBに対する操作を
OrgDBクラスを介して行うようにしました。
0654nobodyさん
2008/08/07(木) 03:55:55ID:???class OrgDb {
private $p_oConnect;
private $p_sSql;
public function OrgDb_connnect() {
$this->p_oConnect = new mysqli(…);
if ($this->p_oConnect->connect_errno !== 0) {
return false;
}
return true;
}
public function OrgDb_makeSql($sSql) {
for ($nCnt = 0; $nCnt < 10; $nCnt++) {
$sSql = str_replace("<" . $nCnt . ">", pack("C", $nCnt), $sSql);//☆1ココ
}
$this->p_sSql = $sSql;
}
public function OrgDb_setSql($nIndex, $sData) {
$this->p_sSql = str_replace(pack("C", $nIndex), $this->p_oConnect->escape_string($sData), $this->p_sSql);
}
public function OrgDb_execSql() {
for ($nCnt = 0; $nCnt < 10; $nCnt++) {
if (mb_strpos($this->p_sSql, pack("C", $nCnt)) !== false) {//☆2ココ
return false;
}
}
return $this->p_oConnect->query($this->p_sSql);
}
}
0655nobodyさん
2008/08/07(木) 03:57:31ID:???$oDb = new OrgDb();
$oDb->OrgDb_connnect();
$oDb->OrgDb_makeSql("select * from table where key = '<0>'");
$oDb->OrgDb_setSql(0, "クライアントから送信されたデータ(要サニタイジング文字列)");
$oRes = $oDb->OrgDb_execSql();
0656nobodyさん
2008/08/07(木) 03:58:37ID:???1.静的なSQL文を定義する。この際、動的に設定される部分を"<N>"と記述する。
2.動的に設定される部分を実際のデータで置換する。
3.生成されたSQL文を実行(発行)する。
と、いう流れです。
上記ソースの通り、発行されるSQL文はOrgDbクラス内に閉じ込めてあり、動的に設定される部分は、全て、
OrgDb_setSqlメソッドを介して設定されるので、必ず、サニタイジング(escape_string)されるようになっています。
※やり方はいろいろあると思うのですが、このやりかたしか思いつかなかったです...orz...
〜質問〜
「☆1」部分と「☆2」部分なのですが、クライアントから送信されないデータを
置換対象としたかったので、pack関数を使用して、バリナリデータ(制御コード)としましたが、
この方法で何か問題が発生することはあるでしょうか?
※ちなみに、置換対象の種類は10個と決めています。
長文、本当にすいません;;
0657nobodyさん
2008/08/07(木) 04:00:13ID:???早々のご意見ありがとうございます。
諸事情により、PDOは使えないです。
使えるのであれば、PDOでやりたかったです;;
0658nobodyさん
2008/08/07(木) 04:00:35ID:???0660nobodyさん
2008/08/07(木) 04:09:19ID:???■ このスレッドは過去ログ倉庫に格納されています