トップページphp
1001コメント338KB

【PHP】下らねぇ質問はここに書き込みやがれ 30

レス数が1000を超えています。これ以上書き込みはできません。
0001nobodyさん2006/10/05(木) 01:38:25ID:y1WWhz/p
PHPに関するくだらねぇ質問用スレです。ここならお前の下らない質問に回答があるかも知れません。

まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り

◆質問する場合の注意
1. 自分のIDを表示させること。(メール欄に何も記述しないでください)
2. サーバーのOS、WebサーバーとPHPの種類やバージョン等を明記すること。
3. 己の行った操作、変更などを詳しく明記すること。
4. エラーメッセージはそのまま表記すること。「エラーが出ます」では絶対分かりません。
5. 質問者としても態度をわきまえること。
6. 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。

◆質問後の注意
・質問者は必ずIDを表示させてください。(メール欄に何も記述しないでください。)
・2回目以降は最初に質問した際のレス番号を名前欄に入れてください。
  (逆に回答者は質問者に対して>>(アンカー)をつけて答えてください。)
・解決しなくても回答をもらった場合はお礼を言う。
  (荒らし、煽りは除く。逆に煽られたときも、無闇に反論せずスルーすべし)

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークはそれぞれの該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
・オブジェクト指向については良スレがないから本を買え。理解できないならムリに使うな。
・速さについては自分でベンチをとってここに書け(違う環境の人も調べてくれるかも)
0002nobodyさん2006/10/05(木) 01:39:17ID:y1WWhz/p
【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/
【PHP】下らねぇ質問はここに書き込みやがれpart14
http://pc8.2ch.net/test/read.cgi/php/1134868212/
【PHP】下らねぇ質問はここに書き込みやがれpart15
http://pc8.2ch.net/test/read.cgi/php/1137236771/
0003nobodyさん2006/10/05(木) 01:39:51ID:y1WWhz/p
【PHP】下らねぇ質問はここに書き込みやがれpart16
http://pc8.2ch.net/test/read.cgi/php/1139146534/
【PHP】下らねぇ質問はここに書き込みやがれpart17
http://pc8.2ch.net/test/read.cgi/php/1140786348
【PHP】下らねぇ質問はここに書き込みやがれpart18
http://pc8.2ch.net/test/read.cgi/php/1142417901/
【PHP】下らねぇ質問はここに書き込みやがれ Part19
http://pc8.2ch.net/test/read.cgi/php/1144513878/
【PHP】下らねぇ質問はここに書き込みやがれpart20
http://pc8.2ch.net/test/read.cgi/php/1146165153/
【PHP】下らねぇ質問はここに書き込みやがれpart21
http://pc8.2ch.net/test/read.cgi/php/1148389517/
【PHP】下らねぇ質問はここに書き込みやがれ 22
http://pc8.2ch.net/test/read.cgi/php/1149710968/
【PHP】下らねぇ質問はここに書き込みやがれ 23
http://pc8.2ch.net/test/read.cgi/php/1150995543/
【PHP】下らねぇ質問はここに書き込みやがれ 24
http://pc8.2ch.net/test/read.cgi/php/1152251693/
【PHP】下らねぇ質問はここに書き込みやがれ 25
http://pc8.2ch.net/test/read.cgi/php/1153652403/
【PHP】下らねぇ質問はここに書き込みやがれ 26
http://pc8.2ch.net/test/read.cgi/php/1154923910/
【PHP】下らねぇ質問はここに書き込みやがれ 27
http://pc8.2ch.net/test/read.cgi/php/1156262092/
【PHP】下らねぇ質問はここに書き込みやがれ 28
http://pc8.2ch.net/test/read.cgi/php/1157284868/
【PHP】下らねぇ質問はここに書き込みやがれ 29
http://pc8.2ch.net/test/read.cgi/php/1158434799/
0004nobodyさん2006/10/05(木) 01:40:25ID:y1WWhz/p
関連リンク
■本家マニュアル   http://www.php.net/manual/ja/
■日本PHPユーザ会 http://www.php.gr.jp/
■PEARマニュアル  http://pear.php.net/manual/ja/
■メーリングリスト   http://ns1.php.gr.jp/mailman/listinfo/

 (以下英語)
■Smarty       http://smarty.php.net/
■Zend本家      http://www.zend.com/
■Zend Framework  http://framework.zend.com/
■php | architect   http://www.phparch.com/
■Smartyマニュアル http://smarty.php.net/manual/en/
■ZFマニュアル    http://framework.zend.com/manual/en/
■PECL本家(英語) http://pecl.php.net/

まだ英語しかないマニュアルも後々/manual/en/を/manual/ja/に変えてみたら日本語があるかもしれません。
0005nobodyさん2006/10/05(木) 01:41:32ID:y1WWhz/p
関連スレ
PHP関連の書籍 第3版
http://pc8.2ch.net/test/read.cgi/php/1150558685/
PHP関連サイト
http://pc8.2ch.net/test/read.cgi/php/982694601/
【PHP】PEAR Part2
http://pc8.2ch.net/test/read.cgi/php/1122899232/
【Smarty】PHPのテンプレートエンジン【Flexy】
http://pc8.2ch.net/test/read.cgi/php/1118799352/
【PHP】フレームワークについて語るスレ5【総合】
http://pc8.2ch.net/test/read.cgi/php/1159579507/
Webでオブジェクト指向プログラミング
http://pc8.2ch.net/test/read.cgi/php/1133489897/
【PHP】セッションについて語ろう!【PHP】
http://pc8.2ch.net/test/read.cgi/php/1064399467/
【ZendStudio】PHP統合開発環境 Part2【Eclipse】
http://pc8.2ch.net/test/read.cgi/php/1154082822/
最強のPHPエディタはなに?
http://pc8.2ch.net/test/read.cgi/php/1133785416/

[PHP-users MLヲチ9]丸投げした覚えは全くありません
http://pc8.2ch.net/test/read.cgi/php/1143731062/
中学生がPHPを習得するスレ
http://pc8.2ch.net/test/read.cgi/php/1139746974/
【PHP】Lvうpしたいので宿題ください
http://pc8.2ch.net/test/read.cgi/php/1147830986/

くだすれPHP(超初心者用)
http://pc8.2ch.net/test/read.cgi/php/1150088761/
0006nobodyさん2006/10/05(木) 01:43:07ID:y1WWhz/p
【簡易FAQ】
1.文字コードは何を使えばいいの?
 →1.UTF-8 2.EUC-JP のどちらか。迷うようなやつはShift_JISは使っちゃダメ。
2. このスレに書き込むときに自分のサイト名を晒したくない
 → http://example.com/が例文などのために予約されている。hogehoge.comは使っちゃダメ。
3. ブラウザに何も表示されないんだけど・・・
 → Apacheの設定を見直せ。ファイルの拡張子は何にしてて、その拡張子でPHPを呼ぶようになっているか?
4. 記号の意味がわからないけどググりようがない
 → 「@」 エラー表示を抑制、「->」 オブジェクトのメンバにアクセス、「::」 静的なメソッド呼び出し、
  「==」は暗黙の型変換をしてゆるい比較、「===」は型情報も含めた厳密な比較
5. echo "$arr['hoge']['fuga']"; と書いたらエラーになった
 → {おっぱい括弧}でくくって"{$arr['hoge']['fuga']}"にする
6. 一定時間ごとに自動的に何かしたいんだけど
 → cronかタスクスケジューラを使え。
7.extractって危険なの?
 →変数上書き&初期化忘れなどで危険。楽だからという理由だけで安易に使わない。
8. include/requireに「〜.php?a=b&c=d」のようなパラメータをつけたい
 → URL呼び出しなら可能だけど、普通のファイル呼び出しではできません
9.include/requireでURLを指定しても何も起きない
 → .phpの拡張子のファイルをURLで呼び出すと、1度PHPプログラムとして実行された結果になる。
0007nobodyさん2006/10/05(木) 01:43:41ID:y1WWhz/p
10. そもそもインストールの時点でうまくいかない
 → 確認すべきはPHPのconfigureの引数、php.iniの内容と置き場所、
  Webサーバの設定(Apacheならhttpd.conf)、起動&再起動あたり
11. SQLの質問はどこで?
 → データベース板に誘導されるのが嫌ならPHPにうまく関連させて質問する
12. 文字列のなかに、英字のみとか数字のみとか記号が入っちゃいやんとかはどうしたらいいの?
 → ctype_〜()が手軽。複雑なパターンはpreg_〜()あたりで正規表現を使う。
13. $a1, $a2, $a3 ... のような変数名をうまく扱いたい
 → 可変変数で実現できるけど、むしろ配列を使って$a[1], $a[2], $a[3]等とするのがベター
14. echoとprintってどう違うの?
 → echoはコンマ区切りで書けるけど関数ではない。printは関数。パフォーマンスは気にするな
15. クッキーの情報をユーザから隠したい
 → セッション使え。ただしクッキーとセッションは仕組みが違うから同じように扱うな
16. strip_tags()で削除しないタグを複数指定したい
 → strip_tags($html, '<a><p><font>'); // htmlspecialchars()も検討すべし
17. CSVやTSVのファイルをスマートに扱いたい
 → まずはfgetcsv()。ただし日本語を含むと正常に動作しない場合があるので注意だ。
18. 値渡しと参照渡し(「&」を使う)のパフォーマンスの違い
 → C言語じゃないので、パフォーマンス目的で使いわけたらダメ。参照渡しにすると逆に遅くなったりする
  参照渡しは引数に戻り値を設定したり引数を関数内で変更するなど、正しい目的に使うこと
19. ファイル入出力関数(fopen等)でリモートファイル(http://〜とか)を扱う際の限界
 → fsockopen()でソケット通信 or PEARのHTTP系 or CURLで解決
  必要ならHTTPをはじめとする各種プロトコル(どんなデータを送受信するか)はRFCなどで調べる
20. PHPからPOSTリクエストしたい
 →19.を参照
21. 画像処理一般 or GDの限界
 → ImageMagick(PECLのやつ or シェルから実行)
22. 画像・音・動画はファイルで保存?DBに保存?
 → 好きにしてください
0008nobodyさん2006/10/05(木) 01:45:22ID:???
>>998
>>953で既出じゃん。
0009nobodyさん2006/10/05(木) 01:50:03ID:???
一応【簡易FAQ】を28から復活させといた。
(何かFAQに加えないか?と話が上がってた気はするが、時間なくて放置。)
0010nobodyさん2006/10/05(木) 01:51:19ID:???
>>8
もうお前いいよ 来んなよ

>>9
おつかれさま
0011nobodyさん2006/10/05(木) 01:59:30ID:???
>>10
既出なのに偉そうにしてんなよ
0012nobodyさん2006/10/05(木) 02:51:50ID:???
>>9
スレたて乙
久しぶりまともなスレ立てを見た気がする
0013nobodyさん2006/10/05(木) 04:25:49ID:???
                    _______
               , -‐' ´  __, -―‐ 、 r‐,―` ‐、
               /   , - '     ̄/!\ ̄  \_
            /   /、!∠ _, - ´ ̄ ̄ ̄ ̄`´ヽー、_フ
          _/   / /!`イ   /         ヽ \    くだらねぇ質問は
        / \! //  ,/     /            |   ヽ   ここに書き込ブッ
           ̄`<,ト/ _、i/      /       / ,./ / /l!   ト、    -‐''´'´
            / ,) /!!   , /    / / / / ,__-‐'''´-‐'''-‐''´     
            ! l!   |     | f --,ノ_-γ--''´ ̄   / /       
            li    l     | !(◎弋       / // /   ` 
             //li    !    |リ ゞノ"}        l l |  |  
          / //!   \,  ! //ノ"}|         l   | 丶  
          / / ! liヽ│/ lト、 \  '|         ,. -'´  \'  
          / / l li ‐┼‐ li \`ー`//)      /   :∠ミーニ丶、 |`! !' ,/
         !/   |イ!/│ヽ.l! | \  \丶、__ ../ ̄>-'⌒ー‐r;┬' ∠ミーニ
          !! / ∧!    liノ!   `  、__, イ_ /:| │ |
          i' /:| ! リ   / ` 、_,. -―'´ ̄V /ヽ/ ::| │ |
         //:::| j:/   リ三f::::f三ヽ   / ,,/ヽr、!  |  |
        //rーfく   /!/イ!!l::\ \ヽ!  / r ' / フ |
0014nobodyさん2006/10/05(木) 05:19:13ID:6/NUu1Qf
正規表現のマッチングがうまくいきません。。。
半角英数字のみをマッチさせたいのですが、以下のコードでuserid、password共に全角やらタグを入れても
マッチしてしまいます。。。><
どこがいけないのでしょうか?宜しくお願いします。環境(Apache HTTP Server 2.0.59、php-5.1.6、widows)

<?php
session_start();
$regex = "[a-zA-Z0-9]+";
$str = $_POST['userid'];

if(ereg($regex,$str)) {
$userid = $_POST['userid'];
} else {
print("IDまたはパスワードが不正です");
exit;
}

$str = $_POST['password'];
if(ereg($regex,$str)) {
$password = $_POST['password'];
} else {
print("IDまたはパスワードが不正です");
exit;
}

$_SESSION['userid'] = $userid;
$_SESSION['password'] = $password;
print("ID:$userid<br />");
print("パス:$password<br />");
?>
0015nobodyさん2006/10/05(木) 05:49:57ID:???
$regex = "^[a-zA-Z0-9]+$";
0016nobodyさん2006/10/05(木) 06:38:42ID:???
この間違いも多いよねー。
0017nobodyさん2006/10/05(木) 06:53:43ID:???
>>14
っていうかわざわざ正規表現使わないで、ctype関数とか使えよ。
0018nobodyさん2006/10/05(木) 10:39:26ID:???
お力添えお願いします。
設定ファイルをrequireしたいのですが、どうもrequireされてないようです。
文法など間違ってないか確認しましたが正しいようです。

こういうトラブルってどうすればよいでしょうか?
0019nobodyさん2006/10/05(木) 10:47:17ID:???
まずはソースを出せ
0020nobodyさん2006/10/05(木) 11:00:06ID:???
 ̄ ̄| ̄ ̄| ̄|
 ̄| ̄ ̄| ̄ ̄|─‐‐-、
 ̄| ̄ ̄| ̄ ̄|    |
 ̄ ̄| ̄ ̄| ̄|----‐
 ̄| ̄ ̄| ̄ ̄|  ̄ヽi
 ̄ ̄| ̄ ̄| ̄|д゚) ||  ジー
 ̄| ̄ ̄| ̄ ̄|中濃 ||)
 ̄ ̄| ̄ ̄| ̄| ー ス/||
 ̄| ̄ ̄| ̄ ̄|----'/
 ̄ ̄| ̄ ̄| ̄|"U ̄
^^^^^^^^^^^^^^^^^^^
0021nobodyさん2006/10/05(木) 11:01:51ID:EznVcv3u
前スレ>>967
そこはちゃんと書き換えましたorz
…つまり、アクセス権とかの問題なのか…!?
0022nobodyさん2006/10/05(木) 11:15:24ID:???
Thu, 05 Oct 2006 11:13:43 +0900

こんな感じでデータ関数で出力された文字列があります。
これをThuだとかOctだとかを、数字に戻す関数はありますか?

出来ればdateやtime関連の関数であればよいのですが・・・
0023nobodyさん2006/10/05(木) 11:16:32ID:???
>>18
設定ファイルってどんなのさ。
0024nobodyさん2006/10/05(木) 11:29:24ID:vfIfxPaM
ソケット通信の際のタイムアウトについて質問です。
FTPクライアントを作っているのですが、fsockopenでソケットを開いて
stream_set_timeout($socket, $ftp_timeout);
でタイムアウトするまでの時間を設定し、FTPサーバーへコマンドや
ファイルを送信したり、FTPサーバーの応答を受け取ったりします。そのあと、
$a = stream_get_meta_data($socket);
で$a['timed_out']を見てタイムアウトしたかどうか調べてるんですが
fgetsでサーバーの応答を受け取るときは、ちゃんとタイムアウトしたか
調べられるようなんですが、fwriteでサーバーへファイルを送信する際は
どんなにタイムアウトまでの時間を短くしてタイムアウトするように
テストしても$a['timed_out']に何も入ってないようで
タイムアウトを判別できないようです。
この関数はサーバーへ送信する際はタイムアウト処理を行えないのでしょうか?
どなたかご教授願います。よろしくお願いします。
環境は以下の通りです。

使用しているOS: Fedora Core release 3 Linux 2.6.9-1.667
PHPのバージョン: 4.3.9
0025nobodyさん2006/10/05(木) 11:41:16ID:EznVcv3u
Sendmailと格闘中の者ですが、
しっかりこんなコード吐いてましたorz
sendmail returned error code 127
ぐぐっても見つかりませんorz
ご存知の方、どうかお助けを…
0026252006/10/05(木) 12:12:05ID:EznVcv3u
自己解決しますた。
XREA、モジュールなPHPは使えないみたいですorz
バイナリアクセスに制限があるぽ…

スレ汚しスマソ
0027nobodyさん2006/10/05(木) 12:27:49ID:6/NUu1Qf
14で質問させて頂いた者です。
無事解決いたしました〜〜〜〜〜〜><
答えて頂きありがとうございました
ctypeも勉強しますっっ#^^#
0028nobodyさん2006/10/05(木) 12:49:53ID:???
関数の調べ方がわかりません。
目的別に探せるとことかありますでしょうか?
PHPマニュアルなんかは、関数名を知っていないと、
調べることができないので、
どうしてもこういうとこで聞いたりして他力本願になってしまいます。
すんなり答えられる人もいるので、経験だとは思いますが、
経験が浅いうちはどうして調べればいいのでしょうか?
コツもあったらぜひ教えてください。
0029nobodyさん2006/10/05(木) 13:18:36ID:???
>>28
やりたいことから探せる、逆引きの本も出てるよ。
0030nobodyさん2006/10/05(木) 14:01:51ID:6/NUu1Qf
>>28
このあたりが参考になるかも〜私も勉強中です^^
http://www.7key.jp/program/php/php_use.html
http://www.7key.jp/program/php/php_abc.html
http://www.shigeweb.jp/php/
http://www.m-takagi.org/docs/php/zend/
0031nobodyさん2006/10/05(木) 14:17:10ID:???
クラスの中のメソッドをすべて出力するみたいな
関数はありませんか?
0032nobodyさん2006/10/05(木) 14:24:05ID:???
>>31
マニュアルの「クラス/オブジェクト関数」を嫁
0033282006/10/05(木) 14:34:59ID:???
>>29
そんな本もあるんですね。早速アマゾンで探してみます。

