【PHP】下らねぇ質問はここに書き込みやがれ 30
レス数が1000を超えています。これ以上書き込みはできません。
0001nobodyさん
2006/10/05(木) 01:38:25ID:y1WWhz/pまず読め→【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/phttp://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/phttp://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/pPHP関連の書籍 第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/p1.文字コードは何を使えばいいの?
→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→ 確認すべきは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に保存?
→ 好きにしてください
0009nobodyさん
2006/10/05(木) 01:50:03ID:???(何かFAQに加えないか?と話が上がってた気はするが、時間なくて放置。)
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:???0016nobodyさん
2006/10/05(木) 06:38:42ID:???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そこはちゃんと書き換えましたorz
…つまり、アクセス権とかの問題なのか…!?
0022nobodyさん
2006/10/05(木) 11:15:24ID:???こんな感じでデータ関数で出力された文字列があります。
これをThuだとかOctだとかを、数字に戻す関数はありますか?
出来ればdateやtime関連の関数であればよいのですが・・・
0024nobodyさん
2006/10/05(木) 11:29:24ID:vfIfxPaMFTPクライアントを作っているのですが、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しっかりこんなコード吐いてましたorz
sendmail returned error code 127
ぐぐっても見つかりませんorz
ご存知の方、どうかお助けを…
002625
2006/10/05(木) 12:12:05ID:EznVcv3uXREA、モジュールなPHPは使えないみたいですorz
バイナリアクセスに制限があるぽ…
スレ汚しスマソ
0027nobodyさん
2006/10/05(木) 12:27:49ID:6/NUu1Qf無事解決いたしました〜〜〜〜〜〜><
答えて頂きありがとうございました
ctypeも勉強しますっっ#^^#
0028nobodyさん
2006/10/05(木) 12:49:53ID:???目的別に探せるとことかありますでしょうか?
PHPマニュアルなんかは、関数名を知っていないと、
調べることができないので、
どうしてもこういうとこで聞いたりして他力本願になってしまいます。
すんなり答えられる人もいるので、経験だとは思いますが、
経験が浅いうちはどうして調べればいいのでしょうか?
コツもあったらぜひ教えてください。
0030nobodyさん
2006/10/05(木) 14:01:51ID:6/NUu1Qfこのあたりが参考になるかも〜私も勉強中です^^
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:???関数はありませんか?
003328
2006/10/05(木) 14:34:59ID:???そんな本もあるんですね。早速アマゾンで探してみます。
>>30
参考サイトありがとうございます。
早速拝見しましたが逆引きもあって便利そうですね。
紹介してもらったサイトを参考に勉強したいと思います。
お互い経験積んで頑張りましょう!
0034nobodyさん
2006/10/05(木) 16:29:07ID:???0035nobodyさん
2006/10/05(木) 16:43:54ID:???softbankは無理
0036nobodyさん
2006/10/05(木) 16:45:40ID:???0037nobodyさん
2006/10/05(木) 17:46:18ID:???公式デベロッパーサイトってなんですか??
公式デベロッパーサイト KDDIとかで検索してみましたが良く分かりませんでした。
SoftBank無理ですか(=д=#)...
0038nobodyさん
2006/10/05(木) 17:55:52ID:FhS4/x3O手持ちの本を読んでもWebでも見つけられなかったので、質問させて頂きます。
$i=~$i;
ってどういう意味なんでしょうか?
あと、
$i=$i&0xFFFF;
の「&」の意味も教えて頂ければと思います。
よろしくお願い致します。
0040nobodyさん
2006/10/05(木) 18:05:58ID:???0041nobodyさん
2006/10/05(木) 20:19:53ID:???ビット演算子
・「~」はビット反転。
(例えば1をビット反転すると-2になるのは、2の補数で調べるとイイ)
・「&」は論理積。
詳細はビット演算で検索すると大量に見付かるからそっちに任せた。
0042nobodyさん
2006/10/05(木) 21:23:40ID:Mc2eGKeJ$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で制限されてるとかも
ないわけではない。
0045nobodyさん
2006/10/05(木) 22:17:20ID:BOdiPOMCphp.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:q9Uny2VW0047nobodyさん
2006/10/05(木) 23:37:09ID:???マニュアルにあるとおり。
>SMTP string
> Windows 環境のみで使用されます: mail() 関数でメールを送信する際に使用する SMTP サーバのホスト名または IP アドレス。
SMTPで送信したいのであれば、phpmailerとかPEARのMailつかうとか。
0048nobodyさん
2006/10/05(木) 23:46:35ID:BOdiPOMCありがとうございます。
自分もそのマニュアルを見てました。
便利なのにWinだけなんて残念ですね。
仕様について考え直してみます。
0049nobodyさん
2006/10/06(金) 00:11:09ID:???たぶん、インスタンスを参照してる変数すべてについて、別のものを指すようにする
またはunsetするとかの方法しかない。
0050nobodyさん
2006/10/06(金) 01:14:09ID:en5ikSuV0051nobodyさん
2006/10/06(金) 01:25:55ID:???よっとしてAPIって言葉の意味自体分からないとか?
0052nobodyさん
2006/10/06(金) 01:33:36ID:???アプリケーション開発における内部プログラムと外部プログラマをつなぐもの(つまり「ム」と「マ」をつなぐものw)ってくらいの意味をみんな好き勝手に使いすぎなんだよな。
ライブラリのことをAPIって言ってみたり、開発者向けドキュメントのことをAPIって言ってみたり、もう何が何だかわかりません><
0053nobodyさん
2006/10/06(金) 01:45:11ID:en5ikSuVffmpegをダウソしてサーバーに上げてみたんだがそんなライブラリはないみたいなエラーが出やがるorz
0054nobodyさん
2006/10/06(金) 01:49:15ID:???サーバーに上げた後、指定されたソースディレクトリに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:en5ikSuV0062nobodyさん
2006/10/06(金) 02:50:47ID:???>C、C++はあらかじめコンパイルしてアップロードしてください。
だそうだ。
0063nobodyさん
2006/10/06(金) 02:54:13ID:???さくらもできる
ただ負荷が強烈にかかる
0064nobodyさん
2006/10/06(金) 02:58:03ID:???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:???検索するって事を学んだ方がいいと思うが?
とりあえず、安心確実な公式ドキュメント
Developer APIs
http://www.youtube.com/dev
007042
2006/10/06(金) 04:48:10ID:???ありがとうございます。調べてみたら思いっきりセーフモードで動いてました。
perlだったら何とか通ったっぽいので、ファイル作成だけはperlで組むことにします。
0071nobodyさん
2006/10/06(金) 08:02:44ID:???PHPからデータソース名を指定してSQL Serverに接続したいのですが、
データソースの定義ってどこで行うんでしょう。
Java + Tomcatだと、Tomcatの設定に書いておきますが・・・
0072nobodyさん
2006/10/06(金) 08:14:15ID:???0073nobodyさん
2006/10/06(金) 08:15:14ID:???JavaでいうデータソースはPHPではコネクションを取得するスクリプト中に直接記述する。
コネクションの取得方法はDBMSごとに違うけど、ある程度統一的な方法を使うにはpearかpdoを使う。
後はマニュアル読めば全部載ってる。
0075nobodyさん
2006/10/06(金) 08:47:28ID:???実際どう使えばいいのかわからん。
実例みたいな紹介しているサイトありませんか?
0076nobodyさん
2006/10/06(金) 08:49:39ID:???でも独学ならそんなに無理して使う必要ないけどね。
最初からオブジェクト指向でやってる人なら無いとやってらんないだろうけど。
0078nobodyさん
2006/10/06(金) 10:23:12ID:???フレームワークを使ってみるとか。
今はsymfony、cakephp、zend frameworkが有力らしいです。某スレによると。
0079nobodyさん
2006/10/06(金) 10:43:47ID:???0080nobodyさん
2006/10/06(金) 11:00:41ID:???受け取ります。迷惑メールにならない方法ってありますか?
0083nobodyさん
2006/10/06(金) 12:14:24ID:???PHPのsession使うのはセキュリティの関係上DBにしてたのですが、
PHPをCGIとして動作させる場合、同様に共用レンタルサーバーでの
sessionの管理方法として、
DB、ファイル、どちらか優劣を決めることはできるでしょうか?
0085nobodyさん
2006/10/06(金) 14:09:59ID:???下のだと、たまに4文字しか抜き出せなかったりします。
何かお薦めの方法を教えてください。
$mictime = microtime();
$registdate = substr($mictime,2,5);
0086nobodyさん
2006/10/06(金) 14:15:50ID:???var_dump(microtime());
とかやって、どんな出力するのか確認してごらん。
で、マニュアルを読む。
http://www.php.net/manual/ja/function.microtime.php
0087nobodyさん
2006/10/06(金) 14:43:00ID:???5文字ってことは英数字でもいいの?
だったら
$microtime = md5($microtime());
$registdate = substr($mictime,0,5);
とかが簡単
008887
2006/10/06(金) 14:44:24ID:???$microtime = md5($microtime());
じゃなくて
$mictime = md5(microtime());
ね
0089nobodyさん
2006/10/06(金) 14:45:12ID:???http://www.thinkit.co.jp/free/news/0610/6/
0090nobodyさん
2006/10/06(金) 14:59:52ID:???ありがとうございます!
数字で取得したかったので、87さん、すいません。
substr($mictime,2,5)で取り出しても、最初の数が0だと抜き出す数字は
4桁になるのを、前に数字をつけて解決することにしました。下の
ような感じで取得することにしました。
$registdate="5".substr($mictime,2,5)
0091nobodyさん
2006/10/06(金) 15:02:26ID:???押したことになってしまいますが、これを無効にする方法ってありますか?
0093nobodyさん
2006/10/06(金) 17:19:11ID:???データ量が多くなるとパフォーマンスは落ちますでしょうか?
0094nobodyさん
2006/10/06(金) 18:22:26ID:???0095nobodyさん
2006/10/06(金) 18:46:31ID:???そうなの?
$_SESSION['hoge']とかで呼び出したときに、
その部分だけファイルからメモリに読み込まれるんだと思ったが・・・
0097nobodyさん
2006/10/06(金) 23:15:41ID:???効率も良かったりするけどな。(その代わりディスク容量食うけど)
残念ながらPHPのはファイルに$_SESSION配列を丸ごとシリアライズで格納、
って方式だから$_SESSIONの中身が太るとパフォーマンス落ちるよ。
0099nobodyさん
2006/10/07(土) 00:19:55ID:prmnYVal検索結果が配列の先頭にしか格納されません。
全ての検索結果を格納するにはどうすれば良いでしょうか?
お力添え、宜しくお願い致します。
環境 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]
0101nobodyさん
2006/10/07(土) 00:58:51ID:???$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:???ありがとうございます、お陰さまで期待通りに動きました。
eregは1回しか検索してくれないのですね./ ,' 3 `ヽーっ
0104nobodyさん
2006/10/07(土) 01:26:37ID:???0105nobodyさん
2006/10/07(土) 02:05:48ID:JIECxGar解説サイトはありますか?
0106nobodyさん
2006/10/07(土) 02:23:27ID:???0107nobodyさん
2006/10/07(土) 02:27:00ID:JIECxGarごめんなさい、CSVファイルからでした ^^;
0108nobodyさん
2006/10/07(土) 03:03:47ID:???0109nobodyさん
2006/10/07(土) 03:13:54ID:???0110nobodyさん
2006/10/07(土) 03:15:01ID:JIECxGar日本語含みます。EUC-JPです。
0111nobodyさん
2006/10/07(土) 03:26:17ID:???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:???0114nobodyさん
2006/10/07(土) 14:11:31ID:???いつも
$i =0;
while($i < count($hoge)){
}
としているのですが、
もっと簡単な記述方法ないでしょうか?
whileのなかで、さらに繰り返すとき
$i2 = 0;
とかしなければならなくていつもゲッソリするです
0115(^ω^)
2006/10/07(土) 14:21:43ID:???0116nobodyさん
2006/10/07(土) 16:31:02ID:???$i
ときたら次は
$j
だろう。
0117nobodyさん
2006/10/07(土) 17:05:05ID:???できないんでしょうかね?
エクセルに貼り付けるような感覚で。
できたらすごい便利だと思いませんか?
0118nobodyさん
2006/10/07(土) 17:26:46ID:???それが便利かどうかはともかく、可能か不可能かと言われれば余裕で可能です。
そしてそれを自動化したものの一種がいわゆる『きんたま』と呼ばれるものです。
0119nobodyさん
2006/10/07(土) 17:27:52ID:???PHPだけで実現するとなるとちょっと難しいかも知れんね。
0120nobodyさん
2006/10/07(土) 17:35:03ID:???URLに日本語がそのまま表示されたり、その語が削除されたりします。
日本語で検索をするときは、urlencodeを使うべきなのでしょうか?
解決策を教えてください。
0121nobodyさん
2006/10/07(土) 17:52:29ID:???0122nobodyさん
2006/10/07(土) 18:03:58ID:???RFCで調べても、わからないです。もう少しヒントを下さい
0123nobodyさん
2006/10/07(土) 18:36:40ID:???0124nobodyさん
2006/10/07(土) 19:22:02ID:???受け取った値を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:???0127117
2006/10/07(土) 20:15:12ID:+DkGqdImそれってウィルスのことですか?
詳しく教えてくださいな。
0128nobodyさん
2006/10/07(土) 20:56:36ID:???ありがとうございます。その後の使い方は、WHERE comment = $keywordみたいに
使って、当てはまるものを抽出して、HTML上に表示させています。
この場合は平気でしょうか?
0131nobodyさん
2006/10/08(日) 00:31:23ID:???0132nobodyさん
2006/10/08(日) 00:44:39ID:???ありがとうございます。じゃあ、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:???DBクラスや関数等を作るか
PEARのDBとかを使ったりするのが殆どだと思うけど
そのやり方で問題無いなら別にそれでも良いんじゃない?
0134nobodyさん
2006/10/08(日) 02:28:15ID:???これ認証が必要なSMTPは無理ですか?
0135nobodyさん
2006/10/08(日) 07:05:44ID:???013671
2006/10/08(日) 07:56:30ID:???今度は文字コードの件ではまってます。
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シフト-JISではいけないのですか?
0139137
2006/10/08(日) 09:21:53ID:oH20wXBjなるほど、文字化けという重要な問題が原因だったのですね。
ありがとうございました。
0140nobodyさん
2006/10/08(日) 10:49:17ID:???現象としては文字化けで済む場合もあるが、
本質はPHP(ZendEngine)がSJISのソースを実行できるようになっていない、
またSJISはEUC-JPなどと違ってきちんとSJISを考慮していない
(ASCII前提のものとか)と、適正な処理ができないコードが混じっているため。
必要なら別にSJISで書いたって構わないよ。
・PHPの設定で、ZendEngineに渡す前にSJISを解釈できる文字コードに変換するようにしておく
(ZendEngineから渡された文字コードをSJISに変換する逆方向も)
・その変換処理によるパフォーマンスやコストに目をつぶれる
ならば。
0142nobodyさん
2006/10/08(日) 11:54:22ID:???0143nobodyさん
2006/10/08(日) 12:04:16ID:???0144nobodyさん
2006/10/08(日) 13:32:33ID:???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:???結局何にしようが文字化け怒る時は怒るよ
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:???0153nobodyさん
2006/10/08(日) 20:10:09ID:???これは相対パスで指定してるからでしょうか?
というか、これは危険なのでしょうか?
普通は、そのファイルは存在しません、みたいな表示をさせるのでしょうか?
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:???絶対path使え
これ /index.php/hoge だと
ブラウザにはディレクトリが違うという判断になるはず
0158nobodyさん
2006/10/08(日) 21:56:06ID:???0159nobodyさん
2006/10/08(日) 22:25:44ID:???のですが、いまいちわかりません。
今は下のようにしているのですが、これだとできません。
どうか教えてください。
ereg_replace('http://+[a-zA-Z0-9\.\-\=\/\%\$\?\&\_]*', "<a href ='\\0'>
<font color=ff0000>"."\\0"."</font></a>", $string)
0160nobodyさん
2006/10/08(日) 22:36:30ID:???0162nobodyさん
2006/10/08(日) 23:54:56ID:???ていうときには、全部一度にやらずに、分割してテストしながらやるといいと思うよ。
まず、http・・・にマッチする正規表現を調べる、これが第一段階。(replaceじゃなくてmatchするしないだけをしらべる)
第二段階は、リンクを張るやり方のテスト。簡単な文字、例えば、aaaを<a href="aaa">にreplaceするやりかたを調べる
第三段階で、その両者を合体させる。
0163nobodyさん
2006/10/08(日) 23:57:11ID:???0164nobodyさん
2006/10/09(月) 00:56:36ID:???http://www.amazon.co.jp/gp/product/4774126713/
↑この本とか読めば、全て解決する。
0165nobodyさん
2006/10/09(月) 01:02:06ID:???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:mIjkQc8Ghttp://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:???おk、順を追って考えてみよう
1.ログファイルを配列に読み込む
$lines = file(LOG_FILE);
2.行を削除
array_splice($lines,$i,1);
3.ログファイルを更新
ファイルへの書き出し処理はどこに書いてるんだ?
0170165
2006/10/09(月) 01:38:20ID:???アドバイスどうもありがとうございます。
とても助かりました。m(__)m
$_SERVERの項目をhttpページとhttpsページで見比べて、違う箇所を発見しました。
$_SERVER[SERVER_PORT] => 80 という部分も違いましたが、
$_SERVER[HTTPS] => on というそのものスバリのパラメータがあったので、とりあえずこれをSSLページ判別に利用してみます。
0171nobodyさん
2006/10/09(月) 01:58:44ID:???与えて、Aボタンが押されたら、名前変更、Bボタンが押されたら、メアド変更
みたいにしたいのですが、受けとるページで、if(isset($_POST[B])){}のように
書いてもAボタンのif文が実行されてしまいます。
どうすればいいでしょうか??教えてください。
0172nobodyさん
2006/10/09(月) 02:17:29ID:???受け取るページに、
print_r($_REQUEST);
と書いて、受け取っている値をチェックしてみよう。
ボタンがたくさんある方のページは、
(1)ボタン毎に<form>〜</form>で囲んで確実に違う動作にする
(2)JavaScriptでボタン毎に動作を違うものになるようにする
という方法があるんじゃないでしょうか?
0173nobodyさん
2006/10/09(月) 02:19:33ID:???if ( isset( $_POST[B] ) ) { }
の部分を
if ( !empty( $_POST[B] ) ) { }
に変えてみたら動作変わる?
0174nobodyさん
2006/10/09(月) 02:24:32ID:???ありがとうございます。
ボタン毎にformを設定しているのですが、何か変な挙動が。笑
print_r($_REQUEST);←を使って色々と頑張ってみます!
あと、もう一つだけお願いがあるのですが、enterキーを押しても
submitが押されたことになるのを止めたいのですが、どうすればいいのでしょか?
0175nobodyさん
2006/10/09(月) 02:59:58ID:???0177nobodyさん
2006/10/09(月) 03:30:06ID:???ボタンごとにフォームを分ければ確実に出来る。俺はそうしてる。
それから、if文での判別には、submitボタンに設定したnameおよびvalueは使わないように。
理由は省くが、とにかく使わないように。
その代わり、hiddenで、name=mode value=A などとして、それを使って判別すると良い。
0178nobodyさん
2006/10/09(月) 08:57:28ID:mIjkQc8Gすいません。、、あんまり詳しく書けてなかったみたいです><;;
>>169
おぉ!ありがとうございます!早速直して行きたいと思います!!
アドバイスありがとうございました^^A
0181nobodyさん
2006/10/09(月) 11:17:20ID:/lkovAUhPHP 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:???リンクをクリックすれば、
認証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:???超・極める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にログインする説明だった。
0185183
2006/10/09(月) 15:17:21ID:???レスありがとうございます。
びっくりしたことに、ちょうどその書籍目の前にありました。
ただ、これに関しては同サーバーから相手先のデータを読み込んで表示する、
という感じですよね。
直接該当ページに移動するのは無理でしょうか?
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:???0189nobodyさん
2006/10/09(月) 18:33:58ID:???サンクス
0190nobodyさん
2006/10/09(月) 19:06:57ID:???$host = ホスト(略);
$id = crypt($host.$_SERVER['USER_AGENT'].date("w"), "HOGE");
としてるんですが、こんなんでいいのでしょうか?なんか書き込んだ人を個別に判別できる値とかないんでしょうか?
0191nobodyさん
2006/10/09(月) 19:16:58ID:???0193nobodyさん
2006/10/09(月) 20:25:08ID:???imgの中に、widthなどをいれると全てそのサイズになってしまいます。
ある一定以上大きい画像は幅、高さを縮小させて表示させるには、imageizeなどを
使えばいいのでしょうか?
もし、よろしければ詳しいやり方を教えてください。お願いします。
0194nobodyさん
2006/10/09(月) 20:30:38ID:???1.getimagesize()でファイルの縦横サイズを取得する。
2.縦横がそれぞれ指定サイズ以上かを判定する
3.縦か横のどっちか大きい方をheightまたはwidthで指定する
だけかと。こんなのいちいち人に聞くような内容じゃないぞ?
0195181
2006/10/09(月) 20:36:00ID:/lkovAUh感謝です。
廃止予定となっているのがちょっとだけ気になりますが
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でメール送るときって件名の文字制限ってあるんですか?
確か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:???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行いたいのですが,文字化けしてて使えません.
対策方法お知りの方おられましたら,お教え願えないでしょうか?
0203nobodyさん
2006/10/09(月) 22:36:35ID:???それだ!!
でも、文字数は20〜30文字ぐらいなんですよ・・・
【100yen or 200yen】お前ら最高!でも俺の方が最高!
上みたいなヤツだと「最高!」あたりが文字化けしてしまうっす・・・
0206203
2006/10/09(月) 22:44:52ID:???あ、すみません。最後の「最高!」でした。
それ以前は部分は文字化けしません。
今確認したところ、件名自体を短くして「俺は最高!」
のみに縮めた場合は文字化けせずに問題なく送信できます。
0207205
2006/10/09(月) 22:46:19ID:???×
>あ、すみません。最後の「最高!」でした。
>それ以前は部分は文字化けしません。
○
>あ、すみません。最後の「最高!」でした。
>それ以前の部分は文字化けしません。
0209nobodyさん
2006/10/09(月) 22:59:11ID:???0210nobodyさん
2006/10/09(月) 23:07:32ID:???が、俺はついついインデントを全排除してとにかく楽な方に逃げてしまうなあ。
0212nobodyさん
2006/10/09(月) 23:27:09ID:???インデントするもなんも、ヒアドキュメントの終端IDのある行はインデントできんでしょ。
見栄えもなんもあるかいな。
0213nobodyさん
2006/10/09(月) 23:29:29ID:???0214nobodyさん
2006/10/09(月) 23:30:22ID:???0215nobodyさん
2006/10/10(火) 00:33:53ID:???> ソースの可読性など考えると
ソースの可読性を考えてるやつはプログラムコードの中にHTMLを書いたりしない。
> こういう場合は外部ファイルにタグを記述しておき、それをfile関数などで読み出して、出力するほうがよいのでしょうか?
当然。
どうしてもソース中にHTML書きたいんなら、Perlじゃないんだからヒアドクなんて使わず
if(〜){
?><html><?php
?><head><title>test</title></head><?php
}
みたいにHTMLモードに入っちゃえば?
0216nobodyさん
2006/10/10(火) 00:34:08ID:???includeじゃ対応できない部分もあるよ。
たとえばwhileなどで動的にテーブル作る(セル数が変動する)ときとか。
これはプログラムの流れに沿ってHTMLも書かなきゃならんので、
やはりソースに合わせてインデントしたくなる。
0217200
2006/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:???なぜわざわざ関数化するんだよ。
ヒアドキュメント内の変数だって{}で囲めば、
requireで読み込んだあとに変数部分がきちんと展開されるぞ。
0219nobodyさん
2006/10/10(火) 01:25:19ID:???俺は表示の動的制御に関しては読み込まれるHTML側に<?php 〜 ?>埋め込みでPHPコードを書くかな。
HTMLファイル側に仕込むのは
・変数表示
・表示のフォーマット処理
・表示のON/OFF制御のためのif
・ループ処理
のみに制限すればSmarty辺りのテンプレートとほぼ同様の可読性を維持できるから問題は感じない。
逆に言うと、あの辺のテンプレートと同程度のコードは許容しないと外部ファイル化はまず無理。
>>217
いくらなんでもその書き方はありえないだろ。
外部ファイルにしている意味が全くないぞ。
0221nobodyさん
2006/10/10(火) 02:11:18ID:???ショートタグ派的にはだいたいこんな感じ。
(というか、テンプレートにこういう風に書けるように、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:???forを使わない、ってことなら分からなくもないけど。
0223221
2006/10/10(火) 07:59:33ID:???まあ、そりゃそうだ罠。つーか、>>216でwhileの話が出てたから一応言ってみただけなんだけど。
ロジックを表示周りに一体化させたい衝動に駆られると、whileも出てくるんじゃない?
あとは、while (DBからfetch) の中で直にechoして、メモリをすっきりさせてみたい年頃だったりとか。
0224200
2006/10/10(火) 08:37:53ID:???>>218
要するに、呼び出し側で
function test(){
$title = "testaaaa";
require("header.php");
}
としておき、header.phpで
<?php
echo <<< HTML
<html>
<head><title>$title</title></head>
HTML;
?>
ということでよろしいのでしょうか?
0225183
2006/10/10(火) 09:28:01ID:???通常のブラウザからのログインと同じように
対象のURLに自身のPCからアクセスするという意味です。
ためしにcURLでやってみたら、
上手くログインはできたものの
自身のサーバ経由で読み込むため、
ログイン先のシステムによっては、相対パスなどで指定されていて
リンク先などが正常に表示されませんでした。
0226nobodyさん
2006/10/10(火) 09:30:10ID:???0227nobodyさん
2006/10/10(火) 10:43:46ID:???PHPでプロキシーサーバーを作りたいってことなのかな?
0228nobodyさん
2006/10/10(火) 11:01:58ID:???0229183
2006/10/10(火) 11:33:55ID:???いえ、逆に単にID/PASSが分からないログインボタンを作りたいだけです。
現在の状況(cURL)がプロキシサーバーになってしまっているので困ってます。
知人にログインして見せたい情報があるんですが、
ID/PASSは知らせたくない、というだけの状態です。
クライアントPCから相手先のサーバにデータを送る必要があると思うのですが、
上の場合、PHPサーバーから相手先のサーバにデータを送ってしまうので
難しいのでしょうか。
0230183
2006/10/10(火) 11:40:05ID:???PHPサーバーから相手先のサーバーにPOSTしても
ログイン先のサーバーでは
PHPサーバーと対のセッション情報保存されるわけで、
クライアントがログインできたかどうかとは全く別問題なんですよね
0231nobodyさん
2006/10/10(火) 13:07:37ID:???こういうのって発覚するとロクな事にならないので止めといた方が良い。
単にログイン後のページを見せたいのなら
スクリーンショット撮って適度にモザイクかけて渡せ。
0232nobodyさん
2006/10/10(火) 13:29:01ID:???だから呼び出す側でも関数化する必要ないし、呼び出される側では変数を{}で囲めって。
正しくは(最も単純なのは)↓
$title = "testaaaa";
require("header.php");
としておき、header.phpで
<?php
echo <<< HTML
<html>
<head><title>{$title}</title></head>
HTML;
?>
0234nobodyさん
2006/10/10(火) 15:12:57ID:VCBK9AiMでも全然分かりません…
親切な方、いらっしゃったら教えてください
画像は365枚あります。
0235nobodyさん
2006/10/10(火) 15:33:44ID:???<img src="hair_<?php printf("%03d",date("z")) ?>.jpg">
0236nobodyさん
2006/10/10(火) 15:47:46ID:???0238nobodyさん
2006/10/10(火) 16:47:44ID:???0239nobodyさん
2006/10/10(火) 17:02:05ID:???何も危ないのはアダルトだけじゃないよ。
価格.com事件のようなのもあるしね。
0240nobodyさん
2006/10/10(火) 17:03:09ID:???てぶ鯖は・・・
♪誰でもどんなファイルでもアップロード可能!!
♪アップロードされているファイルは誰でもいくらでもダウンロード可能!!
♪たくさんアップロードした人にはなんと抽選でプレゼント!!
だからみんなで楽しく使っちゃおう!!
ftp://tebukuro.ath.cx
User:anonymous
password:メールアドレス
++++*******てぶ鯖********++++
0242nobodyさん
2006/10/10(火) 17:51:02ID:VCBK9AiMありがとうございました!!なんとか出来ました!
0243nobodyさん
2006/10/10(火) 19:27:44ID:HtJUF5F+このような配列が有る場合に
000は何個
111は何個
222は何個
と配列の中身をカウントする方法は有りませんでしょうか?
0245sage
2006/10/10(火) 19:57:14ID:???下記のように文字化けします。
心当たりありませんか?
?¢?¢?¢?¢?¢
とか
\???\?\£
0246nobodyさん
2006/10/10(火) 20:16:03ID:HtJUF5F+ありがとうございます。
理解出来ませんでした。
もう少し優しいやり方はないでしょうか?
0247nobodyさん
2006/10/10(火) 20:30:23ID:???244じゃないけどそれが理解できなかったら他の方法も無理なんじゃないかな。
これ以上ないくらいに分かり易く説明してくれてるのに。
決して難しくないから頑張って理解してみるといいと思うよ。
@要素を1個取り出す
Aarray_diffをかける
B減った個数を調べる
順を追って解決していくといいよ。
別な方法としては
$aの要素をキーとする新しい配列を作り、1つ要素があるごとにそのキーの値を1増やす。
これを$aの全ての要素について行う。
0249nobodyさん
2006/10/10(火) 20:34:22ID:???$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:???0251nobodyさん
2006/10/10(火) 20:54:22ID:???つーか、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:???serializeって…こうか!
array_count_values(array_map('serialize', $a));
目から鱗w
0254nobodyさん
2006/10/10(火) 21:21:17ID:???凄いですね
$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と比べると非常に情けないです・・・・
025571
2006/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全て求めたい:
例: 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:???echo chr($i);
}
0259nobodyさん
2006/10/10(火) 23:41:28ID:???echo base_convert($i,10,36);
}
0260nobodyさん
2006/10/10(火) 23:55:07ID:UY1nIn3b0261nobodyさん
2006/10/11(水) 00:03:42ID:???0-9、a-z、A-Zでは?
0262nobodyさん
2006/10/11(水) 00:16:16ID:???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);
}
}
0266nobodyさん
2006/10/11(水) 00:27:32ID:???foreach($a as $b){
foreach($a as $c){
foreach($a as $d){
$aa[] = $b.$c.$d;
}
}
}
print_r($aa);
0269nobodyさん
2006/10/11(水) 02:22:14ID:8Czx1vGv(実際は1行ずつ改行されてます)
上記のようなユーザーエージェントがある場合に
機種名だけを切り取りたいのですが
うまくやる方法はありませんでしょうか?
お手本ありましたらお願いいたします。
0270nobodyさん
2006/10/11(水) 07:06:40ID:???機種名というのは携帯電話端末の?
ユーザーエージェントの識別名は、クライアント側の自己申告なので
難しいと思う。まず各メーカーの仕様書を見ろ。
$lines = file ('filename.txt');
foreach ($lines as $line) {
$result = str_word_count ($line, 1);
echo "{$result[0]}<br>\n";
}
ほとんどのユーザーエージェントは、機種名を識別名文字列の最初に持って来ているので
これで取得出来ると思うが……。
0272nobodyさん
2006/10/11(水) 08:00:11ID:???フレームワーク使うからurlが変わっちゃいます。
いままでのurlには末尾に.htmがついていたのですが、
フレームワークのurlには.htmがついていません。
.htm 付のurlでアクセスがあった場合.htm なしのurlに
転送できるのでしょうか。
0273nobodyさん
2006/10/11(水) 08:25:09ID:???トップだけでいいなら元々のHTMLと同じ名前のHTMLを1個置いといて
中に
<?php Location("http://フレームワークなサイトのURL/"); ?>
って1行仕込んどくだけでいいと思うけど。
0274nobodyさん
2006/10/11(水) 08:37:40ID:???0275nobodyさん
2006/10/11(水) 09:46:15ID:???ありがとう。
0276nobodyさん
2006/10/11(水) 10:11:16ID:???0278nobodyさん
2006/10/11(水) 12:35:16ID:???ありがとう。
0279nobodyさん
2006/10/11(水) 12:41:52ID:???0280nobodyさん
2006/10/11(水) 12:57:14ID:i80IIJil言われるんですが、使わない方がいい理由って何かあるんでしょうか?
0281nobodyさん
2006/10/11(水) 13:20:32ID:???「instanceof演算子を使って下さい」
0282nobodyさん
2006/10/11(水) 13:24:57ID:???お前も日本語読む努力をしようよ。
「何故、これが非推奨になってるのか」を聞いてる質問だろ?
これが非推奨でinstanceof演算子を使えといわれてることは
質問者はすでに理解してるんだよ。その理由を聞いてんの。
0284nobodyさん
2006/10/11(水) 13:39:48ID:???PHP5で演算子化(instanceof)されてより効率がよくなったから。
わざわざ関数を通してオーバーヘッドを増やすのはナンセンス。
0285nobodyさん
2006/10/11(水) 13:47:02ID:P+AC1Js6愛猫の動画を365日自分の携帯用ホームページに表示したいです
365本の動画はすでに1〜365まであります
教えてくださる方、お願いします。
0286280
2006/10/11(水) 13:49:42ID:i80IIJilありがとうございました。
283は私じゃありません。
0287nobodyさん
2006/10/11(水) 13:53:04ID:???動画が http://exsample.com/movie1.mpg 〜 http://exsample.com/movie366.mpg
というURLになってるとして(閏年を考えたら366本必要だよ)
サイトからのリンク
<a href="movie.php">今日の動画</a>
movie.php
<?php Location("http://exsample.com/movie" . (date("z") + 1) . ".mpg"); ?>
とすりゃいいんじゃないの。
0291nobodyさん
2006/10/11(水) 14:30:03ID:???0292nobodyさん
2006/10/11(水) 14:56:54ID:???どうやらCGIプログラムを使うといいらしいのですが、
CGIについてまったくのド素人なため、1から作るというのが難しい状況です
お勧めのフリーCGIプログラムがありましたら教えてください
0295nobodyさん
2006/10/11(水) 15:20:56ID:???いいのでしょうか?getimagesizeで縦や横のサイズが500以上だったら300に
する、みたいなことはできたのですが、それだと、元の画像の縦横サイズが
変わってしまいます。縦が小さくなったら、同じ比率分だけ、横も
縮小させたいのです。どうか宜しくお願いします。
0296nobodyさん
2006/10/11(水) 15:28:02ID:???ありがとう。
0297nobodyさん
2006/10/11(水) 15:32:22ID:???小学校からやり直す?
$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:???http://masago.kir.jp/php20040218.php
No29.大きさを変えようっ(サムネイル) ---- GDライブラリ[3]
離れPHP島のサンプルは参考になりますね!
便利☆便利(^^)v
0299nobodyさん
2006/10/11(水) 15:50:48ID:???ありがとう。
0301nobodyさん
2006/10/11(水) 16:39:42ID:WiH1H+/l対応する $_POST[] の中身って何になりますか?
0303nobodyさん
2006/10/11(水) 16:47:25ID:WiH1H+/l何も記入されていない状態、と、
普通は捉えてもらえると思いましたがorz
0305nobodyさん
2006/10/11(水) 17:00:10ID:WiH1H+/l>>304
お手数おかけしました…
0306nobodyさん
2006/10/11(水) 17:00:51ID:???ありがとう。
0307nobodyさん
2006/10/11(水) 17:05:36ID:WiH1H+/lVBとは違って、= は代入、 == が比較だぞ!orz
0309nobodyさん
2006/10/11(水) 17:17:32ID:a92Vtxiqhttp://jp.php.net/manual/ja/function.fopen.php
オープンが失敗すると、関数は FALSE を返し、 E_WARNING レベルのエラーを発行します。
とのことですが、プログラム側で失敗した原因を知る方法はありませんか?
0310285
2006/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+/l0312nobodyさん
2006/10/11(水) 17:35:48ID:???http://jp.php.net/manual/ja/function.header.php
movie.php
<?php header("Location: http://example/movie/" . (date("z")) . ".amc"); ?>
じゃないのか?
0314nobodyさん
2006/10/11(水) 17:37:14ID:WiH1H+/l一行目は余分なんです(´;ω;`)
0316nobodyさん
2006/10/11(水) 17:41:34ID:WiH1H+/l…!! これは!!!
吊ってくる。
0318nobodyさん
2006/10/11(水) 17:48:37ID:???ありがとう。
0322nobodyさん
2006/10/11(水) 20:25:52ID:???コーティング規約とかによるのかもしれませんが、
PHPにおける、変数名、定数名、クラス名、関数名のつけ方は、
業務ではどのような感じでつけていますか?
頭に大文字、全て小文字、アンダースコアで繋ぐなど。
Hogehoge hogehoge hoge_hoge HogeHoge等・・・
0323nobodyさん
2006/10/11(水) 20:36:38ID:???アンダースコアって使うのかなあって感じですが。
個人的にはクラス姪は HogeHoge, instantiateしたのは hogeHogeが好きだけど
0324309
2006/10/11(水) 20:52:44ID:VRU7wb5kううむ、厳しいですね。ありがとうございました。
0325nobodyさん
2006/10/11(水) 21:04:51ID:???ありがとう。
0326nobodyさん
2006/10/11(水) 21:19:21ID:???Namespace_Package_ClassName_Etc
$variable_name or $variableName
$property_name or $propertyName
$_private
functionName()
methodName()
0327nobodyさん
2006/10/11(水) 21:58:43ID:???100個くらいになるとかなり時間がかかる。
これを改善する方法は無い?
0328nobodyさん
2006/10/11(水) 22:14:40ID:qjuz9ghDの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:???それにホスト名はとりにいってるからね
0330nobodyさん
2006/10/11(水) 22:31:58ID:???ありがとう。
0332nobodyさん
2006/10/11(水) 23:26:06ID:???その場でやらずに事前に変換しとくくらいしかないのでは…
それともローカルでDNSサーバー立ててそいつとプライベートで通信すれば
少しは速度向上できるのかな。
0334322
2006/10/11(水) 23:55:58ID:???どうもありがとうございます。
どのようにつけたらベストなのかわからず迷っていたので、
大変参考になります。ありがとうございます。
0335nobodyさん
2006/10/11(水) 23:59:47ID:???ありがとう。
0337nobodyさん
2006/10/12(木) 08:09:56ID:???まぁ専ブラでNGワード登録して弾いてるから全く問題なし
むしろ、この人また書き込んでるよ。ご苦労様( ´,_ゝ`)プッ と笑えるなぁ
0338nobodyさん
2006/10/12(木) 08:30:21ID:???ありがとう。
0339nobodyさん
2006/10/12(木) 09:16:31ID:???0340nobodyさん
2006/10/12(木) 09:19:32ID:???0341nobodyさん
2006/10/12(木) 09:24:12ID:???0343nobodyさん
2006/10/12(木) 09:41:58ID:???そのフォルダ下のファイルの一覧を表示させるようなPHPスクリプトはありませんか?
0344nobodyさん
2006/10/12(木) 09:45:23ID:???0346nobodyさん
2006/10/12(木) 16:16:05ID:???http://au.php.net/manual/ja/function.opendir.php
このへん使って自分でがんばれ。
0347nobodyさん
2006/10/12(木) 16:20:29ID:???こっちでもよくね?/ ,' 3 `ヽーっ
http://www.php.net/~helly/php/ext/spl/classFindFile.html
0348nobodyさん
2006/10/12(木) 16:30:56ID:???どこまで真面目に作るかによるけど
簡単なのならこれが1番楽
ttp://www.php.net/manual/ja/function.glob.php
0350nobodyさん
2006/10/12(木) 21:40:10ID:???0351nobodyさん
2006/10/12(木) 21:44:11ID:???0352nobodyさん
2006/10/12(木) 21:50:06ID:???http://winbinder.org/index.php
これ使えばできる
一応他にもあった気がするが忘れた
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:???スタティック変数にするメリットってたとえばどういうときなんでしょうか?
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:???$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:???おーわかりやすい説明ありがとうございます。
これでひとつまた賢くなりました。
メンバ変数はprivateがよいのですね?了解しました!
早朝にわざわざレスありがとうございましたm(__)m
0361nobodyさん
2006/10/13(金) 10:49:27ID:???ありがとう。
0362nobodyさん
2006/10/13(金) 11:21:08ID:7vpqtGwfmailtoを利用して空メールをさせて
折り返しに登録メールや案内メールを送るのがありますが
これは何かメールサーバみたいなものやサーバの設定が必要だと思うのですが
そういったものを用意せずに
mailtoを利用した感じのものでメアド取得は出来ませんでしょうか?
0363nobodyさん
2006/10/13(金) 11:46:12ID:???postなら分かったのですが。
0365nobodyさん
2006/10/13(金) 12:23:56ID:???スレ違い。
しかもメールを送られた時の処理なのに、メールサーバの設定をせずに潜り抜ける意味がわからない。
そういうのは普通/etc/aliasesか.forwardから適当にスクリプトを起動する。
0366nobodyさん
2006/10/13(金) 12:28:57ID:???0367nobodyさん
2006/10/13(金) 13:27:29ID:???swfにxmlを読み込ませる場合、セキュリティの都合上
自ドメインのxmlしか読み込めないらしいのですが
他ドメインのxmlを自サイトのファイルにインクルード
して読み込ませることは出来ますか
0368nobodyさん
2006/10/13(金) 13:43:17ID:???通常は受信メール毎にスクリプトを自動実行させるように
sendmail等のサーバー設定を行って組むんだが、
受信BOXのメールを定期的に動かしたスクリプトでPOP受信すれば
若干のタイムラグは発生するが同様のことはできるよ。
0370nobodyさん
2006/10/13(金) 13:53:31ID:wYHWwd6xもちろん、メーラーの設定は変えたのですが、
Mac OSXを確認用サーバーに使用しており、phpからのメール送信ができなくなってしまいました。
特にエラーはでないのですが、送信されない状況です。
とりあえず、php.iniの設定で、
smtp_port=の部分を587にしてみましたが、ダメでした。
何か解決策がありましたら、教えてもらえると有り難いです。
0372nobodyさん
2006/10/13(金) 14:08:35ID:???0373nobodyさん
2006/10/13(金) 14:33:47ID:wYHWwd6xメールのほうは捨ててしまったのですが、恐らく↓の影響かと思います。
ttp://www.plala.or.jp/access/community/mailplus/smtp_auth.html
0374nobodyさん
2006/10/13(金) 14:45:50ID:???smtp認証はしゃべれないはず。
fsockopenでプロトコル手書きするか何か別の手を使うしかないと思う。
0375nobodyさん
2006/10/13(金) 14:58:01ID:???0376nobodyさん
2006/10/13(金) 15:12:22ID:???ありがとう。
0377nobodyさん
2006/10/13(金) 17:10:43ID:0s8cJuHn例に出ていたのですが、たとえば図書館の本検索システム。
これはデータベースでやってるところが大多数らしいのですが、データベースを使わずにやっても出来ると思うのですが、どうなのでしょうか?
件数が30万件とかものすごく多くなると速度に差がでてくるのでしょうか?
それともサーバーの負荷の問題でしょうか?
0378373
2006/10/13(金) 17:22:09ID:???全然詳しくないのでアレなんですが、メーラーの設定みたいに、
ポート25を587に変えるだけじゃダメなんですねぇ。
0381nobodyさん
2006/10/13(金) 18:13:07ID:???30万件のレコードから、検索や抽出、並べ替えなんかをするのを
がんばって作ってみな。
まあ、結果を得られる速度はDBに負けるだろ。
もし対等に渡り合えるのがかけてるんなら、DBを作れたって話だ。
0382nobodyさん
2006/10/13(金) 19:13:58ID:???件数が多い場合や複数条件の組み合わせでやっぱ速度に大きく差が出るね。
速度に差が付く理由の1番大きなところはインデックスの生成だから
そこを自作してやればDBと対等かそれ以上の速度を出すことは可能。
それ以外にもデータ更新時に破損しにくいとかの堅牢性やメンテのしやすさ
なんかも理由には挙がるけど、データがほとんど更新されない静的データなら
どっちでも大した問題にはならないと思う。
検索処理と並行して頻繁に更新されるデータならDBで作ってないとすごく怖い。
0383377
2006/10/13(金) 20:14:05ID:0s8cJuHn>>381
>>382
皆様ありがとうございます。 やはり速度がかなり違うのですね。
データが破損しにくいとは知りませんでした。 どっちにしろ手間かけるくらいならDB使ったほうがいいということですね。
ありがとうございました。
0384nobodyさん
2006/10/13(金) 20:25:25ID:???0385nobodyさん
2006/10/13(金) 20:46:39ID:jl8poghH画像を右クリックで保存等は出来ても構わないのですが、画像のパスだけは
隠しておきたいのです。
テストではGDを利用して出来たのですが、使うサーバはGDが使えないのです。。
宜しくお願いします。
0387nobodyさん
2006/10/13(金) 21:27:48ID:???0388nobodyさん
2006/10/13(金) 22:27:07ID:???/img/****.jpg だろうが、 /img.php?****.jpg だろうと
どっちにしても、画像のパスには違いないわけだが…
直リンク対策や、会員限定とかのためにPHPを通して表示したいって事?
何が目的なのか、良く判らないんだけど
0389nobodyさん
2006/10/13(金) 23:38:25ID:???http://hoge.com/?id=passwd
$id = "";
if(isset($_GET["id"])){ $id = $_GET["id"]; }
としてから受け取っているけど、これって正解ですか?
0390nobodyさん
2006/10/13(金) 23:49:32ID:???俺も初め385の意味がわからなかったが、387を読んで、画像のパスを隠すというのはおそらくサーバ上での絶対パスを隠すという意味ではないかと推測。
で、もしそうなら387でFA。
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:???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')");
0395nobodyさん
2006/10/14(土) 01:39:03ID:???$id = isset( $_GET['id'] ) ? $_GET['id'] : '';
0397nobodyさん
2006/10/14(土) 02:07:22ID:HT3mnicjクッキーの変数ごとに期限を設定できるんでしょうか?
すぐに消えるクッキーとずっと残るクッキーを同居できますか?
0398397
2006/10/14(土) 02:19:24ID:???0400nobodyさん
2006/10/14(土) 08:20:59ID:???いまどき count(ary)とかやって要素数得るのダセーとか思うんだけど・・・
0401nobodyさん
2006/10/14(土) 08:32:36ID:+DX4AjuZC++やJavaみたいにデフォでは満足なリスト機能を持たない言語なら
クラスで用意するのも分かるが、LispやPerlやPHPくらいになると
むしろクラスで処理するのがナンセンスに感じるけどね。
count($arr)だって実際はプロパティ値返すだけだし。
0403nobodyさん
2006/10/14(土) 09:01:08ID:???英数字だけをとりだしたいのですが、
いい方法はありますか?
はじめは以下のようにやっていたのですが、
文字の組み合わせによって余計な文字が出てくる場合があります。
preg_replace('/[^\w]/', '', $str);
mb_eregi_replace を使ってみたのですが、
使い方があっていないのかうまくいきません。
0404400
2006/10/14(土) 09:01:33ID:???あと文字列もクラスじゃない。
JavaやC#だったら、インテリセンスでメソッドが出てくるが、
PHPだとそうはいかない。それがだるい。
0406nobodyさん
2006/10/14(土) 09:12:30ID:???文字列をわざわざクラス化!?w
だったらC++やJavaで整数がなんでクラスじゃないのか説明してみなよ。
それはダサくないのかね?
0407400
2006/10/14(土) 09:17:31ID:???とにかくインテリセンスがきかんのがうざい。
インテリセンスでクラスのメソッド名が出てきたら、
だいたい該当するのはどれなのかわかる。
PHPは、いちいち調べるのがめんどい。
タイポする可能性も増える。
しかも型もコンパイルないからエラーにならんし。
つーか、こんな言語愛用してるのは糞だ。死ね!
0408385
2006/10/14(土) 09:18:49ID:53yXNDSa>>390さんの通り、サーバに置いてある画像の絶対パスは隠しておきたいのです。
headerのcontent-typeとreadfileでどのようにやるんでしょうか。
よろしければヒントお願いします。
0410nobodyさん
2006/10/14(土) 09:28:56ID:???お前がそう思ってるならそれでいい。
糞だと思うなら使わなきゃいいし、このスレを見る必要もない。
もう来るなよ。
0413400
2006/10/14(土) 09:47:59ID:???じゃあ、おめぇこそ説明しろ。
文字列や配列がクラスなら、整数もクラス化しておいてもいいんじゃないかという意味を。
てか、C#じゃ整数もクラスだがな。でも、実際四則演算ばかりだから意識もしない。
むしろJavaみたいにプリミティブ型とクラスで分かれてる方が、色々うざい。
0415nobodyさん
2006/10/14(土) 10:00:02ID:???ありがとう。
0416400
2006/10/14(土) 10:02:19ID:???俺の煽りも今ひとつだったし、そもそもみんなまだ寝てるか。
0417nobodyさん
2006/10/14(土) 10:15:23ID:lXZlr1go0418nobodyさん
2006/10/14(土) 10:59:38ID:???オブジェクトだと確かに便利だと思った
PHPユーザは純OOな言語もやっておくと
PHPの良さ/悪さに理解が深まると思う
ただPHPはスタートがOO言語じゃないし
もう全部関数でいいじゃんみたいな発想から
スタートしてるからこれOOじゃねーって言っても
根本の設計思想から違うから仕方がない
インテリセンスがきかないってのは
eclipseなりZSなりのIDE使えば問題なし
あとsplでArrayObjectもIteratorも一応ある
0419400
2006/10/14(土) 11:31:31ID:???もれが言いたかったのは、クラスだったらオブジェクト変数書いて、
その後に->って書いたらメソッドの候補が出てくるでしょ?
でもクラスじゃなかったら、そうはならないから、めんどいってこと。
PHPの良いとこは、O/Rマッパー作らんで良いことかな。
selectの結果が連想配列で返ってくるのは便利。
型もないから、いらんこと気にしなくて良い。
0420nobodyさん
2006/10/14(土) 12:12:02ID:???マジやん
おお、
0421nobodyさん
2006/10/14(土) 13:06:48ID:???演算子が使えないけどな!
0422nobodyさん
2006/10/14(土) 13:07:22ID:???0424nobodyさん
2006/10/14(土) 13:15:25ID:mRs0+tI4SESSIONとして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:???そのObjectに格納されてるObjectってのが、実体じゃなくリファレンスを格納してるんなら
当然のようにセッションには記録されないと思います。
リファレンスの本体はデータの外部にあるわけですから。
で、多くの場合、そういう構成になってるのではないでしょうか。
何とかして実体も一緒にセッションに格納されるようにすれば解決するんじゃないのかなぁ。
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:???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が実行されてるってことは、
表現できてると思ったんだけど。
その保証されてるか否かってのが、何か気になる。
ひょっとしたらそこにオレの問題点が有るってことかな?
0432431
2006/10/14(土) 14:49:59ID:mRs0+tI4DetailChartObjArrの属性をpublicにしてSESSIONを出力してみたら、
とりあえず保存はされてるみたい。
他に何か原因が有るか考えてみます。
お騒がせしました
0433nobodyさん
2006/10/14(土) 15:25:49ID:???そのつくりだと、必ずdefaultがcase 1のまえに実行されるようには見えないから、
>中身があるのは保証されているのかよくわからんし
ということになる。
つくりを見直したほうがいい。
0434nobodyさん
2006/10/14(土) 16:08:25ID:???ログインシステムで、一人しかログイン出来ないように
ログインの重複を拒否したいんですが、どうプログラムを書けばいいんでしょうか?
0435nobodyさん
2006/10/14(土) 16:24:35ID:???ログイン処理
$logged=true;
}
0436nobodyさん
2006/10/14(土) 17:37:45ID:???loggedという関数がある訳ではなくて、単に変数をフラグのように扱ってるんですよね?
PHPってユーザーの数だけスクリプトが動くから、それでは意味がないと思っていたんですが
PHPの変数ってサーバで共有でしたっけ・・・
0438nobodyさん
2006/10/14(土) 17:50:26ID:???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:???しかし、他のユーザーに「今ログインしてる人がいます」を返すポートが
別に必要になる罠。
0444nobodyさん
2006/10/14(土) 19:18:19ID:???どのようにやれば、いいのでしょうか?
preg_matchでやろうとしても、上手くできません。
どうか教えてください。
0445nobodyさん
2006/10/14(土) 19:28:10ID:???0448441
2006/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:???0453nobodyさん
2006/10/14(土) 22:17:46ID:???ファイルロックされてたら、だれかログインしてると。
0455nobodyさん
2006/10/15(日) 01:50:31ID:hzF42wCh* @hoge hugahuga
*/
のコメントの書き方で、ファイルの作成開始日や、更新日は、
どのようなキーワードで書けばいいですか?
0456nobodyさん
2006/10/15(日) 01:53:37ID:???0457455
2006/10/15(日) 01:57:38ID:???0458nobodyさん
2006/10/15(日) 02:05:42ID:???author の検索結果のうち 日本語のページ 約 30,600,000 件中 1 - 100 件目 (0.26 秒)
autherで検索したら、辞典が3番目に出てきたからびびったぜ・・・
0459nobodyさん
2006/10/15(日) 02:10:59ID:???*File: window.C
*Auther: Akiko Wada
*Date: 1999/12/31
*EndHeader:
とかでいいんじゃね?
きまりなどない
0460nobodyさん
2006/10/15(日) 03:31:19ID:???ドキュメントの自動生成にどのツールを使うのかによる。
phpDocumentorを使うなら、該当するマニュアルを読むべし。
documentable elementでぐぐれ。
ちなみにファイル作成/更新時刻なんて手書きで書かないでしょ。
そういうのはCVSやSVNなどでキーワードをつけとく。
0461455
2006/10/15(日) 03:56:05ID:???更新日は手ではあまり書かないですが、
作成開始日は書いておくと、わかりやすかったりするんです。
authorは今気付いてよかった。
0462nobodyさん
2006/10/15(日) 04:48:19ID:???調べてから来いよ。
決まった書き方なんて特にないし、使うツールまたはローカルルール依存。
だいたいコメントなんだから好きなこと書いときゃいいんだよ。
ついでに言っておくと、ファイル作成日時なんて普通は誰も書かないから、完全に好きにしろとしか言いようがない。
0463nobodyさん
2006/10/15(日) 05:08:51ID:???0464nobodyさん
2006/10/15(日) 05:37:26ID:???0465nobodyさん
2006/10/15(日) 05:53:03ID:???作成日→created
更新日→modified
だろうけど、 >>460のいうとおり、svnなりcvsなりを使ってりゃ手で書く用事はないかなあ
0466441
2006/10/15(日) 11:00:23ID:???ユーザー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:???> ログインユーザーが2人以上になることのみを防ぐ目的です。
だから別アカウントの話でしょ。
誰か1人がログインしてたら他は一切ログインできない糞仕様サイト。
0471441
2006/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:???ちなみにパソコンAで2つウインドウを開いてそれぞれでログインするのは可?
もしくは、パソコンAでログイン→途中のリンクで新規ウインドウを開く、は可?
根本的にWEBアプリケーションで多重ログイン禁止って考え方自体が
ユーザから見て非常に使いにくいのでやめた方がいいと思うよ。
その記事にもあるが
> なお、理想としては、多重ログインでもきちんと処理できるようなアプリケーションの作りにして、
が正しいと思う。
同一PC同一ブラウザでの複数ウインドウでは支障が出ない作りになっているなら、
ログイン時に現在のセッションIDをユーザ情報に格納するようにして、異なるセッションIDで
アクセスしてきたユーザは無効としてログイン前画面に飛ばしてしまうのが手っ取り早いと思う。
0473nobodyさん
2006/10/15(日) 14:07:50ID:???>ユーザー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こういうグラフをGDで描きたいのですが、これはどう描くのが効率が良いと思われるでしょうか?
多角形なのかな、と思ってやってみたのですが……。
みなさんならどう描きます?
0477nobodyさん
2006/10/15(日) 16:31:50ID:???http://www.asial.co.jp/jpgraph/
0478nobodyさん
2006/10/15(日) 16:44:46ID:gxN1FoLoそうか、GDだと座標計算から始めないといけないから大変だ……。
ありがとうございます!
0479nobodyさん
2006/10/15(日) 17:28:34ID:???>ショップなんて、商品ごとに新しいページ開けたりするし。
アホか。
普通にPHPでセッション機能を作った場合、ブラウザ側で「新しいウインドウで開く」などの
操作を行なった場合は当然新しいウインドウからも同じセッションIDがサーバに送られるっての。
だから新しいページを同一セッションにて開けるのは当たり前。ショップとか関係ない。
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:???デフォルト引数値のとこ参照。
要するに本来その関数はhoge("hage");みたいに引数をひとつ受け付けて
それは関数内では$hugaに格納されるわけだが、
$hugaが指定されていない時、つまりhoge();のみだった場合は
デフォルト値として""が入る。
0484nobodyさん
2006/10/15(日) 20:45:55ID:???ともあれ頑張れ。
0485nobodyさん
2006/10/15(日) 20:49:21ID:???0486nobodyさん
2006/10/15(日) 21:32:21ID:???以下の例と同じような現象でした。
http://oshiete1.goo.ne.jp/kotaeru.php3?q=1649057
簡単に説明すると、serial型使った時は、sequenceテーブルが
自動的にできるので、そのテーブルにもgrant権限を与えないと
いけないというものでした。
同じ悩みの方もいるかもしれないので、報告まで。
0487nobodyさん
2006/10/15(日) 23:08:02ID:???0488nobodyさん
2006/10/15(日) 23:10:23ID:???異なった所有者のファイルをunlink()やtouch()できてしまいます。
http://www.php.net/manual/ja/features.safe-mode.functions.php を見ると、
>処理を行うファイル/ディレクトリが実行するスクリプトと同じUIDを有しているかどうかを確認します。
>処理を行うディレクトリが実行するスクリプトと同じ UID を有しているかどうかを確認します。
と書いているのですが、セーフモードでも異なった所有者ファイルのunlink()を
可能にするような設定が、safe_mode_gidの他にあるのでしょうか?
ディレクトリの所有者が異なる場合は、
正常に、セーフモードのエラーが出るのですが・・・
0490nobodyさん
2006/10/16(月) 00:11:08ID:???0491nobodyさん
2006/10/16(月) 03:23:02ID:???投稿した人のローカルのファイルの置き場を取得する方法ってありますか?
0492nobodyさん
2006/10/16(月) 03:29:10ID:???0494nobodyさん
2006/10/16(月) 03:33:56ID:???以前はブラウザの脆弱性で、JS使えば出来てしまってた気がするけど、今時は無理ではないかと。
つーか、他人に迷惑はかけるなよ。
0495nobodyさん
2006/10/16(月) 03:34:30ID:???パスまで出たら引く
0496nobodyさん
2006/10/16(月) 03:36:15ID:???あれって、仁義的にはありなのかな?
0498nobodyさん
2006/10/16(月) 03:39:55ID:???まぁあれはperlだけど。
0499491
2006/10/16(月) 03:45:43ID:???違う方法考えてみます。
0500nobodyさん
2006/10/16(月) 04:09:39ID:???0501nobodyさん
2006/10/16(月) 04:35:00ID:???それがフツー。
非safe_modeだと、ディレクトリに書き込み権限があれば誰でもファイルを作成・削除できる。
safe_modeだと、たとえディレクトリに書き込み権限があっても、ディレクトリのUIDが違うとファイルを作成・削除できない。
0502488
2006/10/16(月) 04:46:15ID:???>処理を行うファイル/ディレクトリが実行するスクリプトと同じUIDを有しているかどうかを確認します。
とあるのに、異なった所有者のファイルを削除できてしまっている、
ということで・・・
0503nobodyさん
2006/10/16(月) 05:43:51ID:???それは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:???マニュアルが変だね。
でも仮に、異なった所有者のファイルを削除できないとなると、
wwwサーバはユーザディレクトリのファイルを一個も削除できない仕様になる。
safe_modeは共用サーバ用に作られた仕様だからそれはどうかと。
(suEXEC環境とか、root権限持ってる環境の話は置いといて)
0507nobodyさん
2006/10/16(月) 06:13:53ID:???> wwwサーバはユーザディレクトリのファイルを一個も削除できない仕様になる。
wwwサーバはwwwサーバ自身がユーザディレクトリ内に作ったファイルを一個も削除できない仕様になる。
0508nobodyさん
2006/10/16(月) 07:27:32ID:???公式マニュアルの癖にコメント欄が付いてて
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:???0510nobodyさん
2006/10/16(月) 09:30:14ID:???そのメールにあるアドレスに飛ぶことで初めて登録が成立するシステムを作りたいんですが
どのようすれば作れるのか分かりません。
PHPの処理の流れを教えて貰えないでしょうか
0511nobodyさん
2006/10/16(月) 09:44:32ID:???そのまんまじゃん。
入力されたあとに、仮登録のファイル(仮登録フラグを立てる)を作る。
メール上の個別認識できるURLに飛んできたら、仮登録を本登録に変える。
個別認識部分に、自由設定のIDとか連番を使わないようにね。
0512nobodyさん
2006/10/16(月) 10:09:20ID:???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だったかな)から
変更するとPEARスクリプトファイル内で
パスが噛み合ってないところが出てきた記憶がある
エラーで出てるパスに実際のファイルがなかったらそういうのかも
pear.batの中のパスとかがちゃんと合ってるか確認してみれ
0514nobodyさん
2006/10/16(月) 15:53:48ID:???例:$a="abcdefghijk" の場合、 ijk を取得したいです。
0516nobodyさん
2006/10/16(月) 18:31:12ID:ecpKZqzB0518nobodyさん
2006/10/16(月) 19:04:54ID:???0519nobodyさん
2006/10/16(月) 19:15:03ID:4Z1hn7GP["Red"] => "Apple",
["Yellow"] => "Banana"
}
array_pop( )って、こういう配列に対応していないのかなぁ。
ファイルポインタがEOFに当たるまで、配列に格納する処理をしているんだけど
最後のEOFまで配列に格納しちゃうから、この関数で要素を削除しようと思っていたんだけど。
0520488
2006/10/16(月) 19:24:41ID:???マニュアルが変だいうことでがってんしました。
実装挙動は別によかったんですけど、
マニュアルと書いてあることと違うようなので、混乱してました。
0521nobodyさん
2006/10/16(月) 19:33:38ID:???$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ごめん、EOFなのかは分からないんだけど
[""]=> NULL
になっている。
インデックスが "" で、要素が NULL …。
array_pop( $array ) でvar_dumpすると、
「NULL」が返ってきた。
> 配列 array は、要素一つ分短くなります。
> array が空(または、配列でない)の場合、 NULL が返されます。
配列がおかしいのかな……?
0524nobodyさん
2006/10/16(月) 19:55:10ID:???arrayが空か配列でない場合、戻り値にNULLが返る。
arrayの最終要素の値がNULLだった場合も当然だがNULLが返る。
0525nobodyさん
2006/10/16(月) 19:57:45ID:4Z1hn7GParrayが空ってのは、引数にある変数の型がArrayでは無い場合のことかと思っていた。
じゃあ、こういう場合はどうしたらよいんだろう……。
0527nobodyさん
2006/10/16(月) 20:06:03ID:4Z1hn7GPえっ? 配列が返ってくるのを期待しているのに、NULLが返ってきたら
嫌だと思うでしょう。
とりあえず array_slice( $info, 0, -1 ) でイケました!
0528nobodyさん
2006/10/16(月) 20:12:04ID:cRZeyQ/b大量のincludファイルがあったときに困っています。
includ pathをgrepしたりしていると時間がかかってしょうがないですし・・。
他人のソースを除いてみて、ユーザ関数がどの外部ファイルに書かれているかわからない場合。
どのような方法が一般的なのでしょうか。
環境としてはサーバにあるファイルを直接viでいじっているような環境なので、eclipse等の便利なツールは使えません。
0530nobodyさん
2006/10/16(月) 20:18:31ID:???unset($array['']);のがよくね?
つーか521の言うように、EOFまわりのロジック見直したほうがいいと思うけど。
>>528
なんでgrepで時間がかかるの?
0531nobodyさん
2006/10/16(月) 20:24:16ID:cRZeyQ/bgrepが遅いのはハードのせいでしょうか、大量にありますし。
あとはできるだけ鯖に負荷をかけたくないのです。
grepが一般的なのでしょうか?
0532nobodyさん
2006/10/16(月) 20:32:18ID:???エディタでもなんでも使って見りゃいいし
ファイル名でだいたい想像つくだろ
0533名無しさん@お腹いっぱい。
2006/10/16(月) 22:18:14ID:TSmbOY92インデックス作成コマンドを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までしかコマンドを認識していないようなのです。
どなたか正しい指定の仕方をご教示願えませんか?
0535名無しさん@お腹いっぱい。
2006/10/16(月) 22:44:40ID:TSmbOY92"/[Cc]\\|/Program Files/Apache Group/Apache2/htdocs/dir/"
としてみたのですが、同じ結果になってしまいました。。。
0536nobodyさん
2006/10/16(月) 22:55:31ID:???> 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:???array_popの戻り値は最初から配列じゃないだろ。
やりたいことはarrayの最後の要素を削りたいって話であって
削った内容がなんであるかなんて気にする必要ないじゃん。
>>529
おまえも分かってない。
0538名無しさん@お腹いっぱい。
2006/10/16(月) 23:19:05ID:TSmbOY92ご指摘の通りでした。ありがとうございました。
0539512
2006/10/17(火) 01:52:14ID:???インストールパスに対するヒントをくださってありがとうございます。
結果的には、XAMPPのインストーラー版をダウンロードしなおし、
デフォルトのパスでインストールしたところ、うまくPEARが動くようになりました。
0540nobodyさん
2006/10/17(火) 02:52:05ID:???他の方が書いた、よく使うクラスやメソッドという認識であってますか?
PHPのフレームワークを使ってみようと思うのですが、
誰でも簡単に使えるものなんでしょうか?
Mapleというものをダウンロードして使ってみよウと思ったのですが、
中にPHPのファイルがたくさんあって、どうしたらいいのかわからなくて・・・
あとPEARはライブラリなんでしょうか?
0541nobodyさん
2006/10/17(火) 05:02:33ID:???SQLインジェクション攻撃の仕方とか、XSS攻撃の仕方とか、
詳しく解説されてるサイトなんてないでしょうか?
もちろん悪用はせず、自鯖で自分が攻撃者になってチェックをするつもりです。
0542nobodyさん
2006/10/17(火) 06:58:24ID:lz+2vZ2Tサイトも書籍も大量にあります。
0543nobodyさん
2006/10/17(火) 07:03:55ID:???とりあえず以下のページは全て読んで理解しとけ。
http://www.asahi-net.or.jp/~wv7y-kmr/memo/php_security.html
0544541
2006/10/17(火) 07:20:30ID:???これは素晴らしいサイトを紹介して下さりありがとうございます。
大変参考になります。
これから早速熟読してまいります。
0545nobodyさん
2006/10/17(火) 08:21:00ID:???こちらへ。
【PHP】フレームワークについて語るスレ5【総合】
http://pc8.2ch.net/test/read.cgi/php/1159579507/
0546nobodyさん
2006/10/17(火) 10:21:18ID:???何か良いpearライブラリとかないでしょうか?
逆(要素からヘッダー作成)なら見つけたんですが、
求めるもの(メールファイルから各種要素、From:など取得)
が見つかりません。
自作でやってるんですが、
HTMLメールの処理とか添付ファイルがついてる場合の処理とかが
非常にしんどいです。
0548nobodyさん
2006/10/17(火) 11:33:27ID:G6d4HSq5open_basedir Race Condition Vulnerability
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2006-5178
これに対するパッチって{公式|非公式}に出てますでしょうか?
0549nobodyさん
2006/10/17(火) 14:09:36ID:???0551nobodyさん
2006/10/17(火) 14:40:05ID:???if文で単調に書く以外にシンプルでよい方法はないでしょうか?
if($a == "abc" || $b == "def" || $c="ghi"){・・・}
より見やすい書き方ないでしょうか。
上ならまだいいんですが、
「ある複数の値」の数が増えてしまうとかなりだるいことになります
0552nobodyさん
2006/10/17(火) 14:45:13ID:???0553nobodyさん
2006/10/17(火) 14:49:33ID:???0554nobodyさん
2006/10/17(火) 15:51:36ID:lz+2vZ2T配列使え
つforeach
つin_array
つpreg_grep
好きなので。
0555nobodyさん
2006/10/17(火) 16:22:32ID:???switch()を使って分岐をしようと思ったんですが、
submit ボタンの値って、ボタンの表示名になってしまいますよね。
あれ回避方法ないんでしょうか?
submitボタンの値ではなく、
submitボタンの名前で分岐をする必要が出て困ってます。
0556nobodyさん
2006/10/17(火) 16:44:20ID:???submitの値は使わない
がFA
0557nobodyさん
2006/10/17(火) 16:51:11ID:???0558nobodyさん
2006/10/17(火) 17:06:57ID:???押したボタン毎に複数の処理させたいときはどうすんの?
0559nobodyさん
2006/10/17(火) 17:10:39ID:???0560559
2006/10/17(火) 17:11:22ID:???0563nobodyさん
2006/10/17(火) 17:14:28ID:???submit値が無かったら無視かデフォルト処理、でいいじゃん。
>>555
何が困るのか分からない。nameの有無で判定すればよろしい。
0564nobodyさん
2006/10/17(火) 17:22:22ID:lz+2vZ2T0565nobodyさん
2006/10/17(火) 18:12:30ID:???0566nobodyさん
2006/10/17(火) 18:56:29ID:Q9ZQ0FiRというSQLがPHPの中にあって分からないんですが。
& はどんな意味があるんでしょうか?
phpでなかったらごめんなさい、sqlの構文かな・・
0567名無しさん@お腹いっぱい。
2006/10/17(火) 19:04:11ID:kJ5BDveO533の問題は解決したのですが、今度は
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"
という具合に変数のままになってしまいます。
どうか正しい指定の仕方を教えていただけないでしょうか?
0569nobodyさん
2006/10/17(火) 19:08:55ID:???$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:???$command = "mknmz -U -O C:\namazu\var\namazu\index \"C:\Program Files
\Apache Group\Apache2\htdocs\$index\"";
とする手もあり。"〜" で括って途中の " は \" でエスケープ。
0572571
2006/10/17(火) 19:18:58ID:???$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何かいいクラスライブラリはないですかね。
phpocrを試してみたんですが学習型の様で…
0576名無しさん@お腹いっぱい。
2006/10/17(火) 20:36:50ID:kJ5BDveOの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:???\Apache Group\Apache2\htdocs\%s\%s"', $index, $index2);
こうしたいっていう意味かな?
0578nobodyさん
2006/10/17(火) 21:21:42ID:???せっかくヒントや関数を教えてもらったんだから
1度はその内容をマニュアルで確認してみようよ。
言われたとおりにしか書けないなんてちょっと最低だよ?
0580nobodyさん
2006/10/17(火) 21:27:46ID:rN63+8fU自習して、悩みに悩んだ上で聞けって話だ。
0581名無しさん@お腹いっぱい。
2006/10/17(火) 21:35:58ID:kJ5BDveOったので、ついつい見直しを怠ったり、すぐに質問をするといったことを
してしまいました。もうしわけないです。
0583nobodyさん
2006/10/17(火) 23:24:34ID:???0584nobodyさん
2006/10/17(火) 23:30:18ID:???自習して悩みに悩んだ上で聞くような人・・
それは、質問文書くためにあちこち検索して調べてたら自己解決しちゃうような人ですね。
0585名無しさん@お腹いっぱい。
2006/10/17(火) 23:45:01ID:kJ5BDveO進まないので焦って軽薄なことをしましたが、そんな逆ギレくん
ではありません。
0586nobodyさん
2006/10/18(水) 01:48:15ID:???入力された値が正しいURLじゃなかったらエラーを出したいのですがどうしたらいいでしょうか?
ちなみに
preg_match('/^(https?|ftp)(:\/\/[-_.!~*\'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)$/', $url)
これだとうまくいきませんでした。
よろしくお願いします。
0588nobodyさん
2006/10/18(水) 02:55:36ID:???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:???>>586の正規表現はそのページにある「実用版」の内容だよ。
> さて,ここまで長々と書いてきましたが,正確に正規表現を書くことをあきらめて,
> もっと簡単でいいやという人のための http URL の正規表現が以下になります.
> s?https?://[-_.!~*'()a-zA-Z0-9;/?:@&=+$,%#]+
これ↑
0590nobodyさん
2006/10/18(水) 12:52:03ID:kRDgnrctMysqlを使うために設定するextensionにdllが載っておりませんでした。
このバージョンでは使えないのでしょうか?
また使う方法があればご教授ねがいます。
0593nobodyさん
2006/10/18(水) 15:20:36ID:???マジで? (**[**()**]**)なのに?
俺これでURL自動リンク作って普通に動いてるけど…
/s?https?:\/\/[-_.!~*'()a-zA-Z0-9;\/?:\@&=+\$,%#]+/
0594nobodyさん
2006/10/18(水) 15:27:56ID:???. ィ
.._ .......、._ _ /:/l!
:~""''.>゙' "~ ,、、''‐'、| _
゙、'、::::::ノ:::::::_,.-=. _〜:、 /_.}'':,
``、/:::::::::__....,._ `゙'Y' _.ェ-、....._ /_゙''i゙ノ、ノ
,.--l‐''"~..-_'.x-='"゙ー 、`'-、 ,:' ノ゙ノブ
" .!-'",/ `'-‐'') /\ `/ でノ-〈
.-''~ >'゙:: ‐'"゙./ ヽ.,' ~ /
//::::: ', / ,:'゙
0595nobodyさん
2006/10/18(水) 15:34:10ID:???その処理の中ではstdinを読んで
メールの送信元など、メールの内容を把握しようと思っています。
・送信元、送信先の取得
・メールのタイトルや本文中に”ほげほげ”の文字が含まれているかチェック
等をやりたいのですが、どのように記述すればよろしいでしょうか?
よろしくお願いします。
0597nobodyさん
2006/10/18(水) 15:56:47ID:???「処理をしています」何の処理をしているんでつか?
どこまで出来ていて、何が判らないのでつか?
>・送信元、送信先の取得
>・メールのタイトルや本文中に”ほげほげ”の文字が含まれているかチェック
ソレだけだったら、どちらも簡単な正規表現で可能でつ。
0599nobodyさん
2006/10/18(水) 17:30:55ID:???0600nobodyさん
2006/10/18(水) 19:06:45ID:kRDgnrcthtmlファイルも読み込んで問題ありますでしょうか?
0602600
2006/10/18(水) 19:13:16ID:kRDgnrct0603nobodyさん
2006/10/18(水) 19:30:48ID:kRDgnrct入力するとアクセスされてしまいます。
htaccess以外にこの行為を制限したいのですが何かヒントをいただけませんでしょうか?
ためしてみたのがPOSTとGET、リファラチェックでやってみましたが、
requireが読み込みませんでした。
0604nobodyさん
2006/10/18(水) 19:43:16ID:???0606nobodyさん
2006/10/18(水) 20:03:09ID:V2QN5PpqPHPを学べるPC学校教えて下さい(神奈川県内、できれば横浜市内)
0607nobodyさん
2006/10/18(水) 20:07:49ID:???自分と名前が違ったら拒否するとかいうのもありかね?
0609nobodyさん
2006/10/18(水) 20:19:30ID:GXIHNsCX画像をリサイズする際にJPEG, PNGは正常にリサイズ出来ますが
アニメGIFのリサイズはどの様に行えばよいでしょうか?
色々なクラスライブラリを使用してみましたが
アニメGIFをリサイズするとリサイズはされますが静止画のGIF画像
に変換されてしまいます。
0611606
2006/10/18(水) 20:56:19ID:V2QN5Ppqでも、授業料たけーーーーーーーーーーーーーー
アルバイトして貯めないと
PHP学ぶのに20万〜40万ぐらいだった、どこも
0612nobodyさん
2006/10/18(水) 21:14:48ID:???ずぶの素人さんでも良い本が1冊2冊あればそれで何とかなると思うが。
0613nobodyさん
2006/10/18(水) 21:32:58ID:???基礎がないとphp-usersの某氏のようになる
0614606
2006/10/18(水) 21:36:20ID:V2QN5Ppqまじかよ
ホームページ作成数30個ぐらい
ブログ作成数5個ぐらい
動画編集、画像編集、めちゃくちゃ経験あり
2ちゃん暦プロ並ちょい下
これぐらいのPC暦だが、自宅サーバ、CGI、PHP、さっぱりわからない
0615nobodyさん
2006/10/18(水) 21:39:12ID:???0616nobodyさん
2006/10/18(水) 21:43:16ID:???どんなふうに動作するのかが予想できない。
だから設計するときも、まるで数学の方程式を解いているみたいだ。
まあ趣味(自分のウェブサイトで使う)でやっている程度だし、コーディングが気持悪くても
人にソースはみせないし、動けばいいかな、と。
0617606
2006/10/18(水) 22:11:33ID:V2QN5Ppq今、話題かどうかわからないけど、俺の中では超話題の
ブログのRSS配信、いろいろ探してみたり検索してみたけど
ジャバスプリクト?っていうのか、あれで他人のブログのRSSを取得して
自分のブログで配信するのは、できるんだが、1つ欠点がある
続く・・・
0618nobodyさん
2006/10/18(水) 22:15:42ID:???0619606
2006/10/18(水) 22:15:58ID:V2QN5Ppqジャバスプリクトでやると、検索エンジンから検索されない
例)他人のブログが「ゆうこりんのスカトロプレイ激写」
という記事を更新したとする
俺のブログでも、どこどこのサイトが何時何分に「ゆうこりんのスカトロプレイ激写」
という記事が投稿されましたと表示される
のだが・・・・・・・・・・・・・・・・
それが、検索エンジンでは引っかからないんだ
続く・・・・・・・・・・・
0620606
2006/10/18(水) 22:20:02ID:V2QN5Ppqそこで俺は調べまくった、、、、、何日もかけてというか、1日で調べた
ジャバスプリクトだと、検索されないが、、、
PHPだと検索せれるということなんだ、
例)他人のブログが「ゆうこりんのスカトロプレイ激写」
という記事を更新したとする
俺のブログでも、どこどこのサイトが何時何分に「ゆうこりんのスカトロプレイ激写」
という記事が投稿されましたと表示される
ここまでは同じだが、ここからがすごい
ヤフーやグーグルで「ゆうこりんのスカトロプレイ激写」というキーワードが
俺のブログから検索されるのだ
なので、俺はRSS配信のPHP版の無料ソフトやら、有料ソフトを探しまくった
続く・・・・
0621nobodyさん
2006/10/18(水) 22:20:15ID:???と言うことか?
やり方は知らん、興味も無い
0623606
2006/10/18(水) 22:25:56ID:V2QN5Ppq無料ソフトは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:???0625606
2006/10/18(水) 22:30:03ID:V2QN5Ppqもう1つファイルがある
「.php]と書いてある
なんじゃこれは? これをフォルダごとアップロードしてとか書いてあるけど
フォ、フォルダごとアップロードって聞いたことないぞ?
どうするんだ? phpさっぱりわからんということで、、、
この板にたどり着いたというわけだ
終わった・・・・・・・・・・・・・・
0626nobodyさん
2006/10/18(水) 22:32:47ID:???わからないけど面白い。
0627nobodyさん
2006/10/18(水) 22:34:40ID:???0628nobodyさん
2006/10/18(水) 22:42:17ID:???0629名無しさん@お腹いっぱい。
2006/10/18(水) 22:54:37ID:hZ8NwhMG$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:X4KrD1CYUNIXタイムに変換するのはどの関数で出来るのでしょうか?
time()とかdate()も参照してみたのですが。
恐縮ですがお願いします。
0631nobodyさん
2006/10/18(水) 22:58:25ID:???てかそれだとパースエラー出る気がするけど
0635nobodyさん
2006/10/18(水) 23:05:59ID:???> ホームページ作成数30個ぐらい
> ブログ作成数5個ぐらい
> 動画編集、画像編集、めちゃくちゃ経験あり
> 2ちゃん暦プロ並ちょい下
茶ぁ吹いた。
こんなこと言ったら何だけど、
君はインターネットそものの知識がきょうびの小学生以下だから
まずはその辺のパソコン教室のインターネット初級コースからやり直した方がいい。
ホームページとかブログとか自分では分かってるつもりかも知れんが
それこっちから見ると全然分かってないレベルだから。
この様子じゃあ動画とか画像の編集もたかが知れてるわ。
PHPとかCGIとか言い出すのも15年は早い。
あと2chもてんで理解できてねぇから最低でもあと半年ほどロムれ。
0636nobodyさん
2006/10/18(水) 23:07:37ID:???0638nobodyさん
2006/10/18(水) 23:19:35ID:X4KrD1CYできました。ありがとうございました!
0639606
2006/10/18(水) 23:23:59ID:V2QN5Ppqいや、インタネット初級コースなんか、全然だめ
たぶん、無料パソコンスクールとかで
じいちゃん、ばあちゃんとかを教えてる先生より
俺のほうが、たぶん詳しい
友達で俺にPCスキル勝つやつはいないよ
ただあれだ、、、この板にいるやつからみたら
俺は子供同然、赤ちゃん以下のスキルしかないよ
0640606
2006/10/18(水) 23:25:56ID:V2QN5Ppq>あと2chもてんで理解できてねぇから最低でもあと半年ほどロムれ。
大丈夫だ、俺はニートで1日15時間ぐらい2ちゃんにいるから
今日はFFのバージョンアップだから、そっちの情報集めと睡眠とらないといけないから
あまり2ちゃんにいれないけど
0641名無しさん@お腹いっぱい。
2006/10/18(水) 23:30:03ID:hZ8NwhMG「\"」にした? ・・・すいません。未熟者なので。
どういった意味でしょうか?
0642nobodyさん
2006/10/18(水) 23:31:22ID:???0643606
2006/10/18(水) 23:33:14ID:V2QN5Ppqすごいやつは、本とかネットで調べて
PHP理解出来るやつは、すごいと思うけど
俺の頭脳じゃ、無理だわ
これやりたいと思ったら、どうしてもやらないとダメなんだわ
好奇心旺盛なのは、まぁいいことだ
なので、しょうがないから、アルバイトして金貯めて
PHPの学校いくようにするは、30万ぐらいだけど、しょうがない
fwrite($documents2,"<html><head></head><body><font size=\"4\">$documents1</font></body></html>");
こう言う風になってるかって事
君の説明はどう言う風に出力したいのかよく分からない。
期待している結果はどんな内容なの?
0646nobodyさん
2006/10/18(水) 23:39:27ID:???よし分かった、バイトでばあちゃんとかを教えてた俺がはっきり言ってやろう。
お前は俺の生徒だったじいちゃんばあちゃんの足下にも及ばん。
0647名無しさん@お腹いっぱい。
2006/10/19(木) 00:22:01ID:hyorX1t2具体性に欠ける質問をしてすいません。
それと、教えていただいた方法でエラーにならず、文字を大きくして
htmlに書き出すことができました。ありがとうございます。
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:???取得するにはどうしたらいいでしょうか? モジュール版のApacheじゃないので
apache_ほにゃらにゃ関数は使えません。ご教示お願いいたします。
0653nobodyさん
2006/10/19(木) 04:40:54ID:???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:???各functionの直後にechoでユニークな値を出すようにしとく。
●例
function hoge() { 〜〜〜 };
hoge();
echo "a";
hoge();
echo "b";
hoge();
echo "c";
0656nobodyさん
2006/10/19(木) 04:57:11ID:???0658nobodyさん
2006/10/19(木) 06:23:08ID:zWYhlPAkPHP型のブログってどういうメリット・特徴があるのでしょうか?
機能的な面じゃなくて「なぜPHPなのか?」と言うことが気になってきました。
と言うのも自分でPHPを使い、簡易ブログを作っているのですが、
最近MTのフリー版を落として設置したところ、ページの生成など
CGI型の方が向いているのではないか?っと思い、悩んでいる次第です。
0659nobodyさん
2006/10/19(木) 06:29:14ID:???スタックトレースならAdvanced PHP Debuggerってのがある。
0661nobodyさん
2006/10/19(木) 06:33:47ID:???0663nobodyさん
2006/10/19(木) 06:50:02ID:????PHPとPerlの比較の話をしてるの??
ちなみにPHPのCGIっていうのがあるのは知ってる?
あと、CGIでないPerlっていうのがあるのも。
0664nobodyさん
2006/10/19(木) 07:06:07ID:???え? 本気だけど、これで何か問題ある??
あくまでデバッグ用に任意の行を特定するだけだったら、
>>654で示した方法が一番簡単だと思うが・・・。(要するにechoデバッグの一種)
>>651は「特定の条件時」と言っているから、echoを差し込むべき数も少ないだろうし。
0666nobodyさん
2006/10/19(木) 07:16:42ID:2ix5xPYO「獅、」に化けてました。。
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:???>>651の言っている「特定の条件時」ってのは、原因不明の症状が出てるから
それが発生したときにどっから呼び出されてるのか知りたい、って話かと。
だからechoを差し込むべき場所は全く特定されておらず、呼び出し元全部に
仕込まないといけなくて、それがあまりにも多いもんだから困ってる、という話でしょ。
0669nobodyさん
2006/10/19(木) 08:20:59ID:JzmElHR8Apache 2.2.3
MySQL 5.0.24a
PHP 5.1.6
phpMyAdmin 2.9.0.1
で開発してます。
phpMyAdminで追加すると日本語が文字化けするのですがどこを設定すればいいでしょうか。
0670nobodyさん
2006/10/19(木) 08:31:47ID:???本当にPHPでBlogを作れるレベルならそんな質問しないよ。
PHP型っていうのが単にPHPをさして、
CGI型というのがPerlをさしていると前提して話を進める。
(他の人が指摘してるのは、PHPもCGIとして動作できるということ)
PerlもPHPも同じプログラム言語。
PHPはWeb特化という位置づけだけど、基本的にできることはほぼ同じ。
MovableTypeが"たまたま"Perlで書かれているだけで、
作ろうと思えば、他の言語でも(もちろんPHPでも)作ることはできる。
0671nobodyさん
2006/10/19(木) 09:30:38ID:???問題は「向いてるか向いていないか」だが、そもそも>>658が何を根拠に
CGI(Perl?)の方が向いてるなどと思ったか、だと思う。
個人的意見で言えば特にPHPでやるメリットや特徴があるわけではないが、
Perlと比べて遜色があるわけでもなく、どっちも同じ程度じゃないの?ってとこ。
別にblog程度でPHP/Perlに向き不向きがあるとは思えんなー。
ページ生成とかは出力バッファの取り込みができるPHPの方が楽な面はあるかな。
0672658
2006/10/19(木) 09:55:25ID:???向いているか向いていないかを前提とした質問です。
あと、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:???向いてるか向いてないかなんて、
>>670で答えでてるじゃん。
>PHPはWeb特化という位置づけだけど、基本的にできることはほぼ同じ。
できることが同じということは、
同じ様にできる=どっちもどっちってことでしょ?
>>671も
>個人的意見で言えば特にPHPでやるメリットや特徴があるわけではないが、
>Perlと比べて遜色があるわけでもなく、どっちも同じ程度じゃないの?
と言っている。
>他のPHP型ブログを見てもだいたいはDBと連携してDB内を読む仕様なんです。
それは作ってる人が、そういう作り方のほうが慣れてたり、
そっちのほうが作者的にはいいと思ってるから、そういう設計にしてるだけ。
なぜPHPで作ってるかという最大の理由は、
あなたがPHPでCMS作ってるように、その人にとって得意言語だからなはず。
と、ここまでいっといてなんだけど、
Perlで作る最大のメリットは、Perlに対応してるサーバが圧倒的に多いこと。
0675nobodyさん
2006/10/19(木) 10:32:56ID:???> 当然HTMLで書き出した方がSEO的にも良いし、
そういう意味では、動的生成でも.htmlの拡張子が(設定次第で)使えるApacheモジュールの方が有利だよ。
.htmlの拡張子を使いつつ、静的書き出しと動的生成のどちらでも自由に選択ができる。
あと、1つのプログラムで複数blog生成の話は意味不明。
DBにデータを保持する方式でも作ろうと思えば簡単に複数対応できると思うけど。
動的生成もDB保持も単にユーザニーズの問題なだけじゃないの?
どっちもPerlだからとかPHPだからとかCGIだからとかいう問題じゃないでしょ。
唯一、SEO対策としての.html拡張子の件だけは、CGIでこれを動的生成にするような真似は
ふつーやらない、ってくらいかな。
でも昨今のgoogle辺りじゃ、拡張子はあまり区別しない傾向が強くなってきてると思うけどね。
パラメータ付加の有無くらいじゃないの?影響するのって。
0676nobodyさん
2006/10/19(木) 10:52:37ID:???動的表示ならPHPのがどう考えても軽いでしょ
phpじゃスタティックなHTMLは吐けないと思ってんのかな?
googlebotは以前は負荷を考慮して動的ページのクロール頻度は
控えめにしてたらしいけど
0677nobodyさん
2006/10/19(木) 11:39:16ID:???0678nobodyさん
2006/10/19(木) 12:00:54ID:???読む人を混乱させたのがわからないのだろうか?
それがわかっていて、それでもなお、「とりあえず」と、PerlのことをCGIと呼び続ける理由が理解できない。
0679nobodyさん
2006/10/19(木) 12:10:25ID:???0680nobodyさん
2006/10/19(木) 12:18:19ID:???PHP使いの俺には理解出来ない。一般的にはperl=cgiと思ってもいいんじゃねぇ?
0681nobodyさん
2006/10/19(木) 12:20:01ID:???0682nobodyさん
2006/10/19(木) 12:28:25ID:???マニュアルをちゃんと読んだことのある「PHP使い」は CGI≠Perl ってのが理解できるんだけど
読んだこと無い「PHP使い」は、「なんでいちいち聞くんだろう」と思うと。
けっこうマニュアルのさいしょのほうに書いてあるんだけどね
0683nobodyさん
2006/10/19(木) 12:32:56ID:???それに>>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:JzmElHR8669の件です
DBの照合順序 を utf8_general_ci に設定することで解決できました。
0685nobodyさん
2006/10/19(木) 12:44:13ID:???考えは必ず入ってくるだろうね、設計する時に。だから静的書き出ししたくなる。
PHPのSAPIだったら設計する時にそういうのを気にする人はたぶん少ない。
だから動的に出すのが多いと。
0686nobodyさん
2006/10/19(木) 13:00:05ID:???メリットじゃなく単なる制約によるものだよね >CGI/Perl
0688nobodyさん
2006/10/19(木) 13:58:18ID:WNEBG+ggContent-Type: image/形式(jpeg等)
echo $file;
とやっても出来ません
0690nobodyさん
2006/10/19(木) 14:08:05ID:???とりあえずぐぐれや
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文字コードは何で保存しておくべきでしょうか?
たいていの配布サイトを覗いてみたのですが、
明確にされておりませんでした。
それぞれの文字コードで別々に公開するのがベターでしょうか?
0692nobodyさん
2006/10/19(木) 18:17:27ID:???(個人的にはあまりすきじゃないんだが)
Unicode対応しておけば朝鮮人とか中国人にも使ってもらえるわけだしし。
0693nobodyさん
2006/10/19(木) 18:18:17ID:???マルチバイトが入るならUTF-8
0694nobodyさん
2006/10/19(木) 18:22:03ID:???0695nobodyさん
2006/10/19(木) 18:25:56ID:???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以前と以後を分けたいんです。
0702nobodyさん
2006/10/19(木) 19:32:05ID:???いろんな方にさわってもらいたいのでEUC-JPとShift-JSとUTF-8で
それぞれ用意して配布しようと思います。
0704nobodyさん
2006/10/19(木) 19:39:29ID:RDYn6fyDこのときデータを改ざんして、『名無し』『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>
0705704
2006/10/19(木) 19:42:30ID:RDYn6fyD2chなのでperlスクリプトに埋め込まれたものですが、
phpとしてお考えいただけると助かります。
0706nobodyさん
2006/10/19(木) 19:45:08ID:D9BD7psJ$a = "ほげほげtoはげはげ";
$b = explode("to",$a);
$b[0]は、ほげほげ
$b[1]は、はげはげ
0710nobodyさん
2006/10/19(木) 20:26:38ID:???今はereg_replaceでァからォまで1行ずつ書いているんですけど・・
0711nobodyさん
2006/10/19(木) 20:54:24ID:???あっ片仮名か。
0712nobodyさん
2006/10/19(木) 20:56:06ID:N/IEl6YXそれでいいんじゃない
0714nobodyさん
2006/10/19(木) 21:26:43ID:RDYn6fyDなまえ
<input type="text" name="name">
<input type="submit">
</form>
上記のコードをブラウザから実行して、名前を入力した場合、
値は$_POST['name']でとれますが、
この値はクライアントに保存されているのでしょうか?
それともサーバに保存されているのでしょうか?
0715nobodyさん
2006/10/19(木) 21:28:35ID:???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:???マニュアル嫁
http://www.php.net/manual/ja/install.pecl.php
「コンパイル」の意味がわからないならぐぐれ
0721nobodyさん
2006/10/20(金) 00:17:25ID:???うっぷんはここでさらせ
ttp://pc8.2ch.net/test/read.cgi/php/1158647441/l50
0722nobodyさん
2006/10/20(金) 06:29:42ID:nmqka2TX├□foo
└index.php
□はフォルダです。
index.php内に以下のようにしてもfoo内のファイル名の取得ができずに、
exampleフォルダ内のファイル名が取得されてしまいます。
どこが間違っているのでしょうか?
$dir = opendir("foo");
while(($fname = readdir($dir)) !== false){
〜〜
}
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:???0727nobodyさん
2006/10/20(金) 11:36:13ID:???0.1とか0.7とかは正確に二進数浮動小数点では表現できないから誤差が出る。
PHPやPerlみたいに数値を文字でも表現するような言語では
そこで違った動きになるんじゃないかな。
0728722
2006/10/20(金) 11:58:57ID:+hAC6M3g>>723
フォルダの属性はexample、foo共に777ですができません。
0729nobodyさん
2006/10/20(金) 12:17:28ID:???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ケタ程度で四捨五入っぽかった気がするので、その関係ではないかと想像。
0730729
2006/10/20(金) 12:19:05ID:???× 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:???へぇぇぇ、面白!! 勉強になるなあ。
どうもありがとう。
(しかし、、おれんちのmanでprintf(3)がひけないのはなんでだろう・・・)
0732nobodyさん
2006/10/20(金) 13:17:10ID:???0734nobodyさん
2006/10/20(金) 14:06:49ID:???.forwardやaliasesでメール受信からシェルスクリプトを自動起動して本文取り込み。
メール本文のマルチパートを分解→base64をデコードして画像ファイル取得。
サーバー設定がいじれなくてスクリプト自動起動が困難なら、
手動で任意、または数分おきに定期的にPOP3でメールを受信して以下同様。
0736nobodyさん
2006/10/20(金) 18:54:20ID:QYiDpVQJ0738nobodyさん
2006/10/20(金) 22:43:08ID:CXNhs/e2$FILE=fopen("〜〜","a+"); rewind($FILE);
とやってもうまくいきません。
どのような手段をとればよいのでしょうか。
お願いします。
0739nobodyさん
2006/10/20(金) 23:26:50ID:???たくさんアクセスがあった場合落ちる可能性を避けたいので
PHPでアクセス数によって振り分けたいのですが、
可能なのでしょうか、可能でしたら教えてください。
0740nobodyさん
2006/10/20(金) 23:36:47ID:???負荷を心配しているのに、高負荷時の対応のために、
さらに負荷かけてどうする・・・
Max Clientとか鯖のチューニングをすべ氏
0741nobodyさん
2006/10/20(金) 23:43:00ID:???0743nobodyさん
2006/10/21(土) 00:01:01ID:???追記できるのは末尾だけ。
$fp = fopen("テンポラリファイル", "w");
fwrite($fp, "文字列" . file_get_contents("元ファイル"));
fclose($fp);
unlink("元ファイル")
rename("テンポラリファイル", "元ファイル");
みたいに、1度別のファイルに追記内容+元ファイルで吐き出して
その後、元ファイルにリネームで被せてやるしかないかと。
0744nobodyさん
2006/10/21(土) 00:02:37ID:???そういうのはPHPでやらずに、ロードバランサーとかの外部の機器を使います。
そもそもWEBサーバーに到達しちゃってる時点で振り分けても遅いです。
0745743
2006/10/21(土) 00:04:58ID:VQhvLI4Xわかりました。
すばやい対応ありがとうございます!
0747nobodyさん
2006/10/21(土) 02:55:34ID:???0748nobodyさん
2006/10/21(土) 03:28:22ID:???動画送信するぶんの負荷は減らせるだろうな。
0749nobodyさん
2006/10/21(土) 03:44:16ID:???0750nobodyさん
2006/10/21(土) 08:09:33ID:???> PHPでアクセス数によって振り分けたいのですが、
個人向けのレンタルサーバーでたまに月間の転送量の上限が決まってると個
があったりするけど、例えば「概算80%ぐらい転送量消費したところで
動画を配信しないようにしたいんだけど」とかいうことではないのだろうか?
0751nobodyさん
2006/10/21(土) 09:23:10ID:???バカかお前は。
質問の仕方を知らない>>739に教えてやってんだよボケ。
>>741と同意見だ。
もしやお前が>>739かな? だとしたら顔洗って出直してこいよチンカス。
0752nobodyさん
2006/10/21(土) 09:29:07ID:???0753nobodyさん
2006/10/21(土) 09:33:17ID:???例のコピペ嵐のコピペをコピってくれるかな。
0755nobodyさん
2006/10/21(土) 10:32:51ID:???0757nobodyさん
2006/10/21(土) 11:21:23ID:???ありがとう。
0758nobodyさん
2006/10/21(土) 11:39:57ID:???ダブルクオーテーションで囲う、
なにも付けない。
3つの方法があるけど、どんな時にどの方法を取ればいいかっていう
ルール付けがうまく出来ません。
0760nobodyさん
2006/10/21(土) 12:02:12ID:???0761nobodyさん
2006/10/21(土) 12:18:23ID:???キーに変数使ってるならダブル。
それ以外はシングル。
何も付けないってのは数字?<それ連想配列じゃないと思う
define定数ならそりゃ括っちゃダメだよね。
Perlと違って、普通の文字をクオートしないのはPHPじゃ非推奨です。
0763nobodyさん
2006/10/21(土) 12:32:51ID:jCNqCJC6他サイトへPOSTデータと共に
移動させてやる事は可能ですか?
(JavaScript等使わずにPHPのみで)
0764nobodyさん
2006/10/21(土) 12:37:42ID:yrD6q3vzMETAで…と思ったらPOST限定なの?
0765nobodyさん
2006/10/21(土) 12:41:22ID:jCNqCJC6GETならLocationとか使えば可能なのですが
POST限定なのです
POSTされてきたデータを
外部POSTしてそのデータを取得する事はできるのですが
一緒に移動となるどうしたら良いのか解らず・・・
ただ、これが出来るといろいろ問題でそうだなぁーとも思いつつ・・・
0767nobodyさん
2006/10/21(土) 13:03:35ID:???0768nobodyさん
2006/10/21(土) 13:05:27ID:???0769nobodyさん
2006/10/21(土) 13:06:43ID:???業者ぽいw
0770nobodyさん
2006/10/21(土) 13:13:39ID:???それだとサイトでワンクッション置かれてしまう・・・
>>769
確かにこれが出来てしまうと
マルチポストも簡単に出来てしまう・・・
やっぱ無理か・・・・
0772nobodyさん
2006/10/21(土) 13:26:54ID:???0773nobodyさん
2006/10/21(土) 13:27:15ID:jCNqCJC6自サイトのPHPにPOSTされてきたデータを
PHPで処理させて他サイトへ
POSTデータと一緒にそのサイトへ
飛ばしたいと言ってるのだが
スレ違いなのか?
PHPで処理させてるのに?
0774nobodyさん
2006/10/21(土) 13:32:09ID:???0775nobodyさん
2006/10/21(土) 13:33:03ID:???○ header
0776nobodyさん
2006/10/21(土) 13:40:10ID:???HTTP_Requestとか使ってPOSTで受け取ったデータをそのまま渡して
POSTでリクエストするだけ
0777nobodyさん
2006/10/21(土) 13:50:58ID:jCNqCJC6やってみましたがダメっぽいです
>>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させようとするかな。
0779739
2006/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:???0781739
2006/10/21(土) 14:00:19ID:???初心者ですまそ。
0782nobodyさん
2006/10/21(土) 14:04:09ID:???0783nobodyさん
2006/10/21(土) 14:04:13ID:???test.phpが吐き出すHTMLに書いてある動画リンク先を二箇所にする、って
いうのは普通にできると思うけどね。
0784739
2006/10/21(土) 14:12:17ID:???なんか漠然としたイメージだと、
ばぁ〜っとアクセスがあって(test1.php)ある程度アクセス数が
例えば100件あったら、別ページ'(test2.php)に切り替わるみたいな
イメージだったんですが・・・普通に無理そうですね。
アクセス数っていうか接続数ってか。PHPのレベルとは関係ないか
0787nobodyさん
2006/10/21(土) 14:25:59ID:???大人しくそれ専用のシステムを鯖から作れ
0788739
2006/10/21(土) 14:35:30ID:???出直してきますわ。
0789nobodyさん
2006/10/21(土) 14:35:37ID:???同時アクセス数が一定数を超えたら、他の場所に分散した動画を参照させたいって事か?
PHPでアクセス時刻管理して、一定時間経過するまで接続していると見なすとかは
0790nobodyさん
2006/10/21(土) 14:59:39ID:???単純に埋め込む動画リンクの中身(aタグのリンク先)を
生成する際に任意に振り分ければいいだろ。
アクセス毎にサーバAとサーバBを交互に使うとか。
なんでそんな簡単なことすら自分で考えつかないんだお前は。ミジンコ以下の脳みそだな。
上記の説明でも理解できなければ、「ラウンドロビン」について調べまくれ。
で、それと同じ原理をスクリプトに仕込め。
0791nobodyさん
2006/10/21(土) 15:10:38ID:???最初からランダムで2サーバーに振り分けた方が確かに早いw
0792nobodyさん
2006/10/21(土) 15:53:04ID:jCNqCJC6やはりPHPだけでは無理そうですねぇ・・・
0793nobodyさん
2006/10/21(土) 15:55:28ID:???基本的にはクライアントのブラウザ自身に再送信させないといけないからな。
GETはURLがそのものだからLocationでブラウザに指定させることができるけど、
POSTの再送信指定は自動では厳しいだろう。
0795nobodyさん
2006/10/21(土) 16:05:30ID:???>>778の言う通り、ちょっとしたJSを仕込めば済む話だろ。
なんでPHP「だけ」にこだわるんだよ?
JSなどと組み合わせたほうがよっぽど効率的だ。
0797nobodyさん
2006/10/21(土) 16:48:52ID:???結果的に、半々に振られるんだから。
0798nobodyさん
2006/10/21(土) 16:54:22ID:???0799nobodyさん
2006/10/21(土) 17:02:04ID:???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:???curlだと思うけど。
そのへんのblogのトラックバック送信のところ調べてみ。POSTで送ってるところがあるはず。
今すぐ思いつくのがsnoopy
snoopyなら何も考えずに
snoopy->submit($URI, $formvars="", $formfiles="")
これで$URIへPOSTデータを飛ばせる。
PEARでもどうと機能があったと思うが、調べてない。
0804nobodyさん
2006/10/21(土) 23:50:16ID:???いやだから、それだと単にPOSTデータを飛ばすだけで、
ユーザのブラウザ画面はPOST先のページに移動しない、
って>>763は書いてるわけじゃない。
0805nobodyさん
2006/10/22(日) 01:09:59ID:???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:???>>763はPHPの何たるかを分かっていない。JavaScript使えでFAだな
そもそもPOSTされたデータを持たせて他サイトに飛ばす必要があるって・・どんな場合だ?
0807nobodyさん
2006/10/22(日) 01:57:05ID:???0808nobodyさん
2006/10/22(日) 02:34:55ID:???0809nobodyさん
2006/10/22(日) 04:27:49ID:b7CANJCxmysqlデータベースにフィールド名が「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:???0811nobodyさん
2006/10/22(日) 05:16:39ID:???余りの数で折り返すのが良いと思います。
例の場合なら3列なのでレコード数を3で割って余りが0のときに</tr><tr>を入れる。
あとは例外処理だけ
0812809
2006/10/22(日) 07:25:20ID:b7CANJCx>>811
お答えいただき、ありがとうございます。
申し訳ないのですが、具体的にどのように記述すれば良いのでしょうか?
今まで調べていたのですが、どうにも分からなかったので再度質問です。
度々お手数をお掛けしますが、よろしくお願いします。
なお本日は限界な為、もう寝ます・・・。
お返事は起きてから致します。
0814nobodyさん
2006/10/22(日) 08:22:28ID:???ニートに金渡してやらせればニート問題も解決しねぇ?w
0815nobodyさん
2006/10/22(日) 08:27:36ID:???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>
0816815
2006/10/22(日) 08:28:49ID:???<tr>
<?php
}
}
?>
</tr>
0817nobodyさん
2006/10/22(日) 09:43:07ID:???そりゃ難しい話でもなんでもないぞ。
PHPがどうこうという話ですらない。
それ宿題でやってるの?
仕事としてやってるの?
前者なら、考えるのが仕事なんだから悩めばいいし、
学校で友達や先生にわかるまで聞きなー
後者なら、転職したほうがいいよ。会社辞めなー
0818nobodyさん
2006/10/22(日) 09:51:11ID:???つーか何のためにそんなことするんだ?
一列だろうと二列だろうと、レンダリング結果は一緒だろうが。
んで、>>817の言うように、それくらい自分で考えられないなら
氏んだほうがいいと思う。
0819nobodyさん
2006/10/22(日) 10:26:26ID:???1行と2行は大違いだろ。
0820nobodyさん
2006/10/22(日) 11:40:58ID:???こうしようぜ。
<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本を教えてくれ!
ハローワールドしかできない!
0823nobodyさん
2006/10/22(日) 12:21:48ID:BSjdszSlレッツって何?
0825824
2006/10/22(日) 12:25:40ID:???レス間違えたorz
0826nobodyさん
2006/10/22(日) 13:10:15ID:???0827nobodyさん
2006/10/22(日) 13:37:35ID:???なんか<?php 〜〜〜 ?>
が凄く多い気がするんですけど。皆さんも必要部?だけphpの記述をする感じですか?
私の場合、例のような感じですと<tr>なども全て出力させるのて
おおきく<?php で囲ってしまうのですがどうなのでしょうか?
0828nobodyさん
2006/10/22(日) 13:43:25ID:???0831nobodyさん
2006/10/22(日) 14:14:59ID:???そとにあるのが「ロジックではないもの」
ていうロジックなのかな?
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:???0836nobodyさん
2006/10/22(日) 14:51:36ID:???0838809
2006/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:???0842nobodyさん
2006/10/22(日) 17:08:16ID:???他人の書いた物はどうせ見難いし
0843nobodyさん
2006/10/22(日) 17:12:53ID:???デバッグできないので教えてください、じゃ話にならんだろ
0844809
2006/10/22(日) 17:45:09ID:b7CANJCx>>839氏の仰るとおり、表示以前に処理しておりました。
ご迷惑をお掛けして申し訳ありませんでした。
また、>>815、>>820氏にはせっかく書いて下さったのに
失礼な発言をしてしまいました。
お詫びいたします。
これでやっと希望通りの結果を得ることが出来ました。
そのことには深く感謝です!
しかし私が言うのも何ですが、プログラミングって面白いですよね。
これからも少しずつ精進していこうと思います。
最後にもう一度、ありがとうございました!
0846nobodyさん
2006/10/22(日) 20:26:50ID:QZl/ECEV↓のようなものをつくりたいのですが、これはどの程度のレベルなのでしょうか?
だいたい何ヶ月くらいで作れるようになりますか?
http://www.satoya-boshu.net/keisai/c.htm
0847nobodyさん
2006/10/22(日) 20:36:21ID:???その里親募集は、レベルとしては中級ってとこじゃないですか。
いろんな人みてますけど、ほんとに人それぞれですよ。
大雑把に言って、2ヶ月、3ヶ月ってとこじゃないですか。
勘のいい人は、まったくの、まっさらの状態から勉強して
1ヶ月でさくっと作ったりしますよ、それぐらいだと。
コツとしては、一度に複雑なものを作らないことです。
必要最小限の機能のものを作って、それに肉付けしていく。
なんか、今日・昨日、DBからひっぱってきたデータを二列に表示したい、とかいう
話がありましたけど、ああいうのも、最初は一列で表示させる、
次に、DBとは関係なく、配列データの二列表示の研究、最後に両者を組み合われる、とか、
「分割して統治せよ」のコツを、うまくつかめるひとは、みにつくのもはやいです。
0848847
2006/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 greypawn
2006/10/22(日) 21:56:21ID:???プログラム未経験なら分かりやすい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:???アドバイスありがとうございます
右も左もわからない状態なので助かりました
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:???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帰ってきてからでは少し都合が悪いのです。すみません。
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:???> $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:2dkTMRuKrtrim()でその改行コードを取り除いたら解決しました。
回答していただき、ありがとうございます。
0862nobodyさん
2006/10/23(月) 05:24:06ID:???0864nobodyさん
2006/10/23(月) 15:40:27ID:???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:???0871866
2006/10/23(月) 22:22:33ID:3vDBvRjMなるほど。/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);
結果はエラーはでないが、効果もないという感じでして。。。
どのようにすれば良いのか、ご教授いただけないでしょうか?
0875名無しさん@お腹いっぱい。
2006/10/23(月) 22:53:42ID:1uLUI3dCこちらに書く際に間違えてしまいました。
改めて、よろしくお願いします。
0876nobodyさん
2006/10/23(月) 22:59:40ID:lxved+5w思うようにうまくいきません。
どなたかご教授お願いいたします。
php4.4.4です。
$text = "2ちゃんねる";
html($text);
function html()
{
echo $text;
}
0877nobodyさん
2006/10/23(月) 23:00:18ID:???> $str2=str_replace(" ","",$str);
半角スペースしか置換してないように見えるんですが。
0880876
2006/10/23(月) 23:07:28ID:???迅速なアドバイスありがとうございます。
両方とも正しく動きました。
『function html()』と『html()』の両方に引数をわたさないとだめだったんですね。
$GLOBALS['text']はとても使いやすいですね。
お互い要所によって使い分けてみたいと思います。
ありがとうございました。
0881名無しさん@お腹いっぱい。
2006/10/23(月) 23:07:47ID:1uLUI3dC" "で効果がなかったので、" "としてしまいました。
どちらにしても置換がされないので、どうしたものかと。。。
0882nobodyさん
2006/10/23(月) 23:14:30ID:???良く考えたらそれはおかしいよ
文字数が減るからfseek0にしたら後ろにゴミが残るでしょ
だから勘違いしてると思う
0883nobodyさん
2006/10/23(月) 23:19:43ID:???0884名無しさん@お腹いっぱい。
2006/10/23(月) 23:20:42ID:1uLUI3dCfseekを使わないでやるというパターンも試してみたんですけど、どうも
うまくいかないのです。
よろしければ、答えの一例をお示しいただけないでしょうか?
0886nobodyさん
2006/10/23(月) 23:32:58ID:???> 『function html()』と『html()』の両方に引数をわたさないとだめだったんですね。
違う。
function html($text) は「引数を受け取れるようにする」という「指定」。
これで初めて引数を使えるようになるものであって、これは引数を渡しているわけじゃない。
渡される引数と、関数側の指定は別のものなので、
$data1 = "1ちゃんねる";
$data2 = "2ちゃんねる";
html($data1);
html($data2);
function html($text)
{
echo $text;
}
のように異なる変数名を使えるし、そこに利点がある。
(関数はそれ以外の部分がどうなっているかを意識せずに作りこむことができる)
> $GLOBALS['text']はとても使いやすいですね。
> お互い要所によって使い分けてみたいと思います。
グローバル変数を使う方式はこういう自由度が無いため、使い分けが重要。
0889nobodyさん
2006/10/23(月) 23:36:26ID:???今は置換されてないんだからゴミも出ないよ。文字数変わってないんだもの。
ちなみにtenki.txtの更新日付は実行後に変化してますか?>>872
0892nobodyさん
2006/10/23(月) 23:44:06ID:???0893nobodyさん
2006/10/23(月) 23:46:41ID:zNg8YSYz感じにすればよいのでしょうか?
0894名無しさん@お腹いっぱい。
2006/10/23(月) 23:46:46ID:1uLUI3dC>888
確かに。言い直すと、全角または半角指定でもうまくいきませんでした。
>889
実行後の更新日時は変化していました。
それと、改めて実行したところ、スペースは置換されました。
しかし、"明日天気になぁれ。れ。"
となってしまいました。
きれいに置換する方法はないものでしょうか?
0895nobodyさん
2006/10/23(月) 23:53:33ID:???結局置換できなかった理由はなんなのよw
ゴミの方は>>882が書いてるけど、上書き時のゴミでしょ。
1度元のファイルを消さないと、同じ桁位置に上書きするわけだから
字数が短くなれば当たり前だが後ろに上書きされなかった内容が残る。
ファイルを作り直すか、中身消去関数を実行しましょう。
0896nobodyさん
2006/10/23(月) 23:55:34ID:???$fp = fopen("CSVファイル", "r");
for($i = 0, $i < 17; $i ++) fgets($fp);
$line = fgets($fp);
echo $line;
0897nobodyさん
2006/10/24(火) 00:16:44ID:???とりあえず、動いてるものを動いてないと勘違いしてた時点で
しばらくは質問を控えて自分で悩んだ方がいいと思うよ。
実際の状態が分からない状態で質問されても正直困る。
0898名無しさん@お腹いっぱい。
2006/10/24(火) 00:21:07ID:amM1UeJp0899nobodyさん
2006/10/24(火) 00:26:04ID:???0900nobodyさん
2006/10/24(火) 00:35:04ID:Ylboj5c4ありがとうございます。確かに18行目のデータ全て抽出することができました。
さて、これからがぼくにとっての難問なんです・・・
たとえば、2つのCSVファイルがあるのですが(佐賀県.CSVと汚職.CSV)、やりたいことは
汚職.CSVの中の「Sさん」という人物プロフィール紹介のページで、「Sさん」に当てはまる(登録されている)
汚職カテゴリーを佐賀県.CSVの中からすべて抽出し、<li>・・・・・</li>の形で表示したいのですが、
なかなかうまくいきません。
どうかお知恵をおかしください。どんな感じにすればよいのでしょうか?
0901nobodyさん
2006/10/24(火) 00:58:03ID:???A単純化して考えてみる
BDB使う
0904nobodyさん
2006/10/24(火) 03:52:46ID:???佐賀県.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:+34GEzTNhoge.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:???REFERERを見て自分のサイト以外だったら弾くとかくらいじゃ…
もっとも、昨今はREFERERを返さない設定にしちゃってる
ブラウザやセキュリティソフトが多いのであまり十分とは言えないけど。
あとはセッションを使って、直前の送信ページ表示の情報を持ってる
ユーザのPOST以外は受信不可にするとか。
もっともこれも1度送信ページを表示してから実行されるとスルーしちゃうけど。
それを完璧に防ぐ方法は理論上存在しないと思う。
しょせん、クライアントのブラウザを介しての処理だからねぇ。
クライアントが「送信元のページ」を正確に渡してくれないことには不可能で、
クライアント自体をユーザが自作可能である以上、そんな手法は存在しない。
0911nobodyさん
2006/10/24(火) 05:12:21ID:???有効期限で一定時間以後は無効にもできるし。
0912nobodyさん
2006/10/24(火) 05:16:19ID:???データ本体をサーバ側に置いとけば改竄はそうそうできないよ。
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:???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:???フォーム云々ってより集計プログラムの方が問題な気がする。
フォームは集計プログラムの仕様に合わせれば自ずと決まるんじゃないか?それ。
「最終的にどういう形でDBに入ってくれてれば容易に集計できるのか」
という逆算で設計した方がいいよ。
0917nobodyさん
2006/10/24(火) 05:40:31ID:???0919nobodyさん
2006/10/24(火) 05:52:19ID:???どうすればMacなどの機種依存文字を判定できるんでしょうか?
0920nobodyさん
2006/10/24(火) 06:52:43ID:???0921nobodyさん
2006/10/24(火) 07:34:48ID:???↑PHPだけ省かれてるのが、何か意図的なものを感じる。
誰かPHPの記述も追加してくれ!!
0922nobodyさん
2006/10/24(火) 07:56:15ID:???mb_ereg_replace("[\x86\x9F-\x86\xB5]", "", $str); みたいな感じで
文字コードで範囲指定してmb関数で置換すればいいんじゃないの?
0924nobodyさん
2006/10/24(火) 08:01:58ID:???0926nobodyさん
2006/10/24(火) 09:07:05ID:???日のあたらない目立たないとこでコシコシやっていこうぜ。
0927nobodyさん
2006/10/24(火) 09:24:22ID:???0929nobodyさん
2006/10/24(火) 09:40:38ID:???0931nobodyさん
2006/10/24(火) 10:44:10ID:???実際POSTをはじくことはできないにしても業務レベルで使えるようにすることはできる。
2ちゃんのCGIを参考にしたらええよ。
0933nobodyさん
2006/10/24(火) 11:17:10ID:???本人がCSRFという言葉や概念を知っているかどうかは知らないけどな。
で、CSRF防御策については、決定打は無いものの、
世間的に概ねFAが出ている。
0934nobodyさん
2006/10/24(火) 11:41:57ID:???0935nobodyさん
2006/10/24(火) 12:06:41ID:???ttp://www.atmarkit.co.jp/fsecurity/column/ueno/33.html
0937ここ壊れてます
2006/10/24(火) 12:48:35ID:???0940nobodyさん
2006/10/24(火) 13:18:43ID:???0944940
2006/10/24(火) 15:29:24ID:???0946nobodyさん
2006/10/24(火) 16:44:02ID:???ブロックしてたら、ブロックしないようにしてから投稿してねで。
0947nobodyさん
2006/10/24(火) 16:59:53ID:Fh1N1ejS(´д`)つhttp://hoge.com/about/index.html
0949nobodyさん
2006/10/24(火) 17:22:27ID:???PC用と携帯用で振り分ければいい。
万能な記述などない。やるだけだ。
0950nobodyさん
2006/10/24(火) 17:24:14ID:???クッキーが改ざんされてしまうだろうが。
0951nobodyさん
2006/10/24(火) 17:29:51ID:???ただ、ハイジャックされることも頭に入れてコードを書かなくてはならない。
たとえば、下記を参照してもらおう。
セッションA−−−−−−−→セッションB
↑
盗聴
クライアントにセッションAを与える。
クラッカーがセッションAを盗撮。
しかし、セッションAを与えた直後、セッションBに移し変えてセッションAを消してやれば
盗聴されたセッションAは何の意味ももたなくなる。
0953nobodyさん
2006/10/24(火) 17:36:10ID:???・そもそもSSL通せや
が抜けてる
0954nobodyさん
2006/10/24(火) 18:38:11ID:???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:???0961nobodyさん
2006/10/24(火) 21:02:38ID:???0963nobodyさん
2006/10/24(火) 21:31:45ID:???0964nobodyさん
2006/10/24(火) 21:36:14ID:???921のリンク先の言葉を使えば、デフォルトのままでforeachが「内部イテレータ」の役割を果たす。
Iteratorはその挙動を自分で指定できる、メタプログラミングの一種かと(既存のarrayを操作できるわけではないけど)。
0965nobodyさん
2006/10/24(火) 21:49:31ID:???そのリンク先、関連項目のforeachをあわせて見てみるべし。
イテレーションとは別のものとして取り上げているしPHPのforeachもそこにある。
本質的な話は別として、そのリンク先では
>配列やそれに類似するデータ構造の各要素に対する繰返し処理の抽象化である。
と解説されている。
>>964
>Iteratorはその挙動を自分で指定できる、メタプログラミングの一種
まさにこれの事ではないのか?
0966nobodyさん
2006/10/24(火) 22:33:27ID:???物凄いスレ違いだけど、おもしろそうなのでつっこんでみる。
「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翻訳できない造語(英語)や日本語のローマ字入力なんかがあるのでブックマークレットは
使えないので残念です。
0972nobodyさん
2006/10/25(水) 00:24:54ID:???0973nobodyさん
2006/10/25(水) 00:33:46ID:???2つ3つの単語を対応する単語に置き換えるならともかく、
まともな翻訳処理を施すなら単語の置換どころの騒ぎではなくなる。
素直に検索サービスに飛ばすブックマークレット使え。
0974nobodyさん
2006/10/25(水) 00:37:00ID:noTSvRA3私の説明が悪かったです^^;
置き換えは英語、日本語関係なく、
サイト内の 「AAA」 という単語を、 単純に「BBB」 と置き換えるだけです。
置き換えたい単語は全部で10個程度です。
宜しくお願いします。
0975nobodyさん
2006/10/25(水) 00:44:18ID:???サーバ上のファイルで一括置換したいという意味であれば適当なテキストエディタ使え。
0978965
2006/10/25(水) 00:47:47ID:???「PHPのforeachが繰り返しの抽象化としてのイテレータなのか」という議論はおいといて、
>>921のリンク先では関連項目のforeachにはPHPのそれが載っているが、
イテレータには載っていない。
この文脈では、PHPのイテレータとしてはIteratorを挙げるのが適当では?
ということ。
話は変わるけどimplements IteratorはJavaやPythonの例のように、
イテレーションのインターフェイス(巻き戻し、次の要素、次があるかの問い合わせ)
を提供するわけで、
・ある集合に繰り返しの窓口を設けるもの。
対してforeachは、
・繰り返しの窓口に対して、順番に要素を取り出すもの。
という事じゃないだろうか?
0979nobodyさん
2006/10/25(水) 00:55:17ID:noTSvRA3どんな関数で置き換えができるのでしょうか?
PHP詳しくないんですみません。ヒント教えていただければ検索してみます。
0980nobodyさん
2006/10/25(水) 00:58:49ID:???マニュアルを最初から読まないことを前提にしてる人にまで回答してられないよ。
というか、その内容ならPHP使わない方がいいんじゃない?
Windows用の置換ツールとか使った方がいいでしょ。
0981nobodyさん
2006/10/25(水) 01:02:55ID:noTSvRA3$hoge = array(
'1'=>'犬',
'2'=>'猫',
'3'=>'フェレット',
);
$line = "1 2 3";
$line2 = strtr($line,$hoge);
こんな感じでやってるんですがなかなか・・・
0982nobodyさん
2006/10/25(水) 01:07:33ID:???0983nobodyさん
2006/10/25(水) 01:13:01ID:???0985nobodyさん
2006/10/25(水) 01:17:54ID:noTSvRA3$hoge=str_replace("dog","犬",$Str);
で、できました!お騒がせしました。
でも、あってますよね^^; 一応ウェブサイト上では置換えできてます
0986nobodyさん
2006/10/25(水) 01:18:26ID:???> この文脈では、PHPのイテレータとしてはIteratorを挙げるのが適当では?
いや、ぶっちゃけforeachだけ載せても、SPLのIteratorまで載せても、大した問題じゃないと思うけど。
perlのとこだってforeachとwhile-eachの例しか載ってないし。
せいぜいIteratorってのもあるよ、ってくらいのコメントで十分かと。
0987nobodyさん
2006/10/25(水) 01:38:21ID:???筆者がたまたま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:???何回計ってもstr_replaceの方が倍以上速い
どう考えてもstrtrのほうが軽そうなのに
0989nobodyさん
2006/10/25(水) 02:10:30ID:???0990nobodyさん
2006/10/25(水) 02:14:28ID:rZkuwLJpさらに一歩進むなら
$hoge=str_replace(array("dog","cat"),array("犬","猫"),$Str);
0992nobodyさん
2006/10/25(水) 02:30:26ID:???(何回も繰り返すと、strtrのほうが速いときも少なくないし)
988のベンチとった実際のコードキボンヌ
0993nobodyさん
2006/10/25(水) 02:45:49ID:???配列じゃない方も対象文字列が長くないとダメね
0994nobodyさん
2006/10/25(水) 07:16:01ID:???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同様に関数ではなく、値を返すだけなので修正(数スレ前に話題に出た)。
0997996
2006/10/25(水) 08:11:19ID:???1000まで残り少ないし。
変だったら、さらにその次のスレから直してください。
0998996
2006/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/
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。