【PHP】下らねぇ質問はここに書き込みやがれ 43
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2007/04/01(日) 04:21:50ID:VGqlLhlDPHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 41
http://pc11.2ch.net/test/read.cgi/php/1173163186/
◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ http://pc10.2ch.net/php/subback.html
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで http://pc10.2ch.net/db/subback.html
0085nobodyさん
2007/04/02(月) 21:09:26ID:???設計的にどうなの?まぁ用途によるけどさ。
YOUレンタル鯖かえちゃいなよ。
0087nobodyさん
2007/04/02(月) 21:14:36ID:???ご忠告ありがとうございます。
将来的にはレンタル鯖借りてリアルタイム処理にしたいと思いますが
今は勉強中って事もあって鯖も友人に無料で使わして貰ってるんで。
それから、用途が仲間内だけで使用予定で
1時間で結果が出せれば用途を満たすんで
とりあえず今のままでよいのです。
0088nobodyさん
2007/04/02(月) 21:17:52ID:???七面倒くさいことをしたいってのは、条件制約があるだろうと考えられるはずなのに
恥ずかしいな。>>85(多分>>82も同一人物)
008985
2007/04/02(月) 21:36:52ID:???0090nobodyさん
2007/04/02(月) 22:09:43ID:???0091nobodyさん
2007/04/02(月) 22:13:45ID:???0092nobodyさん
2007/04/02(月) 22:57:23ID:???一週間苦労してソースからコンパイルに挑戦して挫折した俺様の苦労はどうなるんだよ!
0093nobodyさん
2007/04/02(月) 23:20:37ID:???0094nobodyさん
2007/04/02(月) 23:27:43ID:???0095nobodyさん
2007/04/03(火) 00:00:30ID:???普通にエラーメッセージでない?
$conn->debug = true
ってしてれば実行したクエリから実行したファイルと行から出してくれるし。
文字コードいじったりしないと化けてたりはするけど。
RDBMSによって違うのかな。
個人的には気に入ってるけど、情報が少ないライブラリなんで、
公式マニュアルでなんとかできないならPEARとか当たった方がいいかも。
日本語化されてるのあるけどちと古いんで本家も読まないとだし。
0096nobodyさん
2007/04/03(火) 01:51:48ID:4755nh+Uvar_dump($var);
これの$varを展開する方法ありますか?
0097nobodyさん
2007/04/03(火) 01:52:30ID:???0098nobodyさん
2007/04/03(火) 01:54:50ID:4755nh+Uご教授ください!
0099nobodyさん
2007/04/03(火) 01:58:21ID:???0100nobodyさん
2007/04/03(火) 02:02:11ID:4755nh+U0101nobodyさん
2007/04/03(火) 02:10:50ID:???0103nobodyさん
2007/04/03(火) 02:27:35ID:???全部ここに書いてある。
http://jp.php.net/manual/ja/language.variables.variable.php
斜め読みして「関数やクラスメソッドの内部では出来ないんですか?」とか聞くなよ。
その方法も全部そこに書いてあるから。
010485
2007/04/03(火) 03:39:38ID:???さすがに回答者側の偽者は出ないでくれよ('A`)
>>88
あと俺は>>82じゃないぞ!
82は、超初心者で聞いたことのない言葉(cronやらバッチやら)が出てきて、
勉強がてらどういうことするのか聞きたかっただけだと思う。
0105nobodyさん
2007/04/03(火) 07:16:11ID:???phpファイルにしろよとかいうのはナシで。
無理だよねぇ。
0107nobodyさん
2007/04/03(火) 08:17:58ID:???それがうちのsakuraのサーバだと
AddType application/x-httpd-php .html
でも無理なんよ
0108nobodyさん
2007/04/03(火) 08:23:27ID:ApqIHYc2php-4.3.11-Win32.zipが欲しいのですが
古いバージョンのものは手に入れることはできないのでしょうか?
0111nobodyさん
2007/04/03(火) 08:55:53ID:3FiNTxl4展開というのがイマイチ良くわからないのでが
ttp://jp.php.net/manual/ja/function.extract.php
これのこと?
ついでに質問
日本語を含む文字列で、一文字目が英数記号と数字以外にマッチさせたいんですけど
mb_ereg("^[^!-~]|[^0-9]", $hoge)
とやってみたけどだめみたいです。
pregみたいに'//'はいらないみたいですよね?
[^!-~]単体でうまく動いてない見たいなんですけど、どんな感じに書けばいいのでしょうか?
0112nobodyさん
2007/04/03(火) 09:05:15ID:???/usr/local/bin/php を ~/www 下に php.cgi という名前でコピーする。
.htaccessに以下の設定を追加:
Action my-php /php.cgi
AddHandler my-php .html
php.iniで、"cgi.force_redirect"を off にしないこと。
デフォルトでは on になっているので、わからなければいじらないこと。危険です。
ちなみに、さくらではコンテントネゴシエーションがデフォルトで使えるので
拡張子無しで参照することができる。
0115nobodyさん
2007/04/03(火) 09:56:40ID:L8WULHx8mb_ereg("^[^!-~]|[^0-9]", $hoge)
じゃなくて
mb_ereg("^[^\!-~]", $hoge)
でしょ。
0116111
2007/04/03(火) 10:42:38ID:/c/AyO3Fどっちにしても良く分からないんだけど
mb_ereg_match ("[a-z]+", "asZ")
がtrueを返すのは何ででしょうか?
pregは思ったとおりの挙動をするんだけどなあ
なんか勘違いしてますか?
0118nobodyさん
2007/04/03(火) 11:08:46ID:???カタギのjoomlaか?ヤクザなdrupalか?
でも良く考えたよなぁー オープンソースを占有するなんてさー
タダで日本支部になって価値がが上がれば高く売る。
drupalは成長株だから浸透すればスゴイ価値が付くとおもうよー
GPLだと占有しても刑事事件にならないからねっ
0119nobodyさん
2007/04/03(火) 11:28:18ID:/TnKR6mx$_SERVERのどの変数で判定すればいいのでしょうか?
Proxyについての知識は全くないので仕様とかさっぱりなのですが、
最近掲示板(PHPでできたもの)がProxy経由で荒らされてるので、
Proxy判定するプログラムを組み入れたいと思っています。
0120nobodyさん
2007/04/03(火) 11:50:16ID:???0121nobodyさん
2007/04/03(火) 12:07:54ID:???getHostByAddr($_SERVER['REMOTE_ADDR']) === $_SERVER['REMOTE_ADDR']
これが真になれば逆引きできねーってことになって判定するとか。
0122119
2007/04/03(火) 13:25:08ID:FtC4cK4Mありがとうございます。
教えていただいたものを使ってみたところ、
診断くんで?判定になるProxyでも見事Proxy判定にすることができました。
こんな簡単なスクリプトだとは思っておりませんでした。
まだ取りこぼしているものもあるようなので、
他の方法を探して、それと組み合わせて使うことにします。
0123nobodyさん
2007/04/03(火) 14:11:47ID:???例えば、会員情報の変更phpで、
WHERE句を忘れていて、謝って全会員の情報を変更してしまう、
といったポカミスが発生しやすいあふぉな俺なんですが、
MySQLレベルでこれを防ぐ方法ってないでしょうか。
0124nobodyさん
2007/04/03(火) 14:16:04ID:???勉強ならいいが、公開する気なら・・
0126nobodyさん
2007/04/03(火) 14:34:41ID:???変更する前には必ず
BEGIN;
で、「あっー」ってときは
ROLLBACK;
でいいんじゃね?
0128nobodyさん
2007/04/03(火) 15:18:52ID:???0129nobodyさん
2007/04/03(火) 15:20:50ID:pT0TAH0Vecho $row["comment"];
のような形では出力できないんでしょうか?
0130129
2007/04/03(火) 15:33:12ID:???0132虚弱PHP
2007/04/03(火) 16:15:10ID:???常にスクリプトを通してDBいじるしかないんじゃ。
スクリプトではWHERE句が付いてなかったらNGとか。
UPDATEには必ずLIMIT句つけるとか。
でも、これだと逆に問題の発覚が遅れる恐れ有り。
0133nobodyさん
2007/04/03(火) 16:26:24ID:???0135nobodyさん
2007/04/03(火) 16:38:45ID:???例えば複数のデータをinsertする場合、全件のデータをDAOに渡してDAOの中でループさせてクエリを発行しますか?
もしくはロジック側でループさせて最小単位まで分割し、1行ごとにDAOを実行しますか?
またDAOのメソッドは一つの機能に特化して実装すべきですか?それとも汎用性を持たせるべきですか?
where句やorder句などをDAOメソッド内で記述してその条件のみ取得させるか、
ロジックからDAOへ引数としてそれらを渡す形にして他の場所でも使えるようにするかで迷っています。
0137nobodyさん
2007/04/03(火) 16:51:20ID:???おれはデバックはprintにしてメインはecho
0138nobodyさん
2007/04/03(火) 16:52:11ID:UEWlkpj30141nobodyさん
2007/04/03(火) 17:49:25ID:???DAOのベースになるクラスで汎用的なメソッドを実装して
各モデル毎のDAOで必要になる固有のメソッドを
ベースクラスの汎用的なメソッドを使いつつ実装していけばいいんじゃない?
機能に特化したメソッドにするかしないかは
機能次第で使いまわすケースが多ければ
引数である程度自由度を持たせるとか
その例だと複数のデータをinsertする箇所がたくさんあるなら
それのためだけのメソッドを用意して、そうでなければ
ビジネスロジック側でループさせてもいいんじゃない?
0144nobodyさん
2007/04/03(火) 19:11:46ID:UEWlkpj3Flex
0146nobodyさん
2007/04/03(火) 19:18:30ID:???0148nobodyさん
2007/04/03(火) 20:14:32ID:???ハゲてるだろ?
上記ログが連なったログの一行を削除して
再度番号を振り、配列しなおす場合具体的にどのような
プログラムになるのでしょうか?
0153nobodyさん
2007/04/03(火) 20:36:43ID:???echoに括弧を付けてはいけない。
echo $hoge,$hoge * 1000,number_format($hoge);
ドット演算子だと
echo $hoge.($hoge * 1000).number_format($hoge);
こうしないといけないし内部的に結合してやる必要性はないと思う。
0154nobodyさん
2007/04/03(火) 21:05:30ID:???デバックのときくらいしか使わないかな〜
0155111
2007/04/03(火) 21:08:25ID:3FiNTxl4>>117
レスサンクス
var_dump ( mb_ereg ( $pattern, $hoge ,$c ) ) ;
var_dump ( $c ) ;
ってやったら、なんでtrueが帰るのか解りました。
"^[^!-`].*}$"
こんな感じかな?
自分のかきこ良く見ると英数記号とあるけど、半角記号と数字以外の間違いでした。
だから、範囲の指定もこんな感じかな。
>>115
ちなみに[]の中はエスケープ不要みたいですよ。
0156nobodyさん
2007/04/03(火) 21:09:39ID:???俺様に恥をかかせるのか!
0158nobodyさん
2007/04/03(火) 21:20:05ID:???これを使うために、いちいちすべてのファイルでrequire_onceするのが面倒なんですが、
何かいい方法はありませんか?
0160nobodyさん
2007/04/03(火) 21:28:58ID:???└─┘
おらっしゃあぁぁ!!!
∩∧ ∧
ヽ( ゚Д゚)
\⊂\
O-、 )〜
∪
0161nobodyさん
2007/04/03(火) 21:33:47ID:???意味不明なんだが・・・
0162nobodyさん
2007/04/03(火) 21:40:10ID:???php.ini auto_prepend_file
・PHPで書く
・問答無用で一番最初に読み込まれる
php extensionとしてphpの関数に含める
・Cで書く
0164nobodyさん
2007/04/03(火) 21:46:37ID:???0165nobodyさん
2007/04/03(火) 21:49:35ID:y3kK4c5q$pattern = '/two (.+)\,/';
preg_match($pattern, $subject, $matches);
print_r($matches);
/* 出力結果:
Array
(
[0] => two potatoes, three carrots,
[1] => potatoes, three carrots
)
*/
正規表現で "potatoes" をマッチさせたいのですが、$matches[1]を見ると
コンマの後ろの文字列までマッチしてしまいます。
どうしてでしょうか?
0167nobodyさん
2007/04/03(火) 21:56:57ID:y3kK4c5q"potatoes"がマッチするにはどう表現すればいいのでしょうか?
0168nobodyさん
2007/04/03(火) 21:58:31ID:???正規表現は原則として、最長最左一致をします。
これはどういうものかというと、可能な限り長めにマッチするということです。
その正規表現の例で言うと"two "のあとに1文字以上の任意の文字が来て、
その後にカンマがついていればいいことになります。
そしてその最長のパターンはというと、あとは考えてみてくださいw
0170nobodyさん
2007/04/03(火) 22:02:20ID:???$pattern = '/two ([[:alpha:]]+),/';
というか妙な正規表現の使い方だな。
上記ナンバー+1 名前 内容 日付 パスワード
上記ナンバー+1 名前 内容 日付 パスワード
このようにログが並んでいるのですが
例えば上から二行目のログのみを
削除する場合具体的にどのような関数を私用すればいいのでしょうか?
その際削除した行以降のナンバーを再度正しく振り直したいのです。
0173nobodyさん
2007/04/03(火) 22:07:30ID:???$pattern = '/two (.+?),/';
$pattern = '/two ([^,]+)/';
0175nobodyさん
2007/04/03(火) 22:13:04ID:y3kK4c5q0178nobodyさん
2007/04/03(火) 22:25:27ID:???<?php
ログを配列に読み込む処理
配列の上から2件を削除する処理
配列をログに書き込む処理
?>
こんな感じでいかがか?
すいません、関数自体あまり把握できてなくて
ちょっとつまづいております、
ありがとうございます。
>>176
関数の意味を調べてみます、
お手数おかけします。
>>177
このログにフォームのラジオボタンつけて出力する時に
利用するからだったと思います。
自分で作っといてあれですが目の前の事で手一杯で。
>>178
十分です、
本当にすいません。
0182nobodyさん
2007/04/03(火) 22:43:07ID:/5XcJrtX必要な部分をeucのページに表示させたいと思っています
echo mb_convert_encoding($str_utf8, "EUC-JP", "UTF-8");
としてみたのですが、丸数字(@A…)が半角の“?”になってしまいます
ご教示いただけませんでしょうか
■ このスレッドは過去ログ倉庫に格納されています