【PHP】下らねぇ質問はここに書き込みやがれ 43
レス数が1000を超えています。これ以上書き込みはできません。
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
0002nobodyさん
2007/04/01(日) 04:23:02ID:VGqlLhlD【PHP】下らねぇ質問はここに書き込みやがれ 30
http://pc8.2ch.net/test/read.cgi/php/1159979905/
【PHP】下らねぇ質問はここに書き込みやがれ 31
http://pc8.2ch.net/test/read.cgi/php/1161733546/
【PHP】下らねぇ質問はここに書き込みやがれ 32
http://pc8.2ch.net/test/read.cgi/php/1162818436/
【PHP】下らねぇ質問はここに書き込みやがれ 33
http://pc8.2ch.net/test/read.cgi/php/1164209222/
【PHP】下らねぇ質問はここに書き込みやがれ 34
http://pc8.2ch.net/test/read.cgi/php/1165519374/
【PHP】下らねぇ質問はここに書き込みやがれ 35
http://pc10.2ch.net/test/read.cgi/php/1166676139/
【PHP】下らねぇ質問はここに書き込みやがれ 36
http://pc10.2ch.net/test/read.cgi/php/1168395610/
【PHP】下らねぇ質問はここに書き込みやがれ 37
http://pc10.2ch.net/test/read.cgi/php/1169644229/
【PHP】下らねぇ質問はここに書き込みやがれ 38
http://pc10.2ch.net/test/read.cgi/php/1170520777/
【PHP】下らねぇ質問はここに書き込みやがれ 39
http://pc10.2ch.net/test/read.cgi/php/1171280039/
【PHP】下らねぇ質問はここに書き込みやがれ 40
http://pc11.2ch.net/test/read.cgi/php/1172151461/
0003nobodyさん
2007/04/01(日) 04:24:32ID:???http://pc11.2ch.net/test/read.cgi/php/1174217841/
0004nobodyさん
2007/04/01(日) 04:25:03ID:???■本家マニュアル http://www.php.net/manual/ja/
■日本PHPユーザ会 http://www.php.gr.jp/
■PEARマニュアル http://pear.php.net/manual/ja/
■メーリングリスト http://ns1.php.gr.jp/mailman/listinfo/
■ZFマニュアル http://framework.zend.com/manual/ja/
(以下英語)
■Smarty http://smarty.php.net/
■Zend本家 http://www.zend.com/
■Zend Framework http://framework.zend.com/
■php | architect http://www.phparch.com/
■Smartyマニュアル http://smarty.php.net/manual/en/
■PECL本家(英語) http://pecl.php.net/
0005nobodyさん
2007/04/01(日) 04:25:36ID:???1.文字コードは何を使えばいいの?
→1.UTF-8 2.EUC-JP のどちらか。迷うようなやつはShift_JISは使っちゃダメ。
2. このスレに書き込むときに自分のサイト名を晒したくない
→ http://example.com/が例文などのために予約されている。hogehoge.comは使っちゃダメ。
3. ブラウザに何も表示されないんだけど・・・
→ Apacheの設定を見直せ。ファイルの拡張子は何にしてて、その拡張子でPHPを呼ぶようになっているか?
4. 記号の意味がわからないけどググりようがない
→ 「@」 エラー表示を抑制、「->」 オブジェクトのメンバにアクセス、「::」 静的なメソッド呼び出し、
「==」は暗黙の型変換をしてゆるい比較、「===」は型情報も含めた厳密な比較
5. echo "$arr['hoge']['fuga']"; と書いたらエラーになった
→ {おっぱい括弧}でくくって"{$arr['hoge']['fuga']}"にする
6. 一定時間ごとに自動的に何かしたいんだけど
→ cronかタスクスケジューラを使え。
7.extractって危険なの?
→変数上書き&初期化忘れなどで危険。楽だからという理由だけで安易に使わない。
8. include/requireに「〜.php?a=b&c=d」のようなパラメータをつけたい
→ URL呼び出しなら可能だけど、普通のファイル呼び出しではできません
9.include/requireでURLを指定しても何も起きない
→ .phpの拡張子のファイルをURLで呼び出すと、1度PHPプログラムとして実行された結果になる。
0006nobodyさん
2007/04/01(日) 04:26:38ID:???→ 確認すべきはPHPのconfigureの引数、php.iniの内容と置き場所、
Webサーバの設定(Apacheならhttpd.conf)、起動&再起動あたり
11. SQLの質問はどこで?
→ データベース板に誘導されるのが嫌ならPHPにうまく関連させて質問する
12. 文字列のなかに、英字のみとか数字のみとか記号が入っちゃいやんとかはどうしたらいいの?
→ ctype_〜()が手軽。複雑なパターンはpreg_〜()あたりで正規表現を使う。
13. $a1, $a2, $a3 ... のような変数名をうまく扱いたい
→ 可変変数で実現できるけど、むしろ配列を使って$a[1], $a[2], $a[3]等とするのがベター
14. echoとprintってどう違うの?
→ よく議論される話題であるが基本的に両者とも同じ。 以下ちょっとした議論。
http://www.faqts.com/knowledge_base/view.phtml/aid/1/fid/40
15. クッキーの情報をユーザから隠したい
→ セッション使え。ただしクッキーとセッションは仕組みが違うから同じように扱うな
16. strip_tags()で削除しないタグを複数指定したい
→ strip_tags($html, '<a><p><font>'); // htmlspecialchars()も検討すべし
17. CSVやTSVのファイルをスマートに扱いたい
→ まずはfgetcsv()。ただし日本語を含むと正常に動作しない場合があるので注意だ。
18. 値渡しと参照渡し(「&」を使う)のパフォーマンスの違い
→ C言語じゃないので、パフォーマンス目的で使いわけたらダメ。参照渡しにすると逆に遅くなったりする
参照渡しは引数に戻り値を設定したり引数を関数内で変更するなど、正しい目的に使うこと
19. ファイル入出力関数(fopen等)でリモートファイル(http://〜とか)を扱う際の限界
→ fsockopen()でソケット通信 or PEARのHTTP系 or CURLで解決
必要ならHTTPをはじめとする各種プロトコル(どんなデータを送受信するか)はRFCなどで調べる
20. PHPからPOSTリクエストしたい
→19.を参照
21. 画像処理一般 or GDの限界
→ ImageMagick(PECLのやつ or シェルから実行)
22. 画像・音・動画はファイルで保存?DBに保存?
→ 好きにしてください
0007nobodyさん
2007/04/01(日) 04:27:09ID:???ttp://phpspot.org/blog/archives/2006/11/12php.html
01. staticメソッドが使えるなら使おう。速度は4倍になる
02. __get, __set, __autoload は使わない
03. require_once は重い
04. include, requireで読み込むファイルはフルパスにしよう
05. スクリプト開始時のUNIXタイムを $_SERVER['REQUEST_TIME'] で取れる
06. strncasecmp関数やstrpbrk関数を使えるケースはこれらを使い、正規表現は使わない
07. preg_replaceはstr_replaceより速い、しかし、strtrはpreg_replaceより4倍速い
08. 引数を、単体か配列かで自動判別するようなコードは出来るだけ避ける
09. @ を使ったエラー制御はとても遅い。→ @fputs($fp, "?");
10. $row["id"] は $row[id] より7倍速い
11. PHPのエラーメッセージは重い( noticeとかwarningとか)
12. for ($x=0; $x < count($array); $x) のように、forの中でcountを使うと毎回countが呼ばれるので使わない。
(参考)
PHPの最適化は本当か?
ttp://jigen.aruko.net/archives/433/
0008nobodyさん
2007/04/01(日) 04:32:07ID:???{.|{/:.:.:{〈:.:... .:.:.:.:.l) , ‐ ' "´ ̄ ̄ ̄ 丶、
z|j:.:.:.:.ヒ| |) , '´ _r─'´ ̄`ー-、_ ヽ
仁\:.:(| . . :.:.:.:.. . |}- 、 r‐ ''" ノ´ ※ ※ ヽ 丶
ヾ'´  ̄  ̄ ヾ) `ヽ | ..::::-┴´ ̄` ̄` ̄`ー、_ `ヽ ヽ
(ハ ___ ヾ) ヾヽY'´ : : : : : : : : ヽ ※ ヽ '、
/ (ハ/ `ヽ、」) l∧ / / : : : : l : :ゝ、 l. ',
ヽ '、 l } }/: : /: / :/ : l : : ヽ ※ヽ ',
丶 '、 l l ノノl: : /: : /: : /: /: ハ : : :ヽ { '、
丶、 ヽノ_ j/ {: l!: :⊥、/: : /.:/. /|: : .l ヽソ ハ
,.. -─‐`──-ヽヽ__ l: |l: :l :トリ_`ー':^/: {、 ヽ: : : | : : |_,..ィ'´ ̄
"´ `} ̄〕人:弋 じぇ、"´ 、 `丶、_ヽ.:l: /: : l|:. |
___ /辷 ム `ト `"'゙ '^ぅテォ-テ/./: /: /l.:..:.|
二三 ̄ ̄___ >ン三7 ∧ 八 , ヾジ /.イ: :/. /: .l : | 下らねぇ質問は
: . : .  ̄ノ≡=ァ こ}※ \__ トー‐、 __ ノ_ .イ//_:_:_l..| ここに書き込みやがれですぅ
ニニニニヽ、____/ ´フ 匸l/⌒ 、 )ヽ___ノ _ .. イ ̄※ ノ厂兀l.|
\:. _:_:_:フ、_ // て/ ´ ヽ`三/ ┴、 / ノし }: : l|
: . : . : . ト、\ /::/ (_{ }{"´ ヽ |〃_. イJ´ l: : : |
: . : . : ..| ヽ Y::/ /(\ _ ノ)ヽ___、._丿「 /勹 l: : : :|
ヽ| |{ /三\ / ヽ几_厂|/し、__兀r '" ヽ | : . : |
0010nobodyさん
2007/04/01(日) 05:59:05ID:???0011nobodyさん
2007/04/01(日) 06:21:07ID:???00121
2007/04/01(日) 06:22:21ID:VGqlLhlDそれはそうと41のURLを書き込めてないな・・・歯抜けテンプレ乙
0013nobodyさん
2007/04/01(日) 08:47:53ID:???0014nobodyさん
2007/04/01(日) 08:58:28ID:???最新の5件ぐらいだけのせようって話だったはずなんだが、
やっぱ自然と伸びちゃうよなw
0015nobodyさん
2007/04/01(日) 09:55:39ID:???「(07/4/01 09:05:48)」という文字列があったとして
4/01にマッチさせるにはどうすればよいでしょ?
[0-9]+/[0-9]+とすると07/4が引っかかってしまいます
0016nobodyさん
2007/04/01(日) 10:57:05ID:???if (preg_match('/([0-9]{1,})\/([0-9]{2})/', $str, $match)) {
print_r($match);
}
0017nobodyさん
2007/04/01(日) 11:05:32ID:???レスどうもです
詳しく書き忘れました形式は年/月/日なんですが月/日がほしいんです
月は10月とかの場合
07/10/01になっちゃうのでやっぱり07/10が引っかかっちゃいます
0018nobodyさん
2007/04/01(日) 11:12:23ID:???3つスラッシュを書けばいいだけじゃないのか
0019nobodyさん
2007/04/01(日) 11:14:34ID:???[0-9]+\/[0-9]+\/[0-9]+
2つスラッシュのまちがいだw
[0-9]+\/[0-9]+\/[0-9]+ [0-9]+
でいいだろう
0020nobodyさん
2007/04/01(日) 11:14:53ID:sjAh9xV+0022nobodyさん
2007/04/01(日) 11:26:51ID:???preg_match("/^\(\d{1,2}\/(\d{1,2}\/\d{1,2}).+$/", $date, $match);
echo $match[1];
0023nobodyさん
2007/04/01(日) 11:29:58ID:???3つマッチしてうしろの二つをpreg_replaceで$2$3で取り出せばいいだけでしょ。
preg_match使う必要も無い。
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:???勉強ならいいが、公開する気なら・・
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…)が半角の“?”になってしまいます
ご教示いただけませんでしょうか
http://www.pachiweb.com/updir/data/card.jpg
データベース機能とゲストブック機能を合わせた
phpを作りたいと思い先程書き込ませていただきました。
ログに番号ふっているのはログを出力する際、
フォームのラジオボタンのvalueに代入して
削除に利用するためです。
現在、書き込みの際に情報かコメントか分けて保存し
最新の情報書き込み5行、
コメント書き込み5行を表示するところまでは
完成しました。
0187182
2007/04/03(火) 23:11:04ID:???検索などをしてみてはいたのですが、php.iniの文字コード設定を、
というのが多くていろいろ試行錯誤してみてはいるのですが・・・
再度見直してみたいと思います
>>185
mb_convert_encodingの引数ですよね?今検索して初めて知りました
こちらも試してみたいと思います
おふた方どうもありがとうございました
0189nobodyさん
2007/04/03(火) 23:19:03ID:???1. A君がフォームを表示。
2. B君がフォームを表示。
3. A君が番号2のログを削除。
4. B君が番号3のログを削除。
5. (ノ∀`) アチャー
現在のプログラム自体アウトですかね?
一応、
現在作成中のものはバリューに入れる番号をコメントは1,2
情報はa1,a2になるようにしようと思うのですが。
そういう問題ではなくて?
0191182
2007/04/03(火) 23:39:28ID:???ほんと、おっしゃる通りだと思います・・・
>>190
横からなんなんですが、削除が起こってもそこを埋めない(書き込み)通番を
持っておくべきだと思います
表示上番号が飛ぶのが気持ち悪いのでしたら行番号を表示されればいいのでは
ないでしょうか
おっしゃるとおりですね、
行番号をvalueに挿入するようにします。
これがかなりネックになってましたので。
0193155
2007/04/04(水) 00:03:54ID:jkYA50BDそんなつもりはなかったんだ。
「ちなみに」っていうのはまずかったね。
すまん。
ところで>>155のレスでもまたASCIIコード見間違えてて微妙に間違ってたOTZ
いないとは思うけど、ここ見てあれ使う人がいたら悪いので一応報告しとく
最初の文字が数字と記号と制御文字以外の文字列にマッチする正規表現は
'^[^\W0-90-9].*$'
こんな感じでどう?
なんか微妙に板違いだけど・・・
0195nobodyさん
2007/04/04(水) 00:14:16ID:???ログを全て表示した時にも
ラジオボタン削除利用したいので
フォームへのvalue値の自動挿入はしときたいのですが
無謀ですかね。
0198nobodyさん
2007/04/04(水) 00:30:35ID:???0199nobodyさん
2007/04/04(水) 00:35:05ID:???番号抜けアリのラジオボタンを並べりゃ「ラジオボタン削除が利用できる」けど
富豪的に>>178でやればいいよ。配列に何MB食わせるのか知らないけど。
削除用のラジオボタンとやらをログのナンバーと無関係に連番振って吐いてるのかな。
0200nobodyさん
2007/04/04(水) 00:42:47ID:???っつーか何がしたくて今何が問題なのかがよくわかんないんだけど.。
ログを全て表示した時にラジオボタン削除(って何なのか知らんけど)をするために
フォームへのvalue値の自動挿入(hiddenのことか?)することは
別に無謀でも何でもないからさっさと作ればいいと思うけど
0201nobodyさん
2007/04/04(水) 01:01:03ID:???そろえたものをログに書き込むのは必要ないし効率が悪いからやめたまえ。
ログを配列に読み込んで、その配列を連番でvalueに利用すればおまえのやりたいことはできる。
つべこべいわずだまってマニュアルみろ。
16歳、工業高。
0202nobodyさん
2007/04/04(水) 01:02:13ID:???氏ね
countでカウントしたものを
ラジオ削除のナンバーに置き換えて処理するようにして
それで手におえないようなら
番号抜け削除を次候補という事で考えてみます。
本来ならあぼーんが掲示板の性質上いいのでしょうが
今回は比較的単純なスクリプトで後に大量設置する可能性があるもので
文字数省略できるところはしとこうかと。
>>199
削除用番号はログのナンバーを引用してます。
>>200
すいません、
html部分に先にvalue手打ちで書き込んどけということかと思ったもので
ログ利用では駄目なのかなと。
0204nobodyさん
2007/04/04(水) 01:02:42ID:???0206nobodyさん
2007/04/04(水) 01:03:41ID:???0207nobodyさん
2007/04/04(水) 01:04:17ID:???0208nobodyさん
2007/04/04(水) 01:08:09ID:???そもそも「行の順番」て何だ? DBでそんな概念あるか?
0210nobodyさん
2007/04/04(水) 01:12:03ID:???0211nobodyさん
2007/04/04(水) 01:23:36ID:???1年ぐらい前にその関数使ってゴニョゴニョしたら5〜6分かかってたバッチ
処理が2秒で終わったことがあった。
ちゃんとテストして処理に抜けとか問題は無かったけどあまりにも早すぎて
怖くなってから元に戻しておいた。
0212nobodyさん
2007/04/04(水) 01:27:53ID:???そんなプログラムの組み立てによって差が出るんですね。
あっても2,3秒のものだと思ってました。
0214nobodyさん
2007/04/04(水) 01:36:18ID:???ツッコまれてる理由は理解したの?
効率とか関係ないから。
> ナンバー 名前 内容 日付 パスワード
「ナンバー」とやらをキーにしてログを削除したいんだろ?
「ナンバー2のログを削除」みたいな感じで。
その「ナンバー」が削除処理の度にコロコロ変わったらマズいのは分かるよな?
分かってるならあとは好きに書けばいい。
ナンバーは消して現在こういう感じで処理してます。
explode以降は改修前のままですので今から直しますが。
$cdlog=file('comment.txt');
for($i=0;$i<count($cdlog)-1;$i++){
$cditems=explode("\t",$cdlog[$i]);
if($items[0]==$_POST['delradio']&&$items[4]==$_POST['delkey2']||$items[0]==$_POST['delradio']&&'pass'==$_POST['delkey2']){
0218nobodyさん
2007/04/04(水) 02:24:38ID:???あなたがページを表示したとする。
あなたはname="delradio" value="5"のカキコを削除したいと思った。(削除ボタンはまだ押していない。)
と、ここで他の誰かが割り込んで、name="delradio" value="4"のカキコを削除した。(削除ボタンを押した。サーバ側で削除処理も完了した。)
あなたは削除ボタンを押した。
あなたは目的のカキコを削除できる?
たまたまじゃなくて必ず削除できる?
0219nobodyさん
2007/04/04(水) 02:29:03ID:???格納した順というか、リソート機能ならPHPMyAdminで一発で出来るし
自前でやるとしても簡単なコードで出来るでしょう。
オートインクリメントしてるなら、それでソートすればいいんじゃね?
もっともこれはPHPMyAdminみたいな、基本ORDER BY付けないGUIで見るときに見やすいとかだけで
普通にDBから検索する場合、大抵はORDER BYつけるしリソートすること自体あんまり意味無いと思うが。
ファイルロックをしないといけないということですよね。
後程完成品をアプしますのでまたお気づきになった点を
ご指摘いただければありがたいです。
0221nobodyさん
2007/04/04(水) 03:08:41ID:???まぁいいやコードが有れば話もしやすいだろうし。
0223nobodyさん
2007/04/04(水) 03:21:56ID:???1 a
2 b
3 c
というデータになっているとしよう。Xという人が1を、Yという人が2を
ほぼ同時に消すという操作をしたとしよう。ファイルロックをしたとして、
XのクエリがYのそれよりも速く到達したときどうなるかというと、
Xのクエリの処理後
1 b
2 c
になる。これはわかるよね。次にYのクエリの処理だが、
これは2を消せという指令だ。ロジックはファイルの中から2を探して消すのだから、最終的には
1 b
になる。でもYが消したかったのは最初のbの行じゃなかったのか?
というのが問題。わかったかな。
と言う事は結局削除文字列代入しか無理と言う結論に?・・・・・・・・・
しっかしよくスレッドフローティング方式の掲示板とか作れますね、
作ってる方尊敬しますわ。
下記は現在作成中のソースです。
一番下のソースはめちゃくちゃなので放置お願い致します。
http://www.pachiweb.com/updir/data/php.txt
したい事は投稿者が自身でコメントか情報かを選択しそれを別々に保存、
そのログから新着5行づつを表示させると言うものです。
ラジヲボタンでその記事を削除したいのですが
なるべく情報、コメント含めラジオボタンで選択→パスワード入力後
ワンクリックで削除という手軽さで削除を行いたいです。
ファイル構成は
本体.php
reference.txt
comment.txt
です。
いろいろご解説頂いて本当にすいません。
マジすいません。
0226nobodyさん
2007/04/04(水) 03:39:33ID:???ごめん、コードを見ずにそういうことをしたい場合の定石を書くw
・ID列と連番列を別に取る
データには一度書いたら書き換わらないID列と、メッセージ番号(seq)を示す数を別に記録しておく
ID seq その他情報
1 1 a
2 2 b
3 3 c
消すときはIDをキーに行を探し、seq列を連番に書き換える。たとえば上の表のID2の行を消したときは
ID seq その他情報
1 1 a
3 2 c
のようにやる。IDは書き換えない
・そもそもseqはファイルに記録せずにいちいち数える
要件にもよるけどこれで十分処理が間に合う場合がけっこうある
IDとSEQに同じように番号を割り振ったとしても
ID側は歯抜け数字列になっても
SEQ側はきれいな数字列に直されると。
要するにID側をvalueに割り振れば問題解決ですか。
とりあえずナンバーをまた採取するようにして
それをIDにしてladioに代入します。
結局、素人の私がナンバーを振り直したいとか
訳わからん事言わなければ普通に解決してた問題なのですね・・・・・・
0229nobodyさん
2007/04/04(水) 05:11:36ID:???処理が増えるようだけど172さんにとってはすっきり書けるような気がする
通番用にはそれの変数一つ増やすだけだし
あと“何が”削除されたのか後で管理者が分かるのもメリットと言えばメリット
書いては消し書いては消しタイプ(削除比率の高いもの)だと
ファイルが膨らむばかりなので向かないけど
0230虚弱PHP
2007/04/04(水) 09:25:54ID:???完全削除は別のオペレーションで。
0231nobodyさん
2007/04/04(水) 09:39:33ID:???「値に入れればいいんですね」とか言ってるのと同じだ
seqを毎回振りなおすほうが面倒じゃないか?
ログ中の順番で表示して番号を付けりゃいいじゃん
っていうか一番楽な方法はDBだけど
0232nobodyさん
2007/04/04(水) 11:22:30ID:???削除の際はそれを入力させれば確認できる。
一番簡単なのはやっぱりデータベースだけど。
0233nobodyさん
2007/04/04(水) 11:31:01ID:???例:
function Controller($request, $session, $result) {
$this->request =& $request;
$this->session =& $session;
$this->result =& $result;
}
0234nobodyさん
2007/04/04(水) 11:34:46ID:???http://jp.php.net/manual/ja/language.references.whatdo.php
0236nobodyさん
2007/04/04(水) 12:48:21ID:Msn4ohO/Webサーバが整備されればPHP側では特に意識する必要なく
https://〜〜〜/〜〜.phpのように普通にアクセスして問題ありませんか?
0237nobodyさん
2007/04/04(水) 12:50:59ID:???0238233
2007/04/04(水) 13:41:06ID:???使用するものなのかが理解できません。
例えば233に書いたのはネットにのっていたあるサンプルクラスのコンス
トラクタなんですが、この場合は何故リファレンスにしているのでしょうか?
馬鹿ですみません。
0239虚弱PHP
2007/04/04(水) 13:44:49ID:???PHP4とPHP5でも変わってくるし。
>>238
使う必要を感じないなら、使わなくていいんじゃないかな。
勉強なら他の言語で参照渡しと値渡しの勉強した方がいいと思う。
0240虚弱PHP
2007/04/04(水) 13:45:27ID:???0242nobodyさん
2007/04/04(水) 14:10:11ID:???PHPなら参照する意味あんまないね。
0243nobodyさん
2007/04/04(水) 14:11:14ID:???0244nobodyさん
2007/04/04(水) 14:29:39ID:???collation server latin1_swedish_ci
の値を
collation server utf8_general_ci
に変更したいです。
方法を教えてください。
0245nobodyさん
2007/04/04(水) 15:16:31ID:???for(...){...};
のセミコロンってなんか意味あんの?
ってかカコイイの?
0246nobodyさん
2007/04/04(水) 15:32:22ID:???0247nobodyさん
2007/04/04(水) 16:15:15ID:PZ7+vB49にはどうすればよいのでしょうか?
例えば 0.0 から 20.0 までの目盛の間隔は広く、 20.0 から 100.0 までの目盛の
間隔は狭くする、という調節がしたいのです。
そうしないと、小さい値(だいたい 0.0 から 3.0 )が細かすぎて読み取れないのです。
よろしくお願いします。
0248nobodyさん
2007/04/04(水) 16:21:48ID:1w3+kv1aif(!$a = intval($b)){
$a = 0;
}
0250nobodyさん
2007/04/04(水) 16:48:33ID:???$a = intval($b);だけで結果は同じだから。
0251nobodyさん
2007/04/04(水) 16:55:47ID:74I3KgLe0253nobodyさん
2007/04/04(水) 17:13:34ID:???PHPの場合ないんだけど、それ風になんか代替させたいならcall_user_func + 参照渡しを検討ってことかな。
0254nobodyさん
2007/04/04(水) 17:36:16ID:???まぁ、call_user_func, call_user_func_arrayあたりを使うのが無難だね。
0255nobodyさん
2007/04/04(水) 17:36:18ID:???0256nobodyさん
2007/04/04(水) 17:36:45ID:???http://jp.php.net/manual/ja/functions.variable-functions.php
0257nobodyさん
2007/04/04(水) 17:37:56ID:???コールする側で参照するか、PHP5ならオブジェクト渡すか。
0258nobodyさん
2007/04/04(水) 17:41:05ID:???0259nobodyさん
2007/04/04(水) 17:41:23ID:???あれば便利だけども、なくてもそれほど問題はないからな
0261nobodyさん
2007/04/04(水) 18:34:49ID:PZ7+vB49ありました。ありがとうございました。
0262nobodyさん
2007/04/04(水) 19:42:34ID:o8UCEOfE○秒後に実行させるという。(表示されるのではなく)
Javascriptでやっているのですが、基本的にPHPのページなもので
もし可能であればPHPのみで出来ればと思います。
0263nobodyさん
2007/04/04(水) 19:46:45ID:???0264nobodyさん
2007/04/04(水) 19:55:29ID:???0265247
2007/04/04(水) 20:00:52ID:PZ7+vB49すみません、ちょっと対数グラフではないようです。
イメージ的には http://sv2ch.baila6.jp/graph_load.cgi?news23.2ch.net のような
グラフを描きたいのですが、こういうのは一般的に対数グラフになるんですか?
0266nobodyさん
2007/04/04(水) 20:02:40ID:???0267262
2007/04/04(水) 20:38:52ID:???sleepだとページ全体が表示されるのを遅らす事になります。
なので、sleepの間は何も表示されません。
また、metaで別ページに飛ばすのでもないです。
そうではなくてPHPファイル(test.phpなど)のHTMLの部分は表示されていて
プログラム実行箇所は○秒遅れたら良いのです。
0268nobodyさん
2007/04/04(水) 20:40:21ID:???今、smartyを初めていじってて、単純なプログラムを作ったんだけど、
文字化けするトラブルが発生しました。
最初に言うと、smartyを使う点以外はコレまでに作ってきたプログラムと
同じようにしてるので、いきなり文字化けが発生したというのはやっぱり
smartyに関係した問題かなと思ってるんですが、どういう原因が考えられるでしょう?
(1)PHPファイル コレをブラウザで開きます---------------------
<?php
require_once("MySmarty.class.php");
$o_smarty = new MySmarty();
$o_smarty->assign("MyName","YAMADA,Yoshihiro");
$o_smarty->display("sample.tpl");
?>
(2)sample.tpl テンプレファイル---------------------
<html><head>
<meta http-equiv="content-type" content="text/html; charset=EUC-JP">
<title>Smartyのテスト</title></head>
<body>
私の名前は{$MyName}です。
</body></html>
(3)MySmarty.class.php ---------------------
<?php
require_once("MySmarty.class.php");
$o_smarty = new MySmarty();
$o_smarty->assign("MyName","YAMADA,Yoshihiro");
$o_smarty->display("sample.tpl");
?>
0270nobodyさん
2007/04/04(水) 20:44:58ID:???0271268
2007/04/04(水) 20:51:35ID:???(1)PHPファイル コレをブラウザで開きます---------------------
<?php
require_once("MySmarty.class.php");
$o_smarty = new MySmarty();
$o_smarty->assign("MyName","YAMADA,Yoshihiro");
$o_smarty->display("sample.tpl");
?>
(2)sample.tpl テンプレファイル---------------------
<html><head>
<meta http-equiv="content-type" content="text/html; charset=EUC-JP">
<title>Smartyのテスト</title></head>
<body>
私の名前は{$MyName}です。
</body></html>
(3)MySmarty.class.php ---------------------
<?php
require_once("/php/include/smarty/libs/smarty.class.php");
class MySmarty extends Smarty{
public function __construct(){
$this->Smarty();
$this->template_dir="./templates";
$this->compile_dir="./templates_c";
$this->cache_dir="../cache/";
$this->caching=false;
}
}
?>
開発環境はwinXP apache2 php5です
0272nobodyさん
2007/04/04(水) 20:57:02ID:???内部コードは?
テンプレートはもちろんEUCなんだよな?
ブラウザの文字コード変換で適当に変えて何のコードになってるか分かる状態か?
0273nobodyさん
2007/04/04(水) 21:00:51ID:???テーブルの文字コードはEUCで、CSVの出力をSJISにしたいのですが、
header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename=hoge.csv");
〜以降printで内容出力
こんな感じで出力するとファイルがEUCで出力されます。
Smartyがらみでphp.iniでは以下の設定をしてます。
mbstring.http_output SJIS
mbstring.internal_encoding EUC-JP
HTMLの出力はこれでSJISになっているんですが、
CSVの出力だと関係ないんでしょうか?
0274268
2007/04/04(水) 21:02:28ID:???回答ありがとうございます。
テンプレート(sample.tpl)はEUCで保存してます
ブラウザの文字コードももちろんEUCで出力されてるんですが化けていて、
SJISやISOなどに変更しても化けています。
ちなみに、「????O??AMADA,Yoshihiro???B」 となります。
smartyだけの文字コードをいじる設定があるのかとphpinfoで調べても
該当項目がないみたいなので困ってしまいました
0276nobodyさん
2007/04/04(水) 21:08:44ID:???sample.tplの
<meta http-equiv="content-type" content="text/html; charset=EUC-JP">
これcharset=Shit-JISの間違いじゃ??
0277nobodyさん
2007/04/04(水) 21:17:47ID:???function s_outputfilter($str)
{
print_r(mb_detect_encoding($str, 'auto'));
}
$o_smarty->register_outputfilter('s_outputfilter');
解決策ではないが、とりあえずこれを実行して表示前のコードを調べてみれ
0278268
2007/04/04(水) 21:24:20ID:???SJISってでました!
どういうこと???
smartyはSJIS書き出しが標準ってこと??
どこに設定ファイルがあるんでしょうか?
>>276
なんで判ったんですか?
0279nobodyさん
2007/04/04(水) 21:26:26ID:???その直後に排他ファイルロックかけると
同スクリプトでほぼ同時に同じ処理をしようとした人は
その処理中ファイルの読み込みさえ出来なくなるんですかね?
つか、fopenの読み込み+書き込み専用で開くとかどういう意味があるのですか?
読み込み専用のみで開いても読み込み+書き込み専用で開いても
後者選んどけば何の不自由なくすべて処理できるのでは?
0281268
2007/04/04(水) 21:45:46ID:???cakePHPに移行します
0283nobodyさん
2007/04/04(水) 21:48:20ID:???0284nobodyさん
2007/04/04(水) 21:48:49ID:M2pD0HVK可読性やメンテナンス性高めたいんだけど
そういうのの勉強できそうなきれいでわかりやすいphpのコードやtipsって
どこかにありませんか。
本人ですら後で読み返した時1から思い出さないとよくわからないことが多いです。
ありがとうございます、
もしお暇でしたら下記質問も教えてもらえるとうれしいです。
ロックかけた後は別の人が同時に同じプログラム
の投稿ボタンを押してもはじかれるという事でよいのでしょうか。
ロックかけた後、そのファイルを自分で再度呼び出す分には問題なくて?
そうです、色々アドバイスを頂いたのをまとめた結果、
記事にナンバー(ID)振ってナンバーの並びが歯抜けになっても放置で
それを削除していく方式にしました。
それでファイルにロックかけて前の記事のナンバーを取り出し1を加算していこうとしているのですが
ファイルロック関連で疑問に思った事がありまして・・・・・・
本で調べてみたのですが概念的なことしか載ってなくて
具体的に疑問点が解決できませんでした。
何度もすいません。
0290nobodyさん
2007/04/04(水) 22:34:35ID:GchyYXGQUTF-8で表示されているフォームから特殊文字(??)を入力して
送信するとそのままバイナリで送信されてくるのですが
sjisやujisなフォームから送信するとHTMLコードで送信されてきます(&#9685;&#3642;)
UTF-8の場合、そのままsjis-win等に変換すると特殊文字が壊れてしまいます。
何がやりたいかと言うと。
携帯絵文字の入力も想定しているので、どうしてもUTF-8 -> SJISへ変換する作業が
必要になるのですがUTF-8で送られて来た場合でも&#9685;&#3642;の様なHTMLコードにしたいのです。
これを実装するにはUTF-8のバイナリとHTMLコードの変換マップ等を
作らないと実装できないものでしょうか?
どなたかお力添えお願い致します。
それだとラジオボタンでの削除の際、
不具合出るとのことでした。
DBも今勉強1からはじめると大変そうなので
完成後置き換えるようにしたいと思います。
0292290
2007/04/04(水) 22:37:21ID:GchyYXGQと化けてしまいました申し訳ないです。
()内に入る特殊文字はこれです。
??
0293nobodyさん
2007/04/04(水) 22:37:44ID:???なんで?
ユニークナンバーをキーにして削除すればいいじゃん?
(つーかラジオボタンだろうとチェックボックスだろうとセレクトボックスだろうと同じこと)
0294nobodyさん
2007/04/04(水) 22:38:41ID:???>sjisやujisなフォームから送信するとHTMLコードで送信されてきます(&#9685;&#3642;)
>UTF-8で送られて来た場合でも&#9685;&#3642;の様なHTMLコードにしたいのです。
???
0295290
2007/04/04(水) 22:48:38ID:GchyYXGQ>>294
ttp://www.geocities.co.jp/SiliconValley-Sunnyvale/6003/ura/moji.html
やりたいこととしては上記ページのコードではなく実際の絵文字の方をそのまま
コピペしてPOSTした時に正常に表示させたいのです。
0296290
2007/04/04(水) 22:57:14ID:GchyYXGQ補足です。
コピペしてPOSTしてからSJISに変換しても壊れないようにしたいのです。
0297nobodyさん
2007/04/04(水) 22:57:46ID:Rqzs89IS>>250
ありがとうございます。
if(!$a = intval($b)){
$a = 0;
}
上記での ! がどのような意味になっているのか教えてください。
「$bを整数へ変換できず、$bの値を$aへ代入できない場合」、すなわち
「$a = intval($b) が成立しない場合」という理解でいいのでしょうか。
ここでの ! の使い方がいまいち分かりません。
0298nobodyさん
2007/04/04(水) 23:15:37ID:???2.その返り値を$aに代入する
3.2の式(=$aの値)の否定を取ったものが真になるか判断する
変換できないとか代入できないとかいう判断はここではありません.
0299nobodyさん
2007/04/04(水) 23:18:23ID:???なんか解釈の仕方が変だぞ
分岐と式の仕様を理解していないのか?
!は否定の演算子
$a = intval($b) の否定。
その例文の場合だと、intval($b) の結果を $a に代入して、
それが 0 なら分岐する
0300nobodyさん
2007/04/04(水) 23:22:18ID:???俺が誠心誠意を持って答えてやるから質問ぶつけてこい!
PHPに対するあついハートをわすれるなよ!
0301nobodyさん
2007/04/04(水) 23:35:01ID:???例えば2番目にあらわれた<table>〜</table>までを取得する方法を教えてください
(上記の”〜”の中にもtableが含まれていたりするとお手上げなのです)
0302nobodyさん
2007/04/04(水) 23:37:48ID:???2番目にあらわれた<table>〜</table>までを目で見て判断する。
次におもむろにCtrl+Cを押してコピーし、適当な箇所へCtrl+Vを押して貼り付ける。
0303nobodyさん
2007/04/04(水) 23:54:00ID:???0304nobodyさん
2007/04/04(水) 23:54:24ID:???【test.txtの内容】
<html>
<head>
<title>テスト</title></head>
<body>
<table>
<tr><table><tr><td>これを取得する</td></tr></table></td>
</tr>
</table>
</body></html>
【test.phpの内容】
$file = file_get_contents("test.txt");
preg_match("[(<table>.*?</table>)]",$file,$array);
print_r($array);
0307300
2007/04/04(水) 23:57:27ID:???0308nobodyさん
2007/04/04(水) 23:58:25ID:???$b = $a++;
これで$bが3だから驚いた
0310nobodyさん
2007/04/05(木) 00:01:50ID:???いや、マニュアルだと!の方が高かったんだけど、
それだと>>248の書き方は文法的におかしくない?
実際やってみたら動いたわけだけど、何か見落としてる?
0311nobodyさん
2007/04/05(木) 00:09:24ID:???if(!$a = intval($b)){
$a = 0;
}
【$A = $B】
$Bを$Aに代入する
【$A = "a"】
$Aはaである
【!$A = "a"】
$Aはaではない
これで理解しろ
0312nobodyさん
2007/04/05(木) 00:10:39ID:???見落としてると思う。
第十五章
>注意: ! は = よりも優先されるはず なのにもかかわらず、
>PHP は依然として if (!$a = foo()) のような式も許します。この場合は foo() の出力が $a に代入されます。
0313nobodyさん
2007/04/05(木) 00:11:45ID:???if(!$a = intval($b)){
$a = 0;
}
$bの値が整数だったばあいいif分の中身が実行されるが、
$bになにも格納されてなかったら動かないぞ
0317nobodyさん
2007/04/05(木) 00:15:05ID:???ほんとだ、見落としてた。
というとつまり、!$a = $b みたいな形の式のみ特例的に=の方が優先順位が高くなる、ってことか。
それはちょっと・・・どうよ?
0318312
2007/04/05(木) 00:20:53ID:???英文だと
if (!$a = foo()), in which case the return value of foo() is put into $a.
となってるから、!$a=$bじゃなくて、関数の返し値の代入に限ってって感じだと思うよ。
つまり関数の方の動作を優先するってことなんだろうなあ。
0319nobodyさん
2007/04/05(木) 00:21:44ID:???0321nobodyさん
2007/04/05(木) 00:29:04ID:???0322312
2007/04/05(木) 00:36:05ID:???みたいだね。
$a = 1;$b = 0;
if(!$a = $b) {
echo $a;
}
で 0 が出力結果になるな。
0323301
2007/04/05(木) 00:47:30ID:???とりあえず改行を無視して
$html = '<table><tr><td>→<table><tr><td>これを取得する</td></tr></table>←</td></tr></table>';
preg_match("[(<table>.*?</table>)]", $html, $array);
print_r($array);
とやってみました
イメージとしては $array[0]に$html全体が
$array[1]に→この部分←が入るような形になればありがたいのですが…
0324nobodyさん
2007/04/05(木) 00:58:55ID:???ネストをきれいに表現してる正規表現のサンプル見たことあるな。
元レスから判断するけどn番目のテーブル全体が欲しいんだったら
対応する括弧を見つけるロジックでいいんじゃないのか。
0326301
2007/04/05(木) 01:29:36ID:???正規表現は前に何度も躓いていますし、なんか自分でも無理かと…
324さんと325さんのおっしゃってる意味は同じと考えていいのでしょうか?
対応する括弧を見つけるロジック = 再帰
なんでしょうか???
実はファイル(ディレクトリ)操作を勉強している時に「再帰」が出来てきて
理解を頓挫したことがあります(都合のいいサンプルをそのまま使いました…)
階乗で解説してあるサイトなどで勉強してみましたが、今回のケースに
当てはめることが全く出来ません
もしよろしければヒントでもいただけないでしょうか?
0327nobodyさん
2007/04/05(木) 02:48:53ID:???0328nobodyさん
2007/04/05(木) 03:28:47ID:???tableタグの数をカウントアップ、閉じるタグでカウントダウンして、ゼロになってところで間の要素を再帰で同じ処理すればいいんじゃないか?
0330nobodyさん
2007/04/05(木) 04:03:17ID:???0331nobodyさん
2007/04/05(木) 04:22:53ID:???0332nobodyさん
2007/04/05(木) 10:01:00ID:???function htmlspecialcharsplus($value)
{
// サニタイズして出力します
echo htmlspecialchars($value);
}
0334nobodyさん
2007/04/05(木) 10:32:46ID:???そういうのは、htmlをxml文書として扱いましょう。
自分ならPEARのXML_Serializeクラスつかうけど。
0336nobodyさん
2007/04/05(木) 12:47:31ID:???対象htmlファイルの構造が常にいっしょ
もしくは、tableタグに必ずidがついてる
みたいな条件下じゃないとどこかで再帰的な手法が必要になるんじゃないかな。
0338nobodyさん
2007/04/05(木) 13:01:20ID:???送られてきた指定した画像のサイズを変え保存するにはどうしたらいいでしょうか?
GD入れないとダメすか?
また、保存する場所ですがDBにいれるか、ファイルを置くディレクトリを設置するか迷っています。
DBに入れた場合、DBの動作(SELECTなどの)は遅くなりますか?
0339nobodyさん
2007/04/05(木) 13:18:45ID:ln1txq/N誰か教えてくださいお願いします。
ちなみにOSはWiiiiiinXP
今のところのエラーはメールこねーy+文字化け杉
文字コードの設定とかkwskおしえてほしす
0341>339
2007/04/05(木) 13:36:29ID:???落としてきたPHPの設置方法はうpするだけと書いてあるんですが
うpしてもロカルでも動かないので何か要るのかしらと思って悩んでます。。
一応持ってるだけなんですがアパチ2とPHP5はおいてある。
でも使い方とかはHello World+print、echo止まりだから全然わかりまてん
0342nobodyさん
2007/04/05(木) 13:44:53ID:???0343nobodyさん
2007/04/05(木) 13:45:50ID:???0344nobodyさん
2007/04/05(木) 13:48:16ID:???0345nobodyさん
2007/04/05(木) 13:50:03ID:???0346nobodyさん
2007/04/05(木) 13:50:21ID:ln1txq/Nえと、うp自体はPHP可レンタル鯖にうpしてるんだけどSMTP鯖起こさないといけないんですか?
>343
すまんかった
Proです
0347nobodyさん
2007/04/05(木) 13:52:39ID:???日本語で話して下さい
0348nobodyさん
2007/04/05(木) 13:54:39ID:???0349nobodyさん
2007/04/05(木) 14:06:10ID:???0350nobodyさん
2007/04/05(木) 14:09:03ID:ln1txq/N配布スクリプトくらいうpして動かせてよ・・・
0351nobodyさん
2007/04/05(木) 14:18:30ID:???意味が分からない
0352nobodyさん
2007/04/05(木) 14:28:45ID:???使っている人、やっぱり格段に効率化できました?
入力データ検証とかみると便利そうだなと思いますが、
それ以外で効果抜群だった点など教えてください。
0353nobodyさん
2007/04/05(木) 14:29:12ID:???0354nobodyさん
2007/04/05(木) 14:34:37ID:ln1txq/Nhttp://php.eweb-design.com/1301_mail.html
0355nobodyさん
2007/04/05(木) 14:37:28ID:???mysqlでの文字コードの関係が
ごちゃごちゃしてて理解できずにいるんですが、
詳しいサイトないでしょうか?
phpのソースをUTF8で書いて、
MySQLの文字コードがEUC固定の場合に、文字化けを発生させないようにできるんでしょうか?
0356nobodyさん
2007/04/05(木) 14:39:28ID:???0357355
2007/04/05(木) 14:45:26ID:???PHPで挿入したデータが自動的にEUCに変換され保存される、ということでしょうか?
例えば、UTF8のスクリプトからMySQLにデータ挿入しても
EUCで保存され、
UTF8のスクリプトで読み込む場合、読み込んでから
UTF8に変換して出力する、みたいな感じでしょうか?
0358nobodyさん
2007/04/05(木) 14:46:06ID:ln1txq/Nんで、ApacheにDLしたPHP置いてみた。
ドリームウイーバで送信先メールアドレスだけ書き換えた。
Fatal error: Call to undefined function mb_convert_encoding() in C:\Program Files\Apache Group\Apache2\htdocs\sendmail.php on line 148
0359339
2007/04/05(木) 14:46:53ID:???0360nobodyさん
2007/04/05(木) 14:58:52ID:???$str = "あいうえお";
$str = mb_convert_encoding($str, "euc-jp", "utf8");
0361nobodyさん
2007/04/05(木) 15:05:02ID:???extension=php_mbstring.dll
php.iniに↑みたいな設定がWinだといるらしい
そのエラーメッセージでググったらぞろぞろでるぞ
0362nobodyさん
2007/04/05(木) 15:07:36ID:???>>このフォームは、"sendmail"のみに対応しています。
おまえの使ってるレンサバがsendmailに対応してるのか確認。
誰も答えるやつがいなかったらおれがこたえてやるがいまから仕事だから遅くても怒るなよよ。
0363nobodyさん
2007/04/05(木) 15:20:00ID:ln1txq/Nそれは多分初期設定時に
;extension=php_mbstring.dllをextension=php_mbstring.dll
になおせって説明かと。。
>362
ロカルでもむりなん?
鯖設定みてくる
0364339
2007/04/05(木) 15:24:11ID:ln1txq/N書いてない悪寒…
http://muryo-de.etowns.net/
別に試しにうpできたらいいんでsendmail対応書いてある鯖探すかsendmail使わないサンプル探したほうがいいのかしらん
0366虚弱PHP
2007/04/05(木) 15:44:45ID:???> PHPで挿入したデータが自動的にEUCに変換され保存される、ということでしょうか?
MySQL4.1以降だとそうなるはず。
だけど、化けまくる場合が多いので、MySQL4.1以降の場合は
skip-character-set-client-handshake設定して、
自分でちゃんと文字コード管理するのがよさげ。
個人的には全部UTF-8にした方がいいと思うけど。
適当に検索したら、以下のページでMySQL&PHP連携での文字コードの話が書いてあった。
http://puchiko.lowtech.ne.jp/?itemid=349
0367nobodyさん
2007/04/05(木) 15:49:15ID:ln1txq/Nアカンがなwwwww
対策練ってくる・・・orz
0369339
2007/04/05(木) 15:52:18ID:???場所が借りれたらいいと思った。今は反省していない。
0370虚弱PHP
2007/04/05(木) 16:13:19ID:???http://muryo-de.etowns.net/php.php
0371nobodyさん
2007/04/05(木) 16:13:51ID:???設定で、どうにでもできる自由度を理解してないだけと思われ。
PHP側でMySQLの設定にあわせて文字変換してもいいし
MySQL側の設定で、MySQL側の変換を無効にしたりとか
PHPに合わせてデータを渡したっていいし、オマイの好きに
出来るよってところかな。
PHPとMySQLの文字変換の関係って言われても
答えとしては、自分がPHPとMySQLでやろうとしてることに
一番いい設定を選べばエエやん?って感じ。
0372339
2007/04/05(木) 16:20:25ID:ln1txq/N逃げに走って、sendつかわなくていいフォームさがしてう
0373nobodyさん
2007/04/05(木) 16:35:54ID:???簡単にする方法はないでしょうか?
0374nobodyさん
2007/04/05(木) 16:35:56ID:???>だけど、化けまくる場合が多い
これの原因の多くが使ってるmysqlクライアント側文字コードが
デフォルトは「latin1」と設定されてるから。
PHPでEUC-JPやUTF-8に変換してデータ送っても
MySQLサーバの方ではクライアントはlatin1で送るよと表明しているから
latin1→サーバ側に指定された文字コードに変換する。
latin1と思って日本語扱えば、そりゃ文字化けは必至。
だからクライアントの起動オプション、ライブラリならビルド時に指定するか
SET NAMESで「これからクラアントは○○で送るよ」とサーバに教えてやらないと駄目
http://dev.mysql.com/doc/refman/4.1/ja/charset-connection.html
PHPやMySQLの公式ビルドもののクライアントライブラリも「latin1」と設定されてる。
# RHEL系はUTF-8になってるのかね。
まあ自分も
>skip-character-set-client-handshake設定して、
>自分でちゃんと文字コード管理するのがよさげ。
こっち
0375あきら
2007/04/05(木) 16:40:24ID:jUd/uPxecreate table kaiin (kaiin_code varchar(6),
kaiin_name varchar(20),
nyukai_ymd varchar(10),
kigen integer,
primary key (kaiin_code));
nyukai_ymd は 日付を表現する文字型のカラム
kigen は 有効期限で1から12(nヶ月)
有効期限切れの会員の検索
入会日(nyukai_ymd) < 今日(2007-04-05)から遡ってkigenヶ月
select * from kaiin where
nyukai_ymd < to_char(to_date('2007-04-05', 'YYYY-MM-DD') - interval 'kigen month', 'YYYY-MM-DD');
ERROR: Bad interval external representation 'kigen month'
と言うエラーが.....!
intervalでカラム(kigen)を使う方法を教えてください。
宜しくお願いします。
0376355
2007/04/05(木) 16:43:30ID:???>>371
>>374
レスありがとうございます。
>MySQL4.1以降だとそうなるはず。
つまり4.1以降のクライアント側の文字コードがEUCに設定されている場合、の話ですよね。
では、4.0以前のサーバー側の文字コードって何の意味を成しているのでしょうか?
0379nobodyさん
2007/04/05(木) 16:46:08ID:Y4vj6k1c今まで無料鯖で自作ブログみたいなのをつくってましたが、今回SSLが使えて広告もない鯖をタダで
使えるようになりました。そこで特にその必要はないのですが、あるならやっぱ使いたいのでコメント
やユーザー情報の入力はセキュアな状態で行うように改造したいと思ってます。
そこで質問なんですが、サイトのアドレスはhttp://mydomain.xxx.xxx/で、SSLはhttp://secure.xxx.xxx
というサブドメインでしか使えなくなってます。鯖は同じなのでmydomainで使ってるサイトの外見テンプ
レートをsecureから参照したいのですが、どうすればいいのかわかりません。
例えば、mydomain/tpl/tpl.phpといったテンプレートファイルをsecure/index.phpから参照するにはどう
すればいいですか?
日本語怪しかったらスミマセン
お願いしまッス!
0380339
2007/04/05(木) 16:46:37ID:ln1txq/Nhttp://0web.cjb.net/
うごく・・・し、送れるんだけど鰓がでるお。。
Notice: Undefined variable: err_message in
0381あきら
2007/04/05(木) 17:01:57ID:jUd/uPxeFreeBSD 5.3
Apache/1.3.37
php 4.4.4
postgresql 7.3.15
実際は
$today = date("Y-m-d");
$result = pg_Exec($conn,"select * from kaiin where nyukai_ymd < to_char(to_date('$today', 'YYYY-MM-DD') - interval 'kigen month', 'YYYY-MM-DD');");
です。
宜しくお願いします。
0382nobodyさん
2007/04/05(木) 17:04:36ID:???Warning: Smarty error: unable to read resource: "menu.tpl" in C:\php\include\SMARTY\libs\Smarty.class.php on line 1095
正直Smartyにエラーが出るなんて想像もしてなかった
1000行も見返して問題チェックなんてする気にならないというか、
変にいじったら予想外の部分にまで後々障害出そうで怖いんですが、、
皆さんこういうトラブル発生しましたか?
0387あきら
2007/04/05(木) 17:12:49ID:jUd/uPxeサーバーサイドプログラミング関連の話題を扱っています。
Perl, PHP, Java, Ruby, C, Tcl といった言語処理系の話、
Apache, CGI, JSP/Servlet, ASP, ColdFusion といったアプリケーション実行環境の話、
Oracle, PostgreSQL, MySQL といったデータベースの話などをテーマにしています。
とあったのでココでいいと思いました。
場違いでごめんなさい。
0388nobodyさん
2007/04/05(木) 17:22:10ID:???special thxxxxxxxxxxx!
なにかうろこのようなものがとれた
0390nobodyさん
2007/04/05(木) 17:38:59ID:???すみません、
「Smarty.class.php の1095行目のmenu.tplを読めない」 と書いてあるのかなと
思うんですが、、
良くわかりません
0391nobodyさん
2007/04/05(木) 17:40:32ID:???それはこの板全体の説明で、このスレッドは「PHP」の
質問スレッドだよ
PostgreSQLの話題は別のスレッドが基本
面倒だから答えるけど
エラーメッセージ見てわかるように
interval 'kigen month'
この表現がおかしいんだよ
interval の指定はこんなふうにはできない
interval '1 month' とか interval '2 month' ならできるけど
カラム名の指定は、少なくともPostgreSQL では無理
Oracleでも無理だと思うけど
0392あきら
2007/04/05(木) 17:45:14ID:jUd/uPxe大変すみませんでした。
答えてくれて有難うございました。
0393nobodyさん
2007/04/05(木) 17:46:59ID:???意訳しすぎ
勝手にコロンで区切られた文章を連結するなよ
素直に前から読んだら良いじゃないか
テンプレートファイル menu.tpl が読めなくなっているのだろ
1095 行目は実際にエラーを発行している場所であって、
そこに問題あるってわけじゃないぞ
何を触ったのかは知らないけど、テンプレートパス指定が
おかしくなったのか、menu.tplを消したかは知らないが
0394nobodyさん
2007/04/05(木) 17:48:32ID:???今後Postgresの質問するなら適切な場所へ行ってね
PostgreSQL 2テーブル目
http://pc11.2ch.net/test/read.cgi/php/1047317680/l50
DB@2ch
http://pc11.2ch.net/db/
0396nobodyさん
2007/04/05(木) 18:00:08ID:???その再帰手法を個別に書かないで、XMLとして処理すればいいんだよ。
<table と </table> の最長一致文字列を探したあとは、それをXML処理にゆだねればいい。
その場合おっしゃるidなどの要素内属性記述は、逆に邪魔になるからそれを消して渡す。
0397338
2007/04/05(木) 18:21:18ID:???無視されるのは大嫌いなんだ!
0398nobodyさん
2007/04/05(木) 18:48:58ID:???質問者はID出せよ
GD入れなくてもできる
バイナリデータをいじくって、なんらかのフォーマットの
画像データを出力するスクリプトが書けるのなら
そんなのがいやらなら、GD入れるなり、ImageMagick使うなり
したらいい
バイナリデータをDBに登録するかどうかは、その案件しだい
としか言いようがない
selectで遅くなるとは普通考えられないが、これは
DBの仕様次第だろう
0399379
2007/04/05(木) 18:49:27ID:Y4vj6k1cノシ
0400nobodyさん
2007/04/05(木) 18:54:44ID:???同じサーバにあるのなら、何も悩むことなく読み込めるだろう
パスの指定は、ドメインとは関係ないのだから
テンプレートだろ?画像じゃなくて
画像であっても、シンボリックリンクでも貼れば解決するだろうけど
0401nobodyさん
2007/04/05(木) 19:14:07ID:???0402虚弱PHP
2007/04/05(木) 20:07:19ID:???PHP5なら array_walk_recursive が使えるよ。
再帰的に負う必要がないなら、array_walkでOK。
こっちはPHP4でも使える。
0403虚弱PHP
2007/04/05(木) 20:12:16ID:???Linuxなら明示的に指定しない限り、GD付属してたとおもったけど。
Windowsならphp.iniでコメント外すだけ。
0405nobodyさん
2007/04/05(木) 21:08:26ID:MctJVuph後部に追記ならfopen(filename,"a")で簡単ですが、
先頭に追記していきたい場合はこれだと無理です?
一度中身を変数なりに入れてからfopen(filename,"w")あたりで
追加分+中身を入れないとダメ?
初心者ですいません。
0408nobodyさん
2007/04/05(木) 21:16:44ID:???0409nobodyさん
2007/04/05(木) 21:19:59ID:???0410405
2007/04/05(木) 21:25:43ID:MctJVuphサンクス。
マニュアルを読むと fopen(filename, "r+") でfpが先頭にあるみたいなので
いけるかと思ったんだが、ファイルにゴミがまざる orz
一時保存して追加するしかないのね。
0414379
2007/04/05(木) 22:39:38ID:BEBjQR7Yどうもです
なんつーか、インクルードしたいんですけど無理ですかね?
シンボリックってググッたけど意味わかんないっす。
PHPじゃなくてサーバーの専門用語っぽいことはわかったんだけど
馬鹿ですんません
0415nobodyさん
2007/04/05(木) 22:40:36ID:???0416379
2007/04/05(木) 22:43:15ID:???同じフォルダにないとインクルードできないっぽいっす
0420379
2007/04/05(木) 22:53:36ID:???どこをみりゃいいっすか
0421nobodyさん
2007/04/05(木) 23:00:03ID:???0422nobodyさん
2007/04/05(木) 23:05:54ID:???/home/secure/index.php
<?php
include('../../mydomain/tpl.php);
?>
で inlcude できるだろ
セーフモードで制限がかかっているのか?
0423nobodyさん
2007/04/05(木) 23:06:51ID:???include('../mydomain/tpl.php');
か
0424nobodyさん
2007/04/05(木) 23:07:58ID:???http://php.benscom.com/manual/ja/ref.filesystem.php
一つ要望だけど普通の言葉で書いてもらえますか?
0425nobodyさん
2007/04/05(木) 23:08:57ID:1F/X4KzLディレクトリに書き込み権限があるかどうか調べるにはどうしたらいいでしょうか?
0426nobodyさん
2007/04/05(木) 23:24:19ID:FIQWGizoこういう形式の日時から、タイムスタンプを取得したいのですが、
どうすれば良いのでしょうか?
0430nobodyさん
2007/04/05(木) 23:33:36ID:FIQWGizoありが研ぐお座います
0431nobodyさん
2007/04/06(金) 01:36:07ID:7OEWd9FEよろしくお願いいたします
0432nobodyさん
2007/04/06(金) 01:47:04ID:???大文字を小文字にする関数
0433nobodyさん
2007/04/06(金) 03:30:56ID:???Aだったらaに変換
Bだったらbに変換・・・・
いいんですよ効率悪くても。このやりかたで不満をもって自分で効率のよいコードがかけるようになりなさいな
0434nobodyさん
2007/04/06(金) 03:47:19ID:???まず魅力あるコンテンツを作れるようになろうぜ
0435nobodyさん
2007/04/06(金) 04:03:19ID:???0436nobodyさん
2007/04/06(金) 04:05:36ID:???0437nobodyさん
2007/04/06(金) 04:43:10ID:???strtr("AbCDeF", "ABCDEFGH...", "abcdefgh..."); #=> "abcdef"
0438nobodyさん
2007/04/06(金) 05:18:26ID:???0439nobodyさん
2007/04/06(金) 05:27:44ID:???0440nobodyさん
2007/04/06(金) 05:45:43ID:???0443nobodyさん
2007/04/06(金) 08:46:53ID:???0444nobodyさん
2007/04/06(金) 09:59:03ID:???他人の書いたコードが読めなくなるからな
0446nobodyさん
2007/04/06(金) 10:23:16ID:???$html = '<FORM>
A
<IMG SRC="./NULLPO.GIF" />
<INPUT
TYPE="CHECKBOX"
CHECKED />
A
</FORM>';
$html = preg_replace_callback('/<[^<>]+>/',create_function('$matches',
'if(strpos($matches[0],\'=\') === false) return strToLower($matches[0]);
$length = strlen($matches[0]);
$quote = false;
for($i = 0; $i < $length; $i++) {
if($matches[0][$i] === \'"\') $quote = !$quote;
elseif(!$quote) $matches[0][$i] = strToLower($matches[0][$i]);
}
return $matches[0];'),$html);
var_dump($html);
string(79) "<form>
A
<img src="./NULLPO.GIF" />
<input
type="CHECKBOX"
checked />
A
</form>"
まぁおおよそ効率の良いやり方じゃないが、な…。
即席なんで不備があるかもしれん。
0447nobodyさん
2007/04/06(金) 12:30:19ID:???というエラーになります; DBクラスが見つからないと言っているんでしょう
けどDB.PHPはちゃんとあるし、何故なんでしょうか?
0449nobodyさん
2007/04/06(金) 12:39:44ID:???板間違えて書き込んだので直ぐ誤ってますよ。
昨日一日考えてたんですが、今自己解決しました。
pear DBをインストールしたらOKでした。
0450nobodyさん
2007/04/06(金) 12:56:23ID:???0452nobodyさん
2007/04/06(金) 13:06:52ID:???0453338
2007/04/06(金) 14:28:35ID:???class内でpreg_replace_callbackする際、
あらかじめ配列化された$this->mojiを使用することが出来ません。
こんなときどうすればいいんでしょうか?
#$this->moji= array('001'=>'<font size="1">', '002'=>'<font size="2">'…);
#$str = '!001!';だとした場合
function hoge_ForOutput($str)
{
$hoge = preg_replace_callback(
"/!(\S{4})!/",
array($this, 'conv_func'),
$str
);
return $hoge ;
}
function conv_func($str)
{
if($this->moji[$str['1']]=="")
{
return $str; }
else
{
return $this->moji[$str['1']];
}
}
}
0454453
2007/04/06(金) 14:30:08ID:2B8Av++o名前も間違えました。。
すみません
0456453
2007/04/06(金) 15:05:58ID:2B8Av++oご指摘ありがとうございます。
変数名等、実際のものと少し書き換えたのでミスしてしまいました。
この場合、\S{3}です。
ただ、問題なのは
function conv_func内で$this->mojiがNULLになってしまうことなんです。
0457nobodyさん
2007/04/06(金) 15:23:40ID:???は?
0458nobodyさん
2007/04/06(金) 15:27:32ID:???0459nobodyさん
2007/04/06(金) 15:34:16ID:???ならないけど…。
実際の物を書いたら?
ちなみに同じくミスっているのかもしれないけど下記はエラーになる。
if($this->moji[$str['1']]=="") // Undefined index
return $str; } // Array to string conversion
0460453
2007/04/06(金) 15:45:14ID:???オブジェクト作成時
Hoge::hoge_ForOutput()
にしていたのが原因でした…
お騒がせしました
0461nobodyさん
2007/04/06(金) 15:48:24ID:???0462453
2007/04/06(金) 16:02:55ID:???0463nobodyさん
2007/04/06(金) 20:59:56ID:pizAbRptどうすれば他鯖のファイルを取得できますか?
申し訳ないですが、ご教授ください
0464nobodyさん
2007/04/06(金) 21:04:21ID:sS5tmZeq0466nobodyさん
2007/04/06(金) 21:14:07ID:???pearのhttp_requestとか?
offでできるかは知らね
>>464
それは最早クラス内定数ではないのでは・・・。
継承すればスーパークラスの使えるのかな?
ほか変数なりdefineなりグローバル変数なりを考えてみてはどうでしょう.
0467nobodyさん
2007/04/06(金) 21:54:34ID:9fDFot8y0468nobodyさん
2007/04/06(金) 22:06:44ID:???0470nobodyさん
2007/04/06(金) 22:11:53ID:???作ってみたんですが、フォームの部品を
[select box] [search box] [bottun]
みたいに並べるのはどうすればいいんでしょうか?
普通にやると
[select box]
[search box]
[bottun]
みたいにレイアウトされてしまいます。
0471nobodyさん
2007/04/06(金) 22:15:04ID:???0472nobodyさん
2007/04/06(金) 22:15:33ID:???0473nobodyさん
2007/04/06(金) 22:25:28ID:???どういうレンダラーをつかっているのかという問題。
ttp://www.is.titech.ac.jp/~yanagis0/kei/quickform.html
とか
ttp://www.townmedia.org/tips/PEAR/HTML_QuickForm.html
を見ながらどうすべきかを考えるべし。
>>471,472
全然、無関係。
0477nobodyさん
2007/04/06(金) 22:43:53ID:9fDFot8yとはとはとは?
0479nobodyさん
2007/04/06(金) 23:58:48ID:51+hyhMJでマッチさせると、$matches[1]には空文字列が入ってくれるのに$matches[3]には値がセットされません。
この挙動は変ではありませんか?
0480 ◆SQL.mUThc.
2007/04/07(土) 00:10:22ID:vJbH2RhGまずwildcard.phpでセッションを開始し、GETのyouridにセッションidを渡します
このような形になります ⇒ hoge.php?yourid=hogehogehoge3333
そしてGETで受け取ったyouridの値を、hoge.php側で確認できる$_SESSIONのセッションidと一致したかどうかでユーザー認証をしています
そこで質問ですが、
このセッションidがリファラーなどで外部に漏れて第三者に渡り、その第三者がこのアドレスにアクセスしたとしても
その第三者がアクセスするときはセッションIDが違うので、認証ができないことを確認したのですが
この方式でユーザーの認証をするのはセキュリティ的にみて問題はありますでしょうか?
セッションを扱うのは今回がはじめてで無知なことは承知しています
詳しい方よろしくお願いします
0481nobodyさん
2007/04/07(土) 00:22:19ID:???そのセッション情報をどこに保存するかで変わると思う
cockieなら、悪意がある人間がたまたま情報を手に入れる
ことができたのなら、認証を突破できるだろう
0482nobodyさん
2007/04/07(土) 00:34:35ID:???セッションIDをパラメタに埋め込む必要はあるのかな?
勘違いかも試練がデフォルトクッキーが使えるならクッキー
にセッションIDを持たせるんじゃなかったっけ?
ただ何があろうともSSLは必須
0483 ◆SQL.mUThc.
2007/04/07(土) 00:48:33ID:vJbH2RhGやはり当方セッションについて勉強不足のようです
もう少し勉強しないと危険なスクリプトになりそうです
どうもクッキーがポイントみたいですね 出直してきます
ご意見ありがとうございます
0484nobodyさん
2007/04/07(土) 00:50:27ID:???ここに書いてあるぐらいの事は最低でも全部やっといたほうが無難。
http://www.asahi-net.or.jp/~wv7y-kmr/memo/php_security.html#PHP_Session
0485nobodyさん
2007/04/07(土) 01:31:50ID:zMY0muXp文字コードは今までいろいろ試しました。SJIS,EUC,UTF8
一長一短あると思いますが、何が一番いいでしょうか?
0487nobodyさん
2007/04/07(土) 01:40:41ID:???0488nobodyさん
2007/04/07(土) 01:41:13ID:???クロスブラウザを考慮しつつ、手間がかからない方向で考えると
スキルあるならSJIS。携帯でも見れるし。
スキル無いなら、EUCが無難ってとこじゃね?
古いOSのブラウザをバッサリ捨てるならUTF8。
0489nobodyさん
2007/04/07(土) 01:42:55ID:???0490nobodyさん
2007/04/07(土) 01:53:48ID:???0491nobodyさん
2007/04/07(土) 01:55:00ID:???0493nobodyさん
2007/04/07(土) 02:03:31ID:???せっかくうざい文字コード問題がUTF8統一で解決しかかってるのに、ノイジーマイノリティのために
全体の足を引っ張るのは論外じゃね? 全体の1%もない連中が騒ぎすぎなんだよ・・・
0494nobodyさん
2007/04/07(土) 02:20:39ID:???足引っ張るとかじゃないんじゃね?
サイト構築者が、一人でも多くのお客さんに見てもらいたいと
イヤラしく考えるかどうかだけでしょw
俺個人の話をすると、某マイナーゲームのサイトを
立ち上げたんだけど、まぁぶっちゃけ、既に有名サイトがあって
その二番煎じだったんだよね。ただ、その某有名サイトは
UTF8でCMS的な作りだったんだけど、俺はEUCで構築して
携帯用にはSJISで吐き出せるようにした。某雑誌がその
ゲームを取り上げる際に、紹介サイトとして、俺のサイトを
掲載したいとメールを送ってきた。本家的な某大御所サイトが
あるのに、何故俺のサイトなんだろう?と今でも分からないけど
多分、雑誌社の編集部はMac OS9で、俺のサイトをチェック
しやすかったんだろうと、俺は睨んでるw
0495nobodyさん
2007/04/07(土) 02:51:44ID:???0496nobodyさん
2007/04/07(土) 04:45:19ID:???0497nobodyさん
2007/04/07(土) 06:09:42ID:???0498nobodyさん
2007/04/07(土) 07:19:36ID:???0499nobodyさん
2007/04/07(土) 10:01:39ID:vZgv1pNd今のところは以下の手順でやってます
cd imap-2006f
make lrh
cp -p c-client/rfc822.h c-client/mail.h c-client/linkage.h /usr/include/
cp -p c-client/c-client.a /usr/lib/
これで
php-5.2.1
./configure --with-imap=/usr/local
とすると
utf8_mime2text() has new signature, but U8T_CANONICAL is missing. This should not happen.
ってエラーで止まっちゃって
config.log見ると
configure: failed program was:
#line 45958 "configure"
#include "confdefs.h"
#include <c-client.h>
int main() {
int i = U8T_CANONICAL;
; return 0; }
0500nobodyさん
2007/04/07(土) 10:23:25ID:???使ってないので良く知らんけど
なんで、聞く前に
U8T_CANONICAL is missing PHP
ぐらでぐぐらないのか?一発で原因がわかるんだけど。
0501nobodyさん
2007/04/07(土) 10:43:33ID:???やっぱり独自にフレームワークを構築するのかな?
どんな感じで作ってるのかすげー気になる。
0502nobodyさん
2007/04/07(土) 10:45:39ID:???作る気にはなんねーけど
0503nobodyさん
2007/04/07(土) 10:48:05ID:???GREEやってることを見ればいいんじゃない?
あそこは本人のEthna発展系でフレームワーク作ってるから。
0504nobodyさん
2007/04/07(土) 10:50:04ID:???0505nobodyさん
2007/04/07(土) 10:55:57ID:???SNSそれ自体は結局は単なるブログと掲示板の集積だから「簡単」に作れるにしても、
商売に必要な多機能付加、メンテナンス考えれば、きちっとしたフレームワークがなきゃね。
0506nobodyさん
2007/04/07(土) 11:23:40ID:???SNSなんて既存のフレームワークで充分だろ
0507nobodyさん
2007/04/07(土) 11:38:26ID:36/fFnrN0508nobodyさん
2007/04/07(土) 11:50:23ID:???0509nobodyさん
2007/04/07(土) 12:10:36ID:JPCg3GgQ0510nobodyさん
2007/04/07(土) 12:40:12ID:???0511nobodyさん
2007/04/07(土) 13:09:47ID:JPCg3GgQ0512nobodyさん
2007/04/07(土) 13:18:06ID:???フレームワークって言った場合は、ソフトウエアのためのソフトウエア統合環境のことだ。
0513nobodyさん
2007/04/07(土) 13:23:52ID:JPCg3GgQ0514nobodyさん
2007/04/07(土) 13:24:34ID:???0515479
2007/04/07(土) 13:43:50ID:qxhDTSD1失礼しました。
0516nobodyさん
2007/04/07(土) 13:44:49ID:???0517nobodyさん
2007/04/07(土) 13:56:34ID:???0518nobodyさん
2007/04/07(土) 14:02:21ID:S7Rnm2Ut0519nobodyさん
2007/04/07(土) 14:03:37ID:???0520501
2007/04/07(土) 14:07:31ID:???thx 参考になります。
SNSというよりWebアプリと言うべきだったorz
最近phpをはじめてCMSなどをいじりはじめたので
>>505さんの言われている様なことが気になっていたんです。
で自分で話し振っといて悪いがフレームワークが何なのかわからなくなったw
しかもなぜ>>501の質問に至ったのかさえ忘れてしまったw
ほんと俺ってバカだなwwwwwwwww
0521nobodyさん
2007/04/07(土) 14:09:30ID:???まずは、マニュアルを読め
http://jp.php.net/manual/ja/function.flock.php
0522nobodyさん
2007/04/07(土) 14:16:46ID:S7Rnm2Utさんくす
すまん読んだつもりが見逃してた
0523nobodyさん
2007/04/07(土) 14:40:08ID:???とりあえずなんでもいいからフレームワークダウンロードして
ちょっと弄ってみたらわかるとおもう
言葉で説明しても分かってる人にしか分からん説明になりそうだ
0525nobodyさん
2007/04/07(土) 17:02:20ID:???なんか違う結果が出るんですけど・・・。
あと
$hoge = array( var => 'test' );
と
$hoge = array( 'var' => 'test' );
って違うんでしょうか?
0526nobodyさん
2007/04/07(土) 17:03:41ID:???/_~ ,,...:::_::;; ~"'ヽ
(,, '"ヾヽ i|i //^''ヽ,,)
^ :'⌒i i⌒"
| ( ゚Д゚) <あのね、先生もそんなにヒマじゃないの。
|(ノ |)
| |
ヽ _ノ
U"U
0527nobodyさん
2007/04/07(土) 17:13:48ID:???0528nobodyさん
2007/04/07(土) 17:33:22ID:???0529nobodyさん
2007/04/07(土) 17:48:09ID:???直リンクできないようにする方法とかない?
0530nobodyさん
2007/04/07(土) 17:52:13ID:???__FILE__ と $_SERVER['SCRIPT_FILENAME'] を比較することで
直アクセスか、includeされてるかの判別ができるからそれでどうにかしろ
0531nobodyさん
2007/04/07(土) 18:05:51ID:???1.普通は、include先ファイルはWebディレクトリ外に置く。これが基本。
2.中に無きゃいけないっていうなら、include元の(たとえば)index.php冒頭に
define('MYFILE',true);
とか書いておいて、includeされるファイル冒頭に
if(!defined("MYFILE") || MYFILE != true) {
die('');
}
みたいなことやる。
3.2.でアクセスされるのも厭なら、apacheのrewrite_modつかって
RewriteEngine on
RewriteRule (アクセス許可ファイルじゃなきゃ) (アクセス不可)
とかで処理。
0532nobodyさん
2007/04/07(土) 18:18:21ID:???0533nobodyさん
2007/04/07(土) 18:21:53ID:???テキストファイルとして見えちゃうことが多いから駄目でしょ。
0534nobodyさん
2007/04/07(土) 18:21:54ID:???アクセスできなくすればいいapacheなら.htaccessとかでdenyに
webからアクセスできなくてもphpからなら権限さえあればincludeできる
0535nobodyさん
2007/04/07(土) 18:23:58ID:???0536nobodyさん
2007/04/07(土) 18:25:35ID:???>>531あるいは>>531の2のようなこととかをPHP内部でしておくのが大切。
0538nobodyさん
2007/04/07(土) 18:47:11ID:???何か実現したい事があった時に、色んな設定(コーディング)等をする必要があるのは高度だ。
不具合があった時に問題切り分けなど時間かかって経費かかるし、
速度面や再利用性など重視で問題がなければ、言語内で完結したほうがいい。
0540nobodyさん
2007/04/07(土) 18:57:09ID:???0541nobodyさん
2007/04/07(土) 19:40:16ID:???0542nobodyさん
2007/04/07(土) 20:06:11ID:???0543nobodyさん
2007/04/07(土) 20:27:29ID:???みたいのを読んだ気がするんだけど、
functionの戻り値がOKなら配列(array)だめならfalse(bool)
みたいに違う型を送るのは、設計的にあまりよくないのですか?
戻り値が想定できないじゃなくて、文字列か配列特定できないどっちかが返ってしまうとかだったかも・・・。
0544nobodyさん
2007/04/07(土) 20:56:32ID:???その関数を使うPG視点で分かりやすく使いやすいのが良い関数。
>戻り値が想定できない?ような設計はだめだ
「戻り値が想定できないような関数名はだめだ」なら良く聞くけど。
0545nobodyさん
2007/04/07(土) 22:01:57ID:???PHPの標準関数はそういう戻り値(array or bool)が多いけど
正直言って使いにくいとはよく思う。
慣れたんで困らなくはないけど。
ただ、これは作法の話であって設計がダメとかいうのとは違う。
元の話を思い出したらまた来な。
0546nobodyさん
2007/04/07(土) 22:11:55ID:???0547nobodyさん
2007/04/07(土) 22:36:32ID:???ほとんど同一人物だろこれ。
0548nobodyさん
2007/04/07(土) 22:37:42ID:???0549nobodyさん
2007/04/07(土) 22:45:55ID:???0551nobodyさん
2007/04/07(土) 23:01:15ID:???PHPに興味はあるんだけど頭が悪くて質問に答えるどころか、
疑問も浮かんでこないのに、なにかスレで言いたくてたまらない
可哀想なやつだと思ってにこにこして読んであげてるよ、おれw
0552nobodyさん
2007/04/07(土) 23:01:46ID:K6TrX8TC$fp = fopen(filename, "r");
while(!feof($fp))
{
$str = fgets($fp, 4096);
$str = rtrim($str); // 改行除去
echo "$str<br>";
}
fclose($fp);
ファイルの中身
------------------
ああ
いい
うう
EOF
------------------
単純にファイルの中身を表示しているだけだが、ファイルの末端を改行すると
その行も処理されちゃうのはなんで?
EOFで最後の行は無視されるかと思うんだけど…
(if (!$str){ continue; } でうまくいけるけど)
0553nobodyさん
2007/04/07(土) 23:15:51ID:???null[EOF]
null[改行]
はrtrimから見れば一緒です。
0555nobodyさん
2007/04/07(土) 23:19:30ID:???0556nobodyさん
2007/04/07(土) 23:20:53ID:???単純にeofに達する判断が読み出した後だからとしか
期待する動作を望むならfgetsの戻り値でやるとか
$fp = fopen(filename, "r");
while($str = fgets($fp))
{
$str = rtrim($str);
echo "$str<br>";
}
fclose($fp);
0557nobodyさん
2007/04/08(日) 03:33:53ID:evw5P74Isubstr_count ( file_get_contents($file), "\n" );
今までは
count(file($path));
でやってたけど上のほうが1.5倍速かった
ファイルはShift_JISで日本語入ってるけど平気かな
0558nobodyさん
2007/04/08(日) 04:30:38ID:???sjisの下位バイトは制御コード使ってないので大丈夫。
間違ってるのは後者。改行コードが0個でも1と返る。
0559nobodyさん
2007/04/08(日) 09:24:41ID:iJakkiFrたとえば、ライブハウスのライブ情報を登録する機能があるとして、
各日にちごとに出演者情報を登録する際に、出演者数が毎日マチマチで
ある場合、SQLに送信する出演者IDの数もマチマチになるわけですけど、
そうすると、単純に考えたら保存するフィールドが複数必要になります。
でも、そんな不安定なことするわけにいかないので、特定のフィールド”players”に
カンマ区切りで追加上書きしていくのが正解なのかなぁと思ったんですが、
こういう発想でいいんでしょうか?
なんだかphpの質問かSQLの質問かわからないですが、アプリ制作の
いろはとして質問させてもらいました。OKですか?
0560nobodyさん
2007/04/08(日) 09:40:33ID:???DBの正規化の考え方からすれば、その「不安定なこと」も「特定フィールド
カンマ区切り」もいずれも外れてる。
ライブイベント情報に即して、出演者「行」を増やしていく(第一正規化)。
ライブイベント情報をキーにして出演者 tableを別途作り、またIDキーなどで
整序していく(第二正規化以降)のが普通。
0562nobodyさん
2007/04/08(日) 10:48:24ID:evw5P74Iさんくす
問題ないのね というか後者は間違ってたのか 助かりました
0563nobodyさん
2007/04/08(日) 11:42:42ID:???大抵カラムをその数だけ増やすかカンマ区切りで入れちゃうんだけど
0564nobodyさん
2007/04/08(日) 11:44:15ID:???0565nobodyさん
2007/04/08(日) 11:49:33ID:???みたいなもん)、出演者情報は、どう考えてもライブ情報なら最初から正規化対象だろうから
いい勉強の機会ということで。
0566nobodyさん
2007/04/08(日) 12:48:00ID:+aqEfY9a$path = '/diary/2007/';
$dir = opendir($_SERVER['DOCUMENT_ROOT'].$path);
while($file = readdir($dir)) {
if(ereg(".php$", $file)) {
$file = ereg_replace('.php', '', $file);
echo('<a href="/diary/2007/'.$file.'">'.$file.'</a>'."\n");
}
}
closedir($dir);
このようにファイル名を取得してリストを作っています。
ディレクトリ 2007 の中には 01.php, 02.php, 03.php, 04.php のファイルがあり
また、上記の方法ではこの順に表示されます。
ディレクトリの中の最後のファイル名のみを取得したい場合は
(上記の例では 04.php が "最後のファイル名" に相当します)
どのように書けば良いのでしょうか。よろしくお願いします。
0567nobodyさん
2007/04/08(日) 13:13:00ID:???$aF[] = ereg_replace('.php', '', $file);
として
最後に
$hosii_file_mei = array_pop($aF);
じゃだめなのかい?
0568nobodyさん
2007/04/08(日) 13:23:08ID:Q73wCY81PHPでBBSを作りました。
案の定荒らしが書き込まれています。
そこでプロキシ経由での書き込みを禁止したいのですが、その書き込みがプロキシ経由かどうかを知るためにはどうすればよいのでしょうか?
よろしくお願いします。
0571568
2007/04/08(日) 13:29:08ID:Q73wCY81ありがとうございます。
getHostByAddr($_SERVER['REMOTE_ADDR']) === $_SERVER['REMOTE_ADDR'] )
で真にならなければプロキシ経由になるんですね。
知りませんでした。さっそく導入してみます。
0572nobodyさん
2007/04/08(日) 13:30:42ID:???こんなに簡単にわかるのか・・・
0573569
2007/04/08(日) 13:31:55ID:???「経由」かもしれない、っていう程度だし、負荷がかかるし、あんまり自分は好きな方法じゃない。
とりあえずそこらへんからはじめて見たらってな程度。
自分がやるなら>>570の方面でやるだろうな。
0574nobodyさん
2007/04/08(日) 13:38:40ID:???フレームワーク?
それともソフト?
0575nobodyさん
2007/04/08(日) 13:38:59ID:???$index = glob($_SERVER['DOCUMENT_ROOT'].'/diary/2007/*.php');
とかやってcount()とかarray_pop()とかarray_slice()とかかなぁ。
0577568
2007/04/08(日) 13:43:30ID:Q73wCY81http://bbq.uso800.net/code.html
に組み込み方法として
sub checkProxyList
{
my $RADDR = $ENV{'REMOTE_ADDR'} ;
$RADDR =~ /^(\d+)\.(\d+)\.(\d+)\.(\d+)$/;
my $query_addr = "$4.$3.$2.$1.niku.2ch.net";
my $addr = join('.', unpack('C*', gethostbyname($query_addr)));
if ($addr eq '127.0.0.2')
{
DispError("ERROR!","公開PROXYからの投稿は受け付けていません!!(1)");
}
return 0 ;
}
が載っていましたが、これってPHPではないですよね?
PHPでのBBQの導入はどうすればよいのでしょうか?
0578nobodyさん
2007/04/08(日) 13:43:56ID:???いや、ググって調べたんだが自分の考えが合っているかどうかわかんないので
よく使う関数集みたいな感じで集めたものでいいの?
「アプリケーションソフトを開発する際に頻繁に必要とされる汎用的な機能をまとめて提供し、アプリケーションの土台として機能するソフトウェアのこと。」
0579nobodyさん
2007/04/08(日) 13:44:54ID:???glob関数は、パターンマッチでファイル名を確保するから、
それ使うと、>>566の要件(おそらくファイルシステム上のファイル順での取得)には合わないでしょ。
0580nobodyさん
2007/04/08(日) 13:49:52ID:???それくらい勉強しなさい。
perl知らなくても、その程度のコード見れば移植は簡単でしょ。
それにもう少しぐぐれば、PHPでのそのBBQ対応スクリプト見つかるし。
脊髄反射で聞くのはやめようぜ。
0582nobodyさん
2007/04/08(日) 13:51:47ID:???include_once()
require()
require_once()
この違いがわかんね
0585nobodyさん
2007/04/08(日) 13:55:58ID:???どの辺り読むかURL出してやったほうがいいと思うぞ
ただでさえ読みづらいマニュアルなんだ
0587568
2007/04/08(日) 14:01:34ID:Q73wCY810588nobodyさん
2007/04/08(日) 14:07:27ID:???http://jp.php.net/manual/ja/function.include.php
http://jp.php.net/manual/ja/function.require.php
http://jp.php.net/manual/ja/function.include-once.php
http://jp.php.net/manual/ja/function.require-once.php
これでいいのか?
Webなんかで見るから見辛いんだろ?
CHMでダウンロードして再コンパイルすれば文字化けも消えて便利だぞ?
0589nobodyさん
2007/04/08(日) 14:08:22ID:???ちょwwww詳しく!!!!
0590nobodyさん
2007/04/08(日) 14:08:57ID:???0591nobodyさん
2007/04/08(日) 14:17:07ID:???>どの辺り読むかURL出してやったほうがいいと思うぞ
関数なんて関数名でぐぐれば出てくるしPHPサイとの検索機能使ってもでてくるし
関数リファレンスって章があるんだし
自分で探せない奴は頭おかしいと思うぞ。
0592566
2007/04/08(日) 14:21:53ID:+aqEfY9aありがとうございました。最近のファイルを取得したかったので、
>>567 の方法を採らせていただきました。ありがとうございます。
0593nobodyさん
2007/04/08(日) 14:25:12ID:???>>567だけど、>>579のglob使うほうがスマートだよ。
$index = glob($_SERVER['DOCUMENT_ROOT'].'/diary/2007/*.php',GLOB_NOSORT);
echo array_pop($index);
の二行で終わる。
0594nobodyさん
2007/04/08(日) 14:27:02ID:???PHPほど親切で分かりやすいマニュアルはないだろマジで・・・
0595nobodyさん
2007/04/08(日) 14:29:00ID:???ザクザク見つかる。
というかそれしか出てこない。
PHPマニュアルのミラーがなんであんなにあるのか不思議だ。
置くなとは言わないが、せめて検索エンジンはじいてくれよ。。。
0596nobodyさん
2007/04/08(日) 14:29:21ID:???0597nobodyさん
2007/04/08(日) 14:41:36ID:???ググった時の上位10件がPHPマニュアルとそのミラーなんて酷すぎるぜ。
あと、PHPマニュアルは階層構造になっているのが逆に使いづらいというか。
目次をクリックしたらまた目次だったときは一瞬迷う。
0598nobodyさん
2007/04/08(日) 14:43:03ID:???0599nobodyさん
2007/04/08(日) 14:45:07ID:???沢山あって分かりにくいからミラー作らないで下さい/Googleは規制してくださいってか?
情報の選別くらい自分でしようぜ
0600nobodyさん
2007/04/08(日) 14:51:11ID:???俺も検索しててウザーって思う
なんでみんなあんなにミラー作りたがるんだ?
0601nobodyさん
2007/04/08(日) 15:20:38ID:???0602nobodyさん
2007/04/08(日) 15:25:46ID:???0604nobodyさん
2007/04/08(日) 15:40:28ID:???0605nobodyさん
2007/04/08(日) 15:43:51ID:???0608nobodyさん
2007/04/08(日) 15:50:40ID:???・ぐぐる。
・目的別リファレンスがある書籍を買う。
・日頃からマニュアルを眺めて関数の機能を把握しておく。
0609nobodyさん
2007/04/08(日) 15:51:17ID:???0610609
2007/04/08(日) 15:52:19ID:???0611nobodyさん
2007/04/08(日) 16:09:15ID:???0612nobodyさん
2007/04/08(日) 16:34:10ID:???公式ブックマークしとけばそんなサイト気にならないよ。
0613nobodyさん
2007/04/08(日) 16:46:06ID:???自分らしさの表現なの?
どうせなら本家ミラーのjp*.php.netにすればいいのに
0614nobodyさん
2007/04/08(日) 16:52:55ID:???0615nobodyさん
2007/04/08(日) 17:05:27ID:???0616nobodyさん
2007/04/08(日) 17:33:21ID:???ミラーサイト側に苦情を入れようと思ってる。
0617nobodyさん
2007/04/08(日) 17:47:25ID:???サーバーの挙動が遅いってのもあるよな。そこらへんは使う気になれない。
0618nobodyさん
2007/04/08(日) 17:52:51ID:???以上、アンチミラーサイト側
それについてミラーサイト作者の反論
↓
0619nobodyさん
2007/04/08(日) 18:06:37ID:???0620617
2007/04/08(日) 18:13:53ID:???0622nobodyさん
2007/04/08(日) 18:33:07ID:???0623nobodyさん
2007/04/08(日) 18:34:56ID:???例えばどの関数でぐぐるとそうなる?
0624nobodyさん
2007/04/08(日) 19:09:56ID:???http://www.google.co.jp/search?q=ob_clean&lr=lang_ja
http://www.google.co.jp/search?q=ob_get_clean&lr=lang_ja
http://www.google.co.jp/search?q=ob_get_contents&lr=lang_ja
上位にくるミラーうざい
0625nobodyさん
2007/04/08(日) 19:11:08ID:???むしろミラーサイトなんて複数もいらねえよ
0626nobodyさん
2007/04/08(日) 19:12:27ID:???0627nobodyさん
2007/04/08(日) 20:35:55ID:???/^\d{4}$/
でいけましたが、
4桁〜8桁の文字にマッチさせるにはどうすれば良いのでしょうか?
/^\d{4-8}$/
にしてみましたがダメでした
0628nobodyさん
2007/04/08(日) 20:41:18ID:???・ウェブサイトの知名度やページランクが上がる可能性がある。
・広告をつければ何もせずにお金がじゃんじゃか、ああおいしい。
・なんとなくいいことした気分になる。
0631nobodyさん
2007/04/08(日) 20:44:22ID:???つhttp://www.php.net/manual/ja/reference.pcre.pattern.syntax.php
0632nobodyさん
2007/04/08(日) 20:50:55ID:???0633nobodyさん
2007/04/08(日) 20:59:02ID:???0634nobodyさん
2007/04/08(日) 20:59:54ID:???0635nobodyさん
2007/04/08(日) 21:04:49ID:???マニュアルばっかりだとやる気なくすよってことでは?
-マニュアルとか-manualを付けるって手もあるけど
たまたまそれらの語句を含んでいた有益なページまで除外してしまうかもしれんし
0636nobodyさん
2007/04/08(日) 21:10:11ID:???0637nobodyさん
2007/04/08(日) 21:21:57ID:???例外的に有益な情報はちゃんと上位に出てくる。
このスレのレベルは公式嫁だからもういいじゃん。
0638nobodyさん
2007/04/08(日) 21:23:58ID:???↓
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELEFT * FROM account' at line 1
これってaccountってテーブルがないってことでいいんだよな?
0639nobodyさん
2007/04/08(日) 21:25:42ID:???0640nobodyさん
2007/04/08(日) 21:26:29ID:???0641nobodyさん
2007/04/08(日) 21:26:32ID:???0642nobodyさん
2007/04/08(日) 21:28:28ID:???SEを左に
0643nobodyさん
2007/04/08(日) 21:29:09ID:???0644nobodyさん
2007/04/08(日) 22:22:06ID:OS1trKFTAPIやPEAE等ありましたら情報頂けると嬉しいです。
現在は下記PEARで四苦八苦しています。
下記 Net_GeoIP という pearパッケージをインストールしたのですが、エラーが出ます。
ttp://www.go-pear.org/manual/ja/package.networking.net-geoip.php
pearインストールコマンド
pear install -f Net_GeoIP
でbetaのバージョンを入れています。
ttp://www.maxmind.com/app/geoip_country
からBinary Formatの「GeoIP.dat.gz」をダウンロードした物を、解凍して置いてあります。
ttp://www.go-pear.org/manual/ja/package.networking.net-geoip.lookupcountrycode.php
のサンプルソースを実行すると。
Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /usr/share/php4-pear/Net/GeoIP.php on line 128
とpear内でのエラーが出ます。
どのように対処したらいいのでしょうか。
0646nobodyさん
2007/04/08(日) 22:44:17ID:zw0Bo/cU0648nobodyさん
2007/04/08(日) 22:46:15ID:???The PHP Extension and Application Repository
プログラミング言語PHP用のライブラリ集。色々な拡張モジュールやアプリケーションがPEARに登録されており、ネットワーク経由で取得・利用することができる。PerlでいうCPANにあたる。
「ぴあー」だと思われていたが最近「ぺあー」だと判明
0649nobodyさん
2007/04/08(日) 22:48:29ID:???0650nobodyさん
2007/04/08(日) 22:49:56ID:???0651nobodyさん
2007/04/08(日) 23:05:24ID:???とりあえずphpのバージョンを書いて。
大方php5で実行してるから、php4のOO満載のpearがエラー出してるんだと思うけど。
0652nobodyさん
2007/04/08(日) 23:09:51ID:OS1trKFTPHP Version 4.4.4
です。
php4用に書かれていないんでしょうか・・。
0653nobodyさん
2007/04/08(日) 23:24:30ID:???0654nobodyさん
2007/04/09(月) 00:02:37ID:???md5でいいの?
0655nobodyさん
2007/04/09(月) 00:02:43ID:???ファイル名を正規表現でいじるならはじめからreaddirのなかでpreg_matchする→opendir
簡単なパターンマッチ→glob
なのかなあと。こんなかんじ?
0656nobodyさん
2007/04/09(月) 00:22:46ID:AitdzCc40658nobodyさん
2007/04/09(月) 00:41:33ID:???つーか、PHPでWebサイト作るのに、正規表現使うほど複雑なファイル構造は登場しないし。
時々せいぜい出てきてもglob($dir.'/*')か、glob($dir.'/*.ext')くらいだな。
ごちゃごちゃしたデータは全部DBに入れた方が効率的。
0659nobodyさん
2007/04/09(月) 00:41:52ID:???の半角です、すみません
0661nobodyさん
2007/04/09(月) 01:01:31ID:???<head>
<title></title>
</head>
<body>
<?
echo $_SERVER['HTTP_USER_AGENT'];
?>
</body>
</html>
これにアクセスするとソースが
Array
(
)
<hr />
となります
正直わけわかりませんorz
どなたか助けてください・・・
0662661
2007/04/09(月) 01:03:13ID:???専ブラの誤爆です。しつれいしました
0663661
2007/04/09(月) 01:03:55ID:AitdzCc4これってPHP関係ないのですか?
0664nobodyさん
2007/04/09(月) 01:05:42ID:???PHPをもう一度インストールしなおしてもなるなら質問してみろ。
※初回にIDをだして質問しましょう
0665nobodyさん
2007/04/09(月) 01:11:29ID:AitdzCc4すんません
Windowsなのでインストールではなく上書きしました。
しかし、直りません。
ブラウザも特に設定をいじっていません。
0666nobodyさん
2007/04/09(月) 01:13:12ID:???あとブラウザはなにつかってんの?
0667nobodyさん
2007/04/09(月) 01:14:09ID:AitdzCc4全部削除して上書きしました。
ブラウザはIE6.0です。
0668nobodyさん
2007/04/09(月) 01:18:49ID:AitdzCc4<html>
<head>
<title></title>
</head>
<body>
<?
echo $_SERVER['HTTP_USER_AGENT'];
?>
</body>
</html>
にアクセスしてると思いきや、
Array
(
)
<hr />
が出力される別の.phpにアクセスしていましたorz
0669nobodyさん
2007/04/09(月) 01:22:26ID:???0670nobodyさん
2007/04/09(月) 01:22:26ID:???\(.\ ノ
0671nobodyさん
2007/04/09(月) 01:40:10ID:xbEWIqwPブラウザに?????と表示されてしまうのですが、
これはphp.intの設定に間違いがあるのでしょうか、
それとも、Apacheのほうでしょうか?
0672nobodyさん
2007/04/09(月) 01:46:00ID:???0674nobodyさん
2007/04/09(月) 02:04:28ID:xbEWIqwPと思ったら次は、mysqlが使えなくなった・・・
0676nobodyさん
2007/04/09(月) 02:30:23ID:xbEWIqwPphp.intの;extension=php_mysql.dllの「;」を外すだけでいいんですよね?
Apacheを再起動してphpinfoで確認しても、
mysqlの情報がでてきません。
おかしいな・・・php.intを設定し直すまでは、
mysqlの情報出てたんですけど。
0677sage
2007/04/09(月) 02:42:16ID:ukAGIvQQ0678nobodyさん
2007/04/09(月) 02:56:36ID:xbEWIqwPおさがわせして申し訳ございませんでしたwww
0679nobodyさん
2007/04/09(月) 03:01:20ID:???0680nobodyさん
2007/04/09(月) 03:09:37ID:xbEWIqwPO型・・・
0681nobodyさん
2007/04/09(月) 03:11:39ID:Lr1gb1O7◎マル秘!総合サイト! m(__)m《どろろ》m(__)m
超人気!完全決定版です!ホスト掲示板・風俗掲示板お水掲示板・総合掲示板
ブラックOK!必殺金融屋!超激安噂の車屋さん☆
このサイトを知らない者は必ず損します(--;)!!
0682nobodyさん
2007/04/09(月) 03:40:07ID:???0683nobodyさん
2007/04/09(月) 03:47:43ID:???0684nobodyさん
2007/04/09(月) 04:01:04ID:???0685nobodyさん
2007/04/09(月) 04:20:52ID:vh2gxFaj$elemA[0]="りんご";
$elemA[1]=0.23;
$elemB[0]="みかん";
$elemB[1]=0.21;
$elemC[0]="ばなな";
$elemC[1]=0.11;
$array[0]=$elemA;
$array[1]=$elemB;
$array[2]=$elemC;
とされた$arrayを各要素の2つ目の要素の数字でソートしたいのです。
関数sort()はこういう使い方を想定して無いみたいなので困っています。
こういう場合どうすればいいのでしょうか?
0686nobodyさん
2007/04/09(月) 04:26:35ID:???0687nobodyさん
2007/04/09(月) 04:49:00ID:xbEWIqwP0688nobodyさん
2007/04/09(月) 05:24:42ID:kaHzWtZFPHPでSmartyが使いたくてダウンロードして特定のディレクトリにコピーした後、
php.iniのinclude_pathにそのディレクトリへのパスを設定。
んでrequire_once("Smarty.class.php");ってやるとSmarty.class.phpが見つからないって言われる。
見たところパスはちゃんと設定されてて、反映もされてるし、Smarty.class.phpもある。
Apacheはちゃんと再起動したし、なんでエラー?みたいな。
ちなみにSmartyだけじゃなくて他のファイルも同じような状況。
カレントディレクトリとかは普通に読み込めるんだけど、/usr/local/...とかになると無理。
前はApacheもPHPもソースをコンパイルして入れててその時はちゃんと動いてたんだけど、
パッケージに入れ替えてから動かなくなった・・・。
これって何が原因が原因なのかわかる人いる?
0689nobodyさん
2007/04/09(月) 05:30:23ID:kaHzWtZF環境はFedora6、Apache2.2、PHP5
0690nobodyさん
2007/04/09(月) 06:32:22ID:???0691nobodyさん
2007/04/09(月) 07:21:43ID:???0692nobodyさん
2007/04/09(月) 07:55:44ID:???のとき
foreach($array as $key=>$value){
echo $key;
}
で、「ABX」を表示できるけど、
echo $array['ABX']がそのままテストと表示されるように
ABXを表示できないの?
0693nobodyさん
2007/04/09(月) 08:14:03ID:???0694nobodyさん
2007/04/09(月) 08:18:52ID:???「テスト」の部分が空白のとき
array_flipなら []=>ABXになるけど
直接echoにできないね
0695644
2007/04/09(月) 08:34:27ID:WcujzhhQ自己解決しました。
なんとか複数のIPを連続的に国判別する方法が見つかりました。
お騒がせいたしました。
0697nobodyさん
2007/04/09(月) 10:37:50ID:iVxz/LH1最初パーミッションかと思ったんだけど、エラーにはパーミッションのエラーは出ててなくて、
ただファイルが見つからないっていう表示がでるだけ。
>>696
phpinfo()見る限りでは/etc/php.iniを読みにいってるようになってる。
get_include_path()で設定されてるパスを調べてみたら設定が反映されてるみたいだからちゃんと機能はしてると思う。
ただなぜか読み込めない。
なんだこれ。orz
0698nobodyさん
2007/04/09(月) 10:41:36ID:???Smarty って現在バージョンは、インストール直後、スクリプトファイルは、Smarty/libs/*phpにあるので
そこはチェックした?
0699nobodyさん
2007/04/09(月) 11:07:06ID:SC5xLpVK普通に hoge.php?value=+ とやっても取得できません。やはりエンコードすべきなのでしょうか?
0700nobodyさん
2007/04/09(月) 11:15:57ID:???そういう問題ではなくて、そもそも+を値として扱うというのが不正規
RFC2396の2.2.Reserved Charactersを見ましょう。
+は、あなたがやってるuriの?、=と同等の扱いです
0701nobodyさん
2007/04/09(月) 11:18:43ID:SC5xLpVKありがとうございます。
具体的に+を値として認識させてGETで取得するにはどのような方法があるのでしょうか?
0702nobodyさん
2007/04/09(月) 11:20:00ID:SC5xLpVKありがとうございます。
具体的に+を値として認識させてGETで取得するにはどのような方法があるのでしょうか?
0703nobodyさん
2007/04/09(月) 11:22:39ID:???・・・どうしてもしたいなら、encodeすればいい。
0704nobodyさん
2007/04/09(月) 11:27:53ID:SC5xLpVKありがとうございます。
URIから抜く際、たとえばPathが /hoge/appl/itemの場合 スラッシュ(/)の3番目以降の値(item)を取り出すにはどうすればいいのでしょうか?
0705nobodyさん
2007/04/09(月) 11:31:43ID:???0707nobodyさん
2007/04/09(月) 12:11:27ID:???漏れてもいいような情報ならmd5でもいいんじゃないかね。
0708nobodyさん
2007/04/09(月) 12:21:35ID:4ZyIPEhaチェック済みです。
yum install php-smartyでパッケージでいれると
/usr/share/Smatyにインスコされるみたいなんですが、そこにパスを通しても読めないorz
というかSmatyじゃなくてもPEARとかでもなんでもそんなかんじです。
これはもうOSごと最インスコかな、、、
0709nobodyさん
2007/04/09(月) 12:21:42ID:???0710nobodyさん
2007/04/09(月) 12:35:15ID:???×Smaty
○Smarty
のタイポと思うが、それはそれとしてOSごと再インスコっていうのはヤケクソみたいだから
やめようぜw
とりあえず
ini_set ('include_path','パス名:パス名');
で明示的に指定しても駄目なの?
なんかすごくプリミティブなところで確認ミスしてる気がするぞなんか。
0711nobodyさん
2007/04/09(月) 12:41:08ID:???ソースコンパイルする技能があるなら、とりあえずそれでやるべきだよね。
パッケージインストールは、カーネルとか、そういうのに限るべきだと思う。
問題の切り分けが出来なくなるわw
0712nobodyさん
2007/04/09(月) 12:55:42ID:W+dKCXXH<
>
&
"
'
これらの文字以外に正規表現などで使われるメタ文字も無害化するべきでしょうか?
0713nobodyさん
2007/04/09(月) 12:56:11ID:???0715nobodyさん
2007/04/09(月) 13:05:04ID:???投稿→確認画面→投稿完了
をするときにうまいこと分ける方法ないかな・・・
皆どんな感じでやってる?
値無し=投稿
$_POSTのみ=確認画面で$_POSTをセッションに
$_POST+$_SESSION=投稿完了
これがベストかな?
0716nobodyさん
2007/04/09(月) 13:10:28ID:W+dKCXXH作法を学習するために独自で作りたいと思ってます。
他の言語にも作法を適用したいためなんですが無駄にやりすぎですかね?
0718nobodyさん
2007/04/09(月) 13:16:01ID:???だめじゃないかな。
ブラウザで投稿画面に戻ったときに既にセッションに値入ってるもん。
それだと、投稿画面に戻る→修正して投稿したときに確認が画面がスルーされて完了しちゃうよ。
formのhidden値で区分けるべき。あと、上に書かれてる$_FILEの扱いも気をつけてね。
0719nobodyさん
2007/04/09(月) 13:23:34ID:VhSqsDLrIPアドレス:ポート番号で接続を試行して、応答が返ってきたらtrueを返す。
みたいな都合のいい関数ありませんでしょうか?
0720nobodyさん
2007/04/09(月) 13:31:52ID:???PHP5ならstream_socket_clientで一発
4ならphp socket ping あたりでググレ。ping系スクリプトが転がってる。
0721nobodyさん
2007/04/09(月) 13:48:05ID:VhSqsDLrpingが通らなかったので、pingを使わない方法を探していましたが、
これでいけるようです!どうもありがとうございました。
0724nobodyさん
2007/04/09(月) 14:10:56ID:???PHPなんかだと組み込みの高機能な関数が多すぎる。
0725nobodyさん
2007/04/09(月) 14:11:29ID:???0726nobodyさん
2007/04/09(月) 14:24:21ID:kaHzWtZFレスサンクスです。
試してみたけどやっぱりダメだた・・・。
状況としてはこれにかなり近い感じ。
[PHP-users 30825] Pear DBでのエラー
http://ml.php.gr.jp/pipermail/php-users/2006-November/031342.html
0727nobodyさん
2007/04/09(月) 14:33:36ID:W+dKCXXHhtmlに出力するときはhtmlspecialcharsで対象となる文字のみ対策しておけばXXS対策になるんでしょうか?
0729nobodyさん
2007/04/09(月) 14:57:00ID:kaHzWtZFSmarty以外も読めんですorz
ファイルの種類というよりもむしろ、ディレクトリの場所によって読めるか読めないかみたいな感じで、
カレントディレクトリとかドキュメントルート以下(/var/www/html/〜〜)の中にあるファイルなら普通に読めるんですけど、
/usr/〜〜とかそれ以外の場所になるとパスが通ってても読めない状況です。
0731nobodyさん
2007/04/09(月) 15:05:50ID:???クライアントからの入力データだと思うもの全てをhtmlspecialcharsに突っ込んでも安全とは限らない。
本質的にXSSはプログラマがクライアントからの入力全てに気を配らないと起こり得る。
環境変数もどれが任意でどれがそうでないかを全て把握してる人はそういない。
よって、HTML出力を必要としない部分全てをhtmlspecialcharsに突っ込むのが安全。
尤も、タグの属性値なんかに突っ込むならそれでも不十分。そんな設計は見直すべきだが。
0732nobodyさん
2007/04/09(月) 15:09:03ID:kaHzWtZFセーフモードっていうのがよくわかってないんですが、
php.iniを見てみたら
safe_mode = Off
safe_mode_gid = Off
safe_mode_include_dir =
safe_mode_exec_dir =
safe_mode_allowed_env_vars = PHP_
safe_mode_protected_env_vars = LD_LIBRARY_PATH
みたいになってます。
0734nobodyさん
2007/04/09(月) 15:28:35ID:kaHzWtZFああああああああああああああ!
# getenforce
Permissive
鬱すぎるorz
0736nobodyさん
2007/04/09(月) 15:51:53ID:kaHzWtZFseLinuxは無効になってたっぽいです。
もうほんとなにが悪いんだか・・・。
0737nobodyさん
2007/04/09(月) 16:34:56ID:R/Jf3MPV最近よく私が管理しているWikiにスパムが飛んできて困っているのですが、
$_POST['msg']に入っている本文から英字だけ抜き出す場合どうすればいいのでしょうか。
それを使って英字の文字数によりスパム弾きをしたいと思っているのですが…
0738nobodyさん
2007/04/09(月) 16:37:16ID:???0739nobodyさん
2007/04/09(月) 16:39:28ID:R/Jf3MPVeregを使うという所までは思いついたものの、
ループ処理で文字を次々ヒットさせる際の処理が思い浮かばず…
0740nobodyさん
2007/04/09(月) 16:41:23ID:???ふぬああああああああああああああああああ
[a-z]
}
うんこ。
0741nobodyさん
2007/04/09(月) 16:48:59ID:???答える方も質問してる方も時間の節約になる
エスパーが登場すればこの限りではないが
0742nobodyさん
2007/04/09(月) 16:54:25ID:???0743nobodyさん
2007/04/09(月) 17:03:39ID:???0744nobodyさん
2007/04/09(月) 17:13:48ID:???で、あえて聞くけど
require_once(フルパス);
もエラーになるの?
あるいは
echo file_exsists(フルパス);
はtrue返るの?
0745nobodyさん
2007/04/09(月) 17:15:02ID:???0746nobodyさん
2007/04/09(月) 17:16:23ID:R/Jf3MPV有難う御座います。
参考にしながらこんなのを組んでみました…
$msg = $_POST['msg'];
$eng_num = 0;
$i = 0;
//コメントスパム対策
while($i<=strlen($msg)) {
$i++;
$num = substr($msg,$i,1);
if (ereg('[a-zA-Z0-9]',$num)) { $eng_num++; }
}
if (strlen($eng_num)>50) { die; }
…が正しく実行されないのは置いといて、
大体こんな感じでいいのでしょうか。
0747nobodyさん
2007/04/09(月) 17:26:22ID:???$msg = $_POST['msg'];
$eng_num = 0;
$i = 0;
while( $char = ord($msg[$i++])) !=0) {
if (ereg('[a-zA-Z0-9]',$char)) { $eng_num++;}
if($eng_num > 50 ) {die('invalid post');}
}
0749nobodyさん
2007/04/09(月) 17:33:38ID:R/Jf3MPV有り難う御座います!
バイト後にやってみます。
0750nobodyさん
2007/04/09(月) 17:34:07ID:???0751nobodyさん
2007/04/09(月) 17:54:18ID:???無駄なものってなんですか?
preg_match_all('/\w/',$_POST,$c);
if (count($c[0]) > 50) die();
で問題が出る?
0752nobodyさん
2007/04/09(月) 20:35:33ID:???0753nobodyさん
2007/04/09(月) 20:43:57ID:???spycに添付されていたspyc.ymlで比較してみたんだけど、違うようです。
あと、syckは解析できなかった時に、"unknown type"を返しますよね?
なんじゃこりゃ?
0754nobodyさん
2007/04/09(月) 20:50:38ID:W+dKCXXH$sqlのなかにフィールド名とテーブル名が入った変数を入れると動きません。
$sqlの中に変数ではなくて、フィールド名とテーブル名を直接書けば正常に動きました。
フィールド名とテーブル名を変数に格納して、$sqlにまぜたいのですが
うまくいきません。
以下、問題となるコードを抜粋しました。
$field_name = "id, name";
$table = "table1";
$sql = "SELECT $field_name FROM $table_name ORDER BY id";
$res = mysql_query($sql,$con) or die("データを抽出できません");
PHP4.4.6とMySQL4.1を使用してます。
どなたかご教授お願いいたします。
0756nobodyさん
2007/04/09(月) 20:59:38ID:???$table = "table1";
$sql = "SELECT $field_name FROM $table_name ORDER BY id";
$table_nameなのか$tableなのか
0757nobodyさん
2007/04/09(月) 21:16:25ID:???タイム計測したらechoの方が二倍近く速かったんだが
0758nobodyさん
2007/04/09(月) 21:26:31ID:???変数を"でくくるのはこれで合ってますか?
$sql = "SELECT \"$field_name\" FROM \"$table_name\" ORDER BY id"
試してみましたが動きませんでした。
>>755
すいません、$tableは$table_nameの打ち間違えです。
echo で$sqlを出力したらでてきた内容です。
SELECT id,name, FROM table1 ORDER BY id
変数の中身を直接書くと動くので、SQL文自体には間違いはないと思ってますが
何か勘違いしている部分等ございましたらご指摘ください。
0759nobodyさん
2007/04/09(月) 21:29:13ID:Hw87SVIBphp -f test.php
とコマンドラインから呼び出したのですが何も表示されません。
何故でしょうか?
test.php
<?
print "aaaaaaaaa";
?>
0760nobodyさん
2007/04/09(月) 21:30:30ID:???SELECT id,name, FROM
の抽出するフィールドリストの最後にカンマついてちゃだめ
てかmysql_error使え
0762nobodyさん
2007/04/09(月) 21:54:49ID:LuOmRtTQ------------------------------------------------------
$_POST['name1'] = htmlspecialchars($_POST['name1']); //1回目だけ特殊記号変換
echo $_POST['name1'];
echo $_POST['name2'];
$form = "<form action=\"${_SERVER['PHP_SELF']}\" method=\"POST\">
<input type=text name=name1>
<input type=hidden name=name2 value=\"${_POST['name1']}\">
<input type=submit value=\"go\">
</form>
";
echo $form;
------------------------------------------------------
一度受け取った$_POST の中身をhtmlspecialchars で&gt; に変換して
もう一度送っているだけなんだが。
(俺の頭の中では)$_POST['name2']の中身は&gt; 変換済みになっているわけだが、
二回目を受け取ったら(もう一度送ったら)、自動的に元に戻っちゃうわけ?
助言をお願いします。
0763nobodyさん
2007/04/09(月) 22:03:07ID:???意味不明
>$_POST['name2']の中身は&gt; 変換済みになっているわけだが、
意味不明
>二回目を受け取ったら(もう一度送ったら)、自動的に元に戻っちゃうわけ?
意味不明
返れ
0764nobodyさん
2007/04/09(月) 22:03:45ID:???$fromとかわけわかんないんだけどさ
0765nobodyさん
2007/04/09(月) 22:03:49ID:???Cookieに値は入れないが概念的にそうとも言える。
>>759
エラーも表示されないってことなら、同じファイル名の別のtest.phpだったとか。
>>762
変換というよりエスケープ。
$form = "<form action=\"${_SERVER
ここで「"」を「\"」にエスケープしてるけど、HTMLでは元に戻ってるでしょ?
0766nobodyさん
2007/04/09(月) 22:06:48ID:???まあ誰もがハマる道かもしれんな
元に戻るんじゃなく、送信されるhiddenの値が
HTMLエスケープされていない文字列ってだけだ
0769762
2007/04/09(月) 22:17:16ID:LuOmRtTQごめん、あれだ、マジでこんがらがっている
かりに<img>を入れると<img>に変換されて
<input type=hidden name=name2 value="<img>">
上のソースになるわけだけど、
これをそのまま送るとなんで<img>になっちゃんだ?
0770nobodyさん
2007/04/09(月) 22:22:09ID:6Xdj6yAC普通に考えて<一回目>は
&lt;img&gt;
になってるだろ
0772499
2007/04/09(月) 22:24:02ID:???なんか検索して一見目にここから最新のfixもってってちょって書いてあったんで落としてビルドしたけどやっぱいり同じエラーで止まったっす
英語読めてないだけかもしれませんが
0773762
2007/04/09(月) 22:24:26ID:LuOmRtTQ<input type=hidden name=name2 value="&lt;img&gt;">
0775nobodyさん
2007/04/09(月) 22:27:20ID:AitdzCc4質問の内容がまじで意味不明だが
ページを開くと一度だけプログラムが実行され
実行終了後には変数が全て空っぽになる(一部例外は除く
0777nobodyさん
2007/04/09(月) 22:33:49ID:AitdzCc4$post = $_POST;
"SELECT * FROM test WHERE id='$post'"
より
"SELECT * FROM test WHERE id='"+$post+"'"
のほうがいいんですかね?
$postの値が「' 適当なSQL文'」だったらまずいですよね
もしその場合は下記の方も同じ動作なのでしょうか?
0778nobodyさん
2007/04/09(月) 22:38:10ID:???0779nobodyさん
2007/04/09(月) 22:41:03ID:???そんなこと気にするくらいなら
適当なDBインターフェースを利用して
プレースフォルダを使えばいい
pear::DB の場合
$params = array($post);
$sql = "SELECT * FROM test WHEAR id=?";
$ret = $conn->query($sql, $params);
0780nobodyさん
2007/04/09(月) 22:44:42ID:???+演算子じゃインジェクションの前にとんでもないことになるけど。
クォートするかPDOStatement->bindValue()でも使おうぜ…。
0781nobodyさん
2007/04/09(月) 22:45:45ID:???「セッションを使うためにsidをcookieに持たせる」ってのはデフォルトの挙動であって
use_trans_sidとかでGETで送らせてやればCookie使えなくてもセッション自体は使えるよ
>>769
ソースに書かれた文字列の評価ってプロセスがあるんだよ
何らかの文字列を > そのものとして扱えないと > を入れる方法がないでしょ?
0784nobodyさん
2007/04/09(月) 23:53:47ID:R/Jf3MPV完璧でした。どうもありがとう御座いました!
0785nobodyさん
2007/04/09(月) 23:59:00ID:???やりたいことはクッキーの削除とDB(トランザクションの処理はしています)への書き込みで、重複登録を防ぐ為にクッキーが無ければDBへ書き込まないようにしています。
普通に処理をするPGへ遷移する場合はクッキーも削除され、DBへ1件書き込まれるだけですが、F5を連打するとDBに1件書き込まれますがクッキーが消えません。。
また、処理の最後で$_COOKIEにarrayを入れるとクッキーとDBが削除及び登録されたりされなかったりします。
あと、setcookieで削除する所で戻り値がとれるまでループさせてやると、連打した数だけDBに登録されてしまいます。クッキーは削除されています。
何かヒントみたいなもの頂けると嬉しいです。。
お手数お掛しますがよろしくお願い致します。
0786785
2007/04/10(火) 00:01:49ID:???環境はPHP4.3.0 apache2 windowsXPです。
よろしくお願い致します。。
0787nobodyさん
2007/04/10(火) 00:53:06ID:LOxXZREL切る部分にURLやらメールアドレスやら携帯絵文字が入らないようにして、
2バイト文字の区切りで切れるようにして、
なんてやってると正規表現やら条件分岐使いまくりなんだけど
他でもそういう風にやってるのかな?高々文区切るだけで
もう規定数の文字数で問答無用にぶった切ってもいいような気がしてきた
0788nobodyさん
2007/04/10(火) 01:28:44ID:???>もう規定数の文字数で問答無用にぶった切ってもいいような気がしてきた
なんでこうしないの?
見た目で考えても 「>>続きを見る」 の方が視認性高いじゃん
0789nobodyさん
2007/04/10(火) 01:46:43ID:???エロゲスレに誤爆した
確かマルチバイト系の関数で指定文字で切ってくれる関数があったぞ
よく覚えてないけど省略するときの文字も指定できたはず
0790nobodyさん
2007/04/10(火) 01:51:40ID:???foreachでまわしてたので自動的にカンマがついてたのに気づきませんでした。
現在は問題なく動きます。ありがとうございます。
0792nobodyさん
2007/04/10(火) 02:18:52ID:???重複登録を防ぎたいなら、INSERTで失敗させるようにするとか、トランザクション使うとかすればいい。
setcookieでクッキーを削除したつもりでも、ブラウザがそのレスポンスを受け取るまでは何度でもクッキー送ってくるよ。
クッキーは排他処理とかに使える道具じゃない。
0793nobodyさん
2007/04/10(火) 02:26:58ID:4NI9RXKe?
0795nobodyさん
2007/04/10(火) 04:07:44ID:???0797nobodyさん
2007/04/10(火) 08:40:15ID:???>>789
mb_strimwidth だね。(誰かこの関数名の単語の区切りを教えて)
でもメールアドレスの途中で切らないとかそういった機能はないから
たとえば「split系関数で切りたい文字列と切りたくない文字列が交互に並ぶ配列にして
ループで順に連結して規定バイト数を超えたかどうか見つつ
添え字 % 2 の戻り値でmb_strimwidth をかけるかどうか判断する」といったロジックが必要。
0798nobodyさん
2007/04/10(火) 08:46:43ID:???こういう場合は、
if(処理終了) {header("Location:....");}でOK。
強制的に飛ばす(リダイレクトする)のがいい。
0799nobodyさん
2007/04/10(火) 08:56:56ID:???>mb_strimwidth だね。(誰かこの関数名の単語の区切りを教えて)
エス トリム ウィドゥス かな?
で本題
mb_strimwidth(接続文字空)でいったん切ってから、正規表現で末尾の連続する半角英数記号を削除
で どう?
0800nobodyさん
2007/04/10(火) 08:58:02ID:???そんなに厳密じゃなくてもいいわけでしょ?
「ひらがながあれば、ある範囲で切る」だけを唯一の区切り条件にすればいいじゃん。
漢文サイトじゃないだろうから。
0803nobodyさん
2007/04/10(火) 10:00:04ID:???--with-imapにソースを解凍してmakeしたディレクトリ指定したらコンパイルまで通りました
パスが違うのかコピーするファイルが足りないのか?
0804nobodyさん
2007/04/10(火) 10:33:14ID:Y95uap3IPearDBクラスを、自分が作ったクラスの中で使うとき、
extendsするのか、ただ単に使う場所でinclude_once('DB.php')すればいいのか
わかりません。
どちらにすればいいのでしょうか?
0805nobodyさん
2007/04/10(火) 10:58:06ID:???0806nobodyさん
2007/04/10(火) 11:06:49ID:Y95uap3I0807nobodyさん
2007/04/10(火) 11:34:59ID:???0808虚弱PHP
2007/04/10(火) 11:35:34ID:???用途によるとしか…。
>>805は言葉は悪いけど正論だと思うなぁ。
オブジェクト指向はJavaでやるのが一番だと思う。
いや、SmalltalkとかRubyの方がいいのかもしれんけど、
俺はまともにやったことないからわからん。
0809nobodyさん
2007/04/10(火) 11:35:59ID:???0810虚弱PHP
2007/04/10(火) 11:40:23ID:???なんか根本的に間違っている気がする。
synchronizedってスレッドの処理だから今回のような件だと関係ないし。
俺だったら、CookieのかわりにSession変数使う。
0811虚弱PHP
2007/04/10(火) 11:45:46ID:???DBによってエスケープ方法が違うけど、
mysqlのネイティブ関数としてはmysql_real_escape_stringとかがある。
PDOならプリペアドステートメント使えば解決。
0812nobodyさん
2007/04/10(火) 12:05:49ID:???エスケープしとくべきですか?
0813nobodyさん
2007/04/10(火) 12:22:30ID:FUjP3ASn0814nobodyさん
2007/04/10(火) 12:27:36ID:FUjP3ASn0815虚弱PHP
2007/04/10(火) 12:59:06ID:???"決められたUPDATE文"にDBから引っ張ってきた値が入っている場合は、
セカンドオーダーSQLインジェクションが発生する恐れがあるので必ずエスケープ。
平文でコードに直書きしている場合は問題ない…
けれども、人間は間違いをおかすものなので変数は全部エスケープが正解。
0817nobodyさん
2007/04/10(火) 13:04:00ID:???そんなものです
>>814
ないと思う
ただし、右辺値で使う場合は警告がでる
$foo = $this->bar;
とかね
0818nobodyさん
2007/04/10(火) 14:07:55ID:???ttp://labs.cybozu.co.jp/cbl_activerecord/
このO/Rマッピングライブラリを使って、DBから取得してオブジェクトに入れるところまではできたのですが、
取得した値を使いたい場合にいちいち
$var['name'] = $todo->name;
$var['title'] = $todo->title;
と指定するのではなく、まとめて$varの配列に置き換えたいのですが
どうすれば良いのでしょうか?
0819nobodyさん
2007/04/10(火) 14:15:35ID:???何のためのO/Rマッパだよ、、、そのまま使えばといいんじゃないかと
0820nobodyさん
2007/04/10(火) 14:16:20ID:???hogeFunction() or die ('hogeFunction失敗');
という感じでいいのでしょうか?
それとも
if (hogeFunction()) {
} else {
die('失敗');
}
とかくのがベターなんでしょうか?
0821nobodyさん
2007/04/10(火) 14:19:38ID:???<?php
session_start();
echo 'Welcome to page #1';
$_SESSION['favcolor'] = 'green';
echo '<br /><a href="page2.php">page 2</a>';
?>
を実行すると
hrefに?PHPSESSID=xxxx...が追加されるのはなぜ?
クッキーの読み込みをしていないのになぜブラウザの設定が分かるの?
(ブラウザをCOOKIE OKにしておくと?PHPSESSID=xxxx...は追加されない)
つか 初めての接続でブラウザのCOOKIE設定を知る方法があるの?
0823nobodyさん
2007/04/10(火) 14:28:49ID:mS0KEdcp!
0825818
2007/04/10(火) 14:49:13ID:???0826820
2007/04/10(火) 15:20:17ID:???例外ってcatchとかtryっていうやつですよね?
使ったことないのでよくわからないですが、
頑張って使ってみます。
0827nobodyさん
2007/04/10(火) 15:30:11ID:???http://pc11.2ch.net/test/read.cgi/php/1017456911/974
0828nobodyさん
2007/04/10(火) 15:54:27ID:???0829nobodyさん
2007/04/10(火) 16:07:31ID:qz4cFwH4リクエストパラメータはSJISで渡ってきますよね?
1)一括してEUC-JP変換
2)処理
3)一括してSJISに変換
4)表示
とやるか、
処理する段階で逐次変換処理を入れるか、
どちらが適当でしょうか?
0830nobodyさん
2007/04/10(火) 16:08:40ID:S/LWkosg0831830
2007/04/10(火) 16:13:03ID:???0834nobodyさん
2007/04/10(火) 17:48:44ID:???0835nobodyさん
2007/04/10(火) 18:08:15ID:???0836nobodyさん
2007/04/10(火) 18:26:31ID:GbKKaQIE0837nobodyさん
2007/04/10(火) 18:28:26ID:???0838nobodyさん
2007/04/10(火) 18:52:01ID:???(スクリプトが全て終了するのに最長3分ほどかかります)
別ファイルで時間を記録したテキストを作成して、
そこから現在時刻とひいて5分以上だったら、
アクセスしてきた人に更新してもらおうと思ったのですが、
上記の通り最長3分間ブラウザが無応答状態になるので、迷惑ですよね。
ポップアップで裏でやるなんてのも迷惑ですし、
もっと他にいい方法ありませんでしょうか?
0841nobodyさん
2007/04/10(火) 19:04:30ID:???0842nobodyさん
2007/04/10(火) 19:10:11ID:???おーこんな素晴らしいサービスがあったのですね。
知りませんでした。
これで解決しそうです。
本当にどうもありがとうございました。
0843nobodyさん
2007/04/10(火) 19:19:17ID:???4丁目に引っ越してきたPHP君。
大いなる進化をとげるたびにのファンを大切にしないところが玉に傷。
【Perl】
CGI全盛期にもっとも活躍した三丁目のPerlさん。
時代とともに年をとるのか、PHPにも活躍の場を与えるえらいひと。
【Java】
いざというとき頼れるJava兄さん。
大きな事件は「いいから俺にまかせてみろ!」と豪腕な構えだ。
【HTML】
すべてはここからはじまった伝説の男HTML。
戦いの場によっては、スーパーサイヤ人の限界を超えたXHTMLに変身して活躍していると噂される。
0844nobodyさん
2007/04/10(火) 19:25:57ID:???,,-‐'": : : : : : : : : : `ヽ
/: : : : : : : ,,__ : : : : : : \
r': ,、,,.-─''"゛ ミ : : : : : : : 'i、
`/ / ミ_ : : : : : : :,、}
i l _,,..-‐^‐-、 `゙i: : : /l.l|
i、}‐-、 ヽ;;/,rェッ;;'" ゙ー' 9iリ!
| ',tテi ヽ='" ゞ t'
| 'i"´| , -、 ヽ-、,,___
| '}、 !,,tu'" ヽ、 ,l: ‐-‐" }: : : : :
} lヽ、__,,,.-‐ヽ /: : : : : : /|: : : : :
,r/ /: : :ヽー‐' ノ: : : : : : : / .|: : : : :
/: \ /: : : : : 丶,, -''_: : : : : : / |: : : : :
/: : : : :ヽ/: : : : : : : ヾ''‐--‐ヽ |: : : : :
/: : : : : : : : : : : : : : : : : : ヽ\: : / |: : : : :
ビップ=デ=ヤレー[Vuip De Yale]
(1955〜 フランス)
0845nobodyさん
2007/04/10(火) 19:57:30ID:daN1ASwgMySQLのバージョンは5.0.22なんだけど、PHP5.1.6のPDOはサポートしてる?
教えてくれ。
0846nobodyさん
2007/04/10(火) 19:58:46ID:???|(a)別のHTMLのフォームからのPOST
↓
+----------------+ 実行 +----------------+
| 親モジュール.php |------->| 子モジュール.php |
+----------------+ +----------------+
↑ |
└−−−−−−−−−−−┘
(b) 親モジュールが生成するHTMLに結果を渡したい
(a)のPOSTで渡ってきたフォームのデータを、親モジュールでたとえば
$user_id = $_POST['USER_ID']
として取って、$user_idをrequire_onceで子モジュールに渡し、子モジュールではDBからuser情報をselectします。
子モジュール内には、HTMLを出力するような処理はなく、単純にDBからのselectのみです。
次に、select結果を変数に入れ、(b)のように親モジュールが生成する
HTML上のフォームに返したいのですが、そもそものフォームへの返し方がわかりません。
希望する処理の流れを整理すると。
(1) 静的なHTMLファイルのフォームから親モジュールにPOST
(2) 親モジュールはPOSTされた情報を使って子モジュールを実行し子モジュール内の変数に結果を代入
(3) 子モジュール内の変数にセットされた結果を親モジュールが生成するHTML内フォーム(HIDDEN属性など)にセット
(4) このタイミングで、親モジュールのHTMLが出力される
という処理をやりたいと思っていますが、
どのような方法を使えばよいか、ヒントだけでもご教示いただきたく。
現状、(2)までは出来ていて、(3)の部分で行き詰まっているところです。
0847846
2007/04/10(火) 19:59:55ID:???>$user_idをrequire_onceで子モジュールに渡し、
は、
$user_idをrequire_onceで実行した子モジュールに渡し、
という意味です。
0848nobodyさん
2007/04/10(火) 20:17:38ID:???ここが意味わかんないです><
0849nobodyさん
2007/04/10(火) 20:20:17ID:???0850虚弱PHP
2007/04/10(火) 20:20:37ID:???なにに躓いているのか分からない…。
俺だったら親がResultオブジェクトを用意して子に渡し、
子はResultオブジェクトに値を設定してリターン。
0851nobodyさん
2007/04/10(火) 20:21:48ID:???普通にDBから取得した値を変数に代入するなりすればいいだけじゃないかと
0852846
2007/04/10(火) 20:22:04ID:???わかりにくくてすみません。
まだPHPを初めて数日なものでして。。。(´・ω・`)
HTMLを生成しないPHPモジュール内の変数の内容を、
別のPHPモジュールが生成するHTMLのフォームに
渡す方法を知りたい、という感じです。
0853nobodyさん
2007/04/10(火) 20:22:43ID:???http://pc11.2ch.net/test/read.cgi/hp/1175593499/319
0855nobodyさん
2007/04/10(火) 20:26:22ID:???requie_onceしているだけならそのままそれが使えます
>>850の言ってるみたいにその小モジュールというのが
オブジェクト群とかでそれに渡しているのならそれを返せば良いだけ
0856846
2007/04/10(火) 20:32:26ID:???アドバイスありがとうございます。
ソースが会社なもので、今手元にありません。
戴いたアドバイスを元に、明日頑張ってみます。
あと、ソースを支障ない範囲に加工して明日はらせていただきます。
0857nobodyさん
2007/04/10(火) 21:38:43ID:???0858nobodyさん
2007/04/10(火) 21:40:29ID:???無駄な心配しなくていいよ846君
0859nobodyさん
2007/04/10(火) 21:42:08ID:???0860846
2007/04/10(火) 21:46:19ID:???0861nobodyさん
2007/04/10(火) 21:47:05ID:???0862nobodyさん
2007/04/10(火) 21:49:02ID:???0863nobodyさん
2007/04/10(火) 21:56:44ID:???0864nobodyさん
2007/04/10(火) 22:06:22ID:???0865846
2007/04/10(火) 22:10:47ID:???すみません。
いえ、パクられるなんてこれっぽっちも思ってません。
ただ、作ってるソースをそのまま貼ったのが会社にバレると、
こんなものでも面倒になるので、ということで。。。
>>860
別に私をカタるのは構いませんが、初心者おちょくるのは楽しいですか?
0866nobodyさん
2007/04/10(火) 22:12:12ID:???0867nobodyさん
2007/04/10(火) 22:16:03ID:???0868846
2007/04/10(火) 22:23:24ID:???トリップってやつを付ければいいんでしょう?
sage進行かと思って、ずっとsageをメル欄に入れてました。
トリップの付け方、勉強してきます。。。。
0869nobodyさん
2007/04/10(火) 22:28:51ID:???0871nobodyさん
2007/04/10(火) 22:36:53ID:???sageは自演隠しのための機能ですw
0872nobodyさん
2007/04/10(火) 22:39:08ID:???0873nobodyさん
2007/04/10(火) 22:41:28ID:NUin5iQlprivate $var;
function __construct($arg) {
$arg = $this->var;
}
function test() {
return $this->var;
}
}
$obj = new Test('hogehoge');
echo $obj->test();
例だとhogehogeを出力したいのですが、出力できません。
どこがおかしいのでしょうか?
0874873
2007/04/10(火) 22:46:54ID:NUin5iQl$arg = $this->var;
ではなくて、
$this->var = $arg;の順ですね。
スレ汚し失礼しました。
0875nobodyさん
2007/04/10(火) 22:47:11ID:???この辺
0876nobodyさん
2007/04/10(火) 23:21:59ID:6hVZtA400877nobodyさん
2007/04/10(火) 23:22:32ID:ywkUcui/0881nobodyさん
2007/04/10(火) 23:38:14ID:6hVZtA40ごめ、普通にスレ間違えた
0882nobodyさん
2007/04/10(火) 23:44:19ID:+1UvK/Faとりあえず整数かどうかの判定をしようと思って
if( is_int($_GET["data"]) == FALSE )
echo"エラー:入力されたデータは整数値ではありません。";
としてみたのですが、何を入力してもエラーが表示されてしまいます
なぜでしょうか?
0883nobodyさん
2007/04/10(火) 23:46:47ID:???0885nobodyさん
2007/04/10(火) 23:48:46ID:+1UvK/Fa例えば3を入力した場合
is_int($_GET["data"])の返す値はTRUEにならないのでしょうか?
0886nobodyさん
2007/04/10(火) 23:52:21ID:???引数が整数値じゃないとfalseじゃないの?
$_POSTの値は数値でも文字列だよ
やるならctype_digit()で
0887nobodyさん
2007/04/10(火) 23:59:59ID:???0888nobodyさん
2007/04/11(水) 00:01:03ID:???echo"エラー:入力されたデータは整数値ではありません。";
}
とかは?
0889nobodyさん
2007/04/11(水) 00:03:29ID:???0890nobodyさん
2007/04/11(水) 00:05:27ID:???>>888
が一番いいんでね?
(int)あたりでキャストしてもphpだと"50abc"でも50と判断しちゃうじゃなかった?
正規表現で判断するのが無難かと。
bool is_int ( mixed var )
与えられた変数が整数かどうかを検査します。
注意: 変数が数値もしくは数値文字列の場合 (フォームからの入力の場合は 常に文字列となります) 、is_numeric() を使用する必要があります。
0891nobodyさん
2007/04/11(水) 00:06:04ID:???0892nobodyさん
2007/04/11(水) 00:07:58ID:???0893nobodyさん
2007/04/11(水) 00:19:57ID:ZmOxrGFo>フォームからの入力の場合は 常に文字列となります
と思いっきりかいてありましたね(´・д・`;)
もう一つ質問です
フォームに無記入で送信した時に「入力されてないよ」というエラーを出したくて
if( is_set($_GET["data"]) == FALSE )
echo"入力されてないよ";
としてみたら、データを無記入で送信したときでなく
フォームのあるページに初めてアクセスした時に既にエラーが表示されてしまいました
無記入送信した時のみに表示するにはどうしたらいいのでしょう?
0894nobodyさん
2007/04/11(水) 00:27:22ID:???if(!is_set($_GET["data"])||$_GET['Submit'])
echo"入力されてないよ";
送信ボタンの名前は何よ?
0895nobodyさん
2007/04/11(水) 00:36:36ID:ZmOxrGFo送信ボタンにもname属性記述できたのですか
0896nobodyさん
2007/04/11(水) 00:53:01ID:???if($_GET["data"] == "") {
echo '変数が用意されてるかどうかと中身がカラかどうかは違うよ';
}
あと、isset()のような気がする。
0897nobodyさん
2007/04/11(水) 01:53:36ID:???emptyは中身
0898nobodyさん
2007/04/11(水) 02:19:55ID:???0899nobodyさん
2007/04/11(水) 02:45:59ID:wpqDaNbU$file = file("bbs.log");
$count = count($file);
$count--;
$file[$count];
という流れが妥当でしょうか?
もっと効率のよいやり方がございましたらご教授お願いいたします。
0900nobodyさん
2007/04/11(水) 03:19:04ID:???0901nobodyさん
2007/04/11(水) 03:39:18ID:???どうすればいいでしょうか?
0903nobodyさん
2007/04/11(水) 03:49:30ID:???テキストボックスのエンターとかで送信されたときに
submit buttonの名前を送らないブラウザがあったと思う
0904nobodyさん
2007/04/11(水) 03:52:55ID:???POST先のページでX軸とY軸で取得できるって皆知ってた?
0905nobodyさん
2007/04/11(水) 04:02:52ID:???これを一文で書く方法ないですか?
$a = explode('/',$str);
echo $a[1];
こういう風にテンポラリ変数を介するのではなく
explode('/',$str)[1]
のように書きたいんです
0906nobodyさん
2007/04/11(水) 04:10:54ID:???こんな関数はじめて使った
0908899
2007/04/11(水) 04:32:56ID:???おお〜それです。まさしく求めていた答えです。
905さんのやりかたに便乗します。発見してレスに残してくれてありがとうございます。
0910nobodyさん
2007/04/11(水) 10:47:54ID:KfKwGm7gdo_action();
}
True/Falseを返すdo_action()をn回行います。
Trueが返ってきた数によって、処理を決めたいのですが、
その処理をどこにどのように書けばいいのでしょうか?
n回全部Trueが返ってきた場合の処理と、
1〜n-1回返ってきた場合の処理と、
n回全部Flaseが返ってきた処理を書きたいです。
0911nobodyさん
2007/04/11(水) 10:59:41ID:???for ($i = 0; $i < $n; $i++) {
if(do_action()) $woofoo++;
}
if($woofoo==$n){
}elseif(0<$woofoo and $woofoo<$n){
elseif($woofoo==0){
}
0912nobodyさん
2007/04/11(水) 11:00:35ID:???for ($i = 0; $i < n; $i++) {
if(do_action()==true){$t++;}
}
if($t==0){
echo "ない";
}elseif($t<5){
echo "ある";
}else{
echo "すぎ";
}
ううう
0913910
2007/04/11(水) 11:14:53ID:KfKwGm7gお二人方どうもありがとうございます。
見事にスクリプトが一緒ですねw
早速使わせていただきます。
0914nobodyさん
2007/04/11(水) 11:30:55ID:???もっとえろい書き方もできるけどロジックに忠実に(バカ正直に)書いたらこんなものになるのが普通
0915nobodyさん
2007/04/11(水) 12:52:10ID:ZybRpRjg今,編集したい月と年を受け取って,その月の各フィールドに対する情報を入れるためのフォームをphpで出力しようとしているのですが,
"SELECT * FROM schedule WHERE DATE_FORMAT('date', '%Y-%m') = " . 年 . "-" . 月;
というクエリを送って,その結果をmysql_fetch_assoc()しても
まだ何もデータを入れていないせいだと思いますが,FALSEを返します.
各フィールドにデータが入っていてもいなくても,その月の日数分だけ処理を実行するにはどうすればよいですか?
0916nobodyさん
2007/04/11(水) 12:56:56ID:???0918nobodyさん
2007/04/11(水) 13:11:45ID:???mysql_fetch_assoc()でfalseが戻ったら
目的の処理をするように
PHPで記述すればいいだろ。
0919nobodyさん
2007/04/11(水) 13:15:29ID:???まだデータはないけど動作確認のために編集処理したいってこと?
0件ならFALSEが返ってきて当然だけど、どう動作してほしいの?
サンプルデータを入れるなり、新規登録フォームを作って入れるなりすりゃいいじゃん
0920915
2007/04/11(水) 13:48:33ID:ZybRpRjg昨日始めて,やっとまともに接続できるようになりました.
要領を得ない質問ですみません.
これは簡易スケジュール帳なんですが,なんでこんな処理をしたいかというと,
既にその日のスケジュールが定義されている場合は,フォームのvalueに既に入ってるスケジュールを表示して,
定義されてない場合でも,その日のスケジュールを編集するためのinputタグを出力したいからなのですが.
0921nobodyさん
2007/04/11(水) 13:50:58ID:???if(mysql_fetch_assoc(なんたら) ==false){echo '<form>.................';}
それだけの話しだろ
0922nobodyさん
2007/04/11(水) 13:53:34ID:???その中で処理の仕方や書き方が分からなかったら質問してくれれば良い。
DBというよりプログラムの問題だよね。卒研かなんかですか?
0923nobodyさん
2007/04/11(水) 13:56:10ID:???言いたい事はわかるが上でみんながいっているようにphpで処理させるだけ。
問題はphpでどこまで出来ているのかということ
0924nobodyさん
2007/04/11(水) 13:58:02ID:???inputタグのvalueプロパティをDB格納値にするか、
空欄にするか、ってことでしょ?
>>922の言うように、
自分のやりたいことをナンバリングしながら
順を追って説明する文章を書けば、
90%くらいはできあがると思われ。
0925nobodyさん
2007/04/11(水) 13:59:05ID:???先にコメントなどを書かせて、
2ページ目でメールで画像を送ってもらう際、本文にIDをつけてDBと認証
投稿完了としたいんですがPHPで実現可能でしょうか?
ここみたいな感じです。
http://megaview.jp
0926nobodyさん
2007/04/11(水) 14:01:36ID:???0928nobodyさん
2007/04/11(水) 14:12:36ID:aJnUgs6a外部に公開しているWebサーバでドキュメントルート以下に置いたスクリプトを
ローカルからのみアクセスできるようにするにはどうすればいいですか?
0929915
2007/04/11(水) 14:15:03ID:ZybRpRjgもうちょっと煮詰めます.卒研とかでは全くなく,サークルのサイトをリニュしろと言われて、、
0930nobodyさん
2007/04/11(水) 14:15:03ID:yUjB1srR0931nobodyさん
2007/04/11(水) 14:15:40ID:???>ローカルからのみ
この意味が不明
ローカルホスト(たとえば127.0.0.1)でのみって言う意味か?
それともプライベートネットワーク経由という意味か?
0933nobodyさん
2007/04/11(水) 14:16:58ID:aJnUgs6aそのWebサーバが動いているPCからのみアクセスできたらと考えています。
0934nobodyさん
2007/04/11(水) 14:19:39ID:???192.168.*
三番目の*に当てはまる数字は環境によって違うからipconfigでデフォルトゲートウェイみて記入しろ
間違っても192.168.*.*と4つ数字はかくなよ
0935nobodyさん
2007/04/11(水) 14:20:49ID:???if($_SERVER["REMOTE_ADDR"]!='127.0.0.1') {die();}
つけときなさい。
httpd/.htaccessの設定で
deny from all
allow from 127.0.0.1
でもいいけど。
0936nobodyさん
2007/04/11(水) 14:23:59ID:???phpに任意のサイト丸ごとを保存させたいのですが
読み込んでも普通はhtmlソースだけですよね?
html内の画像のurlを拾って同じフォルダ構成にしてバイナリ保存して…
ではなくて何かmht的なスマートなものはあるんでしょうか?
0937nobodyさん
2007/04/11(水) 14:28:12ID:???0938925
2007/04/11(水) 14:29:08ID:???変レス有難うございます。
メールで送られたものを自動で取得
これはPHPでできるのでしょうか?
自動がどうやるのか思いつきません。
IDはハッシュ値かなんかで認証しようと考えています。
0941nobodyさん
2007/04/11(水) 14:42:45ID:???0942nobodyさん
2007/04/11(水) 14:43:03ID:???PHP自体の話題じゃないから、.forward スクリプト とか mail alias スクリプトあたりで検索してみて。
ピント来ないのであれば、.forwardやメールaliasでよく使われるprocmailと一緒に検索。
.forward procmail とか。そこらへんからなにをやってるのか糸口をつかもう。
0944925
2007/04/11(水) 14:48:34ID:???ご丁寧にありがとうございますm(_ _)m
サーバーサイドは無知ですので書籍等も探してみたい思います。
>>941
マニュアル人間!
0945925
2007/04/11(水) 14:54:43ID:???しねよカス。
>>943
えっと、ググってみましたがいまいちよくわかりません。
もう少し詳細に教えていただけませんでしょうか?
>>944
偽者やめてください・・・
0946925
2007/04/11(水) 15:06:45ID:???0947nobodyさん
2007/04/11(水) 15:19:11ID:???0948nobodyさん
2007/04/11(水) 15:30:56ID:???0949貴之
2007/04/11(水) 16:07:05ID:1U3tdNyudefine ("ROOT_DIR", realpath( dirname(__FILE__) . '/..' ).'/' );
となると思うのですが、
ルートディレクトリの上を定数にするにはどうしたらいいでしょうか?
0950nobodyさん
2007/04/11(水) 16:11:42ID:???0951nobodyさん
2007/04/11(水) 16:25:39ID:???0952nobodyさん
2007/04/11(水) 16:36:47ID:???0953貴之
2007/04/11(水) 16:50:59ID:1U3tdNyu既にぐぐりました!
ID出すとかきちんとルールは守っていますので。
口が悪くてすみません。
でも教えてください!
0954nobodyさん
2007/04/11(水) 16:52:36ID:???0955nobodyさん
2007/04/11(水) 17:14:42ID:aPlJaTQ1os redhat es4 です
メールから受け取った文字列をPHPで処理してDBに格納するといったことをやりたいのですが、
mb_convert_encodingでのコード変換が上手くいきません。
いろんなサイトを見て回って教科書どおりだと思うんですが、なんで上手くいかないのでしょうか。
サンプルコード
==========================================================
#内部文字コードを表示
echo "internal=".mb_internal_encoding();
#受け取った文字列の文字コードを表示
echo "\n$mail['subject']=".mb_detect_encoding($mail['subject']);
#文字コードを変換
$test = mb_convert_encoding($mail['subject'],mb_internal_encoding(),mb_detect_encoding($mail['subject']));
#変換後の文字列の文字コードを表示
echo "\nafter convert=".mb_detect_encoding($test);
[結果]
internal=EUC-JP ⇒現在の文字コード
Array['subject']=JIS ⇒文字列の文字コード
after convert=SJIS ⇒変換後の文字コード
==========================================================
0956貴之
2007/04/11(水) 17:23:27ID:1U3tdNyu14です。
解答お願いします。
ググるワードでもいいのでお願いします。
ルートディレクトリ 上
くらいしか考えられなかったです。
0957nobodyさん
2007/04/11(水) 17:48:00ID:???define('ROOT_DIR', dirname(dirname(__FILE__)) . '/');
define('ROOT_DIR_UP1', dirname(ROOT_DIR) . '/');
0958nobodyさん
2007/04/11(水) 18:11:00ID:???mb_convert_encodingは正確に指示通りconvert出来るかどうか別だから、
mb_detect_orderをセットして優先順位を決めてからやってみたら?
0959貴之
2007/04/11(水) 18:37:42ID:1U3tdNyuできました!
ありがとう
0960nobodyさん
2007/04/11(水) 19:24:32ID:zI9N6jInAさん,10 Cさん,5 Bさん,-5 Dさん,-10
Dさん,8 Cさん,2 Eさん,-2 Fさん,-4
Bさん,9 Gさん,3 Hさん,-1 Cさん,-11
と、こんな感じで「名前,点数 (タブ区切り) 名前,点数 〜〜」
というデータが書かれたtsvファイルがあります。
これを
1位 Aさん 10点
2位 Bさん 4点
・
・
・
という具合に、順位とそれぞれの点数を全部加算して出力したいのですが、
よい実装方法が浮かびません。
あらかじめtsvファイルから名前だけを抜き出して重複チェックをし、
それを別のファイルに書き出しておく。
tsvファイルを開いてfileで配列にいれ、
foreachで回して、別ファイルに書き出した名前でひっかかった点数だけを抜き出して加算していく。
加算した点数と名前をまた別ファイルに書き出していく。
そして最終的にそれをソートし・・・
ってな具合かなと思ってるんですが、
もっとスマートな方法がありそうなので、質問してみました。
0962nobodyさん
2007/04/11(水) 19:38:44ID:???ファイルを読みながら、名前をキー、点数を値にして配列を作る。
キーが既に存在したら点数を加算するだけ。
最後に配列をソート。
0963nobodyさん
2007/04/11(水) 20:16:06ID:zNlK5rg/http://aaaaaaaa.ddo.jp:8080
などのWMEの配信が
今放送しているかどうかをチェックしたいのですが
どういう方法がいいんでしょうか?
お願いいたします。
0964nobodyさん
2007/04/11(水) 20:17:27ID:???0965960
2007/04/11(水) 20:43:06ID:zI9N6jInレスありがとうございました。
確かにそうなんですけどね><
今回ちょっと使えないんです…
>>962
レスありがとうございました。
今ちょっとやってみたんですが、うまいことできそうです。
名前をキーにするっていう発想がなかったです…
0966nobodyさん
2007/04/11(水) 21:00:20ID:zNlK5rg/incやfopenでもFalseでした…
うーん
0967nobodyさん
2007/04/11(水) 21:01:28ID:???0968960
2007/04/11(水) 21:06:34ID:zI9N6jIn傷口を広げないで下さい><
0969nobodyさん
2007/04/11(水) 22:07:13ID:???<?php
$a = '?';
$b = 'か';
$c = 'し';
$d = 'ま';
$e = 'す';
$f = '週';
$g = '回';
$h = 'H';
$i = '何';
echo $f .$i .$g .$h .$c .$d .$e .$b .$a;
?>
0972nobodyさん
2007/04/11(水) 22:54:58ID:???0973nobodyさん
2007/04/11(水) 23:04:55ID:???12のPHP最適化テクニック
ttp://phpspot.org/blog/archives/2006/11/12php.html
01. staticメソッドが使えるなら使おう。速度は4倍になる
02. __get, __set, __autoload は使わない
03. require_once は重い
04. include, requireで読み込むファイルはフルパスにしよう
05. スクリプト開始時のUNIXタイムを $_SERVER['REQUEST_TIME'] で取れる
06. strncasecmp関数やstrpbrk関数を使えるケースはこれらを使い、正規表現は使わない
07. preg_replaceはstr_replaceより速い、しかし、strtrはpreg_replaceより4倍速い
08. 引数を、単体か配列かで自動判別するようなコードは出来るだけ避ける
09. @ を使ったエラー制御はとても遅い。→ @fputs($fp, "?");
10. $row['id'] は $row[id] より7倍速い
11. PHPのエラーメッセージは重い( noticeとかwarningとか)
12. for ($x=0; $x < count($array); $x) のように、forの中でcountを使うと毎回countが呼ばれるので使わない。
(参考)
PHPの最適化は本当か?
ttp://jigen.aruko.net/archives/433/
PHPのパフォーマンス改善
ttp://selfkleptomaniac.org/archives/45
■最適化にまつわる神話
1. コメントをなくすと速くなる
2. ダブルクォート(”)はシングルクォート(’)より速い
3. 参照渡しの方がコードが速くなる
4. オブジェクトを使う方が速くなる
5. タナリ($a = 1 ? $b = $a : $b = 0;)はif(){}else{より速い
これらは全部嘘です。
0974nobodyさん
2007/04/11(水) 23:39:07ID:???これでは無理でした。
[0-100]
以下だとできるんですがスマートではないです。
100 | [1-9][0-9] | [1-9]
0975nobodyさん
2007/04/11(水) 23:47:02ID:???0976nobodyさん
2007/04/11(水) 23:50:28ID:???ちなみにphp-5.2.1にて俺が取ったベンチだと
str_replaceが最速
ttp://www.uploda.org/uporg771139.gif.html
0979nobodyさん
2007/04/12(木) 00:04:54ID:???釣られておくけど、その記事のTIPSは
いくつかを除いて重箱の隅レベルのパフォーマンス改善だし
これを使えあれを使うな系はケースバイケースのものが多いし
正直あまり良くないと個人的には思う
初心者に誤った先入観を持たせるような気がする
0980nobodyさん
2007/04/12(木) 00:07:58ID:???うほっ!
原文読んだら、反対なのねん!
>str_replace is faster than preg_replace, but strtr is faster than str_replace by a factor of 4
>>979
俺も思う。だからテンプレに入れるべきじゃないと思うんだよね…。
0981nobodyさん
2007/04/12(木) 00:12:30ID:???「Q:処理が重いです A:コードを整理して無意味なコードやループを無くせ」
0982nobodyさん
2007/04/12(木) 00:20:36ID:???> 01. staticメソッドが使えるなら使おう。速度は4倍になる
そんなもんクラス設計によりけりだから
> 02. __get, __set, __autoload は使わない
使うと便利になるケースめちゃくちゃあるだろアフォかおまえは
> 03. require_once は重い
分かるけどコードキャッシュなりなんなりで解決すべきで
コーディングで対処するものではないのでは
> 04. include, requireで読み込むファイルはフルパスにしよう
これも誤解を招く書き方
> 05. スクリプト開始時のUNIXタイムを $_SERVER['REQUEST_TIME'] で取れる
ふんふん、それでそれで?
> 06. strncasecmp関数やstrpbrk関数を使えるケースはこれらを使い、正規表現は使わない
微妙
> 07. preg_replaceはstr_replaceより速い、しかし、strtrはpreg_replaceより4倍速い
これはまあベンチの話だし的は外してない
> 08. 引数を、単体か配列かで自動判別するようなコードは出来るだけ避ける
ケースバイケース
> 09. @ を使ったエラー制御はとても遅い。→ @fputs($fp, "?");
これは俺もあまりおすすめしない
> 10. $row['id'] は $row[id] より7倍速い
それnoticeちゃうんかと
> 11. PHPのエラーメッセージは重い( noticeとかwarningとか)
じゃあおまえはもうerror_reporting(0)でずっとコーディングしてろこのハゲ
> 12. for ($x=0; $x < count($array); $x) のように、forの中でcountを使うと毎回countが呼ばれるので使わない。
どっちでもいーよ死ね
こんな感じだろ?実際
0984nobodyさん
2007/04/12(木) 00:24:28ID:???「A:気にしない。気になるんだったら頑張れ」ぐらいでもよさそう。
俺は>>7(or >>973)要らないと思うよ。
0985nobodyさん
2007/04/12(木) 00:26:44ID:???TIPS的にどうかって意味合いでしか書いてねーし
実際ベンチの結果なんてしるかよw
鬼の首取った気で嬉しかったのか?ww
0986974
2007/04/12(木) 00:39:31ID:???IPチェックしたいのでその方法はあまりきれいじゃないかなあと
'/^210\.121\.3\.([0-9]|[1-9][0-9]|1[0-9][0-9] |2[0-4][0-9]|25[0-5])$/'
こんな感じしか無理ですか?
0987nobodyさん
2007/04/12(木) 00:42:37ID:???0988nobodyさん
2007/04/12(木) 00:54:19ID:???$ip = explode(".", $_SERVER["REMOTE_ADDR"]);
$chk_ip1 = sprintf("%d.%d.%d", $ip[0], $ip[1], $ip[2]);
if($chk_ip1 == "210.121.3" && ($ip[3] >= 0 && $ip[3] <= 100)){
echo "ok";
}
0989nobodyさん
2007/04/12(木) 01:06:50ID:???それを言ったら、最適化のTIPSであって
コードが読みやすくするTIPSではないから
>>982のいくつかは的外れだぞ
0990nobodyさん
2007/04/12(木) 01:27:46ID:???0991nobodyさん
2007/04/12(木) 01:49:43ID:???0992nobodyさん
2007/04/12(木) 01:50:50ID:???0993nobodyさん
2007/04/12(木) 01:53:03ID:???0994nobodyさん
2007/04/12(木) 02:11:26ID:???上位2つくらいの処理を見直すだけでずいぶん速くなることはよくある。
パフォーマンス最適化のTIPSなんてバカらしくなる。
0995nobodyさん
2007/04/12(木) 02:38:09ID:???そのためにも普段は見通しの良いコードを書くことを心がけるべきで、
パフォーマンス最適化TIPSみたいな小手先のテクニックを使って
コードが読みづらくなるのであれば、そのような愚は避けるべきだ。
そういうTIPSは最適化の時に考慮してやればいいだけの話だ。
0997nobodyさん
2007/04/12(木) 05:51:21ID:???せっかくのテンプレ案なんだから、否定するだけじゃなくて改良しようとかポジティブなほうにそのパワーを使えばいいのに・・
0998nobodyさん
2007/04/12(木) 06:57:36ID:???0999nobodyさん
2007/04/12(木) 08:09:41ID:???1000nobodyさん
2007/04/12(木) 08:10:12ID:???10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。