【PHP】下らねぇ質問はここに書き込みやがれpart15
■ このスレッドは過去ログ倉庫に格納されています
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
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するファイルの中身がおかしかったのか、
まぁもう少し確認してみれ。
■ このスレッドは過去ログ倉庫に格納されています