>>30
参考サイトありがとうございます。
早速拝見しましたが逆引きもあって便利そうですね。
紹介してもらったサイトを参考に勉強したいと思います。
お互い経験積んで頑張りましょう!
0034nobodyさん2006/10/05(木) 16:29:07ID:???
KDDIとVodafoneの絵文字を10進法表記にしたいんですがどこか良い解説サイトありませんか??
0035nobodyさん2006/10/05(木) 16:43:54ID:???
auは公式デベロッパーサイトに
softbankは無理
0036nobodyさん2006/10/05(木) 16:45:40ID:???
softbankはしね
0037nobodyさん2006/10/05(木) 17:46:18ID:???
>>35
公式デベロッパーサイトってなんですか??
公式デベロッパーサイト KDDIとかで検索してみましたが良く分かりませんでした。
SoftBank無理ですか(=д=#)...
0038nobodyさん2006/10/05(木) 17:55:52ID:FhS4/x3O
すいません。
手持ちの本を読んでもWebでも見つけられなかったので、質問させて頂きます。

$i=~$i;

ってどういう意味なんでしょうか?
あと、

$i=$i&0xFFFF;

の「&」の意味も教えて頂ければと思います。

よろしくお願い致します。
0039nobodyさん2006/10/05(木) 18:01:59ID:???
>>37
EZ factory
0040nobodyさん2006/10/05(木) 18:05:58ID:???
痴展的典
0041nobodyさん2006/10/05(木) 20:19:53ID:???
>>38
ビット演算子

・「~」はビット反転。
 (例えば1をビット反転すると-2になるのは、2の補数で調べるとイイ)
・「&」は論理積。

詳細はビット演算で検索すると大量に見付かるからそっちに任せた。
0042nobodyさん2006/10/05(木) 21:23:40ID:Mc2eGKeJ
皆様のお知恵を拝借したく存じます。test.txtがフォルダ上にない場合に、

$f = fopen("test.txt", "w+");

で新規作成しようとしてもうまくいきません。

ローカルテスト(Ver4.4.4)ではうまくいくのですが、サーバ(ver4.3.1)に
アップすると必ずfopenの行で、

Warning: fopen(): Unable to access test.txt
Warning: fopen(test.txt): failed to open stream: No such file or directory

というエラーが返ってきます。事前に対象のファイルを用意してやれば読み書き共に
オープンできるようです。ちなみに試してみたところ、copy()も通りませんでした。

サーバ上の権限がないからでしょうか?
0043nobodyさん2006/10/05(木) 21:35:58ID:???
うん、たぶん、そう。
あとセーフモードになってるとか、open_basedirで制限されてるとかも
ないわけではない。
0044nobodyさん2006/10/05(木) 22:16:40ID:???
>>42
たいていレンタルサーバ(特にフリー)はセーフモードになってるから、
細かい部分で制限あるよ。
0045nobodyさん2006/10/05(木) 22:17:20ID:BOdiPOMC
Vine3.2でPHP5を利用してます。
php.iniでSMTPサーバを指定したいんですけど、[For Win32 only.]の文字を見つけちゃいました。
SMTPの設定値って、WindowsOSしか対象とならないのでしょうか?
ちなみに、SMTP = <メールサーバのIP>を指定したんですけど、
mail()で指定したメールサーバを経由してメール送信を実施する事が出来ませんでした。

[mail function]
; For Win32 only.
SMTP = localhost
smtp_port = 25
0046nobodyさん2006/10/05(木) 23:00:05ID:q9Uny2VW
インスタンスを明示的に破棄するにはどうしたらいいでしょうか?
0047nobodyさん2006/10/05(木) 23:37:09ID:???
>>45
マニュアルにあるとおり。
>SMTP string
> Windows 環境のみで使用されます: mail() 関数でメールを送信する際に使用する SMTP サーバのホスト名または IP アドレス。

SMTPで送信したいのであれば、phpmailerとかPEARのMailつかうとか。
0048nobodyさん2006/10/05(木) 23:46:35ID:BOdiPOMC
>>47

ありがとうございます。
自分もそのマニュアルを見てました。
便利なのにWinだけなんて残念ですね。
仕様について考え直してみます。
0049nobodyさん2006/10/06(金) 00:11:09ID:???
>>46
たぶん、インスタンスを参照してる変数すべてについて、別のものを指すようにする
またはunsetするとかの方法しかない。
0050nobodyさん2006/10/06(金) 01:14:09ID:en5ikSuV
PHPでAPIを使うってどういう意味ですか?
0051nobodyさん2006/10/06(金) 01:25:55ID:???
何のAPIかによるよ。
よっとしてAPIって言葉の意味自体分からないとか?
0052nobodyさん2006/10/06(金) 01:33:36ID:???
APIってすごい曖昧な言葉だよね。
アプリケーション開発における内部プログラムと外部プログラマをつなぐもの(つまり「ム」と「マ」をつなぐものw)ってくらいの意味をみんな好き勝手に使いすぎなんだよな。
ライブラリのことをAPIって言ってみたり、開発者向けドキュメントのことをAPIって言ってみたり、もう何が何だかわかりません><
0053nobodyさん2006/10/06(金) 01:45:11ID:en5ikSuV
ライブラリそうライブラリだよ
ffmpegをダウソしてサーバーに上げてみたんだがそんなライブラリはないみたいなエラーが出やがるorz
0054nobodyさん2006/10/06(金) 01:49:15ID:???
>>53
サーバーに上げた後、指定されたソースディレクトリにffmpegを置いて、phpのconfigureオプションにffmpegを追加してコンパイルしなおし、php.iniのextensionを追加しないと動かないよ。
0055nobodyさん2006/10/06(金) 01:55:26ID:en5ikSuV
↑まさにそのとおりです。色々調べるとそのように書いてありました。
が頭の悪いオレにはわかんねー。 orz
ちなみにサーバーはSAKURA使ってます。
0056nobodyさん2006/10/06(金) 02:01:22ID:???
レンサバじゃおそらく無理。
サーバー管理者に直接問い合わせてインストールしてくれ、と交渉してください。
0057nobodyさん2006/10/06(金) 02:03:31ID:en5ikSuV
ぬおー堂々めぐりじゃー
どうにかして動画からサムネイルを作らせてくれ orz
0058nobodyさん2006/10/06(金) 02:11:46ID:???
自宅サーバでもたてて、そいつでサムネイル生成部分だけやりや。
0059nobodyさん2006/10/06(金) 02:43:17ID:en5ikSuV
その生成したサムネイルに直リンするわけか…
でもSAKURAのサーバーに投稿されたときに自宅サーバーが
PHPを使ってサムネイルを生成するように操作することってできるの?
素人ですまん。
0060nobodyさん2006/10/06(金) 02:45:50ID:???
さくらでは「無理」
0061nobodyさん2006/10/06(金) 02:48:36ID:en5ikSuV
どこのレンサバなら出来る?
0062nobodyさん2006/10/06(金) 02:50:47ID:???
たとえばXREA+は
>C、C++はあらかじめコンパイルしてアップロードしてください。
だそうだ。
0063nobodyさん2006/10/06(金) 02:54:13ID:???
XREAはSSHからコンパイルできる
さくらもできる
ただ負荷が強烈にかかる
0064nobodyさん2006/10/06(金) 02:58:03ID:???
>>62-63
ffmpegってphpのconfigure、makeし直して、サーバー再起動しなきゃ無理なんじゃないの?
xreaってそこまでできるの?
0065nobodyさん2006/10/06(金) 03:05:52ID:en5ikSuV
どこのどなたか知らないがよく付き合って下さいました。
でも、私の技術では無理なようです。
PHP6くらいで動画関数ができることを祈って待ってます。
ちなみにこんな感じのYouTube動画からサムネイルを作るAPIなるものが
あるらしいのですがそれは簡単ですか?
http://023.gamushara.net/bbs/ytsports/
0066nobodyさん2006/10/06(金) 03:33:33ID:???
>>65
検索するって事を学んだ方がいいと思うが?

とりあえず、安心確実な公式ドキュメント
Developer APIs
http://www.youtube.com/dev
0067nobodyさん2006/10/06(金) 03:37:50ID:???
>>64
ffmpegのバイナリを実行できればいいんじゃないかな、と。
0068nobodyさん2006/10/06(金) 03:40:50ID:???
>>67
あーなるほど、そういう意味か。
0069nobodyさん2006/10/06(金) 04:33:53ID:???
>>50-68
なにこれ
きもすぎ
0070422006/10/06(金) 04:48:10ID:???
>>43 >>44

ありがとうございます。調べてみたら思いっきりセーフモードで動いてました。
perlだったら何とか通ったっぽいので、ファイル作成だけはperlで組むことにします。
0071nobodyさん2006/10/06(金) 08:02:44ID:???
WindowsServerでApache & PHP & SQL Serverをうごかしています。
PHPからデータソース名を指定してSQL Serverに接続したいのですが、
データソースの定義ってどこで行うんでしょう。
Java + Tomcatだと、Tomcatの設定に書いておきますが・・・
0072nobodyさん2006/10/06(金) 08:14:15ID:???
管理ツールにあった。。。すんません。
0073nobodyさん2006/10/06(金) 08:15:14ID:???
>>71
JavaでいうデータソースはPHPではコネクションを取得するスクリプト中に直接記述する。
コネクションの取得方法はDBMSごとに違うけど、ある程度統一的な方法を使うにはpearかpdoを使う。
後はマニュアル読めば全部載ってる。
0074nobodyさん2006/10/06(金) 08:22:01ID:???
>>71
odbc.ini
0075nobodyさん2006/10/06(金) 08:47:28ID:???
クラスとかメソッドっていろいろ機能があるけど、
実際どう使えばいいのかわからん。

実例みたいな紹介しているサイトありませんか?
0076nobodyさん2006/10/06(金) 08:49:39ID:???
オブジェクト指向とかoopとかで検索すれば色々あるんじゃない?
でも独学ならそんなに無理して使う必要ないけどね。
最初からオブジェクト指向でやってる人なら無いとやってらんないだろうけど。
0077462006/10/06(金) 09:24:14ID:???
>>49
ありがとうございます。unset()を使うことにしました。
0078nobodyさん2006/10/06(金) 10:23:12ID:???
>>75
フレームワークを使ってみるとか。
今はsymfony、cakephp、zend frameworkが有力らしいです。某スレによると。
0079nobodyさん2006/10/06(金) 10:43:47ID:???
お前の次のセリフは『フレームワークってどう使えばいいのかわからん!』という!
0080nobodyさん2006/10/06(金) 11:00:41ID:???
mb_send_mailを使って、メールを受け取る(hotmailで)と迷惑メールとして
受け取ります。迷惑メールにならない方法ってありますか?
0081nobodyさん2006/10/06(金) 11:10:38ID:???
>>80
題名や本文をちゃんと書けばいいのでは。
0082nobodyさん2006/10/06(金) 11:32:31ID:???
>>70
PHPをCGIとして動作させれば通るかも。
0083nobodyさん2006/10/06(金) 12:14:24ID:???
共用レンタルサーバーで
PHPのsession使うのはセキュリティの関係上DBにしてたのですが、
PHPをCGIとして動作させる場合、同様に共用レンタルサーバーでの
sessionの管理方法として、
DB、ファイル、どちらか優劣を決めることはできるでしょうか?
0084nobodyさん2006/10/06(金) 12:41:46ID:???
>>76
ありがとうございます
0085nobodyさん2006/10/06(金) 14:09:59ID:???
下のように、値が頻繁に変わって、5文字程度を取得したいのですが、
下のだと、たまに4文字しか抜き出せなかったりします。
何かお薦めの方法を教えてください。

$mictime = microtime();
$registdate = substr($mictime,2,5);
0086nobodyさん2006/10/06(金) 14:15:50ID:???
>>85
var_dump(microtime());
とかやって、どんな出力するのか確認してごらん。
で、マニュアルを読む。
http://www.php.net/manual/ja/function.microtime.php
0087nobodyさん2006/10/06(金) 14:43:00ID:???
>>85
5文字ってことは英数字でもいいの?
だったら

$microtime = md5($microtime());
$registdate = substr($mictime,0,5);

とかが簡単
0088872006/10/06(金) 14:44:24ID:???
ごめん。なんか間違えた。

$microtime = md5($microtime());
じゃなくて
$mictime = md5(microtime());
0089nobodyさん2006/10/06(金) 14:45:12ID:???
PHP専門誌『PHPプロ!マガジン』が創刊
http://www.thinkit.co.jp/free/news/0610/6/
0090nobodyさん2006/10/06(金) 14:59:52ID:???
>>86,87
ありがとうございます!
数字で取得したかったので、87さん、すいません。
substr($mictime,2,5)で取り出しても、最初の数が0だと抜き出す数字は
4桁になるのを、前に数字をつけて解決することにしました。下の
ような感じで取得することにしました。
$registdate="5".substr($mictime,2,5)
0091nobodyさん2006/10/06(金) 15:02:26ID:???
submitのフォームがあるページでエンターを押すと、
押したことになってしまいますが、これを無効にする方法ってありますか?
0092nobodyさん2006/10/06(金) 15:11:36ID:???
>>90
文字列から数字だけ取り出せばいいんじゃないの?
0093nobodyさん2006/10/06(金) 17:19:11ID:???
SESSIONでデータを持ちまわす場合、
データ量が多くなるとパフォーマンスは落ちますでしょうか?
0094nobodyさん2006/10/06(金) 18:22:26ID:???
セッション変数はsession_start()を呼んだ時ファイルから読み込まれる。
0095nobodyさん2006/10/06(金) 18:46:31ID:???
>>94
そうなの?
$_SESSION['hoge']とかで呼び出したときに、
その部分だけファイルからメモリに読み込まれるんだと思ったが・・・
0096nobodyさん2006/10/06(金) 18:47:17ID:???
>>95
効率悪いだろそれじゃ。
0097nobodyさん2006/10/06(金) 23:15:41ID:???
Perlのdbmマッピングみたいな仕組みなら変数単位に逐次ロードの方が
効率も良かったりするけどな。(その代わりディスク容量食うけど)
残念ながらPHPのはファイルに$_SESSION配列を丸ごとシリアライズで格納、
って方式だから$_SESSIONの中身が太るとパフォーマンス落ちるよ。
0098nobodyさん2006/10/06(金) 23:32:12ID:???
>>97
ん〜〜惜しいっ! 87点
0099nobodyさん2006/10/07(土) 00:19:55ID:prmnYVal
mb_eregを使用して文字列検索を行っているのですが
検索結果が配列の先頭にしか格納されません。

全ての検索結果を格納するにはどうすれば良いでしょうか?
お力添え、宜しくお願い致します。

環境 Win XP, PHP 5.1.4, Apache 2.0

$str ="2004 2005 2006";
$ary = array();

if (mb_ereg("[0-9]{4}", $str, $ary)) {
echo "[0]".$ary[0]."<br />";
echo "[1]".$ary[1]."<br />";
echo "[2]".$ary[2];
}

実行結果

[0]2004
[1]
[2]
0100nobodyさん2006/10/07(土) 00:27:33ID:???
>>99
[0]以外の部分は正規表現で (〜) で括った部分が格納される。
0101nobodyさん2006/10/07(土) 00:58:51ID:???
>>99

$str ="2004 2005 2006";
$ary = array();

if (mb_ereg("[0-9]{4}", $str, $ary)) {
print_r($ary);
}

// ereg()は1回マッチしたら検索を止める。
// だから$aryに"2004"だけ入れてTRUE返して終わり。
// >>99の方法では$ary[1]や$ary[2]は存在しないので未定義としてエラーが出ているはず。

// 結果:
// Array ( [0] => 2004 )

echo "<br />\n";

// マッチするものを全部出す場合はpreg_match_all()とかを使う。

preg_match_all("/[0-9]{4}/", $str, $ary);
print_r($ary[0]); // $ary[0]は正規表現全体(この場合は4桁の数字)にマッチした部分でできた配列である。

// 結果:
// Array ( [0] => 2004 [1] => 2005 [2] => 2006 )
0102nobodyさん2006/10/07(土) 01:11:32ID:???
>>100-101
ありがとうございます、お陰さまで期待通りに動きました。

eregは1回しか検索してくれないのですね./ ,' 3  `ヽーっ
0103nobodyさん2006/10/07(土) 01:23:39ID:???
>>98
なにこいつ
しねばいいのに
0104nobodyさん2006/10/07(土) 01:26:37ID:???
おちつけw
0105nobodyさん2006/10/07(土) 02:05:48ID:JIECxGar
すいません、特定のCSSファイルから検索をしたいのですが、いいソース、または
解説サイトはありますか?
0106nobodyさん2006/10/07(土) 02:23:27ID:???
CSSファイルから検索って意味が分からんです。何だソレ。
0107nobodyさん2006/10/07(土) 02:27:00ID:JIECxGar
>>106
ごめんなさい、CSVファイルからでした ^^;
0108nobodyさん2006/10/07(土) 03:03:47ID:???
そのCSVファイルは日本語を含むのか?その場合の文字コードは?
0109nobodyさん2006/10/07(土) 03:13:54ID:???
探せばライブラリが沢山ありそーだが
0110nobodyさん2006/10/07(土) 03:15:01ID:JIECxGar
>>108
日本語含みます。EUC-JPです。
0111nobodyさん2006/10/07(土) 03:26:17ID:???
だったらfgetcsv()で1行ずつ読み込みながら対象カラムと比較していくだけでいけると思う。
0112nobodyさん2006/10/07(土) 12:35:56ID:2Dg2VxQN
会員制のページを作りたいと考えています。
そこでsessionについて質問があります。
例えば、idとパスワードで認証が行われるとします。
それが、DBに存在するものと一致すればログイン成功
その時にsession_idがクライアント側に渡される

次にsession_idがなければアクセスできないページがあると
isset()で確かめて認証するとします。

この場合だとsession_idを持っている=会員というところまではわかるのだと思いますが
どの会員かは、わからりませんよね?

ひとりひとり個人として認証する場合にはsession_idを渡すときに同時に
DBにもsession_idを登録しておきそれと一致するものを探すと言う作業をしなければ
ならないのでしょうか?
よくわからない日本語となっていますがよろしくお願いします。
0113nobodyさん2006/10/07(土) 12:56:43ID:???
user_idをセッションに入れればいいんじゃ?
0114nobodyさん2006/10/07(土) 14:11:31ID:???
$hoge配列の要素分繰り返しをするとき
いつも
$i =0;
while($i < count($hoge)){
}
としているのですが、
もっと簡単な記述方法ないでしょうか?

whileのなかで、さらに繰り返すとき
$i2 = 0;
とかしなければならなくていつもゲッソリするです
0115(^ω^)2006/10/07(土) 14:21:43ID:???
foreach ($hoge as $key) {}
0116nobodyさん2006/10/07(土) 16:31:02ID:???
どうでもいいことだが、
$i
ときたら次は
$j
だろう。
0117nobodyさん2006/10/07(土) 17:05:05ID:???
プリントスクリーンでコピッた画像をWEBに貼り付けられるようなシステムって
できないんでしょうかね?
エクセルに貼り付けるような感覚で。

できたらすごい便利だと思いませんか?
0118nobodyさん2006/10/07(土) 17:26:46ID:???
>>117
それが便利かどうかはともかく、可能か不可能かと言われれば余裕で可能です。

そしてそれを自動化したものの一種がいわゆる『きんたま』と呼ばれるものです。
0119nobodyさん2006/10/07(土) 17:27:52ID:???
あ、ここPHPスレか。

PHPだけで実現するとなるとちょっと難しいかも知れんね。
0120nobodyさん2006/10/07(土) 17:35:03ID:???
検索のときに、ページングなどで、その検索語を渡すと、
URLに日本語がそのまま表示されたり、その語が削除されたりします。
日本語で検索をするときは、urlencodeを使うべきなのでしょうか?
解決策を教えてください。
0121nobodyさん2006/10/07(土) 17:52:29ID:???
つ【RFC】
0122nobodyさん2006/10/07(土) 18:03:58ID:???
すいません><
RFCで調べても、わからないです。もう少しヒントを下さい
0123nobodyさん2006/10/07(土) 18:36:40ID:???
RFCを検索語にして調べるんじゃなくて、RFCの中でurlについて記述されているものを読め、ってことだ。
0124nobodyさん2006/10/07(土) 19:22:02ID:???
検索するときに、下のようなやり方で、DBに入れてもいいものなんでしょうか?
受け取った値をmysql_real_escape_stringをしないとセキュリティは危険なのでしょうか?

$keyword = $_GET[keyword];
if (get_magic_quotes_gpc()) {
$keyword = stripslashes($keyword);
}
$keyword = mysql_real_escape_string($keyword);
0125nobodyさん2006/10/07(土) 19:40:28ID:???
その後の使い方による
それで十分な場合もあるし、不十分な場合もあるし、十分すぎる場合もある
0126nobodyさん2006/10/07(土) 19:44:56ID:???
外部のxmlファイルの更新日を取得する関数はありますか?
01271172006/10/07(土) 20:15:12ID:+DkGqdIm
>>118

それってウィルスのことですか?
詳しく教えてくださいな。
0128nobodyさん2006/10/07(土) 20:56:36ID:???
>>125
ありがとうございます。その後の使い方は、WHERE comment = $keywordみたいに
使って、当てはまるものを抽出して、HTML上に表示させています。
この場合は平気でしょうか?
0129nobodyさん2006/10/07(土) 22:03:57ID:???
>>126
filemtime とか stat
0130nobodyさん2006/10/08(日) 00:30:12ID:???
>>124
プリペア独自の関数通さないなら
$keywordを''とかで囲った方が良い
0131nobodyさん2006/10/08(日) 00:31:23ID:???
あ、プリペアとか独自の関数ね・・・
0132nobodyさん2006/10/08(日) 00:44:39ID:???
>>130
ありがとうございます。じゃあ、WHERE comment = '$keyword' こんな感じで
平気ですよね!?ありがとうございます。
あと、ついでみたいで悪いのですが、
$con = mysql_connect($DBSERVER〜);
$selectdb = mysql_select_db($DBNAME〜);
$sql=SELECT〜
みたいな感じで、毎回DBを使うときは、$conと$selectdbを書いているのですが、
これは、一つのファイルにまとめて、インクルードして
$sqlだけ、個々のページに記述するのが普通なのでしょうか?
0133nobodyさん2006/10/08(日) 00:50:47ID:???
>>132
DBクラスや関数等を作るか
PEARのDBとかを使ったりするのが殆どだと思うけど
そのやり方で問題無いなら別にそれでも良いんじゃない?
0134nobodyさん2006/10/08(日) 02:28:15ID:???
標準のmail関数を使うためphp.iniでSMTPを設定してますが
これ認証が必要なSMTPは無理ですか?
0135nobodyさん2006/10/08(日) 07:05:44ID:???
注意: HTML などの複雑なメールを送信する場合は、PEAR パッケージの PEAR::Mail を 利用することを推奨します。注意: HTML などの複雑なメールを送信する場合は、PEAR パッケージの PEAR::Mail を 利用することを推奨します。
0136712006/10/08(日) 07:56:30ID:???
PearDBを使ってSQL Serverにアクセスできるようにはなりましたが、
今度は文字コードの件ではまってます。
SQL Serverでは、nvarcharのカラムのデータを、
PHPで取ってくるとShift-JISになります。
PHPではUTF-8で処理したいのですが、どうするのが一番良いでしょう?
DBから取得するごとにmb_convert_encodingでShift-JIS -> UTF-8
するのでしょうか?
0137nobodyさん2006/10/08(日) 09:05:00ID:oH20wXBj
なぜスクリプトを書くときはEUC-JPのコードで書くのか教えてください。
シフト-JISではいけないのですか?
0138nobodyさん2006/10/08(日) 09:13:47ID:???
>>137

文字コードの問題で、漢字を表示するときに\をつけないと文字化けするときがあるから
01391372006/10/08(日) 09:21:53ID:oH20wXBj
>>138
なるほど、文字化けという重要な問題が原因だったのですね。
ありがとうございました。
0140nobodyさん2006/10/08(日) 10:49:17ID:???
>>139
現象としては文字化けで済む場合もあるが、
本質はPHP(ZendEngine)がSJISのソースを実行できるようになっていない、
またSJISはEUC-JPなどと違ってきちんとSJISを考慮していない
(ASCII前提のものとか)と、適正な処理ができないコードが混じっているため。

必要なら別にSJISで書いたって構わないよ。
・PHPの設定で、ZendEngineに渡す前にSJISを解釈できる文字コードに変換するようにしておく
(ZendEngineから渡された文字コードをSJISに変換する逆方向も)
・その変換処理によるパフォーマンスやコストに目をつぶれる
ならば。
0141nobodyさん2006/10/08(日) 11:47:41ID:???
>>139

ていうかEUC-JPよりUTF-8の方がいいよ
0142nobodyさん2006/10/08(日) 11:54:22ID:???
UTF-8よりEUC-JPの方がいいよ
0143nobodyさん2006/10/08(日) 12:04:16ID:???
PHPはEUC-JPの方がいいな。
0144nobodyさん2006/10/08(日) 13:32:33ID:???
いやいやBig5が一番でしょう
0145nobodyさん2006/10/08(日) 14:45:45ID:???
ここは漢らしく全部画像で。
0146nobodyさん2006/10/08(日) 15:05:32ID:???
どうぞどうぞ
0147nobodyさん2006/10/08(日) 17:49:43ID:???
お主らこそ、まっこと漢の中の漢よのう。
0148nobodyさん2006/10/08(日) 19:19:40ID:???
おれが作るサイトは全部SJISですけど何か?
結局何にしようが文字化け怒る時は怒るよ
0149nobodyさん2006/10/08(日) 19:31:53ID:???
文字化けだとんだごるるるるらうらあああああああああああああああ!!!!!!!!!!!!!!!
なめてんのかこるるるるるるあああああああああああああ!!!!!!!!!!!!!!!!!!!
0150nobodyさん2006/10/08(日) 19:43:02ID:???
すいません、質問です。
下のようにindex.phpのあとに、/〜って書き込むと、index.phpがバグって
表示されます。これはどうすれば良いのでしょうか?セキュリティが
かなり危険だと思われるのですが、アドバイス下さい。お願いします。

http://localhost/php/index.php/aaa
0151nobodyさん2006/10/08(日) 19:50:11ID:???
いや、バグらないから。
0152nobodyさん2006/10/08(日) 19:58:07ID:???
そのindex.phpがバグってるんじゃないの。さらさないとだれーもわからない
0153nobodyさん2006/10/08(日) 20:10:09ID:???
すいません、バグるというか、CSSとかincludeするファイルが反映されなくなったりします。
これは相対パスで指定してるからでしょうか?
というか、これは危険なのでしょうか?
普通は、そのファイルは存在しません、みたいな表示をさせるのでしょうか?
0154nobodyさん2006/10/08(日) 20:23:59ID:???
さあ皆で円陣を組むぞ。エスパーを呼び出すんだ!
0155nobodyさん2006/10/08(日) 20:27:46ID:???
エスパー伊東だけど、呼んだ?
0156nobodyさん2006/10/08(日) 21:07:06ID:???
さぁ、エスパー召還の儀式を!
0157nobodyさん2006/10/08(日) 21:25:10ID:???
>>153
絶対path使え

これ /index.php/hoge だと
ブラウザにはディレクトリが違うという判断になるはず
0158nobodyさん2006/10/08(日) 21:56:06ID:???
とういうか、<base>?
0159nobodyさん2006/10/08(日) 22:25:44ID:???
掲示板であるような、httpが書かれたら自動的にリンクされるようにしたい
のですが、いまいちわかりません。
今は下のようにしているのですが、これだとできません。
どうか教えてください。
ereg_replace('http://+[a-zA-Z0-9\.\-\=\/\%\$\?\&\_]*', "<a href ='\\0'>
<font color=ff0000>"."\\0"."</font></a>", $string)
0160nobodyさん2006/10/08(日) 22:36:30ID:???
\\0と変数使ってるが、元側でどこが変数か指定してやれよ。
0161nobodyさん2006/10/08(日) 22:48:19ID:???
>>160
すいません、元側でどこが変数か指定してとはそうゆうことでしょうか??
0162nobodyさん2006/10/08(日) 23:54:56ID:???
「http・・・って書いてあるところを自動リンクにしたい」

ていうときには、全部一度にやらずに、分割してテストしながらやるといいと思うよ。

まず、http・・・にマッチする正規表現を調べる、これが第一段階。(replaceじゃなくてmatchするしないだけをしらべる)

第二段階は、リンクを張るやり方のテスト。簡単な文字、例えば、aaaを<a href="aaa">にreplaceするやりかたを調べる

第三段階で、その両者を合体させる。
0163nobodyさん2006/10/08(日) 23:57:11ID:???
あ、「aaa」ってのは例えば a+ とかの簡単な正規表現で、っていう意味ね。
0164nobodyさん2006/10/09(月) 00:56:36ID:???
>>162
http://www.amazon.co.jp/gp/product/4774126713/

↑この本とか読めば、全て解決する。
0165nobodyさん2006/10/09(月) 01:02:06ID:???
OS:CentOS4
Apache:2.0.55
PHP:4.4.2

PHPファイル自身が、自分が表示されているURLを取得するにはどうすればよいでしょうか?
=HTTPとHTTPSで別々の処理をしたい時に、URLのスキーム(http://https://等の部分)を取得して判別しようと考えています。

例)
http://www.example.com/check.php
https://www.example.com/check.php
check.php自身が、上記のような自分がページとして表示されている場合のURLを取得するには?

PHPマニュアルで、
ストリーム関数
http://www.php.net/manual/ja/ref.stream.php
ソケット関数
http://www.php.net/manual/ja/ref.sockets.php
を見てみましたが、URLを取得する関数があるのかよく分かりませんでした。
0166nobodyさん2006/10/09(月) 01:11:28ID:???
それを考える前に、結果欲しいものから、
「$_SERVER SSL」とかでぐぐってみないかねー。
0167nobodyさん2006/10/09(月) 01:17:31ID:mIjkQc8G
簡単な掲示板スクリプトなんですけど、記事の削除処理で困ってます(TAT)

http://learning.no.land.to/php/s/ver0/s/check_ver002.phps

一応、入力したパス、記事番号が一致したら
「一致しました。」
と出力する処理が成功している辺り、
やはり問題なのは記事の削除に使っている
array_splice()関数なようなんです><;;


どこが悪いのか教えていただけたらうれしいです。

初心者丸出しの質問ですがお願いしますm(_ _)m
0168nobodyさん2006/10/09(月) 01:19:15ID:???
・・・?
結局、現状何がどうなって困ってるんだ?
0169nobodyさん2006/10/09(月) 01:30:54ID:???
>>167
おk、順を追って考えてみよう

1.ログファイルを配列に読み込む
 $lines = file(LOG_FILE);
2.行を削除
 array_splice($lines,$i,1);
3.ログファイルを更新
 ファイルへの書き出し処理はどこに書いてるんだ?
01701652006/10/09(月) 01:38:20ID:???
>>166
アドバイスどうもありがとうございます。
とても助かりました。m(__)m

$_SERVERの項目をhttpページとhttpsページで見比べて、違う箇所を発見しました。
$_SERVER[SERVER_PORT] => 80 という部分も違いましたが、
$_SERVER[HTTPS] => on というそのものスバリのパラメータがあったので、とりあえずこれをSSLページ判別に利用してみます。
0171nobodyさん2006/10/09(月) 01:58:44ID:???
一つのページにいくつものフォームを書いてそれぞれにsubmitボタンを
与えて、Aボタンが押されたら、名前変更、Bボタンが押されたら、メアド変更
みたいにしたいのですが、受けとるページで、if(isset($_POST[B])){}のように
書いてもAボタンのif文が実行されてしまいます。
どうすればいいでしょうか??教えてください。
0172nobodyさん2006/10/09(月) 02:17:29ID:???
>>171
受け取るページに、
print_r($_REQUEST);
と書いて、受け取っている値をチェックしてみよう。

ボタンがたくさんある方のページは、
(1)ボタン毎に<form>〜</form>で囲んで確実に違う動作にする
(2)JavaScriptでボタン毎に動作を違うものになるようにする
という方法があるんじゃないでしょうか?
0173nobodyさん2006/10/09(月) 02:19:33ID:???
>>171

if ( isset( $_POST[B] ) ) { }
の部分を
if ( !empty( $_POST[B] ) ) { }
に変えてみたら動作変わる?
0174nobodyさん2006/10/09(月) 02:24:32ID:???
>>171
ありがとうございます。
ボタン毎にformを設定しているのですが、何か変な挙動が。笑
print_r($_REQUEST);←を使って色々と頑張ってみます!

あと、もう一つだけお願いがあるのですが、enterキーを押しても
submitが押されたことになるのを止めたいのですが、どうすればいいのでしょか?
0175nobodyさん2006/10/09(月) 02:59:58ID:???
そりゃブラウザの仕様の問題なのでは?
0176nobodyさん2006/10/09(月) 03:16:27ID:???
>>174
JavaScriptを使え。
詳しいやり方は検索すれば大量に見付かるから自分で探すように
0177nobodyさん2006/10/09(月) 03:30:06ID:???
>>174
ボタンごとにフォームを分ければ確実に出来る。俺はそうしてる。
それから、if文での判別には、submitボタンに設定したnameおよびvalueは使わないように。
理由は省くが、とにかく使わないように。
その代わり、hiddenで、name=mode value=A などとして、それを使って判別すると良い。
0178nobodyさん2006/10/09(月) 08:57:28ID:mIjkQc8G
>>168
すいません。、、あんまり詳しく書けてなかったみたいです><;;

>>169
おぉ!ありがとうございます!早速直して行きたいと思います!!

アドバイスありがとうございました^^A
0179nobodyさん2006/10/09(月) 11:12:33ID:???
>>173
emptyはあんまオススメできん・・・
0180nobodyさん2006/10/09(月) 11:16:45ID:???
>>178
直させたい所が多数・・・
0181nobodyさん2006/10/09(月) 11:17:20ID:/lkovAUh
Windows server 2003
PHP 4.4.2
apache 1.3.35
(現行システムとの兼ね合いで変更ができません)

アップロードされたファイルの本当の
ファイル種別を判別する方法に苦慮しています。
word/excel/powerpoint/mpegのファイルのみを許可したいです。
方法を教えてください。
おねがいします。

検討した対策
・拡張子や$_FILES[〜]['type']による判別→
  偽装が簡単にできるため×
  http://jp.php.net/manual/ja/features.file-upload.php
  
・fileinfo関数の使用→
  php4で利用可能なphp_fileinfo.dllがなく×
  http://pecl4win.php.net/ext.php/php_fileinfo.dll
0182nobodyさん2006/10/09(月) 12:17:39ID:???
今ちょっと調べてみたら、

mime_content_type

ていう関数があるみたいだね。

http://jp.php.net/manual/ja/function.mime-content-type.php

例によってコメント欄に重要な情報が書いてあって、

Windowsの場合はphp.iniで、

extension=php_mime_magic.dll

とする。それと、magicファイルがいるので

mime_magic.magicfile = "C:\path\to\php\install\magic.mime"

としなきゃいけないと。(それようにビルドしてあるPHPじゃナイト使えないみたいだけど)

あと、gnuwin32のfileがWindows用のfileコマンドとして使える、
ていう話も書いてあるね。Officeのドキュメント識別できるかどうかしらんけど……
外部コマンドのfileが使えるんなら、system関数かなんかで呼び出せばいいと。
0183nobodyさん2006/10/09(月) 13:15:03ID:???
ID/PASSを変数に入れておいて
リンクをクリックすれば、
認証CGIにヘッダーでID/PASSを投げてログイン、
という方法を取りたいと考えています。
(例えばYahooのウェブメールにログイン)

> ID/PASSを変数に入れておいて
> 認証CGIにヘッダーを投げて

これはできたのですが、
最後のログインがどのようにすればよいか分かりません。
ID/PASSを投げただけで終わる感じです。

具体的には pfsockopenして、
対象CGIにID/PASSをfputsで送る感じです。
これ以降がよくわかりません。

javascript とかで自動的にフォーム移動させたり、
hiddenでID/PASSを入れておいて・・・
という方法もあると思いますが、
これだと第三者にログインしてもらいたいときに
パスワードが知られてしまいますので
上のような手順をとっています。

どなたかご助言をお願いします。
0184nobodyさん2006/10/09(月) 15:09:32ID:???
>>183
超・極めるPHPにcURL関数の使い方が説明してあったよ。
http://www.amazon.co.jp/exec/obidos/ASIN/4798111058
http://www.kiwameru-php.net/contents/toc.php

「cURLで外部サーバーにアクセス」
http://www.kiwameru-php.net/support/codes.php
「cURLで外部サーバーにアクセス」のサンプルスクリプト
http://www.kiwameru-php.net/support/download.logic.php?list=k2_5

使用例では、mixiにログインする説明だった。
01851832006/10/09(月) 15:17:21ID:???
>>184
レスありがとうございます。
びっくりしたことに、ちょうどその書籍目の前にありました。
ただ、これに関しては同サーバーから相手先のデータを読み込んで表示する、
という感じですよね。
直接該当ページに移動するのは無理でしょうか?
0186nobodyさん2006/10/09(月) 15:33:17ID:???
移動するというのはどういうこと?
0187nobodyさん2006/10/09(月) 18:01:38ID:???
文字列から最初と最後を除いた文字列を取得する、スマートな方法は?

例: 'abcdefg' => 'bcdef'

substr($str, 1, strlen($str) - 2) ←これより良いのありますかね?
0188nobodyさん2006/10/09(月) 18:07:55ID:???
substr($str, 1, -1);
0189nobodyさん2006/10/09(月) 18:33:58ID:???
-1なんて使えたのか・・・

サンクス
0190nobodyさん2006/10/09(月) 19:06:57ID:???
掲示板のスクリプトで2chみたいにIDを生成しようと思ってますが、

$host = ホスト(略);
$id = crypt($host.$_SERVER['USER_AGENT'].date("w"), "HOGE");

としてるんですが、こんなんでいいのでしょうか?なんか書き込んだ人を個別に判別できる値とかないんでしょうか?
0191nobodyさん2006/10/09(月) 19:16:58ID:???
USER_AGENTなんか入れたら偽装できまくりじゃん
01921902006/10/09(月) 19:26:39ID:???
>>191
そうですね(汗)
USERAGENTは抜いておきます。偽装されたら意味ないですね。
0193nobodyさん2006/10/09(月) 20:25:08ID:???
アップロードされた画像を相対的に表示させるにはどうすればいいのでしょうか?
imgの中に、widthなどをいれると全てそのサイズになってしまいます。
ある一定以上大きい画像は幅、高さを縮小させて表示させるには、imageizeなどを
使えばいいのでしょうか?
もし、よろしければ詳しいやり方を教えてください。お願いします。
0194nobodyさん2006/10/09(月) 20:30:38ID:???
>>193
1.getimagesize()でファイルの縦横サイズを取得する。
2.縦横がそれぞれ指定サイズ以上かを判定する
3.縦か横のどっちか大きい方をheightまたはwidthで指定する
だけかと。こんなのいちいち人に聞くような内容じゃないぞ?
01951812006/10/09(月) 20:36:00ID:/lkovAUh
>>182
感謝です。
廃止予定となっているのがちょっとだけ気になりますが
http://jp.php.net/manual/ja/ref.mime-magic.php
php4なら仕方ないですね。
あと、手元にあるmagic.mimeがヘボいのか
誤判定がしばしばあるのですが、
これはどっかに質のよいmagic.mimeが転がってるのを探せばいいんでしょうか。
引き続き探してみます。
0196nobodyさん2006/10/09(月) 20:57:00ID:???
オブジェクト指向プログラミングは、あちこちで「効率が良い」と言われて居るけれど
具体的にどう効率が良いの?

自分のウェブサイトで使う様な、あくまで趣味感覚で一人で開発して居る人には関係無いよね?
0197nobodyさん2006/10/09(月) 21:14:42ID:???
「具体的にどう効率が良い?」というのは非常に難しいところだと思う。
実際、オブジェクト指向じゃなくても同程度(場合によってはそれ以上)効率良くプログラムを書くことはできる。

気になるなら勉強すればいいし、もっと深く話を聞きたいなら違うとこに行ったほうがいい。
議論するほどにスレ違い&板違いな方向に行くのは目に見えてる。

一人で開発してるなら「どこにどんな処理があるか」「この処理はどこに書かれているか」が分かってるからほとんど必要ない。
最低限、よく出てくる処理をfunctionにしておけばいいと思う。

0198nobodyさん2006/10/09(月) 21:35:07ID:???
開発人数か一人かどうかはあまり関係ないと思うな。

まず、Cの構造体が便利だと思えるかどうか。

便利だと思えるなら、次の段階として構造体のメンバに関数のリファレンスを格納できたら便利だと思えるかどうか。

それが便利だと思えるなら、その次の段階として、似てるけど微妙に違う構造体をたくさん使うとき

おおもとになる型枠的なものを用意して、その子分をこしらえてながら開発出来ると便利じゃないか、と。

まあ、以上のものにちょっと機能を加えて便利にしたものがオブジェクト指向って感じか。

まず、構造体が便利だと思えなければ話が始まらないが、、PHPって素の構造体は・・・連想配列で代用か?
0199nobodyさん2006/10/09(月) 21:36:16ID:???
今PEARのMailでメールを送ってるんだけど、何故か件名が35byteぐらいを
超えると文字化けしてしまう・・・
PEARでメール送るときって件名の文字制限ってあるんですか?
確か1000ByteまでOKだったはずなんだけど・・・
0200nobodyさん2006/10/09(月) 21:37:59ID:WzDdpX/2
構文的な内容の質問です。
現状態ではプログラムの中で決まったHTMLを出力する場合に、

<?php
echo <<< HTML
<html>
<head><title>test</title></head>
HTML;
?>

と出力するようにしています。しかしこれだと、

<?php
function test(){
 if(〜){
  echo <<< HTML
  <html>
  <head><title>test</title></head>
  HTML;
 }
}
?>

のようにインデントを入れた場合にインデントまで出力することになってしまいます。
echoやprintを使用して一行ずつ出力することも考えましたが、ソースの可読性など考えるといい方法とは思えませんでした。
こういう場合は外部ファイルにタグを記述しておき、それをfile関数などで読み出して、出力するほうがよいのでしょうか?
意見のなどよろしくお願いします。
0201nobodyさん2006/10/09(月) 22:19:52ID:???
》199
ttp://www.bnote.net/php/pear/mail_02_jp.shtml
RFC2822
>行の長さの制限
>この標準では1行中の文字数に2つの制限がある。それぞれの行の文字はCRLF
>を除いて、決して998文字以下でなければならず(MUST)、78文字以下であるべ
>きである(SHOULD)。
0202nobodyさん2006/10/09(月) 22:29:41ID:bFRkADqN
easy php で php my admin でデータベースの管理をブラウザ上から
行いたいのですが,文字化けしてて使えません.
対策方法お知りの方おられましたら,お教え願えないでしょうか?
0203nobodyさん2006/10/09(月) 22:36:35ID:???
>>201
それだ!!
でも、文字数は20〜30文字ぐらいなんですよ・・・

【100yen or 200yen】お前ら最高!でも俺の方が最高!

上みたいなヤツだと「最高!」あたりが文字化けしてしまうっす・・・
0204nobodyさん2006/10/09(月) 22:39:01ID:???
>>200
別にHTMLの部分までPHPにあわせてインデントする必要はないんじゃないの?
0205nobodyさん2006/10/09(月) 22:41:58ID:???
>>203
最初の「最高!」?
02062032006/10/09(月) 22:44:52ID:???
>>205
あ、すみません。最後の「最高!」でした。
それ以前は部分は文字化けしません。

今確認したところ、件名自体を短くして「俺は最高!」
のみに縮めた場合は文字化けせずに問題なく送信できます。
02072052006/10/09(月) 22:46:19ID:???
申し訳ないです。。。

×
>あ、すみません。最後の「最高!」でした。
>それ以前は部分は文字化けしません。


>あ、すみません。最後の「最高!」でした。
>それ以前の部分は文字化けしません。
0208nobodyさん2006/10/09(月) 22:55:01ID:???
>>204
インデントしないと見通し悪くなるっしょ。
0209nobodyさん2006/10/09(月) 22:59:11ID:???
出力後のHTMLのインデントを美しく揃えたくなってしまう俺様が来ましたよ
0210nobodyさん2006/10/09(月) 23:07:32ID:???
気持は分かる。
が、俺はついついインデントを全排除してとにかく楽な方に逃げてしまうなあ。
0211nobodyさん2006/10/09(月) 23:22:03ID:???
>>209
ノシ
0212nobodyさん2006/10/09(月) 23:27:09ID:???
> 200
インデントするもなんも、ヒアドキュメントの終端IDのある行はインデントできんでしょ。
見栄えもなんもあるかいな。
0213nobodyさん2006/10/09(月) 23:29:29ID:???
includeでもしてくれ
0214nobodyさん2006/10/09(月) 23:30:22ID:???
というか作りそのものがまず悪いよ
0215nobodyさん2006/10/10(火) 00:33:53ID:???
>>200
> ソースの可読性など考えると
ソースの可読性を考えてるやつはプログラムコードの中にHTMLを書いたりしない。
> こういう場合は外部ファイルにタグを記述しておき、それをfile関数などで読み出して、出力するほうがよいのでしょうか?
当然。

どうしてもソース中にHTML書きたいんなら、Perlじゃないんだからヒアドクなんて使わず
 if(〜){
  ?><html><?php
  ?><head><title>test</title></head><?php
 }
みたいにHTMLモードに入っちゃえば?
0216nobodyさん2006/10/10(火) 00:34:08ID:???
>>213
includeじゃ対応できない部分もあるよ。
たとえばwhileなどで動的にテーブル作る(セル数が変動する)ときとか。
これはプログラムの流れに沿ってHTMLも書かなきゃならんので、
やはりソースに合わせてインデントしたくなる。
02172002006/10/10(火) 01:02:53ID:???
自分も今動的な部分に困っています。

他にいい方法がない場合は外部ファイルに
<?php
$header = create_function('$title','
echo <<< HTML
<html>
<head><title>$title</title></head>
HTML;
');
?>
と書いてrequireなどして逃げようと思ってます。
0218nobodyさん2006/10/10(火) 01:17:02ID:???
>>217
なぜわざわざ関数化するんだよ。
ヒアドキュメント内の変数だって{}で囲めば、
requireで読み込んだあとに変数部分がきちんと展開されるぞ。
0219nobodyさん2006/10/10(火) 01:25:19ID:???
>>216
俺は表示の動的制御に関しては読み込まれるHTML側に<?php 〜 ?>埋め込みでPHPコードを書くかな。
HTMLファイル側に仕込むのは
・変数表示
・表示のフォーマット処理
・表示のON/OFF制御のためのif
・ループ処理
のみに制限すればSmarty辺りのテンプレートとほぼ同様の可読性を維持できるから問題は感じない。
逆に言うと、あの辺のテンプレートと同程度のコードは許容しないと外部ファイル化はまず無理。

>>217
いくらなんでもその書き方はありえないだろ。
外部ファイルにしている意味が全くないぞ。
0220nobodyさん2006/10/10(火) 01:55:21ID:???
>>219
具体的にどんな感じですか? 良かったら参考にさせて下さい。
0221nobodyさん2006/10/10(火) 02:11:18ID:???
219じゃないけど、話の流れにそって俺なりのテンプレートの一部を書いてみる。
ショートタグ派的にはだいたいこんな感じ。
(というか、テンプレートにこういう風に書けるように、require前に変数を作成しておく)

<? foreach ($this->list as $item) : ?>
 <tr>
  <td><?=h($item->number)?></td>
  <td><?=h($item->name)?></td>
<?  if ($item->displays_body) : ?>
  <td><?=h($item->body)?></td>
<?  else : ?>
  <td>ひみつ</td>
<?  endif ?>
 </tr>
<? endforeach ?>

ちなみに俺はテンプレートの中でwhileは極力使わない。
ループは全てforeachで済ませられるよう努力する。
0222nobodyさん2006/10/10(火) 05:41:49ID:???
表示制御でwhileなんて、使う方が難しくないか?
forを使わない、ってことなら分からなくもないけど。
02232212006/10/10(火) 07:59:33ID:???
>>222
まあ、そりゃそうだ罠。つーか、>>216でwhileの話が出てたから一応言ってみただけなんだけど。
ロジックを表示周りに一体化させたい衝動に駆られると、whileも出てくるんじゃない?
あとは、while (DBからfetch) の中で直にechoして、メモリをすっきりさせてみたい年頃だったりとか。
02242002006/10/10(火) 08:37:53ID:???
>>217の書き込みが不適切だったことにお詫び申し上げますorz

>>218
要するに、呼び出し側で
function test(){
$title = "testaaaa";
require("header.php");
}
としておき、header.phpで
<?php
echo <<< HTML
<html>
<head><title>$title</title></head>
HTML;
?>
ということでよろしいのでしょうか?
02251832006/10/10(火) 09:28:01ID:???
>>186
通常のブラウザからのログインと同じように
対象のURLに自身のPCからアクセスするという意味です。

ためしにcURLでやってみたら、
上手くログインはできたものの
自身のサーバ経由で読み込むため、
ログイン先のシステムによっては、相対パスなどで指定されていて
リンク先などが正常に表示されませんでした。
0226nobodyさん2006/10/10(火) 09:30:10ID:???
そりゃそうなるにきまってますよね。BASEタグでも挿入しときゃ委員では?
0227nobodyさん2006/10/10(火) 10:43:46ID:???
じっくり考えてみたけど、要するに183さんがやりたいのは
PHPでプロキシーサーバーを作りたいってことなのかな?
0228nobodyさん2006/10/10(火) 11:01:58ID:???
183はHTTP_Requestでも使ってろ
02291832006/10/10(火) 11:33:55ID:???
>>227
いえ、逆に単にID/PASSが分からないログインボタンを作りたいだけです。
現在の状況(cURL)がプロキシサーバーになってしまっているので困ってます。
知人にログインして見せたい情報があるんですが、
ID/PASSは知らせたくない、というだけの状態です。

クライアントPCから相手先のサーバにデータを送る必要があると思うのですが、
上の場合、PHPサーバーから相手先のサーバにデータを送ってしまうので
難しいのでしょうか。
02301832006/10/10(火) 11:40:05ID:???
ちょっと考えてみたのですが、
PHPサーバーから相手先のサーバーにPOSTしても
ログイン先のサーバーでは
PHPサーバーと対のセッション情報保存されるわけで、
クライアントがログインできたかどうかとは全く別問題なんですよね
0231nobodyさん2006/10/10(火) 13:07:37ID:???
以前したらばを対象に似たようなの作った事あるけど、
こういうのって発覚するとロクな事にならないので止めといた方が良い。

単にログイン後のページを見せたいのなら
スクリーンショット撮って適度にモザイクかけて渡せ。
0232nobodyさん2006/10/10(火) 13:29:01ID:???
>>224
だから呼び出す側でも関数化する必要ないし、呼び出される側では変数を{}で囲めって。
正しくは(最も単純なのは)↓

$title = "testaaaa";
require("header.php");
としておき、header.phpで
<?php
echo <<< HTML
<html>
<head><title>{$title}</title></head>
HTML;
?>
02332002006/10/10(火) 14:56:02ID:???
>>232
今作っているものの都合上、関数化して書き込んでいました。
すいませんorz
0234nobodyさん2006/10/10(火) 15:12:57ID:VCBK9AiM
PHPで、日替わりでヘアスタイルの画像を表示するサイトを作りたいです

でも全然分かりません…
親切な方、いらっしゃったら教えてください
画像は365枚あります。
0235nobodyさん2006/10/10(火) 15:33:44ID:???
>>234
<img src="hair_<?php printf("%03d",date("z")) ?>.jpg">
0236nobodyさん2006/10/10(火) 15:47:46ID:???
普通JSでやるだろ
0237nobodyさん2006/10/10(火) 16:07:01ID:???
>>236
普通JSではやらない。
JSオフ環境の人も多い今の世の中ですよ奥さん。
0238nobodyさん2006/10/10(火) 16:47:44ID:???
オフにしてるのなんて、アダルトサイトに行く人だけw
0239nobodyさん2006/10/10(火) 17:02:05ID:???
まぁ意識レベルの問題だけどね。
何も危ないのはアダルトだけじゃないよ。
価格.com事件のようなのもあるしね。
0240nobodyさん2006/10/10(火) 17:03:09ID:???
***みんな誰でも無料で使える高速FTP「てぶ鯖」***

てぶ鯖は・・・
♪誰でもどんなファイルでもアップロード可能!!
♪アップロードされているファイルは誰でもいくらでもダウンロード可能!!
♪たくさんアップロードした人にはなんと抽選でプレゼント!!

だからみんなで楽しく使っちゃおう!!


ftp://tebukuro.ath.cx
User:anonymous
password:メールアドレス

++++*******てぶ鯖********++++
0241nobodyさん2006/10/10(火) 17:33:58ID:???
>>238
相手が携帯かもしれない
って考え付かないですか
0242nobodyさん2006/10/10(火) 17:51:02ID:VCBK9AiM
>>235さん

ありがとうございました!!なんとか出来ました!
0243nobodyさん2006/10/10(火) 19:27:44ID:HtJUF5F+
$a = array('111', '000', '222','222', '000', '222''888', '426', '222'・・・・・・・・);

このような配列が有る場合に
000は何個
111は何個
222は何個
と配列の中身をカウントする方法は有りませんでしょうか?
0244nobodyさん2006/10/10(火) 19:38:51ID:???
>>243
要素を一個取り出して、array_diffかけてから減った個数を調べる
0245sage2006/10/10(火) 19:57:14ID:???
RSSフィーダー(php)の海外のプログラムいじっているんですが、
下記のように文字化けします。
心当たりありませんか?

?¢?¢?¢?¢?¢

とか

\???\?\£
0246nobodyさん2006/10/10(火) 20:16:03ID:HtJUF5F+
>>244
ありがとうございます。

理解出来ませんでした。
もう少し優しいやり方はないでしょうか?
0247nobodyさん2006/10/10(火) 20:30:23ID:???
>>246
244じゃないけどそれが理解できなかったら他の方法も無理なんじゃないかな。
これ以上ないくらいに分かり易く説明してくれてるのに。
決して難しくないから頑張って理解してみるといいと思うよ。
@要素を1個取り出す
Aarray_diffをかける
B減った個数を調べる
順を追って解決していくといいよ。

別な方法としては
$aの要素をキーとする新しい配列を作り、1つ要素があるごとにそのキーの値を1増やす。
これを$aの全ての要素について行う。
0248nobodyさん2006/10/10(火) 20:31:55ID:???
>>246
foreach ($a as $b){
$c[$b]++;
}

print_r($c);
0249nobodyさん2006/10/10(火) 20:34:22ID:???
>>246

$a = array('111', '000', '222', '222', '000', '222', '888', '426', '222');

foreach ($a as $value) {
if (!isset($b[$value])) {
$b[$value] = 1;
} else {
$b[$value]++;
}
}

print_r($b);

前にもやったぞこれ。
0250nobodyさん2006/10/10(火) 20:39:20ID:???
キーにする方法だと、array(1, '1', true)とかで問題が起きたり。
0251nobodyさん2006/10/10(火) 20:54:22ID:???
>>243
つーか、array_count_values($a)で一撃だと思うんだが。
250みたいな問題が起こる可能性があるなら、値を全部serializeすればいいと思う。
0252nobodyさん2006/10/10(火) 21:02:05ID:HtJUF5F+
試行錯誤している内に皆様レスありがとうございます。
こんだけ時間掛けてやっと実行出来たのがこれなのですが
問題等ありますでしょうか?
<?php
$a = array('111', '000', '222', '222', '000', '222', '888', '426', '222');
$a2=array_unique($a);
foreach ($a2 as $a2_num => $aaa) {
foreach ($a as $a_num => $aaaa) {
if ($a2[$a2_num]==$a[$a_num]) {
$cnt[$a2_num]=$cnt[$a2_num]+1;
}
}
$a_cnt[$a2[$a2_num]] = $cnt[$a2_num];
}
while(list ($key, $val) = each($a_cnt)) {
print (" $key は、$val 個です<br>\n");
}
?>
0253nobodyさん2006/10/10(火) 21:10:21ID:???
>>251
serializeって…こうか!
array_count_values(array_map('serialize', $a));

目から鱗w
0254nobodyさん2006/10/10(火) 21:21:17ID:???
>>251
凄いですね
$a = array('111', '000', '222', '222', '000', '222', '888', '426', '222');
$b = array_count_values($a);
while(list ($key, $val) = each($b)) {
print (" $key は、$val 個です<br>\n");
}
数行で同じことが出来ました。
>>252と比べると非常に情けないです・・・・
0255712006/10/10(火) 22:44:48ID:???
何度もすみません。
同一Windowsマシン上でApache + PHP & SQL Serverをうごかして、
PHPからSQL Serverのデータを取ってくる際、
odbc_connectやmssql_connectで出力エンコーディングを
指定することはできないのでしょうか?
いろいろ調べましたが、エンコーディングを設定するということができないようです。
FreeTDSのodbc.iniには書けるようですが、Linux用のドライバですし〜や@は化けるようです。
以下のようにCOMを使ったらできたんですが重いです。
$conn = new COM("ADODB.Connection", NULL, CP_UTF8);
$conn->Open("Driver={SQL Server};Server=servername;Uid=user;Pwd=passwd;Database=databasename");

なんというか、こんなやり方でしか、エンコーディング指定できないというのは、
かなり信じられないんですが・・・本当に困ってます。
何か知っている人がいたらご教授ください。
0256nobodyさん2006/10/10(火) 23:14:34ID:UY1nIn3b
(int $x) と (str $y) に、(int 0-9)と(str a-z)を代入して二文字のパターンを、ループ処理で
全て求めたい:

例: 00, 01, 02, …… 98, 99, …… 0a, 0b, 0c, …… 9x, 9z

数字のループは分かるんだけど、文字列のループはどうすれば出来るのかな?
for ($i = 0; $i < 99; $i++) {
    echo $i;
}
0257nobodyさん2006/10/10(火) 23:16:53ID:UY1nIn3b
[訂正]
(int 0-9)と(str a-z)の組合せで出来る二文字のパターンを、ループ処理で
全て求めたい
0258nobodyさん2006/10/10(火) 23:34:23ID:???
for ($i=ord('a'); $i<=ord('z'); $i++) {
echo chr($i);
}
0259nobodyさん2006/10/10(火) 23:41:28ID:???
for ($i=0;$i<36*36; $i++) {
echo base_convert($i,10,36);
}
0260nobodyさん2006/10/10(火) 23:55:07ID:UY1nIn3b
ありがとう。
0261nobodyさん2006/10/11(水) 00:03:42ID:???
便乗
0-9、a-z、A-Zでは?
0262nobodyさん2006/10/11(水) 00:16:16ID:???
foreach(range(0,9) as $c){
    foreach(range('a','z') as $n){
        $a[] = $c.$n;
    }
}
print_r($a);

---

ところでこれだとなんでzzまで出ちゃうんだ?

for($i='a';$i<='z';$i++){
    echo $i;
}


0263nobodyさん2006/10/11(水) 00:18:11ID:???
大文字小文字順番逆だけど

function jump(&$i) {
    if ($i == 58) $i = 65;
    elseif ($i == 91) $i = 97;
}

for ($i=48; $i<=122; $i++) {
    jump($i);
    for ($j=48; $j<=122; $j++) {
        jump($j);
        echo chr($i).chr($j);
    }
}
0264nobodyさん2006/10/11(水) 00:23:51ID:???
>>262
ちゃんとできてるようにみえるけど
0265nobodyさん2006/10/11(水) 00:25:15ID:???
>>264
スマソ
かんちがい
0266nobodyさん2006/10/11(水) 00:27:32ID:???
$a = array_merge(range(0,9),range('a','z'),range('A','Z'));
foreach($a as $b){
    foreach($a as $c){
        foreach($a as $d){
            $aa[] = $b.$c.$d;
        }
    }
}
print_r($aa);
0267nobodyさん2006/10/11(水) 00:28:34ID:???
>>263
サンキュ
0268nobodyさん2006/10/11(水) 00:29:14ID:???
>>266
っと、こっちもサンキュ
0269nobodyさん2006/10/11(水) 02:22:14ID:8Czx1vGv
http://lint.s1.x-beat.com/up/img/up11678.txt
(実際は1行ずつ改行されてます)
上記のようなユーザーエージェントがある場合に
機種名だけを切り取りたいのですが
うまくやる方法はありませんでしょうか?

お手本ありましたらお願いいたします。
0270nobodyさん2006/10/11(水) 07:06:40ID:???
>>269

機種名というのは携帯電話端末の?

ユーザーエージェントの識別名は、クライアント側の自己申告なので
難しいと思う。まず各メーカーの仕様書を見ろ。

$lines = file ('filename.txt');
foreach ($lines as $line) {
    $result = str_word_count ($line, 1);
    echo "{$result[0]}<br>\n";
}

ほとんどのユーザーエージェントは、機種名を識別名文字列の最初に持って来ているので
これで取得出来ると思うが……。
0271nobodyさん2006/10/11(水) 07:54:23ID:???
>>269
キャリアをまず判別して、キャリアごとの機種名ぶっこヌキ処理書いて
引っこ抜くしかないんじゃないの?
0272nobodyさん2006/10/11(水) 08:00:11ID:???
サイトのリニューアルをしてるんですけど、

フレームワーク使うからurlが変わっちゃいます。

いままでのurlには末尾に.htmがついていたのですが、

フレームワークのurlには.htmがついていません。

.htm 付のurlでアクセスがあった場合.htm なしのurlに

転送できるのでしょうか。
0273nobodyさん2006/10/11(水) 08:25:09ID:???
それはトップページだけでいいの?それとも大量に転送したいURLがあんの?
トップだけでいいなら元々のHTMLと同じ名前のHTMLを1個置いといて
中に
<?php Location("http://フレームワークなサイトのURL/"); ?>
って1行仕込んどくだけでいいと思うけど。
0274nobodyさん2006/10/11(水) 08:37:40ID:???
mod_rewrite
0275nobodyさん2006/10/11(水) 09:46:15ID:???
ここのスレはいい人ばかりで大好きです。
ありがとう。
0276nobodyさん2006/10/11(水) 10:11:16ID:???
↑なんでこの発言、定期的に書き込まれるの?
0277nobodyさん2006/10/11(水) 10:15:40ID:???
>>276
え!? そんなのあったか?
5スレほど過去ログ遡ってみたが1個も見つからないぞ。
0278nobodyさん2006/10/11(水) 12:35:16ID:???
ここのスレはいい人ばかりで大好きです。
ありがとう。
0279nobodyさん2006/10/11(水) 12:41:52ID:???
感謝を素直に受け取れない偏屈者がいたようだw
0280nobodyさん2006/10/11(水) 12:57:14ID:i80IIJil
php5でis_a()を使うと「is_a(): Deprecated. Please use the instanceof operator」と
言われるんですが、使わない方がいい理由って何かあるんでしょうか?
0281nobodyさん2006/10/11(水) 13:20:32ID:???
ってかさ、読もうとしろよ翻訳使ってもいいからさ
「instanceof演算子を使って下さい」
0282nobodyさん2006/10/11(水) 13:24:57ID:???
>>281
お前も日本語読む努力をしようよ。
「何故、これが非推奨になってるのか」を聞いてる質問だろ?
これが非推奨でinstanceof演算子を使えといわれてることは
質問者はすでに理解してるんだよ。その理由を聞いてんの。
02832802006/10/11(水) 13:30:19ID:???
>>282
そんな事を書き込む暇があったら
さっさと理由を教えてくれ
0284nobodyさん2006/10/11(水) 13:39:48ID:???
>>283
PHP5で演算子化(instanceof)されてより効率がよくなったから。
わざわざ関数を通してオーバーヘッドを増やすのはナンセンス。
0285nobodyさん2006/10/11(水) 13:47:02ID:P+AC1Js6
>>234さんの質問と重複するかもしれませんが

愛猫の動画を365日自分の携帯用ホームページに表示したいです
365本の動画はすでに1〜365まであります

教えてくださる方、お願いします。

02862802006/10/11(水) 13:49:42ID:i80IIJil
>>284
ありがとうございました。
283は私じゃありません。
0287nobodyさん2006/10/11(水) 13:53:04ID:???
>>285
動画が http://exsample.com/movie1.mpghttp://exsample.com/movie366.mpg
というURLになってるとして(閏年を考えたら366本必要だよ)

サイトからのリンク
<a href="movie.php">今日の動画</a>

movie.php
<?php Location("http://exsample.com/movie"; . (date("z") + 1) . ".mpg"); ?>

とすりゃいいんじゃないの。
0288nobodyさん2006/10/11(水) 13:54:02ID:???
>>285
釣りなら余所でやってくれ
0289nobodyさん2006/10/11(水) 13:59:31ID:???
>>285
>>235の応用
0290nobodyさん2006/10/11(水) 14:28:34ID:???
>>289
応用できれば質問しない
0291nobodyさん2006/10/11(水) 14:30:03ID:???
いくら下らねぇ質問スレでも回答を読めないレベルの人はお断りだ
0292nobodyさん2006/10/11(水) 14:56:54ID:???
サイト登録ができるサイトを作ろうと思っています
どうやらCGIプログラムを使うといいらしいのですが、
CGIについてまったくのド素人なため、1から作るというのが難しい状況です
お勧めのフリーCGIプログラムがありましたら教えてください
0293nobodyさん2006/10/11(水) 15:06:02ID:???
>>292
なんでここで聞くんだ?スレ違い。
0294nobodyさん2006/10/11(水) 15:06:37ID:???
>>292
そんなものは無い。
0295nobodyさん2006/10/11(水) 15:20:56ID:???
画像を縦横同じ比率で縮小させて、表示させたいのですが、どうすれば
いいのでしょうか?getimagesizeで縦や横のサイズが500以上だったら300に
する、みたいなことはできたのですが、それだと、元の画像の縦横サイズが
変わってしまいます。縦が小さくなったら、同じ比率分だけ、横も
縮小させたいのです。どうか宜しくお願いします。
0296nobodyさん2006/10/11(水) 15:28:02ID:???
ここのスレはいい人ばかりで大好きです。
ありがとう。
0297nobodyさん2006/10/11(水) 15:32:22ID:???
>>295
小学校からやり直す?

$length = 200;
$size = getImageSize($targetfile);
if($size[0] > $length){
   $width = $length;
   $high = $size[1] * $length / $size[0];
}else{
   $width = $size[0];
   $high = $size[1];
}
0298nobodyさん2006/10/11(水) 15:45:28ID:???
>>295
http://masago.kir.jp/php20040218.php
No29.大きさを変えようっ(サムネイル) ---- GDライブラリ[3]

離れPHP島のサンプルは参考になりますね!

便利☆便利(^^)v

0299nobodyさん2006/10/11(水) 15:50:48ID:???
ここのスレはいい人ばかりで大好きです。
ありがとう。
0300nobodyさん2006/10/11(水) 15:51:46ID:???
>>297,298
ですよね。。これって簡単な算数ですよね。。。ホント馬鹿です。
ありがとうございます。
0301nobodyさん2006/10/11(水) 16:39:42ID:WiH1H+/l
テキストボックスが空欄の場合、
対応する $_POST[] の中身って何になりますか?
0302nobodyさん2006/10/11(水) 16:44:34ID:???
>>301
「テキストボックスが空欄」ねー。

↑この文、回答者から見たらどうとらえると思う?
0303nobodyさん2006/10/11(水) 16:47:25ID:WiH1H+/l
>>302
何も記入されていない状態、と、
普通は捉えてもらえると思いましたがorz
0304nobodyさん2006/10/11(水) 16:56:07ID:???
>>301
つ「var_dump($_POST)」
0305nobodyさん2006/10/11(水) 17:00:10ID:WiH1H+/l
…超ショボい凡ミスしてますたorz

>>304
お手数おかけしました…
0306nobodyさん2006/10/11(水) 17:00:51ID:???
ここのスレはいい人ばかりで大好きです。
ありがとう。
0307nobodyさん2006/10/11(水) 17:05:36ID:WiH1H+/l
おまいら!
VBとは違って、= は代入、 == が比較だぞ!orz
0308nobodyさん2006/10/11(水) 17:13:59ID:???
>>301,303,305,307
お前は一人でコントでもやってるのか?
0309nobodyさん2006/10/11(水) 17:17:32ID:a92Vtxiq
fopenが失敗した場合についてなんですが、
http://jp.php.net/manual/ja/function.fopen.php
オープンが失敗すると、関数は FALSE を返し、 E_WARNING レベルのエラーを発行します。

とのことですが、プログラム側で失敗した原因を知る方法はありませんか?
03102852006/10/11(水) 17:28:29ID:P+AC1Js6
度々すみません
>>287さんのやり方で

<html>
<body>
<div align="center">
<a href="movie.php">今日の動画</a><br>
</div>
</body>
</html>

でmovie.phpを
<?php location("http://example/movie/"; . (date("z")) . ".amc"); ?>

としましたが
Fatal error: Call to undefined function: location() in /home/virtual/site42/fst/var/www/html/movie.php on line 1
のエラーが返ってきてしまいます

ちなみに見る方がおばさんばかりなので、携帯用動画(3gp amc)しかありません
親切な方、よろしくお願いします
0311nobodyさん2006/10/11(水) 17:35:30ID:WiH1H+/l
location じゃなくて、 echo じゃダメなんですかねorz
0312nobodyさん2006/10/11(水) 17:35:48ID:???
Location()って何だ…?

http://jp.php.net/manual/ja/function.header.php

movie.php
<?php header("Location: http://example/movie/"; . (date("z")) . ".amc"); ?>

じゃないのか?
0313nobodyさん2006/10/11(水) 17:36:08ID:???
>>310
おばかさんはお前じゃね?
その程度のエラー訳して自己解決しろよ
0314nobodyさん2006/10/11(水) 17:37:14ID:WiH1H+/l
>>313
一行目は余分なんです(´;ω;`)
0315nobodyさん2006/10/11(水) 17:39:50ID:???
>>311
君は、何事にも、もう少し落ち着いたほうが良いと思う。
行動する前に、一拍考える時間を。
0316nobodyさん2006/10/11(水) 17:41:34ID:WiH1H+/l
>>315
…!! これは!!!
吊ってくる。
0317nobodyさん2006/10/11(水) 17:43:48ID:???
>>310 は、ひとことも「おばかさん」なんて書いてないのに
「おばかさんはお前」なんていわれてかわいそう
0318nobodyさん2006/10/11(水) 17:48:37ID:???
ここのスレはいい人ばかりで大好きです。
ありがとう。
0319nobodyさん2006/10/11(水) 17:50:42ID:???
>>285
285は、使ってみる前に、phpマニュアルを読む、ぐぐってサンプルを
拾ってみる。ぐらをはしような。
0320nobodyさん2006/10/11(水) 17:57:48ID:???
>>309
警告メッセージに書かれた文字列から判別するしかないと思う
0321nobodyさん2006/10/11(水) 18:33:31ID:???
>>309
$php_errormsgでぐぐれ
0322nobodyさん2006/10/11(水) 20:25:52ID:???
業務経験のある方に質問したいのですが、
コーティング規約とかによるのかもしれませんが、
PHPにおける、変数名、定数名、クラス名、関数名のつけ方は、
業務ではどのような感じでつけていますか?

頭に大文字、全て小文字、アンダースコアで繋ぐなど。
Hogehoge hogehoge hoge_hoge HogeHoge等・・・
0323nobodyさん2006/10/11(水) 20:36:38ID:???
規約によりますね。

アンダースコアって使うのかなあって感じですが。

個人的にはクラス姪は HogeHoge, instantiateしたのは hogeHogeが好きだけど
03243092006/10/11(水) 20:52:44ID:VRU7wb5k
>>320-321
ううむ、厳しいですね。ありがとうございました。
0325nobodyさん2006/10/11(水) 21:04:51ID:???
ここのスレはいい人ばかりで大好きです。
ありがとう。
0326nobodyさん2006/10/11(水) 21:19:21ID:???
DEFINE_NAME
Namespace_Package_ClassName_Etc
$variable_name or $variableName
$property_name or $propertyName
$_private
functionName()
methodName()
0327nobodyさん2006/10/11(水) 21:58:43ID:???
ipアドレスをgethostbyaddrでホスト名に変換させてるんだけど、
100個くらいになるとかなり時間がかかる。
これを改善する方法は無い?
0328nobodyさん2006/10/11(水) 22:14:40ID:qjuz9ghD
http://script.s16.xrea.com/
の2chbbsのスクリプトを携帯用のDOCOMOのutn取得改造しようと思い
http://script.s16.xrea.com/2ch/test/read.php/php/1048578946/193-292
の257−260どうりにやったら263の人と同じく
【ERROR:末端情報を送信してください】
になりました
これどうしたらいいですか?
サポ番で教えてくれないんで・・・
0329nobodyさん2006/10/11(水) 22:15:20ID:???
DNSだっけ?
それにホスト名はとりにいってるからね
0330nobodyさん2006/10/11(水) 22:31:58ID:???
ここのスレはいい人ばかりで大好きです。
ありがとう。
0331nobodyさん2006/10/11(水) 22:42:01ID:???
>>328
改造はスレ違い
0332nobodyさん2006/10/11(水) 23:26:06ID:???
>>327
その場でやらずに事前に変換しとくくらいしかないのでは…
それともローカルでDNSサーバー立ててそいつとプライベートで通信すれば
少しは速度向上できるのかな。
0333nobodyさん2006/10/11(水) 23:26:25ID:???
>>328
公式じゃない場合、利用者が送信することを選択しない限り送信されないよ。
03343222006/10/11(水) 23:55:58ID:???
>>323 >>326
どうもありがとうございます。
どのようにつけたらベストなのかわからず迷っていたので、
大変参考になります。ありがとうございます。
0335nobodyさん2006/10/11(水) 23:59:47ID:???
ここのスレはいい人ばかりで大好きです。
ありがとう。
0336nobodyさん2006/10/12(木) 08:06:14ID:???
>>276-277
お前らが嵐に余計な反応するから・・・(涙
0337nobodyさん2006/10/12(木) 08:09:56ID:???
>>276-277とは違う奴だったりしてw
まぁ専ブラでNGワード登録して弾いてるから全く問題なし

むしろ、この人また書き込んでるよ。ご苦労様( ´,_ゝ`)プッ と笑えるなぁ
0338nobodyさん2006/10/12(木) 08:30:21ID:???
ここのスレはいい人ばかりで大好きです。
ありがとう。
0339nobodyさん2006/10/12(木) 09:16:31ID:???
phpスレなのに「人」だと決め付けてしまうあたり、まだまだですね。
0340nobodyさん2006/10/12(木) 09:19:32ID:???
PHP使いは人以下ですか そうですか ありがとう
0341nobodyさん2006/10/12(木) 09:24:12ID:???
なんのこっちゃw
0342nobodyさん2006/10/12(木) 09:27:27ID:???
>>339-340
流れにワロチw
0343nobodyさん2006/10/12(木) 09:41:58ID:???
ApacheのIndexesみたいに
そのフォルダ下のファイルの一覧を表示させるようなPHPスクリプトはありませんか?
0344nobodyさん2006/10/12(木) 09:45:23ID:???
スレ違い
0345nobodyさん2006/10/12(木) 09:57:04ID:???
>>343
そのくらい自分で作りなさいよ。数行で終わるだろ?
0346nobodyさん2006/10/12(木) 16:16:05ID:???
>>343
http://au.php.net/manual/ja/function.opendir.php
このへん使って自分でがんばれ。
0347nobodyさん2006/10/12(木) 16:20:29ID:???
>>346
こっちでもよくね?/ ,' 3  `ヽーっ
http://www.php.net/~helly/php/ext/spl/classFindFile.html
0348nobodyさん2006/10/12(木) 16:30:56ID:???
>>346-347
どこまで真面目に作るかによるけど
簡単なのならこれが1番楽
ttp://www.php.net/manual/ja/function.glob.php
0349nobodyさん2006/10/12(木) 16:41:50ID:???
>>340-341
馬鹿スwwwwwwwwwwwwwwww
0350nobodyさん2006/10/12(木) 21:40:10ID:???
phpスクリプトをWindows上で単体で動作させる(.exe化)ことって出来る??
0351nobodyさん2006/10/12(木) 21:44:11ID:???
出来るよ。
0352nobodyさん2006/10/12(木) 21:50:06ID:???
>>350
http://winbinder.org/index.php
これ使えばできる
一応他にもあった気がするが忘れた
0353nobodyさん2006/10/12(木) 22:30:16ID:???
>>352
横からだが、面白そうだしちょっとそれ使ってみる
0354nobodyさん2006/10/12(木) 23:52:16ID:???
被検索語のランキング表示ができるスクリプトを探しているのですが
どなたかご存知ありませんでしょうか。MT用のプラグインはあるみたい
ですが、単体で使えるものがてんで見つかりません。。。orz
0355nobodyさん2006/10/13(金) 02:00:28ID:???
で、検索にはなにを使ってるんだね?
0356nobodyさん2006/10/13(金) 02:47:41ID:???
ぐーぐる
0357nobodyさん2006/10/13(金) 05:01:25ID:???
最近オブジェクトPHPはじめたのですが、
スタティック変数にするメリットってたとえばどういうときなんでしょうか?

class Hoge {
 public static $a = 1;
}
echo Hoge::$a;

とかくのと、

class Hoge {
public $a = 1;
}
$hoge = new Hoge;
echo $hoge->a;

と書くのでは結果的には一緒ですがどう違うのでしょうか?
0358nobodyさん2006/10/13(金) 05:39:40ID:???
>>357
$hoge1 = new Hoge;
Hoge::$a = 100;
$hoge2 = new Hoge;
$hoge2->a = 2;
Hoge::$a = 200;

echo $hoge1->a; // 1
echo $hoge2->a; // 2
echo Hoge::a; // 200

インスタンス変数はインスタンスごとにそれぞれの値を与えたい場合に使う。
スタティック変数はインスタンスによらず、クラス全体で共通の値を与えたい場合に使う。
余談だけど、クラス内の変数はなるべくprivateにしような。
0359nobodyさん2006/10/13(金) 06:01:48ID:???
>>358
おーわかりやすい説明ありがとうございます。
これでひとつまた賢くなりました。
メンバ変数はprivateがよいのですね?了解しました!
早朝にわざわざレスありがとうございましたm(__)m
0360nobodyさん2006/10/13(金) 09:18:45ID:???
>>353
レポよろ
0361nobodyさん2006/10/13(金) 10:49:27ID:???
ここのスレはいい人ばかりで大好きです。
ありがとう。
0362nobodyさん2006/10/13(金) 11:21:08ID:7vpqtGwf
よく携帯サイトなどで見かけるのですが
mailtoを利用して空メールをさせて
折り返しに登録メールや案内メールを送るのがありますが
これは何かメールサーバみたいなものやサーバの設定が必要だと思うのですが
そういったものを用意せずに
mailtoを利用した感じのものでメアド取得は出来ませんでしょうか?


0363nobodyさん2006/10/13(金) 11:46:12ID:???
フォームからGETで配列を渡すのどうすればいいんでしょうか?
postなら分かったのですが。
0364nobodyさん2006/10/13(金) 11:58:35ID:???
>>363
おなじ
0365nobodyさん2006/10/13(金) 12:23:56ID:???
>>362
スレ違い。
しかもメールを送られた時の処理なのに、メールサーバの設定をせずに潜り抜ける意味がわからない。
そういうのは普通/etc/aliasesか.forwardから適当にスクリプトを起動する。
0366nobodyさん2006/10/13(金) 12:28:57ID:???
POP見に行くPHPでも実現は出来るけどね
0367nobodyさん2006/10/13(金) 13:27:29ID:???
くだらない質問で恐縮なのですが、
swfにxmlを読み込ませる場合、セキュリティの都合上
自ドメインのxmlしか読み込めないらしいのですが
他ドメインのxmlを自サイトのファイルにインクルード
して読み込ませることは出来ますか
0368nobodyさん2006/10/13(金) 13:43:17ID:???
>>362
通常は受信メール毎にスクリプトを自動実行させるように
sendmail等のサーバー設定を行って組むんだが、
受信BOXのメールを定期的に動かしたスクリプトでPOP受信すれば
若干のタイムラグは発生するが同様のことはできるよ。
0369nobodyさん2006/10/13(金) 13:44:38ID:???
>>367
自分で答え書いてる
後は試すだけ
0370nobodyさん2006/10/13(金) 13:53:31ID:wYHWwd6x
プロバイダの関係かなにかで、メーラーの送信ポートを587にしろとメールがきました。
もちろん、メーラーの設定は変えたのですが、
Mac OSXを確認用サーバーに使用しており、phpからのメール送信ができなくなってしまいました。
特にエラーはでないのですが、送信されない状況です。

とりあえず、php.iniの設定で、
smtp_port=の部分を587にしてみましたが、ダメでした。

何か解決策がありましたら、教えてもらえると有り難いです。
0371nobodyさん2006/10/13(金) 14:02:41ID:???
>>370
まずはそのプロバイダから来たメールを張りつけろ。
話はそれからだ。
0372nobodyさん2006/10/13(金) 14:08:35ID:???
Message Submission?
0373nobodyさん2006/10/13(金) 14:33:47ID:wYHWwd6x
>>371
メールのほうは捨ててしまったのですが、恐らく↓の影響かと思います。

ttp://www.plala.or.jp/access/community/mailplus/smtp_auth.html
0374nobodyさん2006/10/13(金) 14:45:50ID:???
>>373
smtp認証はしゃべれないはず。
fsockopenでプロトコル手書きするか何か別の手を使うしかないと思う。
0375nobodyさん2006/10/13(金) 14:58:01ID:???
phpmailerとか
0376nobodyさん2006/10/13(金) 15:12:22ID:???
ここのスレはいい人ばかりで大好きです。
ありがとう。
0377nobodyさん2006/10/13(金) 17:10:43ID:0s8cJuHn
PHPに限った事ではないんですが、SQLiteとかのデータベースを使う利点を教えてください。
例に出ていたのですが、たとえば図書館の本検索システム。
これはデータベースでやってるところが大多数らしいのですが、データベースを使わずにやっても出来ると思うのですが、どうなのでしょうか?
件数が30万件とかものすごく多くなると速度に差がでてくるのでしょうか?
それともサーバーの負荷の問題でしょうか?
03783732006/10/13(金) 17:22:09ID:???
ありがとございます。
全然詳しくないのでアレなんですが、メーラーの設定みたいに、
ポート25を587に変えるだけじゃダメなんですねぇ。

0379nobodyさん2006/10/13(金) 17:33:04ID:???
>>377
一番大きな理由は開発が楽だからだよ。
0380nobodyさん2006/10/13(金) 17:43:43ID:???
>>378
php.iniのSMTP PORTは、 Windows Onlyだからね。
0381nobodyさん2006/10/13(金) 18:13:07ID:???
>>377
30万件のレコードから、検索や抽出、並べ替えなんかをするのを
がんばって作ってみな。
まあ、結果を得られる速度はDBに負けるだろ。
もし対等に渡り合えるのがかけてるんなら、DBを作れたって話だ。
0382nobodyさん2006/10/13(金) 19:13:58ID:???
>>377
件数が多い場合や複数条件の組み合わせでやっぱ速度に大きく差が出るね。
速度に差が付く理由の1番大きなところはインデックスの生成だから
そこを自作してやればDBと対等かそれ以上の速度を出すことは可能。
それ以外にもデータ更新時に破損しにくいとかの堅牢性やメンテのしやすさ
なんかも理由には挙がるけど、データがほとんど更新されない静的データなら
どっちでも大した問題にはならないと思う。
検索処理と並行して頻繁に更新されるデータならDBで作ってないとすごく怖い。
03833772006/10/13(金) 20:14:05ID:0s8cJuHn
>>379
>>381
>>382
皆様ありがとうございます。 やはり速度がかなり違うのですね。
データが破損しにくいとは知りませんでした。 どっちにしろ手間かけるくらいならDB使ったほうがいいということですね。
ありがとうございました。
0384nobodyさん2006/10/13(金) 20:25:25ID:???
階差は約1時間ですねー
0385nobodyさん2006/10/13(金) 20:46:39ID:jl8poghH
画像のパスを表示せずに、画像をブラウザに表示させる方法ってあるでしょうか?
画像を右クリックで保存等は出来ても構わないのですが、画像のパスだけは
隠しておきたいのです。
テストではGDを利用して出来たのですが、使うサーバはGDが使えないのです。。
宜しくお願いします。
0386nobodyさん2006/10/13(金) 21:19:22ID:???
>>385
>GDを利用して出来た

どうやって??
0387nobodyさん2006/10/13(金) 21:27:48ID:???
headerのcontent-typeとreadfileでできるんじゃね
0388nobodyさん2006/10/13(金) 22:27:07ID:???
>>385
/img/****.jpg だろうが、 /img.php?****.jpg だろうと
どっちにしても、画像のパスには違いないわけだが…

直リンク対策や、会員限定とかのためにPHPを通して表示したいって事?

何が目的なのか、良く判らないんだけど
0389nobodyさん2006/10/13(金) 23:38:25ID:???
GETで投げられた変数をPHPで受け取って使う場合に

http://hoge.com/?id=passwd

$id = "";
if(isset($_GET["id"])){ $id = $_GET["id"]; }

としてから受け取っているけど、これって正解ですか?
0390nobodyさん2006/10/13(金) 23:49:32ID:???
>>388
俺も初め385の意味がわからなかったが、387を読んで、画像のパスを隠すというのはおそらくサーバ上での絶対パスを隠すという意味ではないかと推測。
で、もしそうなら387でFA。
0391nobodyさん2006/10/13(金) 23:51:43ID:???
>>389
問題ないと思います
0392nobodyさん2006/10/14(土) 00:18:04ID:???

$arr = array("1"=>array("1"=>array("id"=>5,"gender"=>0,"age"=>14)
,"2"=>array("id"=>33,"gender"=>0,"age"=>23)
,"3"=>array("id"=>143,"gender"=>1,"age"=>43)));

これを

$ages=array(14,23,43);

に加工したいんですが、可能ですか?
0393nobodyさん2006/10/14(土) 00:23:19ID:???
--環境(windows XP, postgreSQL8.1.4, php5.1.6)--
phpのinsertでserialの項目を省略して記述したいのですが、省略すると追加できません。
試しにコマンドプロンプトで同じinsert文を記入するとなぜか追加できてしまいます。

『失敗したinsert文』--> insertからbbsidを省略しています
create table bbstable (
bbsid serial,
name text,
title text,
coment text,
updatetime text);
$sql = 'insert into bbstable (name, title, coment, updatetime) values (?, ?, ?, ?)';
$stmt = $dbh->prepare($sql);
$flag = $stmt->execute(array($name, $title, $coment, $updatetime));

『成功したinsert文』--> コマンドプロンプトで実行
insert into bbstable (name, title, coment, updatetime) values (1, 2, 3, 4);
  ↑これでbbsidに採番された値が入っています

調べると以下のような説明を行っているサイトがあったのですが、まずserial型のデータをselectで取得してから、insertを行っています。
せっかく自動採番の項目なのに変だと思っています。何か思い違いをしているのでしょうか?

『解説にあったサンプルPG』
CREATE TABLE person (
id SERIAL,
name TEXT
);
new_id = execute("SELECT nextval('person_id_seq')");
execute("INSERT INTO person (id, name) VALUES (new_id, 'Blaise Pascal')");
0394nobodyさん2006/10/14(土) 00:27:32ID:???
>>392
foreach($arr[1] as $a) {
$ages[] = $a["age"];
}
0395nobodyさん2006/10/14(土) 01:39:03ID:???
冗長だと思う。

$id = isset( $_GET['id'] ) ? $_GET['id'] : '';
0396nobodyさん2006/10/14(土) 01:41:44ID:???
>>395>>389に対するレスね。
0397nobodyさん2006/10/14(土) 02:07:22ID:HT3mnicj
同じドメインのパスでも、
クッキーの変数ごとに期限を設定できるんでしょうか?
すぐに消えるクッキーとずっと残るクッキーを同居できますか?
03983972006/10/14(土) 02:19:24ID:???
別々に設定できるみたいですね。
0399nobodyさん2006/10/14(土) 02:55:28ID:???
>>395
短くしたいならこれでいい。
$id = @ $_GET['id'];
0400nobodyさん2006/10/14(土) 08:20:59ID:???
PHPってArrayクラスってないの?
いまどき count(ary)とかやって要素数得るのダセーとか思うんだけど・・・
0401nobodyさん2006/10/14(土) 08:32:36ID:+DX4AjuZ
なにがどうダサいのかまず説明しなよ。
C++やJavaみたいにデフォでは満足なリスト機能を持たない言語なら
クラスで用意するのも分かるが、LispやPerlやPHPくらいになると
むしろクラスで処理するのがナンセンスに感じるけどね。
count($arr)だって実際はプロパティ値返すだけだし。
0402nobodyさん2006/10/14(土) 08:42:05ID:???
>>400
お前の存在自体がダサいwwwwwwwwwwwwwwwwwwwww
0403nobodyさん2006/10/14(土) 09:01:08ID:???
2バイト文字が含まれている文字列から、
英数字だけをとりだしたいのですが、
いい方法はありますか?

はじめは以下のようにやっていたのですが、
文字の組み合わせによって余計な文字が出てくる場合があります。
preg_replace('/[^\w]/', '', $str);

mb_eregi_replace を使ってみたのですが、
使い方があっていないのかうまくいきません。
04044002006/10/14(土) 09:01:33ID:???
なんかCで構造体の引数を第一引数に渡してる感がするんだな。
あと文字列もクラスじゃない。
JavaやC#だったら、インテリセンスでメソッドが出てくるが、
PHPだとそうはいかない。それがだるい。
0405nobodyさん2006/10/14(土) 09:08:25ID:???
>>404
ふいんき(何故か(ry)で騙るなバカ
0406nobodyさん2006/10/14(土) 09:12:30ID:???
>>404
文字列をわざわざクラス化!?w
だったらC++やJavaで整数がなんでクラスじゃないのか説明してみなよ。
それはダサくないのかね?
04074002006/10/14(土) 09:17:31ID:???
普段、四則演算くらいしかオペレーションがないからだろ。
とにかくインテリセンスがきかんのがうざい。
インテリセンスでクラスのメソッド名が出てきたら、
だいたい該当するのはどれなのかわかる。
PHPは、いちいち調べるのがめんどい。
タイポする可能性も増える。
しかも型もコンパイルないからエラーにならんし。
つーか、こんな言語愛用してるのは糞だ。死ね!
04083852006/10/14(土) 09:18:49ID:53yXNDSa
385です
>>390さんの通り、サーバに置いてある画像の絶対パスは隠しておきたいのです。
headerのcontent-typeとreadfileでどのようにやるんでしょうか。
よろしければヒントお願いします。
0409nobodyさん2006/10/14(土) 09:22:05ID:???
>>408
マニュアル見てみたんですか?
0410nobodyさん2006/10/14(土) 09:28:56ID:???
>>400
お前がそう思ってるならそれでいい。
糞だと思うなら使わなきゃいいし、このスレを見る必要もない。

もう来るなよ。
04113852006/10/14(土) 09:32:17ID:53yXNDSa
>>409
すみません。勘違いしてました。
マニュアルちゃんと読みます。
>>408は無しでお願いします。
0412nobodyさん2006/10/14(土) 09:33:47ID:???
>>407
> 普段、四則演算くらいしかオペレーションがないからだろ。
ヘボ確定ww ワロスwww
04134002006/10/14(土) 09:47:59ID:???
>>412
じゃあ、おめぇこそ説明しろ。
文字列や配列がクラスなら、整数もクラス化しておいてもいいんじゃないかという意味を。
てか、C#じゃ整数もクラスだがな。でも、実際四則演算ばかりだから意識もしない。
むしろJavaみたいにプリミティブ型とクラスで分かれてる方が、色々うざい。
0414nobodyさん2006/10/14(土) 09:52:27ID:???
>>413
だから来なくていいからwww
誰もお前にPHP使ってくれなんて頼んだ覚えはない。
0415nobodyさん2006/10/14(土) 10:00:02ID:???
ここのスレはいい人ばかりで大好きです。
ありがとう。
04164002006/10/14(土) 10:02:19ID:???
なんか、あんま釣れないな・・・
俺の煽りも今ひとつだったし、そもそもみんなまだ寝てるか。
0417nobodyさん2006/10/14(土) 10:15:23ID:lXZlr1go
おお、うざきも
0418nobodyさん2006/10/14(土) 10:59:38ID:???
ruby使い始めたらintegerやstringやarrayが
オブジェクトだと確かに便利だと思った
PHPユーザは純OOな言語もやっておくと
PHPの良さ/悪さに理解が深まると思う

ただPHPはスタートがOO言語じゃないし
もう全部関数でいいじゃんみたいな発想から
スタートしてるからこれOOじゃねーって言っても
根本の設計思想から違うから仕方がない

インテリセンスがきかないってのは
eclipseなりZSなりのIDE使えば問題なし
あとsplでArrayObjectもIteratorも一応ある
04194002006/10/14(土) 11:31:31ID:???
eclipse + PHPプラグインでインテリ効くのは知ってるよ。
もれが言いたかったのは、クラスだったらオブジェクト変数書いて、
その後に->って書いたらメソッドの候補が出てくるでしょ?
でもクラスじゃなかったら、そうはならないから、めんどいってこと。
PHPの良いとこは、O/Rマッパー作らんで良いことかな。
selectの結果が連想配列で返ってくるのは便利。
型もないから、いらんこと気にしなくて良い。
0420nobodyさん2006/10/14(土) 12:12:02ID:???
つりじゃないやん
マジやん
おお、
0421nobodyさん2006/10/14(土) 13:06:48ID:???
PHPでもStringクラスやIntegerクラスやArrayクラスを自作すればいいんだ!

演算子が使えないけどな!
0422nobodyさん2006/10/14(土) 13:07:22ID:???
ウザイ言語を態々使いたいと思う理由が理解できん
0423nobodyさん2006/10/14(土) 13:10:31ID:???
>>419
別にそんなことを質問スレにしにこなくていいよ、っていうのが反感を買った理由なのが理解できてないみたいね。
0424nobodyさん2006/10/14(土) 13:15:25ID:mRs0+tI4
質問です。
SESSIONとしてObjectをキープしたいときって、session_startの前に
そのObjectが書かれたファイルをincludeすればいいのはわかってたんだけど、
そのObject内部にある入れ子のObjectってSESSIONとして保存されてないの??

今そんなプログラムを作ってて、Object経由で入れ子のObjectの関数呼び出したんだけど、
Call to a member function searchPage() on a non-object
とのこと。

原因または対策のわかる方いらっしゃったら教えてください
0425nobodyさん2006/10/14(土) 13:23:45ID:???
>>424
そのObjectに格納されてるObjectってのが、実体じゃなくリファレンスを格納してるんなら
当然のようにセッションには記録されないと思います。
リファレンスの本体はデータの外部にあるわけですから。
で、多くの場合、そういう構成になってるのではないでしょうか。

何とかして実体も一緒にセッションに格納されるようにすれば解決するんじゃないのかなぁ。
0426nobodyさん2006/10/14(土) 13:42:22ID:???
>>424
serialize unserialize __sleep __wakeup
0427nobodyさん2006/10/14(土) 13:43:45ID:mRs0+tI4
早速ありがとうございます。
でも実態を入れてるつもりなんですが・・・
object内部のfunctionで
function detail($post){
switch($post['dType']){
case 1:
$this -> DetailChartObjArr['a'] -> searchPage($a,$b);
break;
default:
$this -> DetailChartObjArr['a'] = new DetailChartObj();
break;
}
って感じのを作ってて、defaultのすぐ後にprint_rすると、DetailChartObjArr['a']は表示されるんだけど
case 1のあとにprint_rさせても何も表示されないし・・・

どうして?
0428nobodyさん2006/10/14(土) 14:04:52ID:???
case 1のとき、$this -> DetailChartObjArr['a']は何なの?
0429nobodyさん2006/10/14(土) 14:09:24ID:mRs0+tI4
入れ子のオブジェクトです。配列に収納してる。
でそのオブジェクトにはsearchPageというfuctionがあってそれを実行させてる。
0430nobodyさん2006/10/14(土) 14:25:01ID:???
断片的過ぎてなあ、、、
case 1の時にDetailChartObjArr['a']に
中身があるのは保証されているのかよくわからんし
0431nobodyさん2006/10/14(土) 14:39:10ID:mRs0+tI4
中身??
一応defaultのときにnewでObjectが作成されていて、
case 1でそのObject内部のFunctionが実行されてるってことは、
表現できてると思ったんだけど。
その保証されてるか否かってのが、何か気になる。
ひょっとしたらそこにオレの問題点が有るってことかな?
04324312006/10/14(土) 14:49:59ID:mRs0+tI4
ごめんなさい。
DetailChartObjArrの属性をpublicにしてSESSIONを出力してみたら、
とりあえず保存はされてるみたい。

他に何か原因が有るか考えてみます。
お騒がせしました
0433nobodyさん2006/10/14(土) 15:25:49ID:???
>>431
そのつくりだと、必ずdefaultがcase 1のまえに実行されるようには見えないから、
>中身があるのは保証されているのかよくわからんし
ということになる。
つくりを見直したほうがいい。
0434nobodyさん2006/10/14(土) 16:08:25ID:???
質問です。

ログインシステムで、一人しかログイン出来ないように
ログインの重複を拒否したいんですが、どうプログラムを書けばいいんでしょうか?
0435nobodyさん2006/10/14(土) 16:24:35ID:???
if( ! $logged){
ログイン処理
$logged=true;
}
0436nobodyさん2006/10/14(土) 17:37:45ID:???
>>435
loggedという関数がある訳ではなくて、単に変数をフラグのように扱ってるんですよね?
PHPってユーザーの数だけスクリプトが動くから、それでは意味がないと思っていたんですが
PHPの変数ってサーバで共有でしたっけ・・・
0437nobodyさん2006/10/14(土) 17:49:24ID:???
>>436
セッション使うんだよ
0438nobodyさん2006/10/14(土) 17:50:26ID:???
もしくはファイルやDBに保存
0439nobodyさん2006/10/14(土) 17:55:48ID:???
タイムアウトも忘れずに
0440nobodyさん2006/10/14(土) 18:01:22ID:???
セッションやファイルに出力して保存する場合は
ログイン時にフラグを上げ、ログアウト時にフラグを下げるんですよね?

ブラウザを落とされたときはどう判定すればいいんでしょうか・・・
JSを使えば出来そうな気がするんですが、
PHP単体ではサーバでひとつだけ動く変数やスクリプトを作る機能はないんでしょうか?
0441nobodyさん2006/10/14(土) 18:15:04ID:???
すみません、早とちりしてました。

ログイン成功時にセッションを開始して
DBに書き込んで次からのログインを防いで
ログアウト時にDBのフラグを下げる。

ブラウザを落とされたときのためにタイムアウトを設定して
時間が経てば勝手にDBのフラグを下げるようにすればいいんですね
0442nobodyさん2006/10/14(土) 18:15:41ID:???
ポート80をlistenしてソケットつなぎっぱにすれば。
しかし、他のユーザーに「今ログインしてる人がいます」を返すポートが
別に必要になる罠。
0443nobodyさん2006/10/14(土) 18:17:39ID:???
センスは大丈夫みたいだ、がんがれ>>441
0444nobodyさん2006/10/14(土) 19:18:19ID:???
2chのようにhttp〜を記述されたら、自動的にリンクされるようにしたいのですが
どのようにやれば、いいのでしょうか?
preg_matchでやろうとしても、上手くできません。
どうか教えてください。
0445nobodyさん2006/10/14(土) 19:28:10ID:???
preg_replace
0446nobodyさん2006/10/14(土) 19:59:01ID:???
>>442
なにその低脳なデーモン
0447nobodyさん2006/10/14(土) 20:21:57ID:???
>>389
$id = $_GET["id"];
なんでこれじゃダメなの?
04484412006/10/14(土) 20:28:50ID:???
ログインした瞬間にブラウザ落とすと
タイムアウトまでログイン出来ない糞仕様なPHPが出来てしまいましたorz

ログイン人数を2人以上にしなければいいだけなので

ユーザーAがログインしてる時にユーザーBがログインした場合、
ユーザーBのログイン・ページ移動を許可、ユーザーAのログインを破棄

というように、後から入ってきたユーザーを優先させればいいと思ったんですが
この場合、DBのフラグをどう扱えばいいのかわかりませんorz

登録情報はユーザーAでもユーザーBでも同じですが
ログイン時にAとBで、それぞれ別々のIDか何かをセッションで持たせ、DBに格納し
ページを移動するたびにセッションとDBを確認するという方法を考えたんですが
この方法ではIDに乱数やホスト名を持たせても被ったりして困るのですが

後からログインしたユーザーを有効にする何かいい方法を教えてもらえないでしょうか?
0449nobodyさん2006/10/14(土) 20:43:53ID:???
何のためにそんなの作りたいのかいまいち良くわからんけど
DBに「ユーザAがログインしている」ってこと書いといて
適時それをチェックして
次に違うユーザが入ったらそれを上書きするって方法じゃだめなん?
0450nobodyさん2006/10/14(土) 20:54:36ID:???
データ登録作業中にそんなことされたら、どうなるの?
0451nobodyさん2006/10/14(土) 21:20:04ID:???
>>447
Undefined index
04526262006/10/14(土) 22:05:14ID:???
>>448
漏れの参加してるプロジェクトも、そんな糞仕様ノシ
てか客の要望でそうなった。いいのかな、これで通して。
0453nobodyさん2006/10/14(土) 22:17:46ID:???
適当なファイルをファイルロックすればいいんじゃん。
ファイルロックされてたら、だれかログインしてると。
0454nobodyさん2006/10/14(土) 22:53:41ID:???
>>447 @でもつけとけ
0455nobodyさん2006/10/15(日) 01:50:31ID:hzF42wCh
/**
* @hoge hugahuga
*/
のコメントの書き方で、ファイルの作成開始日や、更新日は、
どのようなキーワードで書けばいいですか?
0456nobodyさん2006/10/15(日) 01:53:37ID:???
いみわがんね
04574552006/10/15(日) 01:57:38ID:???
例えば、@auther は作者名ですよね。そんな感じで。
0458nobodyさん2006/10/15(日) 02:05:42ID:???
auther の検索結果のうち 日本語のページ 約 180,000 件中 1 - 100 件目 (0.06 秒)
author の検索結果のうち 日本語のページ 約 30,600,000 件中 1 - 100 件目 (0.26 秒)

autherで検索したら、辞典が3番目に出てきたからびびったぜ・・・
0459nobodyさん2006/10/15(日) 02:10:59ID:???
*Header:
*File: window.C
*Auther: Akiko Wada
*Date: 1999/12/31
*EndHeader:

とかでいいんじゃね?
きまりなどない
0460nobodyさん2006/10/15(日) 03:31:19ID:???
>>455
ドキュメントの自動生成にどのツールを使うのかによる。
phpDocumentorを使うなら、該当するマニュアルを読むべし。
documentable elementでぐぐれ。
ちなみにファイル作成/更新時刻なんて手書きで書かないでしょ。
そういうのはCVSやSVNなどでキーワードをつけとく。
04614552006/10/15(日) 03:56:05ID:???
作成日や更新日に該当するキーワードは特にないってことですかね。
更新日は手ではあまり書かないですが、
作成開始日は書いておくと、わかりやすかったりするんです。

authorは今気付いてよかった。
0462nobodyさん2006/10/15(日) 04:48:19ID:???
>>461
調べてから来いよ。
決まった書き方なんて特にないし、使うツールまたはローカルルール依存。
だいたいコメントなんだから好きなこと書いときゃいいんだよ。

ついでに言っておくと、ファイル作成日時なんて普通は誰も書かないから、完全に好きにしろとしか言いようがない。
0463nobodyさん2006/10/15(日) 05:08:51ID:???
カリカリすんな
0464nobodyさん2006/10/15(日) 05:37:26ID:???
もう来なくていいですよー(*^0^*)
0465nobodyさん2006/10/15(日) 05:53:03ID:???
一般的な英語で言うなら

作成日→created
更新日→modified

だろうけど、 >>460のいうとおり、svnなりcvsなりを使ってりゃ手で書く用事はないかなあ
04664412006/10/15(日) 11:00:23ID:???
>>449
ユーザーAもユーザーBもログインした端末が違うだけで(仮想化された場合は端末も同じ)
実際は同一人物なので何を持たせればいいのか困ってます。

>>450
ショッピングカートのようなデータの競合が起こらない為の処置なので
誰かに入られるのを防ぐのではなく、
ログインユーザーが2人以上になることのみを防ぐ目的です。
それと、ブラウザを即落とした場合
タイムアウトまで待たないといけないという糞仕様を回避するためでもあります

後からログインしたユーザーをログイン状態にして
すでにログイン状態のユーザーのログインを解除する方法は
ログインごとに連番を付けるとかしかないんでしょうか…
それだとPHPが多重起動したときにすごく不具合が起こりそうで。。
0467nobodyさん2006/10/15(日) 11:28:41ID:???
君が言っているは、同じアカウントの重複ログインの話か?
それとも別アカウントの話か?
0468nobodyさん2006/10/15(日) 11:35:39ID:???
重複ログインじゃないの?
0469nobodyさん2006/10/15(日) 11:39:38ID:???
>>466
> ログインユーザーが2人以上になることのみを防ぐ目的です。
だから別アカウントの話でしょ。
誰か1人がログインしてたら他は一切ログインできない糞仕様サイト。
0470nobodyさん2006/10/15(日) 11:58:26ID:???
>>446
仕様がアレなのはおいといて、セッションIDで区別すればいいんじゃないの
04714412006/10/15(日) 12:25:10ID:???
同アカウントの重複ログインの話です。

>>469
AとBに分けたのは分かり難かったですね・・・

ユーザーAがパソコンAでログインしてる時に
ユーザーAがパソコンBでログインした場合
ユーザーAのパソコンBからのログインを許可して
ユーザーAのパソコンAのログインを破棄する仕様にしたいのです

↓にあるブログの記事と同じコトなんですが、肝心のロジック部が分からず…orz
ttp://d.hatena.ne.jp/okinaka/20060626
0472nobodyさん2006/10/15(日) 12:40:14ID:???
>>471
ちなみにパソコンAで2つウインドウを開いてそれぞれでログインするのは可?
もしくは、パソコンAでログイン→途中のリンクで新規ウインドウを開く、は可?

根本的にWEBアプリケーションで多重ログイン禁止って考え方自体が
ユーザから見て非常に使いにくいのでやめた方がいいと思うよ。
その記事にもあるが
> なお、理想としては、多重ログインでもきちんと処理できるようなアプリケーションの作りにして、
が正しいと思う。

同一PC同一ブラウザでの複数ウインドウでは支障が出ない作りになっているなら、
ログイン時に現在のセッションIDをユーザ情報に格納するようにして、異なるセッションIDで
アクセスしてきたユーザは無効としてログイン前画面に飛ばしてしまうのが手っ取り早いと思う。
0473nobodyさん2006/10/15(日) 14:07:50ID:???
>ユーザーAのパソコンBからのログインを許可して
>ユーザーAのパソコンAのログインを破棄する仕様にしたいのです

ズバリ書いてる通りにすればいいじゃん。
つまり、パソコンAでログイン中にパソコンBでログインしてきたら、
そのログイン処理と同時に、パソコンAのセッション・ファイルを破棄して
ログアウト処理もやっちゃえば解決じゃん。
0474nobodyさん2006/10/15(日) 15:24:36ID:???
多重ログインされてもいいように、ショッピングカートなんかは
できてる。
ショップなんて、商品ごとに新しいページ開けたりするし。
違うパソコンから同時にログインされても困らない仕様が今風。
それがどうなってるかなんてのは、コードを読んでみなって話。
0475nobodyさん2006/10/15(日) 16:11:59ID:???
ショッピングカートを例とすると、「購入時に商品があるかチェックする(時間差で他のユーザーが先に購入していれば買えないようにする)」ことで防げるような気がするが。

ショッピングカートでなくても考え方は同じでは?それでは解決されないのかな?
0476nobodyさん2006/10/15(日) 16:28:01ID:gxN1FoLo
http://sv2ch.baila6.jp/graph_load.cgi?pc8.2ch.net

こういうグラフをGDで描きたいのですが、これはどう描くのが効率が良いと思われるでしょうか?
多角形なのかな、と思ってやってみたのですが……。

みなさんならどう描きます?
0477nobodyさん2006/10/15(日) 16:31:50ID:???
>>476
http://www.asial.co.jp/jpgraph/
0478nobodyさん2006/10/15(日) 16:44:46ID:gxN1FoLo
>>477
そうか、GDだと座標計算から始めないといけないから大変だ……。
ありがとうございます!
0479nobodyさん2006/10/15(日) 17:28:34ID:???
>>474
>ショップなんて、商品ごとに新しいページ開けたりするし。

アホか。
普通にPHPでセッション機能を作った場合、ブラウザ側で「新しいウインドウで開く」などの
操作を行なった場合は当然新しいウインドウからも同じセッションIDがサーバに送られるっての。
だから新しいページを同一セッションにて開けるのは当たり前。ショップとか関係ない。
0480nobodyさん2006/10/15(日) 17:38:16ID:???
>>479
0481nobodyさん2006/10/15(日) 20:11:31ID:???
スレタイ通り下らない質問で申し訳ないんだが
拾ってきたスクリプトに、ある関数が定義してあって
function hoge ($fuga = "") {
 //処理がずらずら
}
って書いてあるんだけど、$fuga = ""って何?
ここって引数を書く場所だから関数を定義する時じゃなくて実行する時に与えるものじゃないの?

http://jp2.php.net/manual/ja/language.functions.php
にもそんな記述はないんだけど…
ちなみに実行しても特にエラーとかは吐かないんだけど、どういう意味か教えて下さい
0482nobodyさん2006/10/15(日) 20:23:38ID:???
http://jp2.php.net/manual/ja/functions.arguments.php
デフォルト引数値のとこ参照。

要するに本来その関数はhoge("hage");みたいに引数をひとつ受け付けて
それは関数内では$hugaに格納されるわけだが、
$hugaが指定されていない時、つまりhoge();のみだった場合は
デフォルト値として""が入る。
0483nobodyさん2006/10/15(日) 20:34:01ID:???
>>482

ごめん、その上の「ユーザー定義関数」ばっか見てたわ
ありがとう
0484nobodyさん2006/10/15(日) 20:45:55ID:???
引数値はデフォルトありのとデフォルト無しのを混在させた時の順番を指定が面倒なんだよなあ。
ともあれ頑張れ。
0485nobodyさん2006/10/15(日) 20:49:21ID:???
引数は名前付きで指定できたらいいのにねぇ
0486nobodyさん2006/10/15(日) 21:32:21ID:???
393で質問したものです。自己解決しました。
以下の例と同じような現象でした。
http://oshiete1.goo.ne.jp/kotaeru.php3?q=1649057
簡単に説明すると、serial型使った時は、sequenceテーブルが
自動的にできるので、そのテーブルにもgrant権限を与えないと
いけないというものでした。
同じ悩みの方もいるかもしれないので、報告まで。
0487nobodyさん2006/10/15(日) 23:08:02ID:???
重複ログインチェック の検索結果のうち 日本語のページ 約 203,000 件中 1 - 50 件目 (0.23 秒)

0488nobodyさん2006/10/15(日) 23:10:23ID:???
safe_mode_gidがOffのセーフモード(xrea)で利用しているにも関わらず、
異なった所有者のファイルをunlink()やtouch()できてしまいます。
http://www.php.net/manual/ja/features.safe-mode.functions.php を見ると、

>処理を行うファイル/ディレクトリが実行するスクリプトと同じUIDを有しているかどうかを確認します。
>処理を行うディレクトリが実行するスクリプトと同じ UID を有しているかどうかを確認します。

と書いているのですが、セーフモードでも異なった所有者ファイルのunlink()を
可能にするような設定が、safe_mode_gidの他にあるのでしょうか?

ディレクトリの所有者が異なる場合は、
正常に、セーフモードのエラーが出るのですが・・・
0489nobodyさん2006/10/16(月) 00:08:56ID:???
>>485
連想配列1個の引数にするんじゃダメなのか?
0490nobodyさん2006/10/16(月) 00:11:08ID:???
オーバーロードできたらよかったけど、互換性もあるしね
0491nobodyさん2006/10/16(月) 03:23:02ID:???
GD使って画像アップロード機能付きBBSを作っているんですが、
投稿した人のローカルのファイルの置き場を取得する方法ってありますか?
0492nobodyさん2006/10/16(月) 03:29:10ID:???
なぜそんなことを
0493nobodyさん2006/10/16(月) 03:33:10ID:???
>>492
投稿確認で、ここにあるファイルをうpしますよー って感じで表示したいんで
0494nobodyさん2006/10/16(月) 03:33:56ID:???
>>491
以前はブラウザの脆弱性で、JS使えば出来てしまってた気がするけど、今時は無理ではないかと。
つーか、他人に迷惑はかけるなよ。
0495nobodyさん2006/10/16(月) 03:34:30ID:???
ファイル名だけで十分だろ
パスまで出たら引く
0496nobodyさん2006/10/16(月) 03:36:15ID:???
そういやGmailでファイル添付するとき、パスが表示されてるな。
あれって、仁義的にはありなのかな?
0497nobodyさん2006/10/16(月) 03:38:41ID:???
>>494
そうなんですか 確かにいろいろとまずそうですね。

>>495
たしかにファイル名だけでいいかも・・。
0498nobodyさん2006/10/16(月) 03:39:55ID:???
mixiに画像投稿したときも確か出てたな。
まぁあれはperlだけど。
04994912006/10/16(月) 03:45:43ID:???
遅い時間に即レスthx
違う方法考えてみます。
0500nobodyさん2006/10/16(月) 04:09:39ID:???
違う方法だと?
0501nobodyさん2006/10/16(月) 04:35:00ID:???
>>488
それがフツー。
非safe_modeだと、ディレクトリに書き込み権限があれば誰でもファイルを作成・削除できる。
safe_modeだと、たとえディレクトリに書き込み権限があっても、ディレクトリのUIDが違うとファイルを作成・削除できない。
05024882006/10/16(月) 04:46:15ID:???
だからその、セーフモードで、
>処理を行うファイル/ディレクトリが実行するスクリプトと同じUIDを有しているかどうかを確認します。
とあるのに、異なった所有者のファイルを削除できてしまっている、
ということで・・・
0503nobodyさん2006/10/16(月) 05:43:51ID:???
>>496>>498
それはPHPとかPerlとか関係ない。
INPUT TYPE="file"はフォームの標準仕様。
仁義もクソも関係ない。(っていうか「仁義」って言葉の使い方間違えてるが)
0504nobodyさん2006/10/16(月) 05:58:54ID:???
これはひどい
0505nobodyさん2006/10/16(月) 06:00:15ID:???
ここのスレはいい人ばかりで大好きです。
ありがとう。
0506nobodyさん2006/10/16(月) 06:08:27ID:???
>>502
マニュアルが変だね。
でも仮に、異なった所有者のファイルを削除できないとなると、
wwwサーバはユーザディレクトリのファイルを一個も削除できない仕様になる。
safe_modeは共用サーバ用に作られた仕様だからそれはどうかと。
(suEXEC環境とか、root権限持ってる環境の話は置いといて)
0507nobodyさん2006/10/16(月) 06:13:53ID:???
>>506 訂正
> wwwサーバはユーザディレクトリのファイルを一個も削除できない仕様になる。
wwwサーバはwwwサーバ自身がユーザディレクトリ内に作ったファイルを一個も削除できない仕様になる。
0508nobodyさん2006/10/16(月) 07:27:32ID:???
PHPのマニュアルにはおかしなところが多いよ。

公式マニュアルの癖にコメント欄が付いてて

http://www.php.net/manual/ja/features.safe-mode.functions.php

この↑ページのコメント欄にも

「glob()が一覧に載っていないけど、これもsafe_modeで挙動が変わる」
「所有者が他人のディレクトリーをglobしても警告が出ない。(けど、返ってくる一覧はからっぽ)」

とかなんとか、色々書いてあるし。(所有者が他人でだれでも読めるディレクトリで、こうなるんなら問題だと思うが・・・)

>>488 が指摘している問題は、umaskかなんかで適当に解決できると思うけど。
(OSのファイルシステムのパーミッションを適切に使えれば、PHPが制限しなくてもいいような気が)
0509nobodyさん2006/10/16(月) 08:07:56ID:???
PHP6からセーフモード廃止だから、セーフモードに頼るのは止めたほうがいい
0510nobodyさん2006/10/16(月) 09:30:14ID:???
登録システムでYahooのような個人情報入力後メールが送られてきて
そのメールにあるアドレスに飛ぶことで初めて登録が成立するシステムを作りたいんですが
どのようすれば作れるのか分かりません。
PHPの処理の流れを教えて貰えないでしょうか
0511nobodyさん2006/10/16(月) 09:44:32ID:???
>>510
そのまんまじゃん。

入力されたあとに、仮登録のファイル(仮登録フラグを立てる)を作る。
メール上の個別認識できるURLに飛んできたら、仮登録を本登録に変える。

個別認識部分に、自由設定のIDとか連番を使わないようにね。
0512nobodyさん2006/10/16(月) 10:09:20ID:???
質問です。WinXPでXAMPP 1.5.4aを使ってます。
pear upgrade PEARとすると、
permission denied (delete): \xampp\php\pear.bat
permission denied (delete): \xampp\php\peardev.bat
permission denied (delete): \xampp\php\pecl.bat
ERROR: commit failed
と言われて、アップデートできません。管理者権限はあるはずなのですが…
何か解決方法はあるでしょうか?
0513nobodyさん2006/10/16(月) 12:23:22ID:???
xamppはインストール時にデフォルトの
インストールパス(\xamppだったかな)から
変更するとPEARスクリプトファイル内で
パスが噛み合ってないところが出てきた記憶がある
エラーで出てるパスに実際のファイルがなかったらそういうのかも
pear.batの中のパスとかがちゃんと合ってるか確認してみれ
0514nobodyさん2006/10/16(月) 15:53:48ID:???
変数の後ろから3文字を取得したい場合、簡単な方法はないでしょうか?
例:$a="abcdefghijk" の場合、 ijk を取得したいです。
0515nobodyさん2006/10/16(月) 15:57:38ID:???
>>514
substr($a, -3)
0516nobodyさん2006/10/16(月) 18:31:12ID:ecpKZqzB
くだらん
0517nobodyさん2006/10/16(月) 18:50:52ID:???
>>516
スレタイ嫁
0518nobodyさん2006/10/16(月) 19:04:54ID:???
また分別のない質問者か
0519nobodyさん2006/10/16(月) 19:15:03ID:4Z1hn7GP
Array(2) {
 ["Red"]    => "Apple",
 ["Yellow"] => "Banana"
}

array_pop( )って、こういう配列に対応していないのかなぁ。

ファイルポインタがEOFに当たるまで、配列に格納する処理をしているんだけど
最後のEOFまで配列に格納しちゃうから、この関数で要素を削除しようと思っていたんだけど。
05204882006/10/16(月) 19:24:41ID:???
>>506-508
マニュアルが変だいうことでがってんしました。
実装挙動は別によかったんですけど、
マニュアルと書いてあることと違うようなので、混乱してました。
0521nobodyさん2006/10/16(月) 19:33:38ID:???
>>519
$a["aaa"] = "111";
$a["bbb"] = "222";
$a[] = FALSE;
array_pop($a);
var_dump($a);
で結果が
array(2) {
["aaa"]=>
string(3) "111"
["bbb"]=>
string(3) "222"
}
になるんだけど、これじゃいかんのか?
つか、EOFまで配列に入れちゃうロジックも間抜けだと思うけどね。
0522nobodyさん2006/10/16(月) 19:39:11ID:4Z1hn7GP
>>521
ごめん、EOFなのかは分からないんだけど
[""]=> NULL
になっている。

インデックスが "" で、要素が NULL …。
array_pop( $array ) でvar_dumpすると、
「NULL」が返ってきた。

> 配列 array は、要素一つ分短くなります。
> array が空(または、配列でない)の場合、 NULL が返されます。
配列がおかしいのかな……?
0523nobodyさん2006/10/16(月) 19:51:16ID:???
>>522
いや、array_popの戻り値なんて無視でいいだろう、それ。
0524nobodyさん2006/10/16(月) 19:55:10ID:???
>>522
arrayが空か配列でない場合、戻り値にNULLが返る。
arrayの最終要素の値がNULLだった場合も当然だがNULLが返る。
0525nobodyさん2006/10/16(月) 19:57:45ID:4Z1hn7GP
な、なんだって?

arrayが空ってのは、引数にある変数の型がArrayでは無い場合のことかと思っていた。
じゃあ、こういう場合はどうしたらよいんだろう……。
0526nobodyさん2006/10/16(月) 20:00:11ID:???
>>525
いや、普通にarray_popすりゃいいじゃん。
何でわざわざ戻り値なんて見てるのよ?
0527nobodyさん2006/10/16(月) 20:06:03ID:4Z1hn7GP
>>525
えっ? 配列が返ってくるのを期待しているのに、NULLが返ってきたら
嫌だと思うでしょう。

とりあえず array_slice( $info, 0, -1 ) でイケました!
0528nobodyさん2006/10/16(月) 20:12:04ID:cRZeyQ/b
includ pathが複数あったときにユーザ関数がどのファイルで宣言されたか調べる関数はないのでしょうか?
大量のincludファイルがあったときに困っています。
includ pathをgrepしたりしていると時間がかかってしょうがないですし・・。

他人のソースを除いてみて、ユーザ関数がどの外部ファイルに書かれているかわからない場合。
どのような方法が一般的なのでしょうか。
環境としてはサーバにあるファイルを直接viでいじっているような環境なので、eclipse等の便利なツールは使えません。
0529nobodyさん2006/10/16(月) 20:13:45ID:???
>>526 はただのバカだろ
0530nobodyさん2006/10/16(月) 20:18:31ID:???
>>519
unset($array['']);のがよくね?
つーか521の言うように、EOFまわりのロジック見直したほうがいいと思うけど。

>>528
なんでgrepで時間がかかるの?
0531nobodyさん2006/10/16(月) 20:24:16ID:cRZeyQ/b
>>530
grepが遅いのはハードのせいでしょうか、大量にありますし。
あとはできるだけ鯖に負荷をかけたくないのです。
grepが一般的なのでしょうか?
0532nobodyさん2006/10/16(月) 20:32:18ID:???
viでいじれるなら普通にローカルに落として
エディタでもなんでも使って見りゃいいし
ファイル名でだいたい想像つくだろ
0533名無しさん@お腹いっぱい。2006/10/16(月) 22:18:14ID:TSmbOY92
PHP(5.0)でアップローダを作って、ファイルを受け取った時点で、namazuの
インデックス作成コマンドをsystem関数で入力するようにしたいんですけど
うまくいきません。

コマンドプロンプトでインデックスを作るとき
>mknmz -U -O C:\namazu\var\namazu\index "C:\Program Files\Apache Group
\Apache2\htdocs\dir\"
でよいのですが、
system関数では
system("mknmz -U -O C:\namazu\var\namazu\index C:\Program Files\
Apache Group\Apache2\htdocs\dir\");
とすると、mknmzまでしかコマンドを認識していないようなのです。
どなたか正しい指定の仕方をご教示願えませんか?
0534nobodyさん2006/10/16(月) 22:23:01ID:???
>>533
バックスラッシュのエスケープしてないからじゃね?
0535名無しさん@お腹いっぱい。2006/10/16(月) 22:44:40ID:TSmbOY92
namazuの設定ファイルでの検索対象ファイルのpathを使い
"/[Cc]\\|/Program Files/Apache Group/Apache2/htdocs/dir/"
としてみたのですが、同じ結果になってしまいました。。。
0536nobodyさん2006/10/16(月) 22:55:31ID:???
> system関数では
> system("mknmz -U -O C:\namazu\var\namazu\index C:\Program Files\
> Apache Group\Apache2\htdocs\dir\");
> とすると

WindowsのPHPはよくしらんのだけど、
これだと「C:\Program」で切れちゃうんでは?

$cmd = 'mknmz -U -O C:\namazu\var\namazu\index "C:\Program Files\
Apache Group\Apache2\htdocs\dir\"';
system($cmd);

としてもだめなの?
0537nobodyさん2006/10/16(月) 23:04:13ID:???
>>527
array_popの戻り値は最初から配列じゃないだろ。
やりたいことはarrayの最後の要素を削りたいって話であって
削った内容がなんであるかなんて気にする必要ないじゃん。
>>529
おまえも分かってない。
0538名無しさん@お腹いっぱい。2006/10/16(月) 23:19:05ID:TSmbOY92
>536
ご指摘の通りでした。ありがとうございました。
05395122006/10/17(火) 01:52:14ID:???
>>513
インストールパスに対するヒントをくださってありがとうございます。

結果的には、XAMPPのインストーラー版をダウンロードしなおし、
デフォルトのパスでインストールしたところ、うまくPEARが動くようになりました。
0540nobodyさん2006/10/17(火) 02:52:05ID:???
フレームワークやライブラリというものは、
他の方が書いた、よく使うクラスやメソッドという認識であってますか?
PHPのフレームワークを使ってみようと思うのですが、
誰でも簡単に使えるものなんでしょうか?
Mapleというものをダウンロードして使ってみよウと思ったのですが、
中にPHPのファイルがたくさんあって、どうしたらいいのかわからなくて・・・
あとPEARはライブラリなんでしょうか?
0541nobodyさん2006/10/17(火) 05:02:33ID:???
PHPコードに潜む脆弱性をどうチェックすればいいのかわからないのですが、
SQLインジェクション攻撃の仕方とか、XSS攻撃の仕方とか、
詳しく解説されてるサイトなんてないでしょうか?
もちろん悪用はせず、自鯖で自分が攻撃者になってチェックをするつもりです。
0542nobodyさん2006/10/17(火) 06:58:24ID:lz+2vZ2T
>>541
サイトも書籍も大量にあります。
0543nobodyさん2006/10/17(火) 07:03:55ID:???
>>541
とりあえず以下のページは全て読んで理解しとけ。
http://www.asahi-net.or.jp/~wv7y-kmr/memo/php_security.html
05445412006/10/17(火) 07:20:30ID:???
>>543
これは素晴らしいサイトを紹介して下さりありがとうございます。
大変参考になります。
これから早速熟読してまいります。
0545nobodyさん2006/10/17(火) 08:21:00ID:???
>>540
こちらへ。
【PHP】フレームワークについて語るスレ5【総合】
http://pc8.2ch.net/test/read.cgi/php/1159579507/
0546nobodyさん2006/10/17(火) 10:21:18ID:???
メールファイルを解体してデータベースに挿入したいんですが、
何か良いpearライブラリとかないでしょうか?

逆(要素からヘッダー作成)なら見つけたんですが、
求めるもの(メールファイルから各種要素、From:など取得)
が見つかりません。

自作でやってるんですが、
HTMLメールの処理とか添付ファイルがついてる場合の処理とかが
非常にしんどいです。
0547nobodyさん2006/10/17(火) 10:26:09ID:???
>>546
PEARのMail_mimeDecode
0548nobodyさん2006/10/17(火) 11:33:27ID:G6d4HSq5
お世話になります。

open_basedir Race Condition Vulnerability
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2006-5178

これに対するパッチって{公式|非公式}に出てますでしょうか?
0549nobodyさん2006/10/17(火) 14:09:36ID:???
特定のRSSファイルをローカルに保存したいのですが。
0550nobodyさん2006/10/17(火) 14:30:35ID:???
>>549
そうですか
0551nobodyさん2006/10/17(火) 14:40:05ID:???
変数$aがある複数の値(abc, def, ghi)でないと・・・ていう処理を
if文で単調に書く以外にシンプルでよい方法はないでしょうか?

if($a == "abc" || $b == "def" || $c="ghi"){・・・}
より見やすい書き方ないでしょうか。
上ならまだいいんですが、
「ある複数の値」の数が増えてしまうとかなりだるいことになります
0552nobodyさん2006/10/17(火) 14:45:13ID:???
配列にしてforeachかな
0553nobodyさん2006/10/17(火) 14:49:33ID:???
copyで簡単にできました。
0554nobodyさん2006/10/17(火) 15:51:36ID:lz+2vZ2T
>>551
配列使え
つforeach
つin_array
つpreg_grep
好きなので。
0555nobodyさん2006/10/17(火) 16:22:32ID:???
フォームの submitボタン(type="submit")の値基準で
switch()を使って分岐をしようと思ったんですが、
submit ボタンの値って、ボタンの表示名になってしまいますよね。
あれ回避方法ないんでしょうか?

submitボタンの値ではなく、
submitボタンの名前で分岐をする必要が出て困ってます。
0556nobodyさん2006/10/17(火) 16:44:20ID:???
IEでenterで入力した場合にも送られないので
submitの値は使わない
がFA
0557nobodyさん2006/10/17(火) 16:51:11ID:???
うむ
0558nobodyさん2006/10/17(火) 17:06:57ID:???
じゃあ、同一フォーム内のデータを使って
押したボタン毎に複数の処理させたいときはどうすんの?
0559nobodyさん2006/10/17(火) 17:10:39ID:???
submitのnameの値変えるかvalueの値を変える
05605592006/10/17(火) 17:11:22ID:???
よく考えたら無理かも
0561nobodyさん2006/10/17(火) 17:11:53ID:???
>>555>>558
このスレ、または超初心者用くだすれを隈なく読んでから質問すること。
0562nobodyさん2006/10/17(火) 17:13:18ID:???
>>559>>555→ループ
0563nobodyさん2006/10/17(火) 17:14:28ID:???
>>556
submit値が無かったら無視かデフォルト処理、でいいじゃん。
>>555
何が困るのか分からない。nameの有無で判定すればよろしい。
0564nobodyさん2006/10/17(火) 17:22:22ID:lz+2vZ2T
radioなどで選択させればおk。サブミット押すのもラジオ選択するのも変わらんべ。
0565nobodyさん2006/10/17(火) 18:12:30ID:???
だから過去レスに答えが書いてあるってば。
0566nobodyさん2006/10/17(火) 18:56:29ID:Q9ZQ0FiR
"select CULLUM from TABLE where user_no = {$ad} and number & {$_SESSION['ip']}";
というSQLがPHPの中にあって分からないんですが。
& はどんな意味があるんでしょうか?
phpでなかったらごめんなさい、sqlの構文かな・・
0567名無しさん@お腹いっぱい。2006/10/17(火) 19:04:11ID:kJ5BDveO
>533での質問に関連してもう1つお聞きしたいのですが。
533の問題は解決したのですが、今度は
PHPで
$command = 'mknmz -U -O C:\namazu\var\namazu\index "C:\Program Files
\Apache Group\Apache2\htdocs\インデックス"';
system($command);
としたときはうまくいくのですが、
$index ="インデックス";
$command = 'mknmz -U -O C:\namazu\var\namazu\index "C:\Program Files
\Apache Group\Apache2\htdocs\$index"'; または\\index,\${index}
system($command);
などとすると、
"C:\Program Files\・・・\htdocs\$index" 
という具合に変数のままになってしまいます。
どうか正しい指定の仕方を教えていただけないでしょうか?

0568nobodyさん2006/10/17(火) 19:07:42ID:???
>>567
'〜' の間は変数展開はされない。PHPの基礎からやり直してきて。
0569nobodyさん2006/10/17(火) 19:08:55ID:???
'で囲んでる変数は展開しないから連結つかえばおk
$command = 'mknmz -U -O C:\namazu\var\namazu\index "C:\Program Files
\Apache Group\Apache2\htdocs\'.$index.'"';
0570nobodyさん2006/10/17(火) 19:10:01ID:???
マニュアル↓

http://www.php.net/manual/ja/language.types.string.php#language.types.string.parsing

$cmd = sprintf('mknmz -U -O C:\namazu\var\namazu\index "C:\Program Files
\Apache Group\Apache2\htdocs\%s"', $index);

とか

$command = 'mknmz -U -O C:\namazu\var\namazu\index "C:\Program Files
\Apache Group\Apache2\htdocs\'.$index.'"';

とかすればいいんじゃないかな
0571nobodyさん2006/10/17(火) 19:17:07ID:???
>>567
$command = "mknmz -U -O C:\namazu\var\namazu\index \"C:\Program Files
\Apache Group\Apache2\htdocs\$index\"";
とする手もあり。"〜" で括って途中の " は \" でエスケープ。
05725712006/10/17(火) 19:18:58ID:???
あ、>>571のやり方の場合は
$command = "mknmz -U -O C:\\namazu\\var\\namazu\\index \"C:\Program Files
\\Apache Group\\Apache2\\htdocs\\$index\"";
って途中の \ も全部エスケープしないといかんかも。
0573nobodyさん2006/10/17(火) 19:20:52ID:???
そうだね
0574nobodyさん2006/10/17(火) 19:29:44ID:CZNsLBp9
PHPで画像内の文字を読みたいんですが
何かいいクラスライブラリはないですかね。

phpocrを試してみたんですが学習型の様で…
0575nobodyさん2006/10/17(火) 20:12:30ID:???
5つもレスついた>>567は勝ち組
0576名無しさん@お腹いっぱい。2006/10/17(火) 20:36:50ID:kJ5BDveO
>567ですが、みなさまに教えていただいた方法を試してみましたが、570さん
の1つ目の方法以外はなぜかコマンドが通りませんでした。
それと、
$cmd = sprintf('mknmz -U -O C:\namazu\var\namazu\index "C:\Program Files
\Apache Group\Apache2\htdocs\%s"', $index);
に続けて、変数に日本語を格納して、$indexの下にもう1階層ディレクトリを
指定したいのですが(\htdocs\$index\$index2)、どのようにすれば良いのでしょうか?

0577nobodyさん2006/10/17(火) 20:48:10ID:???
$cmd = sprintf('mknmz -U -O C:\namazu\var\namazu\index "C:\Program Files
\Apache Group\Apache2\htdocs\%s\%s"', $index, $index2);

こうしたいっていう意味かな?
0578nobodyさん2006/10/17(火) 21:21:42ID:???
>>576
せっかくヒントや関数を教えてもらったんだから
1度はその内容をマニュアルで確認してみようよ。
言われたとおりにしか書けないなんてちょっと最低だよ?
0579nobodyさん2006/10/17(火) 21:23:26ID:???
>>576
考える気がないなら質問すんなタコが
0580nobodyさん2006/10/17(火) 21:27:46ID:rN63+8fU
たしかにいくら下スレとはいえ、なめてるな。
自習して、悩みに悩んだ上で聞けって話だ。
0581名無しさん@お腹いっぱい。2006/10/17(火) 21:35:58ID:kJ5BDveO
文字列指定のところで、時間を費やしてもなかなかうまくいかなか
ったので、ついつい見直しを怠ったり、すぐに質問をするといったことを
してしまいました。もうしわけないです。

05825672006/10/17(火) 23:19:30ID:???
>>578-580
うるせーバカ
0583nobodyさん2006/10/17(火) 23:24:34ID:???
遅い
0584nobodyさん2006/10/17(火) 23:30:18ID:???
>>580
自習して悩みに悩んだ上で聞くような人・・
それは、質問文書くためにあちこち検索して調べてたら自己解決しちゃうような人ですね。
0585名無しさん@お腹いっぱい。2006/10/17(火) 23:45:01ID:kJ5BDveO
>582
進まないので焦って軽薄なことをしましたが、そんな逆ギレくん
ではありません。
0586nobodyさん2006/10/18(水) 01:48:15ID:???
質問させてください。
入力された値が正しいURLじゃなかったらエラーを出したいのですがどうしたらいいでしょうか?

ちなみに
preg_match('/^(https?|ftp)(:\/\/[-_.!~*\'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)$/', $url)
これだとうまくいきませんでした。

よろしくお願いします。
0587nobodyさん2006/10/18(水) 01:58:58ID:???
>>586
これでどういう場合にうまくいかなかった?
0588nobodyさん2006/10/18(水) 02:55:36ID:???
>>586
RFCに定められたとおりに全部を完全にやるのはかなり大変。
http://www.din.or.jp/~ohzaki/perl.htm#httpURL
http://www.din.or.jp/~ohzaki/perl.htm#ftpURL

ある程度妥協が必要。
0589nobodyさん2006/10/18(水) 03:12:59ID:???
>>588
>>586の正規表現はそのページにある「実用版」の内容だよ。

> さて,ここまで長々と書いてきましたが,正確に正規表現を書くことをあきらめて,
> もっと簡単でいいやという人のための http URL の正規表現が以下になります.
> s?https?://[-_.!~*'()a-zA-Z0-9;/?:@&=+$,%#]+
これ↑
0590nobodyさん2006/10/18(水) 12:52:03ID:kRDgnrct
WinXPにphp4.4.4をインストールしたのですがphp.iniに
Mysqlを使うために設定するextensionにdllが載っておりませんでした。
このバージョンでは使えないのでしょうか?
また使う方法があればご教授ねがいます。
0591nobodyさん2006/10/18(水) 14:27:55ID:???
>>586
そもそも『正しいURL』の定義は何だ?
0592nobodyさん2006/10/18(水) 14:38:49ID:???
>>586
()をエスケープしてないから正規表現エンジンが混乱している
(*****()****)
0593nobodyさん2006/10/18(水) 15:20:36ID:???
>>592
マジで? (**[**()**]**)なのに?

俺これでURL自動リンク作って普通に動いてるけど…
/s?https?:\/\/[-_.!~*'()a-zA-Z0-9;\/?:\@&=+\$,%#]+/
0594nobodyさん2006/10/18(水) 15:27:56ID:???
>>592
             . ィ
.._ .......、._    _ /:/l!
 :~""''.>゙' "~ ,、、''‐'、|         _
゙、'、::::::ノ:::::::_,.-=.  _〜:、         /_.}'':,
 ``、/:::::::::__....,._ `゙'Y' _.ェ-、....._ /_゙''i゙ノ、ノ
 ,.--l‐''"~..-_'.x-='"゙ー 、`'-、 ,:'  ノ゙ノブ
"   .!-'",/  `'-‐'') /\ `/ でノ-〈
 .-''~ >'゙::    ‐'"゙./  ヽ.,'   ~ / 
   //:::::       ',    /    ,:'゙
0595nobodyさん2006/10/18(水) 15:34:10ID:???
空メールをトリガーにして処理をしています。

その処理の中ではstdinを読んで
メールの送信元など、メールの内容を把握しようと思っています。

・送信元、送信先の取得
・メールのタイトルや本文中に”ほげほげ”の文字が含まれているかチェック

等をやりたいのですが、どのように記述すればよろしいでしょうか?

よろしくお願いします。
0596軟式PHP2006/10/18(水) 15:45:18ID:???
>>594
ワロタ
0597nobodyさん2006/10/18(水) 15:56:47ID:???
>>595
「処理をしています」何の処理をしているんでつか?
どこまで出来ていて、何が判らないのでつか?

>・送信元、送信先の取得
>・メールのタイトルや本文中に”ほげほげ”の文字が含まれているかチェック

ソレだけだったら、どちらも簡単な正規表現で可能でつ。
0598nobodyさん2006/10/18(水) 16:32:55ID:???
>>595
>>547
0599nobodyさん2006/10/18(水) 17:30:55ID:???
ほげほげがある時点で、空メールじゃないじゃん
0600nobodyさん2006/10/18(水) 19:06:45ID:kRDgnrct
requireはphpファイルしかいけないのでしょうか?
htmlファイルも読み込んで問題ありますでしょうか?
0601nobodyさん2006/10/18(水) 19:11:53ID:???
>>600
ない
06026002006/10/18(水) 19:13:16ID:kRDgnrct
ありがとうございます。おかげさまで解決できました。
0603nobodyさん2006/10/18(水) 19:30:48ID:kRDgnrct
たびたびで失礼します。requireしたphpファイルなんですが、ファイル名をアドレスバーに直で
入力するとアクセスされてしまいます。
htaccess以外にこの行為を制限したいのですが何かヒントをいただけませんでしょうか?
ためしてみたのがPOSTとGET、リファラチェックでやってみましたが、
requireが読み込みませんでした。
0604nobodyさん2006/10/18(水) 19:43:16ID:???
アクセスされたくないならドキュメントルート外に置けば?
0605nobodyさん2006/10/18(水) 19:45:27ID:???
>>603
document_root より上に置く
0606nobodyさん2006/10/18(水) 20:03:09ID:V2QN5Ppq
PHPを制すれば、女も金もウハウハになると実感しました
PHPを学べるPC学校教えて下さい(神奈川県内、できれば横浜市内)
0607nobodyさん2006/10/18(水) 20:07:49ID:???
$_SERVERのscript_nameとかpathとか取って
自分と名前が違ったら拒否するとかいうのもありかね?
0608nobodyさん2006/10/18(水) 20:15:32ID:???
>>607
webserver依存だし微妙
0609nobodyさん2006/10/18(水) 20:19:30ID:GXIHNsCX
画像アップローダーを作成しているのですが
画像をリサイズする際にJPEG, PNGは正常にリサイズ出来ますが
アニメGIFのリサイズはどの様に行えばよいでしょうか?

色々なクラスライブラリを使用してみましたが
アニメGIFをリサイズするとリサイズはされますが静止画のGIF画像
に変換されてしまいます。
0610nobodyさん2006/10/18(水) 20:25:51ID:???
>>607訂正
「一緒だったら〜」かな
06116062006/10/18(水) 20:56:19ID:V2QN5Ppq
KENかWAVEにしよ
でも、授業料たけーーーーーーーーーーーーーー
アルバイトして貯めないと
PHP学ぶのに20万〜40万ぐらいだった、どこも
0612nobodyさん2006/10/18(水) 21:14:48ID:???
俺はPHPはマニュアル読むだけで行けたなあ…
ずぶの素人さんでも良い本が1冊2冊あればそれで何とかなると思うが。
0613nobodyさん2006/10/18(水) 21:32:58ID:???
プログラミングの基礎があればマニュアルとGoogleでどうにかなるけど、
基礎がないとphp-usersの某氏のようになる
06146062006/10/18(水) 21:36:20ID:V2QN5Ppq
>>612
まじかよ

ホームページ作成数30個ぐらい
ブログ作成数5個ぐらい
動画編集、画像編集、めちゃくちゃ経験あり
2ちゃん暦プロ並ちょい下

これぐらいのPC暦だが、自宅サーバ、CGI、PHP、さっぱりわからない
0615nobodyさん2006/10/18(水) 21:39:12ID:???
参考までにどんなところが分からないのか教えてくれ
0616nobodyさん2006/10/18(水) 21:43:16ID:???
僕はコードをどのように書くと、いかに効率良く、そして最終的に
どんなふうに動作するのかが予想できない。
だから設計するときも、まるで数学の方程式を解いているみたいだ。

まあ趣味(自分のウェブサイトで使う)でやっている程度だし、コーディングが気持悪くても
人にソースはみせないし、動けばいいかな、と。
06176062006/10/18(水) 22:11:33ID:V2QN5Ppq
>>615
今、話題かどうかわからないけど、俺の中では超話題の
ブログのRSS配信、いろいろ探してみたり検索してみたけど
ジャバスプリクト?っていうのか、あれで他人のブログのRSSを取得して
自分のブログで配信するのは、できるんだが、1つ欠点がある

続く・・・
0618nobodyさん2006/10/18(水) 22:15:42ID:???
君の場合PHPよりもまず日本語が
06196062006/10/18(水) 22:15:58ID:V2QN5Ppq
続いた・・・

ジャバスプリクトでやると、検索エンジンから検索されない
例)他人のブログが「ゆうこりんのスカトロプレイ激写」
という記事を更新したとする
俺のブログでも、どこどこのサイトが何時何分に「ゆうこりんのスカトロプレイ激写」
という記事が投稿されましたと表示される
のだが・・・・・・・・・・・・・・・・
それが、検索エンジンでは引っかからないんだ

続く・・・・・・・・・・・
06206062006/10/18(水) 22:20:02ID:V2QN5Ppq
続いた・・・・・・・・・・・・・

そこで俺は調べまくった、、、、、何日もかけてというか、1日で調べた
ジャバスプリクトだと、検索されないが、、、
PHPだと検索せれるということなんだ、
例)他人のブログが「ゆうこりんのスカトロプレイ激写」
という記事を更新したとする
俺のブログでも、どこどこのサイトが何時何分に「ゆうこりんのスカトロプレイ激写」
という記事が投稿されましたと表示される

ここまでは同じだが、ここからがすごい
ヤフーやグーグルで「ゆうこりんのスカトロプレイ激写」というキーワードが
俺のブログから検索されるのだ
なので、俺はRSS配信のPHP版の無料ソフトやら、有料ソフトを探しまくった

続く・・・・
0621nobodyさん2006/10/18(水) 22:20:15ID:???
わざわざjsで取得して公開する意味が解らん。
0622Name Not Found2006/10/18(水) 22:22:27ID:????2BP(0)
RSS PINGのホストをやりたい
と言うことか?
やり方は知らん、興味も無い
06236062006/10/18(水) 22:25:56ID:V2QN5Ppq
探しまくったのだが、有料ソフトは0だった
無料ソフトは3つあったが、1つは海外ので、英語不明であきらめた
そして、残りの2つから1つを選びだした

そのソフト名は
ごちゃまぜRSSリーダーforPHP(UNIX / インターネット&通信)
http://www.vector.co.jp/soft/unix/net/se334908.html
ってやつだ、ダウンロードしてみた
拡張子が「.dat」なんだこれ?と思ったが、グーグルで検索したら
プログラムを選択して開くでワードパットやら、メモ帳で開けることがわかった
俺にとってはかなりの成長だ、そこに、取得したいRSSのアドレスを打ち込んだ
ここまでは、順調だったのだが
とんでもないことがおきた

続く・・・・・・・・・・・・・・・・
0624nobodyさん2006/10/18(水) 22:28:13ID:???
荒らしか?うぜぇ・・・
06256062006/10/18(水) 22:30:03ID:V2QN5Ppq
続いた・・・・・

もう1つファイルがある
「.php]と書いてある
なんじゃこれは? これをフォルダごとアップロードしてとか書いてあるけど
フォ、フォルダごとアップロードって聞いたことないぞ?
どうするんだ? phpさっぱりわからんということで、、、
この板にたどり着いたというわけだ

終わった・・・・・・・・・・・・・・
0626nobodyさん2006/10/18(水) 22:32:47ID:???
ジャバスプリクト (sprict?) ってのが、ネタなのか素なのか
わからないけど面白い。
0627nobodyさん2006/10/18(水) 22:34:40ID:???
アーティストの名前みたいだなジャバスプリクト
0628nobodyさん2006/10/18(水) 22:42:17ID:???
ECMA262って書けばTypoしようがないのにね
0629名無しさん@お腹いっぱい。2006/10/18(水) 22:54:37ID:hZ8NwhMG
以下のようにして、htmlを生成しているのですが、
$documents1="500文字程の文章";
$documents2 = fopen("$filename.html","w");
fwrite($documents2,"<html><head></head><body>$documents1</body></html>");
fclose($documents2);

でも、これだと少々見にくいので、
htmlタグの部分を
<html><head></head><body><font size="4">$documents1</font></body></html>
といったふうにすると、どうも意図したとおりになりません。
こういった場合、どのようにすれば、レイアウトを整えられるでしょうか?
お教えいただきたいのですが。。。
0630nobodyさん2006/10/18(水) 22:56:00ID:X4KrD1CY
'2006-10-18 00:00:00' のような 'YYYY-mm-dd H:i:s' フォーマットの時刻を
UNIXタイムに変換するのはどの関数で出来るのでしょうか?

time()とかdate()も参照してみたのですが。
恐縮ですがお願いします。
0631nobodyさん2006/10/18(水) 22:58:25ID:???
意図する結果と実際の結果を言ってくれないと分かるわけないと思うんだけど。
てかそれだとパースエラー出る気がするけど
0632nobodyさん2006/10/18(水) 23:00:32ID:???
>>630
strtotime
0633nobodyさん2006/10/18(水) 23:01:19ID:???
>>630
パーツで分けてからmktime
0634nobodyさん2006/10/18(水) 23:01:43ID:???
>>629
\"にした?
0635nobodyさん2006/10/18(水) 23:05:59ID:???
>>614
> ホームページ作成数30個ぐらい
> ブログ作成数5個ぐらい
> 動画編集、画像編集、めちゃくちゃ経験あり
> 2ちゃん暦プロ並ちょい下

茶ぁ吹いた。

こんなこと言ったら何だけど、
君はインターネットそものの知識がきょうびの小学生以下だから
まずはその辺のパソコン教室のインターネット初級コースからやり直した方がいい。

ホームページとかブログとか自分では分かってるつもりかも知れんが
それこっちから見ると全然分かってないレベルだから。
この様子じゃあ動画とか画像の編集もたかが知れてるわ。
PHPとかCGIとか言い出すのも15年は早い。
あと2chもてんで理解できてねぇから最低でもあと半年ほどロムれ。
0636nobodyさん2006/10/18(水) 23:07:37ID:???
ネタになんとかクマースプリクト
0637nobodyさん2006/10/18(水) 23:09:44ID:???
>>630
strtotimeでできるか分かんね
フォーマット決まってるんならstrptimeのほうがいいのかも
0638nobodyさん2006/10/18(水) 23:19:35ID:X4KrD1CY
>>632
できました。ありがとうございました!
06396062006/10/18(水) 23:23:59ID:V2QN5Ppq
>>635
いや、インタネット初級コースなんか、全然だめ
たぶん、無料パソコンスクールとかで
じいちゃん、ばあちゃんとかを教えてる先生より
俺のほうが、たぶん詳しい

友達で俺にPCスキル勝つやつはいないよ
ただあれだ、、、この板にいるやつからみたら
俺は子供同然、赤ちゃん以下のスキルしかないよ
06406062006/10/18(水) 23:25:56ID:V2QN5Ppq
あと

>あと2chもてんで理解できてねぇから最低でもあと半年ほどロムれ。

大丈夫だ、俺はニートで1日15時間ぐらい2ちゃんにいるから
今日はFFのバージョンアップだから、そっちの情報集めと睡眠とらないといけないから
あまり2ちゃんにいれないけど
0641名無しさん@お腹いっぱい。2006/10/18(水) 23:30:03ID:hZ8NwhMG
>634
「\"」にした? ・・・すいません。未熟者なので。
どういった意味でしょうか?
0642nobodyさん2006/10/18(水) 23:31:22ID:???
おまえ面白いからおまえ専用スレ立ててそこでやれ
06436062006/10/18(水) 23:33:14ID:V2QN5Ppq
とりあえずだ、
すごいやつは、本とかネットで調べて
PHP理解出来るやつは、すごいと思うけど
俺の頭脳じゃ、無理だわ
これやりたいと思ったら、どうしてもやらないとダメなんだわ
好奇心旺盛なのは、まぁいいことだ
なので、しょうがないから、アルバイトして金貯めて
PHPの学校いくようにするは、30万ぐらいだけど、しょうがない
0644nobodyさん2006/10/18(水) 23:36:01ID:???
>>641
>>631
0645Name Not Found2006/10/18(水) 23:36:36ID:????2BP(0)
>>641
fwrite($documents2,"<html><head></head><body><font size=\"4\">$documents1</font></body></html>");
こう言う風になってるかって事

君の説明はどう言う風に出力したいのかよく分からない。
期待している結果はどんな内容なの?
0646nobodyさん2006/10/18(水) 23:39:27ID:???
>>639
よし分かった、バイトでばあちゃんとかを教えてた俺がはっきり言ってやろう。
お前は俺の生徒だったじいちゃんばあちゃんの足下にも及ばん。
0647名無しさん@お腹いっぱい。2006/10/19(木) 00:22:01ID:hyorX1t2
>645
具体性に欠ける質問をしてすいません。
それと、教えていただいた方法でエラーにならず、文字を大きくして
htmlに書き出すことができました。ありがとうございます。
0648nobodyさん2006/10/19(木) 00:25:43ID:???
>>640
とりあえず数字を半角で打てるようになろうな
0649nobodyさん2006/10/19(木) 00:30:59ID:???
個性を潰すような押し付け教育はいくない
0650nobodyさん2006/10/19(木) 00:33:08ID:???
それを学校の先生にいえ
0651nobodyさん2006/10/19(木) 04:10:40ID:???
質問させて下さい。
WinXP Sp2
Apache2.054
PHP 5.1.5
上記の環境で運用しています。

PHPのfunctionの呼び出し行を取得する関数や、仕組みのようなものは
ありますでしょうか?
少し大きめのプログラムで同じfunctionを多くの場所から呼び出しているのですが
特定の条件時にそのfunctionを呼び出している行を知りたいのです。

デバック方法や、デバック関数等で検索したのですが、開発環境ソフトのインストールし
ブレークポイントを設定するような方法以外見つかりませんでした。
もしよろしければお力添えをして頂けませんでしょうか。
よろしくお願い致します。
0652nobodyさん2006/10/19(木) 04:33:30ID:???
夜分にすみません。リモートサーバにあるファイルのHTTPレスポンスヘッダを
取得するにはどうしたらいいでしょうか? モジュール版のApacheじゃないので
apache_ほにゃらにゃ関数は使えません。ご教示お願いいたします。
0653nobodyさん2006/10/19(木) 04:40:54ID:???
>>651
debug_backtrace()をその関数に仕込んどけばいいんじゃないの?
戻り値の配列のlineキーの値が呼び出し元の行数になるよ。
<?php
function a() {
$debug = debug_backtrace();
echo $debug[0]['line']."\n";
}
a();
a();
a();
?>

結果:
6
7
8
0654nobodyさん2006/10/19(木) 04:41:10ID:???
>>651
各functionの直後にechoでユニークな値を出すようにしとく。

●例
function hoge() { 〜〜〜 };
hoge();
echo "a";
hoge();
echo "b";
hoge();
echo "c";
0655nobodyさん2006/10/19(木) 04:52:38ID:???
>>654
本気か嫌がらせか、わからんレスだ
0656nobodyさん2006/10/19(木) 04:57:11ID:???
定数__LINE__があるやん?
0657nobodyさん2006/10/19(木) 05:51:37ID:???
>>656
それ、関数側に仕込むと関数の定義位置が出ちゃうだろ。
0658nobodyさん2006/10/19(木) 06:23:08ID:zWYhlPAk
ソースじゃなくてほんと下質かもしれない質問ですが、
PHP型のブログってどういうメリット・特徴があるのでしょうか?
機能的な面じゃなくて「なぜPHPなのか?」と言うことが気になってきました。

と言うのも自分でPHPを使い、簡易ブログを作っているのですが、
最近MTのフリー版を落として設置したところ、ページの生成など
CGI型の方が向いているのではないか?っと思い、悩んでいる次第です。
0659nobodyさん2006/10/19(木) 06:29:14ID:???
引数で渡せって話かな。
スタックトレースならAdvanced PHP Debuggerってのがある。
0660nobodyさん2006/10/19(木) 06:32:57ID:???
>>658
PHP型とCGI型の定義が不明なので、
PHPをCGIモードで使えば〜としか申し上げられない次第です。
0661nobodyさん2006/10/19(木) 06:33:47ID:???
CGI型とPHP型って一体何よ。
0662nobodyさん2006/10/19(木) 06:38:05ID:???
>>652
CURLを-Iオプション付けて呼び出せば?
0663nobodyさん2006/10/19(木) 06:50:02ID:???
>>658
?PHPとPerlの比較の話をしてるの??
ちなみにPHPのCGIっていうのがあるのは知ってる?
あと、CGIでないPerlっていうのがあるのも。
0664nobodyさん2006/10/19(木) 07:06:07ID:???
>>655
え? 本気だけど、これで何か問題ある??
あくまでデバッグ用に任意の行を特定するだけだったら、
>>654で示した方法が一番簡単だと思うが・・・。(要するにechoデバッグの一種)

>>651は「特定の条件時」と言っているから、echoを差し込むべき数も少ないだろうし。
0665nobodyさん2006/10/19(木) 07:12:55ID:???
突っ込みどころ満載なんだが、とりあえず・・>>653が簡単だろ!
0666nobodyさん2006/10/19(木) 07:16:42ID:2ix5xPYO
「志」の入ってる文字列の検索時にヒットしないのでPOSTされた文字をダンプすると
「獅、」に化けてました。。
DBに入れると正しく「志」で反映されてる事は確認しました。
mb_regex_encoding('SJIS-win');
mb_internal_encoding('SJIS-win');
mb_http_output('pass');
と設定してます。

念のためにPOSTされたものは全て
mb_convert_variables('SJIS-win', 'UTF-8,eucJP-win,SJIS-win', $_POST);
で'SJIS-win'に変換してます。

3日ハマってます。。解決方法あれば教えてください。
宜しくお願い致します。
0667nobodyさん2006/10/19(木) 07:18:53ID:???
あと半年くらいはまれば分かるんじゃないかな
0668nobodyさん2006/10/19(木) 08:11:06ID:???
>>664
>>651の言っている「特定の条件時」ってのは、原因不明の症状が出てるから
それが発生したときにどっから呼び出されてるのか知りたい、って話かと。
だからechoを差し込むべき場所は全く特定されておらず、呼び出し元全部に
仕込まないといけなくて、それがあまりにも多いもんだから困ってる、という話でしょ。
0669nobodyさん2006/10/19(木) 08:20:59ID:JzmElHR8
文字コードについて質問です。
Apache 2.2.3
MySQL 5.0.24a
PHP 5.1.6
phpMyAdmin 2.9.0.1
で開発してます。
phpMyAdminで追加すると日本語が文字化けするのですがどこを設定すればいいでしょうか。
0670nobodyさん2006/10/19(木) 08:31:47ID:???
>>658
本当にPHPでBlogを作れるレベルならそんな質問しないよ。

PHP型っていうのが単にPHPをさして、
CGI型というのがPerlをさしていると前提して話を進める。
(他の人が指摘してるのは、PHPもCGIとして動作できるということ)

PerlもPHPも同じプログラム言語。
PHPはWeb特化という位置づけだけど、基本的にできることはほぼ同じ。
MovableTypeが"たまたま"Perlで書かれているだけで、
作ろうと思えば、他の言語でも(もちろんPHPでも)作ることはできる。
0671nobodyさん2006/10/19(木) 09:30:38ID:???
できるできないの話だとそれこそsh/CGIとかでもできるって話になっちゃうな。
問題は「向いてるか向いていないか」だが、そもそも>>658が何を根拠に
CGI(Perl?)の方が向いてるなどと思ったか、だと思う。

個人的意見で言えば特にPHPでやるメリットや特徴があるわけではないが、
Perlと比べて遜色があるわけでもなく、どっちも同じ程度じゃないの?ってとこ。
別にblog程度でPHP/Perlに向き不向きがあるとは思えんなー。
ページ生成とかは出力バッファの取り込みができるPHPの方が楽な面はあるかな。
06726582006/10/19(木) 09:55:25ID:???
>>670-671
向いているか向いていないかを前提とした質問です。
あと、CGI=Perlです。CGIはPerl以外でもあるのは知ってますが、とりあえず。

それでなぜ>>658のような質問をしたのかというと、MTの場合、表示ページを
HTMLで書き出しますよね?PHPでもHTMLを書き出すことが出来ますが、
他のPHP型ブログを見てもだいたいはDBと連携してDB内を読む仕様なんです。
当然HTMLで書き出した方がSEO的にも良いし、複数ブログ作成の時も
1つのプログラムだけで複数のブログを作ることが出来るので、汎用性も高い。

そんなこんなを考えると、PHPで作る事でCGI(Perl)よりもメリットがあるのかな?
っと思った次第です。自分のPHP知識レベルも低いもので。。
0673nobodyさん2006/10/19(木) 10:05:56ID:???
>>672
向いてるか向いてないかなんて、
>>670で答えでてるじゃん。
>PHPはWeb特化という位置づけだけど、基本的にできることはほぼ同じ。
できることが同じということは、
同じ様にできる=どっちもどっちってことでしょ?
>>671
>個人的意見で言えば特にPHPでやるメリットや特徴があるわけではないが、
>Perlと比べて遜色があるわけでもなく、どっちも同じ程度じゃないの?
と言っている。

>他のPHP型ブログを見てもだいたいはDBと連携してDB内を読む仕様なんです。
それは作ってる人が、そういう作り方のほうが慣れてたり、
そっちのほうが作者的にはいいと思ってるから、そういう設計にしてるだけ。
なぜPHPで作ってるかという最大の理由は、
あなたがPHPでCMS作ってるように、その人にとって得意言語だからなはず。

と、ここまでいっといてなんだけど、
Perlで作る最大のメリットは、Perlに対応してるサーバが圧倒的に多いこと。
0674nobodyさん2006/10/19(木) 10:17:26ID:???
>>668
そうかぁ、そうかもしれないな。
だとしたら>>653のやり方のほうがいいだろうね。
0675nobodyさん2006/10/19(木) 10:32:56ID:???
>>672
> 当然HTMLで書き出した方がSEO的にも良いし、
そういう意味では、動的生成でも.htmlの拡張子が(設定次第で)使えるApacheモジュールの方が有利だよ。
.htmlの拡張子を使いつつ、静的書き出しと動的生成のどちらでも自由に選択ができる。
あと、1つのプログラムで複数blog生成の話は意味不明。
DBにデータを保持する方式でも作ろうと思えば簡単に複数対応できると思うけど。
動的生成もDB保持も単にユーザニーズの問題なだけじゃないの?
どっちもPerlだからとかPHPだからとかCGIだからとかいう問題じゃないでしょ。

唯一、SEO対策としての.html拡張子の件だけは、CGIでこれを動的生成にするような真似は
ふつーやらない、ってくらいかな。
でも昨今のgoogle辺りじゃ、拡張子はあまり区別しない傾向が強くなってきてると思うけどね。
パラメータ付加の有無くらいじゃないの?影響するのって。
0676nobodyさん2006/10/19(木) 10:52:37ID:???
静的HTMLを書き出すなら同じようにできるし
動的表示ならPHPのがどう考えても軽いでしょ

phpじゃスタティックなHTMLは吐けないと思ってんのかな?

googlebotは以前は負荷を考慮して動的ページのクロール頻度は
控えめにしてたらしいけど
0677nobodyさん2006/10/19(木) 11:39:16ID:???
変らないものなら、静的ページを生成するようにしておけばいいんだよ。
0678nobodyさん2006/10/19(木) 12:00:54ID:???
「CGIはPerl以外でもあるのは知ってますが、とりあえず。」

読む人を混乱させたのがわからないのだろうか?

それがわかっていて、それでもなお、「とりあえず」と、PerlのことをCGIと呼び続ける理由が理解できない。
0679nobodyさん2006/10/19(木) 12:10:25ID:???
おまえら釣られすぎ
0680nobodyさん2006/10/19(木) 12:18:19ID:???
なんでCGIの事について書くと「それはPerlか?」とかわざわざ聞くやついるの?
PHP使いの俺には理解出来ない。一般的にはperl=cgiと思ってもいいんじゃねぇ?
0681nobodyさん2006/10/19(木) 12:20:01ID:???
最近流行りのRubyとかは?
0682nobodyさん2006/10/19(木) 12:28:25ID:???
まあ「PHP使い」にも二種類いて、
マニュアルをちゃんと読んだことのある「PHP使い」は CGI≠Perl ってのが理解できるんだけど
読んだこと無い「PHP使い」は、「なんでいちいち聞くんだろう」と思うと。

けっこうマニュアルのさいしょのほうに書いてあるんだけどね
0683nobodyさん2006/10/19(木) 12:32:56ID:???
PHP「型」とPerl「型」みたいな聞き方だとさらに迷うな…
それに>>672の言い分からすると、実際はPerlかどうかは関係なくて、
本当にSAPIとCGIとでどっちがblog向きなのかを問うてるようにも思える。
あとblogを作成する際にRDBMSを用いるべきかどうか、だよね。

ただ、個人的意見を言わせてもらえれば、PerlでDBを使ってないのは
単に標準のPerlではDBにアクセスするのが面倒くさいでだからだと思う。
これが簡単ならPerlでだってDBにデータ突っ込んでるよ。
DBにデータを入れることと動的生成は全く関係ないことは質問者も分かってるよな?
・.html拡張子のまま動的生成もSAPIのPHPなら容易にできる
・静的HTMLへの吐き出しも出力バッファ関数を持つPHPの方が簡単
・安全確実なDBでのデータ保持もPHPなら簡単
Perlを選択するのは普及率と作成者の慣れ以外に理由はあまり無いと思う。
0684nobodyさん2006/10/19(木) 12:40:24ID:JzmElHR8
話が移植の件になってますが
669の件です

DBの照合順序 を utf8_general_ci に設定することで解決できました。
0685nobodyさん2006/10/19(木) 12:44:13ID:???
まあCGIだったら「動的に生成させたくない」(無駄に負荷かかるので)っていう
考えは必ず入ってくるだろうね、設計する時に。だから静的書き出ししたくなる。

PHPのSAPIだったら設計する時にそういうのを気にする人はたぶん少ない。
だから動的に出すのが多いと。
0686nobodyさん2006/10/19(木) 13:00:05ID:???
DB使わないのも必ずと言っていいほど静的に吐き出すのも
メリットじゃなく単なる制約によるものだよね >CGI/Perl
06876522006/10/19(木) 13:18:00ID:???
>>662
お答えありがとうございます。借りているサーバにそれが
インストールされているようですのでこれから勉強します。
0688nobodyさん2006/10/19(木) 13:58:18ID:WNEBG+gg
バイナリー形式で送られてきた画像をphpで表示したいのですがどのような方法があるでしょうか?
Content-Type: image/形式(jpeg等)
echo $file;
とやっても出来ません
0689nobodyさん2006/10/19(木) 14:06:42ID:???
>>688
> バイナリー形式で送られてきた
ってのは具体的にどっからどういう風に送られてきたものなの?
0690nobodyさん2006/10/19(木) 14:08:05ID:???
>>688
とりあえずぐぐれや
http://www.google.co.jp/search?sourceid=navclient-ff&ie=UTF-8&rls=GGGL,GGGL:2006-18,GGGL:ja&q=PHP+%E7%94%BB%E5%83%8F+%E8%A1%A8%E7%A4%BA
0691nobodyさん2006/10/19(木) 18:04:54ID:RDYn6fyD
phpスクリプトの配布を予定しているのですが、
文字コードは何で保存しておくべきでしょうか?

たいていの配布サイトを覗いてみたのですが、
明確にされておりませんでした。
それぞれの文字コードで別々に公開するのがベターでしょうか?
0692nobodyさん2006/10/19(木) 18:17:27ID:???
やっぱりUTF-8じゃないの?
(個人的にはあまりすきじゃないんだが)

Unicode対応しておけば朝鮮人とか中国人にも使ってもらえるわけだしし。
0693nobodyさん2006/10/19(木) 18:18:17ID:???
ISO-8859-1
マルチバイトが入るならUTF-8
0694nobodyさん2006/10/19(木) 18:22:03ID:???
俺は朝鮮人や中国人には使ってもらいたくないので、EUC-JPでいくぜ。
0695nobodyさん2006/10/19(木) 18:25:56ID:???
UTF-8はアクセス激しいとこだと転送量が損だよね?
0696nobodyさん2006/10/19(木) 18:38:36ID:???
その転送量の問題ってのは
中国人とか朝鮮人が大勢アクセスしてくるから損って言う意味?
それとも一文字三バイトだから、って話?
0697nobodyさん2006/10/19(木) 18:40:24ID:???
普通に考えれば後者だと思うけど、
テキストの転送量が問題になるようなサーバなんてこの世にあるのか?w
0698nobodyさん2006/10/19(木) 18:49:19ID:???
あ、後者の意味ね
2chはUTF-8じゃないけど転送量のことで閉鎖しかけたじゃん
それは確かgzipで解決したけど転送量が問題になることは無きにしも非ず
まぁ普通は気にしないか
0699nobodyさん2006/10/19(木) 18:55:09ID:???
配列を分割するいい方法ありませんか?
たとえば、
ほげほげtoはげはげ で
to以前と以後を分けたいんです。
0700nobodyさん2006/10/19(木) 19:20:14ID:???
>>699
それは配列なのか?文字列なのか?どっちだこのヤロー
0701nobodyさん2006/10/19(木) 19:23:14ID:???
>>699
配列を? どう見てもその例は配列には見えんが…。
それとも配列に、か?
0702nobodyさん2006/10/19(木) 19:32:05ID:???
ありがとうございます。
いろんな方にさわってもらいたいのでEUC-JPとShift-JSとUTF-8で
それぞれ用意して配布しようと思います。
0703nobodyさん2006/10/19(木) 19:35:11ID:???
>>699
explode関数
0704nobodyさん2006/10/19(木) 19:39:29ID:RDYn6fyD
2chに書き込むとき、クッキーがないときに表示される画面がありますよね。
このときデータを改ざんして、『名無し』『sage』『あああ』を書き換えることに対しては
対策されているかと思います。
hiddenから受け取ったデータをそのままログに書き込んでいるとは思えないのですが、
どのようにしてデータを受け渡して書き込んでいるか推測してください。

<form method=POST action="../test/bbs.cgi">
<input type=hidden name=subject value="">
<input TYPE=hidden NAME=FROM value="名無し">
<input TYPE=hidden NAME=mail value="sage">
<input type=hidden name=MESSAGE value="あああ">
</ul>
<input type=hidden name=bbs value=php>
<input type=hidden name=time value=1161249710>
<input type=hidden name=key value=1094842959>
<input type=hidden name="hana" value="mogera">
<input type=submit value="上記全てを承諾して書き込む" name="submit">
</form>
07057042006/10/19(木) 19:42:30ID:RDYn6fyD
>>703のコードは書込み確認画面よりFORM部分のみ抜粋いたしました。
2chなのでperlスクリプトに埋め込まれたものですが、
phpとしてお考えいただけると助かります。
0706nobodyさん2006/10/19(木) 19:45:08ID:D9BD7psJ
>>669
$a = "ほげほげtoはげはげ"; 
$b = explode("to",$a);

$b[0]は、ほげほげ
$b[1]は、はげはげ
0707nobodyさん2006/10/19(木) 19:48:52ID:???
>>704
…お前は何がしたいんだ?
0708nobodyさん2006/10/19(木) 19:53:38ID:???
>>704
推測して下さいってなんだよ
自分でソース探せ馬鹿野郎
0709nobodyさん2006/10/19(木) 19:55:27ID:???
>>704
セッション使ってるんじゃないかな?
あ、でもhiddenを使う意味がなくなるか。
0710nobodyさん2006/10/19(木) 20:26:38ID:???
小文字の片仮名を大文字にしたいのですがまとめてする方法はないでしょうか?
今はereg_replaceでァからォまで1行ずつ書いているんですけど・・
0711nobodyさん2006/10/19(木) 20:54:24ID:???
$result = str_replace(array('ぁ','ぃ','ぅ','ぇ','ぉ','ゎ'), array('あ','い','う','え','お','わ'), $str);

あっ片仮名か。
0712nobodyさん2006/10/19(木) 20:56:06ID:N/IEl6YX
>>710
それでいいんじゃない
0713nobodyさん2006/10/19(木) 21:05:17ID:???
>>704
keyとtimeがあんじゃん
0714nobodyさん2006/10/19(木) 21:26:43ID:RDYn6fyD
<form action="" method="post">
なまえ
<input type="text" name="name">
<input type="submit">
</form>

上記のコードをブラウザから実行して、名前を入力した場合、
値は$_POST['name']でとれますが、
この値はクライアントに保存されているのでしょうか?
それともサーバに保存されているのでしょうか?
0715nobodyさん2006/10/19(木) 21:28:35ID:???
電子の粒としてWebを彷徨ってる
0716nobodyさん2006/10/19(木) 21:29:31ID:???
どこにも保存されませんよ。
鏡を見ながら、おでこにマジックでメモッて保存してください。
0717nobodyさん2006/10/19(木) 21:32:38ID:???
保存されているかどうか、「戻る」を実行してみなよ。
0718nobodyさん2006/10/19(木) 23:23:00ID:34r0Z/Nk
エクステンションをコンパイルってどういうことでしょうか?
レンタルサーバなんですが。
0719nobodyさん2006/10/19(木) 23:30:54ID:???
カモーンえすぱああああぁぁぁぁあ!!
0720nobodyさん2006/10/19(木) 23:42:58ID:???
>>718
マニュアル嫁
http://www.php.net/manual/ja/install.pecl.php

「コンパイル」の意味がわからないならぐぐれ
0721nobodyさん2006/10/20(金) 00:17:25ID:???
>>718
うっぷんはここでさらせ
ttp://pc8.2ch.net/test/read.cgi/php/1158647441/l50
0722nobodyさん2006/10/20(金) 06:29:42ID:nmqka2TX
□example
├□foo
└index.php
□はフォルダです。

index.php内に以下のようにしてもfoo内のファイル名の取得ができずに、
exampleフォルダ内のファイル名が取得されてしまいます。
どこが間違っているのでしょうか?

$dir = opendir("foo");
while(($fname = readdir($dir)) !== false){
〜〜
}
0723nobodyさん2006/10/20(金) 09:26:42ID:???
>>722
ファルダの属性を変えてみろ。
0724nobodyさん2006/10/20(金) 10:18:01ID:???
すみません、ちょっと教えてください。

$x = (0.1 + 0.7) * 10;

echo $x."\n";

echo (int)$x."\n";

これを実行すると、

8
7

と表示されますが、なぜ最初に「8」が表示されるのか、理由がよくわかりません。

なぜでしょうか。

(例えばJavaScriptで同じ計算をすると「8」にはなりません)
0725nobodyさん2006/10/20(金) 10:34:38ID:???
初心者なんでわからんけど
0.8*10で8だとおかしいんでしょうか?

俺的には7が返ってくるほうが理由わかりません。
0726nobodyさん2006/10/20(金) 11:27:42ID:???
俺も「7」になるほうがおかしいと思うが。
0727nobodyさん2006/10/20(金) 11:36:13ID:???
浮動小数点の問題でしょ。
0.1とか0.7とかは正確に二進数浮動小数点では表現できないから誤差が出る。
PHPやPerlみたいに数値を文字でも表現するような言語では
そこで違った動きになるんじゃないかな。
07287222006/10/20(金) 11:58:57ID:+hAC6M3g
外出先からなのでIDが変わっています。

>>723
フォルダの属性はexample、foo共に777ですができません。
0729nobodyさん2006/10/20(金) 12:17:28ID:???
>>724
727の言うように「誤差は出るものである」って点はもっともなんだけど、ちょっと気になったので計算してみた。
IEEEのdoubleのフォーマットに従えば、最初に出現する1の次から52ケタ保持できるはず。
0.1(10進) = 0. 0 0011 0011 0011 ... 0011 001 (2進)
0.7(10進) = 0. 1 0110 0110 0110 ... 0110 (2進)
これで素直に足し算すると、
0.1(10進) + 0.7(10進) = 0. 1 1111 1111 1111 ... 1111 (2進)
で、内部表現のレベルでは0.8(10進)と偶然ながら一致する。

ただ、10(10進) = 1010(2進)を掛け算したときに、おそらく
111. 1111 1111 1111 ... 1101 (2進)
になると思うんだけど(掛け算の実際のアルゴリズムはよく知らないので、筆算でやったorz)、これは8(10進)の値よりもわずかに小さい。
ちなみに当たり前だけど、8(10進) = 1000. 0000 0000 0000 ... (2進)になる。
たぶん724の質問の仕方からすると、すでに緻密に計算した上での釣りのようにも見えるが、一応エスパー以外の人にも検証してもらえるように、俺なりに書いてみた。

問題は、111. 1111 1111 1111 ... 1101 (2進)は8とは内部表現レベルで一致しないのに、なぜPHPのechoは8と表示できたのかってことかと思う。
(int)をつけると、いわゆるfloorになるので、7になるのは納得できるけど。
たしかprintfの%gは10進での小数点以下6ケタ程度で四捨五入っぽかった気がするので、その関係ではないかと想像。
07307292006/10/20(金) 12:19:05ID:???
一部書き写し間違えたorz

× 0.1(10進) + 0.7(10進) = 0. 1 1111 1111 1111 ... 1111 (2進)
○ 0.1(10進) + 0.7(10進) = 0. 1 1001 1001 1001 ... 1001 (2進)
0731nobodyさん2006/10/20(金) 12:38:21ID:???
> たしかprintfの%gは10進での小数点以下6ケタ程度で四捨五入っぽかった気がするので、その関係ではないかと想像。

へぇぇぇ、面白!! 勉強になるなあ。

どうもありがとう。

(しかし、、おれんちのmanでprintf(3)がひけないのはなんでだろう・・・)
0732nobodyさん2006/10/20(金) 13:17:10ID:???
携帯から添付された画像ファイルを取得したいのですがどのようなやり方があるでしょうか?
0733nobodyさん2006/10/20(金) 13:59:27ID:???
>>732
いろんなやり方
0734nobodyさん2006/10/20(金) 14:06:49ID:???
>>732
.forwardやaliasesでメール受信からシェルスクリプトを自動起動して本文取り込み。
メール本文のマルチパートを分解→base64をデコードして画像ファイル取得。

サーバー設定がいじれなくてスクリプト自動起動が困難なら、
手動で任意、または数分おきに定期的にPOP3でメールを受信して以下同様。
0735nobodyさん2006/10/20(金) 15:05:37ID:???
>>734
ありがと

漏れにはムズいけどがんがる(・ω・)
0736nobodyさん2006/10/20(金) 18:54:20ID:QYiDpVQJ
daisuki
0737Name Not Found2006/10/20(金) 21:29:33ID:????2BP(0)
kotowaru!
0738nobodyさん2006/10/20(金) 22:43:08ID:CXNhs/e2
ファイルの先頭に文字列を追記したいのですが、
$FILE=fopen("〜〜","a+"); rewind($FILE);
とやってもうまくいきません。

どのような手段をとればよいのでしょうか。
お願いします。
0739nobodyさん2006/10/20(金) 23:26:50ID:???
動画をHPに置く予定なのですが、
たくさんアクセスがあった場合落ちる可能性を避けたいので
PHPでアクセス数によって振り分けたいのですが、
可能なのでしょうか、可能でしたら教えてください。
0740nobodyさん2006/10/20(金) 23:36:47ID:???
>>739
負荷を心配しているのに、高負荷時の対応のために、
さらに負荷かけてどうする・・・

Max Clientとか鯖のチューニングをすべ氏
0741nobodyさん2006/10/20(金) 23:43:00ID:???
質問の仕方が下手だと↑みたいなバカな回答しかつかないから注意してね^^;
0742nobodyさん2006/10/20(金) 23:43:07ID:???
>>739
「振り分ける」じゃ意味がわからん。
具体的に何をどうしたいのか書けバカ。
0743nobodyさん2006/10/21(土) 00:01:01ID:???
>>738
追記できるのは末尾だけ。
$fp = fopen("テンポラリファイル", "w");
fwrite($fp, "文字列" . file_get_contents("元ファイル"));
fclose($fp);
unlink("元ファイル")
rename("テンポラリファイル", "元ファイル");
みたいに、1度別のファイルに追記内容+元ファイルで吐き出して
その後、元ファイルにリネームで被せてやるしかないかと。
0744nobodyさん2006/10/21(土) 00:02:37ID:???
>>739
そういうのはPHPでやらずに、ロードバランサーとかの外部の機器を使います。
そもそもWEBサーバーに到達しちゃってる時点で振り分けても遅いです。
07457432006/10/21(土) 00:04:58ID:VQhvLI4X
>>738
わかりました。
すばやい対応ありがとうございます!
0746nobodyさん2006/10/21(土) 02:46:14ID:???
>>742って経験がないから経験から推測して判断して回答できないんだな。
0747nobodyさん2006/10/21(土) 02:55:34ID:???
で?っていう
0748nobodyさん2006/10/21(土) 03:28:22ID:???
極端な話、PHPで5分に1回しか動画にたどり着けないとかすれば
動画送信するぶんの負荷は減らせるだろうな。
0749nobodyさん2006/10/21(土) 03:44:16ID:???
はやいはなしapacheとlinuxを業者に頼んでカスタマイズしてもらえ。
0750nobodyさん2006/10/21(土) 08:09:33ID:???
> たくさんアクセスがあった場合落ちる可能性を避けたいので
> PHPでアクセス数によって振り分けたいのですが、

個人向けのレンタルサーバーでたまに月間の転送量の上限が決まってると個
があったりするけど、例えば「概算80%ぐらい転送量消費したところで
動画を配信しないようにしたいんだけど」とかいうことではないのだろうか?
0751nobodyさん2006/10/21(土) 09:23:10ID:???
>>746
バカかお前は。
質問の仕方を知らない>>739に教えてやってんだよボケ。
>>741と同意見だ。

もしやお前が>>739かな? だとしたら顔洗って出直してこいよチンカス。
0752nobodyさん2006/10/21(土) 09:29:07ID:???
(;^ω^)
0753nobodyさん2006/10/21(土) 09:33:17ID:???
誰か、このスレを和やかな雰囲気にしてくれる、
例のコピペ嵐のコピペをコピってくれるかな。
0754nobodyさん2006/10/21(土) 09:49:51ID:???
>>751 まあまあ気持ちはわかるが馬鹿は放置しる
0755nobodyさん2006/10/21(土) 10:32:51ID:???
連想配列のカッコ内の記述ってどうルール付けすればいいんでしょうか?
0756nobodyさん2006/10/21(土) 10:37:01ID:???
>>755
どういう意味?
0757nobodyさん2006/10/21(土) 11:21:23ID:???
ここのスレはいい人ばかりで大好きです。
ありがとう。
0758nobodyさん2006/10/21(土) 11:39:57ID:???
シングルクオーテーションで囲う、
ダブルクオーテーションで囲う、
なにも付けない。
3つの方法があるけど、どんな時にどの方法を取ればいいかっていう
ルール付けがうまく出来ません。
0759nobodyさん2006/10/21(土) 11:52:59ID:???
>>758
引用符は文字列に使う
シングルかダブルかは趣味
何もつけないのは数字、定数、変数
0760nobodyさん2006/10/21(土) 12:02:12ID:???
変数を含んでいて展開するなら、ダブル
0761nobodyさん2006/10/21(土) 12:18:23ID:???
>>758
キーに変数使ってるならダブル。
それ以外はシングル。
何も付けないってのは数字?<それ連想配列じゃないと思う
define定数ならそりゃ括っちゃダメだよね。
Perlと違って、普通の文字をクオートしないのはPHPじゃ非推奨です。
0762nobodyさん2006/10/21(土) 12:27:31ID:???
>>758
シングルはキャラクタ 'a' 'i' 'u' 'e' 'o'
ダブルは文字 "aiueo"
0763nobodyさん2006/10/21(土) 12:32:51ID:jCNqCJC6
自分のサイトに来たPOSTデータを
他サイトへPOSTデータと共に
移動させてやる事は可能ですか?
(JavaScript等使わずにPHPのみで)
0764nobodyさん2006/10/21(土) 12:37:42ID:yrD6q3vz
>>763
METAで…と思ったらPOST限定なの?
0765nobodyさん2006/10/21(土) 12:41:22ID:jCNqCJC6
>>764
GETならLocationとか使えば可能なのですが
POST限定なのです

POSTされてきたデータを
外部POSTしてそのデータを取得する事はできるのですが
一緒に移動となるどうしたら良いのか解らず・・・

ただ、これが出来るといろいろ問題でそうだなぁーとも思いつつ・・・
0766nobodyさん2006/10/21(土) 12:55:30ID:???
>>762
そりゃC言語では。
0767nobodyさん2006/10/21(土) 13:03:35ID:???
移動ってなに?
0768nobodyさん2006/10/21(土) 13:05:27ID:???
POSTをそのままPOST設定して、formのsubmitで飛ばせばいいじゃないか。
0769nobodyさん2006/10/21(土) 13:06:43ID:???
マルチポストしたいって話じゃないの
業者ぽいw
0770nobodyさん2006/10/21(土) 13:13:39ID:???
>>768
それだとサイトでワンクッション置かれてしまう・・・

>>769
確かにこれが出来てしまうと
マルチポストも簡単に出来てしまう・・・

やっぱ無理か・・・・
0771nobodyさん2006/10/21(土) 13:19:38ID:???
>>770
>それだとサイトでワンクッション置かれてしまう・・・

いいかげんにスレ違いだと気づけw
0772nobodyさん2006/10/21(土) 13:26:54ID:???
PHPでやる方法があるのかって質問なのにスレ違いて
0773nobodyさん2006/10/21(土) 13:27:15ID:jCNqCJC6
>>771
自サイトのPHPにPOSTされてきたデータを
PHPで処理させて他サイトへ
POSTデータと一緒にそのサイトへ
飛ばしたいと言ってるのだが

スレ違いなのか?
PHPで処理させてるのに?
0774nobodyさん2006/10/21(土) 13:32:09ID:???
POSTしたあとにheaser("Location: " . dokokaNoSite );じゃだめなのか
0775nobodyさん2006/10/21(土) 13:33:03ID:???
× heaser
○ header
0776nobodyさん2006/10/21(土) 13:40:10ID:???
>>763
HTTP_Requestとか使ってPOSTで受け取ったデータをそのまま渡して
POSTでリクエストするだけ
0777nobodyさん2006/10/21(土) 13:50:58ID:jCNqCJC6
>>774
やってみましたがダメっぽいです

>>776
HTTP_Requestってリクエストして
そのレスポンスを取得し表示する為に使ったり
PHPで簡易ブラウザを作るための物だと思ってたのですが
もうちょっと調べてみます
0778nobodyさん2006/10/21(土) 13:52:21ID:???

マニュアルにはこう書いてある。

http://us2.php.net/manual/ja/function.header.php

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Redirect the POST like this:

header("HTTP/1.0 307 Temporary redirect");
header("Location: https://myserver.redcetus.com/otherlocation";);

~~~~~~~~~~~~

ただこれだと

> 自サイトのPHPにPOSTされてきたデータを
> PHPで処理させて他サイトへ
> POSTデータと一緒にそのサイトへ

これはできないと思う。

俺なら、formのhiddenに色々入れたHTMLをこしらえて
クライアントに投げ返して、そのHTMLに仕込んだJSで
自動的に即POSTさせようとするかな。
07797392006/10/21(土) 13:57:00ID:???
すいません、質問の仕方が悪すぎでしたね。
Flash動画をHPにおきたいのですが負荷が心配です。
test.phpへアクセスあったら
test1.phpとtest2.phpに分けたいです。
test1.phpとtest2.phpは見た目まったく同じPで
動画のリンクが埋め込んでいるのですが、
リンク先のサーバーが違うということです。

ってかアクセス数で分けるなんて無理か
単純に2分することになりますかね
0780nobodyさん2006/10/21(土) 13:58:19ID:???
君はあれか、昨日の「アクセス数によって振り分けたい」の君か?!
07817392006/10/21(土) 14:00:19ID:???
そうです・・・なんか昨日爆睡している間に盛り上がったみたで・・・
初心者ですまそ。
0782nobodyさん2006/10/21(土) 14:04:09ID:???
FLASH自体のの処理に分岐つければ?
0783nobodyさん2006/10/21(土) 14:04:13ID:???
「アクセス数によって」ってのが具体的に同死体のかわからないけど
test.phpが吐き出すHTMLに書いてある動画リンク先を二箇所にする、って
いうのは普通にできると思うけどね。
07847392006/10/21(土) 14:12:17ID:???
すいません・・・
なんか漠然としたイメージだと、
ばぁ〜っとアクセスがあって(test1.php)ある程度アクセス数が
例えば100件あったら、別ページ'(test2.php)に切り替わるみたいな
イメージだったんですが・・・普通に無理そうですね。
アクセス数っていうか接続数ってか。PHPのレベルとは関係ないか
07857392006/10/21(土) 14:15:07ID:???
>>782
すいません、すれ違いですが
もう少し具体的に教えてもらえますか
0786nobodyさん2006/10/21(土) 14:23:35ID:???
>>782
それ、意味なくね?
0787nobodyさん2006/10/21(土) 14:25:59ID:???
そんな分散をPHPでやろうと考えている事に無理がある
大人しくそれ専用のシステムを鯖から作れ
07887392006/10/21(土) 14:35:30ID:???
んですね。
出直してきますわ。
0789nobodyさん2006/10/21(土) 14:35:37ID:???
>>784
同時アクセス数が一定数を超えたら、他の場所に分散した動画を参照させたいって事か?

PHPでアクセス時刻管理して、一定時間経過するまで接続していると見なすとかは
0790nobodyさん2006/10/21(土) 14:59:39ID:???
>>779
単純に埋め込む動画リンクの中身(aタグのリンク先)を
生成する際に任意に振り分ければいいだろ。
アクセス毎にサーバAとサーバBを交互に使うとか。

なんでそんな簡単なことすら自分で考えつかないんだお前は。ミジンコ以下の脳みそだな。
上記の説明でも理解できなければ、「ラウンドロビン」について調べまくれ。
で、それと同じ原理をスクリプトに仕込め。
0791nobodyさん2006/10/21(土) 15:10:38ID:???
下手にアクセス数を監視して余計なサーバー負荷を増やすくらいなら
最初からランダムで2サーバーに振り分けた方が確かに早いw
0792nobodyさん2006/10/21(土) 15:53:04ID:jCNqCJC6
>>778
やはりPHPだけでは無理そうですねぇ・・・
0793nobodyさん2006/10/21(土) 15:55:28ID:???
>>792
基本的にはクライアントのブラウザ自身に再送信させないといけないからな。
GETはURLがそのものだからLocationでブラウザに指定させることができるけど、
POSTの再送信指定は自動では厳しいだろう。
0794Name Not Found2006/10/21(土) 16:04:35ID:????2BP(0)
クロスサイトスクリプトと言う言葉が頭に浮かんだ
0795nobodyさん2006/10/21(土) 16:05:30ID:???
>>792
>>778の言う通り、ちょっとしたJSを仕込めば済む話だろ。
なんでPHP「だけ」にこだわるんだよ?
JSなどと組み合わせたほうがよっぽど効率的だ。
0796nobodyさん2006/10/21(土) 16:13:35ID:???
>>795
JSを含むとJSを切っている場合があるから

0797nobodyさん2006/10/21(土) 16:48:52ID:???
単純に、秒で奇数偶数で振り分けるとかでいいじゃねーか。
結果的に、半々に振られるんだから。
0798nobodyさん2006/10/21(土) 16:54:22ID:???
どっかに偶数秒の時にのみ一斉アクセスするスレとか立ちそうだな。
0799nobodyさん2006/10/21(土) 17:02:04ID:???
時計はクライアント側じゃなく、サバ側なのよねんw
0800nobodyさん2006/10/21(土) 22:00:50ID:???
流れをぶった切って悪いが
よくある大文字アルファベットと数字で構成された5*5のシリアルキーは
どう発行してどう正当性を確認してるのかね?
0801nobodyさん2006/10/21(土) 22:11:59ID:???
大抵は特定の桁〜特定の桁までを一定のルールで計算して
その結果が特定の桁の部分と一致するか、っていう
チェックサムやCRCの発展みたいな手法でしょ。
計算式やルールはそれぞれが好き勝手にやってると思うけど。
0802nobodyさん2006/10/21(土) 23:18:46ID:???
ここのスレはいい人ばかりで大好きです。
ありがとう。
0803nobodyさん2006/10/21(土) 23:38:19ID:???
>> 763
curlだと思うけど。
そのへんのblogのトラックバック送信のところ調べてみ。POSTで送ってるところがあるはず。
今すぐ思いつくのがsnoopy
snoopyなら何も考えずに
snoopy->submit($URI, $formvars="", $formfiles="")
これで$URIへPOSTデータを飛ばせる。
PEARでもどうと機能があったと思うが、調べてない。
0804nobodyさん2006/10/21(土) 23:50:16ID:???
>>803
いやだから、それだと単にPOSTデータを飛ばすだけで、
ユーザのブラウザ画面はPOST先のページに移動しない、
って>>763は書いてるわけじゃない。
0805nobodyさん2006/10/22(日) 01:09:59ID:???
Zend_Feed を使って下のリンクをimportしたんですが、
http://news.goo.ne.jp/news/rss/topics/geino/index.rdf
foreach ($gooRss as $item) {
var_dump($item->title());
}
これで拾えません。

$gooRss->title();
channel は拾えるんですが、ナゼでしょうか。
0806nobodyさん2006/10/22(日) 01:18:11ID:???
>>804
>>763はPHPの何たるかを分かっていない。JavaScript使えでFAだな
そもそもPOSTされたデータを持たせて他サイトに飛ばす必要があるって・・どんな場合だ?
0807nobodyさん2006/10/22(日) 01:57:05ID:???
すぱーむ!!
0808nobodyさん2006/10/22(日) 02:34:55ID:???
この場合はPHPどうこうってよりHTTPの仕様の話の気がするけどね。
0809nobodyさん2006/10/22(日) 04:27:49ID:b7CANJCx
質問させて下さい。(サーバOS:FreeBSD4.10、PHP4.4.2、Apache1.3.31)
mysqlデータベースにフィールド名が「name」で「一郎」、「二郎」、「三郎」、「四郎」、「五郎」、「六郎」の6レコードがあります。
それをPHPで読み込んで
<table>
<tr><td>一郎</td><td>二郎</td><td>三郎</td></tr>
<tr><td>四郎</td><td>五郎</td><td>六郎</td></tr>
</table>
とするのが目的です。
で質問の内容なんですが〜whileで繰り返し処理をする時、
<table>
<tr>
<?php do { ?>
<td><?php echo $row_record['name']; ?></td>
<?php } while ($row_record = mysql_fetch_assoc($record)); ?>
</tr>
</table>
とすると、
<tr><td>一郎</td><td>二郎</td><td>三郎</td><td>四郎</td><td>五郎</td><td>六郎</td></tr>
と横に一列になってしまい、また
<table>
<?php do { ?>
<tr>
<td><?php echo $row_record['name']; ?></td>
</tr>
<?php } while ($row_record = mysql_fetch_assoc($record)); ?>
</table>
とすると
<tr><td>一郎</td></tr>

<tr><td>六郎</td></tr>
のように縦に一列になってしまいます。
目的のような結果になるよう表示させるには、どのような繰り返し処理を記述すればよいのでしょうか?
0810nobodyさん2006/10/22(日) 04:30:23ID:???
ループに2回入ったら次のtr出すようにすればいい
0811nobodyさん2006/10/22(日) 05:16:39ID:???
何列目で折り返すのかが決まっているのなら
余りの数で折り返すのが良いと思います。

例の場合なら3列なのでレコード数を3で割って余りが0のときに</tr><tr>を入れる。
あとは例外処理だけ

08128092006/10/22(日) 07:25:20ID:b7CANJCx
>>810
>>811
お答えいただき、ありがとうございます。
申し訳ないのですが、具体的にどのように記述すれば良いのでしょうか?

今まで調べていたのですが、どうにも分からなかったので再度質問です。
度々お手数をお掛けしますが、よろしくお願いします。
なお本日は限界な為、もう寝ます・・・。
お返事は起きてから致します。

0813nobodyさん2006/10/22(日) 08:10:07ID:???
>>812
具体的な記述が欲しけりゃ金払え。
0814nobodyさん2006/10/22(日) 08:22:28ID:???
こういう事をあっさりやってのけるニートって意外にたくさんいるから
ニートに金渡してやらせればニート問題も解決しねぇ?w
0815nobodyさん2006/10/22(日) 08:27:36ID:???
>>812
810か811でFAだけど、本当にわかってなさそうなので教えてみる。
<tr>
<?php
for ($i = 1; $row_record = mysql_fetch_assoc($record); $i ++) {
?>
<td><?php echo htmlspecialchars($row_record['name'])?></td>
<?php
 if ($i % 3 == 0) {
?>
</tr>
08168152006/10/22(日) 08:28:49ID:???
// 微妙なとこで送信してしまったorz
<tr>
<?php
 }
}
?>
</tr>
0817nobodyさん2006/10/22(日) 09:43:07ID:???
>809
そりゃ難しい話でもなんでもないぞ。
PHPがどうこうという話ですらない。
それ宿題でやってるの?
仕事としてやってるの?
前者なら、考えるのが仕事なんだから悩めばいいし、
学校で友達や先生にわかるまで聞きなー
後者なら、転職したほうがいいよ。会社辞めなー
0818nobodyさん2006/10/22(日) 09:51:11ID:???
>>809
つーか何のためにそんなことするんだ?
一列だろうと二列だろうと、レンダリング結果は一緒だろうが。

んで、>>817の言うように、それくらい自分で考えられないなら
氏んだほうがいいと思う。
0819nobodyさん2006/10/22(日) 10:26:26ID:???
どこが一緒だよw
1行と2行は大違いだろ。
0820nobodyさん2006/10/22(日) 11:40:58ID:???
>>815てゆーか、おじさんそういう書き方は感心しないなぁ。
こうしようぜ。

<tr>
<?php for ($i = 1; $row_record = mysql_fetch_assoc($record); $i ++) : ?>
<td><?php echo htmlspecialchars($row_record['name']); ?></td>
<?php if ($i % 3 == 0) : ?>
</tr>
<tr>
<?php endif; ?>
<?php endfor; ?>
</tr>
0821nobodyさん2006/10/22(日) 12:09:44ID:BSjdszSl
PHPをはじめようと思ってる俺に
おすすめのPHP本を教えてくれ!
ハローワールドしかできない!
0822nobodyさん2006/10/22(日) 12:17:43ID:???
>>821
買うならその前にレッツのソースを眺めてろ。
0823nobodyさん2006/10/22(日) 12:21:48ID:BSjdszSl
>>821
レッツって何?
0824nobodyさん2006/10/22(日) 12:24:52ID:???
>>822
レッツ php
で、検索もできないならココで質問するな。
08258242006/10/22(日) 12:25:40ID:???
うお!
レス間違えたorz
0826nobodyさん2006/10/22(日) 13:10:15ID:???
なんだ!この流れのテンションおかしいぞ!
0827nobodyさん2006/10/22(日) 13:37:35ID:???
>>820

なんか<?php 〜〜〜 ?>
が凄く多い気がするんですけど。皆さんも必要部?だけphpの記述をする感じですか?

私の場合、例のような感じですと<tr>なども全て出力させるのて
おおきく<?php で囲ってしまうのですがどうなのでしょうか?
0828nobodyさん2006/10/22(日) 13:43:25ID:???
as you like
0829nobodyさん2006/10/22(日) 13:55:50ID:???
>>827
普通はviewとロジックは分けるもの。
テンプレートエンジン等使って事ある奴ならそんな発言は先ずでない。
0830nobodyさん2006/10/22(日) 14:11:37ID:???
>>829
何処までをLogicとするかはかなり主観的な問題だからその考えは一般的じゃない
0831nobodyさん2006/10/22(日) 14:14:59ID:???
<?php .... ?>のあいだにはいってるのが「ロジック」
そとにあるのが「ロジックではないもの」
ていうロジックなのかな?
0832nobodyさん2006/10/22(日) 14:19:47ID:???
そういうロジックであるべきってロジックじゃないか?
0833nobodyさん2006/10/22(日) 14:21:38ID:???
ロジックはロジカルであるべき
0834nobodyさん2006/10/22(日) 14:22:10ID:???
「?」がたくさん踊っていると個人的には読みにくいと思うので
埋め込み方式では書かないな・・・
0835nobodyさん2006/10/22(日) 14:23:43ID:???
俺はC言語的に書いてしまうな。
0836nobodyさん2006/10/22(日) 14:51:36ID:???
2chのトリップ生成関数を教えてください
0837nobodyさん2006/10/22(日) 15:01:14ID:???
>>836
検索しなさい
08388092006/10/22(日) 16:22:39ID:b7CANJCx
色々とお返事、叱咤等ありがとうございました。
また、>>815>>820のお二方は
具体的に記述していただいて大変感謝です!

ただ、このやりかただと、
<tr><td>二郎</td><td>三郎</td><td>四郎</td></tr>
<tr><td>五郎</td><td>六郎</td></tr>
というように、最初のレコードである「一郎」が表示結果に出ません。
(ソート順は名前でやってあります。)
試しに別フィールド「年齢」でソートしてやっても、
やはり最初のレコードは表示されません。
>>815>>820の両氏のコードで試しましたが、同じでした。
これは私の環境がおかしいのでしょうか??
もしこれがデータベースの問題なら、
これ以上はスレ違いなので調べても分からなかったら他を当たってみます。

しかし、今回のような動的テーブル作成法って変わった事なんでしょうか?
WEBアプリの場合だと、当たり前なんだと思ってました・・・。
0839nobodyさん2006/10/22(日) 16:29:54ID:???
表示する以前に1回fetch_assocやってんるんだろ?
0840nobodyさん2006/10/22(日) 16:41:14ID:???
>>838
素人レベルでは割と普通。
仕事でやるならデータの取得と表示は完全に分けちゃうのが一般的。
0841nobodyさん2006/10/22(日) 16:50:10ID:???
>>838
まずデータの取得「だけ」やってみて確認しなよ。
それすらやらずに人に聞くなんてアホじゃないかと。
0842nobodyさん2006/10/22(日) 17:08:16ID:???
どんな書き方をしても自分で見通しが利けば問題ないよ
他人の書いた物はどうせ見難いし
0843nobodyさん2006/10/22(日) 17:12:53ID:???
見易さ以前にデバッグしづらい書き方しときながら
デバッグできないので教えてください、じゃ話にならんだろ
08448092006/10/22(日) 17:45:09ID:b7CANJCx
皆様、色々とありがとうございました。
>>839氏の仰るとおり、表示以前に処理しておりました。
ご迷惑をお掛けして申し訳ありませんでした。
また、>>815>>820氏にはせっかく書いて下さったのに
失礼な発言をしてしまいました。
お詫びいたします。

これでやっと希望通りの結果を得ることが出来ました。
そのことには深く感謝です!
しかし私が言うのも何ですが、プログラミングって面白いですよね。
これからも少しずつ精進していこうと思います。
最後にもう一度、ありがとうございました!
0845nobodyさん2006/10/22(日) 17:59:35ID:???
>>844
うむ。頑張りな。ノシ
0846nobodyさん2006/10/22(日) 20:26:50ID:QZl/ECEV
昨日からphpを独学で始めましたプログラミングど素人です

↓のようなものをつくりたいのですが、これはどの程度のレベルなのでしょうか?
だいたい何ヶ月くらいで作れるようになりますか?
http://www.satoya-boshu.net/keisai/c.htm
0847nobodyさん2006/10/22(日) 20:36:21ID:???

その里親募集は、レベルとしては中級ってとこじゃないですか。

いろんな人みてますけど、ほんとに人それぞれですよ。

大雑把に言って、2ヶ月、3ヶ月ってとこじゃないですか。

勘のいい人は、まったくの、まっさらの状態から勉強して
1ヶ月でさくっと作ったりしますよ、それぐらいだと。

コツとしては、一度に複雑なものを作らないことです。
必要最小限の機能のものを作って、それに肉付けしていく。

なんか、今日・昨日、DBからひっぱってきたデータを二列に表示したい、とかいう
話がありましたけど、ああいうのも、最初は一列で表示させる、
次に、DBとは関係なく、配列データの二列表示の研究、最後に両者を組み合われる、とか、
「分割して統治せよ」のコツを、うまくつかめるひとは、みにつくのもはやいです。
08488472006/10/22(日) 20:40:40ID:???
即レスありがとうございます
1〜3ヶ月ですか
年内を目標にがんばっていこうと思います

アドバイスもありがとうございます
まだそこまでの域に達していないのでピンときませんが、
忘れないように肝に銘じておきます
0849nobodyさん2006/10/22(日) 21:15:22ID:???
最近佐賀ネタでスレ違いの書き込みが増えている。
佐賀県庁・佐賀県警・談合・痴漢・情報漏洩などの内容だ。
銀行が潰れるとしたデマが回り騒ぎが起きたこともある。
このような書き込みは慎むべきだ。

被害防止のため常駐するスレに啓蒙してくれ。
0850nobodyさん2006/10/22(日) 21:16:06ID:???
それ自体が荒らしだと何故気づかない
0851nobodyさん2006/10/22(日) 21:22:47ID:???
そこ、マジレスするところじゃないよ
0852nobodyさん2006/10/22(日) 21:27:19ID:???
それもスレに「佐賀」と書かせるための釣りだからな
0853from greypawn2006/10/22(日) 21:56:21ID:???
>>848
プログラム未経験なら分かりやすいPHP入門書を1冊買うといいですよ。
あと大事なのは、オンライン公式マニュアルの導入のところをちゃんと読んでおくことと
使えそうな関数のチェックは怠らないことですかね。

847氏も書いてますが、単純な形から徐々に拡大していくというのに賛成です。
今日のテーブルの件だって複雑に考えなくても
for文を使って1から6までの数字を
1 2
3 4
5 6
と表示するにはどうすればいいかと考えることと同じなわけで。

里親募集は要するに掲示板作るのと同じですね。
データの保存にDB使うのかファイル使うのか分からないけどDBと仮定すると、
登録時は
@HTMLからフォーム送信⇒APHPで受け取ってSQL文生成+クエリ実行⇒BDBに保存
表示時は
CSQL文を実行してDBからデータを取得⇒DデータとHTMLタグを組み合わせてHTMLページを出力
みたいな感じ。

あと細かい処理やら写真のアップなどは追々付け足していけばいいわけで。
何か詰まったらまたここで聞いてくださいね。

0854847じゃなくて846でした2006/10/22(日) 23:19:31ID:???
>>853
アドバイスありがとうございます
右も左もわからない状態なので助かりました
0855nobodyさん2006/10/23(月) 01:36:51ID:2dkTMRuK
こんにちは、少し前にこのスレッドにて質問をさせていただいた者です。
また、初心者な質問をさせていただきます。

返信機能付きの掲示板を作成しているところです。

現在、無限ループが発生していて、困って居ます。
演算子などの辺りのマニュアルも一応読みましたが、原因が分かりません。

どなたか教授をお願いします。

ソース:
http://www5.pf-x.net/~php/s/q.phps


あと、質問者として最低の行為だと思うのですが、今日から2日間、小旅行に行ってきますのでお答えを見る事ができません(泣
0856nobodyさん2006/10/23(月) 01:55:02ID:???
帰ってきてから質問しれよw
0857nobodyさん2006/10/23(月) 02:08:44ID:2dkTMRuK
エラメです。
書いておくのを忘れてしまいました。

Fatal error: Maximum execution time of 60 seconds exceeded in C:\Program Files\xampp\htdocs\test\res\res\bbs.php on line 136
0858nobodyさん2006/10/23(月) 02:13:06ID:2dkTMRuK
>>856
帰ってきてからでは少し都合が悪いのです。すみません。


Warning: file(1 .dat) [function.file]: failed to open stream: Invalid argument in C:\Program Files\xampp\htdocs\test\res\res\bbs.php on line 136

もあるようです。1と.datの間に半角スペースが・・・。
0859nobodyさん2006/10/23(月) 02:26:31ID:???
>>858
> $roop_lines = file(ENTRY_NUM_FILE);//現在、「1」が代入されます(最新の親記事番号)
> $num_of_time = (end($roop_lines));//最後の要素(最大数)を取り出します
file()で取得される配列は各行に改行コードがついたままになっている。
それを
> for($i = $num_of_time;$i >= 1;$i--){//最大の要素分ループします。(たぶんこの辺りがおかしい)
> $file = ($i.'.dat');
とやってしまっては、$i(改行).dat という意味不明のファイル名になってしまう。
136行目でMaximum execution time of 60 seconds exceededとfailed to open streamが出てるってことは
> $entry = file($file);
これが136行目なんだろうと思うが、不正なファイル名を渡されて読み込みを行っているために
file()関数が止まってしまってる状態。これは永久ループじゃなく1件目でいきなりこけてると思われ。
0860nobodyさん2006/10/23(月) 02:41:05ID:2dkTMRuK
すいません、解決しました。

こんなに駄レスをしてしまい、申し訳ありません。
0861nobodyさん2006/10/23(月) 02:42:10ID:2dkTMRuK
>>859
rtrim()でその改行コードを取り除いたら解決しました。


回答していただき、ありがとうございます。
0862nobodyさん2006/10/23(月) 05:24:06ID:???
http://cyclone.slis.tsukuba.ac.jp/cgi-bin/cycmap1/cyclone.cgi?node=PHP
0863nobodyさん2006/10/23(月) 13:36:35ID:???
>>862
それ、何の役に立つんだろうね?

一見するとすごいけど、「で、それがどうしたの?」って感じだもんな。
0864nobodyさん2006/10/23(月) 15:40:27ID:???
レッツAJAX!
0865nobodyさん2006/10/23(月) 15:57:37ID:???
役に立たないから面白いんじゃないか。
0866nobodyさん2006/10/23(月) 20:11:42ID:3vDBvRjM
みんなクラスファイルってどこに置いてる?
俺はlib/php以下にclassってディレクトリ作って置いちゃってたんだけど。。
0867nobodyさん2006/10/23(月) 20:50:27ID:???
好きなようにすればいい
0868nobodyさん2006/10/23(月) 20:58:52ID:???
うちはDOCUMENT_ROOTの1つ上の階層にディレクトリ作ってそこ。
0869nobodyさん2006/10/23(月) 21:43:55ID:???
>>865
役に立たないだけでなく、面白くもないんだが。
関連ワードが無茶苦茶だし。
0870nobodyさん2006/10/23(月) 22:17:06ID:???
>>840
仕事でやる人はイテレータとか使わないの?
08718662006/10/23(月) 22:22:33ID:3vDBvRjM
>>868
なるほど。/home/user/class/みたいな感じですかね?
共通クラスみたいのは特に作ってないですか?
0872名無しさん@お腹いっぱい。2006/10/23(月) 22:42:07ID:1uLUI3dC
文字列の置換についてお聞きしたいのですが。
例えば、tenki.txtに"明日 天気にな ぁれ。"のような文章が入っていた
とします。それを全角スペースを置換し、「明日天気になぁれ。」にしたい
のですが、どのようにすれば良いでしょうか。
一応、このようにしてみたのですが・・

$file=fopen("tenki.txt","r+");
$str =fread($fp,filesize("tenki.txt"));
$str2=str_replace(" ","",$str);
fseek($file,0);
fwrite($file,$str2);
fclose($file);
結果はエラーはでないが、効果もないという感じでして。。。
どのようにすれば良いのか、ご教授いただけないでしょうか?

0873nobodyさん2006/10/23(月) 22:44:40ID:???
>>872
とりあえず、$fpは何処から持ってきたのか教えてくれ・・・
0874nobodyさん2006/10/23(月) 22:52:36ID:???
>>871
うちは1サーバー1システムだから。
0875名無しさん@お腹いっぱい。2006/10/23(月) 22:53:42ID:1uLUI3dC
すいません。$fpではなく、$fileでした。
こちらに書く際に間違えてしまいました。
改めて、よろしくお願いします。
0876nobodyさん2006/10/23(月) 22:59:40ID:lxved+5w
ユーザー関数内から$textを表示させたいのですが
思うようにうまくいきません。
どなたかご教授お願いいたします。
php4.4.4です。

$text = "2ちゃんねる";

html($text);

function html()
{
echo $text;
}
0877nobodyさん2006/10/23(月) 23:00:18ID:???
>>872
> $str2=str_replace(" ","",$str);
半角スペースしか置換してないように見えるんですが。
0878nobodyさん2006/10/23(月) 23:01:21ID:???
>>876
function html($text)
0879nobodyさん2006/10/23(月) 23:01:32ID:???
>>876
echo $GLOBALS['text'];
08808762006/10/23(月) 23:07:28ID:???
>>878-879
迅速なアドバイスありがとうございます。
両方とも正しく動きました。
『function html()』と『html()』の両方に引数をわたさないとだめだったんですね。

$GLOBALS['text']はとても使いやすいですね。

お互い要所によって使い分けてみたいと思います。
ありがとうございました。
0881名無しさん@お腹いっぱい。2006/10/23(月) 23:07:47ID:1uLUI3dC
>872です。
" "で効果がなかったので、" "としてしまいました。
どちらにしても置換がされないので、どうしたものかと。。。
0882nobodyさん2006/10/23(月) 23:14:30ID:???
>>881
良く考えたらそれはおかしいよ
文字数が減るからfseek0にしたら後ろにゴミが残るでしょ
だから勘違いしてると思う
0883nobodyさん2006/10/23(月) 23:19:43ID:???
<?php ?>をコード中にたくさん記述するのは処理が重くなるのでしょうか?
0884名無しさん@お腹いっぱい。2006/10/23(月) 23:20:42ID:1uLUI3dC
872
fseekを使わないでやるというパターンも試してみたんですけど、どうも
うまくいかないのです。
よろしければ、答えの一例をお示しいただけないでしょうか?
0885nobodyさん2006/10/23(月) 23:32:48ID:???
>>883
1万個くらい書いたHTML文書を生成して試してみてくれ
0886nobodyさん2006/10/23(月) 23:32:58ID:???
>>880
> 『function html()』と『html()』の両方に引数をわたさないとだめだったんですね。
違う。
function html($text) は「引数を受け取れるようにする」という「指定」。
これで初めて引数を使えるようになるものであって、これは引数を渡しているわけじゃない。
渡される引数と、関数側の指定は別のものなので、
$data1 = "1ちゃんねる";
$data2 = "2ちゃんねる";
html($data1);
html($data2);

function html($text)
{
echo $text;
}
のように異なる変数名を使えるし、そこに利点がある。
(関数はそれ以外の部分がどうなっているかを意識せずに作りこむことができる)

> $GLOBALS['text']はとても使いやすいですね。
> お互い要所によって使い分けてみたいと思います。
グローバル変数を使う方式はこういう自由度が無いため、使い分けが重要。
0887nobodyさん2006/10/23(月) 23:33:45ID:???
>>883
たくさんコメントを書きまくるのと同じ程度には重くなると思います。
0888nobodyさん2006/10/23(月) 23:35:05ID:???
>>881
> " "で効果がなかったので、" "としてしまいました。
それ、どっちも半角スペースだと思うんですが。
0889nobodyさん2006/10/23(月) 23:36:26ID:???
>>882
今は置換されてないんだからゴミも出ないよ。文字数変わってないんだもの。
ちなみにtenki.txtの更新日付は実行後に変化してますか?>>872
0890nobodyさん2006/10/23(月) 23:40:36ID:???
>>889
家でテストしたら半角も全角もちゃんと動いたよ
08918712006/10/23(月) 23:40:38ID:???
>>874
そうでしたか。まああまり気にすることなさそうですね。
レスありがとうございました。
0892nobodyさん2006/10/23(月) 23:44:06ID:???
まさか書き込み禁止のデータファイルでエラー制御してるとかだと笑えるけどw
0893nobodyさん2006/10/23(月) 23:46:41ID:zNg8YSYz
すいません、CSVのの特定の行データ(例:18行目)を抽出しるにはどんな
感じにすればよいのでしょうか?
0894名無しさん@お腹いっぱい。2006/10/23(月) 23:46:46ID:1uLUI3dC
872です。
>888
確かに。言い直すと、全角または半角指定でもうまくいきませんでした。
>889
実行後の更新日時は変化していました。
それと、改めて実行したところ、スペースは置換されました。
しかし、"明日天気になぁれ。れ。"
となってしまいました。
きれいに置換する方法はないものでしょうか?
0895nobodyさん2006/10/23(月) 23:53:33ID:???
>>894
結局置換できなかった理由はなんなのよw
ゴミの方は>>882が書いてるけど、上書き時のゴミでしょ。
1度元のファイルを消さないと、同じ桁位置に上書きするわけだから
字数が短くなれば当たり前だが後ろに上書きされなかった内容が残る。
ファイルを作り直すか、中身消去関数を実行しましょう。
0896nobodyさん2006/10/23(月) 23:55:34ID:???
>>893
$fp = fopen("CSVファイル", "r");
for($i = 0, $i < 17; $i ++) fgets($fp);
$line = fgets($fp);

echo $line;
0897nobodyさん2006/10/24(火) 00:16:44ID:???
>>894
とりあえず、動いてるものを動いてないと勘違いしてた時点で
しばらくは質問を控えて自分で悩んだ方がいいと思うよ。
実際の状態が分からない状態で質問されても正直困る。
0898名無しさん@お腹いっぱい。2006/10/24(火) 00:21:07ID:amM1UeJp
結構悩みましたが。。。まぁとりあえず出直します。
0899nobodyさん2006/10/24(火) 00:26:04ID:???
PHPでCharCodeAtみたいな文字コード番号を返す関数ってありますか?
0900nobodyさん2006/10/24(火) 00:35:04ID:Ylboj5c4
>>896
ありがとうございます。確かに18行目のデータ全て抽出することができました。
さて、これからがぼくにとっての難問なんです・・・

たとえば、2つのCSVファイルがあるのですが(佐賀県.CSVと汚職.CSV)、やりたいことは
汚職.CSVの中の「Sさん」という人物プロフィール紹介のページで、「Sさん」に当てはまる(登録されている)
汚職カテゴリーを佐賀県.CSVの中からすべて抽出し、<li>・・・・・</li>の形で表示したいのですが、
なかなかうまくいきません。

どうかお知恵をおかしください。どんな感じにすればよいのでしょうか?


0901nobodyさん2006/10/24(火) 00:58:03ID:???
@頑張る
A単純化して考えてみる
BDB使う
0902nobodyさん2006/10/24(火) 01:00:27ID:???
>>899
ord
0903nobodyさん2006/10/24(火) 01:18:03ID:???
>>900
18行目の抽出程度で困る人ではその内容は無理かと。
0904nobodyさん2006/10/24(火) 03:52:46ID:???
>>900
佐賀県.CSVをループさせてる間、人名を<a href="hoge.php?query=xxx">で囲ってxxxにエンコした人名を入れておく、
受け取り側では$_GET['query']を確認してから該当文字列を含む列を配列に格納、その配列をぐるぐるしながら表示。
とか?
0905nobodyさん2006/10/24(火) 04:06:20ID:???
まだおきてるひとはいますか?
0906nobodyさん2006/10/24(火) 04:11:00ID:???
いますけど何か?
0907nobodyさん2006/10/24(火) 04:30:03ID:???
質問してもいいですか?
0908nobodyさん2006/10/24(火) 04:34:21ID:???
回答するか(できるか)は分からんけど
質問があるならすればいいかと。
0909nobodyさん2006/10/24(火) 04:48:35ID:+34GEzTN
自宅内PCのlocalhostからhoge.comへポストで送信することについて。
hoge.comに向けられた、自宅内PCから発射されたPOSTを遮断する方法がわかりません。
何かヒントとなるものはございませんでしょうか?


『自宅内PCのindex.phpのコード』

<form action="http://hoge.com/index.php>;
<input type="submit" name="submit" value="submit">
</form>

『hoge.comのindex.phpのコード』
if (isset($_POST[submit]))
{
echo "他サイトからポストがありました";
}
0910nobodyさん2006/10/24(火) 04:57:49ID:???
>>909
REFERERを見て自分のサイト以外だったら弾くとかくらいじゃ…
もっとも、昨今はREFERERを返さない設定にしちゃってる
ブラウザやセキュリティソフトが多いのであまり十分とは言えないけど。
あとはセッションを使って、直前の送信ページ表示の情報を持ってる
ユーザのPOST以外は受信不可にするとか。
もっともこれも1度送信ページを表示してから実行されるとスルーしちゃうけど。

それを完璧に防ぐ方法は理論上存在しないと思う。
しょせん、クライアントのブラウザを介しての処理だからねぇ。
クライアントが「送信元のページ」を正確に渡してくれないことには不可能で、
クライアント自体をユーザが自作可能である以上、そんな手法は存在しない。
0911nobodyさん2006/10/24(火) 05:12:21ID:???
Refererより改竄しやすいけどCookieのセッションがあるな。
有効期限で一定時間以後は無効にもできるし。
0912nobodyさん2006/10/24(火) 05:16:19ID:???
セッション使った対処方法もすでに>>910で書いてるけど…
データ本体をサーバ側に置いとけば改竄はそうそうできないよ。
0913nobodyさん2006/10/24(火) 05:26:08ID:???
正規の入力画面を表示した時にアクセスしたタイムスタンプを送れるように
hiddenを仕込む、同時にその値をDBに突っ込む、
受け側(hoge.comのindex.php)で値を受取る時にDBを確認、
hiddenで送られたタイムスタンプと一致したら正規のPOST、とかどう?
一定時間過ぎたらCronなりでDBを掃除
0914nobodyさん2006/10/24(火) 05:33:41ID:???
アンケートフォームなどで、radioボタンなどのvalueとして設定される数値と
textフィールドに入力されるテキストが値として混在しますが
こういうのはどこで分割するのがいいんでしょうか?

例えばこんなやつです。
<input type="checkbox" name="q1[]" value="1">選択肢1
<input type="checkbox" name="q1[]" value="2">選択肢2
<input type="checkbox" name="q1[]" value="3">選択肢3
<input type="checkbox" name="q1[]" value="4">その他<input type="text" name="q1[]">

@HTMLの時点でname属性を変える(q1_4_txtなど)
ADBのテーブルを数値用と文字列用に2つ作り、POSTされたデータをPHPで判定して振り分ける
BDBにまとめて放り込み、selectするときに上手いことやる

とりえあず@のようにnameを変え、select文を
 select name, value, count (value) from table group by name, value
とし、PHPで全件に対して
valueが数値の場合:  $result[name][value] = count;
valueが文字列の場合: $result[name][] = valie;
と代入して使用しています。

もしかして効率が悪いことしているのかと不安に感じるので、皆さんは普段どうしていますか?
こういうフォームを扱う時のコツなどありましたら教えてください。
0915nobodyさん2006/10/24(火) 05:34:47ID:???
どっちにしろ、正規ページ表示→そのページを元に生成した不正ページから送信 って
パターンは防げないけどね。
>>909が何をどこまで厳密に防ぎたいのかが分からないので何とも。
送信前に1度でも正規ページを表示してくれれば問題なし、って話ならセッションで十分でしょ。
0916nobodyさん2006/10/24(火) 05:39:41ID:???
>>914
フォーム云々ってより集計プログラムの方が問題な気がする。
フォームは集計プログラムの仕様に合わせれば自ずと決まるんじゃないか?それ。
「最終的にどういう形でDBに入ってくれてれば容易に集計できるのか」
という逆算で設計した方がいいよ。
0917nobodyさん2006/10/24(火) 05:40:31ID:???
IPではじけないのか?
0918nobodyさん2006/10/24(火) 05:41:40ID:???
>>917
クライアントのIPと送信元ページに何の関係があるのよ。
0919nobodyさん2006/10/24(火) 05:52:19ID:???
Macのハートマークなどの機種依存文字を省きたいんですが、ordでは成功しませんでした。
どうすればMacなどの機種依存文字を判定できるんでしょうか?
0920nobodyさん2006/10/24(火) 06:52:43ID:???
bin2hex()でゴニョゴニョするのかな?ごめんわからん。
0921nobodyさん2006/10/24(火) 07:34:48ID:???
http://ja.wikipedia.org/wiki/%E3%82%A4%E3%83%86%E3%83%AC%E3%83%BC%E3%82%BF

↑PHPだけ省かれてるのが、何か意図的なものを感じる。
誰かPHPの記述も追加してくれ!!
0922nobodyさん2006/10/24(火) 07:56:15ID:???
>>919
mb_ereg_replace("[\x86\x9F-\x86\xB5]", "", $str); みたいな感じで
文字コードで範囲指定してmb関数で置換すればいいんじゃないの?
0923nobodyさん2006/10/24(火) 08:00:23ID:???
>>921

foreach ($ary as $i) {
 print_r($i);
}
0924nobodyさん2006/10/24(火) 08:01:58ID:???
Perlとほとんど変わらんがな。
0925nobodyさん2006/10/24(火) 08:47:27ID:???
>>923
それならprint_r($ary)でいいじゃん
0926nobodyさん2006/10/24(火) 09:07:05ID:???
Web特化はお呼び出ないってことですよ。
日のあたらない目立たないとこでコシコシやっていこうぜ。
0927nobodyさん2006/10/24(火) 09:24:22ID:???
rubyとかpythonとかどこで使われてんの?
0928nobodyさん2006/10/24(火) 09:27:50ID:???
>>925
いや、イテレータの説明ですよ?
>>927
どこっつーか普通にスクリプトとして。
0929nobodyさん2006/10/24(火) 09:40:38ID:???
「いれてーな」に脳内変換してしまう自分は病気でしょうか。
0930nobodyさん2006/10/24(火) 10:12:29ID:???
>>928
この場合のイテレータはPHPでいうとimplements Iteratorなクラスでは?
0931nobodyさん2006/10/24(火) 10:44:10ID:???
>>910
実際POSTをはじくことはできないにしても業務レベルで使えるようにすることはできる。
2ちゃんのCGIを参考にしたらええよ。
0932nobodyさん2006/10/24(火) 10:49:18ID:???
>>931
質問者は「POSTを弾く方法」を聞いてるんじゃないのか?
0933nobodyさん2006/10/24(火) 11:17:10ID:???
>>909の質問は、どう見てもCSRFを防ぐ方法について。
本人がCSRFという言葉や概念を知っているかどうかは知らないけどな。

で、CSRF防御策については、決定打は無いものの、
世間的に概ねFAが出ている。
0934nobodyさん2006/10/24(火) 11:41:57ID:???
大手では画像に数字をだして、それを入力させてsubmitさせてるよ。
0935nobodyさん2006/10/24(火) 12:06:41ID:???
有名な件ですが
ttp://www.atmarkit.co.jp/fsecurity/column/ueno/33.html
0936nobodyさん2006/10/24(火) 12:12:08ID:???
>>934
別に、大手でなくても・・・
0937ここ壊れてます2006/10/24(火) 12:48:35ID:???
0938nobodyさん2006/10/24(火) 12:53:36ID:???
>>909ってhoge.com側の対策じゃなくて自宅側の対策について聞いてるような?
0939nobodyさん2006/10/24(火) 13:01:22ID:???
>>909
だからhoge.comは実在する企業のドメインだからexample.comを使えと何度言えばわk
0940nobodyさん2006/10/24(火) 13:18:43ID:???
おまえらほんとセキュリティにはうぶなんだな(笑)
0941nobodyさん2006/10/24(火) 13:51:15ID:???
>>940
ぜひここでセキュリティ対策の講義を(笑)
0942nobodyさん2006/10/24(火) 14:16:18ID:???
>>940
初心者でもわかりやすくお願いしますね(笑)
0943nobodyさん2006/10/24(火) 14:22:00ID:???
>>940の次の一言で歴史は動く。
09449402006/10/24(火) 15:29:24ID:???
ネットに繋がなければいいんだよ。
0945nobodyさん2006/10/24(火) 16:33:41ID:???
>>944
お前にはがっかりだ。
0946nobodyさん2006/10/24(火) 16:44:02ID:???
単純な話、cookieでいいじゃん。
ブロックしてたら、ブロックしないようにしてから投稿してねで。
0947nobodyさん2006/10/24(火) 16:59:53ID:Fh1N1ejS
ホゲドットコム
(´д`)つhttp://hoge.com/about/index.html
0948nobodyさん2006/10/24(火) 17:20:24ID:???
>>944
騙ってんじゃねえよ。
いいか、phpでもっとも有効な対策は重要なデータはhiddenにのせないことだ。
0949nobodyさん2006/10/24(火) 17:22:27ID:???
cookieが使えるのはPCのみで、携帯ではcookie対応機のみ。
PC用と携帯用で振り分ければいい。
万能な記述などない。やるだけだ。
0950nobodyさん2006/10/24(火) 17:24:14ID:???
あと、クッキーに「サーバのログに書き込むデータ」は保存しないことだ。
クッキーが改ざんされてしまうだろうが。
0951nobodyさん2006/10/24(火) 17:29:51ID:???
やはりセッションが無難であるといえる。
ただ、ハイジャックされることも頭に入れてコードを書かなくてはならない。
たとえば、下記を参照してもらおう。

セッションA−−−−−−−→セッションB
         ↑
         盗聴

クライアントにセッションAを与える。
クラッカーがセッションAを盗撮。
しかし、セッションAを与えた直後、セッションBに移し変えてセッションAを消してやれば
盗聴されたセッションAは何の意味ももたなくなる。
09529402006/10/24(火) 17:30:29ID:???
>>948->>951はおれ

ツッコミどうぞ
0953nobodyさん2006/10/24(火) 17:36:10ID:???
・セッションはIPと対にして発行、IPが変わったら無効
・そもそもSSL通せや
が抜けてる
0954nobodyさん2006/10/24(火) 18:38:11ID:???
スレ違いだけど、PHP使い始めて2年、プログラマになって20日だけど、今日初めてinclude_onceの有り難みが解ったorz
0955nobodyさん2006/10/24(火) 18:42:39ID:???
>>951
>盗撮

ふだん使ってる言葉が無意識に出ちゃってるぞ。
0956nobodyさん2006/10/24(火) 19:04:53ID:???
>>953
ipだけじゃだめでしょ。
0957nobodyさん2006/10/24(火) 20:35:28ID:???
質問です。

aaa.php?test=1とURLに指定して呼び出したときに
echo $HTTP_GET_VARS['test'];をしても1が表示されません。

phpinfo()を呼んだ画面ではregister_globalsがOnと表示されています。

register_globals以外に上記を取得するための設定が必要なのでしょうか?
fedora core5を使っていて、phpのバージョンはphp-5.1.6-1.1です。
0958nobodyさん2006/10/24(火) 20:38:45ID:???
ttp://jp.php.net/manual/ja/ini.core.php#ini.register-long-arrays
0959nobodyさん2006/10/24(火) 20:42:36ID:???
>>957
そんなもん使うな。

$_GET, $_POSTなどのスーパーグローバル変数を使え。
0960nobodyさん2006/10/24(火) 20:44:31ID:???
>>958
ありがとうございます。
1ピコ秒で解決しました。
0961nobodyさん2006/10/24(火) 21:02:38ID:???
ぼくのぴこ
0962nobodyさん2006/10/24(火) 21:30:09ID:???
>>956
ほかになにがあるんですか?いってください。
0963nobodyさん2006/10/24(火) 21:31:45ID:???
別の人だけどproxyも全部はじかないとな
0964nobodyさん2006/10/24(火) 21:36:14ID:???
>>930
921のリンク先の言葉を使えば、デフォルトのままでforeachが「内部イテレータ」の役割を果たす。
Iteratorはその挙動を自分で指定できる、メタプログラミングの一種かと(既存のarrayを操作できるわけではないけど)。
0965nobodyさん2006/10/24(火) 21:49:31ID:???
>>964
そのリンク先、関連項目のforeachをあわせて見てみるべし。
イテレーションとは別のものとして取り上げているしPHPのforeachもそこにある。

本質的な話は別として、そのリンク先では
>配列やそれに類似するデータ構造の各要素に対する繰返し処理の抽象化である。
と解説されている。

>>964
>Iteratorはその挙動を自分で指定できる、メタプログラミングの一種
まさにこれの事ではないのか?
0966nobodyさん2006/10/24(火) 22:33:27ID:???
>>965
物凄いスレ違いだけど、おもしろそうなのでつっこんでみる。
「foreachの対象はイテレータではない」
というのが965の主張??
foreachは(おそらく一般的には)イテレーションの構文糖じゃないの?

> 本質的な話は別として、そのリンク先では
> >配列やそれに類似するデータ構造の各要素に対する繰返し処理の抽象化である。
> と解説されている。
これを実現する一つとしてforeachがあるかと。

ちなみにPHPのSPLで用意されているIteratorは、大雑把に言って「foreachの挙動を操作するもの」だと思う。
0967nobodyさん2006/10/24(火) 23:34:01ID:???
投票結果に応じてオッズを計算して更新するアプリを公開してるサイトとかありますか?
0968nobodyさん2006/10/24(火) 23:56:44ID:???
あぷり?
0969nobodyさん2006/10/25(水) 00:02:50ID:noTSvRA3
すいません下らねぇ質問です!

サイト上の特定のワードを、特定の文字に置き換えることはPHPで簡単にできますか?

例えば、 英文字の DOG というのを すべて日本語の 犬 に置き換えるという具合です。

できるとすればどんな構文になるのでしょうか? お願いします。
0970nobodyさん2006/10/25(水) 00:11:44ID:???
ブックマークレットでも使ったらどうかな。
0971nobodyさん2006/10/25(水) 00:24:22ID:noTSvRA3
>>970
翻訳できない造語(英語)や日本語のローマ字入力なんかがあるのでブックマークレットは
使えないので残念です。
0972nobodyさん2006/10/25(水) 00:24:54ID:???
IEならjavascriptをアドレスバーに直接ぶちこめばできるよ
0973nobodyさん2006/10/25(水) 00:33:46ID:???
翻訳…?

2つ3つの単語を対応する単語に置き換えるならともかく、
まともな翻訳処理を施すなら単語の置換どころの騒ぎではなくなる。

素直に検索サービスに飛ばすブックマークレット使え。
0974nobodyさん2006/10/25(水) 00:37:00ID:noTSvRA3
>>973
私の説明が悪かったです^^;

置き換えは英語、日本語関係なく、

 サイト内の 「AAA」 という単語を、 単純に「BBB」 と置き換えるだけです。

置き換えたい単語は全部で10個程度です。
宜しくお願いします。
0975nobodyさん2006/10/25(水) 00:44:18ID:???
それだとブックマークレットで駄目な理由が分からん。
サーバ上のファイルで一括置換したいという意味であれば適当なテキストエディタ使え。
0976nobodyさん2006/10/25(水) 00:45:00ID:???
>>954
詳しく!
0977nobodyさん2006/10/25(水) 00:46:54ID:???
>>974
一回ファイルに読み込んで
置換すればいいだけじゃね?
09789652006/10/25(水) 00:47:47ID:???
>>966
「PHPのforeachが繰り返しの抽象化としてのイテレータなのか」という議論はおいといて、

>>921のリンク先では関連項目のforeachにはPHPのそれが載っているが、
イテレータには載っていない。
この文脈では、PHPのイテレータとしてはIteratorを挙げるのが適当では?
ということ。

話は変わるけどimplements IteratorはJavaやPythonの例のように、
イテレーションのインターフェイス(巻き戻し、次の要素、次があるかの問い合わせ)
を提供するわけで、
・ある集合に繰り返しの窓口を設けるもの。
対してforeachは、
・繰り返しの窓口に対して、順番に要素を取り出すもの。
という事じゃないだろうか?
0979nobodyさん2006/10/25(水) 00:55:17ID:noTSvRA3
>>977
どんな関数で置き換えができるのでしょうか?
PHP詳しくないんですみません。ヒント教えていただければ検索してみます。
0980nobodyさん2006/10/25(水) 00:58:49ID:???
>>979
マニュアルを最初から読まないことを前提にしてる人にまで回答してられないよ。
というか、その内容ならPHP使わない方がいいんじゃない?
Windows用の置換ツールとか使った方がいいでしょ。
0981nobodyさん2006/10/25(水) 01:02:55ID:noTSvRA3
>>980
$hoge = array(
'1'=>'犬',
'2'=>'猫',
'3'=>'フェレット',
);
$line = "1 2 3";
$line2 = strtr($line,$hoge);

こんな感じでやってるんですがなかなか・・・ 
0982nobodyさん2006/10/25(水) 01:07:33ID:???
javasciptがわけわかんなくて投げ出しそうな奴はPHPも挫折しますか?
0983nobodyさん2006/10/25(水) 01:13:01ID:???
うん
0984nobodyさん2006/10/25(水) 01:14:28ID:???
>>981
それで具体的に何が困ってるの?
0985nobodyさん2006/10/25(水) 01:17:54ID:noTSvRA3
みなさん

$hoge=str_replace("dog","犬",$Str);

で、できました!お騒がせしました。

でも、あってますよね^^; 一応ウェブサイト上では置換えできてます

0986nobodyさん2006/10/25(水) 01:18:26ID:???
>>978
> この文脈では、PHPのイテレータとしてはIteratorを挙げるのが適当では?
いや、ぶっちゃけforeachだけ載せても、SPLのIteratorまで載せても、大した問題じゃないと思うけど。
perlのとこだってforeachとwhile-eachの例しか載ってないし。
せいぜいIteratorってのもあるよ、ってくらいのコメントで十分かと。
0987nobodyさん2006/10/25(水) 01:38:21ID:???
まあPHPのIteratorは、foreachで内部イテレータを書くことも、forで外部イテレータを書くこともできちゃうから、説明としてはまあまあ有用性高い気もするけどね。
筆者がたまたまPHPを知らなかっただけの話でしょ。

// 例
class Records implements Iterator {・・・}
$records = new Records();

// 内部イテレータ
foreach ($records as $index => $record) {
 処理
}

// 外部イテレータ
for ($records->rewind(); $records->valid(); $records->next()) {
 $record = $records->current();
 $index = $records->key();
 処理
}
0988nobodyさん2006/10/25(水) 02:03:01ID:???
strtrって遅くない?
何回計ってもstr_replaceの方が倍以上速い
どう考えてもstrtrのほうが軽そうなのに
0989nobodyさん2006/10/25(水) 02:10:30ID:???
件のページに書き足すなら、foreachとimplements Iteratorを併記がいいって事で。
0990nobodyさん2006/10/25(水) 02:14:28ID:rZkuwLJp
>>985
さらに一歩進むなら
$hoge=str_replace(array("dog","cat"),array("犬","猫"),$Str);
0991nobodyさん2006/10/25(水) 02:20:35ID:???
>>988
strtrはインターフェースが冗長だからそこで時間食ってる。
0992nobodyさん2006/10/25(水) 02:30:26ID:???
俺のとこではstrtrとstr_replaceの速度は誤差の範囲内だったけど。
(何回も繰り返すと、strtrのほうが速いときも少なくないし)
988のベンチとった実際のコードキボンヌ
0993nobodyさん2006/10/25(水) 02:45:49ID:???
strtrは配列で置換指定するタイプはダメね
配列じゃない方も対象文字列が長くないとダメね
0994nobodyさん2006/10/25(水) 07:16:01ID:???
>>988
strtrは文字列置換ではなく文字置換
strtr("ABC", "XYZ", "A1B1C1");
A=>X, B=>Y, C=>Zに置換されX1Y1Z1になる
0995nobodyさん2006/10/25(水) 07:22:26ID:???
間違えた
strtr("A1B1C1", "ABC", "XYZ");
phpは似たような関数で引数の順番が違うからいちいちマニュアルで確認しないといけない
0996nobodyさん2006/10/25(水) 08:00:56ID:???
次スレ立てるけど、いくつか修正するのに文句あるやついる?

・「ですます調」が中途半端に混ざっててキモイので全て「非ですます調」に統一。
・過去スレを全部リストアップするのは色々な意味で無駄なので5つ程度に制限。
・関連リンクでZFのマニュアルは日本語版があるので修正。
・関連スレは確認が面倒なので削除(どのスレも「php」で検索するだけでヒットするのにリストアップする必要性を感じない)。
・FAQは変なとこで改行されててムカつくので、変な改行を除去。
・printはecho同様に関数ではなく、値を返すだけなので修正(数スレ前に話題に出た)。
09979962006/10/25(水) 08:11:19ID:???
つーか、そんなこといちいち断ってから立てる必要もないか。
1000まで残り少ないし。
変だったら、さらにその次のスレから直してください。
09989962006/10/25(水) 08:13:52ID:???
なにこの板。スレ立てられないじゃん。
スマソが誰が任せた。
0999nobodyさん2006/10/25(水) 08:27:59ID:???
じゃとりあえず適当にスレ立ててくる。
1000nobodyさん2006/10/25(水) 09:13:56ID:???
次スレ
【PHP】下らねぇ質問はここに書き込みやがれ 31
http://pc8.2ch.net/test/read.cgi/php/1161733546/
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。