【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
0026nobodyさん
2007/04/01(日) 12:19:31ID:sjAh9xV+0027nobodyさん
2007/04/01(日) 12:33:51ID:???0030nobodyさん
2007/04/01(日) 17:40:44ID:f8tvvBL3PC用では各パーツ(ヘッダー・フッター・メインコンテンツなど)に分けて
includeしていましたが、携帯用だと容量の制限もあって、必要最小限の
ファイルしか読み込まないようにしなければいけないみたいです。
そこで質問ですが、プログラム処理もすべて1つのファイルに書く方法
にした方が良いのでしょうか?それとも共通するファイルはincludeして
読み込む方式にした方が良いのでしょうか?
PHPで携帯サイトを作られている方、アドバイスお願いします。
0031nobodyさん
2007/04/01(日) 17:52:42ID:???×
0032nobodyさん
2007/04/01(日) 17:52:48ID:PifCmp3gConnect もしくは PConnect でデータベースへの接続に失敗したとき、
失敗した理由を知るために何らかの方法は用意されているのでしょうか?
たとえばエラーメッセージとかエラーコードを得る方法はあるのでしょうか?
0033nobodyさん
2007/04/01(日) 18:03:32ID:???0034nobodyさん
2007/04/01(日) 18:11:40ID:???100個ファイルをincludeしようが、
全部一つに詰め込んで1GBぐらいのファイルになろうが、
要は出力する容量が携帯で読み込める容量になればいいだけ
お好きなようにとか言いようがない
共通部分を切り出そうが、関数に切り分けようが、
クラスファイル化してオブジェクト指向しようが、
それもお好きなように
0035nobodyさん
2007/04/01(日) 18:58:07ID:???携帯用だろうがなんだろうが、全く関係ない
携帯用に小さくする必要があるのは
スクリプトではなく、出力する部分だけだ
0036nobodyさん
2007/04/01(日) 19:01:08ID:???http://phplens.com/lens/adodb/docs-adodb.htm#errormsg
0037nobodyさん
2007/04/01(日) 19:09:16ID:PifCmp3gCan't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (11)
か・・・・うむむ、結局 MySQL 側の max_connections に引っかかってるのかな。
PHP 側では自主規制(?)で接続数に上限設けてるとか無いですよね?
0038nobodyさん
2007/04/01(日) 19:14:16ID:???0039nobodyさん
2007/04/01(日) 19:23:54ID:???004030
2007/04/01(日) 19:25:53ID:f8tvvBL3ありがとうございます。大変参考になりました。
それにしても携帯用ってややこしいですね・・。
これまで作ったクラスファイルはすべてEUCなのですが、
携帯ではShift-JISじゃないと駄目みたいなので、文字化けしまくりです・・。
0041nobodyさん
2007/04/01(日) 19:42:24ID:???0042nobodyさん
2007/04/01(日) 20:37:16ID:???ランダムの文字列を生成するのですよね?
その文字列を保持してsession_start();で有効にするとか。
0044nobodyさん
2007/04/01(日) 20:48:46ID:???PHP5からタイプヒンティングが導入されました
http://www.php.net/manual/ja/language.oop5.typehinting.php
>>30
【モバイル】携帯電話向け開発について語るスレ
http://pc11.2ch.net/test/read.cgi/php/1144504375/
>>42
【PHP】セッションについて語ろう!【PHP】
http://pc11.2ch.net/test/read.cgi/php/1064399467/
0045nobodyさん
2007/04/01(日) 22:25:03ID:???1.MySQLが立ち上がっているか
2.socket が /var/lib/mysql/mysql.sock に存在するか
3.MySQLへのアクセス許可がちゃんと行われているか
2は注意
パッケージ管理ソフトとかでインストールした場合は
普通起こらないが、ソースリビルドして自分でインストール
した場合は、PHPとMySQLのソケット設定が一致しない
ことがある
0046nobodyさん
2007/04/01(日) 22:50:44ID:GJ1EFI8Cおまいら今日中にphpinfo()表示するサイト(自分のでも可)見てみれ
ちなみにphp.netの↓
ttp://jp.php.net/?=PHPE9568F36-D428-11d2-A769-00AA001ACF42
ttp://www.php.net/?=PHPE9568F36-D428-11d2-A769-00AA001ACF42
0047nobodyさん
2007/04/01(日) 23:11:30ID:sjAh9xV+やはりブラウザで判別したほうが良いのでしょうか?
それ以外にお勧めがあれば教えてください。
0049nobodyさん
2007/04/02(月) 00:34:19ID:7Cj9Qr8cdatagridみたいなものはPHPだとひょっとして無い?
0050nobodyさん
2007/04/02(月) 00:37:32ID:616HGYvFで,年や月のつなぎ目でも単に7日間表示するので,大本の日付データは年月依存でなくするべきですよね.
そうするとUNIX時間を使うのが最も適当なのでしょうか?
また,月は初めの日だけ表示して,年・月が変わった日だけ再表示したいのですが,
毎回ifで判断するのはアレですよね.何かいい方法があればご教授くださいm(__)m
0051nobodyさん
2007/04/02(月) 00:48:34ID:???階層があるのかどうかハッキリしなさい!
なんにしろDataGridみないなのはPHPにはない。
というか.NET系言語にしかないだろ
>>50
言いたいことが今一俺には理解できない。
やりなおし!
005249
2007/04/02(月) 01:00:20ID:???SELECT文とGETを駆使してなんちゃってGridを作ってみます
0054nobodyさん
2007/04/02(月) 01:36:36ID:???そもそもHTMLをターゲットにするなら、最終的にはhtmlか画像しか選択肢は無いだろう・・
受け渡しならXMLとかあるだろうけど
俺言ってること的外れ?
0055nobodyさん
2007/04/02(月) 02:35:51ID:???ファイルを二つ用意します。一つは設定ファイルset.php、一つは表示用のファイルindex.phpです。
index.phpを以下のように記述します。
require 'set.php';
$test "あああ";
Set();
set.phpに以下の用に記述します。
function Set(){
global $test;
$test2 = "あああ";
if($test == "$test2"){print"同じ";}
else{print"違う";}
}
で「違う」になってしまいます。
print分で確認すると
print"$test$test2";
どっちも「あああ」「あああ」です。
ダンプで見ても同じです。文字コードとかもいろいろ弄りましたが、変わりませんでした。
見た目同じなのに判定は違うのでmysqlで検索にヒットしなくて困ってしまっています。
どなたかわかる方いますでしょうか?
php4.3.11 apache2 を使っています。
0057nobodyさん
2007/04/02(月) 02:54:33ID:???0058nobodyさん
2007/04/02(月) 03:25:04ID:???すんません。おおぼけかましてますた。
やっぱり文字コードでした。ftpでDLした時に全部sjisに変わってた模様です。
どもでした。
0059nobodyさん
2007/04/02(月) 03:57:04ID:???\(.\ ノ
先頭に最新ログを記述する方法はないでしょうか?
$wlog=fopen("comment.txt","a");
flock($wlog, LOCK_EX);
fputs($wlog, $wdata);//$commentlogの最初の行に$dataを追加
flock ($wlog, LOCK_UN); //ファイルロック解除
fclose($wlog);//ファイルを閉じる
0065nobodyさん
2007/04/02(月) 09:41:31ID:5RNu93m7//$logはログファイル $intervalは更新インターバル
if(file_exists($log)){
//現在時刻 - $logの更新時刻 が更新インターバルより小さかったらそこで終了
if($interval > time() - filemtime($log)){
return;
}
} //if(file_exists($log))
//$logを出力
$handle = fopen($log, 'w');
fwrite($handle, "a");
fclose($handle);
//ここから断続的にファイル読み書き
//ここまで断続的にファイル読み書き
--
こんなの書いた。でもこれ条件満たすときに同時にアクセス来たら同時に実行されちゃうよね。
一つのプロセスでだけこのcronもどき使うにはどうすればいい?
ロック用ファイルでロックして囲うのかな でもどこをどう囲えばいいのかよくわかんないんで教えてください
0066nobodyさん
2007/04/02(月) 11:42:52ID:???にもかかわらず、「同時」を心配して、それをトリガー後の処理で
あれこれ考えるいうロジック自体を再検討すべきでしょう。
0067nobodyさん
2007/04/02(月) 12:09:27ID:???PHPとDBが使える無料レンタルサーバーおしえてください。
0068nobodyさん
2007/04/02(月) 12:15:25ID:???ものすごい勢いで誰かが無料サーバを探してあげるスレ7
http://pc11.2ch.net/test/read.cgi/hosting/1170323123/l50
0070nobodyさん
2007/04/02(月) 13:46:24ID:???PHPではそういった類の最適化はなされてるんでしょうか?
それともループ中で同じ正規表現を使用した場合、毎回解析されるんでしょうか?
0071nobodyさん
2007/04/02(月) 13:48:27ID:???0072nobodyさん
2007/04/02(月) 13:56:47ID:???PHPの文法に正規表現リテラルがないし(インタプリタは正規表現を知らない)、
関数に正規表現文字列を渡す実装だから毎回解析じゃないのかな。
007370
2007/04/02(月) 14:09:15ID:???なるほど、やっぱりそうですよね。
もしかしたら言語側で特別扱いしてる可能性もあるかもなーと思ったんですが。
どうもでした。
0074nobodyさん
2007/04/02(月) 16:31:34ID:???実装を読んでみないとなんとも。読む気は無いけど。
0075nobodyさん
2007/04/02(月) 18:26:46ID:z0wpzeStバッチは一定時間おきにcronで起動。
<form method="post" action="upload.php">
<input type="file" name="fileobj" value="">
<input type="text" name="filename" value="">
<input type="text" name="param" value="1000">
</form>
↑これで受け取り側 upload.php は正常動作確認済み。
で、送信するバッチファイルのサンプル無いかな?
FORMを利用したサンプルはいくつも出てくるんだが。
007775
2007/04/02(月) 19:00:55ID:???ttp://phpdoc.makizou.com/ref.curl.html
このライブラリでいいのかな?
サンキュ。挑戦してみます。
0078nobodyさん
2007/04/02(月) 19:28:36ID:???$aPOST_VARS['fileobj'] ='@'.$file;
$aPOST_VARS['filename'] = $filename;
$uri = 'http://localhost/upload.php';
$ch = curl_init($uri);
curl_setopt($ch,CURLOPT_POST, 1);
curl_setopt($ch,CURLOPT_POSTFIELDS, $aPOST_VARS);
curl_exec($ch);
0081nobodyさん
2007/04/02(月) 20:31:39ID:???2Byte文字列のファイル名をrenameしなおしたり、
データベースにinsert発行する前にidなんかを振る為に
一旦テンポラリに落とそうと思っています。
http://example.com/upload.html(GUI)
→ http://example.com/temp.php(file受け取り用php)
条件を満たすファイルであれば/tmp/に一旦copy。
ここまではリアルタイム処理で行います。
Linuxのcronコマンドを利用して1時間毎に/tmp/をチェックしにいき、
アップロード対象となるファイルが存在した場合にアイデアを頂いたファイルアップローダを起動させ、
レンタルサーバにアップロードします。
http://example.com/tmp/(画像ファイル)→http://example-2.com/(画像用ディレクトリ)
やりたい事ってのは最終的に格納するサーバの前に、
バックアップの意味を含めてワンクッションおきたいと思ってるんです。
example-2.comにアップロードが成功した画像は
cronで呼び出される別のバッチでexample.com/tmp/からは削除します。
ってな事をやりたいと思うのです。
リアルタイムでアップロードしちゃえれば一番いいんですが、
諸事情でワンクッション置く必要があるので。
0082nobodyさん
2007/04/02(月) 20:40:22ID:???0083nobodyさん
2007/04/02(月) 20:48:22ID:???勉強がてらうpろだ作りたかったのですが、
レンタル鯖の環境的な問題もあってそんな風にした次第です。
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:???勉強ならいいが、公開する気なら・・
■ このスレッドは過去ログ倉庫に格納されています