【PHP】下らねぇ質問はここに書き込みやがれpart15
レス数が1000を超えています。これ以上書き込みはできません。
0001nobodyさん
2006/01/14(土) 20:06:11ID:???ここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。
次スレは流れを見て970/980/990の誰かが建てれ
まず読め【PHP マニュアル】
http://www.php.net/manual/ja/
本スレ【PHP】質問スレッドpart32【php】
http://pc8.2ch.net/test/read.cgi/php/1136276300/
前スレ【PHP】下らねぇ質問はここに書き込みやがれpart14
http://pc8.2ch.net/test/read.cgi/php/1134868212/
過去スレは>>2
FAQは>>3
0002nobodyさん
2006/01/14(土) 20:06:45ID:???【PHP】くだらねぇ質問はここに書き込みやがれ
http://pc5.2ch.net/test/read.cgi/php/1099322141/
【PHP】くだらねぇ質問はここに書き込みやがれpart2
http://pc5.2ch.net/test/read.cgi/php/1105218084/
【PHP】くだらねぇ質問はここに書き込みやがれpart3
http://pc5.2ch.net/test/read.cgi/php/1107780435/
【PHP】くだらねぇ質問はここに書き込みやがれpart4
http://pc8.2ch.net/test/read.cgi/php/1110697712/
【PHP】くだらねぇ質問はここに書き込みやがれpart5
http://pc8.2ch.net/test/read.cgi/php/1114787573/
【PHP】くだらねぇ質問はここに書き込みやがれpart6
http://pc8.2ch.net/test/read.cgi/php/1117945031/
【PHP】くだらねぇ質問はここに書き込みやがれpart7
http://pc8.2ch.net/test/read.cgi/php/1121100429/
【PHP】くだらねぇ質問はここに書き込みやがれpart8
http://pc8.2ch.net/test/read.cgi/php/1123431535/
【PHP】くだらねぇ質問はここに書き込みやがれpart9
http://pc8.2ch.net/test/read.cgi/php/1125716012/
【PHP】下らねぇ質問はここに書き込みやがれpart10
http://pc8.2ch.net/test/read.cgi/php/1127581425/
【PHP】下らねぇ質問はここに書き込みやがれpart11
http://pc8.2ch.net/test/read.cgi/php/1129582431/
【PHP】下らねぇ質問はここに書き込みやがれpart12
http://pc8.2ch.net/test/read.cgi/php/1130835396/
【PHP】下らねぇ質問はここに書き込みやがれpart13
http://pc8.2ch.net/test/read.cgi/php/1132921016/
0003nobodyさん
2006/01/14(土) 20:07:03ID:???1. "$hoge[0]" と書くとエラーが出るよママン
→"〜"の中で添え字([〜])やメンバ変数参照(->)みたいなのは直接書けないので"{$hoge[0]}"と{}でククレ
2. あっちのサーバーでは普通に動くのにこっちのサーバーではエラーになるよママン
→PHPはコンパイルオプションやphp.iniの設定で動きが全然違うので管理してる香具師に確認汁!
0004nobodyさん
2006/01/14(土) 20:27:37ID:ILCMT976$uri = $_POST['uri'];
$file = fopen("log.dat","r");
while($row = fgets($file,1024)){
if(eregi("($uri)[a-z0-9./_\-]+",$row,$data)){
print("$data[0]");
}
}
fclose($file);
これで「htt?://hoge.com/」を正規表現で検索したいのですが
「htt?://hoge.com/」を「http:/hoge.com」(未尾のスラッシュを取る)にしないと
結果を表示してくれません。
これは何故でしょうか?
00054
2006/01/14(土) 20:32:21ID:ILCMT976これで「htt?://hoge.com/」を正規表現で検索したいのですが
「htt?://hoge.com/」を「htt?://hoge.com」(未尾のスラッシュを取る)にしないと
00064
2006/01/14(土) 20:33:11ID:ILCMT976これで「http://hoge.com/」を正規表現で検索したいのですが
「http://hoge.com/」を「http://hoge.com」(未尾のスラッシュを取る)にしないと
0008nobodyさん
2006/01/14(土) 20:36:29ID:???if(eregi("($uri)[a-z0-9./_\-]+",$row,$data)){
ってのを
if(eregi("($uri)[a-z0-9./_\-]*",$row,$data)){
にしたら動かん?
00097
2006/01/14(土) 20:38:16ID:???0010nobodyさん
2006/01/14(土) 20:56:59ID:PuQcgqqK例に使うドメインはexample.comな。それ以外は実在する可能性があるから適当でない。
0011nobodyさん
2006/01/14(土) 21:09:17ID:???0016nobodyさん
2006/01/14(土) 21:46:22ID:???0017nobodyさん
2006/01/14(土) 21:59:52ID:???0019nobodyさん
2006/01/14(土) 22:13:38ID:???> 1. "$hoge[0]" と書くとエラーが出るよママン
> →"〜"の中で添え字([〜])やメンバ変数参照(->)みたいなのは直接書けないので"{$hoge[0]}"と{}でククレ
エラーが出ないよママン
> 2. あっちのサーバーでは普通に動くのにこっちのサーバーではエラーになるよママン
> →PHPはコンパイルオプションやphp.iniの設定で動きが全然違うので管理してる香具師に確認汁!
こんな質問フリークエントリーアスクトじゃないよママン
0020nobodyさん
2006/01/14(土) 22:30:26ID:???0021nobodyさん
2006/01/14(土) 22:39:50ID:???>>1の中にアンカーまでついてるし。
つーかそれよりも最近の釣りと自演をどうにかする方策でも立ててほしいもんだ。
見え見えすぎてうざげ。
どーでもいーっちゃどーでもいーけど。
0022nobodyさん
2006/01/14(土) 22:54:16ID:???0023nobodyさん
2006/01/14(土) 23:00:33ID:???0024nobodyさん
2006/01/14(土) 23:05:33ID:???過去スレあさるとよくわかる。
0025nobodyさん
2006/01/15(日) 04:27:41ID:???0026nobodyさん
2006/01/15(日) 04:28:30ID:???0027nobodyさん
2006/01/15(日) 05:14:47ID:???あるデータからXMLファイル(UTF-8)を作成するスクリプト作ったのですが、
そのXMLファイルを使うソフトがBOM(EFBBEF)つきのUTF-8ファイルしか読んでくれません。
ファイルの先頭部分にBOMを付加したい場合、どのような処理を施せばよいのでしょうか?
スクリプト自体はSJISで書いています。
$filename = "./BlandList.xml";
$fp = @fopen($filename, "wb") or die("Error");
fwrite($fp, "EFBBEF");
fclose($fp);
って書いたら先頭にEFBBEFの文字列が追加されただけでした…当然か
002827
2006/01/15(日) 05:17:20ID:???書き忘れすみません。
003029
2006/01/15(日) 07:18:08ID:???EFBBBFだったぞ<BOM
0031nobodyさん
2006/01/15(日) 11:37:52ID:nt4rtancAddType "text/html; charset=Shift_JIS" .php
でいいの?
0032nobodyさん
2006/01/15(日) 11:43:57ID:???0033nobodyさん
2006/01/15(日) 11:45:37ID:nt4rtancぐぐりました。
そうしたら、
AddType application/x-httpd-php .php
もでてきたんですが、これでは、文字コードは指定できません。
どのようにすればいいでしょうか?
phpをshift_jisで認識するようにサーバで設定したいのです。
003427
2006/01/15(日) 12:58:55ID:???BOMはEFBBBFでした、書き間違えすみません。無事に出来ました。
$filename = "./BlandList.xml";
$fp = @fopen($filename, "w") or die("Error");
fwrite($fp, pack('C*',0xEF,0xBB,0xBF));//BOM書き込み
fwrite($fp, $sdadata);//データ書き込み
fclose($fp);
ファイルをバイナリモードで開く必要はなかったんですね。
pack関数、初めて知りました…まだよく理解はできてないんですが
とにかく助かりました、ありがとうございました。
0035nobodyさん
2006/01/15(日) 13:58:23ID:???>ファイルをバイナリモードで開く必要はなかったんですね。
最近のバージョンのPHPは、バイナリーモードがデフォだから付けなくても構わない。
ただ、どのようなバージョンで使われるか判らないコードを書く場合は、
Windowsの場合には確実にバイナリモードになるように、'b'を付けといた方が
余計なテキストモードとして扱われて変な目にあわずに済む。
0037nobodyさん
2006/01/15(日) 17:03:44ID:???xreaとか@wikiとかから適当に選べば良いんだし。
003827
2006/01/15(日) 17:04:28ID:???なるほど、そういうことなんですね。アドバイスありがとうございます。
もう一点質問させてください。
データベースを書き換えるPHPスクリプトを毎日〜時に動作させたい場合、
どのような方法が挙げられるでしょうか?
これまではDNS更新ソフトDiCEを使って、サーバー(レンタル鯖)上のphpファイルをブラウザで開く動作を
指定時間に実行させるという強引な方法でやってきたのですが、
これだと常時PCを起動しておかなくてはいけないし…
CRONだとphpを実行できないらしいですし…
PHP自体の質問でなくて申し訳ないのですが、ご助言お願いします。
0039nobodyさん
2006/01/15(日) 17:09:31ID:???広告なしで作れたほうがよさげ
作ってます、しばしお待ちを。予定地↓
http://wiki.2chx.net/php/
0041nobodyさん
2006/01/15(日) 17:13:51ID:???と、リンク先を見て思った今日この頃。
0042nobodyさん
2006/01/15(日) 17:18:27ID:???cronからcli版のphpを起動できるよ。(他にmodule版やらcgi版がある)
更にcronからテキストブラウザを使えば、web鯖経由で起動できるし。
0043nobodyさん
2006/01/15(日) 17:19:12ID:???> CRONだとphpを実行できないらしいですし…
これはWebページとしてのPHPの話だよな?
普通に、バッチ処理として動くCLIのDB更新PHPスクリプトを書いて
それをcronで呼び出せば済む話だと思うぞ。
0044掃除屋 ◆2ch..Ybe0Q
2006/01/15(日) 18:19:34ID:???PHPpedia (PHP FAQ集積所) 完成しました。
多少動作が重いかと思いますが、無広告ですのでご了承下さい。
まだ過去ログのFAQ漁っていません。
0045nobodyさん
2006/01/15(日) 18:27:39ID:Q095YYYr乙
0046nobodyさん
2006/01/15(日) 18:30:11ID:???005027
2006/01/15(日) 19:14:02ID:???example.phpがデータベースを更新するスクリプトとしたら、
00 19 * * * /usr/local/bin/php /home/example.com/public_html/example.php
のような書き方でCRONに登録したらできたみたいです。
ご助言ありがとうございました。
005138
2006/01/15(日) 19:15:13ID:???0052nobodyさん
2006/01/15(日) 21:13:41ID:???そんだけの話かよorz
その場合、できれば > /dev/null って末尾に付けた方がいいぞ。
まー、誰もrootのメールなんて見てないのかもしらんけど。
0053nobodyさん
2006/01/15(日) 21:32:31ID:???php.iniの以下の項目を設定する。
default_mimetype = "text/html"
default_charset = "Shift_JIS"
以下もやっておいた方がいいかな。
mbstring.language = Japanese
mbstring.internal_encoding = SJIS
mbstring.http_output = SJIS
mbstring.encoding_translation = On
php.iniがいじれない場合は、Apache側(httpd.confかhtaccess)で以下の書式で設定。
php_value 項目 値
0054nobodyさん
2006/01/16(月) 00:47:10ID:???過去の全銘柄の日々の株価を全部掲載してるサイトってないでしょうか。
図書館行けばありますか?
また、日々の最新株価を汎用フォーマット(RSSとかCSVとか)で配布している
サイトってないでしょうか。
楽天のRSS取得ソフトというのは調べて見つけましたが、生のデータがほしい。
0055nobodyさん
2006/01/16(月) 00:48:24ID:???せっかくなので知ってる人いましたら教えてください。
0056nobodyさん
2006/01/16(月) 00:58:29ID:???0057nobodyさん
2006/01/16(月) 01:24:19ID:???そんなデータが抜け目なく揃っていたら商品として十分な価値があるので、
フリーでは転がっていないと考えるのが懸命。
証券会社とかが提供しているトレーディングツールの意味がなくなるし。
0058nobodyさん
2006/01/16(月) 01:51:02ID:???ereg("^[a-zA-Z0-9_\.\-]+@(([a-zA-Z0-9_\-\.]+\.)[a-zA-Z0-9]+$)",$mail)
の場合
XXX@XX.ne.jpみたいに.が二つある場合はtrueなんですが
XXX@XX.comのような.がひとつしかない場合はfalseを返してしまいます。
ともにtureを返したいのですがどうすればいいでしょうか?
0059nobodyさん
2006/01/16(月) 02:00:00ID:???正規表現道場@2ch Part4
http://pc8.2ch.net/test/read.cgi/php/1105930285/
0060nobodyさん
2006/01/16(月) 02:12:02ID:???株価自体に著作権はないし、どっかに落ちてるかと思ったんですけどね。図書館行ってみます。
>>58
^[a-zA-Z0-9_\.\-]+@(([a-zA-Z0-9_\-]+)\.([a-zA-Z0-9_\-]+)(\.[a-zA-Z0-9]+)?)$
括弧は本当に必要?おれPerlだからまちがってたらごめんね。
0063nobodyさん
2006/01/16(月) 02:50:27ID:???著作権の問題じゃなく、それだけの情報を保持するだけの
労力とサーバー維持費は並大抵のものじゃないから
無償でそんなの作れると考えるのは浅はかだろう。
ま、頑張って図書館の新聞でも漁ってください。
006438
2006/01/16(月) 02:58:36ID:???ttp://www.mujinzou.jp/
無尽蔵じゃだめですか?10年前くらいまでならあるかと。
ttp://homepage2.nifty.com/portal/link/data.htm
のリンク集も参考に…
ってこれくらいはぐぐった上で足りないから質問してるんだろうなぁ…
似たようなことをしようとしている人がいて面白かったのでレスしてみました。
>>52
rootのメール…?/dev/null って末尾につける意味がわからないです、すみません
サーバーのコマンドの類は勉強不足でよくわからないんです…
何か良書とか最低限のことをつかめる学習法ってありますかね?
自鯖は練習でfedoracore3たててみたことはあるんですが、書籍の設定通り以上の理解ができてない…
0065nobodyさん
2006/01/16(月) 03:08:11ID:???あらかじめ設定しておいたメッセージを表示するには、
どういった方法がよいでしょうか?
セッションは使いません。
0066nobodyさん
2006/01/16(月) 03:14:25ID:???ごめんなさい。探し方が悪かっただけでした。丁度、ご紹介のリンク集に自力で行き着いたところでした。
投資ブームですからね。なんか面白いことできないかなあ、と。市況情報のカレンダーをiCalendarで配信とか。
>>62
実は天気予報は有償配信を受けたことがあります。
予報は予報士の専売特許(法にふれる)なので有償は当然ですね。月々相場10万以下でFTP配信でした。
過去のデータは無償配布してるところもあるかもだけど、
どちらにしても膨大なデータなので無償配布は物好きですね。
すれ違い、すみません。株式板とPerlスレに戻ります。
0068nobodyさん
2006/01/16(月) 04:09:53ID:???任意の日本語メッセージ文を設定したいんですけど、
それをURLエンコードしてもGETで送りたくないし、
それって、実際の処理結果と一致するとは限らないことになるので、
そういう不完全な方法は取りたくなく・・・。
0069nobodyさん
2006/01/16(月) 04:31:31ID:???form.php → exec.phpとかで投げて、
項目にエラーがあればexec.phpで表示、
大丈夫なら処理して、form.phpにLocationで戻すってやってて、
クライアントから「完了したら完了したメッセージを出してくれ」とか来たオチっぽいな。
0070nobodyさん
2006/01/16(月) 06:11:10ID:???そういう条件があるなら最初か(cy
ならGETでユニークIDを渡して、そのIDに従った処理を
受け側のスクリプトでさせれば?
クッキーを使用しないSESSIONと同じ事だけど。独自SESSION。
前段にLBとか入れてhttpdを分散させてる場合はSESSIONと同様に、
IDと情報の結び付けを共有する仕組みがないと駄目だけどね。
0071nobodyさん
2006/01/16(月) 08:13:40ID:N8Tn4EdB2人目以降の画面では内容を変更できないように読み取り参照みたいな形で
開きたいのですがこういうことってPHPでできるのでしょうか?
それともwebサーバの機能になってくるのでしょうか?
0073nobodyさん
2006/01/16(月) 10:24:54ID:???cronで実行したプログラムが標準出力に何か出力してると
それがそのサーバーのrootアカウントにいちいちメールで通知されてる。
実行ログやエラー情報ならともかくHTML出力なんて記録しても意味ないだろうから
cronの実行プログラム末尾に > /dev/null をつけて出力を出さないのが常道。
0074nobodyさん
2006/01/16(月) 10:28:57ID:???JavaScript(かそれに類するクライアントスクリプト)+PHPでできんじゃないの?
そのページの表示中はバックグラウンドで一定間隔でサーバーに接続中であることをリクエストし続けて、
そのリクエストが入ってる間にページ表示のリクエストがあった場合は読み取り専用の表示を返す、とか。
Ajaxとかで似たようなことはやってんじゃないでしょうか。
0077nobodyさん
2006/01/16(月) 11:30:36ID:???例えばどれだけ時間の間隔が開いてたら2人目以降も「読み込み参照」
じゃなくてもよいのか?
あと、同時にリロードしたら今度はその「読み込み参照」が
別の人に回る可能性もあるんだけどそれでもいいのか?
(たぶんダメだろう)
0078nobodyさん
2006/01/16(月) 11:42:40ID:cEjGfkGLPHPを使えばできますか?
0080nobodyさん
2006/01/16(月) 11:53:22ID:???PHPだけでやるなら>>77みたいに、一定時間が経過するorフォームからのリクエストを受けるまで、他からの更新をさせなければ良い。
”編集には入ったけど更新せずにブラウザを閉じた”みたいな時に早く次の人に順番を回したければ>>74みたいな事が必要。
0081nobodyさん
2006/01/16(月) 12:05:16ID:cEjGfkGLPHPで、できることがわかりました。
ありがとうございます。
PHP初心者でもプログラムできるものでしょうか?
参考になるURLや書籍などがありましたら
教えてください。よろしくお願いいたします。
008379
2006/01/16(月) 12:23:29ID:???誰でも最初は初心者なので、できるといえばできる。
ただし、それなりに長いプログラムを書くことになるので、いきなりできるわけではない。
やりたいことが伝わってこないので何とも言えないけど…。
新規に作る必要があるのかどうか検討すべき。
やりたいことがすでに公開されているツールでできるなら、そちらを利用した方が手っ取り早い。
wiki、blog、CMSといったキーワードでググってみるがよろし。
0084nobodyさん
2006/01/16(月) 12:31:42ID:PmlJdI8iphp4.4.2が出たのですが、php4.4.1であったmb_send_mailで件名が文字化けするというバグは修正されたのでしょうか?
よろしくお願いします。
0086nobodyさん
2006/01/16(月) 12:56:13ID:PmlJdI8iありがとうございます。
助かります。
http://eth.jp/hiki.cgi?PHP-Changes-4.4.2
上記は見たのですが、mb_send_mailで検索すると以下しかなかったので不安でした。
#34830のバグ修正 (mb_send_mailの第五引数が機能していない). (Rui)
0087nobodyさん
2006/01/16(月) 13:07:00ID:???#33720のバグ修正 (mb_encode_mimeheader がマルチバイト文字に対して機能しない). (Rui)
0089nobodyさん
2006/01/16(月) 13:26:34ID:BuN0Lcurインストール後
PHPUnit Cookbook
http://sourceforge.net/projects/phpunitcookbook/
のサンプルコードを使ってテストしたところ
ブラウザには何の表示もされず、テスト結果が表示されません。
(htmlソースも表示されません)
エラー表示もないので原因がつかみにくいのが現状です。
原因がおわかりの方、ご教示お願いいたします。
開発環境
OS:windows2000
PHP:5.1.1
phpunit: ver 0.5
Apache: 1.3.33
009071
2006/01/16(月) 13:27:37ID:???みなさんすいません、意味がわかりにくかったですね。
えと、あるwebシステムを作っているのですが
一人目Aさんが最初に開いた場合はその人ではフォーム画面(編集可)を表示させ、
Aさんがそのシステム内のページを見ている時は別のBさんが開くと編集不可のページ内容を
出力したいのです。出力するデータはみんな同じです。
Aさんが閉じた後はBさんがリロードもしくはCさんが開けばまた編集できる画面を表示させたいのです。
編集不可のページはreadonlyの形でもいいし普通にべたで出力してもかまいません。
こんなことする理由は複数の人がページを開いておりおのおので変更を加えた場合に整合性がとれなくなると
言うことなんです。
こんな感じでわかりますでしょうか?? ややこしくてすいません。
0091nobodyさん
2006/01/16(月) 13:40:40ID:???Aさんが閉じた「直後」には他の人が編集可能なようにするなら、
JavaScriptなりFlashなりJavaAppletなりを介在させないと難しいと思う。
楽に実装するなら、Aさんが開いてから1時間はその人しか更新できない、
という時間制限方式にする方法かな。
0092nobodyさん
2006/01/16(月) 13:48:38ID:???件名がmimeheaderっていうとちょっと違う。
その辺は、メールのheaderがどういう構成になるのかを勉強してくれ。
この辺も参考に。
http://d.hatena.ne.jp/t_komura/20051105#1131202088
0094nobodyさん
2006/01/16(月) 13:56:09ID:???php.ini で
display_errors = On にしているんですがエラーが表示されません。
他のスクリプトで文法ミスなどやらかした場合はエラーが表示されます。
0096nobodyさん
2006/01/16(月) 14:16:39ID:???なるわけだけど、そんな使いにくいものでもいいの?
つかそういうのは更新の処理によって変わるもんだしなぁ。
閲覧用にページを出力する段階で切り替えるもんではないと思うが。
0098nobodyさん
2006/01/16(月) 14:26:05ID:???何も表示されませんでした。
>>97
やはりそうなんでしょうか。
サンプルコードをそのまま使ったのがまずかったのかもしれません…。
009990
2006/01/16(月) 14:29:27ID:???そんなものでいいです。
他にいい案とかあれば教えてほしいですけど。
とりあえずは上に書いたように変更処理さえ問題なければ^^;
0100nobodyさん
2006/01/16(月) 14:40:20ID:???そもそも謎なのが、PHPUnit 0.5 なわけだが。
PHPUnit の stable は 1.3.2, PHPUnit2 で 2.3.4 なわけで
いったい何使っての?
0101nobodyさん
2006/01/16(月) 14:46:37ID:???すみません。ここのphpunit使ってました。
http://sourceforge.net/project/showfiles.php?group_id=10610
かなり古かったんですね…。
0102nobodyさん
2006/01/16(月) 15:28:36ID:???目的は「編集不可のページを表示すること」って書いてるんだから
その内容は「現在、他のユーザが編集中です」ってメッセージでもいいんだろうさ。
0103nobodyさん
2006/01/16(月) 16:07:33ID:???その手法だとAさんが作業終了したことをどサーバ側にしらせる手法が必要になる。
それが先に上がっているJavaScriptなんかだったりするわけだ。
さもなくば単純にAさんの読み込みからN分間他者に編集権を与えないようにするか。
ただ、整合性を保つという目的を果たすだけなら
1.編集前のバージョンとユーザを結びつける
2.編集画面を出力
3.ユーザが編集・更新ボタン押下
4.ユーザに結び付けられた編集前のバージョンと保存されているバージョンを比較し
同一なら保存・バージョンを繰り上げる さもなくば破棄
簡単にするためにバージョン情報としてタイムスタンプを使うのが簡単かな。バージョンナンバー振ってもいいけど。
0104nobodyさん
2006/01/16(月) 16:13:54ID:???って縛りを入れちゃうのも手かもな。
それが通知されたら以降の最初の人が編集画面を開けるようになる、と。
0105nobodyさん
2006/01/16(月) 16:50:19ID:???それが出来れば苦労はない
ブラウザ開きっぱなしで寝るやつやボタンを押さないでブラウザを閉じるやつが続出するから困るんだ。
0107nobodyさん
2006/01/16(月) 17:27:33ID:???0108nobodyさん
2006/01/16(月) 18:57:35ID:???やっぱ、Aのブラウザが編集中であることをJavaScriptのHTTPアクセスで一定時間毎に伝えるってのが、現実的な話かな。
0109nobodyさん
2006/01/16(月) 18:58:21ID:???セーフモードだからでしょうか?
0110nobodyさん
2006/01/16(月) 19:20:35ID:???セーフモードは関係ない。
とりあえずエラー出してもらわんとわからんよ。
考えられる原因としたら、include文がおかしかったのか、
includeするファイルの中身がおかしかったのか、
まぁもう少し確認してみれ。
0113abebo
2006/01/16(月) 19:32:32ID:Oa1MF5mS0114nobodyさん
2006/01/16(月) 19:37:18ID:???0115abebo
2006/01/16(月) 19:39:14ID:Oa1MF5mSスパイウェアみたいなやつに引っかかってから、どうやっても消えないのです。
0116nobodyさん
2006/01/16(月) 19:40:06ID:cEDpmcYp○。・。○。・。○。・。○。・。○。・。○。・。○。・。○。・。○
このレスをみたあなたは・・・3日から7日に
ラッキーなことが起きるでしょう。片思いの人と両思いになったり
成績や順位が上ったりetc...でもこのレスをコピペして別々のスレに
5個貼り付けてください。貼り付けなかったら今あなたが1番起きて
ほしくないことが起きてしまうでしょう。
コピペするかしないかはあなた次第...
○。・。○。・。○。・。○。・。○。・。○。・。○。・。○。・。○
0118nobodyさん
2006/01/16(月) 21:43:43ID:???0119nobodyさん
2006/01/16(月) 23:22:00ID:???PHPだとブラウザから読みに行ったタイミングでしか保存できません・・よね?
ブラウザつけっ放しとか非現実的過ぎるし、となるとVB.NET使う方法がいいんでしょうか?
VBやPHPで出来れば嬉しいんですが・・・まだ勉強中なので出来るかどうかも判断つきませんorz
ヒントだけでの一つよろしくお願いします
0120nobodyさん
2006/01/16(月) 23:36:24ID:???save_camera_pic_to_disc();
sleep(60);
}
012138
2006/01/16(月) 23:45:37ID:???わかりやすい説明ありがとうございます。
rootにメールが行ってるってことは、レンタルサーバーで複数ユーザーで共有している場合だと、
その共有サーバーの管理者(管理会社)にいちいちメールが行っていると言うことですね。
なるほど、それは無意味で迷惑でしょうから > /dev/null つけます。
0122nobodyさん
2006/01/17(火) 00:09:04ID:???これはどういうエンコード処理でしょうか?元に戻す方法教えてくださいませ
0124nobodyさん
2006/01/17(火) 01:34:22ID:???つ[タスクスケジューラ]
VBやVB.NETの話をしたければ別のスレ
PHPでやるならマニュアル良く読め(php-cliのところ)
0125122
2006/01/17(火) 04:22:15ID:???こと確認したけど、同じ状態ですorz
0127nobodyさん
2006/01/17(火) 11:22:28ID:???<?include 'count.php?today';?>などとすると
Warning: main(/home/***/public_html/php/count.php?today): failed to open stream: No such file or directory in /home/***/public_html/index.php on line 170
とエラーが出てしまいます。
なぜでしょうか?
0129nobodyさん
2006/01/17(火) 11:42:51ID:???0130nobodyさん
2006/01/17(火) 11:46:51ID:???今までPHP4サバ使ってたのでとりあえずそのままアップしてみてたら
ことごとく全部表示すら出来なかった・・・。
そして調べてみるとob_start("ob_gzhandler"); をコメントアウトすると
表示できた。
という事はPHP5でgzip圧縮は駄目になったんでしょうか?
0131nobodyさん
2006/01/17(火) 12:02:30ID:???単に取り込むだけ。
実行したければfile()を使う。おそらく>>127が期待している動作は得られないけど。
0132nobodyさん
2006/01/17(火) 12:04:24ID:???http://jp.php.net/manual/ja/function.ob-gzhandler.php
使えるようだが。エンコードが違うとかじゃない?
0134nobodyさん
2006/01/17(火) 12:23:06ID:???なるほど・・では試用期間中では使えないのですねぇ。
ではPHP5サーバでも問題ないかな・・・
よく「●●のスクリプトはPHP5じゃ動かなかった」という報告を
目にしますが、そんなに違うものなのでしょうか?
0135127
2006/01/17(火) 13:10:58ID:???count.phpはあるんですよ・・・
>>131
え。。そうなんですか・・
ってことは複数のファイルに分けてやらないと駄目って事ですか?
× count.php?today count.php?all
○ count-today.php count-all.php
ってことですよね?
0137nobodyさん
2006/01/17(火) 13:41:05ID:???http://www.php.net/manual/ja/migration5.php
変更点は結構細かいものばかりだけど、
それでも動かないものは全く動かなくなるのがコンピューター。
0139127
2006/01/17(火) 13:54:46ID:eeDcDeq6え、なんかありますか?
実はコピーライト的なものを各ページに挿入したいんですよ。
その内容が頻繁にかわるのでこの方法しかないかなぁと。。。。
jsは使いたくないんです。
0142nobodyさん
2006/01/17(火) 14:45:11ID:???http://wiki.2chx.net/php/
0143127
2006/01/17(火) 14:50:09ID:eeDcDeq6今後ページによって表示する内容を変える事を考えているんでそのほうが楽かなと。。
>>141
なんかい表示されたかのカウントも行いたいので・・・
0144nobodyさん
2006/01/17(火) 15:14:51ID:???配列とかにして返すしかないんでしょうか?
普通にreturn(値1,値2)ってやったらエラーでたので。
0145nobodyさん
2006/01/17(火) 15:18:57ID:???0146nobodyさん
2006/01/17(火) 15:22:12ID:???あー。
フラットにだらだら書く方式にしたんだ。
個人的にこれはやめたいなぁ。
分けたら見つけにくくなるかもしれないけど、それは検索を
使わせればいいんだし。あ、上部のメニューに検索窓ほしいね。
FreeBSD の Q&A みたいに Q と A のセットで1ページになってた方が
Google とかも頼りやすいし、いいと思うけど、どお?
あと、font-size は 100% を希望
0148nobodyさん
2006/01/17(火) 15:36:20ID:???count.php には 関数を定義して、その関数を引数付きで呼びなされ。
include() 一発でやろうと思わず、include() して関数呼べばいいだけの話でしょ。
スーパーグローバル変数を使ってもできるけど、オススメしない。
0151nobodyさん
2006/01/17(火) 16:28:35ID:DhtK0Iv+条件としては、表示させる時に日ごと、月ごとのトータル数を出したいと思っています。また、1日のアクセスは500件を想定しています。
あと、SQLiteで現在は作っていますが、最終的にはPDOを使って他のDBにも対応したく思っています。
ですので、1DBに1月として日ごとテーブルを作るのか、1日毎にDBとテーブルを作るのか、どっちがようのでしょうか。
それとも他にスマートな方法は有りますでしょうか。
条件や状況によって変わってくるとは思いますが、ご教授下さい。
0152nobodyさん
2006/01/17(火) 16:29:41ID:???$_SERVER['QUERY_STRING'] = "today";
include "count.php";
0154nobodyさん
2006/01/17(火) 16:58:38ID:???普通、データベースの構造を最適化すればテーブルとテーブルの列は増えない。
頼むからちゃんと正規化しろ。一応言っておくと >>153 は正解。
0155nobodyさん
2006/01/17(火) 17:16:47ID:???↓
そのままリリース。3ヶ月ぐらいする。パフォーマンスが悪くなる。
↓
マネージャー「なんで正規化しておかねーんだよ、このカス」
↓
クライアントからクレームがつく。
↓
マネージャー「経緯を説明しろよ、このクズども」
オレ「正規化をしようとしたら、リーダーがー…」
マネージャー「それでもやるのが普通だろ、死ね」
速攻辞めました。今は靴屋のバイトやってます。こっちがずっとhappyです。
0156nobodyさん
2006/01/17(火) 17:44:29ID:l0tWWV9jttp://takagi-hiromitsu.jp/diary/20060114.html#p01
<?php
$var_str = "Hello World";
print(htmlspecialchars($var_str));
?>
HTMLを出力しているのだから当然にhtmlspecialchars()を入れる。
0157nobodyさん
2006/01/17(火) 17:45:48ID:???0160nobodyさん
2006/01/17(火) 17:50:00ID:???初心者が見ることを前提に
htmlspecialcharsの使用を習慣づけて貰う為の記述だろ。
彼は基本的にセキュリティ屋だし。
0161nobodyさん
2006/01/17(火) 17:51:45ID:???間違ってはいないんだけど
好きになれないよね。もちっと別の言い方ってもんがあっぺよ。
とおもう
0162軟式PHP
2006/01/17(火) 17:54:29ID:???彼は世の中の間違ったSSL認識をクレーマーのごとく指摘するのが仕事さ。
俺がおすすめするセキュリティの本は「PHPサイバーテロの技法」。
0163nobodyさん
2006/01/17(火) 18:00:21ID:???文章にするときつくなる人だよね。
直接しゃべると非常に柔らかい人なんだが。
>>162
セキュリティー屋ってのは、そういうもんさw
0164nobodyさん
2006/01/17(火) 18:01:14ID:???まぁあの書き方では当事者や関係者が納得して非を認めるように
なるのは難しいね
単に読み物として読んでる分には面白いけど
0165nobodyさん
2006/01/17(火) 18:07:02ID:???テーブル内の古いデータを掃除しない、なんて >>151 のどこに書かれてるんだ?
>>156
一部現実味のない理想論なのは問題あると思うがまぁここではどうでもよい。
ヲチはヲチ板で。
0166nobodyさん
2006/01/17(火) 18:08:12ID:???0167nobodyさん
2006/01/17(火) 18:15:13ID:DhtK0Iv+え!?
では、ある程度肥大化したら別途保存するなり古い記事を削除するなりすると言う事ですか?
0168nobodyさん
2006/01/17(火) 18:16:36ID:???0170nobodyさん
2006/01/17(火) 19:16:43ID:DhtK0Iv+そうなんですか。。
レスありがとうございました。
>>169
すみません。
今までログファイルに書き出す方法でやっていて、色んなところの配布しているソースを見て日ごと月ごとというやり方を真似していまして。。
だからいくらDBでも肥大化したら重くなりもするんだろうし、と言う考えで今回の質問に至った次第です。
こんな質問ですが為になるレスありがとうございました。
0171nobodyさん
2006/01/17(火) 19:23:14ID:???MySQLの話だけど。
0172nobodyさん
2006/01/17(火) 19:23:16ID:tDsfmN2qその中の1ページにPerlで作成した掲示板を設置したいと考えています。
最初はCGIファイルの中にprintでHTMLとPHPを出力しようと試みたのですが、PHPが実行できずにエラーとなってしまいました。
上記のPHPと同文書内に、掲示板を出力させるPHPを埋め込むにはどうすれば良いでしょうか?
又は、掲示板を設置するファイルをCGIにして、Perlのプログラム内でPHPを実行させる方法でも良いのですが…。
ご教授お願い致します。
0173nobodyさん
2006/01/17(火) 19:46:03ID:eeDcDeq60174_
2006/01/17(火) 19:46:17ID:qQ+v1Jzp0175nobodyさん
2006/01/17(火) 19:51:22ID:???0176nobodyさん
2006/01/17(火) 19:51:49ID:???0178nobodyさん
2006/01/17(火) 23:16:30ID:klTcMYuU0179nobodyさん
2006/01/17(火) 23:26:47ID:???0180nobodyさん
2006/01/17(火) 23:28:35ID:???0181nobodyさん
2006/01/17(火) 23:58:58ID:xKRv/KZlサーバーはXREA
0182nobodyさん
2006/01/18(水) 00:03:10ID:zQtemvMy$foo = file('http://example.com/');
と、HTTPプロトコルを使用するとクラッシュしてしまいます。
Windowsユーザーで同じ現象の方いらっしゃいますか?
本家のChangeLog、Fixed Bug #34359 で修正済となっており、
Linux版では問題ありませんでした。
当WindowsサーバーでもPHP4.3.11 では問題なく動作しています。
同じ現象の方がいらっしゃればバグレポートを出したいと思うのですが。
0183nobodyさん
2006/01/18(水) 00:06:13ID:zQtemvMyPostgres をお勧めします。
0185nobodyさん
2006/01/18(水) 00:13:20ID:zQtemvMyレスありがとうございます。
本スレ見落としてました。すみません。
バグのようですね…。報告&4.4.3待ちます。
0186184
2006/01/18(水) 00:19:59ID:???0187nobodyさん
2006/01/18(水) 08:47:20ID:???>>181じゃないですが面倒でなければ両者を比較したときにPostgresを選んだ理由っていうのを
教えてもらってもよろしいでしょうか?
俺はMySQLしか使ったことないので・・
0189nobodyさん
2006/01/18(水) 09:31:51ID:???ttp://www.sbcr.jp/books/products/detail.asp?sku=4797327073
0190nobodyさん
2006/01/18(水) 10:09:56ID:???0191nobodyさん
2006/01/18(水) 10:16:37ID:???0192nobodyさん
2006/01/18(水) 11:07:17ID:???mbstring関数は有効になっています。
$file = fopen($file_name,"r");
$data_size = 0;
for ($line_num = 1 ; !feof($file) ; $line_num++) {
$line = fgets($file);
$line_size = mb_strlen($line);
$data_size = $data_size + $line_size;
if ($data_size >= 512 * $page_num - 1) {
if ($data_size < 512 * $page_num) {
$line = str_replace ("<","<",$line);
$line = str_replace (">",">",$line);
echo $line;
}
}
}
と書いて実行したものの、何も表示されません…
どうすれば現状を回避できるのでしょうか…orz
0193nobodyさん
2006/01/18(水) 11:19:15ID:???お前のやりたいのはひょっとして
$data_size >= 512 * ($page_num - 1)
じゃないのか
0196183
2006/01/18(水) 14:07:51ID:zQtemvMyMysql4.1からはUnicodeがサポートされていますが、それ以前はUnicodeがサポートされていませんでした。
SJIS、EUCでは必ずどこかで文字化けが起きる(5C文字や第2水準漢字など)ので
私がコーディングする際は内部をUTF-8で統一するようにしています。
また、PostgreSQLではplpgsqlでストアドが作れますので、
プログラムの質を上げることができます。
PostgreSQLはMySQLよりもUnicodeに強い。
複雑な処理をストアドで行える。
が選択の理由です。
バグをあまり気にしない環境・掲示板程度でしたらMySQLの方が早いですけど…。
0197nobodyさん
2006/01/18(水) 14:19:16ID:???0198196
2006/01/18(水) 14:28:54ID:zQtemvMy文字化けを完全解消するならば全面Unicode
http://www.atmarkit.co.jp/fxml/rensai/xmlwomanabou06/learning-xml06.html
ですが、そうもいかない現状ですので、
私は 内部UTF-8 -> SJISやEUC出力 にしています。
これでDBへのINSERTの段階で失敗するということが少なくなります。
0199nobodyさん
2006/01/18(水) 14:36:19ID:???おれの周りは全部UTF-8だな。文字に関するトラブルは特にない希ガス
PostgreSQLは8.1になってMySQLレベルにまで速くなってきたな。
複雑なクエリなんかはストアド使ったりして構造をわかりやすくしたりできるな
あと、
>>バグをあまり気にしない環境・掲示板程度でしたらMySQLの方が早いですけど…。
「速い」の間違いな。国語勉強しとけよ。韓国人に笑われるから(何
0200nobodyさん
2006/01/18(水) 14:41:01ID:???いちいち誤変換なんて確認したことねーぞ
0201197
2006/01/18(水) 14:45:27ID:???いままで数年、内部エンコーディングはEUC-JPでしたけどUTF-8に乗り換えることにします。
現在、日、中、英の3ヶ国語に対応しなければならない案件を抱えてまして
出力はUTF-8、DBもUTF-8、内部はEUC-JPというへんな状況で苦しんでました。
これで楽になれます。
0202nobodyさん
2006/01/18(水) 14:51:23ID:???ウザい回答するぐらいなら答えんなボケ
0203nobodyさん
2006/01/18(水) 14:58:08ID:???0204nobodyさん
2006/01/18(水) 20:00:42ID:???ここの販売しているソフトがPHPスクリプトの暗号化で有名ですが、
日本語でここより安くて単純に暗号化出来るソフトってないでしょうか?
0205nobodyさん
2006/01/18(水) 20:38:43ID:???"日本語で"つうのが、日本語も対応しているという意味なら無料のものもあるが、
日本語で手取り足取り導入解説からサポートまであるという意味のものなら、それは無い。
日本人が作ったBコードコンパイラはあったと思うけどね。
0206nobodyさん
2006/01/18(水) 21:04:14ID:???安いのは英語で良ければSource Guardianかな。
0207nobodyさん
2006/01/18(水) 21:06:39ID:l30CFxYx他のファイルにstaticメソッドを宣言して、インクルードするとエラーが起こるのですが、
なぜでしょうか、staticじゃないのは普通に呼び出せるのですが、
宜しくお願いします。(_ _)
0210207
2006/01/18(水) 21:52:41ID:l30CFxYxすみません、ソース、本など会社で、
大体下のような感じだと思います。
うろ覚えで書いてるので間違ってるかもしれませんが、
<?
require('staticTest.php');
$data = ->testfunction();
print $data;
?>
<?
class staticTest{
public static function testfunction(){
$data="1";
return $data;
}
}
?>
0211nobodyさん
2006/01/18(水) 23:12:39ID:zipv+nb60212nobodyさん
2006/01/18(水) 23:40:56ID:???ところでスレタイは読まれましたでしょうか。
0214nobodyさん
2006/01/19(木) 01:35:01ID:???> $data = ->testfunction();
こんなの Syntax Error だ、アフォ。
マニュアルを全然見てないだろ。
いますぐ >>1 からマニュアルを参照してくるんだな。
0215nobodyさん
2006/01/19(木) 03:12:55ID:wmue64mu下記のソースを書き、ブラウザで見てみました。
echo("<html xmlns=\"http://www.w3.org/1999/xhtml\">");
echo("<head>");
echo("<meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\"/>");
echo("</head>");
echo("<body>");
echo("テスト");
echo("</body>");
echo("</html>");
すると
ブラウザがUTF-8ではなく、
EUC-JPでHTMLを読み込んでしまうのですが、
どうすれば解消できるでしょうか?
0217nobodyさん
2006/01/19(木) 03:37:08ID:???0218nobodyさん
2006/01/19(木) 03:47:05ID:???0220nobodyさん
2006/01/19(木) 04:54:25ID:???PHP.iniは
default_charsetEUC-JP
mbstring.detect_order auto
mbstring.encoding_translation Off
mbstring.func_overload 0
mbstring.http_input auto
mbstring.http_output pass
mbstring.internal_encoding no value
mbstring.language Japanese
mbstring.substitute_character no value
という感じになってますが、
これはちょっとワケ有りで変更でないのです。
そのためソース側で対処しないといけません。
>>217
echo( mb_convert_encoding("テスト", "UTF-8", "EUC-JP"));
とやると、「テスト」だけはUTF-8に変換されますが、
ブラウザの読み込みモードがEUC-JPで読み込んでしまうのです。
>>218
default_charsetがEUC-JPになっているのが
原因だと思い、同じようにやってみたのですが、
どうしてもブラウザがEUC-JPで読み込んでしまいます。
0222nobodyさん
2006/01/19(木) 05:18:30ID:???ttp://httpd.apache.org/docs/1.3/mod/core.html
0223220
2006/01/19(木) 05:21:24ID:???おっと、ウェブサーバーの設定でしたか、
ウェブサーバーの設定は・・
・・不明です。。。お恥ずかしいですが。。
唯一わかっているのはApache2系ということだけです。
PHPの関数で対応できると思っていたのですが
あまかったですか??
0224nobodyさん
2006/01/19(木) 06:48:14ID:???あとxhtmlで書くなら、ちゃんとDTDで定義しとこうな。
0225nobodyさん
2006/01/19(木) 07:21:41ID:???<meta>タグなんかで指定しないでちゃんとheader()で指定しろってこと
ブラウザはresponse headerの方を優先するからね
0226nobodyさん
2006/01/19(木) 17:15:52ID:???一要素ずつhiddenで記述してやるしかないのでしょうか?
簡単な方法があればよろしくお願いします。
0227nobodyさん
2006/01/19(木) 17:19:18ID:???0229nobodyさん
2006/01/19(木) 18:02:59ID:???それで困るほどでかいデータならそもそもsubmitで飛ばさない。
0232nobodyさん
2006/01/19(木) 21:50:34ID:???ユーザーのクッキーから情報を取得してる場合だけど。
0233nobodyさん
2006/01/19(木) 22:33:15ID:???ややこしい状態になることがあるんで、安易にそれをベターというのもどうかと。
「そのユーザにとって最新の状態は常にどの画面でも同じもの」ってデータ以外は
セッションに入れるべきじゃないと思うんだけど?
0234nobodyさん
2006/01/20(金) 03:43:15ID:???「A」と「B」の間にあるスペースを
1個のスペースに置き換える場合、
for(),while()を使わずに処理する方法ってありますか?
0235nobodyさん
2006/01/20(金) 03:55:25ID:???0239nobodyさん
2006/01/20(金) 05:27:20ID:???0240nobodyさん
2006/01/20(金) 05:35:41ID:???0242nobodyさん
2006/01/20(金) 07:36:57ID:???preg_replace("/( | )+/", " ", "A B")
0243nobodyさん
2006/01/20(金) 08:36:42ID:kKXqMXNs仮に○○.phpってファイルをアップロードしたのだけど、
実行してみると「ページを表示できません」ってなってしまう。
何かほかにやらないといけないの?
助けてください。
0247nobodyさん
2006/01/20(金) 10:00:55ID:???ネットワークがきれてたんじゃないの?
phpが使えない鯖なら、phpの中身が表示されるか
ダウンロードマネージャが起動するはず。
404なら「ページが見つかりません」と出るはず。
phpは特に鯖側でパーミッションとかいじったりしなくても使える。
(ログファイルとかは別だけど)
0249nobodyさん
2006/01/20(金) 10:13:04ID:???0250nobodyさん
2006/01/20(金) 10:17:36ID:VgY7exIAサーバーソフトもインスコしないとみれるようになりませんか?
0251nobodyさん
2006/01/20(金) 10:26:47ID:???もちろんです。
ただ、結果だけみたいならコマンドラインでxxxx.htmlに
リダイレクトすれば見られます。
0252nobodyさん
2006/01/20(金) 11:04:18ID:???公式に飛ばさずに直接値を渡すにはどうすれば良いのでしょうか。
0253nobodyさん
2006/01/20(金) 11:05:12ID:???0256nobodyさん
2006/01/20(金) 11:06:53ID:???0257254
2006/01/20(金) 11:08:52ID:???0258nobodyさん
2006/01/20(金) 14:14:53ID:+oUGIFYt"で囲ってあがないといけないんですよね?
function(){
return "0";
}
みたいに。
0263nobodyさん
2006/01/20(金) 16:06:28ID:utcSO+tE0268nobodyさん
2006/01/20(金) 19:24:34ID:???<html>
<body>
<?php
$page = @readfile("http://www.yahoo.co.jp");
?>
</body>
</html>
と言うような感じで他サイトを読み込んだのですが
読み込んだサイトにあるリンクのURLが自分のドメインを
含んでしまい、リンク先に正常に飛べません。
リンクのURLが読み込んだファイルと同様のドメイン
上の例ですとhttp://yahoo.co.jp/hogehoge.htmにするにはどうすればよいのでしょうか?
今の状態ですとhttp://hogehoge.jp/hogehoge.htmとなってしまいます。
よろしくお願いします。
0270268
2006/01/20(金) 19:42:50ID:???preg_replaceを使用するということは
fileで一度ソースを読み込んで置換してという
順序になると思うのですが
readfileでやることは不可能なのでしょうか?
get? post? あたりを駆使してムリでしょうか?
0273268
2006/01/20(金) 19:52:51ID:???来ました出来ました。有難うございます。
>>272様感謝します。
>>269様 >>271様
ご意見有難うございました。
0274nobodyさん
2006/01/20(金) 20:01:45ID:???これとsetGzip()で特定のディレクトリを圧縮しつつダウンロード、
ということをしたいのですが、以下のどこがおかしいか
教えてくださいませ。
疑問点はまずsetFile()がディレクトリを指定するのが不可能っぽいですが、
解決方法はないか、setFileをファイルで試しても
setGzipの部分が上手く動作していないようです、何か間違っているでしょうか?
お願いしますm(_ _)m
<?php
require_once("HTTP/Download.php");
$dl = &new HTTP_Download();
$dl->setFile($directory);
$dl->setGzip(TRUE);
$dl->setContentType('application/x-gzip');
$dl->setContentDisposition(HTTP_DOWNLOAD_ATTACHMENT, 'latest.tgz');
$dl->send();
?>
0275nobodyさん
2006/01/20(金) 20:16:39ID:???ディレクトリに対応してないので HTTP_Download だけじゃダメ。
Archive_Tar も併用すべき。
オンザフライ圧縮する必要はなくなるが
一時ファイルを生成する必要が出てくる。
あとは頑張れ
http://pear.php.net/manual/ja/package.filesystem.archive-tar.archive-tar.php
0276nobodyさん
2006/01/20(金) 23:10:38ID:yP1RJnKV0278nobodyさん
2006/01/21(土) 10:57:51ID:???tab区切りのテキストファイルがあるんですが、そのファイルの
先頭の列のみ残してあとのデータを削除したいんです。
sed "s/\t*//g" test.txt
ではうまくいきませんでした。(削除されないファイルが出てきます。)
誰か、、、よろしくお願いします。
0279278
2006/01/21(土) 11:04:40ID:???0280nobodyさん
2006/01/21(土) 15:41:37ID:???log.txt(300MB)で
fopen("log.txt", "a")した場合ってメモリ300MB消費されませんよね?
逆に
fopen("log.txt", "r")としたらメモリ300MB消費される、
この考えあってますでしょうか?
0281nobodyさん
2006/01/21(土) 15:49:37ID:???> fopen("log.txt", "a")した場合ってメモリ300MB消費されませんよね?
合ってる。
> fopen("log.txt", "r")としたらメモリ300MB消費される、
間違ってる。正しくはその後の処理方法次第。
0282nobodyさん
2006/01/21(土) 15:55:59ID:???やってみりゃ分かるが、fopenはファイルを開く「準備」をするだけ。
メモリに読み込むのは別の関数のお仕事。
0283nobodyさん
2006/01/21(土) 16:40:25ID:1jcdXAZV0284nobodyさん
2006/01/21(土) 16:43:47ID:???0286nobodyさん
2006/01/21(土) 21:35:07ID:???unixタイムスタンプから1か月分引くとかいう面倒な方法しか
思いつきませんでしたorz
0287nobodyさん
2006/01/21(土) 21:45:49ID:???$lastmonth = mktime(0, 0, 0, date("m")-1, date("d"), date("Y"));
echo date ("M-d-Y", $lastmonth);
これでいいのかな・・・?
0291nobodyさん
2006/01/21(土) 23:00:46ID:???マニュアルを読まなかったら、自力で繰り上げやら繰り下げ処理を書いたり、
その辺の面倒を見てくれそうなカレンダーライブラリを探そうとしてただろうなぁ。
0292nobodyさん
2006/01/21(土) 23:23:32ID:???0293nobodyさん
2006/01/21(土) 23:37:40ID:E6I0jSws0294nobodyさん
2006/01/22(日) 02:16:59ID:???例えば
10 11 12 13 14 15
とあったとすると
両者の合計が出来るだけ平等になるように二つに分けたいのです。
この場合ですと
10 15 12
11 14 13
の二つに分けたいのです。
よろしければお力添えお願いします。
0296nobodyさん
2006/01/22(日) 02:37:50ID:???行列問題…になるのかもです。
12種類の数字を合計値が出来るだけ平等になるように二つのグループに分けるような動作をするのをPHPによる記述で作ろうと思ったのですが、
全ての組み合わせを記述してすると12C6で膨大な記述が必要になってしまうので
何かスマートな方法がありましたらご教授願いたいです
0297nobodyさん
2006/01/22(日) 02:52:54ID:???どっちかっつーとアルゴリズムの問題だと思うので言語関係ないんじゃ…。
(これを一発で解決するような言語ってどっかにあるの?)
でも記述は長くならないと思うけどね。
長いのはループ回数&処理時間じゃないの?
0298nobodyさん
2006/01/22(日) 03:21:41ID:???ありがとうございます。一つずつ組み合わせを記述してベストな組み合わせを導いてみようと思います
0301nobodyさん
2006/01/22(日) 04:38:46ID:pSXDGSqgPHPにHTMLを吐き出させたら、ソース通りに行きません。
どうなってるのでしょうか?
PHP5+apache+winxpと、PHP4+apache+赤帽の2種類のマシンで試してみましたが、どうにもうまくいきませんでした。
ブラウザはIE6.0です。
現状は、EUC+LFで保存したPHPファイルをブラウザで見ようとすると、CSSで指定していた色やborderの線がちゃんと表示されない。
やりたいことは、外部呼出しを設定しているHTMLをコード通りに表示させたい。
やったことは、PHPで吐き出した画面上でブラウザのエンコードの種類をEUCからShift_JISに変えたらCSSの通りに色がついたり、borderもきちんと表示されました。
あとは、ソースの見直しとHTML単独での表示テスト。
EUCっていうのはCSSとの相性が悪いのでしょうか?
PHPでちゃんとCSSの表示が上手くいくやり方を教えていただけませんか。
どうしても原因がわからないので、よろしくお願いします。
0302nobodyさん
2006/01/22(日) 05:22:08ID:???それはPHPがどうのこうのってのは全然関係ないと思われ。
EUCコード自体はHTMLとの相性も問題ない。
CSSにShift-JISでコメント入れちゃってるとかいうオチじゃないよな?
0303nobodyさん
2006/01/22(日) 05:32:34ID:pSXDGSqgはぅあ...
そういうオチだったorzз
普通に/* hogehoge */って囲んでたっす('A`)
これって、Shift_JISダッタンディスカー!?
0305nobodyさん
2006/01/22(日) 05:51:04ID:???0306nobodyさん
2006/01/22(日) 05:51:31ID:pSXDGSqgお、おいらただの文字コードとしか思ってなかったので。。。
さっき試してたんですが、テキストファイルの読み込みなんかも2バイト文字があるときちんと読み込んでいないようで。。。orz
EUCが吐き出せないのってどんな文字があるんだろう('A`)
0308nobodyさん
2006/01/22(日) 06:14:27ID:pSXDGSqgお、おいらただの文字コードとしか思ってなかったので。。。
さっき試してたんですが、テキストファイルの読み込みなんかも2バイト文字があるときちんと読み込んでいないようで。。。orz
EUCが吐き出せないのってどんな文字があるんだろう('A`)
0309nobodyさん
2006/01/22(日) 06:14:49ID:???CSSの先頭に@charset "EUC-JP";とかかいとくといいんでないの?
0310nobodyさん
2006/01/22(日) 06:20:18ID:pSXDGSqgググって見たけど、イマイチわからないなぁ。
Shift_JISとかが、文字コードだって認識はあるけど
CSSの/**/で囲ったコメント以下が読み込まれてないのは、わからないのです。
0311nobodyさん
2006/01/22(日) 06:30:52ID:???0312nobodyさん
2006/01/22(日) 06:34:32ID:pSXDGSqgありがとです。。
CSSは普通にスタイルの指定をしているのみで、他の記述は一切していませんでした。
試してるんですけど、テキストファイルから日本語もちゃんと取り出せるようにするには
どうしたらいいのでしょうか?
エンコードの指定を読み込むときにするべきですか?
それとも、テキストファイル自体をEUCで保存or頭にcharset指定??
0314nobodyさん
2006/01/22(日) 06:36:09ID:???0315nobodyさん
2006/01/22(日) 06:36:28ID:pSXDGSqgそのようです。
CSSの/*hogehoge*/がShift_JISのようだったんですが
どこでそれが分かるのか、確認したいのですが術を知らず。。。。orz
0316nobodyさん
2006/01/22(日) 06:39:06ID:???それなりにまともなテキストエディタを使えば今の文字コードを表示してくれる。
とりあえずWindows標準のメモ帳で読み込んで、普通に漢字が表示されたらShift-JIS。
文字化けを起こしたらEUCなりUnicodeなりのShift-JIS以外の文字。
0317nobodyさん
2006/01/22(日) 06:40:07ID:???0318nobodyさん
2006/01/22(日) 06:41:07ID:pSXDGSqg$fuga=fopen("hoge.txt","r");
が主ですが、たまに
$fuga=file("hoge.txt");とかも使います。
0319nobodyさん
2006/01/22(日) 06:42:39ID:???読み込み自体には文字コードは関係ないぞ。printなどで出力すると関係するが。
0320nobodyさん
2006/01/22(日) 06:46:10ID:pSXDGSqgフリーのエディタを使ってますが今の文字コードや改行の種類は分かるようになっています。
ただ、PHPファイルの中に記述したり読み込んだりするものたち(例えば外部のテキストやCSS)のコードをどうやってPHP仕様に合わせればいいのかがググって見てもわかんないのです。
0321nobodyさん
2006/01/22(日) 06:48:38ID:???HTMLをEUCで出力してるならそれで読み込むCSSもEUCで保存しろ。
テキストファイルは処理の仕方による。読み込んでそのまま変換もせずに
出力してたり検索に使ってたりするなら最初からEUCで保存しとけ。
0322nobodyさん
2006/01/22(日) 06:50:40ID:???EUCの方が都合がいいのはPerlだって全く同じだ。
同様にPHPでもPerlでもShift_JISで書けるぞ。
0323nobodyさん
2006/01/22(日) 06:51:09ID:pSXDGSqg何を持ってしてかは分かりませんが、
テキストファイルを読み込んでみたんです。それで、それをHTMLに吐き出させるようにしたのに正しく出力されませんでした。
HTMLに吐かせる前にprintで調べると、数字や小文字のアルファベットは正常にできてました。ただ、日本語のところだけは文字化けしたり、空白だったり。。
もうorzなんです。
0324nobodyさん
2006/01/22(日) 06:53:39ID:pSXDGSqg最初からEUCに変換は都合上できないので、PHP上で変換したいのですが
そういう関数がありましたっけ?
0325nobodyさん
2006/01/22(日) 06:59:10ID:pSXDGSqgそうなんですか、知りませんでしたorz
PHPはEUCで保存しないと文字化けするもんだとばかり。。。
perlをEUCで保存した経験はなかったです。勉強になりました_ト ̄|○
0326nobodyさん
2006/01/22(日) 06:59:56ID:???0327nobodyさん
2006/01/22(日) 07:00:31ID:???0329nobodyさん
2006/01/22(日) 07:10:10ID:pSXDGSqgググって来ました!
明確な助言で超わかりやすかったです。ありがとう。
0330nobodyさん
2006/01/22(日) 07:37:21ID:???0331nobodyさん
2006/01/22(日) 07:55:57ID:???0332nobodyさん
2006/01/22(日) 08:11:50ID:???0334nobodyさん
2006/01/22(日) 10:19:09ID:???http://php.benscom.com/images/php_snow.gif
ファイル名にsnowって書いてあるね。
0336nobodyさん
2006/01/22(日) 12:29:09ID:nt4QJioJ配列をグローバル宣言するにはどうしたらいいのでしょうか?
0339nobodyさん
2006/01/22(日) 14:29:08ID:???<?php
mb_language("Japanese");
$address[] = "********@docomo.ne.jp";
$headers = "From: *-*-*-*-@docomo.ne.jp\r\nReply-To: *-*-*-*-@docomo.ne.jp";
mb_send_mail($address[$i], "お知らせ", "お知らせでした。\nThe End.", $headers);
?>
これだと文字化けしてしまいました。
日本語でメールを送る場合のエンコードはどうすればいいんですか?
ちなみにスクリプトのエンコードはShift-JISになってます。
0340nobodyさん
2006/01/22(日) 14:37:28ID:???0343nobodyさん
2006/01/22(日) 17:26:06ID:???$yは年で$mは月です。
$w = date('w', mktime(0, 0, 0, $m, 1, $y));
return(23-$w);
こうしたら、1日が日曜日の場合、第4月曜になってしまいますorz
急遽
if($w){return(23-$w);} else {return(16-$w);}
としてるのですが、もっとスマートな方法があったら教えてください。
0344nobodyさん
2006/01/22(日) 17:56:17ID:???ためしにsshでそのphpの所有者をrootにして実行したのですが通りませんでした。
そこで、shell_exec関数で php XXX.php >>/dev/null と書いて実行したのですが通りませんでした。
php5環境でchownを使われてる方、何か特別な設定を施されましたでしょうか。
ちなみにサーバのルートドキュメントでそのphpは実行されてまして、
作成されたディレクトリのデフォルトの所有者はapacheとなっています。
この所有者をchownでrootなど他の所有者に変更したいです。
0345nobodyさん
2006/01/22(日) 18:14:11ID:???個人的に作ったツールで第3月曜日を取得するのは以下のような方法で取得していた。
これで問題があるようなら報告よろしく。
21 - (int)date("w", mktime( 0, 0, 0, $month, 20, $year));
0346nobodyさん
2006/01/22(日) 18:20:39ID:???http://jp.php.net/manual/ja/function.chown.php
0347nobodyさん
2006/01/22(日) 18:28:25ID:???> phpの所有者をrootにして実行した
この時の権限チェックは、
・実行プログラム - zend謹製のphpプログラムそのもの
・読み込むファイル - 対象のphpスクリプトファイル
に対して行われるので、スクリプトの所有者を弄っても無意味ですよ。
chownを使わないで済むように作るか、chownの操作対象を含む親ディレクトリの所有者や
パーミッションを適切なものに変更するのが一般的なやり方です。
0348nobodyさん
2006/01/22(日) 18:50:11ID:???レスありがとうございます。
試しに次のことをやってみたのですがやはりOperation not permittedとエラーが出てしまいます。
・phpがあるさらに上層のディレクトリの権限を777に
・試しにルートディレクトリからそのスクリプトがあるディレクトリをrootの所有に
ちなみにphpのプログラムは念のため確認してみましたが所有はrootでした。
mkdirでディレクトリを作成してそのディレクトリの権限をアカウントの者にしたいのですが、
apacheの所有でディレクトリが作成されてしまいまて、効率悪いですがシェルで直接手直しするしかないようです(´・ω・`)ショボーン
0349nobodyさん
2006/01/22(日) 19:07:39ID:???「phpのプログラムの所有」うんぬんとか言ってる時点で見当違い。
apache経由で動かしてるんだから、apacheの動かしているユーザーでしか動かせない。
そのスクリプト、sshで、sudoなり、suしてrootになって実行すれば動作するだろ。
そういうことだ。
0350nobodyさん
2006/01/22(日) 20:40:16ID:???Undefined になるよな。
E_NOTICEだとエラーの詳細がわからんし・・・
おまいらどうしてる?
0351nobodyさん
2006/01/22(日) 21:02:03ID:???0352nobodyさん
2006/01/22(日) 21:17:08ID:???作りたいんですけどえらーになってしまう。
foreach ($play as $k ){
$counter[$k['sex']]++;
}
0354nobodyさん
2006/01/22(日) 21:33:57ID:???0355nobodyさん
2006/01/22(日) 21:38:26ID:???その部分が悪いわけじゃない。
ちゃんと array_key_exists でチェックして処理してくれ。
はい次。
0356nobodyさん
2006/01/22(日) 21:40:06ID:???カウンターのインデックスはDBからの値であって
宣言してないわけだよ。そこへインクリメントしてるから
エラーになるわけだ。 わかんないのか?
$counter[?????]++;
0357nobodyさん
2006/01/22(日) 22:31:49ID:???レスdクスです。
>そのスクリプト、sshで、sudoなり、suしてrootになって実行すれば動作するだろ。
説明不足で申し訳ございません;
ブラウザで実行させての動作ということでして;;
もしかしてchownはシェルで実行させないと元々動かない感じだったでしょうか
>apache経由で動かしてるんだから、apacheの動かしているユーザーでしか動かせない。
それともapacheで動かせる権限にディレクトリなりファイルなりを変更すればブラウザでも行ける感じでしょうか
未だに右往左往しておりますorz
ちなみにphp5系+apahce2系をFedoraCore3で動かしてます。
(FreeBSDにしようと思いましたが環境の都合でFCを選択しました)
0358nobodyさん
2006/01/22(日) 22:38:51ID:???0359nobodyさん
2006/01/22(日) 22:47:31ID:???ブラウザがアクセスするのはサーバなんだから
サーバの権限で動かせるようにすればおk
多分サーバは nobody か apache ユーザ/グループで動かしてるんだろうから
chown -R apache:apache /var/www とかすれば?
0360nobodyさん
2006/01/22(日) 23:21:57ID:???0362nobodyさん
2006/01/23(月) 00:07:48ID:???<form action="./mailform.php">
■件名<br>
<input type="text" name="subject"><br>
■本文(※必須)<br>
<input type="text" name="message"><br>
<input type="submit" value="送信"></form>
<?php
$to = "xxx@xxx.com";
if( $message ){
mb_language( "Japanese" );
mb_send_mail( $to, $subject, $message );
echo ( "送信しました" );
}
?>
</body></html>
簡単なメールフォームを作ってみましたが、
日本語を件名等に含ませると???となります。
どうすればいいでしょうか?
マニュアル読みましたがうまくいかなく↑な風になりました。
よろしくお願いします。
0363nobodyさん
2006/01/23(月) 01:21:28ID:???なるほど・・・1日を基点として3週間の最後の日から引けば確かに月曜日になりますね。
ありがとうございますm(_ _"m)ペコリ
date("w")って数値で返ってくるのですが、string型なんですね(;´▽`A``
>>362
mb_internal_encoding指定してやってみて
0365nobodyさん
2006/01/23(月) 02:27:47ID:???指定した文字列を抜き出すにはどうすればいいでしょうか?
またそのデータ内に指定した文字列がいくつ入っているかも出来ないでしょうか?
0366nobodyさん
2006/01/23(月) 02:38:53ID:???$cnt = preg_match_all('/文字列/', file_get_contents("ファイル名"));
0367nobodyさん
2006/01/23(月) 04:32:07ID:???HTML convert time to 0.015 sec.
みたいな部分はどのように記述されてるのでしょう?
wikiのソースを見ても全くわからず・・・
PHPで動的なサイトを作る練習をしているんですけど、
htmlが、どのくらいの速さで出力されるのか知りたいのです。
どなたかわかるかた教えてください。
0368nobodyさん
2006/01/23(月) 04:41:51ID:???list($usec, $sec) = explode(" ", microtime());
return ((float)$usec + (float)$sec);
}
$start_time = microtime_float();
:
メイン処理
:
$end_time = microtime_float();
printf("HTML convert time to %4f sec.", $end_time - $start_time);
とかいう感じじゃないの?
0369nobodyさん
2006/01/23(月) 06:30:22ID:zyAl85LCphp1.phpで
$_SESSION[$key1][$key2]
のデータを入力したものを
php2.phpで参照しようとしてもできませんでした…
0371nobodyさん
2006/01/23(月) 09:59:38ID:???それぞれの利点欠点を教えてください。
0372nobodyさん
2006/01/23(月) 10:04:36ID:???0373nobodyさん
2006/01/23(月) 10:10:50ID:???0374371
2006/01/23(月) 10:17:45ID:???個人的には、性能よりも標準で、つまりより多く使われている方を選択したいのですが。
0376371
2006/01/23(月) 10:23:46ID:???0377nobodyさん
2006/01/23(月) 10:30:40ID:???0378nobodyさん
2006/01/23(月) 10:52:30ID:???0379nobodyさん
2006/01/23(月) 11:15:42ID:???0380nobodyさん
2006/01/23(月) 11:17:16ID:???例えば2×3の配列あって前の配列?の最後の配列を取りたい場合は
end(array)でとれると思うのですが
前の配列の最後の中にある配列の特定の値を取りたい場合はどうしたらいいのでしょうか?
array[0][2]という感じで。
一旦end(array)を取得して次にarray[2]とか2回に分けないといけないのでしょうか?
0381nobodyさん
2006/01/23(月) 11:33:19ID:???0382nobodyさん
2006/01/23(月) 12:10:22ID:???0384nobodyさん
2006/01/23(月) 13:27:42ID:???if($i==1){
?>
<TABLE>
<?php
}
?>
上のような記述方法って正式に認められてますでしょうか?
0386nobodyさん
2006/01/23(月) 13:33:31ID:???どうすればよいのでしょうか?
http://www.yahoo.co.jp/hogehogehoge/hoge/hoge.htm
↓
http://www.yahoo.co.jp
http://google.com/hoge.htm
↓
http://google.com
のようにしたいのですがどうすればよいでしょうか?
0387nobodyさん
2006/01/23(月) 13:35:27ID:???0388nobodyさん
2006/01/23(月) 13:40:57ID:???0389nobodyさん
2006/01/23(月) 13:58:04ID:???pregじゃダメ?
$url = preg_replace("/^(http:\/\/[^/]+).*/","$1",$url);
あるいは
$tmp = parse_url($url);
$url = $tmp['scheme'] . '://' . $tmp['host'];
0391nobodyさん
2006/01/23(月) 14:14:18ID:???parse_url()使ったほうが楽な気がする
$array = parse_url($url);
print $array['scheme'].'://'.$array['host'];
0392nobodyさん
2006/01/23(月) 14:26:03ID:???個人的にはオススメしない
0396nobodyさん
2006/01/23(月) 18:12:39ID:???手抜き版
preg_match_all('/(\$GLOBALS\[[a-zA-Z_]+\w*\]|\$GLOBALS\[\'[a-zA-Z_]+\w*\'\]|\$GLOBALS\[\"[a-zA-Z_]+\w*\"\]|\$[a-zA-Z_]+\w*)/', $src, $match);
$list = array_unique($m[0]);
var_dump($list);
$XXXX と $GLOBALS[〜] だけ抜き出す。
0397nobodyさん
2006/01/23(月) 18:13:29ID:???$list = array_unique($m[0]); は $list = array_unique($match[0]);
0398nobodyさん
2006/01/23(月) 19:09:38ID:???$var[] = "";
ってどういう意味でしょうか?
0399nobodyさん
2006/01/23(月) 19:12:07ID:???array_push( "", $var );
とほぼ同じ
0400nobodyさん
2006/01/23(月) 19:36:32ID:???array_push( $var, "" );
だよね。
しかも$varを配列で宣言しておかないとワーニングになるし。
0401nobodyさん
2006/01/23(月) 20:08:36ID:???一応解決?しましたので似たような人のために自分が取った方法を書いてきます。
sudoでapacheとnobadyにchownの権限を与えて後はsystem関数で出力 です。
何故かapacheとnobady両方に権限を与えてやらないと通りませんでした。
apacheで動かしてるんだからapacheだけでも行けそうな気がするのですがnobadyがないとFALSEを返すようです。
ちなみにテスト環境は/homeへテスト用アカウント発行して chown -R で再帰的に全てのフォルダ、ファイルを一旦apacheの所有にしてテストしました。
実行はブラウザでアクセスして動かしました。
蛇足ですが、スーパーバイザー権限てroot権限と解釈しているのですがあってますでしょうか
sudoでやりたいことは実現したのですがapahceとnobadyにchown権限を与えているという現状がかなりリスクを背負っているようで回避策を探しています・・・。
0402nobodyさん
2006/01/23(月) 21:40:22ID:???残念だが nobady ではない。 nobody だ。
0403nobodyさん
2006/01/23(月) 21:51:41ID:???データベースからセッション情報を取得してから
https://www.stackasterisk.jp/tech/php/searchAction.do?cid=18
のPHP出力をダウンロードさせるの情報を参考にして
phpを作ったのですが正常に反応しません。
セッション情報を取得せずに
試してみると上手くいくので間違いなくsession、ヘッダーあたりで問題があると
思うのですが、解決策はないでしょうか?
ちなみにデータベースからセッション情報を取得するのは
pearのDB.php使ってmysqlに接続しています。
0404nobodyさん
2006/01/23(月) 21:53:27ID:???0407nobodyさん
2006/01/24(火) 01:41:43ID:???4年通ってたが今気づいた
0408nobodyさん
2006/01/24(火) 03:54:25ID:9b512MA6シフトJIS使ってたら、ファイルにデータを保存したりそれを読み込んで表示したり
したときにおかしくなったので、テキストを全部EUC-JPで扱いたいです。
php.iniでは、
mbstring.language = Japanese
mbstring.internal_encoding = EUC-JP
mbstring.http_input = auto
mbstring.http_output = EUC-JP
mbstring.encoding_translation = On
mbstring.detect_order = auto
mbstring.substitute_character = none
としているのですが、スクリプトでファイルを書き換えるとEUC-JPのファイルも
シフトJISに書き換えてしまいます。
どこが原因でしょうか?
0409nobodyさん
2006/01/24(火) 04:07:26ID:???アップロードするツール(FFFTPとか)の余計なエンコード変換機能とか。
# FFFTPのはファイル"名"の変換だけだっけ?
0411408
2006/01/24(火) 04:35:19ID:???んと、今ローカルでIIS(ver5.1)で動かしているんです。
EUC-JPにしたログファイルをスクリプトで書き換えたあと
ログファイルを見てみると、シフトJISになっているという感じです。
0412nobodyさん
2006/01/24(火) 06:14:37ID:QMkPpjCAスクリプト内から知る良い方法はありますか?
0413nobodyさん
2006/01/24(火) 09:17:44ID:???0414nobodyさん
2006/01/24(火) 10:45:38ID:???・その設定の状態のもとで、スクリプトが本当に動いているのか。
ログに設定の状態を書き込むようにしてチェックしてみるとか
・スクリプト自体のエンコードが本当にEUC-JPか。そのスクリプトの中で
単純なファイルの書き込みを試してみる。例えば
$fp = fopen('test.txt','w');
fputs($fp,'漢字');
fclose($fp);
0415nobodyさん
2006/01/24(火) 11:05:13ID:???確認したいんだけど、そのスクリプト既存のログファイルを読み込んで
何かデータを追加して書き込み直す処理だけをしてるのかな。
ここの"何かデータ"にあたるのはどうやって生成してる?
プログラムの設計者が敢えて変換を行ってなければ
PHPの設定如何に関わらず、ファイルの入出力に関しては自動に変換などはしない。
取り合えず>>414で簡単なファイル出力してチェック。
0416nobodyさん
2006/01/24(火) 11:10:54ID:???特になにもせず # configure && make && make install で
以下が md5 チェックを失敗してインストールされませんでした。
[PEAR] Archive_Tar: bad md5sum for file /usr/local/lib/php/Archive/Tar.php
[PEAR] Console_Getopt: bad md5sum for file /usr/local/lib/php/Console/Getopt.php
[PEAR] HTML_Template_IT: bad md5sum for file /usr/local/lib/php/HTML/Template/IT.php
これってバグなんでせうか?
0417nobodyさん
2006/01/24(火) 11:19:16ID:???0418nobodyさん
2006/01/24(火) 12:47:19ID:???原因が分かりました。レスありがとです。
pear 以下の tar ファイルにはやっぱり問題があって、
修正が行われたようです。。。
http://cvs.php.net/viewcvs.cgi/php-src/ChangeLog?r1=1.2233&r2=1.2234
2006-01-22 Greg Beaver <greg@chiaraquartet.net>
* (PHP_4_4)
pear/packages/Archive_Tar-1.3.1.tar
pear/packages/Console_Getopt-1.2.tar
pear/packages/HTML_Template_IT-1.1.tar
pear/packages/Net_UserAgent_Detect-2.0.1.tar:
fix bug #36002: md5sum checksum failures on install
とりあえず snapshot 版では fix されてるっぽいので、ここだけ差替えて
利用しようと思います。
0420419
2006/01/24(火) 13:27:08ID:???つうことは公開してたtar玉とそのチェックサムを
生成した対象が異なってたつうことか。
# 手作業が介在してるのかね。
0421nobodyさん
2006/01/24(火) 14:25:37ID:???ソース文字コードSJIS
mb_language('Japanese');
mb_internal_encoding ('shift_jis');
$Subject="株式会社";
$rcd = mb_send_mail($MailTo, $Subject, $Message, $MailFrom);
化けてしまう文字 株
化けた結果 *
$Subject="会社株式";
とかの場合には問題なく表示できます。
同じような状態でEUCで記述した際にも、
登録 という文字が {2 に化けてしまいました。
PHP 4.4.1
よろしくお願いします
0423nobodyさん
2006/01/24(火) 14:58:21ID:dZqRn44Xphp.iniでextension=php_xslt.dllの前の;をはずすだけでは導入できてないようです
他に何かしなければならないのでしょうか?
ちなみにAtomを使うプログラムは
ttp://page2.xrea.jp/expack/
です
PHPのバージョンは4.4.2です
0424nobodyさん
2006/01/24(火) 15:02:44ID:???テキストにその数字を書き込む。
というコードを作成したとします。
次にまたページを開いた時に
ランダムで1〜100の中から一つ数字を選んで
テキストに書き込みたいのですが
既にテキストに記入されている数字は選ばないようにしたいです。
なにか上手くやる方法はありませんでしょうか?
0425nobodyさん
2006/01/24(火) 15:06:34ID:???その「php.iniでextension=php_xslt.dllの前の;をはずす」行為はどこで得た知識?
(php_xslt.dllを使うこと自体は別に間違いではないけど)
取り合えず、ちゃんとPHPのマニュアル嫁。
0426nobodyさん
2006/01/24(火) 15:10:34ID:???事前にテキストを読み込んで、その値を使わないようにする。
ランダム値を生成して「その値」と等しければ、再度ランダム値を生成
その生成した値もまた…って処理をすれば良いんでないの。
0427nobodyさん
2006/01/24(火) 15:23:49ID:dZqRn44Xありがとうございます
なんとか導入することができました
0428nobodyさん
2006/01/24(火) 15:27:08ID:???結局、どこかの場所に使っていない数字を保存しておく必要がある。
閲覧ユーザーごとにやりたいなら、未使用数字を配列にしてセッションに格納
サイト単位でやりたいのなら、未使用数字をDBなどに格納
0429nobodyさん
2006/01/24(火) 15:33:13ID:joG44Ifcどうかを判定するにはどうしたらいいのでしょうか?
0432nobodyさん
2006/01/24(火) 16:13:07ID:joG44Ifc一通り日本語の部分はよみましたが、どこに書いてるんですか?
>>431
やはり一発で確認する方法は無いという事ですか…
0433nobodyさん
2006/01/24(火) 16:36:57ID:IB/gJro7SQL文でデータを取り出せるようなクラスとかってどこかで配布していないでしょうか?
0435nobodyさん
2006/01/24(火) 17:25:12ID:???すでに他の人にflockされてるファイルをflockしようとしたら、
flockが解除されるまで待たされるかエラーが返ってくるから
それで一発で判定できるだろ。
0436nobodyさん
2006/01/24(火) 17:35:19ID:???ざっくり書くとこんな感じでとりあえずいける。
if ( $fh = fopen( $filename, 'r+b' ) and flock( $fh, LOCK_EX ) ) {
ftruncate( $fh, 0 );
書き込み
}
ロックはその書き込みたいファイルだけじゃなくて他の処理も対象に
含まれる可能性があるので、絶対にこの書き方にすれば ok という
解は存在しない。十分練習を積むべし。
ちなみに、flock は実際にはファイルをロックするんじゃなくて
ロックしますという宣言をするだけなので、flock を使わずに
ファイルを変更することを止めることはできない。その辺注意ね。
0437nobodyさん
2006/01/24(火) 18:07:54ID:UpPUFgZMサーバ:
Redhat Enterprise Linux 3
Apache 1.3.33
PHP 4.3.11
クライアント:
Windows XP Pro SP2
Internet Explorer 6.0 SP2
クライアントにおいてクッキーが受け付けられません。
サーバからのレスポンス(PHP経由)ではSet-Cookieヘッダが出力されているのに、
その直後のクライアントからのリクエストになぜかCookieヘッダが付加されないようです。
Set-Cookieヘッダは「Set-Cookie: PHPSESSID=hogehoge; path=/」のように、
一時的なクッキーを設定するようヘッダを出力しています。
サーバにはIPアドレスでアクセスしており、
他のウェブサイトにドメインでアクセスするとクッキーを受け付けることが出来ます。
セキュリティの設定は全てのクッキーを受け入れるようになっています。
何か参考になる情報をご教示頂ければ嬉しいです。
0438nobodyさん
2006/01/24(火) 18:17:38ID:???ヘッダはどうやって確認してるの
俺はFireFoxにWebDevelopperという拡張機能を追加してるんだがデバッグに便利だよ
レスポンスヘッダもクッキーの確認も簡単
0439437
2006/01/24(火) 18:20:48ID:UpPUFgZMちょっとそのWebDevelopperというのも調べてみます、情報有難うございました!
0440nobodyさん
2006/01/24(火) 18:44:37ID:???WebDevelopperのレスポンスヘッダ表示ってコンテンツ表示と
同時に別のウィンドウに表示できる?
Information → View Response Headers だと
都度レスポンスを取りにいってるみたいで使い方が限定されるので
Fxの拡張だと http://livehttpheaders.mozdev.org/ の方が使い勝手がいい。
0441nobodyさん
2006/01/24(火) 19:38:15ID:???たとえば、
http://example.com/
というURLの場合、index.htmlなりindex.phpなりという文字列を取得したいのですが、
どのようにすればいいでしょうか?
0445nobodyさん
2006/01/24(火) 21:51:09ID:OyZLn4Ht$logfile = "hoge.txt";
srand( (double)microtime()*1000000 ); //乱数処理
$a=round( rand(0,10) );
$lines_e = @file($logfile);
while (list($num, $line) = each($lines_e)){
list($num,$mess) = split("\t",$line);
if($num==$a){
do {
echo $a.' = '.$num.'<br>';//テスト用に表示
srand( (double)microtime()*1000000 ); //乱数処理
$a=round( rand(0,10) );
} while ($num!=$a);//$numと$aが違くなるまで繰り返し
}
}
?>
hoge.txtには
1 aaaa
2 bbbb
8 aaa
6 eeee
のように番号とメモがタブ区切りで入っています。
ファイルに書き込むときに同じ番号がある場合
もう一度ランダムで重複しない番号を出す処理を考えていたのですが
上のソースではうまく出来ません。
どのようにすればよいでしょうか?
0447445
2006/01/24(火) 22:12:26ID:???このやり方でなくても
ファイルにある数字と重複しないランダムな数字の
出し方があればお願いします。
0448nobodyさん
2006/01/24(火) 22:36:08ID:???最初にファイル読んでるときに連続していなければ間の番号、
最後まで連続してたら最終+1した番号を持つようにすれば
重複はしないだろう。
0450nobodyさん
2006/01/24(火) 23:13:35ID:???あい。
$logfile = "hoge.txt";
$num_max = 10;
$lines_e = @file($logfile);
$num = range(1, $num_max);
srand( (double)microtime()*1000000 );
foreach($line_e as $l) {
$n = split("\t", $l);
if(($pos = array_search($n[0], $num)) != FALSE) {
unset($num[$pos]);
}
}
shuffle($num);
print $num[0];
0451nobodyさん
2006/01/24(火) 23:41:23ID:???<?php
$fp = fopen('log.txt','r+');
while( $ary = fscanf($fp,"%d\t%s\n") ){
$log[$ary[0]] = $ary[1];
}
srand((microtime()*1000000));
do{
$a = round(rand(0,10));
}while(isset($log[$a]));
$str = $a."\t".'comment';
echo $str;
fputs($fp,$str."\n");
?>
このままだと、使い切ると無限ループになるがな。
0452nobodyさん
2006/01/25(水) 01:11:42ID:???b.php の中には関数が山ほど定義されています。
この関数の一部を c.php にコピーし、
b.php の先頭に include('c.php'); と書いたとき
これって同じ動作が保障されていますか?
ぱっと見良さそうなんですが
動作しなくなる特別な場合とかありますか?
0453nobodyさん
2006/01/25(水) 01:14:23ID:???コピーなの?移動じゃなくて?
同じ関数を複数のファイルで定義してまとめて読み込んじゃうと
関数の多重定義エラーで止まっちゃうよ。
定義を別ファイルに移動して多段階で読み込むだけなら無問題。
0456nobodyさん
2006/01/25(水) 02:00:07ID:???ページ2でバリデーションされるにはどうするのがいいですか?
つまり、ランダムに表示させた俳句番号が正しく送られてきているかチェックしたい。
しかしランダムの数値をサーバ側で持たなくてはいけないような気がするのですが、
session_idを使ったりするのでしょうか。
0457nobodyさん
2006/01/25(水) 02:07:25ID:???0458nobodyさん
2006/01/25(水) 02:11:56ID:???input name="point[表示させた俳句ID]" value="点数"
こんな感じで配列渡しで終わったりしないのか?
0459nobodyさん
2006/01/25(水) 02:14:39ID:???どのくらいの厳密性を要求してるのかにもよる気がするんだけど、
各採点ボタンの俳句No.+全No.順リスト1個の組み合わせにして
両者が合致してればOKにするとか、不安ならさらにリスト側をMD5で
暗号化しとくとかでも十分な気がする。
(それでも不安ならCRCでも付加しとけば良かろう)
個人的にはそういう一時的遷移情報の照合でセッションを使うのは
処理コストが高い+新規ウインドウを出すと矛盾しかねないので好かない。
0460nobodyさん
2006/01/25(水) 02:22:55ID:???0461nobodyさん
2006/01/25(水) 02:28:13ID:???0462nobodyさん
2006/01/25(水) 02:44:08ID:???そのIDが次のページでチェックする時に保持されないので困っている次第です。
>>459
ちょっと理解できなかったです…すみません。
全No.順リスト1個ってなんでしょうか?
厳密性は、
DB上のPRIKEYが俳句No.となっていて<input name="俳句No.(つまりPRIKEY)"... です。
これだと好きなものに適当に点数をつけられるのは嫌かなー位です。
0463451
2006/01/25(水) 02:48:59ID:???451の悪いところを挙げようか?
例えば0〜100億の範囲の内、1〜100億までを使い切っていたとすると
最後に残っている0に合致するまでランダムに値を生成しないとならないので
相当なロスがあるよ。1〜100億までを使い切るまでにも、
そういったロスが積み重なっている筈。
0464450
2006/01/25(水) 03:10:28ID:???そういう意味では450のは多くても少なくても処理時間は極端には差がないけど、
最初に「使用可能なNo.のリスト」を生成するのでメモリを食いやすく、初回から
それなりの処理時間を必要とするかもね。
多分、まだデータの少ないうちなら451の方が処理速度が速い。(希ガス)
処理速度的には最後のランダム要素抽出ってshuffle→[0]抜き出しよりも
randで抽出位置の決定をやった方が速いかもしんない。
(PHPのshuffleの速度ってベンチ取ったことないから分かんないけど分量増えると遅そう…)
0465459
2006/01/25(水) 03:22:27ID:???要するに
<input type=hidden name="俳句No[0]" value="3">
<input type=radio name="採点[0]" vakue="1">...<input type=radio name="採点[0]" vakue="5">
<input type=hidden name="俳句No[1]" value="5">
<input type=radio name="採点[1]" vakue="1">...<input type=radio name="採点[1]" vakue="5">
:
<input type=hidden name="俳句No[9]" value="2">
<input type=radio name="採点[9]" vakue="1">...<input type=radio name="採点[9]" vakue="5">
とかいう実際の10個の俳句フォームに加えて
<input type=hidden name="俳句list" value="3,5,〜,2">
という、[0]〜[9]にそれぞれ何番を入れたかを連結したデータも一緒に入れてやって、
submitされたら
if(implode(",", $俳句No) != $俳句list) { echo "データが不正です"; }
とかすればいいんじゃないの?ってこと。
で、このリストが丸見えだとそっちも操作されそうで怖いと言うのであれば
<input type=hidden name="俳句list" value="<?=md5("3,5,...,2")?>">
とmd5化してやって、
if(md5(implode(",", $俳句No)) != $俳句list) { echo "データが不正です"; }
としちゃえば、そうそう容易には改変できないでしょ、ということ。
0466nobodyさん
2006/01/25(水) 03:33:12ID:???451が最後に書いてる「全ての番号を使い切ってしまったかどうか」を判定させるなら
450の処理方法の方が格段にやりやすい。
多分、451はその処理を加えるだけで急激に速度が落ちる。
0467466
2006/01/25(水) 03:35:06ID:???単純に if(count($log) >= 11) とかで一発で判定できちゃうね。
すまそ
0468nobodyさん
2006/01/25(水) 04:05:39ID:???す、すごい技ですね。考えもつきませんでした。
ちょっと理解できなかったのは、俳句listには何が入るのですか?俳句No[]かな?
あれ?POSTで送られてくる値って前ページHTMLと同じ順番で来るんでしたっけ?
0469nobodyさん
2006/01/25(水) 04:17:23ID:???POST後に俳句Noをimplodeで連結して判定してんだから
当然listに入れるのも俳句Noをimplodeしたものだよ。
あとPOSTの送信順はnameを配列変数名にしてれば気にする必要なし。
name="俳句No[3]"はPOSTされると$_POST["俳句No"][3]に格納される。
0470nobodyさん
2006/01/25(水) 04:53:17ID:???やっと理解できたと思います。ありがとうございます。
上のソースだと valueのところを好きなようにいじって、md5(...)のとこも
好きなようにいじったように入れれば、任意の番号をいじれるじゃん!
って思ったけど、md5をsha1とか違うアルゴリズムにすればわからないわけですね…
POSTの送信順は、関係ないですね。俳句No[]は、0-10で並ぶわけですから。
非常に勉強になりました。
0471nobodyさん
2006/01/25(水) 05:04:59ID:???cryptとか、補助キーを使う暗号にすればいいね。
0472nobodyさん
2006/01/25(水) 05:16:44ID:???だから最初にどのくらいの厳密性を要求してんのか、って聞いたんじゃん。
そこの強度を上げる方策は色々あるんだから必要に応じて凝ればよろしい。
0473nobodyさん
2006/01/25(水) 09:08:44ID:???0474nobodyさん
2006/01/25(水) 10:00:12ID:???0476nobodyさん
2006/01/25(水) 12:21:33ID:???0477nobodyさん
2006/01/25(水) 12:48:25ID:???無くても処理は可能だけど、あった方が俳句listとの比較が容易になる上、表示の順番も含めてチェック可能になる。
0478nobodyさん
2006/01/25(水) 13:21:01ID:???$str = 'a';
$str++;
これで$strはbになるって知ってたか?
知らなかったぜフハハー
0479nobodyさん
2006/01/25(水) 13:48:37ID:???0480nobodyさん
2006/01/25(水) 14:06:33ID:???0482nobodyさん
2006/01/25(水) 14:43:57ID:???http://hogehoge.hoge/?aaa=5
などでURLを開くと
$aaaの値に5が入りますが
http://hogehoge.hoge/5
このようなURLで
$aaaに5を入れる事は出来ますか?
0483nobodyさん
2006/01/25(水) 14:47:25ID:???0484nobodyさん
2006/01/25(水) 14:48:15ID:???0485nobodyさん
2006/01/25(水) 14:53:03ID:???0487nobodyさん
2006/01/25(水) 15:47:06ID:???/5 ってのがくっついた時点で /5/{DirectoryIndex} にアクセスしない?
で、5 の部分がパラメータ値なら可変なんだろうからそんなディレクトリは存在しない→404かと
0488軟式PHP
2006/01/25(水) 16:10:34ID:???0491nobodyさん
2006/01/25(水) 16:57:41ID:???PATH_INFOでもindex.phpとかが省略されていたら無理
http://example.com/index.php/5 はOKだけど
http://example.com/5 は404not found
0492nobodyさん
2006/01/25(水) 17:17:08ID:???0493nobodyさん
2006/01/25(水) 17:20:08ID:???0494nobodyさん
2006/01/25(水) 17:24:07ID:???そこに自分のディレクトリ名を$aaaにセットするindex.phpを置けば
PHPだけでもできるな。
0495nobodyさん
2006/01/25(水) 17:33:01ID:P6kcSZ98class foo {
function execute() {
$sp =& fopen("huga.txt", "r");
$fp =& fopen("hoge.txt", "w"); flock($fp, LOCK_EX);
if ($fp == FALSE) {
$result = PEAR::raiseError("Can't Open File");
return $result;
}
while ($data = fgets($sp, 1024)) {
fputs($fp, $data);
}
fclose($sp);
flock($fp, LOCK_UN);
fclose($fp);
return TRUE;
}
}
例えばPHPUnitを利用して
正しく書き込まれているか。エラーが生成されるか。
をテストしたいのですが、どのようにテストすればいいのでしょうか。
0497nobodyさん
2006/01/25(水) 18:49:30ID:???作り方も考えつかねーよウボァー
0498nobodyさん
2006/01/25(水) 19:22:41ID:???0500nobodyさん
2006/01/25(水) 19:29:56ID:???1〜3はループ
1.置いた周囲に●があるか判定
↓YES
2.その方角をひとつづつ読み込み、○が最初に出た時点まで判定
↓YES
3.間を全て○にする
でいいんじゃないの
0501nobodyさん
2006/01/25(水) 20:28:10ID:???0502nobodyさん
2006/01/25(水) 21:00:06ID:???これはRubyだけど、ttp://www.railthello.com/
0503nobodyさん
2006/01/25(水) 21:04:12ID:???0504nobodyさん
2006/01/25(水) 21:20:18ID:???0505nobodyさん
2006/01/25(水) 22:49:14ID:???0506nobodyさん
2006/01/25(水) 22:55:02ID:???0508nobodyさん
2006/01/25(水) 23:06:06ID:???0509nobodyさん
2006/01/26(木) 01:58:35ID:???$id_point_map = array(1 => 4, 2 => 2, 3 => -2, 4 => -4); //idと点数
この場合以下のUPDATEをcount($id_point_map)分foreachでまわさないと
いけないでしょうか?一気にUPDATEする方法はあるでしょうか?
UPDATE date SET total_point=total_point+$point WHERE id = $id;
0510nobodyさん
2006/01/26(木) 02:43:25ID:oTQct+ILpreg_matchは該当する先頭の1個だけで、
preg_match_allは該当するモノ全部って事??
0513nobodyさん
2006/01/26(木) 11:19:34ID:???jcodeとかnkfみたいなのありませんか?
0515nobodyさん
2006/01/26(木) 11:38:00ID:???0516nobodyさん
2006/01/26(木) 11:43:35ID:???0517nobodyさん
2006/01/26(木) 12:22:26ID:???require_once "HTTP/Compress.php";
とやると
Warning: main(HTTP/Compress.php): failed to open stream: No such file or directory
と出てしまいます。
CGI版PHPにしても同様です。
0520nobodyさん
2006/01/26(木) 13:06:32ID:???globalでやってみても駄目でした。
<?
$a=10;
test();
function test(){
$b=20;
test2();
echo $b;
}
function test2(){
global $b;
$b++;
}
?>
↑では$bが21になるようにしたいんですけど・・。
0521nobodyさん
2006/01/26(木) 13:32:24ID:???変数$bはtest内ローカル変数だから、test2内からでは参照できない。
変数$bを、変数$a同様にグローバルの場所で宣言するか、test内で global $b; として宣言する。
0523nobodyさん
2006/01/26(木) 13:46:40ID:???これで普通って思うかも
>>520
関数っつーのは一般に y= f(x) の形で表されるもので、
「何か値を入れたら何かが返ってくるもの」と考えるのが
C系の言語の基本です。で、関数の中身のことは知らなくて
いいように作る。これ。
0524520
2006/01/26(木) 14:01:52ID:???>>522さんのやり方は当然わかっていたのですがどうせなら引数も
持たさないでいきたいなと思ったので・・。書いてなかったのですいません。
>>523さんの言いたいことはわかるのですが作るとなるとうーむ・・むつかしいところですね^^;
0525nobodyさん
2006/01/26(木) 14:06:28ID:???もしいくつかの関数で変数を共有したいというのであれば、
global 宣言使うよりも class 使った方が何かといいよ。
おれも引数は少ない方が好きだからその気持ちは分からなくもない。
0526nobodyさん
2006/01/26(木) 14:45:41ID:???classを活用出来ていない外野なんだけど、クラスでの解決方法をさらして欲しい・・
なんていうのは贅沢ですかそうですか
簡単にクラスを使った用例がホスイ
0527nobodyさん
2006/01/26(木) 14:54:48ID:???class Hoge
{
var $b;
function test(){
$this->b=20;
$this->test2();
echo $this->b;
}
function test2(){
$this->b++;
}
}
$a = new Hoge;
$a->test();
0528nobodyさん
2006/01/26(木) 15:01:11ID:???おぉ、サンクス。
>>526
メリットとしては共有しているものがはっきり違う形で
書かれているので関数の中だけ見ていてもぱっと見で影響
範囲が分かるってことと、共有する変数(PHP 的な正確な
用語は知らん)については最初に初期化しなければいけない
ので、これもあとで見たときに分かりやすくなるってこと
かな。使い捨てならどうだっていいことだけど。
0529520
2006/01/26(木) 16:48:46ID:???で、確かにクラスにしようかなとも考えたのですが
なんというかオブジェクト?(カート、動物)と言った物の処理とは
ちょっと違うように思えたのでそれならclassもおかしいのかなと思いました?
言葉ではちょっと表しにくいですね・・・。
簡潔に言えば労働スケジュールを組んでいます。(時間配分や機械等)
でこの日にはこの処理をこれだけの量やってって感じなんですが
ここである条件の場合の処理というのを関数に分けているのです。
で、さらにこの分けた関数処理の中でも条件分岐によって重複する処理がでたので
さらに分けたということなんです。
・・て感じなのでなんていうか、クラス的な考え方ってありなのでしょうか?
0530520
2006/01/26(木) 16:52:45ID:???俺の考え的には
if(){
処理A
処理C
}else{
処理B
処理C
}
↑の重複する処理Cの部分が多くなると関数として分けているのですが
こういう考え方についてはどう思われるのでしょうか?いろいろ教えてください^^;
0532520
2006/01/26(木) 17:07:37ID:???for(){
if(){
if(){
処理A
break 3
}else{
処理B
}else{
処理C
処理D
break 2
}
}else{
if(){
処理E
}else{
処理F
}else{
処理G
処理D
break 2
}
}
}
こんな感じでネストかけまくってるんです;;
処理Aとかも短くて同じ処理あるのですがいちいち関数で分けてたらややこしくなるしと思いまして・・
0533nobodyさん
2006/01/26(木) 17:08:17ID:???オブジェクトは単なる概念であって物理的なモノとは全然関係ないんで、
「1日」がオブジェクトだったり、「作業」がオブジェクトだったり、
処理しやすいように書けばいいと思うけど?
何か一つオブジェクト指向言語をやってみると目から鱗が落ちて、
なんでもかんでもオブジェクトとして扱えるようになるかもしんない。
でもそうなると PHP やめたくなるかもしんない。
0534nobodyさん
2006/01/26(木) 17:21:47ID:???オブジェクト=モノ、みたいな発想にとらわれることはないかと。
ただのスタティックな関数の寄せ集めをそれっぽい名前でカテゴライズしてクラス階層に落とし込んだりもするし。
0535nobodyさん
2006/01/26(木) 17:27:26ID:???脱皮が必要な時期にきてるかもね。
関数はくり返し使う処理を切り出すってより、「ロジックを書きやすく
読みやすいものにするためにブラックボックスを作る」という発想で
作っていくといいよ。まぁそのためにはデータ構造とかもいじらなきゃ
いけなくなるかもしんないけど。
例えば今回のスケジュールならたぶん作業や機械によって条件が
変わってくるでしょ? そういう条件をひっくるめてオブジェクトとして
くるんでしまう。そうするとおおもとのロジックで気にすべき条件は
見た目上だけど減るよね。オブジェクトの中に入っちゃうんで直接気に
する必要がなくなる。あとはロジックを書く際にいちばんほしい情報
だけをオブジェクトに教えてもらいながら書き進めていけばいい。
日本語だとえらく漠然としちゃうけど、オレの言いたいことは「ロジックを
気持ちよく書けるように工夫しろ」ってことだ。その結果、コード量が
増えてしまうことを恐れてはいけない。増えても読みやすければいいんだ。
0536nobodyさん
2006/01/26(木) 20:51:35ID:???Apacheってなんのためにあるんでしょ?
URLから「8080」のようなポート番号が必要なくなるだけ?
0537nobodyさん
2006/01/26(木) 20:55:49ID:???0538nobodyさん
2006/01/26(木) 21:19:04ID:???Apacheのほうがwebサーバとしての機能が十分に備わってるからでしょ。
TomcatはあくまでもApacheのプラグインと考えたほうがいいよ。
0539nobodyさん
2006/01/26(木) 23:06:17ID:???例えばfopenを使ってページや画像を保存する処理、つまり多重ダウンロードなどをしたい時は、
fopenでなくsocket系を使うべきでしょうか。
0540532
2006/01/27(金) 08:10:12ID:???ありがとうございます。
>>535さんまた難しそうですね^^;
確かに実際にオブジェクト指向組んだことないし勉強しなければ・・
俺は癖でつい読みやすさよりコード量減らしてしまふ・・orz
>>533 やめたくなるってのはオブジェクト指向には適していないから??
0541nobodyさん
2006/01/27(金) 08:44:08ID:???短くすること自体は良い習慣だけどね
全体量が小さくなることよりもブロックが小さくなることの優先度が
高いかな。おれはね。長いブロックを読み書きする体力がないもんで。
PHP はオブジェクト指向には「あまり」向いてないと思うよ。
5 はだいぶマシっぽいけど。
まぁそれは今から気にする必要ないんじゃない?
0542nobodyさん
2006/01/27(金) 10:09:24ID:???かなり見通しも良くなるし、変数のスコープも明確になる。
ひとまず、クラスなんて使ってみれば「どうということはない」。
オブジェクト指向はその後でもいいんじゃね?
0543nobodyさん
2006/01/27(金) 11:43:37ID:???MVCとかも以前JSPサーブレットとか使ったときちょっとやったけど
量が少ないと分けない方が楽なんですよね。
もはや人に見せることは考えてないですが・・^^;
・・とこんなこと書いてると俺のひよこレベルがw
0544nobodyさん
2006/01/27(金) 15:02:56ID:???後のメンテナンス性、拡張性考えると自然とオブジェクト指向になっていくお^^
0545nobodyさん
2006/01/27(金) 15:42:53ID:???とりあえず全てclassに入れればいいのかな?
0546nobodyさん
2006/01/27(金) 15:47:56ID:???PHPなんて代表的なオブジェクト指向が必須でない言語の一つだから、無理してclassを使う必要はない。
0547nobodyさん
2006/01/27(金) 16:29:44ID:???ちょっと前に書いてあるじゃん。
変数を共用したいとかそういう、「同じグループに属してる感」が
ないのに class に入れたって面倒なだけ。
0548nobodyさん
2006/01/27(金) 16:40:41ID:Y9rt4MFE0549nobodyさん
2006/01/27(金) 17:32:34ID:???for(){
処理A
}
if(flag){処理B}
}
↑上の状態で処理Aの中でflagがtrueになった場合、
下のif文中処理Bのところでもっかいfor文に飛ばすにはどうすればよいですか?
for文の外に無限ループつけてそこにcontinueとかするしかないのでしょうか・・
0550軟式PHP
2006/01/27(金) 17:43:45ID:???{
処理A
}
を関数化すりゃいいんでねぇの。
0551nobodyさん
2006/01/27(金) 17:51:28ID:???●著作権は消さないで
というスクリプトを改造して、HPに載せたいんだけど、改造したものでも著作権の表示は必要なの?
0553nobodyさん
2006/01/27(金) 17:58:29ID:???著作権明示は必要。
どうしても消したいってときは、作者に連絡してみれば?
カンパ金かなんか払えば消してもいいって人いるかもよ。
0554nobodyさん
2006/01/27(金) 18:12:54ID:46g/AEL1PHPでBlogを作っているんですが、メールで更新出来る様にしたいと思い色々調べて、.forwardを使ってメールをプログラムに転送すれば良いと解ったのですが、転送先のプログラムにはどのような処理を書けばいいのでしょうか。
例えばGETなりPOSTなりで送られてくる訳ではないですよね?
自分なりに調べてみたんですが、今ひとつ解説してあるサイトが見つかりません。。
ヒントだけでも頂けないでしょうか。
よろしくお願い致します。
0556nobodyさん
2006/01/27(金) 21:10:57ID:???テンプレートエンジンはあくまで動的なページ生成を PHP を
直接書かずにできるようにする仕組み。フレームワークはユーザー
からの入力、画面遷移、セッション、DB など全般的に抽象化して
アプリケーションの骨格だけ書くことに集中させてくれるもの。
0557nobodyさん
2006/01/27(金) 23:24:19ID:Y9rt4MFEありがとうございます
0558nobodyさん
2006/01/28(土) 04:46:39ID:NaSuq9Gxまだ試してないんですが、検索したらそれらしいものが出てきました!
ありがとうございました!
0559nobodyさん
2006/01/28(土) 04:49:51ID:???myFunction()
my_function()
おまいら、どっちにしてる?
0561nobodyさん
2006/01/28(土) 05:53:02ID:???0562nobodyさん
2006/01/28(土) 05:58:04ID:???$my_fanc
myFanc
0564nobodyさん
2006/01/28(土) 07:37:46ID:???だからこっち myFunction()
0566nobodyさん
2006/01/28(土) 13:16:01ID:???PEARって何?って人にどこかいいサイトありませんでしょうか?
「PEAR は、TeXの CTAN および Perlの CPANにヒントを得たPHP拡張および
PHPライブラリのコード用のコードレポジトリです。」
こんなことを言われても正直わかりません…
0567nobodyさん
2006/01/28(土) 13:17:27ID:???ttp://www.amazon.co.jp/exec/obidos/ASIN/4798109592/
詩ね
0568nobodyさん
2006/01/28(土) 13:19:43ID:???サイトを紹介してください。
0569558です。
2006/01/28(土) 13:26:03ID:NaSuq9Gxテストでfgetsで取得してファイルに書き込むようにプログラムしたんですがうまく行きません。
これってもしかしてCGI版じゃないとダメな感じなんでしょうか。。
0572nobodyさん
2006/01/28(土) 13:51:20ID:???ほいっ。マニュアル
「第43章PHP をコマンドラインから使用する」
ttp://www.php.net/manual/ja/features.commandline.php
0573nobodyさん
2006/01/28(土) 14:17:47ID:mOSvPqom変数をフォームに出力するにはどうすればいいのでしょうか?
0574nobodyさん
2006/01/28(土) 14:26:58ID:???話はそれからだw
0575nobodyさん
2006/01/28(土) 14:27:54ID:???それは HTML の問題だろ…。
$test = htmlspecialchars($_REQUEST['test']);
<input type="text" name="test" value="$test">
0576nobodyさん
2006/01/28(土) 14:36:08ID:???また、そうする事が推奨されていたりはしますか?
0577nobodyさん
2006/01/28(土) 14:47:59ID:???思い通りに表示されれば問題なし。
エラーが出たら問題あり。
一応囲むのが普通とだけ言ってみる。
0578nobodyさん
2006/01/28(土) 14:49:34ID:mOSvPqom0579nobodyさん
2006/01/28(土) 14:55:06ID:???手元では問題なかったのですが、
特別なケースがあるのかなと思って・・・
今までは必要最低限でしか{ }を使わなかったですが
これからは基本的に囲むようにします
0580nobodyさん
2006/01/28(土) 14:55:48ID:???問題は無いつーか、問題が無くなるわな。
マニュアルによると、PHPの中の人が変数名を見つけ出す方法はこのようになっている。
> ドル記号($)を見付けるとパーサは、有効な変数名を形成することが可能な最長のトークンを取得します。
> 変数名の終りを明示的に指定したい場合は、変数名を波括弧で括って下さい。
0583nobodyさん
2006/01/28(土) 15:06:18ID:???if ($aaa) echo $string;
}
という条件付echoを作成しました
どんな関数名にしたらいいでしょうか
みなさんの知恵をください
沢山使うので一般的な名前にしたいのですが
0585nobodyさん
2006/01/28(土) 15:28:04ID:???0586nobodyさん
2006/01/28(土) 15:39:50ID:???どうすればいいんでしたっけ?
$_ENV か $ENV だったような気がしたのですが・・・。
具体的には、REQUEST_METHOD の値を知りたいのですが。
0588nobodyさん
2006/01/28(土) 17:05:51ID:EkhKiUPm0590nobodyさん
2006/01/28(土) 17:29:39ID:???$foo[$bar][$hoge['$fuga']]}
こんなのでも}の起点を正確に探知しなきゃいけないパーサカワイソス
0591nobodyさん
2006/01/28(土) 17:38:09ID:???./?a%5B%5D=1では受け取れなかったのです。
0593591
2006/01/28(土) 17:53:49ID:???失礼しました
0594nobodyさん
2006/01/28(土) 18:10:29ID:???http://pear.php.net/package/PhpDocumentor
0595nobodyさん
2006/01/28(土) 18:10:40ID:???例えばC++でDBを扱うクラスclass_dbを db.h と db.cpp に記述したとします。
db.hにクラス宣言、db.cppに定義を行いますよね。
さらに aaa.h、bbb.h、ccc.hでclass_dbのstatic関数を用いたいときは
これらの先頭にinclude<db.h>と書きますよね。
main.cpp
↓ ↓ ↓
aaa.h bbb.h ccc.h
↓ ↓ ↓
db.h
の感じでインクルードします。
このような事をPHPでやるとき、このまま書くと多重定義になるので
main.php
↓ ↓ ↓ ↓
aaa.php bbb.php ccc.php db.php
と書いたらうまくいきました。
ところがaaa.php、bbb.php、ccc.phpはdb.phpをインクルードしてないのに
db.phpで定義した関数が出てきてしまい、何か気持ち悪いです。
PHPはこういうもんなんだと納得すべきでしょうか。
それともいい方法があれば教えてください。
0597nobodyさん
2006/01/28(土) 21:07:05ID:xY1GiFbjcgiだったら
if ($user =~/UP\.Browser/) {
$user = $ENV{'HTTP_X_UP_SUBNO'};
}
でいけるみたいなんだが、PHPだとどう記述するのでしょうか?
0598nobodyさん
2006/01/28(土) 21:13:33ID:???ezwebの事は知らんが、そのコードを見た感じだと、
・$userは環境変数UserAgentから取得。
・$userがUP.Browserという文字から始まっていれば、ezwebだと解釈し、
・さらに環境変数HTTP_X_UP_SUBNOを取得すると、サブスクライバとやらが取得できる。
ってことじゃないの?
$_SERVER $_ENV配列あたりを覗けば希望するものが得られるかと。
0599nobodyさん
2006/01/28(土) 22:42:35ID:???CGIでなくPerlだったら、なんだろうが(PHPでもCGIは書けるぞ)
PHPで同じ内容は
if (preg_match('/UP\.Browser/', $user)) {
$user = $_SERVER['HTTP_X_UP_SUBNO'];
}
と書く。
0600nobodyさん
2006/01/28(土) 23:11:00ID:OGAeWMPnphpで、windowsで言う所の「ファイルの作成時刻」を得たいのですが、
statについて調べてみると
8 atime 最終アクセス時間 (Unix タイムスタンプ)
9 mtime 最終修正時間 (Unix タイムスタンプ)
10 ctime 最終変更時間 (Unix タイムスタンプ)
とのことで作成時刻は得られないのでしょうか。
それと、最終修正時間と最終変更時間って何の違いでしょう?
0601nobodyさん
2006/01/28(土) 23:14:56ID:xb4UVvPr携帯メールを指定アドレスに送る→ブログに更新
なんてのがありますが、具体的にどうやって実装すればいいでしょうか。
0602nobodyさん
2006/01/28(土) 23:20:06ID:???ctime - unix系で言うところのinodeの情報(所有者やグループ、パーミッション等)が変更された時。
0603nobodyさん
2006/01/28(土) 23:26:43ID:???マニュアルにも書かれているが、
filectime
>注意: 多くのUNIXファイルシステムでは、i-ノードが変更された際、つまり、パーミッション、所有者、グループ、
>または他のメタデータが書き込まれた際に、ファイルが変更されたとみなされます。
filemtime
>注意:この関数は、ファイルのブロックデータが書き込まれた時間を返します。これは、ファイルの内容が変更された際の時間です。
つまり、ファイルの内容が最後に更新された時間がfilemtime、
内容以外でもパーミッションなども含めて最後に更新された時間がfilectime
ということになる
ちなみに、fileatimeの所に
>いくつかのUNIXでは、ファイルのctimeはファイルの作成時間として参照されます。これは間違っています。
>多くのUNIXファイルシステムでは UNIXファイルの作成時間は存在しません。
とマニュアルには書かれている
0605nobodyさん
2006/01/28(土) 23:36:44ID:???0606600
2006/01/28(土) 23:37:28ID:???thxですた。∧||∧
0607600
2006/01/28(土) 23:38:21ID:???0608nobodyさん
2006/01/29(日) 02:12:39ID:???今、WindowsXPのコマンドプロンプト上で動かすスクリプトを書いています。
内容はディレクトリの中身を表示すると言う単純なものなのですが、下のソースのように
if(!is_dir($file))としているにもかかわらずフォルダ名まで表示されてしまいます。
この指定ならフォルダ名は表示されないと思うのですが間違っているのでしょうか?
PHPのバージョンは5.1.2です。
<?php
$dir = opendir("./foruda") or die("Directory is can not open !!");
while ($file = readdir($dir)) {
if(!is_dir($file)) {
echo "$file\n";
}
}
closedir($dir);
?>
0609608
2006/01/29(日) 02:15:11ID:???×echo "$file\n";
○echo "$file\r\n";
0610nobodyさん
2006/01/29(日) 02:20:23ID:???is_dir() は不完全。is_dir() のマニュアルのユーザノートにも書かれていたと思うが。
本当にディレクトリかどうか調べるなら
filetype() の結果を使うべき。
0612608
2006/01/29(日) 02:48:36ID:???clearstatcache()でOKですよね?
しかもfiletype()つかったらWarning: filetype(): Lstat failedって出てきた・・・
これはLstatが使えてないってことでしょうか?
0614nobodyさん
2006/01/29(日) 02:53:55ID:???http://www.phpmyfaq.de/
0615608
2006/01/29(日) 03:00:44ID:???0616nobodyさん
2006/01/29(日) 03:22:48ID:Kr5RpJOz<input type="submit" value="再生">
</form>
こういうタグがあった場合、再生と書かれたボタンを押したときに
どんな変数が送信されるんでしょうか?name="..."という名前がない場合は
どうなるのか疑問です
0617nobodyさん
2006/01/29(日) 03:48:31ID:???DBコネクションのオブジェクトでclassメンバの$dbconをclassの関数から呼ぶ場合
$this->dbcon ですが、dbconのメンバ関数を呼ぼうとして
$this->dbcon->getRow($sql); これがエラーになります。
どうしてですか?スマートな解決策はありますか?
今は毎回以下のようにしててマヌケな感じがします。
$db = $this->dbcon;
$db->getRow($sql)'
0618nobodyさん
2006/01/29(日) 03:53:53ID:???それはHTMLの仕様であってPHPの仕様ではないが。
http://www.asahi-net.or.jp/~sd5a-ucd/rec-html401j/interact/forms.html#h-17.13
0619608
2006/01/29(日) 04:38:15ID:???エラーが消せない('A`)
0620608
2006/01/29(日) 06:21:48ID:???filetype関数には絶対パスが必要なんですね!!
0621nobodyさん
2006/01/29(日) 09:17:52ID:a2S36AV1$file = fopen("./ua.dat","a");
flock($file,LOCK_EX);
$line = $_SERVER[?HTTP_USER_AGENT?]."\n";
flock($file,LOCK_UN);
fclose($file);
?>
UA(User Agent)をファイルに記録しようと思って、このようなスクリプトを作ったのですが…
次の条件を実現させるにはどうすれば良いでしょうか?
1.同一IPが二回目のアクセスした場合重複カウントしない
2.同じ名前のUAがある場合は次のように(ヒット数+UA)記録する:
12hit Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1; .NET CLR 1.1.4322; .NET CLR 2.0.40607)
5hit Mozilla/4.0 (UA偽装)
0623nobodyさん
2006/01/29(日) 10:12:02ID:a2S36AV1>2.同じUAを足していく
詳しく。
0624nobodyさん
2006/01/29(日) 10:20:59ID:???その前にファイルを読み出して UA とアクセス数のデータ取り出さなきゃ
重複チェックもアクセス数の計算もできないわけだけど
一気にハードルが上がっちまった気がするぞ
つかこれ記録できてる? できてないよね?
どうしてもリアルタイムで処理したいっつーんなら勉強するしかないが、
そうでないならそのまま append していってあとで集計すれば?
同一 IP のチェックなら cookie は要らないから
0625nobodyさん
2006/01/29(日) 12:57:03ID:???うちではこうやってる。
要件:
qmail1.03
PEAR
手順:
.qmailファイルを作成してphpスクリプトにリダイレクトする
例:
~blogpost/.qmail
------------------------------------------------
| /usr/local/bin/php ~blogpost/recieve.php
------------------------------------------------
するとrecieve.phpが起動し、メールの内容が(ヘッダも込みで)標準入力で受け取れるので、
Mail::mimeDecodeで解析する。このへんはPEARマニュアル見ればだいたいわかるかと。
あとは解析したデータを元に処理するだけ。
0626nobodyさん
2006/01/29(日) 13:01:15ID:???0627nobodyさん
2006/01/29(日) 13:34:35ID:???日本語版ってのは善意で訳してくれる人が居なければ存在すらしないものだからねぇ。
気付いた人や必要になった人がやればいいと思うよ。がんがれ>>626
0628nobodyさん
2006/01/29(日) 16:40:45ID:???買ってきた本のサンプルを動かしてみたのですが
ログイン画面にIDとPASSを入力してボタンを押しても
画面が変わらないままです。
サンプルの中は基本的にそのままです。
(MySQLの接続に関する設定は変更しましたが・・・)
以前、他の本のサンプルでも同じようなことがありました。
スレ違いかもしれませんが
もし原因がわかる方がいらっしゃったらおしえていただけないでしょうか
0629nobodyさん
2006/01/29(日) 16:45:54ID:???その本のサポートページがあるのならそこで聞くなり、
このスレで続けるなら肝になる部分を適切に掲示するなり。
0633nobodyさん
2006/01/30(月) 01:45:11ID:???0634nobodyさん
NGNG自分で「短い文字でもちゃんとSJIS→JISに変換できるように!!」
と入れた処理なんですが、後から見て何をやっているか
わからなくなってしまいました。
/* 文字数が少ないとエンコードに失敗するんだとさ。*/
$message = "あいうえお眉幅ABC".$message;
$body = mb_convert_encoding( $message , "JIS", "EUC-JP,UTF-8,SJIS,ASCII,JIS");
$body = substr ( $body , 3 + 14 + 3 + 3 );
@なぜ「"あいうえお眉幅"」ではなくて「"あいうえお眉幅ABC"」なのか
A最後の「3 + 14 + 3 + 3」の詳細
解読できる人がいたら助けてください。。。。
(http://pc8.2ch.net/test/read.cgi/php/1136276300/から誘導していただきました。
マルチではありません。。。。)
0636634
NGNGメールを送信するためにJISに変換、といった処理です。
(他にこうしたら効率的、では無くて、何でこういうことをしちゃったかを思いだしたいんです。。。)
0637nobodyさん
2006/01/30(月) 02:08:13ID:???ここのカウンターを使ってるのですが、
include()を使ってカウンターを挿入しているので
phpのページにしか利用できません。
で、ttp://www.kent-web.com/count/dream.html
みたいに <img src="スクリプト名">
で表示させたいと思ったのですが、上手くいきません。
少々改造しなきゃいけないと思うのですが、
どのように改造すればいいでしょうか?
0638634
NGNGhttp://72.14.203.104/search?q=cache:gRnlLcv7kCcJ:homepage2.nifty.com/sak/w_sak3/doc/sysbrd/php_k12.htm+img+src+php+cgi&hl=ja&gl=jp&ct=clnk&cd=2&lr=lang_ja
0639637
2006/01/30(月) 02:24:24ID:???ありがとうございます、
そのページでは
fopenでrbを引数として利用していますが、
手元のリファレンスではbはwindowsのみと書いてあります。
これはlinuxでも使用可能でしょうか?
0640634
NGNGhttp://72.14.203.104/search?q=cache:tXKhe0RNfHsJ:manual.xwd.jp/function.fopen.html+php+fopen+%E3%83%90%E3%82%A4%E3%83%8A%E3%83%AA&hl=ja&gl=jp&ct=clnk&cd=4&lr=lang_ja
>Windows上では、\nを\r\nに透過的に変換する text-mode変換フラグ('t')が提供されます。
>それに対し、'b'を使って強制的にバイナリモードにすることもできます。 その場合データの変換はされません。
→windowsでは、場なりで開こうとすると勝手にデータの中身を書き換える機能があります。
>それに対し、'b'を使って強制的にバイナリモードにすることもできます。
→'b'を使うと、そのファイルそのままの状態で扱います。
0642nobodyさん
2006/01/30(月) 02:44:30ID:???0643634
NGNGさらに間違えた。
意訳
windowsではファイルを開こうとすると
ファイルの中身を勝手に書き換える機能があります。
そうされたくなかったから、'b'オプションをつけましょう。
なお、UNIXでは勝手に書き換える機能は無いので
指定しなくでもそのまま扱ってくれますが、
必要ないですが、念のため'b'をつけると確実です。
0644nobodyさん
2006/01/30(月) 08:02:12ID:???なんでお前さんが忘れるぐらいに思いつきでやってる処理を他人が判るんだよ。
>1. なぜ「"あいうえお眉幅"」ではなくて「"あいうえお眉幅ABC"」なのか
ISO-2022-JPにエンコードしても変化の無い文字で適当なのを入れたかったんじゃないの。
>2. 最後の「3 + 14 + 3 + 3」の詳細
3 = ESC $ B (エスケープシーケンス)
14 = あいうえお眉幅
3 = ESC ( B (エスケープシーケンス)
3 = ABC
でしょ。多分
0645nobodyさん
2006/01/30(月) 08:33:29ID:???ソースがSJISなら
// $message = "あいうえお眉幅ABC".$message;
$body = mb_convert_encoding( $message , "JIS", "SJIS");
// $body = substr ( $body , 3 + 14 + 3 + 3 );
でいい
0647nobodyさん
2006/01/30(月) 10:49:41ID:???自分のところで試してみたけど
$this->conn->getRow($sql);
みたいな記述は、ちゃんと動いたよ
答えがないのは、そういう問題がおきている人がいないせいじゃないかな
PHPのバージョンは 4.3.9
0648nobodyさん
2006/01/30(月) 11:49:21ID:PZnOPnCsすみません、質問です。
他のサーバのcsvファイルを参照したい場合は
どのようにすればいいのでしょうか?
0649nobodyさん
2006/01/30(月) 12:02:05ID:???PHPの設定次第だけどfile("http://相手サーバー/xxxx.csv");で参照できるかも。
駄目ならFTPで接続するとか、Web経由でCSVファイルをダウンロードするための
プログラムを相手サーバー上に用意するとか。
0650nobodyさん
2006/01/30(月) 13:03:45ID:???file("http://相手サーバー/xxxx.csv");
だと駄目でした。
FTP接続とか、別の方法を調べて試してみます。
0651nobodyさん
2006/01/30(月) 13:22:32ID:???駄目な理由が明らかじゃないからなんとも言えんが、
httpストリームのファイルオープンが使用制限されてるだけで
相手側ではHTTPで取れるようなところにちゃんと置いてあるなら
PEARのHTTP_Requestクラス使って取り込んだら?
0653nobodyさん
2006/01/30(月) 14:49:21ID:???環境
FC3
php5.1.2
Apache2
httpd.confに施した設定
AddType application/x-httpd-php .php の追加
他に何をすればこの問題は解決されるでしょうか。
ググってみたんですが解決出来ませんですた。
0654nobodyさん
2006/01/30(月) 14:53:17ID:???ありがとう御座います。
無知なもので、ヒントをいただけるだけで非常にありがたいです。
PEAR HTTP_Requestクラスについても調べてみます。
0655nobodyさん
2006/01/30(月) 15:00:22ID:???これは環境変数から取得するってことであってますか?
ぐぐったのですが、リモートのホスト名などの取得についてしか
見つかりませんでした
0658nobodyさん
2006/01/30(月) 15:14:42ID:???あんま覚えてないけどLoadModule行とかいらなかったっけ??
後axpsとか組み込み方で設定が違ったような気がしますが・・
0659nobodyさん
2006/01/30(月) 15:18:12ID:???おれは $_SERVER['HTTP_HOST'] が取れるならそれ、だめなら
$_SERVER['SERVER_NAME'] の二段構えにしてる
0660nobodyさん
2006/01/30(月) 15:19:55ID:???ググったググったじゃなくて、>>1 にも書いてあるが
ま ず マ ニ ュ ア ル 読 め
http://www.php.net/manual/ja/
0661nobodyさん
2006/01/30(月) 15:25:21ID:???0662nobodyさん
2006/01/30(月) 16:13:54ID:???0663nobodyさん
2006/01/30(月) 16:20:34ID:???参考にしたサイト
http://kamakura.cool.ne.jp/oppama/oswa/phpstart.html
0664nobodyさん
2006/01/30(月) 16:26:33ID:???マニュアルから自分の必要としている情報を見つけ出す能力も重要
なんだけどな
0666663
2006/01/30(月) 16:42:37ID:???fedora3です
http://www.php.net/manual/ja/install.unix.php
ここ読んだけどlibphp5.soが作られません。
0667nobodyさん
2006/01/30(月) 16:57:39ID:???0670nobodyさん
2006/01/30(月) 17:12:56ID:???基本的にUnix系はどれでも一緒じゃね?
ttp://pc8.2ch.net/test/read.cgi/linux/1137686775/l50
ttp://www.php.net/manual/ja/install.unix.php
0671nobodyさん
2006/01/30(月) 17:16:47ID:???findなんて使ったことねーなぁ。
俺はもっぱらlocate使ってるけど・・。
updatedbだったかDB更新してからもっかいやってみ
0672nobodyさん
2006/01/30(月) 17:29:07ID:???apacheがDSOに対応してるのかそこらへんだろ、ガンガレ
ttp://oshiete1.goo.ne.jp/kotaeru.php3?q=1260172
0673nobodyさん
2006/01/30(月) 17:40:25ID:???・--with-apxs2=/usr/local/apache2/bin/apxsとか抜けてねぇか
・ビルド時に該当するエラー出てないか
・作られてるけど、探し切れてないだけではないか
0674nobodyさん
2006/01/30(月) 18:07:52ID:???あるんじゃないの?
野良ビルドなんてよほどの理由がない限りやんないけど。
0675nobodyさん
2006/01/30(月) 21:09:44ID:???FC3でパッケージ版ApacheにPHP5を入れようとしたら失敗した事がある
仕方ないからApacheのビルドから始めたらうまくいった
0676nobodyさん
2006/01/30(月) 21:13:14ID:iPn7Dq8bheaderで作成出来たのですが
読み込まれた際に2つのサイトを同時に開く方法は
ありませんでしょうか?
0677nobodyさん
2006/01/30(月) 21:21:27ID:???PHPは接続してきた相手にデータを返すのがお仕事。
それが別ウィンドウなのかとかフレームなのかとかはブラウザがするお仕事で、知ったこっちゃない。
なので、PHPに接続する前にJavaScriptやフレーム等で解決しておくか、
それらを利用できるようなhtmlをPHPで出力してあげましょう。
0679nobodyさん
2006/01/30(月) 21:28:25ID:iPn7Dq8bありがとうございます。
javascriptにて現在奮闘中なのですが
urlはphpで得た変数となります。
javascriptにてbodyonlordで試しているのですが
頭が混乱してきました。もう少し粘ってみます。
0680nobodyさん
2006/01/30(月) 22:22:56ID:???PHPでJavaScriptを記述すればいいよ。
echo "window.open( $url1 ); window.open( $url2 );";
0681もっく
2006/01/30(月) 22:45:18ID:5vpkjCd3安く、占いで通話時間に応じて、減算できるシステム知ってる人いたら
おしえてください。
ググっても高いし、出会い系ばっかりです。
0682もっく
2006/01/30(月) 22:46:26ID:5vpkjCd3安く、占いで通話時間に応じて、減算できるシステム知ってる人いたら
おしえてください。
ググっても高いし、出会い系ばっかりです。
0683もっく
2006/01/30(月) 22:58:31ID:+WpFBy1B安く、占いで通話時間に応じて、減算できるシステム知ってる人いたら
おしえてください。
ググっても高いし、出会い系ばっかりです。
0684もっく
2006/01/30(月) 22:59:06ID:+WpFBy1B安く、占いで通話時間に応じて、減算できるシステム知ってる人いたら
おしえてください。
ググっても高いし、出会い系ばっかりです。
0685nobodyさん
2006/01/30(月) 23:01:47ID:???更新をクリックしても
-ERR authorization failed
と表示されるだけで投稿も出来ません。
サーバーはロリポップです。
よろしくお願いします。
0687nobodyさん
NGNGありがとうございます。
思い出しました。すっきりしました。
Aはそのとおりですね。
@は、実際の文字列が半角で始まるか半角で始まるかわからないから半角で締めておけば
どっちがきても安心、という理由だったともいます。
>>645
>$body = mb_convert_encoding( $message , "JIS", "SJIS");
本当だ、うまくいきました。半角カナ1文字だけ、とかもちゃんといきますね。
こっちにします。
ありがとうございました。
0688nobodyさん
2006/01/31(火) 02:15:44ID:???十三 → 十\三 は
if(get_magic_quotes_gpc()) {$sled_title=stripslashes($sled_title);}
で直ったんですが、そうすると今度は ー の文字が [ になってしまいます。
そして次に mb_convert_kana で一度半角にしてから全角にすると直りました。
・・・
しかし 表あった という文字が 浮?った に・・・orz
文字コードはSJISです。
どなたかお助けをお願いいたします。。
PHPのVer4.3.11です。
0689nobodyさん
2006/01/31(火) 02:34:19ID:hnBahd6E既にPC内にあるデジカメで撮影した画像に、ドットを描きたいと思っています。
まずは試しに、画像の一番左上のピクセルに真っ黒いドットを描こうと試してみました。
結果は、一応うまくいったのですが、描けたのは真っ黒いドット(#000000)ではなく、
そのピクセルに既にあった色と合成されたような(#010410)のようなドットになってしまいました。
php.netのリファレンスを見て、imagealphablending関数が怪しいと思い使用してみたのですが、
引数をtrue、false、いずれに設定しても変化が見られませんでした。
(同関数のリファレンスページにある英語のコメントは読めませんでした;;)
環境は、PHP 5.1.2。
もちろんGDは使えるよう設定しています。
バージョンは2.0.28です。
どなたか解決法をご存知の方はご教授願います。
以下が、テストに用いたソースコードです。
$img = imagecreatefromjpeg('./hoge.jpg');
//imagealphablending($img, false);
imagesetpixel($img, 0, 0, imagecolorallocate($img, 0, 0, 0));
header('Content-type: ' . image_type_to_mime_type(IMAGETYPE_JPEG));
imagejpeg($img);
0690nobodyさん
2006/01/31(火) 02:36:00ID:???http://www.php.net/manual/ja/ref.pcntl.php とか
http://www.php.net/manual/ja/ref.sockets.php とかの
サンプルを参考に作ったのですが、Log4php で「関数がありません」と
出てエラーとなります。declare(ticks=1);をコメントにすると
動くのですが、declare(ticks=1);って必要ですか?
0691nobodyさん
2006/01/31(火) 02:54:02ID:???http://www.php.net/manual/ja/ref.pcntl.php
>declare()を使用して、プログラム中でコールバックの発生を許可する場所を指定する
>必要があります。これにより、非同期のイベントを処理する際のオーバーヘッドを
>最小限に抑えることが可能となります。
0692691
2006/01/31(火) 02:55:13ID:???必要ではないけど速くなるっていみな。
0693nobodyさん
2006/01/31(火) 04:19:38ID:???どれもPHPで出来ることは書いてあるんだけど、
具体的にどんな感じにコードを書いていけば良いのかよく分からない…。
0696nobodyさん
2006/01/31(火) 09:35:33ID:???User Contributed Notesによると、バージョンによって
imagealphablending()のデフォルトが違うらしい。
新しいものはデフォルトがTRUE。
・imagealphablending($img, FALSE)の戻り値はどうなっているか。
・imagecolorallocatealphaで不透明色を設定したらどうか。
0697nobodyさん
2006/01/31(火) 11:21:59ID:DKAPyXErjavacriptのresponseXMLで受信させる場合、
simplexml_load_staringでXMLオブジェクトを作り、
渡そうと考えたのですが、
このやり方ってどうなんでしょうか?
こういう場合の常套手段があれば教えてください。
0698nobodyさん
2006/01/31(火) 15:02:58ID:b+k1eFbTようにしたところ動きませんでした。
<?PHP
function calculate(){$principal = document.loandata.principal.value;
$interest = document.loandata.interest.value / 100 / 12; $payments = document.loandata.years.value * 12;
$x = pow(1 + $interest, $payments); $monthly = ($principal * $x * $interest) / ($x - 1);
if (!isNaN($monthly) && ($monthly != Number.POSITIVE_INFINITY) && ($monthly != Number.NEGATIVE_INFINITY))
{document.loandata.payment.value = round($monthly); document.loandata.total.value = round($monthly * $payments);
document.loandata.totalinterest.value = round(($monthly * $payments) - $principal);}
else{document.loandata.payment.value = ""; document.loandata.total.value = "";
document.loandata.totalinterest.value = "";}}
function round($x){return round($x * 100) / 100;}
?>
どうやらif文のところがエラー起こってるみたいなんですけど、どこが
違っているのかがわかりません。
どうか、どうすればいいのか教えてください、お願い致します。
0699nobodyさん
2006/01/31(火) 15:15:12ID:???あとそれは何言語だ。
0700nobodyさん
2006/01/31(火) 15:33:49ID:???document.loandata.payment.value とかよくわからんがちゃんと認識されている?
そこらへん一旦変数とかに格納させたら問題ないっしょ。
0701nobodyさん
2006/01/31(火) 15:37:04ID:???ここはPHPスレだよ。
0703nobodyさん
2006/01/31(火) 15:52:29ID:???JavascriptからPHPにしたかったんですけど、どうすればいいのか
よくわからなかったのです。
認識は・・・されているかどうかわからないんですけど、エラーが起こって
いるのはその辺みたいです。
0704nobodyさん
2006/01/31(火) 15:52:41ID:???0706nobodyさん
2006/01/31(火) 15:55:30ID:???とすると$aにはappleが入りますが
これを
http://hogehoge.com/?apple
などで値を取得しているサイトがあるのですが
どのようにしているのでしょうか?
0708nobodyさん
2006/01/31(火) 16:00:20ID:???みんなはどう?
0710706
2006/01/31(火) 16:55:10ID:SKUvf+xlありがとうございます。
出来ました。
以前http://hogehoge.com/?apple
の?をとって
http://hogehoge.com/apple
でも変数を取れる方法としてhtaccessがありましたが
それ以外は不可能でしょうか?
ディレクトリを無数に作成する方法以外であったら
おねがいします。
0713nobodyさん
2006/01/31(火) 17:25:20ID:???http://tgfans.s9.x-beat.com/698.php
あれ?なんか値段がおかしいwaヽ(´ー`)ノ
0714nobodyさん
2006/01/31(火) 18:41:13ID:???ソースってほどのもんじゃないし今更思ったんだがJSでやった方がよさそうな気もしてきたな。
PHPでするなら取りたい値をvalue=<?=$a?> とかでもたしておいて
計算したいタイミングでfunction cal〜($a,$b){}とか引数つけて呼び出せばok
でもJSみたいに表示させてる値そのまま変えれないと思う多分。どのタイミングで変えたいとかにもよる。
onclickでリロードさせてやるとかせんと駄目かも・・
あと基本的にPHPはサーバ側、JSはクライアント側で動くので・・
間違ってたら補足入れまくってください by 素人勉強中の意見
0715714
2006/01/31(火) 18:42:38ID:???0717nobodyさん
2006/01/31(火) 19:53:15ID:FZIxO5OtDBのテーブルに該当データが何件あるかを調べて、0件であればデータを追加する
という仕組みを作っています。
$query = 'select * from table where id="1"';
$result = mysql_query($query);
$count = mysql_num_rows($result);
if($count == 0){
//データ追加
}
該当データが(id=1)1件以上ある場合には、エラーにならないのですが、0件の場合
supplied argument is not a valid MySQL result resource
のエラーが返ってきてしまいます。
select count(*) from table where id="1";
にして、mysql_fetch_array()にしても同様のエラーが返ってきてしまいます。該当の
データが0件でエラーを出さないようにするにはどうすればいいのでしょうか?
0719nobodyさん
2006/01/31(火) 20:16:52ID:???aaa.php?b=c → aaa/b/c/
みたいになるようなやつ
0720nobodyさん
2006/01/31(火) 20:17:55ID:???htmlspecialchars()
mysql_real_escape_string()
ってやってから保存すると文字化けする事がありますか?
0721nobodyさん
2006/01/31(火) 20:33:15ID:???>>706-707 >>710-711
htaccessでのやり方は分かるけど、mod_rewriteはやったことないな。
ググれば出てくるでしょ。
0722nobodyさん
2006/01/31(火) 20:59:56ID:UhWLOiX4と$_POSTの配列を全部htmlspecialchars()でチェックしてるんですが、これでセキュリティ的にバッチグーと言えますか?
$_GETは100%使わないスクリプトです。
0723nobodyさん
2006/01/31(火) 21:07:54ID:???mysql_query($query)がTRUE(ついでにFALSEの場合も実装しとけ)を
返す時の処理を追加。
0724nobodyさん
2006/01/31(火) 21:37:28ID:???Apacheのmod_rewriteがそれ。
もしくは aaa.php?b=c → aaa.php/b/c/ なら PATH_INFO
0727nobodyさん
2006/01/31(火) 22:12:15ID:UhWLOiX4つまり馬鹿と天才は紙一重と言いたいわけですね。ありがとさんです。
0728nobodyさん
2006/01/31(火) 22:24:07ID:???メールを送って更新しても投稿されません。
サーバーはロリポップです。config.phpの設定は
// 受信メールサーバーの設定
// POP3サーバー
$host = "mailxxx.lolipop.jp";
// ユーザーID
$user = "lolipop.jp-dpxxxxxxxx";
// パスワード
$pass = "xxxxxxx";
としました。ここと更新後のジャンプ先と
対応MIMEサブタイプだけjpgにしてあとの全てはデフォルトです。
どうすれば正常に使えるようになるでしょうか?
よろしくお願いします。
0729721
2006/01/31(火) 22:43:58ID:???aaa/b/cでも、htaccess+PATH_INFOでいけるよん。
aaa.phpをaaaにリネームして、
htaccessで
<FilesMatch "^aaa$"> ForceType application/x-httpd-php </FilesMatch>
aaa(.php)で
$data = explode("/",$_SERVER('PATH_INFO'));
後は$dataを適当に利用。
0730nobodyさん
2006/01/31(火) 23:00:39ID:JNPr6KIKPHP+GDでV602SHで撮った写真を、ImageCreateFromJPEGで開こうとすると、
'XXXXXXXX.jpg' is not a valid JPEG file
となります。
GDで開けないJPEGファイルというのは存在するのですか?
ちなみにIEでは普通に見れますが、
Photoshopでは挙動がおかしく、一度上書きしてEXIFの情報をリセットしないと別名での保存ができません。
0731nobodyさん
2006/01/31(火) 23:49:51ID:sD84bde5$a1="onetwethree";
$a2="onethree";
$a3="one";
のような状態で、検索をかけて文字列にマッチする場合のみtrueを返したいです。
検索条件は
oneとtweで検索すると$a1が
oneとtweとthreeで検索すると$a1が
oneで検索すると$a1,$a2,$a3が
という風にしたいのですが、おそらくeregを使うと思うのですが書き方がわかりません。
どなたかお願いいたします。
0732nobodyさん
2006/01/31(火) 23:59:36ID:???一発でやろうとしないで、条件語句をひとつずつつき合わせながらフラグでも立てるが吉
それよりも、英語の勉強をやり直した方が良いぞ。
0734nobodyさん
2006/02/01(水) 00:10:26ID:???>GDで開けないJPEGファイルというのは存在するのですか?
あるよ。詳しく調べてないけど。
GDじゃなくても、Windowsの画像ビュアーでも
ツールによって大丈夫なJPEGと駄目なJPEGとかがある。
ZIPとかRARなどのアーカイブも似たような対応度の差異があるね。
0735734
2006/02/01(水) 00:17:22ID:???やりくりを考えるなら、そっちを調べた方がいいかも。
0736731
2006/02/01(水) 00:21:04ID:ECRbG5Uq英語は苦手で・・・
フラグの使い方をご伝授いただけないでしょうか?
ソースお願いします
0738730
2006/02/01(水) 01:13:38ID:o8148rQEありがとー
libjpeg調べてみるよ。
0739nobodyさん
2006/02/01(水) 01:22:17ID:???$a1="onetwethree";
$a2="onethree";
$a3="one";
foreach(split(" ", $_GET["search"]) as $g) { //検索単語はsearchに空白区切りで入るとする
$search .= "(?=.*$g)";
}
foreach(array($a1, $a2, $a3) as $a) {
if(preg_match("/$search/", $a)) $ret[] = $a;
}
var_dump($ret);
0740731
2006/02/01(水) 01:38:00ID:ECRbG5Uq丁寧な説明付きでありがとうございます。
今入れ替えてみたところ動作いたしました。ありがとうございました。
0741nobodyさん
2006/02/01(水) 03:03:03ID:???0743nobodyさん
2006/02/01(水) 10:14:22ID:???1.PHP5純正のSOAP
2.PEARのSOAP
3.NuSOAP
どれがお奨めですか?
0744nobodyさん
2006/02/01(水) 13:16:22ID:???まがい物入れたりできねーんだ。
純正の1にしておけ
foreach(){
array_push()
}
こんな感じで1個ずつ入れていくしかない??
0747nobodyさん
2006/02/01(水) 14:52:03ID:???array_push()やarray_unshift()は複数のデータをまとめて追加できる。
他にもarray_merge()やarray_splice()なども同様で、配列のどの位置に追加したいかで使い分け。
0750nobodyさん
2006/02/01(水) 15:20:16ID:???$array[] = 値; を使うことを推奨してるくらいだ
0752nobodyさん
2006/02/01(水) 16:32:45ID:???こういう場合はSQL内でLIMIT(OFFSET)を使い取得するデータを選ぶほうがいいのか
全部取得してしまってPHPで表示するのを取捨選択するのとどっちがいいでしょうか。
LIMIT使うほうがサーバへ負荷が少なくて済みそうな気がするんですが
この場合、全部で何件のデータがあるのか調べる場合
もう一度SQL打たないと駄目でどっちにすべきか迷ってます。
0754軟式PHP
2006/02/01(水) 16:55:11ID:???総件数を表示したい。とかいう場合でなければ
offset 位置 limit 表示数 + 1
で取得すれば、次のページが必要かどうかわかるお。
0755nobodyさん
2006/02/01(水) 16:58:50ID:???AとBの2つの乱数を生成した時に、
乱数の値がかぶってしまった場合に、
再びやりなおすといった処理はどのようにやればいいのでしょうか?
ヒントがあれば教えていただければありがたいです。
srand();
$i[] = rand(1, 5);
$i[] = rand(1, 5);
echo "{$i[0]}\t";
echo "{$i[1]}\t";
0756軟式PHP
2006/02/01(水) 16:59:39ID:???0757nobodyさん
2006/02/01(水) 17:01:29ID:???MySQLの機能で。
0758nobodyさん
2006/02/01(水) 17:10:50ID:???$i[] = $a = rand(1, 5);
while(($b = rand(1, 5)) == $a) 1;
$i[] = $b;
echo "{$i[0]}\t";
echo "{$i[1]}\t";
0759755
2006/02/01(水) 17:14:35ID:???おぉー。お早い回答ありがとうございます。
早速100回ほど試行したところ1回もかぶりませんでした。
しかし仕組みがわからないorz
マニュアル引いて勉強してきます。
どうもありがとうございました。
0760757
2006/02/01(水) 17:23:01ID:???LIMITした方がいいと思う。
Webサーバーは簡単に増やせるけど、DBサーバーは増やそうと思っても面倒だし。
で、LIMITしたときの全件取得方法。
SQLの話だけど、まあいいかな?
FOUND_ROWS()
http://dev.mysql.com/doc/refman/4.1/ja/miscellaneous-functions.html
PHP側では結局2回クエリー発行することになるけど、MySQLはきっと楽なはず。
0762752
2006/02/01(水) 17:33:09ID:???うおおお!ありがとうございました。
勉強不足でしたすいません。
データ数によっては>>753氏の言うように全件取得し
count()もよさそうですね。
>>ALL
SQLの話になり申し訳ない
0763nobodyさん
2006/02/01(水) 18:03:21ID:xx2TLFWy一端splitで切って配列にしてから…って以外にないのでしょうか?
0765763
2006/02/01(水) 18:36:57ID:xx2TLFWy例えば、
「あけましておめでとうございます。今年は戌年です。去年は猿年です。来年は猫年です。」
と言う文章があって、
この文章の"。"の3個目までを取り出したいとき、です。
わかりずらくてスマソ。
0767765
2006/02/01(水) 18:53:07ID:xx2TLFWyやっぱそれしかないのでしょうか。
変数の中が大量でも遅くなったりしないのでしょうか?
0769nobodyさん
2006/02/01(水) 19:20:24ID:???だめ?
0771nobodyさん
2006/02/01(水) 19:24:20ID:???やりたいことが良くわかんないけど、
前方から"。"をサーチ&カウントして目的の位置を取得
文字列の頭から目的の位置までを抜き出せば良いんじゃないの。
オーソドックスでベタなやり方だけど、別に問題がある訳でもないと思うが。
0772nobodyさん
2006/02/01(水) 21:06:32ID:???改行コードの前に改行数をつけるような処理をしたいのですが、
うまくいきません。
preg_replaceで置き換えるようにしてるのですが、ループのところでつまってしまいます・・・。
$temp = $_POST['temp']; //テキストエリアから取得したもの
function hoge($str,$count)
{
preg_replace("/\r\n/",$count."\r\n",$str);
}
hoge($temp);
こんな感じにして、どういう風にループをまわせばよいのか・・・。
ループの終了条件を取得するために改行数を取得しようとしましたが上手くいかず・・。
どなたかご教授いただけると幸いです。
0773nobodyさん
2006/02/01(水) 22:02:29ID:???〇ご教示
まず日本語を(ry
0774nobodyさん
2006/02/01(水) 22:36:17ID:???バージョンは5.x.xのものを使えばいいんでしょうか?
0775765
2006/02/01(水) 22:39:48ID:fBKX7o67実際は、
$hoge="今日から2月。<br>昨日は1月。<br>明日も2月。<br>そして水曜日。"
と言う変数があったとして、
ブラウザで表示させた時の2行目までを取り出したいのです。
なので、文字列<br>が2個目までのモノを取り出したい、という事で…。
0776nobodyさん
2006/02/01(水) 22:46:38ID:???おまえしつこい。
>>771の通りだろうが。
「。」を「<br>」に置き換えりゃ済むことだろうに。
それとも何か?
ソース丸ごと書かなきゃ満足しないのか?
だったら、ホカイケ。
0777nobodyさん
2006/02/01(水) 22:53:38ID:???$temp $_POST['temp'];
print preg_replace('/(\r\n)/', '(++ $i) . "$1"', $temp);
0778nobodyさん
2006/02/01(水) 22:54:55ID:???書き間違い
$temp $_POST['temp'];
↓
$temp = $_POST['temp'];
0780nobodyさん
2006/02/01(水) 23:08:38ID:???それがhttpかhttpsのどっちで通信されているかを
判断する方法を教えていただけませんか。
よろしくおねがいします。
0781765
2006/02/01(水) 23:16:50ID:fBKX7o67>>769
>>770
サンプルありがとー。
でも、正規表現よりは配列に格納した方がいいのか〜。
なるほど。ありがと。
>>779
そっか。じゃあ素直に…とりあえず報告。
↓↓↓↓↓
//----------------------------------
//ブラウザに2行分だけ表示させる
//----------------------------------
$hoge="今日から2月。<br>昨日は1月。<br>明日も2月。<br>そして水曜日。"
//<br>ごとに配列に格納
$hoge_array=explode("<br>", $hoge, 3);
//2番目の配列だけを表示
for($nCnt=0; $nCnt<=1; $nCnt++){
echo $hoge_array[$nCnt] ."<br>\n";
}
>>776
お門違いですぜ。
0783nobodyさん
2006/02/01(水) 23:27:42ID:???0784nobodyさん
2006/02/01(水) 23:48:44ID:???echo "string is $HOGE";
という動作を期待して
define(HOGE, 'hoge');
echo "string is HOGE";
と書いてもうまくいきませんよね。
echo "string is ". HOGE;
とすればいいのですが、あまり" "で分けたくありません。
一気に書く方法ってありませんでしょうか。
0785nobodyさん
2006/02/01(水) 23:53:51ID:???他のサーバからなら http://hogehoge.com/hoge.cgi をfopen出来たんです。
0786784
2006/02/02(木) 00:09:00ID:???echo "string is {HOGE}";
echo "string is {constant(HOGE)}";
echo "string is {constant('HOGE')}";
全部うまくいきませんでした。
0788nobodyさん
2006/02/02(木) 00:13:45ID:???echo "orenge : $HOGE1\n apple : {$HOGE2}\n banana : $HOGE3\n
0789nobodyさん
2006/02/02(木) 00:16:31ID:???>>788
短いならいいんですが、長くなると
echo "orenge : {$HOGE1}\n apple : {$HOGE2}\n banana : {$HOGE3}\n";
は綺麗ですが、
echo "orenge : ". HOGE1. "\n apple : ". HOGE2. "\n banana : ". HOGE3. "\n";
は見難いからです。
HTMLのソースを出力するときにクオーテーション(' ')などが含まれると
さらに見づらくなります。
0790nobodyさん
2006/02/02(木) 00:20:59ID:???$orange = 3;
$apple = 5;
$banana = 10;
echo "<a href='index?orange={$orange}&apple={$apple}&banana={$banana}'>";
上をdefine使って定義した場合、
define(ORANGE, 3);
define(APPLE, 5);
define(BANANA, 10);
echo "<a href='index?orange=". ORANGE. "&apple=". APPLE. '&banana='. BANANA. "'>";
となります。下は見づらくないでしょうか。括弧の対応関係がよくわからなくなります。
define使わないほうがいいんでしょうか・・
0791nobodyさん
2006/02/02(木) 00:21:25ID:???http://jp2.php.net/manual/ja/ref.filesystem.php#ini.allow-url-fopen
あと例に使うドメインはexample.comな。 決まりごとだから守れよ。
0795nobodyさん
2006/02/02(木) 00:32:26ID:???$sid = SID;
としてから$sidを使うという事ですか?
0796nobodyさん
2006/02/02(木) 00:34:10ID:???どうしても見難くていやなら関数用意して定数放り込むようにしたらどう?
0797nobodyさん
2006/02/02(木) 00:34:27ID:???ちょっと心持気持ち悪いですが。
ただ、defineのままできる方法があるのかなと思いまして。
結局ないんでしょうか。
0798nobodyさん
2006/02/02(木) 00:37:52ID:???リンク張るときに
echo "<a href='http://". URL_WEB_SERVER. "/". THIS_FILENAME. "'>hoge</a>";
とか。結構使うんですが、こういうのってやめたほうがいいですか?
全部変数にするべきですかね。
0799nobodyさん
2006/02/02(木) 00:39:50ID:???すごいショック。
ほんとだマニュアルにも確かにそう書いてある・・・。
マニュアルは結構まめに確認するほうだけど、完全に見落としてた。
0800nobodyさん
2006/02/02(木) 00:40:03ID:???いや。そのままで良いんじゃないの。
784はその書き方が気持ち悪いみたいだから関数用意したらって言っただけだよ。
0801nobodyさん
2006/02/02(木) 00:43:25ID:???echo "{HOGE}";
でHOGEの中身が出力されるって仕様があってもいい気がするんですけどねー。
しないのは何か理由があるのかなあ。
0803nobodyさん
2006/02/02(木) 00:48:36ID:???変数じゃなくって定数にしなきゃいけないって状況がある?
これも単なる興味の質問だけど
0804nobodyさん
2006/02/02(木) 00:50:20ID:???セッションを使ったi-mode向けの掲示板を作っているのですが、
前のページに戻る際なんかにキャッシュが効かなくなりました。
毎回通信して読み直しています。この方が都合が良いといえば良い
のですが・・・。(D901iで検証しています)
PCではキャッシュが効いているようなのですが、これはi-modeの
仕様なのでしょうか?
0808nobodyさん
2006/02/02(木) 01:03:42ID:???0810nobodyさん
2006/02/02(木) 01:14:41ID:???0811nobodyさん
2006/02/02(木) 01:18:35ID:???0812nobodyさん
2006/02/02(木) 03:08:48ID:???//
// 西暦を和暦に変換する
//
include_once("display.inc");
include_once("input.inc");
include_once("calc.inc");
include_once("result.inc");
if (empty($_GET['yyyy'])):
$_GET['yyyy'] = "";
endif;
display_input_area();// 入力エリアの表示
if (!empty($_GET['yyyy']) && input_is_valid()):// 妥当性チェック
$result = calc_gengou();// 元号の計算
display_result($result);// 元号の表示
endif;
?>
↑を実行したら、
Warning: main(display.inc): failed to open stream: No such file or directory in D:\Program Files\xampp\htdocs\~test\part1\chap2\test8.php on line 5
Warning: main(): Failed opening 'display.inc' for inclusion (include_path='.;D:\Program Files\xampp\php\pear\') in D:\Program Files\xampp\htdocs\~test\part1\chap2\test8.php on line 5
というエラーが表示されました。
なにがいけないんでしょうか?
同じディレクトリにdisplay.incはあります。
PHPは4.4.1です。
0814nobodyさん
2006/02/02(木) 09:04:07ID:???たぶん、本当の答えは「テンプレートエンジンを使え」だと思う。
文字列の連結って結構わけわかめになるからねー。
気持ち悪いのは分かるよ。
0816軟式PHP
2006/02/02(木) 10:19:32ID:???0817nobodyさん
2006/02/02(木) 10:32:23ID:20uSXYKW0819nobodyさん
2006/02/02(木) 11:53:28ID:???試しに
<?php
var_dump(glob("*.inc"));
?>
ってのを動かしたとき、表示内容の中にdisplay.incはあるか?
0820nobodyさん
2006/02/02(木) 12:11:49ID:???>>819
array(4) { [0]=> string(8) "calc.inc" [1]=> string(11) "display.inc" [2]=> string(9) "input.inc" [3]=> string(10) "result.inc" }
と表示されました。
今やってみたらなぜか動きました。
何がいけなかったんだろう?
お騒がせしました。
0821nobodyさん
2006/02/02(木) 13:48:17ID:???0822nobodyさん
2006/02/02(木) 13:59:08ID:???0823nobodyさん
2006/02/02(木) 14:54:38ID:???これをPHPのecho等でhtmlで出力する時にどう表現すればいいのかを知りたいのですが
0824nobodyさん
2006/02/02(木) 14:56:54ID:???0827nobodyさん
2006/02/02(木) 15:20:24ID:???だからまずは、
複数のフレームを1つのHTMLファイルで実現する手段を見つけなよ。
それさえ出来れば、後のことは引き受けた。
0828nobodyさん
2006/02/02(木) 15:21:02ID:???何も難しく考えることはない。
フレームなんてブラウザが同じ画面に構成してるだけなんだから。
index.php、left.php、right.phpという、それぞれ元のhtmlを吐き出す
PHPスクリプトからはじめてみな。
0829nobodyさん
2006/02/02(木) 15:25:36ID:???んじゃ、index.phpを
index.php?f=main、index.php?f=left、index.php?f=right
で呼び出した時にそれぞれのフレームの内容を吐くようにつくれば?
ただHTMLのフレームって、ファイルをまとめるためじゃなくて、
寧ろ分けたままのものを、表示の際にまとめるための手段だと思うんだけど。
0830nobodyさん
2006/02/02(木) 15:45:28ID:???結構長くなってしまうのでもうちょっと短くする方法はありませんでしょうか?
0832nobodyさん
2006/02/02(木) 16:57:21ID:???こんなのも
http://jp.php.net/http_build_query
0833nobodyさん
2006/02/02(木) 20:01:06ID:ix6GldKp<input type="hidden" name="ad" value="sample2@xxxx.xxx">
<input type="hidden" name="ad" value="sample3@xxxx.xxx">
<input type="hidden" name="ad" value="sample4@xxxx.xxx">
・
・
・
という風な値をフォーム送信時に、
$ad=
sample1@xxxx.xxx\n
sample2@xxxx.xxx\n
sample3@xxxx.xxx\n
sample4@xxxx.xxx\n
・
・
・
";
という風に格納したいのですがやり方がわかりません。
ググッてみたんですが、検索キーワードが悪いのか、目的地にたどりつけず・・・
どなたか教えてください
0834nobodyさん
2006/02/02(木) 20:04:51ID:???0835833
2006/02/02(木) 20:42:59ID:ix6GldKpありがとうございます。解決しました。
0836nobodyさん
2006/02/02(木) 20:51:18ID:???0837nobodyさん
2006/02/02(木) 21:01:14ID:???0838nobodyさん
2006/02/02(木) 21:09:46ID:E0bq5JaA0839nobodyさん
2006/02/02(木) 22:02:31ID:AVLZG/Ha悪用するわけじゃないけど、荒らしスクリプトみたいなのってどういう仕組みなのかなって思って。
0843nobodyさん
2006/02/02(木) 22:19:36ID:???>>840
荒しとヒントの区別の付かない人には無理だと思う。
0845nobodyさん
2006/02/02(木) 22:21:44ID:???0846nobodyさん
2006/02/02(木) 22:28:36ID:???0848nobodyさん
2006/02/02(木) 22:29:27ID:???0849nobodyさん
2006/02/02(木) 22:30:35ID:???0850nobodyさん
2006/02/02(木) 22:33:54ID:???0851nobodyさん
2006/02/02(木) 22:33:59ID:???0852nobodyさん
2006/02/02(木) 22:38:49ID:???0853nobodyさん
2006/02/02(木) 22:44:26ID:???実際にどこかのサーバで動かすスクリプトの開発環境として使用するなら、
そのサーバの環境に合わせる。(エンコード周りとか結構重要)
「とりあえず、遊んでみるだけ」って言うなら、当面はデフォで桶
0854nobodyさん
2006/02/02(木) 22:47:40ID:???・・そんなに使ってるのか!?
0857nobodyさん
2006/02/02(木) 22:52:27ID:5dJz86s1<?php
$var_A = 1;
function Test() {
global $var_A; //グローバル文で宣言
echo $var_A;
}
Test();
?>
しかし、関数Aで定義した変数を、関数Bで使う方法が分かりません。
function A() {
$var = "hoge";
}
function B() {
print $var;
}
これで $var を表示する方法が知りたいのです。
検索をかけても、グローバル変数を関数内で呼び出す方法が載っているサイトばっかりひっかかって、
下記の方法がなかなか見つからないのです。
ご教示お願いします。
0858857
2006/02/02(木) 22:55:15ID:???後者は、
A();
B();
を実行した場合についてです。
0859857
2006/02/02(木) 22:59:26ID:???「global $var;」を宣言したら使えました。
phpのスコープの概念が他の言語とかなり違っていて混乱していました。
global $var; は、
「グローバル変数 $var を 関数内で使用することを許可する。」というだけではなく、
「関数 $var を グローバル変数にする。」という処理も同時に行うという事なんですね。
自己解決でスレを汚して申し訳なかったです。
0860nobodyさん
2006/02/02(木) 23:35:23ID:???スコープの「概念」自体は他の言語と大差ないよ。
ただ、デフォルトがグローバルなのかローカルなのかの差はある。
0861857
2006/02/02(木) 23:47:17ID:???関数内での宣言がデフォルトでローカル変数の言語は使ったことがあったので良かったんですが、
グローバル変数を関数内でそのまま呼び出せない部分で混乱したようです。
| global $var; は、
| 「グローバル変数 $var を 関数内で使用することを許可する。」というだけではなく、
| 「関数 $var を グローバル変数にする。」という処理も同時に行うという事なんですね。
と考えていたのですが。
| ローカル変数 $var と グローバル変数 $var は別に存在する
| 関数で「global $var;」と宣言した場合には、その関数内ではグローバル変数の $var が使われる。
| 他の関数内でそのグローバル変数 $var を使いたい場合には、そっちも global $var; と宣言する必要がある。
とシンプルに考えたらなんだか理解した気になれました。
0862nobodyさん
2006/02/03(金) 00:00:10ID:???0863nobodyさん
2006/02/03(金) 00:13:21ID:???クラスにしてメンバ変数つかうのが妥当だと思われる。
0864nobodyさん
2006/02/03(金) 00:16:10ID:???0865857
2006/02/03(金) 00:19:30ID:???うんと、本来の「関数」ではないところに、
作業の流れを分かりやすくするために関数扱いにして
一番上で条件ごとにどの関数を呼び出すのかを列挙している感じに使ってます。
0866857
2006/02/03(金) 00:25:50ID:???関数から他の関数で使っている変数を呼び出す必要があるんです。
# 処理内容を順番に列挙
LoadFile();
if ($_POST['Type'] == "表") {
FileTable();
} else {
FileG();
}
# ファイル読み込む
function LoadFile {
$ファイル内容 = fopen("hogehoge.dat", "r");
fclose($ファイル内容);
}
# ファイルの内容を表にする
function FileTable {
〜ここで変数 $ファイル内容 を使う〜
}
# ファイルの内容をグラフにする
function FileG {
〜ここで変数 $ファイル内容 を使う〜
}
0867857
2006/02/03(金) 00:26:34ID:???# 処理内容を順番に列挙
LoadFile();
if ($_POST['Type'] == "表") {
FileTable();
} else {
FileG();
}
# ファイル読み込む
function LoadFile () {
$ファイル内容 = fopen("hogehoge.dat", "r");
fclose($ファイル内容);
}
# ファイルの内容を表にする
function FileTable () {
〜ここで変数 $ファイル内容 を使う〜
}
# ファイルの内容をグラフにする
function FileG () {
〜ここで変数 $ファイル内容 を使う〜
}
0868nobodyさん
2006/02/03(金) 00:31:58ID:???function LoadFile () {
return $handle = fopen("hogehoge.dat", "r");
}
$naiyou = LoadFile();
if ($_POST['Type'] == "表") {
FileTable($naiyou);
}
これじゃダメ?
0869nobodyさん
2006/02/03(金) 00:33:06ID:???print "$x[$y[2][1]]";
そうすると、パースエラーになってしまうようです。
Parse error: syntax error, unexpected '[', expecting ']' in /ディレクトリ階層/hogehoge.php on line 数字
原因を教えて頂けると幸いです。
0870857
2006/02/03(金) 00:36:49ID:???上級者の方はそういうコードを好まれるみたいですね。
自分の場合は、関数から引数を2つ出力できなかったり(配列使えばできるけど)するので
なんとなく867みたいなやり方がわかりやすい気になっちゃうんです。
自分のコードは脆弱性を作りやすい書き方みたいですので、他の人のを参考にして綺麗なコードを書くように心がけます。
0872869
2006/02/03(金) 00:47:34ID:???あ、すみません。
表現がおかしかったようです。
(誤) 配列$x に 二次元配列$y[2][1] の値を代入したくて、次のような式を書きました。
言葉で説明できないのでコードで書きますね。
このようなコードを1行に書きたいんです。
配列に配列をいれることをよくやるので1回一時的な変数にいれたりするとまどろっこしいので。
| $hoge = $y[2][1];
| $x[$hoge];
これを多くの言語では、$x[$y[2][1]] と書けばできるんですが、
phpではこのようにシンプルにやる方法はないのでしょうか?
0875無知ですまそ
2006/02/03(金) 02:01:46ID:SfkSG4GRif ($FORM{'mail'} ne 'aaa') { &error("パスワードが違います"); }
としたのだけど、aaaとbbb以外は違うとするにはどうすればいいのか教えてください。
0876無知ですまそ
2006/02/03(金) 02:02:53ID:SfkSG4GRでした。
0881nobodyさん
2006/02/03(金) 10:36:16ID:???GETとPOSTとSESSION以外で別ページに変数渡す方法ないでしょうか?
やりたいことは別PHPプログラムへ変数を渡すことです、
GETとPOSTはセキュリティの関係上使用したくありません、
変数を渡されるPHPプログラムは全く弄ることができないので、
SESSIONでも難しい状態です。
宜しくお願いします。
0882nobodyさん
2006/02/03(金) 10:48:39ID:???0883nobodyさん
2006/02/03(金) 11:14:29ID:???wrapper(1, 2, 3);
function wrapper() {
$args = func_get_args();
//return original($args);
//これでは original(1, 2, 3) ではなく original(array(1, 2, 3))
}
python かなんかだと配列渡すと勝手に展開してくれた記憶が。
同じようなことをやりたい。
0885nobodyさん
2006/02/03(金) 12:13:10ID:???渡されるプログラムをいじれないなら、渡されるプログラムが
受け取れる方法を確認するのが先じゃないのか?
つか渡されることを前提に作られていないなら get, post 以外は
無理だろ、ふつー。
0890nobodyさん
2006/02/03(金) 12:26:45ID:???こんな分割の仕方をする人がそのままの感覚でクラスを使ったら
めちゃめちゃメモリ食いのプログラムが出来上がる予感
0891nobodyさん
2006/02/03(金) 12:32:38ID:???0892nobodyさん
2006/02/03(金) 12:36:20ID:???0894nobodyさん
2006/02/03(金) 14:39:16ID:???今時そんな貧乏的なプログラミングする必要あるの?
どんな分割しようがこの時代において大差ないだろ。
そんなに、負荷が気になるなら eAccelerator でも使ってコンパイルすりゃいいじゃん。
そしたら分割がどうのなんてことによる差なんて殆どなくなるから。
0895nobodyさん
2006/02/03(金) 17:23:33ID:???と
$a =& $b;
って一緒ですか?
0897nobodyさん
2006/02/03(金) 17:57:08ID:???あの単なるラベルにしかなってないレベルの機能分けでクラスにしたら
大半の変数をメンバ変数に抱えてグローバルで持ち回る羽目になると思うし、
しかもそれをいちいちオブジェクトを通した間接参照することになる。
そういう状態になると、PHPってメモリを無駄に馬鹿食いする上に激遅になるんで
ホントにそのためだけにアクセラレーターなどを導入する羽目になりかねないと思う。
0898nobodyさん
2006/02/03(金) 17:58:27ID:???0899nobodyさん
2006/02/03(金) 19:47:52ID:QzQwZT7Xrequire_once "Auth/Auth.php";
function loginFunction()
{
/**
* HTML出力は、作成するアプリケーションに合うように、
* 変更してください。
*/
echo "<form method=\"post\" action=\"" . $_SERVER['PHP_SELF'] . "\">";
echo "<input type=\"text\" name=\"username\">";
echo "<input type=\"password\" name=\"password\">";
echo "<input type=\"submit\">";
echo "</form>";
}
$dsn = "mysql://user:password@localhost/database";
$a = new Auth("DB", $dsn, "loginFunction");
$a->start();
if ($a->getAuth()) {
/**
* サイトの出力はここ。
*/
}
動かないんだが、
テーブル指定してないのにつながるの?
教えて下さい。
0900nobodyさん
2006/02/03(金) 19:52:35ID:???エスパーさんお呼びですよ
0902nobodyさん
2006/02/03(金) 20:06:13ID:???答えは出てるんじゃまいか。
0903nobodyさん
2006/02/03(金) 20:30:19ID:???それ配布するつもりか?
プログラム言語触ったことないやつにはecho "";なんて意味不明だ。
別ファイルにhtml部分は書き出したほうがいいんじゃないか?
0904nobodyさん
2006/02/03(金) 20:56:05ID:???そういうことか、さんくす
あるところに=&を参照代入の演算子だって書いてあったから=&で1つなのかと思った
0906nobodyさん
2006/02/03(金) 22:40:41ID:???mb_ereg(preg_quote($a),"あと");
で
$a="あ";
だと真で
$a="あと";
だと偽
になるんですが両方とも真にしたいのです。原因わかる方いますでしょうか?
0908nobodyさん
2006/02/04(土) 01:09:37ID:???再現しない。普通にどっちも真になった。
SJISだ、と言ってるが、実はソースがSJISなだけでphp.iniの設定はSJISじゃなかったりしないか?
0909nobodyさん
2006/02/04(土) 05:58:57ID:???あれま、そうなんですか。よく確認してませんが、php.iniではEUCかもしれません。今起きたばかりなんであとにしますが、php.iniをいじれないのでme_internal_encoding()、ini_set()あたりでいけますかね?
0910nobodyさん
2006/02/04(土) 06:00:01ID:???・共通部分を抜き出した配列を作り、重複するキーと値のペアを削除したい。
$array1 = array( 'a'=>1, 'b'=>2, 'c'=>3 )
$array2 = array( 'a'=>1, 'b'=>3, 'c'=>5 )
↓
$array1 = array( 'b'=>2, 'c'=>3 )
$array2 = array( 'b'=>3, 'c'=>5 )
$result = array( 'a'=>1 )
$result = array_intersect_assoc($array1, $array2 [, array ...])
マニュアルを調べて重複する物を取り出す方法は分かったけど、重複してるのを消すには各配列毎にunsetしなきゃダメかな。
もっとスマートな方法があれば教えてください。
0911906
2006/02/04(土) 08:30:29ID:???でできました。ありがとうございました。
0912nobodyさん
2006/02/04(土) 09:10:21ID:???俺、疲れてるんでしょうか?
0914nobodyさん
2006/02/04(土) 10:09:10ID:???複数の配列間で共通の物を抜き出す用途には使えないんじゃないかな。
0915nobodyさん
2006/02/04(土) 10:17:19ID:???array_diff()だな。
0916nobodyさん
2006/02/04(土) 10:32:01ID:???ってなってるから
>>910の例に則ると、array_diff($array1, $array2) の結果は array( 'b'=>2 ) になって、
欲しい結果として例示してる $result と 各$arrayには当て嵌まらなく・・ orz
0917nobodyさん
2006/02/04(土) 10:38:25ID:???あいう|aabbccdd|1234
えおか|eeffgg|4321567
等100件くらいのデータを登録したいのですが、10件ほどしか登録できません。
どうしたらいいでしょうか?
$text = "abc.txt";
$mi = file($text);
$i = 1;
foreach($mi as $val){
$jon = explode('|', $val);
mysql_query("INSERT INTO dare VALUE ($i,'$jon[0]','$jon[1]','$jon[2]')");
$i++;
}
0918nobodyさん
2006/02/04(土) 10:47:46ID:???0919nobodyさん
2006/02/04(土) 10:51:55ID:???$array1と$array2の共通部分が$resultならそれを各配列から除けばいい。
$array1 = array_diff_assoc($array1, $result);
多分こんな感じ。
0921nobodyさん
2006/02/04(土) 11:02:10ID:???あぁ、なるほど・・勘違いして妙な事言ってすみません。
動作チェックをして意図した通りに動く事を確認しました。ありがとうございます
0922nobodyさん
2006/02/04(土) 11:15:04ID:???echoはちゃんと100件ほど表示されるんですよ。
navicat使っとく事にします。
ありがとうございました。
0923nobodyさん
2006/02/04(土) 11:53:48ID:???mysql_query("INSERT INTO dare VALUE ($i,'$jon[0]','$jon[1]','$jon[2]')") or die(mysql_error());
0924nobodyさん
2006/02/04(土) 19:36:20ID:???PEAR が ペアって読むって TV 見てて初めて気付いた。。
てゆーか梨だったと今更気付いたしorz
0926nobodyさん
2006/02/04(土) 20:55:59ID:???0927nobodyさん
2006/02/04(土) 20:57:52ID:???0928nobodyさん
2006/02/04(土) 21:07:39ID:???日本語読みだとペアー
0929nobodyさん
2006/02/04(土) 22:13:32ID:???0930nobodyさん
2006/02/05(日) 03:06:13ID:???当方WindowsでPHPをコーディングしているのですが、仕事場ならまだしも自宅でコーディングする時に
あの登録されていない拡張子のアイコンがとても気になります。Javaとかは良いアイコンがあったので
変更しているのですが、PHPファイルの良いアイコンがなかなか見つかりません。
誰か良いアイコンご存じないですか?
0931nobodyさん
2006/02/05(日) 03:07:29ID:???これ使ってる。
0933930
2006/02/05(日) 03:59:17ID:???ありがとうございます!
こんな素敵なアイコンがあったのか・・・
やる気が出てきたです!
しかしアイコンとかちょっとかえるだけで何か凄い新鮮な気分だ
0934nobodyさん
2006/02/05(日) 04:06:25ID:???といったフォーマットの文字列から、
1〜4文字目と8〜9文字目を抜き出して
06 02/31
というフォーマットに変換にしたいんですが、どうやるのが手短ですか?
自分がやるとsubstrとか何度も使いまくってエライことになりそうなんですが…。
0937nobodyさん
2006/02/05(日) 04:50:40ID:uUJqicme書き足していくと、もとある文章の上に書き足されてしまいます。
もとある文章の下に加えたい場合はどのような操作をすればよいのでしょうか?
0938nobodyさん
2006/02/05(日) 05:12:58ID:???<?
$logpath = "hoge.txt";
$lines = @file($logpath);
$fp = @fopen($logpath , "w");
flock($fp, LOCK_EX);
$lines[] = "追加したい文字列<br>\n";
foreach($lines as $value) fputs($fp, $value);
flock($fp, LOCK_UN);
fclose($fp);
/*確認*/
$lines = @file($logpath);
foreach($lines as $value) print($value);
?>
こんなんでどうでしょう
0941938
2006/02/05(日) 05:17:52ID:???勉強になりますた
0942nobodyさん
2006/02/05(日) 05:23:48ID:???0943nobodyさん
2006/02/05(日) 05:31:54ID:???ってことは、無限ループphpを作って実行した場合には、
そのphpを終了することはできないのでしょうか?
終了するためにはApache再起動が必要になるんですか?
0944nobodyさん
2006/02/05(日) 05:41:50ID:???そこのあたりあんまり詳しくないけど多分そうだと思う。
しかもApache2からはタスクバーにApacheアイコンあるでしょ?
それからはApacheの再起動とか出来なくなっちゃう。
マイコンからサービスで止めなきゃダメポ
0945nobodyさん
2006/02/05(日) 05:51:49ID:???0946nobodyさん
2006/02/05(日) 05:57:28ID:???出来るならどっかにあげてくれ
0947943
2006/02/05(日) 05:58:55ID:???ということは、例えば共有レンタルサーバでスクリプトを無限ループさせちゃったら、
サーバ管理者しか止められないということなんでしょうか(´・ω・`)
0948945
2006/02/05(日) 06:01:16ID:???空白改行とコメント含んでます。貼るには長いですかね。。
はれる場所さがしちゅ
0949945
2006/02/05(日) 06:20:23ID:???すごく初歩的な質問になりますけれど、継承というのはこういう使い方でおかしくないでしょうか?
質問の仕方が悪いかもしれませんが、どう聞くべきかむずかし。。
親クラスに↓こんなメソッドがある場合、
//レコード取得
public function Set_Data($result, $row) {
mysql_data_seek($result, $row);
return mysql_fetch_array($result);
}
子クラスでそれを使いたい場合は↓のようにしている。
//結果取得
public function Setdata($row=0) {
$rs= parent::Set_Data($this->result, $row);
$this->setBbsdate($rs["bbsdate"]);
$this->setBbsid($rs["bbsid"]);
$this->setUsername($rs["username"]);
$this->setTitle($rs["title"]);
$this->setBody($rs["body"]);
$this->setMailaddress($rs["mailaddress"]);
$this->setWebaddress($rs["webaddress"]);
$this->setDeletekey($rs["deletekey"]);
$this->setRemotehost($rs["remotehost"]);
}
0950nobodyさん
2006/02/05(日) 06:26:14ID:???普通、子クラスから親クラスのメソッド呼び出すときも
$this->Set_Data(); ってやると思うぞ。
0952949
2006/02/05(日) 06:34:24ID:???ありがとうございます。
例えば、こんな親のコンストラクタがある場合、
//親コンストラクタ
public function __construct() {
$this->constr = mysql_connect('*******', '****', '*******');
$this->dbname = '******';
mysql_select_db($this->dbname);
}
子のコンストラクタから親のコンストラクタを使う場合、↓みたいにしなきゃいけなかったので
親の使うときは全部こうなのかと勝手に思い込んでました。
//コンストラクタ
public function __construct() {
parent::__construct();
}
ご教授ありがとうございました。
0953nobodyさん
2006/02/05(日) 09:10:19ID:iOU2xOeQformのtextareaタグで以下のデータを入力します。
aaa
bbb
ccc
スクリプトで、
$arr = explode("\n",$data)
のように、改行コードで配列に格納し、
if ($arr[0] == "aaa")
で比較しても条件にマッチしません。
var_dump($arr[0])したところ、4文字になっていました。
どういうことなのでしょうか?
0954nobodyさん
2006/02/05(日) 09:52:04ID:???さすれば道は開けよう
0955nobodyさん
2006/02/05(日) 10:23:24ID:???0956nobodyさん
2006/02/05(日) 10:34:00ID:???0957nobodyさん
2006/02/05(日) 10:45:22ID:???str_replace("\r","\n",$text);
str_replace("\r\n","\n",$text);
って常にやっとけばいいのかな?
0958nobodyさん
2006/02/05(日) 11:08:26ID:???\r\n \n \rの3パターンがある。(\n\rは無い)
それぞれの場合にその処理をするとどうなるか考えてみると、おのずと答えがでる。
0959nobodyさん
2006/02/05(日) 11:31:00ID:???0962nobodyさん
2006/02/05(日) 13:38:58ID:???| ̄| /> _ _ / _| | | />
| |// \ \ __ / / \ \. | |//
| \ \ \/ \/ / 〉 ヽ. | \
| |\ \ \ /\ / | ̄ ̄ ノ | |\ \
/::::/'"  ̄ヾi /  ̄ ̄ \ /::::/'" ̄ ̄ヾi /  ̄ ヽ
|:::::::| ,,,,,_ ,,,,,,| | ^ ^ | |:::::::| ,,,,,_ ,,,,,,| | ^ ^ |
|r-==( 。);( 。) | >ノ(、_, )ヽ、.| |r-==( 。);( 。) | >ノ(、_, )ヽ、.|
( ヽ :::__)..:: } ! ! -=ニ=- ノ ! ( ヽ :::__)..:: } ! ! -=ニ=- ノ !
ヽ ー== ; \ `ニニ´ / ヽ ー== ; \ `ニニ´ /
\___ !  ̄ ̄ \___ !  ̄ ̄ ̄
0963nobodyさん
2006/02/05(日) 14:37:05ID:6eXZDRj2例えば、2番目のテーブルの3行目の左から4個目のセルの値を取り出す方法。
やっぱり、文字列処理をしないといけないのでしょうか?
0964nobodyさん
2006/02/05(日) 14:38:11ID:???0966nobodyさん
2006/02/05(日) 15:11:02ID:???PHPにはPerl互換の正規表現を扱うpreg系ライブラリがあるから
それ使ってればそれほど違いを意識しないで済むよ。
若干の仕様差はあるけど、pregのマニュアルの中で明記されてる。
Perl互換でないereg系は要するにPerl拡張の入ってない標準的な正規表現です。
0967944
2006/02/05(日) 15:57:34ID:???今の俺の理解力ではそういうことになる。
一応そこに確認してみたらどうだろう?
で、結果が解ったら俺に教えてくれ('A`)
0968nobodyさん
2006/02/05(日) 17:15:02ID:???共有サーバだったら、PHPなりPerlなりの実行時間には制限が設けられていると思う。
1ユーザがリソースを食い尽くさないようにね。
なので、その制限時間を越えたら、問答無用で強制終了されると思われ。
0969nobodyさん
2006/02/05(日) 17:35:00ID:???0970nobodyさん
2006/02/05(日) 17:35:04ID:???ActiveXを組み合わせる以外に方法はありませんか?
0971nobodyさん
2006/02/05(日) 17:52:09ID:???トップーページと入力すると
本来ならば%83g%83b%83v%83y%81[%83WのはずなのにPHPは%83g%83b%83v%83y%81_%83Wと受け取ってしまう。
[となるべく部分が_になってしまう。
[[[とすると_[[と受け取るので最初の[のみ誤認してしまうようです。
これの対処はどのようにすればいいでしょうか?
0972nobodyさん
2006/02/05(日) 17:54:39ID:???CGIだから無限ループが問題にならないということはないよ。
リソース食えば同居してるApacheの足を引っ張るから。
普通のまっとうな管理者ならリソースの制限をしてるので、
ユーザの過失で無限ループに陥っても、管理者が手動で止めるまで際限なく
ループが続くということはない。Apahce+PHP(サーバモジュール/CGI/suExec等)の
組み合わせにもよるので、制限や監視のしかたにも色々とあるが
そういった用意は管理者がしてるものなので「管理者が止めないとだめ」というのは正しい。
制限、監視をしてても、それらは一時的にはサービスの提供に支障が出るので、
テスト自体を共有サーバでしてるような香具師は注意・警告の上、
何度も繰り返すようなら契約の解除ぐらいはやります。他の人に迷惑だからね。
0973nobodyさん
2006/02/05(日) 18:03:33ID:???>トップーページと入力すると
というのはURLに入力という意味で
『http://.../index.php?トップページ』
としたときです。
このように入力した後 echo key ($GET); とするとトップペ\ジとなります。
それと、環境はPHP5を使用しています。
OSはWindowsXP SP1でAN HTTPDとApacheの両方で同様の誤動作を確認しています。
情報足らずで失礼しました、
引き続き対処の程を教えていただけるようお願いします。
0976nobodyさん
2006/02/05(日) 18:35:09ID:???↑の説明って、マニュアルのどこにありますか?
0978nobodyさん
2006/02/05(日) 19:00:18ID:???なる程、仕様なのですね。
配列とkey関数のマニュアルは読んで見ましたが該当していそうな部分は見当たりませんでした。
さすがにあの量の中から探すのも大変なのでどこに書かれているか教えていただけませんか?
ついでに報告として
$test = Array ("トップページkey" => "トップページvalue");
print_r ($test);
print (key ($test));
を実行して見ましたが、トップペ\ジkeyとは表示されませんでした。
valueの方も同様にトップペ\ジとはなりませんでした。
0979nobodyさん
2006/02/05(日) 19:14:37ID:???そこは読んだのですけれど、分からなかったのです。
説明しているサイトとかないでしょうか?
簡単にでも言語化してあれば自分でいじってみるのですが…。
検索エンジンにもかからないんですよね…。
0980nobodyさん
2006/02/05(日) 19:23:02ID:???0982nobodyさん
2006/02/05(日) 19:59:05ID:???言語化というのはPHPとして書かれているという意味でいいんかな。
サンプルソースあるよ。
ttp://php.s3.to/man/language.oop5.basic.html
0983nobodyさん
2006/02/05(日) 20:01:21ID:???みたいになってるデータをただの「236」という数字に直すにはどうしたらいいんでしょうか?
0984nobodyさん
2006/02/05(日) 20:02:28ID:???<a href="yahoo.co.jp">yahoo</a>
<a href='yahoo.co.jp'>yahoo</a>
<a href=yahoo.co.jp>yahoo</a>
の違いって何でしょうか。
echoで出力するときにあんまり" "や' 'で囲むと複雑になるので
囲まないでやりたいんですが、どう使い分けるんでしょうか。
0985nobodyさん
2006/02/05(日) 20:12:39ID:???自分で調べてみるかWeb制作板で聞いてみそ
0987nobodyさん
2006/02/05(日) 20:19:21ID:???ついでに資料見っけたんで張る。
http://www.php.net/manual/ja/language.types.type-juggling.php#language.types.typecasting
echo (int)$n = "00000000236";
や、$nの型自体を変えたい場合は
settype($n, "integer")
としてもいいかも
0988nobodyさん
2006/02/05(日) 20:19:55ID:???URIの場合は "" や '' で囲まなければならない。
1つのブラウザでたまたま表示できても、他のブラウザで表示できる保証はない。
<a href="http://www.hogehoge.foo/my document.html">test</a> みたいに、
URIに空白が含まれていたら、囲わないと殆どのブラウザで表示できなくなるぞ。
ちなみに、URIに空白文字の使用は認められている。
0989937
2006/02/05(日) 20:21:24ID:uUJqicmeありがとうございました
0991nobodyさん
2006/02/05(日) 20:49:02ID:???今見たら404。
どなたか>>931と同じアイコンをアップしてくれぬか。
http://www.php.net/download-logos.php
のでもいいんだけども。
0992>>953
2006/02/05(日) 20:52:41ID:JmIOlMc70993nobodyさん
2006/02/05(日) 21:24:21ID:???AN HTTPDから起動させようとするとうまくいかないのはなぜでしょうか。
php.exeなら動くのでAN HTTPDの設定は問題ないと思うのですが・・・
0994nobodyさん
2006/02/05(日) 22:15:33ID:???0995nobodyさん
2006/02/05(日) 22:24:26ID:???その段階だと俺はphp-cgiで動くなぁ、とか言うコメントしかできないかも。
OSとかAN HTTPDの設定とか書いてくれると色々アドバイス貰いやすいよ。
0997nobodyさん
2006/02/05(日) 22:34:49ID:???どうぞ。
すまんぬ、いつもの癖でパスつけちゃった
ttp://upld3.x0.com/index.html
多分見たら解ると思う
0998nobodyさん
2006/02/05(日) 22:39:03ID:???http://pc8.2ch.net/test/read.cgi/php/1139146534/l5
1000nobodyさん
2006/02/05(日) 22:44:58ID:???10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。