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

【PHP】下らねぇ質問はID出して書き込みやがれ 86

レス数が1000を超えています。これ以上書き込みはできません。
0001nobodyさん2009/07/31(金) 21:19:01ID:???
質問者はまず>>1を良く読むこと(必須!)
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。

◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 85
http://pc11.2ch.net/test/read.cgi/php/1245074032/

◆質問用テンプレ
【OS名】vine linux
【PHPのバージョン】php5.26
【連携ソフトウェア】mysql
【質問内容】

◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)

◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)

◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。

【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0002nobodyさん2009/07/31(金) 21:19:53ID:???
■過去ログ
【PHP】下らねぇ質問はID出して書き込みやがれ 85
http://pc11.2ch.net/test/read.cgi/php/1245074032/
【PHP】下らねぇ質問はID出して書き込みやがれ 84
http://pc11.2ch.net/test/read.cgi/php/1240835951/
【PHP】下らねぇ質問はID出して書き込みやがれ 83
http://pc11.2ch.net/test/read.cgi/php/1238958898/
【PHP】下らねぇ質問はID出して書き込みやがれ 82
http://pc11.2ch.net/test/read.cgi/php/1236532468/
【PHP】下らねぇ質問はID出して書き込みやがれ 81
http://pc11.2ch.net/test/read.cgi/php/1234958956/
【PHP】下らねぇ質問はID出して書き込みやがれ 80
http://pc11.2ch.net/test/read.cgi/php/1233479457/
【PHP】下らねぇ質問はID出して書き込みやがれ 79
http://pc11.2ch.net/test/read.cgi/php/1231850905/
【PHP】下らねぇ質問はID出して書き込みやがれ 78
http://pc11.2ch.net/test/read.cgi/php/1230026935/
【PHP】下らねぇ質問はID出して書き込みやがれ 77
http://pc11.2ch.net/test/read.cgi/php/1228667259/
【PHP】下らねぇ質問はID出して書き込みやがれ 76
http://pc11.2ch.net/test/read.cgi/php/1226517332/
【PHP】下らねぇ質問はID出して書き込みやがれ 75
http://pc11.2ch.net/test/read.cgi/php/1224168721/
【PHP】下らねぇ質問はID出して書き込みやがれ 74
http://pc11.2ch.net/test/read.cgi/php/1221909788/
0003nobodyさん2009/07/31(金) 21:20:07ID:???
関連リンク
■本家マニュアル   http://www.php.net/manual/ja/
■日本PHPユーザ会 http://www.php.gr.jp/
■PEARマニュアル  http://pear.php.net/manual/ja/
■メーリングリスト   http://ns1.php.gr.jp/mailman/listinfo/
■ZFマニュアル    http://framework.zend.com/manual/ja/
■Smartyマニュアル  http://www.smarty.net/manual/ja/

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

0012nobodyさん2009/07/31(金) 22:12:40ID:???
>チェックボックスのデータをひとつずつ区切って処理
これが何をいってるのかわからん
だいたいこれOR検索じゃん
複数の市町村にチェックつけたら物件表からOR検索するんでしょこれ
0013nobodyさん2009/07/31(金) 22:42:51ID:???
配列をcountして1つならそのまま複数なら並べてor
これだけ
0014977です。2009/07/31(金) 23:08:21ID:f7nn6Kbb
配列をcountして1つならそのまま複数なら並べて

ここのソースを頼みます。
一から教えてください。
0015nobodyさん2009/07/31(金) 23:16:35ID:FLyuwNhj
mime typeにないファイルをポストしたとき
mime typeの○○/拡張子の○○の部分って何が表示されるのでしょうか
0016nobodyさん2009/07/31(金) 23:17:32ID:???
application/なんとかストリーム
0017nobodyさん2009/07/31(金) 23:18:17ID:FLyuwNhj
○○/拡張子←拡張子じゃありませんでしたすいません
例えばapplication/activemessageのapplicationの部分はどうなるのでしょうか>>15
よろしくおねがいします
0018nobodyさん2009/07/31(金) 23:19:11ID:FLyuwNhj
>>16
ありがとうございます。
わからないものはapplicationになるんですね
ありがとうございました
0019nobodyさん2009/07/31(金) 23:19:50ID:???
まず自分で考えて書け
お前が例に出したページで考えてみろ
nameがtown_cd[] valueは新宿区が13104 渋谷区が13113
たとえばこの2つを選択したら物件表にどういうQueryを投げるか考えてみろ
0020nobodyさん2009/07/31(金) 23:32:20ID:???
>>19
安価付けろ、ID:FLyuwNhjに言ったように見えるぞそれ
0021nobodyさん2009/07/31(金) 23:34:57ID:???
いや見えないだろw
0022nobodyさん2009/07/31(金) 23:56:56ID:f7nn6Kbb
わかった。
考えてみる。
0023nobodyさん2009/08/01(土) 00:24:26ID:???
考えるほどのものじゃないだろ・・・
select * from 物件表 where 市町村id=13104 or 市町村id=13113
$_POST['town_cd']には
0=>13104
1=>13113
が入ってるんだからあとはforeachでまわして
ベースになるquery(selevt * from 物件表 where)にくっつけてやればいいだけの話
0024nobodyさん2009/08/01(土) 00:43:05ID:???
Javascript でグリッド(表)を作るのですが、表示件数が15万件と多く、一度に表示しきれません。
ページャをそのまま使うのではなく、スクロールバーの上下でページ移動ができるようにしたいです。
また、スピードを重視するため、表示する分+α程度のデータだけを AJAX で取ってきます。

ページャのページ指定をスクロールバーにバインドできるのか?

というのが今考えていることです。
0025nobodyさん2009/08/01(土) 00:45:26ID:???
そうですか。頑張ってくださいね。
0026nobodyさん2009/08/01(土) 01:27:50ID:???
>>23
ありがとうございました。
理解できました。
00279772009/08/01(土) 01:31:32ID:???
すいません。26です。
foreach($_POST['town_cd'] as $val){
select * from 物件表 where $valでOK?

00289772009/08/01(土) 01:34:23ID:???
もし違っていたら訂正をお願いします。
0029nobodyさん2009/08/01(土) 01:38:43ID:???
$query = "select * from 物件表 where";
foreach ($_POST['town_cd'] as $key => $val) {
 if ($key == 0) {
  $query .= " 市町村id={$val}";
  continue;
 }
 $query .= " or 市町村id={$val}";
}
0030nobodyさん2009/08/01(土) 01:48:14ID:???
>>29
なんで試しに動かしてみないの?バカなの?

〜〜〜というエラーが出たが原因が分からない
なら話はわかるが、なんで実行もしてないソースこれでいいか聞いてんの?
0031nobodyさん2009/08/01(土) 01:49:41ID:???
>>29 != >>977
00329772009/08/01(土) 01:50:42ID:yM0cIisM
なるほどそういうことか。勉強になります。

0033nobodyさん2009/08/01(土) 01:57:38ID:???
理解できましたっていってたのにw
吹いたわ
00349772009/08/01(土) 02:06:37ID:yM0cIisM
理解できていませんでした。
もっと勉強します。
ありがとうございました。
0035nobodyさん2009/08/01(土) 02:09:16ID:???
SQLインジェクションに注意
0036nobodyさん2009/08/01(土) 02:12:45ID:???
そういやfor分の中で

if () {
 処理;
 continue;
}
処理

ってやるのと
if () {
 処理;
} else {
 処理;
}

ってやるのってなんか違いあるの?
0037nobodyさん2009/08/01(土) 02:41:50ID:???
全然違うだろ
0038nobodyさん2009/08/01(土) 02:45:01ID:???
だから何が違うのかって聞いてるの。日本語分かる?
0039nobodyさん2009/08/01(土) 02:53:41ID:???
ID出さないの?
スレタイ日本語だけど読める?
0040nobodyさん2009/08/01(土) 02:54:18ID:???
>◆回答者への注意
>・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
読めなかったら振り仮名振ってあげます
0041362009/08/01(土) 02:55:19ID:uPB6yqUJ
まぁ俺>>38じゃないけどよろしく頼むよ
0042nobodyさん2009/08/01(土) 02:55:59ID:???
悔しいの?wwwwwwww
0043nobodyさん2009/08/01(土) 02:56:42ID:???
>>38
ばか?大丈夫? 
0044nobodyさん2009/08/01(土) 03:02:12ID:???
>>38じゃないが>>38は正論だろ
>>37がアホとしか思えん
0045nobodyさん2009/08/01(土) 03:08:27ID:???
>>44がアホだろ
0046nobodyさん2009/08/01(土) 03:17:40ID:???
まあ>>38の言ってる事は正しいわな。口は悪いが
0047nobodyさん2009/08/01(土) 03:18:46ID:???
んで結局誰もわからないのか?
0048nobodyさん2009/08/01(土) 06:18:27ID:???
>>36
for(){
A処理;
if () {
 B処理;
 continue;
}
C処理;
}
A->B->...
A->C->...

for(){
A処理;
if () {
 B処理;
} else {
 C処理;
}
D処理;
}
A->B->D->...
A->C->D->...

よって前者はDの処理が必要な時、B・Cの両方にD処理の記述が必要であるため後者を用いる事が正しい
D処理が不要であれば結局はどちらも同じである
0049nobodyさん2009/08/01(土) 06:44:59ID:???
速度面ではどうだろうとおもってJavaScript+Firefoxでやってみたが変わらないね
elseブロック通る分時間かかるかなと思ったけどそうでもなかった
0050nobodyさん2009/08/01(土) 07:24:15ID:???
>>49
ifが評価されたらelseブロックをまるまる飛ばすから、elseブロック直後にforブロックの終端があれば大差ないと思うよ
0051nobodyさん2009/08/01(土) 07:28:10ID:???
>>49
あとここPHPスレだよ
0052nobodyさん2009/08/01(土) 07:49:48ID:???
ループの検証のコードなんざどの言語でもいいだろ・・・
0053nobodyさん2009/08/01(土) 07:58:01ID:???
peclにMemcacheとMemcachedがあるけど、どう違うの?
0054nobodyさん2009/08/01(土) 09:52:30ID:???
またつまらんことでもめてたのか?
0055nobodyさん2009/08/01(土) 11:17:38ID:yM0cIisM
もっとPHPができるようになりたいです
0056nobodyさん2009/08/01(土) 13:14:31ID:???
で?
0057nobodyさん2009/08/01(土) 18:44:39ID:???
お前ら喧嘩すんな、慎吾こち亀でもみてろ
0058nobodyさん2009/08/01(土) 20:16:28ID:???
>53
memcachedの方が速いし多機能(検証済)。
memcacheは独自実装。memcachedは中身がlibmemcachedという汎用ライブラリ。
0059nobodyさん2009/08/01(土) 20:34:37ID:o7Ir56np
Cookieを削除する必要がある時ってどんな時ですか?

0060nobodyさん2009/08/01(土) 22:01:33ID:???
>>59
cookieを何に使っているかによって変わると思うが。

一般論としてなら、必要なくなったらさっさと消す。
ブラウザが毎回サーバーに送信していることを忘れるな。
僅かながら帯域を消費しているし、サーバーの処理も余計に必要になる。
0061nobodyさん2009/08/01(土) 22:04:13ID:???
普通に、セッションクッキーにすればいいんじゃあ…
0062602009/08/01(土) 22:09:44ID:???
>>61
これは俺へのレスなのか?
それとも独り言?
0063nobodyさん2009/08/02(日) 00:48:57ID:Zm7WmY12
>>60
どうも。
後、ブラウザが閉じられるまで有効なセッションって、どうやってブラウザが閉じられたかどうか判断してるんですかね?
ブラウザ側が判断してるんでしょうか。


0064nobodyさん2009/08/02(日) 01:14:45ID:???
C++で10年食ってるプログラマでPHP初心者です。
PHPのクラスに関する解説を見るとどれもnewで生成したクラスをdeleteしてないんだけど、PHPにはdeleteというものがないのですか?
0065nobodyさん2009/08/02(日) 01:16:47ID:???
マニュアルくらい見ようぜ
0066nobodyさん2009/08/02(日) 01:17:59ID:???
>>58
ありがとん。公式にはどっちがどうとか書いてなかったので、
どっち使えばいいのかちょっと混乱しちゃいますよね。
0067nobodyさん2009/08/02(日) 01:40:26ID:???
>63
他にどんな可能性があるのか言ってみろよ低能
0068nobodyさん2009/08/02(日) 01:45:45ID:???
>>63
デフォルトではセッション識別にCookieを使っている
クライアントの終了時に破棄する設定のSet-Cookieを返すことで実現する

>>64
オブジェクトが参照されなくなった時点でGCが後始末する
0069nobodyさん2009/08/02(日) 09:55:53ID:???
C++10年やっててもスレタイもマニュアルも読めないんだな
0070nobodyさん2009/08/02(日) 21:35:18ID:???
unset($hoge);
0071nobodyさん2009/08/02(日) 21:57:41ID:???
exit;
0072nobodyさん2009/08/02(日) 23:17:28ID:V4BPZ7v2
フォームのテキストエリアに確認したい内容を、
改行を入れると複数入れられるようにしています。
そして実際の確認時に

$array = explode("\n",$text);
foreach($array as $val){
if(確認の場合の条件){
一致した場合はループを抜ける
}
}

というように配列に入れて、foreachで1行ずつ確認しています。
これはこれで良いのですが、foreachを使わず、配列に入れずに
確認する方法って無いでしょうか?
0073nobodyさん2009/08/02(日) 23:21:30ID:???
何を確認するんだ
0074722009/08/02(日) 23:29:14ID:V4BPZ7v2
すみません、説明不足でした。$textには以下のような値が入っているとします。
$text="a
b
c";

それを改行毎に配列に入れて、>>72のようなforeachを使って
配列の中身に特定の文字列があるか確認したいと思います。

$array = explode("\n",$text);
foreach($array as $val){
if($val == "a"){
return false;
}
}

普段はこのような書き方をしているのですが、
foreachを使わない書き方はないでしょうか?
0075nobodyさん2009/08/02(日) 23:47:00ID:???
$array = explode("\n",$text);
if(in_array("a",$array)===true){
  return false;
}
0076nobodyさん2009/08/02(日) 23:51:16ID:???
===trueの意味何かあんの
0077nobodyさん2009/08/03(月) 00:08:20ID:???
速度的な意味
0078722009/08/03(月) 00:09:28ID:???
>>75
ありがとうございます。in_arrayを使うんですね。

あと、explodeは¥nではなくて¥r¥nじゃないと駄目でした
0079nobodyさん2009/08/03(月) 00:12:24ID:???
Windowsは\r\n、UNIX系は\n、初期のMacは\r
0080nobodyさん2009/08/03(月) 00:18:01ID:???
便乗して
$array = explode("\n",$text);
foreach($array as $val){
if(strpos($val, "a") !== false){
return false;
}
}

の場合はもっと単純に短くできますでしょうか?
0081nobodyさん2009/08/03(月) 00:18:52ID:VvsrItXl
ID出し忘れましたすいません
0082nobodyさん2009/08/03(月) 00:29:23ID:???
1万回程度ループさせて
867 名前: nobodyさん [sage] 投稿日: 2009/07/27(月) 17:40:26 ID:???
PHPで実行時間を求める方法

<?php
$time_begin = microtime(true);

/* expression */

echo "実行時間".(microtime(true) - $time_begin)."秒";
?>

これで時間計ればいいと思うよ
0083nobodyさん2009/08/03(月) 00:31:34ID:???
コードの短さの話をしてるんだろ
0084nobodyさん2009/08/03(月) 00:50:58ID:???
>>80
配列に直す必要あんの?
0085nobodyさん2009/08/03(月) 01:00:49ID:???
strpos($text,"\na\n") !== false ? return false : "";

1行で
0086nobodyさん2009/08/03(月) 01:22:05ID:???
たった1行でバグ含むなよ。
0087nobodyさん2009/08/03(月) 01:24:41ID:???
こいつ・・・たった1行に2つもバグを含んでいるぞ。
0088nobodyさん2009/08/03(月) 01:33:23ID:???
これはひどい
0089nobodyさん2009/08/03(月) 02:27:09ID:???
三項演算子って、可読性悪そうなのに好きな人はやたらと使いたがるよね
0090nobodyさん2009/08/03(月) 02:30:43ID:???
可読性を高められそうなときだけ使うな
0091nobodyさん2009/08/03(月) 04:53:20ID:UYXdY2Ut
馴れだよ
0092nobodyさん2009/08/03(月) 11:26:47ID:???
>>63
ブラウザが閉じられた時点で、ブラウザが保持しているセッションクッキーが破棄される。

サーバー上にあるセッションデータはそのまま残っているが、そのセッションを参照する
クライアントがいなくなったので無いも同然という状態。

サーバー上にあるセッションデータは、最終的にphp.ini等で設定されているGCによって
破棄される。
確か、デフォルト設定では24分の生存期間が設定されている。

なお、サーバーから破棄されるまではセッションIDを知っていればそのセッションを再利用
可能なので注意。
0093nobodyさん2009/08/03(月) 13:08:45ID:U06Xk0yO
ダブルクウォーテーションとシングルクウォーテーション
どちら使っても良い状況のとき、
何か理由があってこっち使うほうが良い
みたいなことはありますか?
好みでいいのでしょうか
よろしくお願いします
0094nobodyさん2009/08/03(月) 13:12:33ID:LOY5W65B
ファイルのアップロードについて質問です。
アップロードの最大サイズ、メモリの最大使用領域
これらは現在稼働中の鯖のメモリを考えて割り当てたほうがいいんですかね。
(2GBのメモリ積んでる場合は2GBまでとか←単純計算で)

ファイルを40GBまでうp可能な鯖を構築したいのですが、
メモリに格納ではなく、一時的にtmpとして保存することは可能でしょうか?
0095nobodyさん2009/08/03(月) 13:20:17ID:???
>>93
シングルクオートは変数を展開しない分、処理速度が速いと思うよ。
0096nobodyさん2009/08/03(月) 15:01:27ID:GfwjTEf5
レンタルサーバで使用中の容量が使える容量のフルに
なっていないかどうかをPHPで確認する方法って
どんな方法が考えられますか?
「一時ファイルを同階層に作り、書き込みしようとして例外が返されたら容量がフル」
みたいなことを考えたのですが、なんかちょっとスマートじゃない気がしてしまうんです。
0097nobodyさん2009/08/03(月) 15:04:08ID:???
float disk_free_space( string directory )
0098nobodyさん2009/08/03(月) 15:38:54ID:???
>>97
レスありがとうございます。
さくらのレンサバなんですが、ユーザとして使える容量ではなく
サーバマシンの空き容量と思われる数値が返ってきてしまいました。
0099nobodyさん2009/08/03(月) 15:42:34ID:???
>>98
カレントディレクトリ以下の使用容量を取得したらいいんじゃない?
0100nobodyさん2009/08/03(月) 15:48:17ID:???
>>98
disk_free_spaceの引数で該当ディレクトリを指定するのは?
もしくはsystemでduで調べるとか。

あとはさくらのレンサバ知らないけど、もしquotaで制限かけているなら
「quota -u ユーザ名」 で確認できるかもしれない。

phpからなら、こんな感じか。
$quota = system('/usr/bin/quota -u ユーザ名' , $retval);
0101nobodyさん2009/08/03(月) 16:30:18ID:8ObdthvW
>>95
3GhzのCPUを使ってたら、そんなの誤差の範囲内だと思うけど?
0102nobodyさん2009/08/03(月) 16:31:33ID:8ObdthvW
>>89-91
三項演算子も読めないプログラマーって使えないよね。
0103nobodyさん2009/08/03(月) 16:58:12ID:???
変数展開をCPUの仕事だと思ってる日曜プログラマーって使えないよね
0104nobodyさん2009/08/03(月) 17:04:10ID:???
よくわからんが、寝ぼけて文中に変数名入れちゃわないように
スタティックな文字列はシングルクォートにするようにしてる。
0105nobodyさん2009/08/03(月) 17:07:06ID:???
ifとcaseと三項演算子の中からいちばん可読性の高いものを自然に選べるのがよいプログラマ?
ifとcaseと三項演算子の中からいちばん処理速度の速いものを自然に選べるのがよいプログラマ?
0106nobodyさん2009/08/03(月) 17:11:54ID:???
そのレベルなら可読性でしょ。

数100万単位のデータ処理なら、設計の自由度と判りやすさで
RMDBSを選ぶか、またはシーケンシャルアクセスを使って独自
の高速データ処理ができる方法を選ぶかって考えなきゃいけないけど。
0107nobodyさん2009/08/03(月) 17:12:18ID:???
コーディング規約を守れるのがよいプログラマ
0108nobodyさん2009/08/03(月) 17:13:11ID:???
仕様書やコーディング規約通りにかけるのがよいプログラマ。
0109nobodyさん2009/08/03(月) 17:14:52ID:???
>>106
>RMDBS
0110nobodyさん2009/08/03(月) 17:17:52ID:???
>>109
いいじゃないかよぉ、Typoくらいよぉ(><)
0111nobodyさん2009/08/03(月) 17:18:23ID:???
TypoでRDBMSをRMDBSは無いわ・・・
0112nobodyさん2009/08/03(月) 17:18:38ID:???
>>110
間違ったんだろ?知識なんてカケラも無いんだろ?素直になれよ?
0113962009/08/03(月) 17:29:19ID:???
>>100
quota制限でビンゴでした。
ありがとうございました。
0114nobodyさん2009/08/03(月) 19:48:59ID:???
eclipseってなんで160MBもあるん
0115nobodyさん2009/08/03(月) 22:34:31ID:???
>>64
C++でいったんnewした
クラスをdeleteしないと、なにがどうなるの?
0116nobodyさん2009/08/04(火) 09:46:49ID:2TKWOoA9
質問です。
http://www.livein-tokyo.com/search3.php
で"市町村id={$val}" の一致したデータを出す場合
$query = "select * from 物件表 where";
foreach ($_POST['town_cd'] as $key => $val) {
 if ($key == 0) {
  $query .= " 市町村id={$val}";
  データを出すsql文
  continue;
 }
 $query .= " or 市町村id={$val}";
}
foreach ($_POST['town_cd'] as $key => $val) {
 if ($key == 1) {
  $query .= " 市町村id={$val}";
  データを出すsql文
  continue;
 }
 $query .= " or 市町村id={$val}";
}
でOK?

0117nobodyさん2009/08/04(火) 09:51:16ID:???
$_POST['town_cd']は配列?
0118nobodyさん2009/08/04(火) 09:52:17ID:2TKWOoA9
配列です。
0119nobodyさん2009/08/04(火) 10:06:50ID:???
>>118
環境作って実際に動作させてみた?

・上のforeachと下のforeachはそれぞれ何がしたいの?
・foreach内の$keyが0か1かで判断していいの?
・$_POST['town_cd']が無い場合(全件取得の場合?)に
 $queryは "select * from 物件表 where"になるけどそのまま実行したらエラーになるよね?
0120nobodyさん2009/08/04(火) 10:07:26ID:???
>>116
手出すのは早すぎなんじゃない?もっとちゃんと基礎から勉強してきたほうがいいよ。

$query = "select * from 物件表 where";
foreach ($_POST['town_cd'] as $key => $val) {
 if ($key == 0) {
  $query .= " 市町村id={$val}";
  continue;
 }
 $query .= " or 市町村id={$val}";
}

この時点で$queryはOR検索で全てのデータを問い合わせる文になってるんだからこれ以上の処理はいらない。
あとはこのクエリを投げて返ってきた結果(オブジェクト・配列・ハッシュ等)を元にHTMLを仕上げればいいだけ。
01211192009/08/04(火) 10:18:45ID:???
$keyってもしかしてwhereの直後の条件(orがいらない)かどうかの判断で使ってる?
それなら、ベースとなるSQLを「select * from 物件表 where 1」と「where 1」とするのが定石。
これなら$_POST['town_cd'] が空(全件の場合)もエラーにならない。
つまりこんな感じか

$query = "select * from 物件表 where 1";
foreach ($_POST['town_cd'] as $key => $val) {
 $query .= " or 市町村id={$val}";
}
0122nobodyさん2009/08/04(火) 10:34:46ID:???
空の場合はSQLException出さない?
01231192009/08/04(火) 10:48:29ID:???
>>122
俺に言ってる?
SQLExceptionはでないと思うよ「select * from 物件表 where 1」を実行すればわかる

上の書き方だと、$_POST['town_cd']が空だったらforeachでWarningはでるけど。
0124nobodyさん2009/08/04(火) 10:50:13ID:???
普通は例外キャッチして検索条件入れてくださいってechoするよね
01251222009/08/04(火) 10:52:21ID:???
ああ・・・Javaと混ざってた。スルーしてちょうだい。
0126nobodyさん2009/08/04(火) 11:01:07ID:???
>>124
それは要件によると思うよ
>>116 のような不動産サイトで各種条件(価格とか面積とか)を指定して物件を絞り込むような場合
条件指定しなければ全件でてくる所が多い。
0127nobodyさん2009/08/04(火) 11:15:16ID:???
いちいち全件出すような仕様にはしないんじゃない?
転送量的にも負荷的に考えて
もし出すにしても人気のものとか売り出したいものとか数件出す程度にする
規模のおおきくなる商用サイトとかだとそういうかんじだとおもうけど
動画サイトとかは典型例
全件なら全件チェックを別途いれるんじゃないかな
0128nobodyさん2009/08/04(火) 11:18:18ID:???
こまけえ話はいいんだよ
とりあえず>>116は勉強不足
実力に見合ったとこからやらないと
いきなり飛び級してもついていけなきゃ意味がない
かえって遠回り
0129nobodyさん2009/08/04(火) 11:18:31ID:???
1ページ辺りの表示件数は制御するけど
条件は全部無条件にするって意味じゃね
0130nobodyさん2009/08/04(火) 11:21:06ID:???
>>116,120,121
SQL Injection も指摘しておく
0131nobodyさん2009/08/04(火) 11:25:30ID:???
>>130
そこまで言い出すと余計混乱すると思うw
0132nobodyさん2009/08/04(火) 11:35:50ID:???
かもしれないが,実システムでは避けては通れない道なんだから
オミットできるものではない
0133nobodyさん2009/08/04(火) 11:58:23ID:???
まぁSQLインジェクションなんざXSSと同じで関数1つでどうにかなる問題だけどな
0134nobodyさん2009/08/04(火) 12:01:11ID:???
$_POST['town_cd'][0] = " '; DELETE '物件表";

こんなデータが入ってきたらどうするんだろう
0135nobodyさん2009/08/04(火) 12:04:14ID:???
くだ質でもそこまで考慮した回答を提示しろって事か。
ただ、要点しぼらないと余計わからなくなるかもしれないし。

悩み所だな。
0136nobodyさん2009/08/04(火) 12:12:43ID:???
PHPにはmysql_real_escape_stringとかデータベース用のエスケープ関数んだから。
インジェクションの被害は1億円超える事例もあるし(ttp://internet.watch.impress.co.jp/cda/news/2006/11/29/14076.html )
実際にネットに公開するような使い方だしさ
0137nobodyさん2009/08/04(火) 12:34:12ID:???
XSS 対策には引数が必要な罠
0138nobodyさん2009/08/04(火) 12:38:54ID:???
>>137
kwsk
0139nobodyさん2009/08/04(火) 12:41:13ID:???
ENT_QUOTESだろ
0140nobodyさん2009/08/04(火) 12:50:09ID:???
>>139
付けないとどうなんの?
0141nobodyさん2009/08/04(火) 13:02:39ID:???
>>140
PHP: htmlspecialchars - Manual
http://www.php.net/manual/ja/function.htmlspecialchars.php
0142nobodyさん2009/08/04(火) 13:16:50ID:???
function escape($str){
  return stripslashes(htmlspecialchars($str,ENT_QUOTES));
}
$_GET = array_map("escape", $_GET);

1つずつエスケープするのは面倒なので俺ならこうするな
0143nobodyさん2009/08/04(火) 13:31:09ID:???
出力時にエスケープしてください
0144nobodyさん2009/08/04(火) 13:33:01ID:???
>>141
kwsk
0145nobodyさん2009/08/04(火) 13:46:42ID:???
>>143
出力時のうっかりエスケープ忘れを防げないよね。
なので >>142 が安全。
0146nobodyさん2009/08/04(火) 14:03:59ID:???
うっかりエスケープ忘れしてしまうような設計なら問題あり
0147nobodyさん2009/08/04(火) 14:08:48ID:???
無条件でstripslashes、$_GET上書きに違和感を感じるが・・・

>>145
出力時のうっかりミスを考えるなら、その関数を入れ忘れるのも考慮しないといけないんじゃ?
そしてそのリスクって変わらないと思うんだけど。
スクリプト内の色々な箇所でecho出力してるわけじゃないでしょ?
0148nobodyさん2009/08/04(火) 14:12:13ID:???
>>142 は一か所に入れておけば済むが、
出力時のエスケープは何箇所かに及ぶため、
人間である限りうっかりが起こる。
失敗学的に 142 のようなのを一か所だけ、が安全。
0149nobodyさん2009/08/04(火) 14:18:26ID:???
入力時にエスケープするのは意味あいが変わるじゃん
エスケープした時点で受け取った入力内容と異なるデータになっちゃう
セキュリティを考慮しても違和感のあるプログラミングは避けたほうがいいと思う
入力時にエスケープは個人的にはないわー
01501472009/08/04(火) 14:22:16ID:???
>>148
やっぱり設計思想というか考え方の差だね

俺の場合は出力箇所はスクリプト内で常に1箇所にしてるのと、
出力する変数は全て一つの表示用配列に入れ、出力時に1回 >>142 のようにエスケープすれば良いようにしてる。
だから安全度は変わらないと思う。

そろそろフレームワーク使えと言われそうだw
0151nobodyさん2009/08/04(火) 14:22:45ID:???
「違和感」を感じるかは、
セキュリティを重視するか、
セキュリティを軽視したコードを書くかの主観の問題。
セキュリティを重視すれば違和感を感じない。

毎月のようにある Web アプリの XSS 脆弱性は、
まったくエスケープしていないのではなく、
出力時にエスケープしているため。
0152nobodyさん2009/08/04(火) 14:28:59ID:???
自分はフレームワークでも >>142 みたいのを入れてるよ
0153nobodyさん2009/08/04(火) 14:30:21ID:???
echo何度も実行するより$echo .= 〜みたいにつなげていって最後に出すのが速度的にもいいね。
0154nobodyさん2009/08/04(火) 14:32:41ID:???
$_GET全てに無条件でエスケープは無いな
受け取ったデータ全てが画面表示されるわけでもないし
0155nobodyさん2009/08/04(火) 14:44:12ID:???
XSS 脆弱性を出す人はみんなそう言うんだよ
0156nobodyさん2009/08/04(火) 14:44:17ID:???
URLの長さの上限はIEで2100バイト、Apacheで8190バイトだし変換コストでの問題は無いと思う
0157nobodyさん2009/08/04(火) 14:45:13ID:???
>>151
出力時にエスケープしているのにXSS 脆弱性があるってのはどういう状況?
できれば解説お願いします。

単に「うっかりミスが出やすい」という話?
0158nobodyさん2009/08/04(火) 14:46:58ID:???
セキュリティ云々じゃなくて単純に変なだけでしょ
とにかく$_GET $_POSTは有無をいわさずエスケープっておかしいよ
入力値はまずチェック(バリデーション)からはいるでしょ?
わざわざエスケープ済みのデータを基準にしてチェックするわけ?
入力時エスケープにするとしてもタイミングが悪いよね?
やるとしてもデータ格納直前にやるべきでない?
0159nobodyさん2009/08/04(火) 14:51:53ID:???
htmlspecialcharsは表示直前
エスケープはDBに入れる直前が基本だろ
0160nobodyさん2009/08/04(火) 14:52:01ID:???
ううむ・・・
色々調べてみたけど
入力時エスケープによって脆弱性が生まれると主張する人も結構いるね
0161nobodyさん2009/08/04(火) 14:52:57ID:???
htmlspecialcharsは表示直前
DBに入れるのは受け取った生のデータが基本だろ
01621612009/08/04(火) 14:53:50ID:???
もちろんSQLインジェクション用のエスケープはするよ
0163nobodyさん2009/08/04(火) 14:55:46ID:???
たぶんうっかりミスで過去にひどい目にあったんだろ。
0164nobodyさん2009/08/04(火) 14:56:27ID:???
「htmlspecialcharsは表示直前」だと「うっかり」忘れる。
世の Web アプリの XSS 脆弱性のほとんどはこの「うっかり」。
だから、最初の段階でエスケープ。

従来のソフトウェア工学的には変かもしれないけれど、
人間工学的には必要。
0165nobodyさん2009/08/04(火) 14:57:20ID:???
議論がループしている。
>>142- から再読を。
0166nobodyさん2009/08/04(火) 14:59:28ID:???
ただの個人の主張をさも学問ぶるとか。。
0167nobodyさん2009/08/04(火) 15:04:57ID:???
うっかりミスというかルール作りすればそんなのおきないでしょ
たとえば文字列出力時は

function es($str) {
 echo htmlspecialchars($str, ENT_QUOTES);
}
es("<strong>ほげー</strong>");
っていう風にやるとか

voidにしたけどStringにして
echo es("<strong>ほげー</strong>");
にするとか

必ず何かを通すようにルール作りしとけばよい
0168nobodyさん2009/08/04(火) 15:10:01ID:???
うっかりDBパスワードをechoしてしまうかもしれないからDBは使用厳禁ってか?
0169nobodyさん2009/08/04(火) 15:11:02ID:???
>>167
たぶんそのルールを忘れるって事だと思うぞ。
議論は平行線のままだろうな。

厳密なコーディング規約を作れば良い
→ルールを守らない奴がでてくる

しっかりテストすれば良い
→テストに抜けがあるかもしれない

こういう事だろ?
0170nobodyさん2009/08/04(火) 15:14:27ID:???
>>169
コードレビューとかしないの?
0171nobodyさん2009/08/04(火) 15:16:50ID:???
「必ず何かを通すようにルール」や
「コードレビュー」によって 100% 見落としがなくなりますか?
0172nobodyさん2009/08/04(火) 15:27:26ID:???
じゃ最初の段階でエスケープするのは絶対忘れないの?
0173nobodyさん2009/08/04(火) 15:32:53ID:???
>>172
子供じゃないんだから…。

「一か所に入れるだけ」というルールは守られやすいし、
コードレビューでも一か所を見るだけだから
見落としの可能性は極めて低いでしょう?

その逆に、表示直前だと、ページ数が数百、
出力箇所が数千ある場合、
見落とす確率が非常に高くなるよね。
そして、それこそが Web アプリの脆弱性なんですよ。
0174nobodyさん2009/08/04(火) 15:48:12ID:???
規模が大きいとエスケープの確認するだけで数時間いるかもね
0175nobodyさん2009/08/04(火) 15:54:07ID:???
その数時間を 20 回、100 回と繰り返せば、確実に見落とすから。
0176nobodyさん2009/08/04(火) 17:25:09ID:???
設計がヘボいからそういう考えに陥る
0177nobodyさん2009/08/04(火) 17:38:56ID:???
>>176
ヘボくない設計って?
0178nobodyさん2009/08/04(火) 19:47:41ID:???
ウェブアプリの脆弱性君
お前のアプリケーションは入力データをそのまま出力するだけなのか
信頼しないデータは入力されたものだけなのか
次のスクリプトを読んで>>142が無価値なものだと気付こうぜ

<?php $uri = $_GET['uri']; $filename = apache_lookup_uri($uri)->filename; ?>
URI <?php echo $uri; ?> に対するファイル名は <?php echo $filename; ?> です。

例外処理は本質じゃないので省いてあります
0179nobodyさん2009/08/04(火) 21:48:45ID:???
>>173
>その逆に、表示直前だと、ページ数が数百、
>出力箇所が数千ある場合、
>見落とす確率が非常に高くなるよね。

普通はMVCのビューに変数を渡す時、またはビューが変数を出力
する時に一括してエンティティ化や文字コード変換などの出力処理
をかけるんだよ。
カプセル化して出力には必ずビュークラスを通すようにしておけば
目視で全部確認するなんて前時代の方法はいらない。

>子供じゃないんだから…。

100%とか言い出したのはそっちだろ?
本題に自信がないのか知らんけど煽りで煙に巻くのはやめてほしいね。
0180nobodyさん2009/08/04(火) 22:00:34ID:???
たまに>>142みたいなの湧くけど
HTML以外への出力、例えばメールとかPDFとかに乗っける場合は
わざわざ元に戻すのかな?
0181nobodyさん2009/08/04(火) 22:01:05ID:???
マクロ用意しとけばうっかりなんておきねえよ
0182nobodyさん2009/08/04(火) 22:02:32ID:???
>>178
これの実行結果はどうなるの
0183nobodyさん2009/08/04(火) 22:33:37ID:???
>>180
まあ、そうだろうな。

意外と、メールはすべてHTMLメールで、
PDF出力はHTML2PDF的なものを使う、
とかかも知れんけど。
0184nobodyさん2009/08/05(水) 00:04:48ID:QkW6R4Ei
一つのテーブルに項目が多いので、ループでうまくMYSQLにINSERTしたいのですが、
スマートなやり方が思いつきません。どなたかテクニックを教えてください。

テーブル名:user
id  =>(主)
grade
first_name1
last_name1
first_name2
last_name2
sex
birth_day
school
tell
tell2
zip_code
add1
add2
mail
で、項目名がキーで連想配列(arr)に入ってるとしてお願いします。
0185nobodyさん2009/08/05(水) 00:09:11ID:???
俺はその手のはテーブル構造を書いたArrayをまわすようにしてる。

でも、値によって保存方法のルールが複雑なら、別に愚直に長く
書いてもいいと思うぜ。
0186nobodyさん2009/08/05(水) 01:09:35ID:8EYjxJv2
$query = "select * from 物件表 where 1";
なんで1が必要なんでしょうか?
foreach ($_POST['town_cd'] as $key => $val) {
 $query .= " or 市町村id={$val}";
}
後この$query .= " or 市町村id={$val}"; は
なんのために必要なんですか?
ぜんぜんわかりません。
教えてください。
こういうことが書いてあるサイトがあれば教えてください
0187nobodyさん2009/08/05(水) 01:18:57ID:???
SQLスレでやれ
0188nobodyさん2009/08/05(水) 01:19:46ID:???
>>186
where 1は全件検索
そのSQLだと
select * from 物件表 where 1 or 市町村id=1
とかになるから結局全件表示されちゃうんじゃね?
見直したほうがいいよ
0189nobodyさん2009/08/05(水) 01:29:22ID:8EYjxJv2
$query = "select * from 物件表 where";
foreach ($_POST['town_cd'] as $key => $val) {
 if ($key == 0) {
  $query .= " 市町村id={$val}";
  continue;
 }
 $query .= " or 市町村id={$val}";
}
or市町村id={$val}"; ってなにをしているの?
もし板違いならどこを参考にすればいいの?
0190nobodyさん2009/08/05(水) 02:32:30ID:FCm+s8yN
【OS名】FreeBSD 6.2
【PHPのバージョン】php5.2.3
【連携ソフトウェア】mysql4.0.27
【質問内容】
時間とともに常に変化していく折れ線グラフを表示させたいんだけど、
(ページを更新しなくてもずっと動いている折れ線グラフ。
  株価のようなグラフがリアルタイムで動いていくイメージです)
これを実現するためには何をどうすればいいのか方向性を教えてください。

とりあえず今はjpgraphを使ってグラフを描こうとしてるんだけど、
ページを更新させずにグラフを動かすっていうのがさっぱり分かりません。

ソケットというものを使う必要があるの?
そもそもPHPで作れるの?JavaScriptとかも使うの?
こういうことを勉強しとけ、この本orサイトを読めっていうのがあれば
教えてください。
0191nobodyさん2009/08/05(水) 02:37:48ID:???
ajaxとグラフを表示させるjavascriptライブラリ
動的に更新するには難しいかも
ttp://www.html5.jp/library/graph_line.html
0192nobodyさん2009/08/05(水) 06:10:53ID:???
>>189
select * from 物件表 where 市町村id=1 or 市町村id=2 or 市町村id=3
なんてのを想定してるんだろ?
そのままの意味じゃねえか
この意味がわからないならSQLの勉強しろとしかいいようがない
0193nobodyさん2009/08/05(水) 07:54:39ID:???
test
0194nobodyさん2009/08/05(水) 09:33:01ID:???
>>190
jpgraphでグラフを描けるのであれば、後はページの一部をjavascriptで定期更新するだけ。

ajax timerで検索してみると良いかも。
後はjavascriptのスレで質問してくれ。
01951192009/08/05(水) 10:52:28ID:???
>>188
ぼけてた・・・andじゃなくてorだもんな。

みなさん、間違った回答をしてしまいすみませんでした。
0196nobodyさん2009/08/05(水) 11:02:59ID:???
>>180
そう。戻す。

HTML 出力時に「わざわざ」直前にエスケープして
それを忘れて XSS 脆弱性を出すように、
メールや PDF の「わざわざ」直前にデエスケープして
それを忘れて脆弱性じゃないバグの方を選択する。

それに、HTML より、メール、PDF の方が出力箇所が圧倒的に少ないから。

だから脆弱性を重視するかどうかなんだって。
0197nobodyさん2009/08/05(水) 11:15:13ID:4RYOgnxK
PHP4年使ってきたけど、未だにPECLがわかりません。
なので今日しっかり理解しようと思います。

PECLはどういった位置づけなのでしょうか。
以前まで、PEARのようなライブラリと思っていたのですが、
最近はdllのようなモジュールとしての扱いかなと思ってきました。

それで正しいのでしょうか。
0198nobodyさん2009/08/05(水) 11:34:24ID:???
標準機能じゃ満足にできないことをやるためのもの

ペイントじゃうまくできないからPhotoshopいれたり
CADやりたいけど標準じゃないから新しく入れたりみたい
0199nobodyさん2009/08/05(水) 11:38:00ID:8EYjxJv2
$query = "select * from 物件表 where";
foreach ($_POST['town_cd'] as $key => $val) {
 if ($key == 0) {
  $query .= " 市町村id={$val}";
  continue;
 }
 $query .= " or 市町村id={$val}";
}
では市町村idが多い場合、orも増えるということ?
0200nobodyさん2009/08/05(水) 11:43:52ID:???
>>199
なぜ自分で試してみないんだ?
試した上で疑問点を質問しなさい。
0201nobodyさん2009/08/05(水) 11:43:55ID:???
>>199
お前は何を言ってるんだ?
0202nobodyさん2009/08/05(水) 11:58:13ID:8EYjxJv2
http://www.livein-tokyo.com/search3.php
みたいなものをどうやって作るのかしりたいんです。
まだ作ってないので、ためしようがないんです。
<li><input type="checkbox" name="town_cd[]" value="13105" />
みたくいっぱい地区が並んでいますが、この場合
$query .= " or 市町村id={$val}";
$query .= " or 市町村id={$val}";
ってならべていくの?
それとも
新しくforeach ($_POST['town_cd'] as $key => $val) {
 if ($key == 0) {
  $query .= " 市町村id={$val}";
  continue;
 }
 $query .= " or 市町村id={$val}";
}
を作るの?
意味がよくわからなくてすいません。
どうやって作っているのか知りたくて。
教えてください。
02031902009/08/05(水) 12:01:53ID:FCm+s8yN
>>191 >>194
なるほどajaxですか。
ありがとうございます。
0204nobodyさん2009/08/05(水) 12:03:40ID:???
>>202
前者だったら同じ値じゃないか
チェックボックスのデータはPHPで配列で受け取れるんだよ
02054782009/08/05(水) 12:28:42ID:???
つまりひとつずつ
$query = "select * from 物件表 where";
foreach ($_POST['town_cd'] as $key => $val) {
 if ($key == 0) {
  $query .= " 13105={$val}";
  continue;
 }
 $query .= " or 13105={$val}";
}
foreach ($_POST['town_cd'] as $key => $val) {
 if ($key == 0) {
  $query .= " 13106={$val}";
  continue;
 }
 $query .= " or 13106={$val}";
}
と書けるわけだ。
0206nobodyさん2009/08/05(水) 12:29:57ID:8EYjxJv2
つまりひとつずつ
$query = "select * from 物件表 where";
foreach ($_POST['town_cd'] as $key => $val) {
 if ($key == 0) {
  $query .= " 13105={$val}";
  continue;
 }
 $query .= " or 13105={$val}";
}
foreach ($_POST['town_cd'] as $key => $val) {
 if ($key == 0) {
  $query .= " 13106={$val}";
  continue;
 }
 $query .= " or 13106={$val}";
}
と書けるわけだ。
0207nobodyさん2009/08/05(水) 12:53:38ID:???
$query .= " 13105={$val}";

$query .= " 13105=".$val;

こうしたほうが速度的に早くなる
0208miniyou2009/08/05(水) 12:59:19ID:9EvJqO1U?2BP(0)
CGI初心者です。以下のコードは、現在ページのURLを取得する物で、あるサイトで見つけたものですが、PHPではなく、CGIでしたいのです。CGIに直してみようと思いましたが、難しくて分かりません。PHP/CGIが得意な方、CGIに直して頂けないでしょうか。大変困っております。


if( isset($_SERVER['HTTPS']) ){
$http = ($_SERVER['HTTPS'])?'https://':'http://';
}else{
$http = 'http://';
}
define('CONFIG_THIS_URL',$http.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']);
$url = CONFIG_THIS_URL;
0209nobodyさん2009/08/05(水) 13:47:54ID:???
>>202
いきなり全部作る気なのか?

疑問のある部分のコードをひとつずつ実際に実行して試してみろって。
今の調子じゃ永遠に理解できないぞ。

それともテストプログラムを作れない理由が何かあるのか?
0210nobodyさん2009/08/05(水) 13:52:39ID:???
>>208
まずCGIという言葉の意味について勘違いしているようだから意味不明だぞ。
0211nobodyさん2009/08/05(水) 13:55:48ID:???
>>208
PHPはApacheモジュールのほかにCGIとして動かすことが出来ますがそれでは駄目?
0212nobodyさん2009/08/05(水) 14:34:13ID:???
CGIって大概はPerl実装のこと言ってるんだろ。そっちの噛み付き方のが意味不明。
0213nobodyさん2009/08/05(水) 14:52:01ID:???
0214nobodyさん2009/08/05(水) 14:58:26ID:???
>>212
cgi=perlのつもりと判断する要素がひとつでもあったか?
211のような話かもしれんし、cやruby、shとかかもしれんだろ。
決め付けるのも良くないぞ。
0215nobodyさん2009/08/05(水) 15:01:25ID:???
皆さん、Windowsでのテスト時のファイルへの絶対パスの指定ってどうしてます?

c:\tmp\001.tmp
c:/tmp/001.tmp
file:///c:/tmp/001.tmp
色々な方法がありますが、それがベストなんでしょうか。
0216mikky2009/08/05(水) 15:03:18ID:9EvJqO1U?2BP(0)
【記述】
$http = ($_SERVER['HTTPS'])?'https://':'http://';
print $http;

結果:http://
と出力されました。


【記述】
define('CONFIG_THIS_URL',$http.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']);
$url = CONFIG_THIS_URL;

結果:何も表示されません
0217miniyou2009/08/05(水) 15:08:43ID:9EvJqO1U?2BP(0)
名前「mikky」に間違えてました。すみません。
0218miniyou2009/08/05(水) 15:10:11ID:9EvJqO1U?2BP(0)
ありがとうございました。
後は自分で調べて勉強してみます。
0219nobodyさん2009/08/05(水) 15:10:15ID:???
>>216
下はechoもprintもしてないんだから表示されなくて当然。

であなたの質問は

・phpを、apacheのモジュールではなくcgi(という仕組みで)動かしたい
・phpを、cgiという仕組みを使いperl(php以外の言語)で動かしたい

のどっち?
02202152009/08/05(水) 15:13:25ID:iDK7D7+A
sage入れたまんまだった。
どれがベストなんでしょうか。

というのも
finfo_file関数で、パスが取得できずに困っています。
返り値は「false」なので、
「filename のテキスト表現、あるいはエラーが発生した場合に FALSE を返します。 」
と書いてあるので、テキスト表現が間違っているのかなと思っています。

取得は
C:/xampp/hoge.tmp
C:\xampp\hoge.tmp
両方のパスで行いましたがどっちもfalseが返ってきます。
どのようにして取得すれば良いのでしょうか。
0221nobodyさん2009/08/05(水) 15:16:32ID:???
>>220
エラーの内容は?
0222nobodyさん2009/08/05(水) 15:32:59ID:???
>>220
phpinfo()で表示されるパスを参考にしたらいいとおもうよ
0223nobodyさん2009/08/05(水) 16:01:42ID:4RYOgnxK
>>221
エラーは表示されませんでした。
ただ、Falseが返ってくるだけです。

他のファイルでは正常に表示されました。
原因不明なのでいまだにエラーわからずじまいですが・・・

ありがとうございました
0224nobodyさん2009/08/05(水) 17:22:17ID:qtFRGhoH
DB(mysql)と連携して、特定のテーブルのカラムに対してキーワード検索したいと思います
このとき、ユーザーが入力する検索キーワードが2つ以上ある時の検索手順はどうしたらいいでしょうか?
自分の考えでは

$keyAry = explode(" ", $_POST['key']);
半角スペースをキーに切り出して、出来た要素をクエリ文のwhere以下で `tgtColumn`=%keyAry[0]% AND `tgtColumn`=%keyAry[1]% …
としていくしかないかなぁと思います。
が、何か穴があるのではと思いますがわかりません。
上の配列要素の中に全角スペースがあればそれもまたexplodeのキーにして、再度検索キーワードを作り直す…くらいしか思いつきません。

何かもっと効率的に実践する方法ないでしょうか?
php5.2.8 mysql5です。よろしくお願いします。
0225nobodyさん2009/08/05(水) 18:16:42ID:???
>>205
なんでひとつずつそんな冗長的なアホなコード書きたいの?
だいたいぜんぜん違うだろそれ
めちゃくちゃになるぞ・・・
たとえば$_POST['town_cd'] = array(13105);
が入ってたら
>>205のコードだとループ終了時点で
$query = "select * from 物件表 where 13105=13105 13106=13105";
になるだろ
あんましったかはしなくていいからちゃんと基礎から勉強してください
ループや結合演算子の動作も理解できてないじゃん
ぜんぜん理解できてないしもう1度>>7->>35を読み返した上でPHPマニュアルで1から勉強して下さい
0226nobodyさん2009/08/05(水) 18:35:47ID:???
公開したらURL教えてね
$_POST['town_cd'] = array("; DELETE 物件表;");
を突っ込んであげるから
0227nobodyさん2009/08/05(水) 18:52:49ID:???
$query = "select * from 物件表 where";
if (in_array("1", $_POST['town_cd'])) {
 if (preg_match("/where$/", $query)) {
  $query .= " 市町村id=1";
 } else {
  $query .= " or 市町村id=1";
 }
}
if (in_array("2", $_POST['town_cd'])) {
 if (preg_match("/where$/", $query)) {
  $query .= " 市町村id=2";
 } else {
  $query .= " or 市町村id=2";
 }
}
if (in_array("3", $_POST['town_cd'])) {
 if (preg_match("/where$/", $query)) {
  $query .= " 市町村id=3";
 } else {
  $query .= " or 市町村id=3";
 }
}
こんなんを市町村分やりたいのならもう好きにしろって感じだなw
0228nobodyさん2009/08/05(水) 18:57:54ID:???
入れられる値を限定したいのならarrayにでも入れておけばいいさぁ
0229nobodyさん2009/08/05(水) 18:59:20ID:???
なぜarrayにこだわる?
あれ?
0230nobodyさん2009/08/05(水) 19:07:22ID:???
>>229
誰のレス?>
>228にいってるなら何の話をしているのかよくわからないが
一連の流れにいってるのであれば>>202のページの話ね
name="town_cd[]"
0231nobodyさん2009/08/06(木) 01:22:08ID:???
$hoge[0]['node'] = "A"
$hoge[0]['next'] = "B"
$hoge[1]['node'] = "B"
$hoge[1]['next'] = "C"
$hoge[2]['node'] = "C"
$hoge[2]['next'] = "D"
...

の様な値から、流れ図を画像で出力したいと思っています。
上記のような値なら、
 A→B→C→D…
という画像が出力されるイメージ。

実際には、もっと複雑になり、一つのnodeから複数の線が出ることになると思うので、
できれば配列を引数で渡したら、画像を出力してくれるようなライブラリを使いたいのですが、
何か良いライブラリやサンプルはないでしょうか。

imagecreateのような、GD関数を使えば、簡単なものは実装できると思うのですが、
複雑になってくると、難しいかなと思っています。
0232nobodyさん2009/08/06(木) 08:05:29ID:???
http://takagi-hiromitsu.jp/diary/
ひろみちゅかっけー
何をいってるのかサッパリ俺にはわからなかったがすげえなやっぱり
俺は携帯対応はさっぱりなんだけどね
0233nobodyさん2009/08/06(木) 08:21:43ID:???
それってニコ動が出してるなじゃんくてiphone側が出してるアラートじゃないの?
0234nobodyさん2009/08/06(木) 09:02:09ID:???
>>232
いや、わかれって。
大事なことだぞ。
0235nobodyさん2009/08/06(木) 09:42:48ID:???
Session の扱いであって
本質的にケータイとは関係ないことだから
0236nobodyさん2009/08/06(木) 13:43:02ID:???
>>224
preg_split()が楽。UTF-8限定ならもっと楽
$tokens = preg_split('/\p{Z}+/u', $keyword);
0237nobodyさん2009/08/06(木) 15:31:49ID:???
$query = "select * from 物件表 where";
foreach ($_POST['town_cd'] as $key => $val) {
 if ($key == 0) {
  $query .= " 13105={$val}";
 }
}
foreach ($_POST['town_cd'] as $key => $val) {
 if ($key == 0) {
  $query .= " 13106={$val}";
}
}
02382372009/08/06(木) 15:35:13ID:Qt302JJo
ageてしまった。
0239nobodyさん2009/08/06(木) 15:45:10ID:???
>>237
なんでもいいけどそのソースはなに?
$keyが0の時だけなんかしたいなら最初から
$query = "select * from 物件表 where 13105=".$_POST['town_cd'][0]." AND 13106=".$_POST['town_cd'][0];

でいいんじゃないの?
あとANDかORで繋がないと文法エラーになるよ
0240nobodyさん2009/08/06(木) 16:10:24ID:???
まだ続いてんのか。
0241nobodyさん2009/08/06(木) 16:20:42ID:sYopahvA
$ary = array(3, 5, 5, 9 ,2, 5, 2, 7)を
$ary = array(3, 5, 9, 2, 7)としたいです。
ルールはindexの低い順に格納し、すでに格納している値と
同じ値ならスルーする。
アルゴリズムが分かりません。教えてください。
0242nobodyさん2009/08/06(木) 16:24:57ID:???
foreach でオリジナルの配列をまわし、新しい配列に
重複しないものだけを追加していけばいいんじゃないかな。
0243nobodyさん2009/08/06(木) 16:28:12ID:???
えっ
http://jp2.php.net/array_unique
0244nobodyさん2009/08/06(木) 16:30:42ID:sYopahvA
>>243
ありがとうございます。
0245nobodyさん2009/08/06(木) 17:43:04ID:Qt302JJo
ひとつずつくぎりたいんだ。
<?php
if( isset(13106=$_POST['town_cd'] ){
$query = "select * from 物件表 where 13106=$_POST['town_cd']
}else{
}
?>
13106のデータを出したいんだ。

どうすればいい?
0246nobodyさん2009/08/06(木) 17:46:55ID:???
理想の入力データと出力データを書けうざい
0247nobodyさん2009/08/06(木) 17:52:38ID:Qt302JJo
http://www.livein-tokyo.com/search3.phpこれみたく
たとえば13106、13107のデータをチェックボックスでチェック
されたら13106、13107分けて、13106の画像、説明が次で表示される。
その下に同様に13107の画像、説明が表示される。
うまく説明できないけどこんな感じです。
0248nobodyさん2009/08/06(木) 17:56:34ID:???
$_POST['town_cd']に何が入っててどういう結果を出したいのかを書いて
0249nobodyさん2009/08/06(木) 18:00:09ID:Qt302JJo
$_POST['town_cd']にはひとつ13106がはいっていてほしい
そして13106で検索してその土地、画像、説明文がでてきてほしい
0250nobodyさん2009/08/06(木) 18:02:46ID:???
>>247
phpはひとまずおいといて、必要なSQL文がどのようなものになるのか理解してからきなさい。
両方一緒に質問するのは君にはムリだよ。
0251nobodyさん2009/08/06(木) 18:03:10ID:???
13106っていうカラム名なの?
0252nobodyさん2009/08/06(木) 18:06:52ID:???
$_POST['town_cd']は絶対に13106が入るの?
あとissetは変数がセットされてるか調べるだけisset(13106=$_POST['town_cd'])なんて使い方は出来ない
0253nobodyさん2009/08/06(木) 18:11:22ID:Qt302JJo
そうか。もうぜんぜんだめだ。
説明ができない。
$_POST['town_cd']はチェックされた数値が入る
0254nobodyさん2009/08/06(木) 18:15:38ID:Qt302JJo
$_POST['town_cd']にはチェックされた数値が入って
それをチェックした分だけ画像や説明文をsql文で呼び出す
プログラムを作りたい。
0255nobodyさん2009/08/06(木) 18:23:56ID:???
変数**には**から**の範囲の数値文字列が配列で複数個入っていて〜とか
SQLのデータ構造は主キーが**で〜とか言ってくれないと
0256nobodyさん2009/08/06(木) 18:44:24ID:???
言っていることは分かるけど、
魚を与えるより、釣りの仕方を教えたい。

SQL は忘れて、まずは PHP のチェックボックスを学んだ方がいいよ。
0257nobodyさん2009/08/06(木) 18:58:33ID:???
なんか面倒になってきたな

DBの内容を以下 テーブル名bukken
物件番号,土地,画像,説明文
001 東京 001.jpg 東京の物件です
002 大阪 002.jpg 大阪の物件です
003 京都 003.jpg 京都の物件です

んで選択画面のHTMLで
SELECT * FROM bukkenのクエリを発行し、結果を$bukkenに入れる
foreach($bukken as $value){
echo '<input type="checkbox" name="bukken[]" value="'.$value[物件番号].'">';
echo $value[土地];
・・・略
}

送信先で
2次元配列$_POST['bukken']に物件番号が送られてくる
ここまでいいか?
0258nobodyさん2009/08/06(木) 19:11:27ID:???
>>236
どうもありがとうございます
たすかりました
0259nobodyさん2009/08/06(木) 19:18:51ID:???
ローマ字変数名きめぇ
0260nobodyさん2009/08/06(木) 19:40:38ID:???
ここまで分かるなら実際に動かしてみろよ・・
0261nobodyさん2009/08/06(木) 20:16:35ID:BSJAUmaX
MT互換というか、できるだけMTそのまんまの無料ブログサービスを教えてください
0262nobodyさん2009/08/06(木) 20:17:47ID:BSJAUmaX
誤爆しました
すみません
0263nobodyさん2009/08/06(木) 21:17:51ID:???
>>247
あのさ・・・DB使ったシステム構築したことあるの?
13106と13107のデータをOR検索したら両方のデータがとれるじゃん
あとはとってきたデータを順番に表示してるだけでしょ
クエリ送る段階で分ける必要はぜんぜんないんだけど
0264nobodyさん2009/08/06(木) 21:25:06ID:???
何というか、2chにも親切な人はいるんだな
0265nobodyさん2009/08/06(木) 21:41:08ID:mexO5YhN
ども PHP書くとき何のソフト使ってます?
0266nobodyさん2009/08/06(木) 21:42:01ID:???
vi
0267nobodyさん2009/08/06(木) 21:55:09ID:???
viとは硬派だな

俺はvim + debugger.vim + Xdebug
0268nobodyさん2009/08/06(木) 22:07:48ID:???
最先端のメモ帳
ていうかこういう話題は別のスレだったきがするが
0269nobodyさん2009/08/06(木) 22:29:34ID:???
PHPエディタ(スタンドアロン)
0270nobodyさん2009/08/06(木) 22:39:42ID:???
PHPエディタ(IDE)からEclipseに移行中
でも重くてうんざりする。

PHPエディタのスタンドアロン版が不意に更新されたので、
IDE版もいろいろ不満点が解消される時が来るのかなーと少し期待。
0271nobodyさん2009/08/06(木) 22:39:47ID:???
PDT

エディタは別スレあるが、全然書き込み無い
komodoに期待してる。
0272nobodyさん2009/08/06(木) 22:41:57ID:???
>>270
>PHPエディタのスタンドアロン版が不意に更新されたので、

全然知らなかった。
だがたいした修正じゃないなw
0273nobodyさん2009/08/06(木) 22:56:27ID:???
秀丸だな
0274nobodyさん2009/08/06(木) 23:03:28ID:???
サクラ使ってる俺は少数派?
0275nobodyさん2009/08/06(木) 23:10:38ID:???
>>274
(゚∀゚)人(゚∀゚)ナカーマ
0276nobodyさん2009/08/06(木) 23:12:14ID:???
>231
PHP関係なくなって恐縮だが、graphvizを使うといい。
0277nobodyさん2009/08/07(金) 01:52:22ID:???
>>276
おおお…理想通りなソフトすぎて、感動してしまった…
これから色々調べて使ってみたいと思います。
本当にありがとうございます。
0278237です。2009/08/07(金) 03:45:30ID:ts6lfKVw
257様続きをどうぞ。
勉強になります。
遅くなりましてすいません。
0279nobodyさん2009/08/07(金) 03:55:38ID:xbsfYg7f
DWみたくF12押すと、FTPでUPしてブラウザ立ち上がってそのページ表示
を自動でしてくれるエディタねいですか?
0280nobodyさん2009/08/07(金) 04:56:19ID:???
>>278
おいおい
テストをレン鯖でやる気かい?
xamppでもいれて開発しなさい
0281nobodyさん2009/08/07(金) 05:06:52ID:???
rubyでソケットで通信する際に
TCPSocket.open("localhost", port)
のように書くのを、
phpではどのように書けばいいのでしょうか?
0282nobodyさん2009/08/07(金) 05:12:03ID:???
fsockopenあたりしらべてみ
0283237です。2009/08/07(金) 06:52:46ID:ts6lfKVw
257様そこまでは理解できています。
続きをお願いします。
0284237です。2009/08/07(金) 06:54:16ID:ts6lfKVw
続きをかいてください。
0285nobodyさん2009/08/07(金) 09:06:46ID:???
しね
0286nobodyさん2009/08/07(金) 09:11:33ID:???
お前は何なんだ...。
0287nobodyさん2009/08/07(金) 09:13:55ID:???
結局は、誰かに代わりに考えて欲しいだけなのか。
0288nobodyさん2009/08/07(金) 09:57:38ID:???
つーか宿題なんじゃねーの?
0289nobodyさん2009/08/07(金) 10:07:49ID:???
俺が小学生の頃はそんな宿題はなかったなー。
0290nobodyさん2009/08/07(金) 11:09:49ID:???
>>279
xyzzy + browserex + ftpupdate
0291nobodyさん2009/08/07(金) 11:58:45ID:???
>>283
あとは送られてきた物件番号だけを問い合わせればいいから
$sql = "SELECT * FROM bukken WHERE ";
$where ="物件番号='" . implode("' OR 物件番号='",$_POST['bukken']) . "'";

$sql .= $where;

$sql変数のクエリを発行すれば良い


わかったらもうくんな
0292nobodyさん2009/08/07(金) 12:13:05ID:???
>>291
これはひどい
0293237です。2009/08/07(金) 12:37:32ID:ts6lfKVw
$sql = "SELECT * FROM bukken WHERE ";
$where ="物件番号='" . implode("' OR 物件番号='",$_POST['bukken']) . "'";
最後の一文があんまりよくわかりません。
ここの部分を教えてください。
よろしくお願いします。
宿題ではないです。
勉強のためです。
しねとかやめてください。
0294237です。2009/08/07(金) 12:43:30ID:ts6lfKVw
http://oshiete1.watch.impress.co.jp/qa4659300.html
これと同じ考え方と考えてよろしいのでしょうか?
0295nobodyさん2009/08/07(金) 12:43:53ID:???
>>293
勉強なら implode() のマニュアル読んだ?
0296237です。2009/08/07(金) 12:54:05ID:ts6lfKVw
読みました
0297nobodyさん2009/08/07(金) 12:54:57ID:???
勉強なら自分で考えろよ
しね
0298nobodyさん2009/08/07(金) 13:09:37ID:???
読んだのなら分かるだろ
読んでないから分からない
0299nobodyさん2009/08/07(金) 13:09:46ID:???
だから実際にプログラムを書いて実行しろよ。
そうすれば一目瞭然だろうが。
どんだけ馬鹿なんだ。
0300nobodyさん2009/08/07(金) 13:16:18ID:???
>>296
実行できる環境は整えたのか?
コード自分で書いて試してみて、ちっとは試行錯誤した上で質問してくれないと。
0301237です。2009/08/07(金) 13:44:29ID:ts6lfKVw
if( isset($_POST['bukken'] and is_array($_POST['bukken']) {
$a = '`'bukken'` in ("' .implode('","' , array_map('mysql_real_escape_string', $_POST[''bukken'']) ). '")';
$sql = "select * from bukken where ID in ('$a')
でどうかな?
0302237です。2009/08/07(金) 13:45:54ID:ts6lfKVw
こんな感じで試してみたいと思います。
ありがとうございました。
0303nobodyさん2009/08/07(金) 13:46:03ID:???
implode() のマニュアルを読んだ上で何が分からなかったの?
0304nobodyさん2009/08/07(金) 13:55:39ID:???
1行目から突っ込みどころ満載なコードだな
0305nobodyさん2009/08/07(金) 13:56:38ID:ts6lfKVw
だめかな?
0306nobodyさん2009/08/07(金) 13:57:17ID:???
上の方で誰かがissetについて指摘してくれてたのにな。
0307nobodyさん2009/08/07(金) 13:59:42ID:???
と思ったら単に閉じてなかっただけか。
失礼。
0308nobodyさん2009/08/07(金) 14:06:05ID:???
書き直してやろうと思ったが2行目が解読不能でやめた
0309nobodyさん2009/08/07(金) 14:14:13ID:???
array_key_exists 使え。
0310nobodyさん2009/08/07(金) 14:14:52ID:???
expression and expressionなんて使い方出来たっけ?(expression=任意の式)
0311nobodyさん2009/08/07(金) 14:44:08ID:???
>>310
http://jp.php.net/manual/ja/language.operators.logical.php
0312nobodyさん2009/08/07(金) 15:05:32ID:???
&&と同じか、でも普通使わないだろう
0313nobodyさん2009/08/07(金) 15:25:00ID:???
え、なんで?
0314nobodyさん2009/08/07(金) 15:33:56ID:???
演算子の優先順位表を読んでも理解できないんだろ
0315nobodyさん2009/08/07(金) 16:46:01ID:???
pythonで
>>> import urllib2
>>> req = urllib2.Request(url='https://localhost/cgi-bin/test.cgi',
... data='This data is passed to stdin of the CGI')
>>> f = urllib2.urlopen(req)
>>> print f.read()
と書くのを、phpで書くとどうなりますか?
0316nobodyさん2009/08/07(金) 16:49:04ID:???
echo 'read the thread title.';
0317nobodyさん2009/08/07(金) 17:09:00ID:???
>>316
pythonスレで聞いてみます
0318nobodyさん2009/08/07(金) 17:19:03ID:???
そんなにID出したくないのか
0319nobodyさん2009/08/07(金) 18:08:28ID:/dIJ9UWZ
初歩的な質問をさせてくださいませ。

1ページ目:名前を入力
2ページ目:情報を入力
3ページ目:情報を入力
4ページ目:1,2,3の情報を出力

フォームとPOSTを使って上記のようなことをしたいです。

1ページ目で入力した数値を4ページ目で受け取りたいのですが、

<form action="2ページ目" method="post">

と記入しないと、submitを押した時に順番にページが表示されません。

そして、4ページ目で

print ( $_POST['name'] );

と入力しても、 actionで指定したページが2ページ目なので、文字を受け取れません。
この場合どうすればよいのでしょうか?

どうぞよろしくお願いします。
0320nobodyさん2009/08/07(金) 18:18:36ID:???
>>319
セッション又はhiddenで受け渡すのが一般的
0321nobodyさん2009/08/07(金) 18:47:36ID:/dIJ9UWZ
>>320さん

ありがとうございます。調べてみます。
0322nobodyさん2009/08/07(金) 23:42:08ID:???
俺はhidden渡しで、変数名なども全部そのまま渡す事が多いな。
入力値検証(バリデート)のロジックが丸ごと使いまわせるし、途中のページを削ったり確認ページとかを増やしたり、などの処理も楽になる。
0323nobodyさん2009/08/08(土) 01:07:58ID:???
失礼します。2つほど質問お願いします。
$_GETでURLから引数渡すときに
http://〜/index.php?a=1&b=2&c=abc
とかやるじゃないですか。その場合の?以降全てを一つの文字列として受け取りたい場合
どうすればよろしいのでしょうか?一つ一つ分けての受け取り方は$_GET['a']とかすればいいのは
わかるのですけれども。


また日本語をc=%E3%82%A2%E3%83%8B%E3%83%A1のようにエンコードも日本語に変換されることなく
エンコードされたまま文字列として受け取りたい場合どうすればよいでしょうか?
一つの引数で受け取った場合$_GET['c']=アニメ とかなってしまってデコードされちゃうようなのですが。

よろしくお願いします。
0324nobodyさん2009/08/08(土) 01:20:37ID:???
すいません自己解決しました
2つとも
$uri = $_SERVER['REQUEST_URI'];
$ary_uri = explode("?",$uri);
$arg = $ary_uri[1];
print $arg;

これで解決できるようですね。お騒がせいたしました
0325nobodyさん2009/08/08(土) 01:25:31ID:???
>>323
$_SERVER["QUERY_STRING"]
ってのもあるぞ。
0326nobodyさん2009/08/08(土) 01:30:45ID:???
http://phpspot.org/blog/archives/2006/04/phpajax_lace.html
このlaceというチャットを設置したいのですが、設定し、設置した後、
ブラウザでそのディレクトリを開くと、「自動転送がループしています」と
表示されます。

これはどうしたらいいのでしょうか?ちなみにfirefoxです。
0327nobodyさん2009/08/08(土) 01:30:48ID:???
そのまま出ry・・なんでもない
0328nobodyさん2009/08/08(土) 01:32:37ID:???
ぶほw一行ですんだwサンクスwww
0329nobodyさん2009/08/08(土) 01:40:52ID:???
>>323
解決してるだろうけどURLエンコードはurlencodeという関数があるよ
0330nobodyさん2009/08/08(土) 01:44:04ID:???
>>329 うす。一つ一つ受け取る場合それやろうかとおもってました。
重ねてサンクス
0331nobodyさん2009/08/09(日) 04:34:18ID:jT8fv9uV
カレンダーを出力する(header関数で)プログラムがあるとします。
カレンダーの中身はDBから引き出すとして、そのDBは情報がUTF-8で保存されていて
そのサイト自体もUTF-8だとします。
ここで、この出力するプログラムを外部サイトに埋め込んでその外部サイトに
出力するとしたら、外部サイトの文字コード(SJIS)に合わせて文字コードを変更する必要があるんでしょうか?
(header関数で制御する部分)
0332nobodyさん2009/08/09(日) 09:50:35ID:???
>>331
やってみたら?
0333nobodyさん2009/08/09(日) 10:51:17ID:jT8fv9uV
>>332
環境づくりをどうやったら良いのかわからないんです。マシン一台しかないし。。
PHP以前の話になってしまいますが、apacheのエンコード設定がUTF-8でも、
ページの文字コードってのは最終的に
<meta http-equiv="Content-Type" content="text/html; charset=shift_jis" />
で決定されるんでしょうか?
それなら同じサーバで1ページだけ、動かせば良いのかな
0334nobodyさん2009/08/09(日) 11:05:21ID:???
HTTPヘッダの Content-Type: */*; charset=* で指定されたエンコーディングが最も優先される

カレンダーを表示するためにはPHPのコードを実行させるのか?
それともiframeやscriptを使って結果だけ読み込ませるのか?
前者なら変換する必要がある
後者なら変換しなくていいがContent-Typeヘッダで明示し、更にscript要素を使う場合はcharset属性も指定する
0335nobodyさん2009/08/09(日) 11:50:49ID:???
header関数でカレンダーを出力って時点でよくわ
0336nobodyさん2009/08/09(日) 12:27:55ID:???
なんで能力無い人に限って「〜とします」とかさも抽象論みたいな言い回し使うんだろうね。
「私の環境は〜です」ってちゃんと言えよ。
0337nobodyさん2009/08/09(日) 12:28:38ID:Ho1U3iRt
>>333
文字化けで悩むのは時間の無駄だから文字コードは全てをUTF-8に統一な
文字コードの設定が必要なモノ
apache
PHP
DB
HTMLの出力
HTMLやPHPなどのファイル






0338nobodyさん2009/08/09(日) 12:49:55ID:???
>>334
詳しい説明ありがとうございました
色んなやり方を試してみたいと思います
>>337
ありがとうございました
0339nobodyさん2009/08/09(日) 18:48:31ID:j1FcAzsW
>>336
言えよ ってのはどうかと^^;;
0340nobodyさん2009/08/09(日) 18:50:04ID:???
あん?臭い口開けるな
0341nobodyさん2009/08/09(日) 19:01:49ID:j1FcAzsW
別に開けてませんけど^^;
0342nobodyさん2009/08/10(月) 03:54:04ID:GiR2mz2l
PHPでバッチスクリプトを書く場合、

#!/bin/env php
<?php

から始めるので合ってますか?
0343nobodyさん2009/08/10(月) 09:28:44ID:???
>>342
動かそうとしてるPHPがCGIモードだとHTTPヘッダがでるかも。
php -q としておけば?

あとenvは/usr/binにあるとは限らない。
0344nobodyさん2009/08/10(月) 09:29:55ID:???
ごめん、envは、/usr/bin/じゃなくて、/bin にあるとは限らない。
0345nobodyさん2009/08/10(月) 19:25:14ID:8T/ZNI95
http://up2.viploader.net/pic/src/viploader1125909.bmp
画像のように、色分けした枠ごとに送信先を変えたいのですが、上手い方法を教えてください。
「変更」と「詳細」は思惑通り行くのですが、チェックの項目を、下の「削除」と「メール作成」で扱おうとすると
上手くいきません。
上の表はSQLから取り出したデータをループで表示しています。
本当なら「詳細」はIDからリンクさせたいのですが、IDのデータをリンクで渡すやり方がわからなく、仕方ないので
無理やりやっています。
htmlスレの方で聞いた方が良いでしょうか。
0346nobodyさん2009/08/10(月) 19:31:18ID:???
>>345
ヒント、JavaScript使わないと無理そう
後はHTMLスレで。
0347nobodyさん2009/08/10(月) 21:16:16ID:???
赤→緑→黒の順番でformを書いてスタイルシートで整形する
0348nobodyさん2009/08/10(月) 21:47:57ID:???
>>345
>チェックの項目を、下の「削除」と「メール作成」で扱おうとすると
>上手くいきません。
もうちょっと具体的に
2列分ぐらいのHTMLをここに書いてみるべし
たぶんcheckboxの受け渡し方がおかしいとは思うが
<input type="checkbox" name="id[5854]">
みたいにして配列で渡すとよい


>本当なら「詳細」はIDからリンクさせたいのですが、IDのデータをリンクで渡すやり方がわからなく、仕方ないので
>無理やりやっています。
<a href="shousai.php?id=5854">5854</a>みたいにGETで渡せばよい
0349nobodyさん2009/08/10(月) 22:25:45ID:???
えっ
0350nobodyさん2009/08/10(月) 23:37:48ID:???
>>343
ありがとうございました。
0351nobodyさん2009/08/11(火) 04:26:11ID:OhLUXqwk
シバン中envでパスを指定したphpを、
cronで実行すると、env php部分でエラーになります。
envがphpを見つけられないようです。

phpをフルパスで指定した場合、
あるいはターミナルから実行した場合、
あるいはスクリプトがrubyだった場合は問題ないです。

cron×env×phpの時に問題になります。
これは何故でしょうか?
0352nobodyさん2009/08/11(火) 05:42:26ID:???
盗聴ってLan内の事だよね?

03533512009/08/11(火) 08:28:51ID:???
cron実行時の環境変数PATHが貧弱なせいでした
0354nobodyさん2009/08/11(火) 10:36:18ID:???
というか実行するサーバが決まっているならphpのフルパスを書いた方が良いよ
0355nobodyさん2009/08/11(火) 11:28:36ID:???
while($row=$stm->fetch()){
for($i=0;$i<23;$i++){
if($i==0){
echo "<td align=\"center\">";
echo "<input type=\"checkbox\" name=\"check[]\" value=\"".$row['id']."\"/></td>";
}else if($i==1){
echo "<form method=\"POST\" action=\"../new_student.php\">";
echo "<td><input type=\"submit\" value=\"変更\"/></td>";
echo "<input type=\"hidden\" value=\"".$row['id']."\" name=\"id\">";
echo "</form>";
}else if($i==2){
echo "<form method=\"POST\" action=\"../display/student_page.php\">";
echo "<td><input type=\"submit\" value=\"詳細\"/></td>";
echo "<input type=\"hidden\" value=\"".$row['id']."\" name=\"id\">";
echo "</form>";
}
else{
echo "<td> ".$row[$i-3]."</td>";
}
}
echo "</tr>";
}
この下に削除とメールボタンがあるのですが、チェックボタンの間に変更と詳細があるので
formをまたがせる事が出来ません・・・・
簡単に言うと、
<チェックボタンのform>
<変更のform></変更のform>
<詳細のform></詳細のform>
</チェックボタンのform>
のような事がしたいです。
0356nobodyさん2009/08/11(火) 11:36:45ID:???
>>355
もらったレスはシカトか
0357nobodyさん2009/08/11(火) 11:37:51ID:???
>>355
>>345の人?

formをネストさせないで、>>347さんの言うようにcssで整形するか
押すボタンによってaction先をjavascriptで変える

どっちにしてもphpの話題ではない。板違い。
0358nobodyさん2009/08/11(火) 12:01:47ID:+4lP6KeF
お願いします

--------------------------
<table border=1> <tr>
<td>1</td>
<td>aaaa</td>
<td nowrap>bbbb</td>
<td>cccc</td>
<td>dddd</td>
</tr> <tr>
<td>2</td>
<td>eeee</td>
<td nowrap>ffff</td>
<td>gggg</td>
<td>hhhh</td>
</tr>
</table>
----------------------------

このようなHTMLのtdで囲まれた文字列を配列で取得したく

preg_match_all("/(<tr>.*?<td>(.*)<\/td>.*<td>(.*)<\/td>.*<td>(.*)<\/td>.*<td>(.*)<\/td>.*?<\/tr>)/i",$html,$match);

こう記述しましたが、期待通りの結果になりません
どうすればよいでしょうか?
0359nobodyさん2009/08/11(火) 12:20:56ID:???
なんじゃそりゃ
PHPで実行する前に正規表現チェッカで試すことをお勧めする
0360nobodyさん2009/08/11(火) 12:25:37ID:???
>>358
改行を最初に除去

$html = preg_replace('/\r/,'',$html);
$html = preg_replace('/\n/,'',$html);

preg_match(ry
0361nobodyさん2009/08/11(火) 12:26:55ID:???
何でわざわざ二回も
0362nobodyさん2009/08/11(火) 12:29:52ID:???
対象のソースがどんな改行コードで作られてるかわからない
\nだけなら'/\r\n/'とするとヒットしない
0363nobodyさん2009/08/11(火) 12:53:45ID:???
(\n|\r)でいいじゃん
0364nobodyさん2009/08/11(火) 12:54:53ID:???
str_replaceでも
0365nobodyさん2009/08/11(火) 12:54:55ID:???
その書き方ならこれじゃだめなの?

$html = preg_replace('/\r|\n/','',$html);
0366>>3552009/08/11(火) 13:05:46ID:???
すいません。
レス下さった方、ありがとうございます。
失礼しました。
0367nobodyさん2009/08/11(火) 13:15:33ID:???
正規表現を理解できてないのに自慢げに書いてる男の人って…
0368nobodyさん2009/08/11(火) 13:18:09ID:???
擁護じゃないけど正規表現未だに難しいわ。
どっかトラの穴か相応のプロジェクトでこねくりまわさないと一生
正規表現がでてくるたびにつまづく気がする。
0369nobodyさん2009/08/11(火) 13:20:59ID:???
勉強しろよ
03703682009/08/11(火) 13:23:37ID:???
なんつーかSQLほど出てくる結果に感動が無いと申しますか
0371nobodyさん2009/08/11(火) 13:24:05ID:???
SQLのどんな結果が感動?
0372nobodyさん2009/08/11(火) 13:25:34ID:???
なんかアドバイスしたら>>367みたいに揚げ足取られるならしないほうがいいな
なんでそんなにひねくれてるの?
0373nobodyさん2009/08/11(火) 13:35:25ID:???
正規表現使ってないのにpreg_replace使う意味が分からない
指摘されて「こいつはひねくれてる」で終わるようなら回答しなくていいよ
03743682009/08/11(火) 13:45:12ID:???
結局なんか正規表現使う場合って場当たり的な書き方になってしまってるのがなんかやだなぁ
SQLだとおもった結果を何回かのクエリやらプロセス通さず一発のクエリで導きだしたりが
醍醐味かなぁ。。まぁおれが正規表現こねたことないからだろうけど。
0375nobodyさん2009/08/11(火) 13:50:30ID:???
正規表現も、文字列の集合からおもった結果を一発でとってくるわけで
ようは正規表現に苦手意識みたいなものがあるだけじゃないか?
複雑なSQL組み立てた時に感動するなら
同じように、パッと見暗号にしか見えない正規表現作れた時も感動できるかもよ。
03763682009/08/11(火) 14:01:32ID:???
たぶん変な苦手意識は少なからずあるな。見ただけでなんぞこれ〜ってなっちゃう。

読むのがつらいからかなぁ?対象となる文字列から人間の目での抜き出しはこんなに
簡単にできるのに、機械にあわせようとするからこんなややこしい暗号になってしうのか・・・つーかんじか
0377nobodyさん2009/08/11(火) 14:07:48ID:???
正規表現はコメント振ってても、後で見たら意味不明になってたりするしな・・・
0378nobodyさん2009/08/11(火) 14:08:28ID:???
>>376
SQLのどんな結果が感動なの?ねえ???
03793682009/08/11(火) 14:15:43ID:???
>>378
ん?自分で計算するのも面倒な行の合計だけでも感動しない?
SQLこねて作った場合でも感動するよ。
心の中で「あ、でたw」「数値変えたらちゃんと結果も変わったwおkおk」てなかんじで。

正規表現使ってる時の心の声は「あーなんでこれ抜き出せないんだよ」「たったこことここだけなのに!」
とかいう心の声が多いですわ。
0380nobodyさん2009/08/11(火) 14:25:28ID:???
>ん?自分で計算するのも面倒な行の合計だけでも感動しない?
PHPの存在意義は・・・?
0381nobodyさん2009/08/11(火) 14:32:15ID:???
結果的に期待どおりの動きになってたらいいと思うんだが
やたら人のスクリプトや考えを否定的なやつってうざいよな
正直ひねくれてると思われても仕方が無いと思うわ
03823682009/08/11(火) 14:47:16ID:???
まぁスレチだったわけですいません。なかなか正規表現に慣れないもので
なにか良い見方・覚え方・学び方があるのならとはおもってずるずると。

380 まぁ今の話のなかではないね。3重以上のループ組むならやはりSQLで外部参照とか組んじゃうけど。
381 まぁ色々やり方あってもいいわな。美しいか美しくないかも上記ループのようにあるかもしれんけど。
0383nobodyさん2009/08/11(火) 15:16:23ID:???
結合はDBの基本では

「SQLは行の合計ができるから感動する」っていうから
この人エクセルとかプログラム知らないのかなと思っただけ。

結局難しそうなものから逃げてるだけでは?
0384nobodyさん2009/08/11(火) 15:22:16ID:???
ここはPHPスレです
0385nobodyさん2009/08/11(火) 17:44:20ID:???
何事も勉強する意欲には「おー」とか思う感動が必要なんじゃないかなとおもって。
場当たり的に定石も美しさもわからずなんとか対処してる俺は正規表現をまともに習得できるきがしない。
0386nobodyさん2009/08/11(火) 17:50:48ID:???
>>385
>正規表現をまともに習得できるきがしない。
それがダメなんだってば
0387nobodyさん2009/08/11(火) 18:04:17ID:???
「出来ない」と思えば何もかも出来なくなる
「出来る」と思えば出来る
0388nobodyさん2009/08/11(火) 18:17:02ID:???
まだやってんのか。
0389nobodyさん2009/08/11(火) 19:05:36ID:???
>>388
暇なんだもん
0390nobodyさん2009/08/11(火) 19:43:28ID:???
正規表現なんて要は希望通りマッチすりゃいいんだから、適当に書くぐらいで丁度良い。
あれこれメタキャラクタ使って短縮したり技巧を凝らすのは好きな人がやればいい
03913682009/08/11(火) 20:17:40ID:???
その適当感がたまらなく嫌なんだ。。
0392nobodyさん2009/08/11(火) 20:58:13ID:???
適当人生のくせに
0393nobodyさん2009/08/11(火) 21:57:04ID:???
だから書くコードだけでもとw
0394nobodyさん2009/08/11(火) 22:42:38ID:???
正規表現になると玄人面したやつが素人の書いたやつに文句つけるから荒れるんだよ
変だと思ったらこう書けばよいとさらりと書き直してあげれば終わるんだから
いちいちつっかかる必要はない
書き直したコードみて最初に書いたやつもほーこう書くのかーと勉強になるし
まぁここ正規表現スレじゃないけどもう少し大人になろうぜ
0395nobodyさん2009/08/11(火) 23:10:09ID:???
正規表現は、ややっこしいパターンを書かざるを得ない羽目に陥って嫌々書いてるうちに自然と覚える。
分かってしまえば簡単。
複雑な技巧は、個人的には避けるべきだと思う。可読性とメンテナンス性が落ちる事が多い。
0396nobodyさん2009/08/11(火) 23:46:23ID:???
>>394
何でこう書かないの?的なツッコミが必ず入るのは勉強にはなるけど、
荒れやすい要素ではあるよなあ。

あとはお決まりの「メールアドレスを正規表現で(ry」も一言で済むのに
何故か突っかかられる印象がある。
0397nobodyさん2009/08/12(水) 01:19:04ID:PY+df2PJ
教えてください
あるページでセッション変数として文字列を保存し、
異なるページで保存したセッション変数の中身を表示させようとしています。
まったく同じファイルなのですが、
IEだとうまく表示できるのに、
Firefoxだと何も表示されない(空文字)になってしまいます。

IEではうまく動作するのにFirefoxだと駄目なんてことはあるのでしょうか。
Firefoxはバージョン3.5.2で、
サイトから送られてきてたCookieを保存する、サードパーティのCookieも保存するに
チェックがついていて、例外サイトには何も設定していません。
保存する期間はサイトが指定した期限までとなっています。

なぜなんだろう?
0398nobodyさん2009/08/12(水) 01:33:08ID:???
IEでうまくいって他がうまくいかない大半はタグの間違い
IEはヘンテコリンなタグでも適当に解釈してしまうので、IEが間違っている
0399nobodyさん2009/08/12(水) 01:45:20ID:PY+df2PJ
ありがとうございます
うーん。タグとかでなく、セッションに保存した内容が取得できないんですよね
if ($var == ""){}でtrueになるので、タグ以前の問題ではないかと思っています
0400nobodyさん2009/08/12(水) 01:47:37ID:???
再現するコードうp
0401nobodyさん2009/08/12(水) 02:14:30ID:PY+df2PJ
了解しますた

呼び出す側
<?
 $pic = "file.wmv";
 session_start();
 $_SESSION["pic"] = $pic;
?>
<html>
<head>
</head>
<body>
 <object id="MediaPlayer" width="640" height="525" classid="CLSID:22D6F312-B0F6-11D0-94AB-0080C74C7E95" codebase="http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=6,4,5,715"
standby="Loading MicrosoftR WindowsR Media Player components..." type="application/x-oleobject">
  <param name="FileName" value="movie.html" />
  <param name="AutoStart" value="true" />
  <param name="ShowControls" value="true" />
  <embed name="プレーヤー名" type="application/x-mplayer2" pluginspage="http://www.microsoft.com/Windows/MediaPlayer/" src="movie.html" width="640" height="525" autostart="1" showcontrols="1"></embed>
 </object>
</body>
</html>
0402nobodyさん2009/08/12(水) 02:15:12ID:???
呼び出される側
<?
 session_start();
 $pic = $_SESSION["pic"];
 if ($pic == "")
 {
  exit;
 }
 if (file_exists($pic)) {
  header('Content-Type: video/x-ms-wmv');
  header('Content-Length: ' . filesize($pic));
  ob_clean();
  flush();
  readfile($pic);
 }
?>
0403nobodyさん2009/08/12(水) 02:24:30ID:???
つvar_dump($pic)
0404nobodyさん2009/08/12(水) 02:46:47ID:???
PHPさんからSet-Cookieついた
Firefoxさんたらガツガツ食べた
仕方がないのでWMPさん手ぶらで聞いた
さっきのCookieご用事なぁに

IEさんとWMPさんは仲良しなのでCookieを回し読みします
0405削ジェンヌ2009/08/12(水) 02:57:34ID:???
つまらん >>404
死んだ方が良いよ。
0406nobodyさん2009/08/12(水) 03:23:49ID:???
この場合読み込みを行うのはIEでもFirefoxなくWMPだな
IEにCookie食べさせるとWMPでも使われるがFirefoxが食べたCookieはFirefox以外で使われない
セッションの管理方法をcookieじゃなくてURLにセッションIDを付加させる方法にしたらいいと思う
0407nobodyさん2009/08/12(水) 03:31:16ID:???
セッションIDの受渡し
http://jp2.php.net/manual/ja/session.idpassing.php
読めば分かると思う
0408nobodyさん2009/08/12(水) 04:42:13ID:???
PHPファイルの中でオブジェクト開けばいいんじゃ
0409nobodyさん2009/08/12(水) 10:02:26ID:???
日本語でおk
04103972009/08/12(水) 15:18:43ID:???
試してみました。
sessionIDをGETで渡して、
session_startの前にsession_id(string id)でsession_idを渡すことで
ひとまず動作しました。

確かに、考えれば最後はWMPがhtmlを参照するので
Firefoxで設定したsessionが読めるわけないですね。
でも、Firefoxの過去のバージョンではなぜかうまく動作していたんですよ・・
うーんなぜなんだろう・・
0411nobodyさん2009/08/12(水) 16:10:37ID:L+TnL+Ze
セッション引き回しも質問です。
[OS]FreeBSD 6.1-RELEASE-p10(CPIのシェアードプラン X30)
[php]4.4.7
[DB等]mysql使用(phpでは--with-pgsql7も組み込み)
[症状]セッションが引き回されない

require "env.php";
session_start();

// 1回目
if ($DEBUG) { print_r($_SESSION); }

$userId = $_POST['userId'];
$passwd = $_POST['password'];
$sessId = $_SESSION['userId'];
$sessPw = $_SESSION['passwd'];

// 2回目
if ($DEBUG) { print_r($_SESSION); }
0412nobodyさん2009/08/12(水) 16:13:50ID:L+TnL+Ze
(>>411の続き)
// MySQLへ接続
$conn_id = mysql_connect($MySQL['HOST'], $MySQL['USER'], $MySQL['PASSWORD']) or exit('MySQLへ接続できません。');
// 使用するデータベース選択
mysql_select_db($MYSQL['DATABASE'], $conn_id);
mysql_query("SET NAMES ujis");

// ユーザー認証
if (($sessId == null || $sessPw == null) && ($userId == null || $passwd == null)) {
echo "<div align=\"center\">";
echo "<p><font color=\"red\">ログイン情報に誤りがあります。<br>再度ログインを行ってください。</font></p>";
echo "<a href=\"index.php\">ログイン画面へ戻る</a>";
echo "</div>";
exit;
}

上記コードで、print_r()を2度呼び出して確認したところ、
1つめ…Array ( [userId] => ******** [passwd] => ******** )
2つめ…Array ( [userId] => [passwd] => )
となり、$_SESSION 配列の各要素の値が消えてしまいます。そのためか、if文が常に真となり、
セッションが引き回せません。この他のスクリプト間では何ら問題なく引き回せているので、
上記のソース部分に鍵がありそうなのですが、phpは慣れていないため原因がわからずにいます。
どなたかおわかりになる方がいらしたら是非教えてください。よろしくお願いします。
0413nobodyさん2009/08/12(水) 16:23:46ID:???
どこで$_SESSION['userId']と$_SESSION['passwd'];をセットしてるの?
0414nobodyさん2009/08/12(水) 17:41:12ID:L+TnL+Ze
>>413
ありがとうございます。続きのソースです。ログイン時に書き込みしています。
if ($sessId != null) {
$userId = $sessId;
}
if ($sessPw != null) {
$passwd = $sessPw;
}
$userResult = mysql_query("SELECT * FROM USER_MASTER WHERE USERID = '$userId' AND PASSWD = '$passwd'", $conn_id);
$userInfo = mysql_fetch_object($userResult);
if ($userInfo->USERID != $userId || $userInfo->PASSWD != $passwd) {
echo "<div align=\"center\">";
echo "<p><font color=\"red\">入力したユーザー情報に誤りがあります。<br>再度ログインを行ってください。</font></p>";
echo "<a href=\"index.php\">ログイン画面へ戻る</a>";
echo "</div>";
exit;
} else {
// セッションへログイン情報セット
$_SESSION['userId'] = $userId;
$_SESSION['passwd'] = $passwd;
//このあとhtml表示(省略)
}
0415nobodyさん2009/08/12(水) 18:40:17ID:???
>>414
$sessId $sessPw の2つに値は入ってるのかな?
0416nobodyさん2009/08/12(水) 18:40:31ID:???
function debug(){
$echo = '$_SESSION<br /><pre>'.print_r($_SESSION,true).'</pre><br />';
$echo .= '$_POST<br /><pre>'.print_r($_POST,true).'</pre><br />';
return $echo;
}
こんな関数書いてif文の前とかでecho debug();してみたら分かると思う
あとファイルの先頭にerror_reporting(E_ALL);書いて潜在的なバグをつぶす
0417nobodyさん2009/08/12(水) 23:35:55ID:kCVCP35f
PHP5.3.0で

$a1=x;
$a2=y;
echo $a1;
echo $a2;

と同じ動作をするコードを

$a1=x;
$a2=y;
for ($i=1;$i =2;++$i)
{
echo $a$i;
}

のように書いたらecho $a$i;の部分でエラーが出ました。
正しく動かすにはどのように書けばいいのでしょうか?
0418nobodyさん2009/08/12(水) 23:36:40ID:???
文字列連結
0419nobodyさん2009/08/12(水) 23:41:24ID:???
>>417
echo ${'a'.$i};
0420nobodyさん2009/08/12(水) 23:48:46ID:???
それなら配列でまとめたらいいと思うんだが
分かりやすいし応用できる
$a = array(
  [0] => x,
  [1] => y,
);
foreach($a as $value){
  echo $value;
}
0421nobodyさん2009/08/12(水) 23:49:37ID:kCVCP35f
>>418
$a1="x";
$a2="y";
for ($i=1;$i<=2;++$i)
{
$a = "a".$i;
echo $$a;
}
でうまくいきました。
ありがとうございます
0422nobodyさん2009/08/12(水) 23:51:13ID:???
>>415-416
ありがとうございます。
いろいろ試してみたのですが、走らせていたサーバのphpでregister_globals=onとなっていました。
そのせいか分からないのですが、>>411,412,414のコードのうち、411の

$sessId = $_SESSION['userId'];
$sessPw = $_SESSION['passwd'];

をコメントアウトしたところ、症状が解消しました。コメントあうとする前は、上記代入の前後で呼び出した
print_r($_SESSION) で、1回目では値があったのに2回目では消えていました。

つまり、上記のコード2行があると、その直前では値があったのに$sessIdも$sessPwもnullであり、
上記の2行がないと、$sessIdも$sessPwに $_SESSION['userId'] と $_SESSION['passwd']の値が
それぞれセットされているということになります。逆なら分かるのですが、症状はなくなったもののなんか
気持ち悪いです。
0423nobodyさん2009/08/12(水) 23:51:26ID:???
echo $a . $i;

でいいだろ・・・
0424nobodyさん2009/08/12(水) 23:57:16ID:???
>>422
register_globalsはたぶん後方互換のためにonにしているのだろうが
好きなように変数の中をいじれるのでセキュリティに問題がある
直ちにoffにしたほうがいい
0425nobodyさん2009/08/13(木) 02:18:30ID:CXYe9XKR
Windows上のVMwareでCentOS5を動かして開発しています。

現在、PHP OpenID Libraryを利用して
OpenIDのログイン処理のテストをしているのですが、
yahoo、mixi、ライブドア、はてな、いずれも
「現在ログインできません」のようなメッセージが出てログインできません。

curlやopensslが必要というのを見かけたので、確認しましたが、
いずれも有効になっていました。

レンタルサーバーなどにアップした場合はうまくいくのですが、
ローカル環境だとうまくいきません。

なにが原因なのでしょうか?
0426nobodyさん2009/08/13(木) 02:29:54ID:???
多分コードが悪い
0427nobodyさん2009/08/13(木) 09:24:07ID:h6lN5QEU
【OS名】RHEL
【PHPのバージョン】php5.26
【連携ソフトウェア】PostgreSQL 8.4.0
【質問内容】 Cronで回して相手サーバーにバックアップデータを投げたいのですが、レンタルなのでモジュールとかの追加は出来ません。
PHPでそういう事は可能でしょか?
もし可能ならPHPでそういった事をやる際はどういった関数を使えば可能ですか?
0428nobodyさん2009/08/13(木) 09:44:19ID:???
telnetなりsshなり使え
04294272009/08/13(木) 09:48:51ID:h6lN5QEU
>>428
回答ありがとうございます。
telnetとsshのポート空いてないサーバーなのでそういった事が難しいため
PHPなどで出来ないかと思っておりました。
説明が不足しており大変申し訳ありませんでした。
0430nobodyさん2009/08/13(木) 10:02:45ID:???
>>429
ftpならあいてるでしょ。
http://www.php.net/manual/ja/ref.ftp.php
0431nobodyさん2009/08/13(木) 10:10:51ID:???
データ量が少ないなら JSON なりでいいかもしれないけれど
04324252009/08/13(木) 10:20:31ID:???
>>426
ライブラリの使い方が間違ってるということでしょうか?
ほとんどコピペなので、コード以前の、
環境の問題のような気がしているのですが・・・
04334272009/08/13(木) 11:03:42ID:h6lN5QEU
>>430
すいません。
HTTPサーバーのみ稼働しててFTPが使えないです。
情報を小出しにしているわけではないですが他にも必要な情報あれば言ってください。
0434nobodyさん2009/08/13(木) 11:28:50ID:???
JSONって元気?
0435nobodyさん2009/08/13(木) 12:21:35ID:???
>>432
環境をコードに合わせるんじゃなくてコードを環境に合わせるべし
04364322009/08/13(木) 12:48:26ID:CXYe9XKR
>>435
できればそうしたいのですが、環境のどこがまずいのか分からなくて・・・
そもそも「現在ログインできません」とは、どういう状況なのでしょうか?
0437nobodyさん2009/08/13(木) 14:29:54ID:???
ライブラリのコードを追うしかない
0438nobodyさん2009/08/13(木) 14:56:28ID:???
OpenIDなんてはじめてしったわ
2年も前からやってるのか・・・
ぜんぜんついていけてない
0439nobodyさん2009/08/13(木) 15:56:21ID:???
>>433
相手サーバーでcron使って file_get_contents で ファイルもってくれば?

0440nobodyさん2009/08/13(木) 16:54:53ID:lMlALn5L
Windows環境でphpizeする方法が詳しく書かれているサイトってありますか?
04414332009/08/13(木) 17:04:41ID:h6lN5QEU
>>439
その手がありましたね。
すっかり忘れてました。
ですが諸事情あってあくまで初回のアクションはバックアップ元にしたいので
バックアップ元のCronでバックアップ先のPHPを叩くようにすれば出来そうです。
ありがとうです。
0442nobodyさん2009/08/14(金) 08:03:40ID:S/PVqIxN
PHPの質問とは直接関係ないのですがどこで聞けばいいのかわからないのでどなたかわかる方お願いします

a.php
header("Content-Type: application/zip");
echo "zipのバイナリコード";

ダウンロードダイアログでa.phpとなってしまうのですが(zipにリネームしたら開けるのですが)
a.zipでダウンロードさせるにはどうしたらよいのでしょう?
headerで何か明示的にダウンロード時のファイル名を指定できると読んでいるのですが
やり方がわかりません(読み違いでできなかったらすみません)
0443nobodyさん2009/08/14(金) 08:07:05ID:???
公式マニュアルのheader関数のページにサンプルが載ってるよ
http://php.net/header
04444422009/08/14(金) 08:13:30ID:S/PVqIxN
>>443
盲点でした
ズバリな答えが書いていますね
助かりました
どうもありがとうございました
0445nobodyさん2009/08/14(金) 22:42:22ID:vkQArbxO
mb_splitについて質問させてください
症状はFreeBSD7.1+PHP5.2.10のレンタルサーバで実行結果が以下のようになってしまいます

$arrWork = mb_split (",", "2004年5月13日,1234566,aabbcccddd");
foreach ($arrWork as $data)
  echo "$data\n";

実行結果
  2004年5月13日,1234566
  aabbcccddd

手元のWindowsXP+PHP 5.2.8では、以下の実行結果となり、当方はこちらの結果を想定してプログラミングをしています
実行結果
  2004年5月13日
  1234566
  aabbcccddd

おそらく文字コード関連だと思うのですが・・
なお、.phpファイルの文字コードは全てUTF-8で統一して有ります
0446nobodyさん2009/08/14(金) 22:43:30ID:???
mbstringの文字コードも設定しなきゃ
0447nobodyさん2009/08/14(金) 22:52:22ID:???
正規表現
0448nobodyさん2009/08/14(金) 23:23:54ID:vkQArbxO
ありがとうございます
とりあえず以下を試して見ましたが結果は変わりませんでした
ini_set(default_charset,"UTF-8");
ini_set(mbstring.internal_encoding,"UTF-8");
他にも設定があるのかな・・
phpinfo()で確認したところ、サーバはEUC-JPでした
0449nobodyさん2009/08/14(金) 23:36:35ID:Tors7Awt
S-JISでスクリプトのファイル保存してるだろ
0450nobodyさん2009/08/14(金) 23:38:55ID:???
explode()使ってみても同じ?
0451nobodyさん2009/08/14(金) 23:44:56ID:???
言葉足らずだったかな。
S-JISでスクリプトのファイル保存してるだろ
いま自分とこでテストしたら
UTF-8で保存したら正しくて、S-JISで保存したら上記間違いと同じ結果になったよ。
なんか日の漢字コードとコロンのコードとの絡みでおかしくなってるのだとおもうよ。
結論:UTF-8で保存しなおせ
04524482009/08/15(土) 01:30:41ID:DUbarFt/
色々ありがとうございます
>>450
explode()、またはsplit()ならうまく行きました
ただマルチバイトに対応してるわけじゃない(と思う)ので気持ち悪いですね
"日,"だけの定型なら良いんですが、上の文字列と同時に日本語文字列も扱ってるので、ううむ・・

>>451
念のためサーバ上で確認しましたが、やはり全てUTF-8でした
しかしSJISで保存すると似た症状になるんですね、ややこしいなあ
04534512009/08/15(土) 01:57:21ID:???
こっちでそのソースコピってUTF8で保存、動かしたら
普通に動くのだけれどもね。
0454nobodyさん2009/08/15(土) 02:12:45ID:???
PHPで次のファイルを消すにはどうすればよいですか?
※.Netで言うところのFile.Delete(ファイルパス)みたいな関数はありますか?

./HOGE/TEST.JPG

0455nobodyさん2009/08/15(土) 02:26:45ID:???
unlink()とか?
0456nobodyさん2009/08/15(土) 03:15:12ID:???
unlink(/home/);
0457nobodyさん2009/08/15(土) 03:39:09ID:???
>>456
10年間撮り貯めた子供の写真が全部消えました・・・
0458nobodyさん2009/08/15(土) 05:32:44ID:YpOdOwqF
>>452
PHPコード上で
echo mb_regex_encoding();
とかで本当にUTF-8になってるか調べたり
mb_internal_encoding("UTF-8");
とかしてみたりしても同じ?
04594482009/08/15(土) 08:21:22ID:DUbarFt/
こちらのサイトの以下の記述より、
mb_regex_encoding("UTF-8")とすることで解決しました

http://f32.aaa.livedoor.jp/~azusa/?t=php&p=mbstring#a_mb_split
>エンコーディングは、内部文字エンコーディングまたはmb_regex_encoding()関数で指定した文字エンコーディングが使用されます。

ありがとうございました
0460nobodyさん2009/08/15(土) 09:39:49ID:???
まず先にぐぐろうよ。
0461nobodyさん2009/08/15(土) 13:01:22ID:oRoHSHUF
<?= $hogehoge ?>
こういう変数の出力方法はなんと呼ばれていますか?
上記書式で出力できるサーバとできないサーバがあって、原因や違いを調べています。

出来た方のサーバ
【OS名】Centos5
【PHPのバージョン】php バージョン不明 (今遠隔地にあって電源も切ってるので、弄れません)
出来なかった方のサーバ
【OS名】 WindowsXP +XAMPP
【PHPのバージョン】php5.3.0

PHP 出力・表示などでぐぐったのですが見つかりませんでした。
よろしくお願いします
0462nobodyさん2009/08/15(土) 13:01:52ID:???
マニュアルに書いてあるよ
0463nobodyさん2009/08/15(土) 14:41:29ID:???
>>461
short_open_tag
0464nobodyさん2009/08/15(土) 15:09:04ID:oRoHSHUF
>>463
php.iniの設定を書き換えて出力できるようになりました
どうもありがとうございます。
0465nobodyさん2009/08/15(土) 22:07:59ID:???
>>455
>>456
ありがとうございます。


>>457
乙w
0466nobodyさん2009/08/15(土) 22:17:38ID:???
直接phpに関係があるかは分らないですが、
次の様2つのディレクトリ(パス)が存在しているとして

@のパス直下にあるファイルには外部からアクセスする事が出来るけれども、
Aの場合には一切アクセスをさせなくするにはどうすればよいでしょうか?


http://test.com/path_1/   ・・・@
 ・AA.txt
 ・BB.txt
http://test.com/path_1/AA.txt ←アクセス可能(内容を確認する事が出来る。)


http://test.com/path_2/   ・・・A
 ・CC.txt
 ・DD.txt
http://test.com/path_2/CC.txt ←アクセス不可(外部からURLの直打ちがあった場合にはforbiddenのページを表示したい。)


0467nobodyさん2009/08/15(土) 22:23:18ID:???
どちらかというとApacheで何とかしろよという気がするな
0468nobodyさん2009/08/15(土) 22:26:36ID:???
>>467
ヒントをお願いします。
Apacheでも結構です。
0469nobodyさん2009/08/15(土) 22:31:33ID:???
Apacheのディレクティブのマニュアル読め
0470nobodyさん2009/08/15(土) 22:31:47ID:YpOdOwqF
>>468
.htaccessでググレ
0471nobodyさん2009/08/15(土) 22:45:26ID:???
forbiddenを知ってんのになに言ってんだ...。
0472nobodyさん2009/08/16(日) 04:39:45ID:K6eLO5dl
>>468
鯖を運用してるの?
0473nobodyさん2009/08/16(日) 08:42:22ID:Lr9z6CdZ
GET,POST,COOKIEそれぞれに異なるセッションIDが格納されていた場合
どの順で有効になりますか?
0474nobodyさん2009/08/16(日) 10:57:24ID:???
GETとPOSTは一緒に出来ねーだろ
0475nobodyさん2009/08/16(日) 11:04:37ID:???
postするurlに?hoge=fuga付けたらできるでしょ?
0476nobodyさん2009/08/16(日) 11:28:29ID:???
>>473
PHPは COOKIE → GET の順で探して
セッションキーが存在しなければセッション開始せずに
POSTは自前で指定しないとダメなんじゃないか?

0477nobodyさん2009/08/16(日) 12:06:34ID:???
配列変数について質問です。

【OS名】FreeBSD6.x
【PHPのバージョン】php5.26
【連携ソフトウェア】postgres

変数 $a に下のような値がセットされていて、

$a[0][id] = 5
$a[0][name] = 山田
$a[1][id] = 7
$a[1][name] = 鈴木
$a[2][id] = 14
$a[2][name] = 山下

これを $a[id] = 名前 のように変換する関数はありますでしょうか?

$a[5] = 山田
$a[7] = 鈴木
$a[14] = 山下

よろしくお願いします。
0478nobodyさん2009/08/16(日) 12:35:45ID:???
単純に
foreach ($a as $b) {
$c[$b['id']] = $b['name'];
}
でいいんじゃね。
DBのAPIによっては1番目のカラムをキー、2番目のカラムを値として
取得するメソッドがあることもあるよ。
1行ずつfetchする時に組み替えてもいいし。
04794772009/08/16(日) 13:01:35ID:???
>>478
出来ました!ありがとうございます!
0480nobodyさん2009/08/16(日) 13:07:00ID:???
>>479
あと今後からはスレタイと>>1も読んでな
0481nobodyさん2009/08/16(日) 14:15:58ID:???
必死だな
0482nobodyさん2009/08/16(日) 14:44:09ID:???
何が?
0483nobodyさん2009/08/16(日) 17:22:14ID:???
夏です
0484nobodyさん2009/08/17(月) 10:52:23ID:XUMXmNvO
起動すると指定ファイルを送信するものをcronで定期的に回したいと考えてますが
ファイルのアップロードするものを替えれば出来るのではないかと考えてます。
受け側はpostで来たものをmove_uploaded_fileで受け取ればいいと思ってますが、
送信元にform methodを書くとsubmitしなければいけないのでcronで実行するだけではダメな状態です。
formではなく何か関数でファイルを送るようなものがPHPにあれば助言もらえないでしょうか。
0485nobodyさん2009/08/17(月) 10:59:15ID:???
HTTPリクエストでもFTPでもscpでもできるので何で送りたいかが問題かと
0486nobodyさん2009/08/17(月) 11:00:23ID:???
>>484
日本語でおk
0487nobodyさん2009/08/17(月) 11:03:45ID:???
>>484
もうちょっと詳しく。それぞれのOSは?
送信元サーバからphpで、送信先サーバへファイルをpostするって事?

phpではなくrsyncで事足りるような気がする。
04884842009/08/17(月) 11:28:26ID:XUMXmNvO
説明不足で申し訳ない。

それぞれのサーバはCentOSです。
やりたい事は>>487さんの言ってることなんですが、レンタル鯖なのでrsyncを入れたりってことが出来ないです。
実際に送るファイルはzipファイルになります。
04894872009/08/17(月) 11:51:52ID:???
>>488
それなら、ftpでいいんじゃないか?
phpだとftp_connect・ftp_login・ftp_put 等で検索するとサンプルがたくさんでてくると思う
0490nobodyさん2009/08/17(月) 12:07:23ID:???
上の方でも書いたけど、もらいに行くだけじゃだめか?
fwrite(fopen("file.zip", "wb"), file_get_contents("http://www.example.com/file.zip"));
04914882009/08/17(月) 12:21:28ID:XUMXmNvO
>>489
FTPなくてブラウザからアップするタイプのサーバなのでFTPダメっぽいです。

>>490
よくわからないけど火壁の問題でもらいに行くのはアウトみたい。
あくまでリクエストに対してレスポンスを返すってのがデフォルトみたい。

じゃあサーバ替えろよっていわれそうですが、FTPなくても問題ないしそれ以外では満足してるので
この点だけ出来ればOKだと思ってます。
ftp_connectみたいなのでhttpとかhttpsがあればいいのかな。
0492nobodyさん2009/08/17(月) 12:35:08ID:???
もうメールで添付しちゃえよw
0493nobodyさん2009/08/17(月) 12:47:05ID:???
HTTP_Client::post()かな
04944882009/08/17(月) 13:00:17ID:XUMXmNvO
>>492
メールでもいいんですけど、両方とも鯖ってこととメールがないので難しいですね。

>>493
Pearが入ってたかどうか確認しないといけないですが、外部モジュールを使用せずに
PHPの機能でやるってのは難しそうですね。

submitなしで送るのは困難と考えていいのでしょうか。
0495nobodyさん2009/08/17(月) 13:03:18ID:???
rsyncじゃだめなのか?
04964882009/08/17(月) 13:12:34ID:XUMXmNvO
>>495
自分の鯖じゃないのでモジュールの追加とかが厳しいですね。
なのでPHPとかでやりとりできれば比較的そういった事を気にしなくてもいいかと思ってました。
0497nobodyさん2009/08/17(月) 13:33:11ID:???
>>494
できるよ。PEARだってPHPのネイティヴ関数使ってるわけだし
04984882009/08/17(月) 13:39:31ID:XUMXmNvO
PearのHTTP_Client::post()は
PHPの何らかの関数を(もしくは複数)を使用して実現しているという事ですね。
どの関数かは調べないといけないですが。
0499nobodyさん2009/08/17(月) 13:47:43ID:???
HTTP_Requestでいいんじゃ?
0500nobodyさん2009/08/17(月) 20:32:54ID:???
あああ
0501nobodyさん2009/08/17(月) 21:12:59ID:N8y+jQ14
<input type="file" name="upfile[]">
<input type="file" name="upfile[]">
みたいに同じnameのinputが複数ある場合
HTTP_REQUESTで、両方のupfile[]に
addPostDataしてやるにはどのように記述すればいいのでしょうか?
よろしくお願いします
0502nobodyさん2009/08/17(月) 21:14:28ID:jMCEI25H
        | ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|
        |     /⌒\   .. .|
        |     (:::::::::::::::)     .|
        |===×二×===|  日本国旗を友愛しました
        |     (:::::::::::::::)     .|
        |     \.__./   .. .|
        |_________|
                            ノ´⌒`ヽ         _
             /|\ | ヽ      γ⌒´      \     / !    /!ヽ
             | l  ヽ |  ヽ     // ""´ ⌒\  )  /  |   ,' /  !
             | ヘ   !   ヽ   i /  \  /  i )  ,'   !_/ /  j
             ',  ヽ |    l    i   (・ )` ´( ・) i,/  !    ', /   /
             ',  ヽ!≡   l    l    (__人_).  |   !  ≡ !     /
              ヽ    ≡  !    \   `ー'   /   l  ≡ !   ,.'
               \   ≡ |   ,.-         ̄メ、_',  = / /
                \ ≡ !  /てノしイ_人人ノ、    ヽ  /
                  \― |/ヽ ,イ- 、ヽ /   イ´ ̄ ̄ヽ_/
                   \ ヽ/  l  ヽi / ̄`!
【党首討論】 麻生首相 「民主党の党旗、日の丸切り刻み作成…」→鳩山氏「神聖マーク、きちんと作らねば」→民主HPから写真削除★12
http://tsushima.2ch.net/test/read.cgi/newsplus/1250507570/l50
0503nobodyさん2009/08/18(火) 00:29:07ID:???
ついに他党の党旗暮らしか突っ込むところ無くなったのかw
0504nobodyさん2009/08/18(火) 00:35:36ID:???
国家の旗だろ
0505nobodyさん2009/08/18(火) 00:42:54ID:???
function flag()
0506nobodyさん2009/08/18(火) 02:57:07ID:???
>>501
upfile1、upfile2みたいにするしかない
0507nobodyさん2009/08/18(火) 11:54:02ID:vguzrODx
PHP5.3をインストールしたのですが、急に「Deprecated」エラーが表示されるようになりました。
error_reporting(E_ALL & ~E_DEPRECATED);と記述すれば表示されないと聞き、記述してみましたが表示されてしまいます。

error_reporting(E_ALL & ~E_DEPRECATED);
var_dump(error_reporting());
出力:int(22527)

error_reporting(2);
var_dump(error_reporting());
のように、Warningだけ表示させるようにしてもDeprecatedエラーが表示されてしまいます。
どのように対処すれば良いのでしょうか。
0508nobodyさん2009/08/18(火) 12:02:45ID:???
なるはずだよ。
その上でエラー出てるんじゃない?
0509nobodyさん2009/08/18(火) 12:24:48ID:vguzrODx
ちなみに出る部分はPEAR::DBとPEAR::PEARです。
これの=&を全て=にしたら解決しそうなんですが、それで何か支障とか出ないですかね。
0510nobodyさん2009/08/18(火) 12:53:55ID:???
出ないと思うよ
0511nobodyさん2009/08/18(火) 14:32:41ID:???
>>509
そのエラーは構文解析時に出る
PEARをrequire/includeする前にerror_reporting()を実行しているかい
0512nobodyさん2009/08/18(火) 20:51:21ID:4p9NHHkL?2BP(931)
配列についての質問です。

$s[data] = array();
とし、フォームに入力された値から、
$s[data][name]に名前を、
$s[data][age]に年齢を、
$s[data][sex]に性別を代入して、
“少なくとも1つ以上のフォームに入力された場合の処理”を記述するためのif文で、
if( !empty( $s[data] ) ) {
   ・・・
}
と条件指定したのですが、入力の有無に関わらず実行されてしまいました。
原因を調べたところ、入力の有無に関わらず、
$s[data]の中には$s[data][name]と$s[data][age]と$s[data][sex]という
要素があると認識されてしまっていたためのようなのですが、
どうにかして、うまく条件指定する方法はないでしょうか?
0513nobodyさん2009/08/18(火) 22:04:09ID:???
if ( isset($_POST['name'])===true ){
  $data = array(
    'name' => $_POST['name'],
    'age' => $_POST['age']
  );
}
こんな感じで入力があったときだけ変数を作って

if( isset($data)===true ){
  処理
}
変数がセットされてたら処理するようにしたらいいよemptyはissetより動作が遅いし
05145122009/08/18(火) 22:31:12ID:????2BP(931)
>>513
レスありがとうございます。

1度の処理ですべてのフォームの値チェックをして、
漏れなどの記入ミスがあった場合はその旨を表示しつつ、
再度入力フォームを表示する(その際、問題なかった欄については初期値として表示させる)。
という動作をさせたいのですが、それだと、
名前欄に入力があったのみにしかチェックを行なえなくなりますよね。

配列の“要素が配列”である場合、その、“要素である配列”に、
要素が入っているかどうか調べることはできないんでしょうか?
0515nobodyさん2009/08/18(火) 22:41:53ID:???
>>514
<form action="" method="post">
<input type="text" value="" name="name" />
<input type="text" value="" name="age" />
</form>
たとえばこんなフォームがあっとして
これをnameだけ"test"と書き込んで送信したらPHPで受け取るデータは

$_POST['name'] = "test" //文字列
$_POST['age'] = ""    //空の文字列

になる。ただしcheckbox等はチェックしてなかったら送信されない
05165122009/08/18(火) 22:47:03ID:????2BP(931)
>>515
レスありがとうございます。はい、それは理解できています。
今僕がやりたいのは、

if( 1つ以上の項目に入力されている ) {
 全項目の値を、入力漏れや記入ミスなどそれぞれチェック
}

というものなんですが、そうなると、たとえば>>512の変数を用いて、

if( isset($s[data][name]) || isset($s[data][age]) || isset($s[data][sex]) ) {
  それぞれのチェック処理
}

のように、全変数に値があるか否かを判断して、
1つでも値があったら・・・って言う方法しかないんでしょうか?

実際のフォームは>>512のように3個の項目しかないわけではなく、
10個とかたくさんあるので、見栄え的に汚くなってしまうため、
どうにかきれいに表現できないかな、と思ったのです。
0517nobodyさん2009/08/18(火) 22:49:28ID:???
>>516
count($array)で配列の数を数えられるけどだめかな
0518nobodyさん2009/08/18(火) 22:51:23ID:7JFUjPwR
>>516
なんでそんな複雑な配列にするのか?ってことが言いたいんじゃないの?

>>515が理解できてりゃ悩まないと思う
0519nobodyさん2009/08/18(火) 22:58:50ID:???
見栄えねぇ。そういうのはある程度知り尽くした分野で自分で追求しなよ
0520nobodyさん2009/08/18(火) 22:59:46ID:???
スレタイ読んでくれたらうれしいね
05215122009/08/18(火) 23:01:02ID:????2BP(931)
>>517
レスありがとうございます。
$s[data]の中には $s[data][name],$s[data][age],$s[data][sex]
という3つの要素があるとみなされてしまうようで、
count($s[data])とやると、常に3という値が返ってきてしまうのです。

>>518
レスありがとうございます。
1つのスクリプトで、
 ・データ入力
 ・入力された値をチェック
 ・すべて正しく入力できていればMySQLへ書き込み
という処理をすべてしたいため、セッション変数を用いて場合わけしています。
そのためどうしても、1つ以上の項目に入力されている場合は〜、
という条件指定が必要なのです(僕の知識の範囲内ではですが)。
05225122009/08/18(火) 23:04:55ID:????2BP(931)
>>519
それもそうですね。
>>516のような方法で条件指定することにします。

>>520
すみません、常にageで、とは思いませんでした。
0523nobodyさん2009/08/18(火) 23:06:59ID:???
ちっさなclass書けばいいじゃん。見栄えも今風だしw
0524ひろゆき2009/08/18(火) 23:07:55ID:???
0525nobodyさん2009/08/18(火) 23:10:35ID:???
1行では無理かもね
0526nobodyさん2009/08/18(火) 23:20:48ID:???
ifの中だけでチェックするならこんな感じかな
もはやネタの領域だが

if(
  $res = (function(){
    global $s['data'];
    $c = 0;
    foreach($s['data'] as $value){
      if(is_string($value)){
        if(strlen($value)>0){
          $c++;
        }
      }
    }
    return $c;
  }
){
  処理
}
0527nobodyさん2009/08/18(火) 23:25:45ID:???
$profile_check_array = array(
"name" => "名前",
"age" => "年齢",
"sex" => "性別"
);

//配列のキー取得
$check_array_kyes = array_keys( $_POST );

//定義した配列分まわしてチェックする
for( $i = 0; $i < count($check_array_kyes); $i++ )
{
$cach = array_key_exists( $check_array_kyes[$i], $_POST ) );
if( $cach == false or $_POST[$check_array_kyes[$i]] == "" )
{
"はいってないー";
}
}

あとの調理はどうぞ。
05285122009/08/19(水) 00:09:42ID:????2BP(931)
>>526-527
うおっ、ありがとうございます。
そこまでいくと、>>516のようにしたほうが見栄えもいいんじゃないか、
って言う話にもなってきそうですが、
僕の知識的にはなかったものなので、勉強させていただきます。
わざわざありがとうございました!
0529nobodyさん2009/08/19(水) 00:31:22ID:???
本当にくだらない質問ですいません。

自分のサイトにメールフォームを設置していて
動作テストはFirefox3.0以降、IE6・7、OPERA、Google Chorome,Safari
で確認済みです。
ですが、月に1回くらいの頻度で文字化けしたようなメールが来ます。

こんな感じです。
[御社名] AlRJUkXCXfAKfsG
[ご担当者名] XaXcsANiTi
[メールアドレス] ZuACulytkH
[ご住所] lMfvCbGQJ
[お電話番号] BsffuuhnL

アドレスはいつも@マーク以下がsv602.lolipop.jpです。
ちなみに私が使っているサーバはロリポップです。

せっかく問い合わせが来てるのに逃してるのか
単なるエラーかはっきりさせたいのでぜひお願いします。
0530nobodyさん2009/08/19(水) 00:43:16ID:???
自動のコメントスパムぐらいにしかみえんな
心配ならphpスレに書き込んでいるのだからphpのメールフォーム先のスクリプト読んで
挙動確認すればいいとおもう。
0531nobodyさん2009/08/19(水) 00:52:26ID:???
>>529
スパム以外なら文字コードの問題かなISO-2022-JPっぽい
0532nobodyさん2009/08/19(水) 03:55:55ID:???
スパムだろ。
0533nobodyさん2009/08/19(水) 13:05:24ID:???
>>529
あれ?IDが???になってますね
気のせいですか?
0534nobodyさん2009/08/19(水) 13:13:50ID:Ph4gYam8
Calendar-0.5.4.tarを解凍すると、意味不明なファイルになってしまいます。
本来ならディレクトリ階層のファイルになるはずです。
package.xml^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@
^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@100664 ^@ 764 ^@ 764 ^@ 40416 11120534466 6416 ^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^
@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@
0535nobodyさん2009/08/19(水) 13:20:17ID:rHPCm5Kh
すいません、質問いいですか?
【OS名】 linux
【PHPのバージョン】php5.1.6
【WEBサーバ】 Apache
【質問内容】
function send_to_smart($data1, $data2 ,$mode){
//パターン1
if($mode+0 == 0){
$request = "GET /aaaaa/?data1=".$data1."&data2=".$data2."HTTP/1.0\r\n\r\n";
send_request($request);
//パターン2
}elseif($mode+0 == 1){
$request = "GET /bbbbb/?data1=".$data1."&data2=".$data2."HTTP/1.0\r\n\r\n";
send_request($request);
}
$fp = fsockopen("*****.jp",80);
fputs($fp, $request);
while (!feof($fp)) {
$line .= fgets ($fp,128)."\n";
}
fclose ($fp);
}
上記の感じでソケット送信のプログラムを作ってます。
・パターン1と2で別々にデータを送信してる
・2回とも情報送ってるはずなのに、受け取り側ではパターン1しか受け取れてない。
・パターン2はデータが入っていないのではなく、リクエスト自体が来ていない。
・2回ともレスポンスは取れている。ソケットオープンも問題なし。

パターン2で送れない理由がさっぱりわかりません。
これで、なんか原因や解決策判ったりしますか?
0536nobodyさん2009/08/19(水) 13:23:41ID:???
マルチですか
0537nobodyさん2009/08/19(水) 13:38:37ID:rHPCm5Kh
他のスレに同じ質問はタブーだったのか。
知らなかった、気をつけます。
0538nobodyさん2009/08/19(水) 13:56:22ID:rHPCm5Kh
記述間違ってました。
マルチはもうしないんで教えてください。
結構困ってるので
【OS名】 linux
【PHPのバージョン】php5.1.6
【WEBサーバ】 Apache
【質問内容】
function send_to_smart($data1, $data2 ,$mode){
//パターン1
if($mode+0 == 0){
$request = "GET /aaaaa/?data1=".$data1."&data2=".$data2."HTTP/1.0\r\n\r\n";
//パターン2
}elseif($mode+0 == 1){
$request = "GET /bbbbb/?data1=".$data1."&data2=".$data2."HTTP/1.0\r\n\r\n";
}
$fp = fsockopen("*****.jp",80);
fputs($fp, $request);
while (!feof($fp)) {
$line .= fgets ($fp,128)."\n";
}
fclose ($fp);
}
上記の感じでソケット送信のプログラムを作ってます。
・パターン1と2で別々にデータを送信してる
・2回とも情報送ってるはずなのに、受け取り側ではパターン1しか受け取れてない。
・パターン2はデータが入っていないのではなく、リクエスト自体が来ていない。
・2回ともレスポンスは取れている。ソケットオープンも問題なし。

パターン2で送れない理由がさっぱりわかりません。
これで、なんか原因や解決策判ったりしますか?
0539nobodyさん2009/08/19(水) 13:57:11ID:???
0540nobodyさん2009/08/19(水) 14:08:21ID:???
ファイルがないとかでレスポンスヘッダしか帰ってこないとかじゃね

自分はこんな感じで関数作ってるけど
function httreq($url){
  if(is_string($url===true)){
    $headers = array(
      'Host: '.parse_url($url,PHP_URL_HOST),
      'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.9.1.1) Gecko/20090715 Firefox/3.5.1',
      'Accept-Language: ja,en-us;q=0.7,en;q=0.3',
      'Accept-Charset: Shift_JIS,utf-8;q=0.7,*;q=0.7'
    );
    $options = array(
      'http' => array(
        'method' => 'GET',
        'header' => implode("\r\n",$headers),
      )
    );
    return file_get_contents($url, false, stream_context_create($options));
  }else{
    return false;
  }
}
0541nobodyさん2009/08/19(水) 14:10:06ID:???
if(is_string($url===true)){ は if(is_string($url)===true){ だったすまそ
0542nobodyさん2009/08/19(水) 14:10:44ID:???
if(is_string($url===true))
なにこれ
0543nobodyさん2009/08/19(水) 14:11:37ID:???
ちなみにis_stringはboolで返ってくるのに===する意味あんの?
0544nobodyさん2009/08/19(水) 14:17:44ID:???
無いよ、厳密な比較が好きなだけ
0545nobodyさん2009/08/19(水) 14:22:01ID:???
そうだね、将来的に返り値がintになるかもしれないしね
05465382009/08/19(水) 14:24:18ID:rHPCm5Kh
うーん、やはり詳細なデータを入れないとだめなんですかね?

あ、一つ書き忘れてました。
これ携帯用です。
0547nobodyさん2009/08/19(水) 14:31:46ID:???
面土居からテストすらしないんだけど
一応聞くがこの関数のmode値変えて2回呼び出してるんだよな?
0548nobodyさん2009/08/19(水) 14:44:34ID:???
>>538
よくわかんないけど$mode+0ってなに?
05495382009/08/19(水) 14:46:00ID:rHPCm5Kh
はい、そうです。
send_to_smart($data1, $data2 ,0);

send_to_smart($data1, $data2 ,1);
で呼び出してますね
0550nobodyさん2009/08/19(水) 14:47:42ID:???
>>548 数値化確定させてんだろう
05515382009/08/19(水) 14:51:05ID:rHPCm5Kh
>>548
$mode+0で変数の型を数値に強制変換してます。
まぁ、今回$modeには元々数値しか入ってないんですが、クセですな。

ちなみにテキストに強制変換する場合は$mode.''です。
$mode内が1でもこの場合テキストと判断されます。
0552nobodyさん2009/08/19(水) 14:57:33ID:???
>>551
世の中にはキャストという便利なものがあってだな
0553nobodyさん2009/08/19(水) 15:00:31ID:???
>>551
関数内で強制変換とかバグ入り込みやすいコーディングしてんじゃねえぞksg
関数に渡す前に数値化しろよ
05545382009/08/19(水) 15:14:25ID:rHPCm5Kh
関数内での強制変換はよろしくないのか・・。
了解、そのやり方は使わないようにします。

というか
レスポンスが返ってくる=データが送られている
っていう認識だったんだけど違いましたっけ?
0555nobodyさん2009/08/19(水) 15:38:53ID:???
レスポンスヘッダは捨てられてレスポンスボディだけを受け取る

304(更新無し)とかだと下のような感じでレスポンスヘッダのみ帰ってくる
HTTP/1.x 304 Not Modified
Date: Wed, 19 Aug 2009 06:36:52 GMT
Server: Apache
0556nobodyさん2009/08/19(水) 15:46:17ID:gdnF9G1d
CentOSでyumでPHP5.2.6を入れたのですが、
extension_dir = "/usr/lib64/php/modules"
となっていたので中を覗いてみると
dbase.so json.so mysql.so mysqli.so pdo.so pdo_mysql.so pdo_sqlite.so phpcups.so zip.so
しかありませんでした。
ほかのモジュールはどこにあるのでしょうか・・・それともこれしかないのでしょうか。
0557nobodyさん2009/08/19(水) 15:47:26ID:???
yumだからじゃね?
0558nobodyさん2009/08/19(水) 16:12:17ID:???
>>556
yum search php
で探してみるとか。

というか何が必要なんだ?
0559nobodyさん2009/08/19(水) 16:16:42ID:???
>>556
てめえなめてんのか!
5.2.6なんて古いだろ!バージョンアップしろよ!
PHPナメ杉ksgkg!
0560nobodyさん2009/08/19(水) 16:21:06ID:gdnF9G1d
ありがとうございます。
Windowsでのdllではphp_fileinfo.dllに値するものです。
0561nobodyさん2009/08/19(水) 16:24:34ID:???
yumでインストールすると伸びませんよ
自分でソースコードから入れましょう
0562nobodyさん2009/08/19(水) 16:25:29ID:???
yumベースで他のも管理してるなら、別にyumを避ける理由ないだろw
0563nobodyさん2009/08/19(水) 16:33:08ID:???
yum信者きめえ
0564nobodyさん2009/08/19(水) 16:34:47ID:???
面倒なのでぜんぶWebmin任せ。
0565nobodyさん2009/08/19(水) 17:49:25ID:???
みんなすごいな、俺見習中だけどもPHPすらわからん。
ジャヴァスクリプトだのAjaxだの絡んでますますわからん。
向いてないのが良くわかった。
0566nobodyさん2009/08/19(水) 17:58:00ID:???
>>560
yum install php-pecl-fileinfo
でどう?

あなたの環境でもあるかどうかわからんけど。
0567nobodyさん2009/08/19(水) 18:01:39ID:gdnF9G1d
ありがとうございます。
その方法でfileinfoをインストールできました。
モジュールの中にしっかりfileinfo.soを確認しました。

ですが、
Call to undefined function finfo_open
のエラーが出てきてしまいます。
httpd -k restartで再起動もかけましたが症状は変わらずです。

php.iniでは、ディレクトリの中身丸々モジュールを読み込んでいるようでした。
この場合はどういった原因が考えられるのでしょうか、宜しくお願いします。
0568nobodyさん2009/08/19(水) 18:09:24ID:???
>>567
>php.iniでは、ディレクトリの中身丸々モジュールを読み込んでいるようでした。
そんな指定できたっけ?
どの箇所?

普通に、php.iniに
extension=fileinfo.so
が要るんじゃないかな。
0569nobodyさん2009/08/19(水) 18:15:53ID:gdnF9G1d
>>568
extension_dir=ディレクトリ名
で、その中のモジュールは全て読み込んでくれませんでしたっけ?

ちなみに
extension=fileinfo.so
でも
extension=/usr/lib64/php/modules/fileinfo.so
でも読み込んでくれませんでした・・・。
0570nobodyさん2009/08/19(水) 18:28:18ID:???
>>569
>extension_dir=ディレクトリ名
は、ベースディレクトリの指定だと思うよ。

>extension=/usr/lib64/php/modules/fileinfo.so
こう書かなくて済むように。


で、読み込まれなかったというのは、apache再起動しても
Call to undefined function finfo_open
になったということかな?


/usr/lib64/php/modules/fileinfo.so
が実際に存在しているのは確認ずみ?


あ、ちなみに実際にcentosで試して回答しているわけではないから何か外しているかも。
0571nobodyさん2009/08/19(水) 18:31:34ID:gdnF9G1d
はい、確認しました。

extension_dir = "/usr/lib64/php/modules"

extension=fileinfo.so

pwd -> /usr/lib64/php/modules
にて「fileinfo.so」を確認

httpd -k restartにてApacheの再起動
0572nobodyさん2009/08/19(水) 18:36:20ID:gdnF9G1d
Apacheのerror_logを確認したところ
Unable to initialize module\nModule compiled with module
とあったので検索してみると
どうやらコンパイルでインストールしたphpとyumでインストールしたphpが共存しているのが問題みたいでした。

ですので、一度PHP関係を削除してインストールしなおそうと思います。
ありがとうございました。
0573nobodyさん2009/08/19(水) 20:10:10ID:I0IT/dw1
会社で公開してるシステムで再現性なしのエラーが見つかった

ただ単純にpublic/user/のファイルからpublic/admin/のインデックスに移動
admin側でuserのとこで発行したセッションをキーにDBからデータを引っ張ってきて
どうたらこうたらしてるだけのはずなんだけど

ある利用ユーザが入れないらしい
ただ、そのユーザのID借りても入れたし、
ブラウザやいろんなテストID使っても
一回だけしか再現できなかった

こんな再現性がない不具合が見つかった場合、
どんなふうに原因を探すものなのでしょうか?
0574nobodyさん2009/08/19(水) 20:11:42ID:???
エラー起きたときに変数全部テキストかDBに保存するようにしたらいいんじゃね
0575nobodyさん2009/08/19(水) 20:14:25ID:???
ログイン周りといえばクッキーだろうか
0576nobodyさん2009/08/19(水) 20:26:06ID:I0IT/dw1
エラーがでたら は ありですね
具体的になにがエラーになってるのかは不明なんですけど、やってみようかと思います

ちなみにクッキーは怪しいと思ったけど、セッションIDしかなかった
0577nobodyさん2009/08/19(水) 20:45:43ID:ECQ6gete
phpでFlateDecodeって扱える?
0578nobodyさん2009/08/19(水) 22:24:32ID:ECQ6gete
zlibの
・gzdeflate ? 文字列を deflate 圧縮する
・gzinflate ? deflate圧縮された文字列を解凍する
これがFlateDecodeなのかな?
0579nobodyさん2009/08/19(水) 22:28:08ID:???
exec("zip");
0580nobodyさん2009/08/20(木) 15:11:25ID:???
ファイルにログを書き込んでいるのですが、更新順に読み込むには
どうすれば良いでしょうか?
ログファイルをスタックのように扱いたいです。
ファイルポインタを先頭に置くと一行目が上書きされていますので、しょうがなく
終端に置いて書き込んでいるのですが、そうすると逆から読み込まなければいけなくなっていしまいます。

ログの表紙形式としては、
2009/08/20 更新
2009/08/19 更新
2009/08/18 更新

のように降順に表示したいです。
ログがどのぐらいの量になるかわからないので、いったん配列に読み込んで、それから
逆順に出力するのも変な気がします・・・。
0581nobodyさん2009/08/20(木) 15:19:51ID:???
つスレタイ
0582nobodyさん2009/08/20(木) 15:24:32ID:???
下らなくない質問は余所でやれ。
0583nobodyさん2009/08/20(木) 15:35:44ID:???
>>580
データ全部読み込んでから、先頭に書いて元からあったデータを追加とか。
DB使ったほうがいいんじゃね。

あと>>1呼んでID出せ
0584nobodyさん2009/08/20(木) 15:40:22ID:???
>>580
ログを書き換えるということと追記は意味が違うよ
ログがどのくらいの量っていったってメモリを食いつぶすような量にはならないでしょ
もしも問題になるほどの量ならそもそも管理方法に問題がある
05855802009/08/20(木) 15:44:42ID:2mPTkGjX
レスありがとうございます。
ID出すの忘れてました。

>>583
DBをいじるのはあまり慣れていないので・・・・。
>>584
配列に読み込んでも大丈夫でしょうか・・・・。

ファイルポインタを終端に置き、そこから逆に先頭まで一行ずつ読み込むのは
無理でしょうか?
0586nobodyさん2009/08/20(木) 15:46:20ID:???
そしたら文章逆になるやん
0587nobodyさん2009/08/20(木) 15:48:05ID:???
>>580
$logfile = "example.txt";
$write = "追加したい文字";
$lines = file($logfile,FILE_IGNORE_NEW_LINES);
foreach($lines as $value){
  $add .="\n".$value;
}
if(($fp = fopen($logfile,'a'))!==false){
  fwrite($fp,$write);
  fclose($fp);
}else{
  return ("書き込みに失敗");
}

こんなかんじで
0588nobodyさん2009/08/20(木) 15:49:51ID:???
>>585
file_get_contentsつかってStringに読み込めばいい
それで先頭に新しいログ\nつけたしたものを
ファイルを書き換え(一旦中身消して)すればいい
0589nobodyさん2009/08/20(木) 15:49:56ID:???
$add .="\n".$value; は $write .="\n".$value; だスマソ
0590nobodyさん2009/08/20(木) 15:51:40ID:???
使い回せるようにfile使ったけど単に追記するならfile_get_contentsのほうがよかったかな
0591nobodyさん2009/08/20(木) 15:56:48ID:???
>>580
ファイルにどれくらいの行数を保存しようとしているんだ?
万単位になるならデータベースを使うのがいいと思う

格納するデータが少ないのであれば
態々降順にファイルを書かなくても最後に追記
ファイルを配列に格納>降順ソート>foreachで十分じゃないのか?

下手な小細工するよりこっちの方が早いと思う
05925802009/08/20(木) 16:38:09ID:2mPTkGjX
皆さんレスありがとうございます。

>>588に書かれているやり方で、読み込みは先頭からするのが一番簡単ですかね・・・。

>>591
あまり決まっていないので、更新した内容があれば延々と書き続けると思います。
ただ、古いログは消しても支障ないので、あまりにも増えてしまったら消してしまう予定です。
05935802009/08/20(木) 17:16:35ID:2mPTkGjX
無事成功しました。
ありがとうございました。
0594nobodyさん2009/08/20(木) 18:01:55ID:WKWR+oFl
Apacheが起動しません。

error_logを見ると
PHP Warning: PHP Startup: It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function.
In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Asia/Tokyo' for 'JST/9.0/no DST' instead in Unknown on line 0

PHP Fatal error: PHP Startup: Timezone database is corrupt - this should *never* happen! in Unknown on line 0

と書かれています。

[root@localhost]# httpd -k start
[root@localhost]#

起動時にはエラーは出ませんが、実際は起動されていません。
上記のエラーが書き出されます。

PHPの問題なのかApacheの問題なのかOSの問題なのかすらわかりません。
似たようなエラーでは、php.iniのdefault.timezone=ASIA/Tokyoで解決してありますが、
こちらはそれでも解決しないです。
0595nobodyさん2009/08/20(木) 18:06:48ID:???
php.iniが読みに行けてないとみた。
0596nobodyさん2009/08/20(木) 18:14:50ID:WKWR+oFl
# PHP.ini Dir
PHPIniDir "/etc"

のように、php.iniの場所を指定してあげましたが、
やはりエラーが出てしまいます。

0597nobodyさん2009/08/20(木) 23:48:48ID:???
Apacheを再起動してないとみた。
0598nobodyさん2009/08/20(木) 23:49:35ID:???
default.timezoneがそもそもおかしいとみた。
0599nobodyさん2009/08/20(木) 23:54:57ID:???
HDDがいかれてると見た
0600nobodyさん2009/08/21(金) 00:10:47ID:e3oLJKKb
【OS名】centOS
【PHPのバージョン】php5.2
【質問内容】
mbstring.http_inputにSJIS
mbstring.internal_encodingにEUC-JP
のような設定です。
AjaxのページからのリクエストはUTF-8になってしまうので、
$_REQUESTに入るパラメータの自動文字コード変換をしたくないのですが、
方法ありますでしょうか?
mb_convert_encoding($_REQUEST["TEST"],"SJIS","EUC-JP");
で戻そうかと思ったのですが、
たまに文字の一部が消えてしまいます。
0601nobodyさん2009/08/21(金) 01:02:02ID:???
PHPはUTF-8が標準、json_encodeとかいくつかの関数はUTF-8でしか受け付けない
0602nobodyさん2009/08/21(金) 01:08:30ID:???
PHPの自動変換って無効にするのが基本かと思ってた
0603nobodyさん2009/08/21(金) 06:39:37ID:1d2neVQK
HTTP_Requestで、POSTフォームのあるページにアクセスするときに、
valueしてあるところは弄らなくていいかなぁと思って(radioボタンとか)、
必要なフォームだけaddPostDataでポストしといたのですが、
結果は、スルーしたポストフォームは全て空になってしまいました。
クライアント側のブラウザに依存して判断しているからだと思うのですが、
これがもしもvalueで選択済みのフォームが大量にあった場合、
HTTP_RequestするときはaddPostDataも
その数だけ指定しなければならないのでしょうか?
value済みフォームは有効になるような都合の良いHTTP_Request関数などないでしょうか。
よろしくおねがいします。
0604nobodyさん2009/08/21(金) 08:44:12ID:???
value済みフォームって何?
0605nobodyさん2009/08/21(金) 12:11:07ID:PCqrhdqr
$hairetsu = array("test" => "pong","ok" => "ng");

test.logに"array("test" => "pong","ok" => "ng");をそのまま文字列として書き出したいのですが、やはりいちいちクォートして書き込むしかないのでしょうか?
0606nobodyさん2009/08/21(金) 12:15:06ID:???
シングルクォーテーションがあるじゃない
0607nobodyさん2009/08/21(金) 12:17:30ID:???
変数に格納された記述をそのまま出力する関数があるから探してみ
0608nobodyさん2009/08/21(金) 12:24:19ID:PCqrhdqr
>>606-607
var_export($hairetsu,TRUE);
でいけました。
ありがとうございましたm(__)m
0609nobodyさん2009/08/21(金) 12:26:12ID:???
>>605
str_replace("\n","",print_r($array,true));
0610nobodyさん2009/08/21(金) 14:22:44ID:WhelcFIU
質問します。幼稚園の年間イベントをまとめるアプリを作ります。
遠足などのイベントのページに、参加した子供たちを組分けして出力します。
(イベント名の見出しの下に、A組の参加生徒出力、B組の参加生徒出力、C組の… という形)
利用するテーブルは
○table1 イベント情報テーブル
 id, eventName, eventDay
○table2 参加した生徒テーブル
 id, evId, studentName, kumi
です。

この状況で、table1.id=table2.evIdという条件でJOINし、SELECTのクエリ(以下)を実行して参加生徒を抽出するんですが、
 SELECT table1.*, table2.evId, table2.studentName, table2.kumi
 FROM table1 LEFT JOIN table2
 ON table1.id=table2.evId
 WHERE table1.eventName = '○○山の遠足';
どうやって組ごとにまとめて出力したら良いのか迷っています。(クエリの結果は当然、全ての組を含んでいます。)
自分の考えでは、
1)クエリ結果に対してforeach
2)それぞれのtable2.kumi値を取得して
3)重複を省きながら$kumiAry配列にpush
4)出来上がった$kumiAryの値をキーにしてリスト出力
という流れです。
しかし、もっとマシな効率的なやり方ないでしょうか?
クエリを書き換える必要があれば、それも教えていただけると嬉しいです。
よろしくお願いします。
06116102009/08/21(金) 14:23:55ID:WhelcFIU
すみません、書き忘れました
環境は php5.2.6 Mysql5 です
0612nobodyさん2009/08/21(金) 14:38:38ID:???
クエリ結果に対してforeachかけなくても、クエリ結果から1件ずつ取得する時に
while ($row = fetchする関数()) {
$students[$row['kumi']][] = $row;
}
と連想配列に入れればいいのでは。

あるいは、幼稚園規模なら組ごとにクエリ発行してもいいと思うけど
0613nobodyさん2009/08/21(金) 16:19:58ID:???
私だったら
ORDER BY table2.kumi,table2.studentName
って並べ替えしておいて前の処理とkumiの値が変わってたらスタックを出力&クリアで
次の組に備えるとかやるかなぁ($oldkumiとか)

つか少し気づいたとこは普通、生徒管理テーブル作ってstudentNameとkumiはそっちのテーブルだな。
0614nobodyさん2009/08/21(金) 16:25:52ID:???
そうだね。正規化してから始めた方がいいかも。
06156132009/08/21(金) 16:28:52ID:???
まぁ質問のために簡略化して書いてるのかもしれませんが。
0616nobodyさん2009/08/21(金) 16:30:18ID:o/Rwitrf
PHP5.3にFileinfoインスコしようとおもたらすでにパッケージに組み込まれてた
質問しようと思ったけど完全に独り言になってしまったぬるぽ
0617nobodyさん2009/08/21(金) 16:42:31ID:???
>>613
なんか古臭い手法ですね
0618nobodyさん2009/08/21(金) 17:01:52ID:???
では>>617が最先端の手法を
↓↓↓↓↓↓
06196132009/08/21(金) 17:12:10ID:???
だって古いひとだものww
↓↓↓↓↓↓
では>>617が最先端の手法を
↓↓↓↓↓↓
0620nobodyさん2009/08/21(金) 17:12:40ID:???
糞スレ
0621nobodyさん2009/08/21(金) 17:16:34ID:???
最近まともな流れだったのに
>>617お前しんでいいよ
自分の答えを言った上でケチつけろ
ケチつけるだけなら100年ROMってろ
0622nobodyさん2009/08/21(金) 17:28:17ID:???
お前もそうじゃん
0623nobodyさん2009/08/21(金) 17:37:45ID:???
>>622
どこが「そう」なのかkwsk
日本語理解できない人?
0624nobodyさん2009/08/21(金) 17:47:48ID:???
>>623
>>621
0625nobodyさん2009/08/21(金) 17:51:20ID:???
お前らまたやってんのか...。

とりあえず>>617は最先端の手法を頼む
↓↓↓↓↓↓
0626nobodyさん2009/08/21(金) 17:55:42ID:???
.>>624
ハア?
>>613の回答にケチつけた覚えはねえよ
>>617なんてそもそも回答になってねえし

>>617まだですか?早く最先端教えてくださいよ
0627nobodyさん2009/08/21(金) 17:59:05ID:???

   ======糞スレ終了======
0628nobodyさん2009/08/21(金) 18:02:50ID:???
答えられないから終了にしたいんですねw
なら最初から黙っとけよ
06296102009/08/21(金) 18:13:11ID:WhelcFIU
>>612-614
どうもありがとうございました
>>612
なるほどー、組をキーにした連想配列に入れて、そこから出力するわけですね
たしかにそっちのほうが楽かもしれない
>>613
すみません、スタックというのが理解できません。調べたんですがいまいちわからずで…
kumiの値を出力ごとにチェックして、例外(前のと違う)ときに次の組として処理し直すわけですね?
ちょっとやった事がない処理です。どうやったら良いのか考えてみます。。

もう一つ質問してもいいですか?
実はそれぞれのお返事をもらう前に、上で書いた自分なりの方法で「3)重複を省きながら$kumiAry配列にpush」を
とりあえずやっていたんですが、思ったように動きません。

$kumiAry = array();
foreach($allStudentAry as $key=>$value){
 if(!in_array($kumiAry, $value['kumi'])){
  array_push($kumiAry,$value['kumi']);
 }
}
array_unique($kumiAry);
print_r($kumiAry); 
結果、Array ( [0] => 3 [1] => 3 [2] => 3) と、思い切り重複してます。どこが問題なんでしょうか?

2つの方法で書き直す前に、スッキリしたいので教えてもらえると嬉しいです。
0630nobodyさん2009/08/21(金) 18:37:11ID:???
>>629
> すみません、スタックというのが理解できません。調べたんですがいまいちわからずで…
> kumiの値を出力ごとにチェックして、例外(前のと違う)ときに次の組として処理し直すわけですね?
> ちょっとやった事がない処理です。どうやったら良いのか考えてみます。。

基本的に上記の理解であってます。
1レコードづつ読み込んでは、出力用変数(メモリ)に出力形式なりで溜め込んで(これをスタックって言ってた)
kumi値が変わったところで溜め込んだものを出力。語弊を生むような語法を使ってしまいすいません。
>>617に言われたとおり昔からあるデータベース読み込みの基本的なアルゴリズムですよw
06316072009/08/21(金) 21:12:31ID:???
>>608
いいってことよ
お礼は俺だけでいいよ606は関係なかったみたいだしw
0632nobodyさん2009/08/21(金) 21:33:12ID:???
スタックとかPHPでやるもんじゃなくね?
0633nobodyさん2009/08/21(金) 22:43:05ID:???
なんで?
配列でできるじゃん
0634nobodyさん2009/08/21(金) 22:47:53ID:PNbb36xj
◆質問です。
OS:windowsXP SP3 Pro
PHP:5.2.9

自PCに飛んでくるパケットをすべてキャプチャしたいです。
phpsnifferなるものを見つけて試したのですが、うまくいきませんでした。
(エラーは出ないが★部分で止まったまま何も起こらない)
http://eder.us/projects/phpsniffer/
----------プログラマの主要な処理を抜き出したのが以下です。
$sock = socket_create(AF_INET, SOCK_RAW, SOL_TCP);
socket_set_option($sock, SOL_SOCKET, SO_REUSEADDR, 1);
$socks=array($sock);
$w = $e = NULL;
socket_select($socks, $w, $e, NULL);//★
socket_recv($sock, $packet, 65536, 0);
var_dump($packet);
-----------------------------
〜〜板いけ 〜〜のサイト見ろなどでも構いませんので
どなたか回答なりヒントをいただけないでしょうか。
06354772009/08/22(土) 01:13:38ID:???
tcpdump っておもったけどWindowsか、、
06366342009/08/22(土) 02:01:56ID:DV5PllOD
>>635
ヒントありがとう tcpdumpのwindows版でwindumpってのがあるみたい。
popenとの組み合わせでなんとかなるかも。
試してみます
0637nobodyさん2009/08/22(土) 02:52:54ID:h6KUXpBq
HTTP_Requestでcheckboxをチェックするのってどうやるのか教えてください
0638nobodyさん2009/08/22(土) 02:56:11ID:h6KUXpBq
自己解決しました
0639nobodyさん2009/08/22(土) 14:15:17ID:qs0RE9DR
クラスを定義したmyClass.class.phpをrequire_once('myClass.class.php')して実行し
クラス中のメソッドを複数回実行してるんですが、最初の一回だけ動いて二回目以降は動きません。
なぜでしょうか?

myClass.class.php
=================================
class myClass{
 function __construct(){
  require_once("arrayList.php"); //配列リストの読み込み
  $this->musicGenreAry = $musicGenreAry;//$musicGenreAryはarrayList.phpに定義されてます
 }
 function func($aryName,$num){
  if($aryName =="music"){
   return $this->musicGenreAry[$num];
  }
 }
}

読み込む側の.php
=================================
<?php
function smarty_modifier_NUMtoTEXT($num,$aryName){
 require_once("myClass.class.php");//記入値・登録値を取得するクラスの読み込み
 $myClass = new myClass();
 echo $myClass->func($aryName,$num);
}
?>

すみません、続きます。
06406392009/08/22(土) 14:39:16ID:qs0RE9DR
639のつづきです

読み込み側の.phpを実行させるファイル test.tpl(smartyのテンプレートファイル)
=================================================
<p>
好きな音楽は、
1){$rsGakki.music1|NUMtoTEXT:'music'} (※修飾子プラグインとして実行しています)
2){$rsGakki.music2|NUMtoTEXT:'music'}
です
</p>

こんな感じです。
これで、1)ポップス  とは出るものの、2) のあとに何も表示されず空欄になってしまいます。
なぜなんでしょうか。smarty修飾子プラグインのルールに何かあるんでしょうか?
検証として、別に用意した普通の .phpの中で、 $myClassObj->func('music',1)、$myClassObj->func('music',2)と
したところ、ちゃんと目標の値を2つとも出力します。

smarty固有の問題ならsmartyスレで聞くべきなんですが、requireとかスコープとかで
間違ってるのかも知れないと思い、ここで聞きました。
例えば読み込み側.phpの、require_once()のタイミングはあそこでいいんでしょうか?
基本的におかしな事をしてるような気がして、自分ではわからない状態です。

色んなジャンルにまたがっててすみません。よろしくお願いします
0641nobodyさん2009/08/22(土) 14:50:44ID:???
requice_onceだから
06426392009/08/22(土) 15:04:14ID:qs0RE9DR
すみません、書き忘れましたが環境は
PHP5.2.6、SMARTY2.6、CentOS5.3 です
あと、今
 function func($aryName,$num){
  if($aryName =="music"){
   print_r($this->musicGenreAry); //この行追加
   print "abc";
   return $this->musicGenreAry[$num];
  }
 }
したところ、print_rの結果を一度しか表示しないです(2回コールしてるので2回出るはず)
print "abc";は二回出力します。
配列が吹っ飛んでるのかな? なぜでしょうか。。
0643nobodyさん2009/08/22(土) 15:55:35ID:TG4jntAz
>>641
ありがとうございます
今出先なので、帰宅したら試してみます!
0644nobodyさん2009/08/22(土) 16:07:13ID:zxIfIvf2
PDOのprepare()でDB関数をバインドすることは出来ないんでしょうか?

イメージとしてはこんな形式で…
$pstmt->bindParam(':foo', 'NOW()');
0645nobodyさん2009/08/22(土) 16:12:51ID:???
んなことしなくても、select now() as nowdate ;
ってクエリをprepareして実行してnowdate ってカラムをとればいいじゃん。
0646nobodyさん2009/08/22(土) 16:15:53ID:???
bindParamって変数のバインドだぞ
fooがNOW()という条件を作りたいならSQL文でfoo = NOW()と書きゃいいだけだろ
根本的に考え方が間違ってる
0647nobodyさん2009/08/22(土) 16:34:41ID:???
>>644
わざと出来ないようにしてると思ってもいいかも。
0648nobodyさん2009/08/22(土) 18:21:36ID:???
暇だから質問してこいよ
fusianasaやって質問した奴は全部俺が答えてやる
0649fusianasa2009/08/22(土) 18:30:22ID:???
やあ
0650nobodyさん2009/08/22(土) 18:41:54ID:kOYOIwI1
複数の画像がアップロードできてかるい、画像掲示板CGIって ないですかね
0651nobodyさん2009/08/22(土) 19:18:40ID:v9riHruT
return xml_parse(&$this->parser, &$data, true) ? $this->document : NULL;
ってどういう意味でしたっけ?
06526512009/08/22(土) 19:32:14ID:v9riHruT
すんません、ただの分岐でしたね
申し訳ない
0653nobodyさん2009/08/22(土) 19:34:44ID:???
xml_parse関数の実装は知らん
?:は三項演算子。xml_parse関数の戻り値がtrueなら$this->documentを、falseならnullを返す。
文字列やら数値が返ってきた場合は、真偽値にキャストしてから判定する。0ならfalseとかな。
0654nobodyさん2009/08/22(土) 19:45:28ID:???
>>649
fusianasaって書いたらそのままそっくり言われた通りのことしかできないのはゆとりなんだよ
俺はfusianasanって書いてほしかったな
0655nobodyさん2009/08/22(土) 20:33:26ID:839IHuhx
初歩的で恐縮です。

郵便番号7桁の数字 1234567 を 123-4567
にしたいです。教えてください。
0656nobodyさん2009/08/22(土) 21:36:21ID:???
substr_replace($var, '-', 3, 0)
0657nobodyさん2009/08/22(土) 22:16:18ID:839IHuhx
>>656 ありがとうございます。
0658nobodyさん2009/08/22(土) 22:16:35ID:???
>656
こんな関数あるんだな、初めて知った
0659nobodyさん2009/08/22(土) 22:23:59ID:???
>>656
2chにこんな親切な人がいるんだな、初めて知った
0660nobodyさん2009/08/22(土) 22:24:16ID:???
>>656
なにこのおしゃれな関数
これはいいな
0661nobodyさん2009/08/22(土) 22:32:21ID:LFACnGww
ディレクトリのパスを取得する関数はありますか
たとえば ./.../././ のようなパスを ../ に直したいのです
06626392009/08/22(土) 23:07:01ID:???
>>641
うまくいきました!
ありがとうございました
0663nobodyさん2009/08/22(土) 23:14:03ID:nZ+TC59g
fsockopen()とfwrite()つかってpost、getできるけど
これってhttp requestでのpostと何が違うの
前者は、いちいち要求ヘッダ書くのが面倒くさいだけ?
0664nobodyさん2009/08/22(土) 23:51:52ID:???
>>655

俺ならもっと楽な方法を取る。
replace系使うまでもないかなと
$a = 1234567;
$[a][2]= $a[2]+"-";
0665nobodyさん2009/08/23(日) 00:47:36ID:???
えっ
0666nobodyさん2009/08/23(日) 01:04:33ID:???
なにそれ
0667nobodyさん2009/08/23(日) 02:06:44ID:???
123 + "-" + 4567

くらいにやってることの意味がわかりやすく伝わるコードじゃない限り、
どれでも大差ないって思っちゃうなー。
0668nobodyさん2009/08/23(日) 02:18:18ID:???
正規表現について質問があります。
入力された文字列の中にYouTubeのURLが複数存在しており
それらの中から 【 TnqXQSbLUQ1  or TnqXQSbLUQ1 】 という文字列を
取得し、 $match (配列)に一度に取得するにはどうすれば良いでしょうか?

【入力された内容】
動画1
http://www.youtube.com/watch?v=TnqXQSbLUQ1 ・・・ @
動画2
http://www.youtube.com/watch?v=TnqXQSbLUQ2 ・・・ A

【自分で書いてみた正規表現】
$pattern = "/http:\/\/www.youtube.com\/watch?v=\/i";
$string = "http://www.youtube.com/watch?v=TnqXQSbLUQU&feature=featured";
preg_match($pattern,$string,$match);

※最終的には $match に @>TnqXQSbLUQ1 A>TnqXQSbLUQ2
を取得したいです。
0669nobodyさん2009/08/23(日) 02:33:15ID:???
>>668
"/youtube\.\w+\/watch\?v=([\w-]+)/"

ドメインがyoutube.jpだったりwww.youtube.comだったりするのでこんなかんじかな
0670nobodyさん2009/08/23(日) 02:44:57ID:???
668

>>669
ありがとうございます。やりたい事が出来ました。

あと、正規表現について勉強をしているのですが、
"/youtube\.\w+\/watch\?v=([\w-]+)/"
のうち最後の「+」とは一体どういう意味なのでしょうか?
0671nobodyさん2009/08/23(日) 02:49:03ID:???
[〜]が範囲内の文字、[A-Z]でA〜Zの文字を指す
\wが英単語つまり[a-zA-Z_0-9]と同じ意味
+は直前の表現が1個以上あることを示す。\w+ならa-zA-Z_0-9のどれかが1つ以上あとはググれ
0672nobodyさん2009/08/23(日) 03:00:14ID:RepkHWNs
PHP5つかってるんですが
includeでindex?q=item&a=1&b=2みたいな引数を読み込む方法はありませんでしょうか?
PHP4で絶対パス指定してた時代は出来たのですが!
怒ってます
0673nobodyさん2009/08/23(日) 03:07:28ID:???
>>671
ご丁寧にどうもありがとうございます。
ググって色々と勉強します。
0674nobodyさん2009/08/23(日) 03:11:54ID:???
>>672
>>4
0675nobodyさん2009/08/23(日) 03:30:00ID:RepkHWNs
>>674
はい4は読んでました。
たとえばキーワードで複数のAPI組み合わせてサイト作る機会って意外と多いと思うんですが
みなさんどうしてるんでしょうか。
PHP4に戻してCGI版PHP5にすればいけそうですか?
0676nobodyさん2009/08/23(日) 03:48:02ID:???
>>675
それでおk
0677nobodyさん2009/08/23(日) 04:01:33ID:RepkHWNs
>>676
マジですか?それとも軽くあしらう感じの答えですか?マジだったらありがとう
0678nobodyさん2009/08/23(日) 04:02:21ID:???
PHP6や7になっても4を使い続けるつもりなら良いだろう
0679nobodyさん2009/08/23(日) 04:07:32ID:RepkHWNs
そんなつもりないです
時代の波にのりたいです
0680nobodyさん2009/08/23(日) 04:08:55ID:???
そうかそうか
0681nobodyさん2009/08/23(日) 04:18:49ID:???
includeする側でなんか変数に設定する
っていうのでできると思うのだけども
それは求めてるものとは違うんだろか?
0682nobodyさん2009/08/23(日) 04:21:33ID:???
って、$_GETとか$_REQUESTで一発かー。

>たとえばキーワードで複数のAPI組み合わせてサイト作る機会って意外と多いと思うんですが

いまいち言いたいことが分からないなー。
0683nobodyさん2009/08/23(日) 12:04:55ID:AfcVjQ+e
localhostで実験しているときも、
自分のグローバルipを取得したいんですが、
何か簡単な方法ないでしょうか。
$_SERVER["REMOTE_ADDR"]すると127.0.0.1になってしまうんです。
よろしくお願いします。
windowsです。
(phpはapacheでlocalhost以外では実行できない設定にしてあります)
exec("ipconfig")とやってみたらDefault Gatewayという項目しか出てきませんでした
0684nobodyさん2009/08/23(日) 12:09:31ID:???
外のサーバに問い合わせなさい
0685nobodyさん2009/08/23(日) 12:41:41ID:???
もうすぐ5マンアクセス突破

そーいえばWEB魚拓やりたいけど容量がパンクしちゃう!!

とサガットさんが嘆いてました。
0686nobodyさん2009/08/23(日) 13:04:27ID:???
>>669
それだとnetにもひっかかるわな
悪意を持ってる人物がnetとかplとか空いてるドメインを見つけて使うかもしれないからこれはアウト
0687nobodyさん2009/08/23(日) 14:18:55ID:???
>>686
元のドメインはばらばらでも動画IDしか使わないんだから関係ないでしょ
0688nobodyさん2009/08/23(日) 15:41:38ID:Tby4tQso
foreachで配列の次の要素を見ることはできますか?
ループのなかで5番目の要素を見てるときに6番目をみるような…
0689nobodyさん2009/08/23(日) 15:48:56ID:???
添字が0から始まるということを知らないゆとりでないなら再現コードを詳しく
0690nobodyさん2009/08/23(日) 15:49:19ID:???
ポインタを進めるとかキーをインクリメントするとか
0691nobodyさん2009/08/23(日) 16:18:29ID:Tby4tQso
foreach($allAry as key=>val){
//ここで$val['name']が『やまだ』を返すとき、次の$['name']と等しいか知りたいんです
}
foreachはどうもいまいち理解できません
くだ質ですみませんがお願いします
0692nobodyさん2009/08/23(日) 16:28:51ID:???
>>687
ばかだろ
0693nobodyさん2009/08/23(日) 16:30:35ID:???
>>691
foreach($allAry as $key=>$val) {

このなかにforをつかう

}
0694nobodyさん2009/08/23(日) 16:35:45ID:???
>>691
foreach($参照する変数 as $KEY名=>$値){

この書式をよく理解してないと思う。
この書式は、参照する配列変数の一次元目について、
キーと値の対応表を得るのに使う。要するに、配列の
キーがわからないときにそれをリストアップするものだよ。

なので、

$allAry が、
$allAry = array(
  array('name'=>'yamada','age'=>15,addr=>'tokyo-to'),
  array('name'=>'sato','age'=>18,addr=>'chiba-ken'));
というようなデータ構造の場合、$KEY名には、1、2しか
入ってこないし、$値には一名分の配列そのものしか
入らない。

もう、$allAryが、上記のような構造の場合、普通に
foreach($allAry as $one ){
とでもやって、一時変数に $one['name']の値を保存して
おいて逐次比較すればいいんじゃないかな。
0695nobodyさん2009/08/23(日) 16:40:23ID:???
$array[0][name] = "Yamada";
$array[1][name] = "nanashi";

を foreach($array as $key => $val) で展開したら、$keyが0のとき$val['name']に
Yamadaが入るから、次のと比較するなら$key+1して$arrayを参照して比較すれば、
と思ったけど違ったんだっけか。
0696nobodyさん2009/08/23(日) 17:06:43ID:???
>>692
youtube以外のドメインからとったID( [\w-] )をどうやったらアウトになるのか教えて
0697nobodyさん2009/08/23(日) 18:51:19ID:???
>>696
信頼できるドメインからIDを取得できなかったらアウトですよね
0698nobodyさん2009/08/23(日) 18:52:08ID:???
>>696
悪意のあるコードを仕込まれたサイトのIDを取得した場合という判断を考えられない池沼乙
0699nobodyさん2009/08/23(日) 18:57:48ID:???
>>696の言ってる意味がわからないんだけど
誰か翻訳よろ
0700nobodyさん2009/08/23(日) 19:08:29ID:???
>>696

youtube.hoge
youtube.test

こんなサイトがあったとして、君はyoutubeってだけで何でもいいからIDを取っちゃうのかい?
0701nobodyさん2009/08/23(日) 19:40:25ID:???
>>698
[\w-]のIDからどうやって悪意のあるサイトに飛ぶんですか。
取ってるIDは[\w-]の範囲内ですよ
>>698
もしyoutube.comからHTMLをとってきてIDとるなら問題ないし。
ユーザーが入力したものだとしたらドメインが一致してもそのIDがでたらめなものかもしれないからドメインの問題じゃない


馬鹿ばかりだな
0702nobodyさん2009/08/23(日) 19:52:05ID:???
>>701
IDから悪意のサイトに飛ぶなんてどの回答者も書いてないじゃん
少し落ち着けよ
0703nobodyさん2009/08/23(日) 19:54:29ID:???
飛ばないなら問題ないじゃん
0704nobodyさん2009/08/23(日) 20:58:34ID:???
>>691は、ふつうこうやるんじゃないの?

foreach($users as $key => $user){
 if($users[$key] == $users[$key+1]){
  // ここにやりたい処理を書く
 }
}
0705nobodyさん2009/08/23(日) 21:06:06ID:???
あ、たいしたことじゃないけど['name']を付け忘れたので修正

foreach($users as $key => $user){
 if($users[$key]['name'] == $users[$key+1]['name']){
  // ここにやりたい処理を書く
 }
}
0706nobodyさん2009/08/23(日) 21:15:46ID:???
foreachでやるとオーバーするだろ
そういう時はforでやるべし
0707nobodyさん2009/08/23(日) 21:16:25ID:???
重複があるかどうか一発でわかる関数があるのに何故使わない?
マニュアルの配列関数のところ見れ
0708nobodyさん2009/08/23(日) 21:23:11ID:???
>>706ごもっともwww
0709nobodyさん2009/08/23(日) 21:24:49ID:???
>>691
array_mapを使うと幸せになりますよ
0710nobodyさん2009/08/23(日) 21:37:56ID:???
関数を呼ぶのと、ifで比較するのってどっちが早いんだろうとか考えてると
いいコードは書けませんよね
0711nobodyさん2009/08/23(日) 22:00:24ID:???
それは雇われたPGの考え
0712nobodyさん2009/08/23(日) 22:23:38ID:nlDqD5AK
ユーザログインを管理する公開されてるサンプルでもなんでもいいので
使いやすいもの・参考になる簡単なもの無いですか?
やりたいことは、
・各ユーザに対する専用ページの保護
・ユーザ名・パスワードを入れた後はログアウトするまでユーザ専用ページ情報を開ける
・メールアドレスをユーザ名として使用
0713nobodyさん2009/08/23(日) 22:26:14ID:???
すいません。
できればコードは「クラス」なものが良いのですが。
07146912009/08/23(日) 22:27:22ID:???
アドバイスくれた方、みなさんどうもありがとう
参考にしてやってみます。ありがとう
0715nobodyさん2009/08/23(日) 22:45:58ID:???
>>712
つCMS
0716nobodyさん2009/08/23(日) 23:43:48ID:???
>>715 ありがとうございます。
基本から良く分かってないのでできればどのCMSのこのモジュールが分かりやすいよ
とかいうのがあればおききしたいのですが。
0717nobodyさん2009/08/24(月) 01:27:27ID:???
>>716
知ってる限りじゃDrupal。

静的ページを作るだけじゃかなり面倒臭いので
CMSのコンテンツマネージメント機能を利用する
ついでじゃなきゃお勧めできないけどw

つーか、PHPの標準機能だけでも結構あっさりと
できるでしょ。ユーザ管理DBを置いて、共通処理
で各ページ表示処理の手前で、認証やってダメな
ら弾けばいいんだから。Cookieにすればパラメータ
の受け渡しに迷うこともないし、セッションとしても
使えるし。
0718nobodyさん2009/08/24(月) 01:29:32ID:???
>>716
どの程度の規模なん?
ユーザ少ないんだったらhtaccessという手もあるよ
0719nobodyさん2009/08/24(月) 02:17:17ID:???
>>717 Drupal調べてみます。
> つーか、PHPの標準機能だけでも結構あっさりとできるでしょ。

基本DB使ってセッションで_SESSION[USER]=ユーザ名があればログイン中
というふうにしたらメアドがネットにながれちゃうのかなぁ?とか。
んでなんか一回安全で一般的なユーザ管理の方法を学ぼうかなぁとおもいまして
サンプルを探しているわけです。
(できればフォームで登録申請→登録メアドにメールが届く→メール内URLをクリックで本登録とか機能も作りたい)
一応ネットでいくつか見てはみたのですが説明サンプル的なもので実践的でないもの
っぽかったので、これ使ってりゃそんな間違いないし簡単だよってものがあるのかお聞きしたかったのです。

>>718
100人程度登録・書き込みしてくれたらまぁいいかな程度なんですが。
Basic認証のことかなぁ?できればログインフォームでのログインクラスとして実装したいのですが。
0720nobodyさん2009/08/24(月) 11:39:25ID:F/8gKHCC
改行のない数万バイトのデータがあります
これを一定(1バイトの文字*60文字=60バイト)の長さで一気に配列に格納したいのですがスマートな方法はありますか?
このデータは最初から最後まで60バイトで区切っていって丁度きっちり割り切れるデータです
0721nobodyさん2009/08/24(月) 11:42:20ID:???
forで回せばいいじゃん
0722nobodyさん2009/08/24(月) 11:47:52ID:???
>>720
データの先頭60バイトを切り取って、配列に格納
この処理をarray_mapを使って再帰的に処理すればforより短いコードで書ける
0723nobodyさん2009/08/24(月) 11:58:07ID:???
array_mapでどうやって・・・?
0724fusianasa2009/08/24(月) 11:58:25ID:???
ずばり
str_split
0725nobodyさん2009/08/24(月) 12:00:31ID:???
バイナリセーフではありません
0726nobodyさん2009/08/24(月) 12:21:50ID:???
>>720
スマートと言っても何がスマートなのかよくわからん
見た目をすっきりなのか
行数をすっきりなのか

まぁ、こんな手もある
20文字区切りだけどな
$teststr = '123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890';
$splitstr = chunk_split($teststr,20,"\n");
$bunkatu = split("\n",$splitstr);
0727nobodyさん2009/08/24(月) 12:24:50ID:???
きっちり分けれるなら最後に区切り文字が二つ繋がるから空の要素が一つ出来る
それの処理が必要
0728nobodyさん2009/08/24(月) 12:28:32ID:???
>>726
わざわざ改行をつけるなら初めから改行付きでデータを作るだろzk
0729nobodyさん2009/08/24(月) 12:30:49ID:???
>>728
>>720を読んでからにしろな
0730nobodyさん2009/08/24(月) 12:36:33ID:???
みなさんありがとうございます、自分の知らなかった関数が出てきたのでちょっと調べてて遅くなりました
>>726さんのchunk_splitが一番よさそうなのでそれでやってみようと思います
本当に勉強になりました、みなさんありがとうございました
0731nobodyさん2009/08/24(月) 12:42:56ID:???
chunk_splitの他にphp5での関数があるなstr_split
0732nobodyさん2009/08/24(月) 12:44:08ID:F/8gKHCC
>>703は自分です

>>731
ありがとうございます、そちらもしらべて学習します
0733nobodyさん2009/08/24(月) 12:53:11ID:F/8gKHCC
str_splitはsplitする手間が省けて区切り文字なく直接配列に割り振ることができるんですね
ループの処理もいらず、短い1行でやりたいことができました!
0734fusianasa2009/08/24(月) 13:02:41ID:???
僕が書き込んだんだぞ!!
ぷんぷん
0735nobodyさん2009/08/24(月) 13:08:02ID:???
にこにこぷんぷん
0736nobodyさん2009/08/24(月) 13:13:36ID:???
ぷんすかぷんぷん
0737nobodyさん2009/08/24(月) 14:01:09ID:???
>>729
読んでからレスしたんだが
改行がないんだからわざわざ付けてどうすんだ
データ処理時に改行を付加するなら最初からデータの末尾に改行をつけるのがスマート
0738nobodyさん2009/08/24(月) 15:02:37ID:???
頭悪いな〜
0739nobodyさん2009/08/24(月) 16:07:53ID:???
>>738
頭悪いのはお前
数万バイトぐらいで改行分をケチる必要はないだろう
0740nobodyさん2009/08/24(月) 16:26:21ID:ywIYQab+
PHP Version 5.3.0
imagick2.3.0 / ImageMagick 6.5.5
を利用しています

Imagickで取り込んだデータをブラウザに出力する場合、静止画であれば

echo [Imagickのインスタンス];

でいけるのですが、
アニメーションGIFを出力する場合は一旦ファイルに書き出してからでないと無理でしょうか?
0741nobodyさん2009/08/24(月) 18:12:09ID:gGslhGFk
識別IDから国名を表示したく、以下のように書きました。
配列の要素数が増えると、処理が遅くなりそうで…
そもそも、配列で処理しようとしてることが間違いなのか…
上手な書き方、教えてください。

<?php
//$array[] = array(識別ID, 国名, 点数);
$array[] = array('a01', '日本', '10');
$array[] = array('a02', 'アメリカ', '20');
$array[] = array('a03', 'ロシア', '30');
//(省略)

$str = 'a02';
foreach($array as $item){
list($id,$name,$i) = $item;
if(in_array($str, $item)){
echo $name;
}
}
?>
0742nobodyさん2009/08/24(月) 18:21:11ID:???
>>741
プログラムのほかの部分が判らんからあれだけど、
任意の識別IDから国名を出したいのなら、識別IDをキーにすべきじゃないか?

$array['a01'] = array('日本', '10');
$array['a02'] = array('アメリカ', '20');
$array['a03'] = array('ロシア', '30');

echo $array['a02'][0];
0743nobodyさん2009/08/24(月) 19:06:02ID:???
連想配列使おうよ
0744726,7312009/08/24(月) 19:23:46ID:???
>>737
ちょっとは応用に頭を使えよ…
改行改行って拘りすぎだ
chunk_splitは特定バイト毎に改行文字を挿入する
だから\nじゃなくて<br>でも何でも使えるんだよ

今回は思いついた\nを使っただけだ
0745nobodyさん2009/08/24(月) 20:51:53ID:waMnQ6RO?2BP(931)
MySQLに格納した画像データの取り出しについて質問です。
格納の仕方・手順については、MySQL Query Browserを用いて、
格納した画像を表示・ローカルPCに保存(して表示)できたので問題ないと思います。

しかし、PHPを用いていざ表示してみようとすると、
『格納したものと同じデータ容量・同じサイズの白色(無色かも?)の画像』が表示されるだけです。

言っている意味が分かりづらいかもしれないですが、
それをローカルPC上に保存してみても、
画像を表示することはできないのですが、
(Windows Picture and Fax Viewerで表示しようとすると、
『画像を描画できませんでした』と表示される)
データ容量とサイズはしっかりとあっています。

こういった場合に考えられる原因がお分かりになる方、ご教授いただけませんか。

ソースコードを書く必要があれば書きます。
また、他に不足している情報があれば補足しますので、
どうぞよろしくお願いします。
0746nobodyさん2009/08/24(月) 20:59:09ID:???
ヘッダ出してないからじゃね
0747nobodyさん2009/08/24(月) 20:59:21ID:???
HTTPヘッダ忘れ。
0748nobodyさん2009/08/24(月) 21:01:25ID:???
>>740
無理だと思った理由は?こんな症状が出たとか書くと答えてもらえる
どんなフォーマットでも出力方法は同じ
http://www.php.net/manual/ja/function.imagick-getimageblob.php

>>744
737じゃないが、>>726のヌル文字やデリミタの混入で
動くけど挙動がおかしくなるコードは下策
初心者に教えるべきでもないな
0749nobodyさん2009/08/24(月) 21:34:50ID:???
配列のソートに有用なライブラリを探しています。

今私がやりたいのは、二次元配列を、n番目の配列をキーにソートをする、ということです。
イメージとしては、MySQLのORDER BYみたいな感じです。

array_multi_sortでもできますが、ソートのパターンが増えるたびにコードを書かないといけないのが少し煩わしいです。

何かいいのないでしょうか。
0750nobodyさん2009/08/24(月) 21:35:44ID:???
スレタイ
07517452009/08/24(月) 21:36:51ID:waMnQ6RO?2BP(931)
>>746,747
ヘッダは
header('Content-type: image/jpeg');
と出力しています。

ただ1つ気になるのは、 image/jpeg であっているのか?というところです。
元画像はもちろん jpg なんですが、
先述の MySQL Query Browser を使って保存すると、
jpg とは認識してくれない( All Files(*.*) となっている)のです。
(もともと自動認識してくれないのかもしれませんが)
それを *.jpg として保存すると見られますし、あるいは *.png などとしても見られます。

ちなみにヘッダを出力しないと、文字化けしたバイナリデータが表示されます。
また、ヘッダの前に echo " "; などを追加するとエラーが起きるので、
ヘッダより前に何かが出力されてしまっている、ということもないと思います。
ソースコードの保存はutf8、BOMなしでしてます。
07527402009/08/24(月) 21:37:48ID:ywIYQab+
>>748
レスthx

なるほど、出力する時はその関数だったのか

php.netの例がそのままインスタンスechoしてるだけだったので、
正直変な書き方だとは思ってたんだw
どっちでもいいのかもしれんが今後はそれ使います

で、変更してみたけど結果は変わらず、
おそらくアニメーションGIFの1フレーム目だけが静止画として表示されるのみ

テストソース
$image = new Imagick('./img/0');
header('Content-type: image/gif');
echo $image->getImageBlob();

で、もうちょっと自力で探してたら
ttp://kyle-in-jp.blogspot.com/2008/09/imagemagickphpgif.html
このブログでまさにやりたい事がエントリされたのでちょっとこれから勉強してきます。
0753nobodyさん2009/08/24(月) 21:38:39ID:???
>>751
じゃ再現するコードうpだ
07547452009/08/24(月) 21:45:23ID:waMnQ6RO?2BP(931)
>>753
了解です。
クラスオブジェクトとかを使っているので、
画像を表示するプログラム単体ではわかりづらいかもしれないです。
<?php
require_once( 'Config.class.php' );
require_once( 'Tables.class.php' );

$config =& new Config();

$_SESSION['permission'] = ADMIN;
$DSN = $config->DSN();
$uid = $_GET['uid'];
$img_type = $_GET['img_type'];


$cartoonist =& new Cartoonist( $DSN, "user_id", $uid );
// ↑Tables.class.php により、これで、
// Cartoonist テーブルの user_id フィールドにおいて、 $uid と一致するデータを、
// Cartoonist->user_id や Cartoonist->user_password などとして呼び出せます。

if( $cartoonist->isError() ) {
die( $cartoonist->getError() );
}
if( $img_type = "illust_1cut" ){
header('Content-type: image/jpeg');
echo $cartoonist->illust_1cut;
}
$cartoonist->__destruct();
?>
よろしくお願いします。
07557452009/08/24(月) 21:46:46ID:waMnQ6RO?2BP(931)
連投すみません、

×:// Cartoonist->user_id や Cartoonist->user_password などとして呼び出せます。

○:// $cartoonist->user_id や $cartoonist->user_password などとして呼び出せます。
0756nobodyさん2009/08/24(月) 22:03:38ID:???
>>744
<br>なんて使うか
バカじゃねええの
0757nobodyさん2009/08/24(月) 23:13:57ID:???
>>754
出力されるべき画像の形式は何なの?
0758nobodyさん2009/08/24(月) 23:19:04ID:???
サイズだけじゃなく、MD5とかで壊れていないことを確認済みなんだろうか
0759nobodyさん2009/08/24(月) 23:19:18ID:???
array(18)
{ [0]=> array(2)
{ ["aaa"]=> string(1) "a-1" ["bbb"]=> string(6) "b-1" }
[1]=> array(2) { ["aaa"]=> string(1) "a-1" ["bbb"]=> string(6) "b-2" } ....以下略
という風に並んでいるものがあって、
a-1 b-1,b-2....
a-2 b-1,b-2....
っていう風に取り出す方法ないでしょうか…。
どうしたら良いものかさっぱり…。

二次元配列…?でも上手くいかなかったし。
0760nobodyさん2009/08/24(月) 23:25:43ID:???
こういう場合、再帰という手法を使う
0761nobodyさん2009/08/24(月) 23:26:56ID:???
何のデータ構造だこりゃ?
07627592009/08/24(月) 23:31:55ID:HdED1h1S
sage入れてた。ごめんなさい。
0763nobodyさん2009/08/24(月) 23:52:54ID:???
とりあえず、このデータだけでは並びがわからん。
0764nobodyさん2009/08/25(火) 00:01:24ID:???
foreachで別の配列なり変数なりに放り込む
0765nobodyさん2009/08/25(火) 00:04:51ID:???
[0]
 ["aaa"] = "a-1"
 ["bbb"] = "b-1"
[1]
 ["aaa"] = "a-1"
 ["bbb"] = "b-2"

[0]と[1]の両方に同じデータが入ってるのか?
0766nobodyさん2009/08/25(火) 00:22:12ID:???
もしかしてただのcsvだったりするのか
0767nobodyさん2009/08/25(火) 01:07:51ID:Owp0h4vB
Auth::getAuthData()がうまくできなくて困っています。
ソースはこんな感じ。

require_once( "Auth/Auth.php" );

$params = array(
  dsn' => "mysql://user:pass@localhost/db",
  'table' => "member_table",
  'usernamecol' => "username",
  'passwordcol' => "password",
  'crypttype' => "md5",
  'db_fields' => "*",
);

$auth_obj = new Auth( "DB", $params );
$auth_obj->start();
if( $auth_obj->getAuth() ) {
  print "ようこそ!" . $auth_obj->getAuthData( 'username' ) . "さん<br>";
};


認証はできててエラーは何も出ず、
ようこそ!さん
と表示されます。getAuthDataがNULLを返しているような感じ。
フィールド名をいろいろ変えても同じ。
ぐぐったけどわかりません。
なんでこんなシンプルな関数が動作しないのか…。何を調べればいいのでしょうか。
0768nobodyさん2009/08/25(火) 01:08:26ID:???
array(
  [0] => array(
    [0] => "a",
    [1] => "b",
  ),
  [1] => array(
    [0] => "c",
    [1] => "d",
  ),
)
こんな感じでかいてくれ上のだと見にくい
0769nobodyさん2009/08/25(火) 01:11:13ID:Owp0h4vB
追記:ぐぐってこれも試してみたけどだめでした。
http://go4it.seesaa.net/article/113476888.html
0770nobodyさん2009/08/25(火) 01:19:06ID:???
>>769
エラー全部表示してみたら?
07717592009/08/25(火) 01:20:46ID:EILdhFsc
array[18]{
[0]=> array(2){
["aaa"]=> string(1) "a-1" ["bbb"]=> string(6) "b-1"
}
[1]=> array(2){
["aaa"]=> string(1) "a-1" ["bbb"]=> string(6) "b-2"
}
[2]=> array(2){
["aaa"]=> string(1) "a-1" ["bbb"]=> string(6) "b-3"
}
[3]=> array(2){
["aaa"]=> string(1) "a-2" ["bbb"]=> string(6) "b-1"
}
[4]=> array(2){
["aaa"]=> string(1) "a-2" ["bbb"]=> string(6) "b-2"
}
[5]=> array(2){
["aaa"]=> string(1) "a-3" ["bbb"]=> string(6) "b-1"
}
.....略

書き方を変えてみました。
0772nobodyさん2009/08/25(火) 01:22:03ID:???
>>771
foreach
0773nobodyさん2009/08/25(火) 01:25:07ID:???
>>771
function array_print( $array )
{
foreach( $array as $key => $value )
{
if( is_array( $value ) )
{
array_print( $value );
}else{
print $value;
}
}
}
07747452009/08/25(火) 01:39:37ID:jyvND+zG?2BP(931)
レス遅くなってすみません。

>>757
元ファイルが jpg なので、jpg 形式で出力すればいいかと思ってたんですが・・・。
データベースに格納する際、何か必要な処理があるんでしょうか?

>>758
md5 で確認、といいますとどういうことでしょうか?
暗号化するコマンドの md5 しか知らないのですが・・・。


よろしくお願いします。
0775nobodyさん2009/08/25(火) 01:42:12ID:Owp0h4vB
>>770
エラー全部表示にしても、何も出ません。

しょうがない、Authを使うのはあきらめよう。これだから他人の書いたライブラリは信用できない。
07767452009/08/25(火) 01:43:00ID:jyvND+zG?2BP(931)
連投すみません。

>>758
もしかして、
echo $cartoonist->illust_1cut;
の部分を、
echo md5( $cartoonist->illust_1cut );
としてみる、ってことでしょうか?
そうなのであれば、その結果、
f85f7936575718c32cbc4018e7dc63a6
と出力されたので、壊れてないと思われます。
0777nobodyさん2009/08/25(火) 01:48:21ID:???
>>776
自作でいろいろやってる部分を省いて、一番単純なコードでちゃんと表示されるかどうか試してみたら?
問題が再現するコードってのはそういうこと
0778nobodyさん2009/08/25(火) 02:04:17ID:???
SQLに入れる段階でバイナリ含めてエスケープされると思うんだが
07797452009/08/25(火) 02:30:52ID:????2BP(931)
>>777,778,他皆様

以下のようなスクリプトにしてみたところ、表示できました!
あとはこれをいじってどうにか自分の思う形に持っていきたいと思います。
面倒見てくださった皆様ありがとうございました。

<?
// DB接続
$conn=mysql_connect("localhost","root","");
// DB選択
mysql_select_db("eninaru");
//DBからバイナリ画像を取得
$sql = " SELECT illust_1cut FROM Cartoonist LIMIT 1 ";
$result = mysql_query( $sql );
$val = mysql_fetch_assoc( $result );
//画像として表示
header("Content-type: image/jpeg");
echo $val['illust_1cut'];
exit;
?>
0780nobodyさん2009/08/25(火) 09:19:58ID:???
>>756
お前本当に頭悪いな
chunk_splitは区切り文字として何でも使えるんだから好きなのを使えば良いだろ?
固定バイト数毎に配列に格納する方法についての質問に
・forループで格納する方法の別の方法として
chunk_splitを使って特定バイト毎に区切り文字入れてsplitで分ける方法を出しただけだ
その後にphp5のマニュアルを見たらstr_splitを見つけたけどな

考え方として案を出しているのに区切り文字に拘り続ける理由がわからん
そんなのは自分のシステムに合わせた区切りにするだけじゃないのか?
0781nobodyさん2009/08/25(火) 09:31:01ID:???
お前らまだやってんのか
他人のどうでもいいプログラムのことでけんかすんなよ...
0782nobodyさん2009/08/25(火) 09:34:08ID:???
どうでもいい…(ノ_・。)
0783nobodyさん2009/08/25(火) 10:55:25ID:Nftjn5Vt
windowsXP+IISです

あるシステム関数を含んだコードを実行すると下のようなエラーが出ます。
何に原因があると思いますか?
Warning: system() [function.system]: Unable to fork ["C:/Program Files/Xpdf/pdftotext.exe" -enc Shift-JIS ./showPickingListNoUpdate.pdf2.pdf .\_4a933e906bb263.14282916] in C:\public_html\group\pdf_test.php on line 8
07847832009/08/25(火) 10:56:27ID:Nftjn5Vt
実行したスクリプト
(以前にここでPDFのテキストを抽出したいと相談した時に教えてもらったサイトのコードで試しました
パスは適宜修正済みできちんとその場所に実行ファイルやPDFファイルがあります)
----------------------------------------------
<?php
class PdfToText {
public static $exepath = '"C:/Program Files/Xpdf/pdftotext.exe"';
public static $options = ' -enc Shift-JIS';
public static function execute($path=null) {
$tmp_path = PdfToText::get_temp_file_path($path);
system(PdfToText::$exepath . " " . PdfToText::$options . " {$path} {$tmp_path}");
$text = null;
if (file_exists($tmp_path)) {
$text = readfile($tmp_path);
unlink($tmp_path);
}
return $text;
}
public static function get_temp_file_path($path=null) {
$dir = dirname($path);
if ($dir[(strlen($dir)-1)] != DIRECTORY_SEPARATOR) {
$dir .= DIRECTORY_SEPARATOR;
}
return ($dir . uniqid('_', true));
}
}
echo PdfToText::execute("./test.pdf");
?>
0785nobodyさん2009/08/25(火) 11:19:30ID:???
>>783
windowsでphpを使ったことがないので外しているかもしれんけど...

ttp://www.iis-aid.com/articles/trouble_shooting/warning_exec_function_exec_unable_to_fork
ttp://www.somacon.com/p255.php
あたりを見ると、IISユーザーにC:/Program Files/Xpdf/pdftotext.exe
を実行するパーミッションがないからじゃないだろうか。
0786nobodyさん2009/08/25(火) 11:53:08ID:???
>>780
自分のきめえさを指摘されたら本気になって弁論
フイタワ
0787nobodyさん2009/08/25(火) 11:55:46ID:2Veus9TY
【OS名】FreeBSD 6.2
【PHPのバージョン】5.2.3
上記仕様のレンタルサーバーでSmartIRCというライブラリを使用して
IRCBOTを動かしています。動作としては指定のIRCチャンネルに
10分置きに現在時間を知らせるメッセージを送信するというものです。
問題なく動作はしてくれるのですが、1時間ほど経つと
IRCBOTがチャンネルから落ちてしまいます。PHPは初心者で
あまり詳しくないのですが、恐らくPHPのセッションが1時間で
タイムアウトしてしまう設定になってるのではないかと想像しています。
自分でタイムアウト時間を設定したいのですが、どのように
すれば良いでしょうか?ご教示よろしくお願い致します。

(SmartIRC)http://pear.php.net/package/Net_SmartIRC/
(参考ページ)http://www.phppro.jp/phptips/archives/vol36/



0788nobodyさん2009/08/25(火) 12:10:51ID:???
>>787
quickIRCに乗り換えれば?
0789nobodyさん2009/08/25(火) 12:17:26ID:???
つうかよどこのレンサバかぐらい書け
07907872009/08/25(火) 12:44:57ID:2Veus9TY
>>788
ご提案ありがとうございます。
ですが、「IRCBOTが1時間で勝手に落ちる」という問題が
解決可能なのであれば、SmartIRCでBOTを運用したいと思っています。

>>789
すみません、書き漏れておりました
レンタルサーバーはland.toという所を使っています。
http://land.to/
0791nobodyさん2009/08/25(火) 13:02:09ID:???
>>783
>>785の書いているIISが実行ファイルを処理できる権限があるかどうかのチェック

>>787
スクリプトはCRONか何かで定期的に起動するタイプなのか?
常駐だとレンタルサーバーならプロセスがkillされているかもしれん
07927872009/08/25(火) 13:22:01ID:2Veus9TY
>>791
ご回答ありがとうございます。
CRON等で定期的に起動はしていません。
EIからBOTスクリプトの書かれたphpを一度だけ読み込んでます。
読み込んだ後はブラウザを閉じています。

>常駐だとレンタルサーバーならプロセスがkillされているかもしれん
なるほど。。。
BOTを常駐させたいのですが、プロセスがkillされない方法は
ないでしょうか?
07937872009/08/25(火) 13:23:51ID:2Veus9TY
>>EIからBOTスクリプトの書かれたphpを一度だけ読み込んでます。
EIではなくIE(インターネットエクスプローラー)。
失礼しました。
0794nobodyさん2009/08/25(火) 13:38:32ID:???
>>786
かわいそうに
0795nobodyさん2009/08/25(火) 15:16:31ID:???
>>792
レンサバでプロセス占領するようなことすんな
やるなら自鯖でやれ
氏ねksg
0796nobodyさん2009/08/25(火) 15:54:23ID:???
恥ずかしいなぁ
0797nobodyさん2009/08/25(火) 16:28:30ID:???
>>792
ttp://www.phppro.jp/phptips/archives/vol36/
をざっくりと見た感じだとスクリプトが常駐する感じっぽいな

それなら「レンタルサーバで使うのは止めておけ」だ
レンタルサーバは皆で使用している物だからな
一つのサーバに「自分だけなら・・・」で使う奴が何人も居たら
大変な事になる
07987872009/08/25(火) 16:36:34ID:2Veus9TY
そんな事は知ってんだよ
他の奴なんかどうだっていい、俺さえよければいいんだ
わからねえなら下らないレスすんな雑魚ども
0799nobodyさん2009/08/25(火) 16:44:57ID:???
ID:2Veus9TY
質問内容から知ってるような感じには見えなかったなあ
0800nobodyさん2009/08/25(火) 16:48:18ID:???
いやいや、レンタルサーバーとはいえ、この程度であーだこーだ言ってる人がどうかと思う。
そもそもレンタルサーバー屋と借りてる奴との間の話だし。
VPSとか借りたらどう? 他のお客さん関係なくなるし。
共有なんかだと、プロセスみてずっと動いてるの殺したり、定期的にいろいろ再起動されたりするので無理じゃね。

0801nobodyさん2009/08/25(火) 16:51:45ID:???
専用サーバやVPSならまわるか共有サーバーであーだーこーだ言わない人のほうが少ないな
0802nobodyさん2009/08/25(火) 17:16:02ID:???
スルーしとけよ
0803nobodyさん2009/08/25(火) 17:18:40ID:TGZyUfPX
鯖くらい自分で立てろよ
なんならスペース貸そうか?
0804nobodyさん2009/08/25(火) 17:39:18ID:???
phpでデーモン作るのは簡単にできるけど、実際問題色々とナンセンス。
0805nobodyさん2009/08/25(火) 22:27:39ID:Y/NZgk2c
PHP 5.3.0
finfo_open → resource(12) of type (file_info)
finfo_file → NULL

どうしてもfinfo_fileでNULLが返ってきます。
ローカルサーバーでは正常にファイルタイプが返ってきました。
ちなみにmimeのデータベースはローカルで成功したものをLinuxにアップロードして使っています。
なぜこのようなことになるのでしょうか・・・。
0806nobodyさん2009/08/25(火) 23:18:15ID:???
>>805
finfo_openのリソースをfinfo_fileで使用するから片方だけ通らないってのも変な話だ
その部分のコードをアップしてくれないか?
0807nobodyさん2009/08/25(火) 23:29:39ID:Y/NZgk2c
$finfo = new finfo(FILEINFO_MIME, "/etc/httpd/conf/magic");
$mimetype = $finfo->file($finfo, $file_path);
var_dump($finfo, $mimeType, $file_path);

Warning: finfo::file() expects parameter 1 to be string, object given in /home/uploader/data/class/Uploader.php on line 52

object(finfo)#3 (0) {
}

NULL

string(14) "/tmp/phpmGveGV"

こんな感じです。
おかしいな、$finfoオブジェクトなのに・・・
newじゃなくfinfo_openならさきほどのresource(12) of type (file_info)がかえってきてました
0808nobodyさん2009/08/25(火) 23:32:37ID:???
PHPで携帯のサイトを作成しています。
空メールを送って、メールを自動返信する処理を作成しているのですが、
ソフトバンク携帯だけ、自動返信メールの件名がダブって送られます。
例えば、件名が「登録ありがとうございます!」だったら、「登録ありがとうございます!登録ありがとうございます!」みたいな感じです。
その他の2キャリア、auとドコモは大丈夫でした。またPCから送ってみたのですが、そちらも大丈夫でした。
メールを送る処理は、普通にmail関数を使っているのですが、これはソフトバンク携帯の仕様なんでしょうか?
0809nobodyさん2009/08/25(火) 23:33:05ID:Y/NZgk2c
ごめん、オブジェクトにしたら書き方間違えてた

$finfo = new finfo(FILEINFO_MIME, $this->getMagicFilePath());
$mimetype = $finfo->file($file_path);
var_dump($finfo, $mimeType, $file_path); die;

object(finfo)#3 (0) { }

NULL

string(14) "/tmp/phpCZhdyB"
0810nobodyさん2009/08/25(火) 23:39:32ID:???
コピペじゃなく手書きしたんだよな?
2行目:$mimetype
3行目:$mimeType
0811nobodyさん2009/08/25(火) 23:41:57ID:Y/NZgk2c
どう見てもコピペです
本当にありがとうございました
0812nobodyさん2009/08/25(火) 23:43:33ID:MI9sHpli
しばらくphpから離れてたんですが
PHP5.2.x系の最新版ってないんですか?
PHP5.3しかないのですが・・・
0813nobodyさん2009/08/25(火) 23:46:34ID:8cJr6T6d
PHPの変更点を日本語化してるサイト、もしくはブログはございませんか?
http://www.php.net/ChangeLog-5.php
0814nobodyさん2009/08/25(火) 23:55:31ID:???
>>811
ネタっぽく返ってきてるんだがw
解決でいいのか?w

>>812
意味が良くわからん
環境にもよるが本家にも無かったか?
0815nobodyさん2009/08/26(水) 00:08:15ID:zWNH0csG
はい、解決です
本当にありがとう
0816nobodyさん2009/08/26(水) 04:21:39ID:8mfIJWwV
<?php
for($i=0;$i<5;$i++)
{
echo $i."<br>";
}

for($j=0;$j<5;++$j)
{
echo $j."<br>";
}
?>
これなんで、$iも$jも同じ結果になるの?
前置加算だったら、$j=0に++して最初は0じゃなくて1になるんじゃないの??
forの中は特別?
0817nobodyさん2009/08/26(水) 04:24:02ID:???
++$jがどのタイミングで実行されると思ってんの?
0818nobodyさん2009/08/26(水) 04:32:29ID:8mfIJWwV
>>817
ちょっとかんがえてみたけど
文法はおかしいけど、もしかしてこういう感じのこと??
for($j=0;$j<5;)
{
echo $j."<br>";
++$j
}
0819nobodyさん2009/08/26(水) 04:39:27ID:???
そうです
0820nobodyさん2009/08/26(水) 05:04:50ID:8mfIJWwV
ありがとうございました
0821nobodyさん2009/08/26(水) 13:58:45ID:6H4tMTv1
ど忘れしたので教えて
<input type="text" value={$text}>
のようにテキストボックスにあらかじめ文字列を表示しようとしてるんだけど、
$textの半角スペースなんかをエンコードするのってどうやるんだっけ
0822nobodyさん2009/08/26(水) 14:05:18ID:???
htmlspecialchars
0823nobodyさん2009/08/26(水) 14:06:45ID:6H4tMTv1
>>822
ありがとう!やってみたけど、やはり途中に半角スペースがあるとそれ以降が表示されない。
他にも何かあるんだっけ?
0824nobodyさん2009/08/26(水) 14:08:01ID:???
urlencode
0825nobodyさん2009/08/26(水) 14:10:24ID:6H4tMTv1
>>824
こんどは半角スペースが「+」に化けちゃった…
htmlspecialchars と組み合わせてもだめだ…だれか助けて
0826nobodyさん2009/08/26(水) 14:13:09ID:jmEq8MiJ
それHTMLの問題だろwwww
value={$text}
  ↓
value="{$text}"

で囲ってやれよwww
0827nobodyさん2009/08/26(水) 14:17:49ID:6H4tMTv1
>>826
できた!wwww
d
0828nobodyさん2009/08/26(水) 14:18:56ID:???
>>823
お前敬語使えよ
0829nobodyさん2009/08/26(水) 14:24:04ID:6H4tMTv1
>>828
サーセンwwwwww
0830nobodyさん2009/08/26(水) 14:38:53ID:???
すみません、PHP(PHP4)でCSVのデータの読み込みなんですが
読み込むCVSファイルは株価のデータです。こんな感じのです。

| 日 付 | 始値 | 高値 | 安値 | 終値 |
| 2009-7-1 | 100.0 | 150.0 | 50.0 | 120.0 |
| 2009-7-2 | 120.0 | 130.0 | 70.0 | 90.0 |
| 2009-7-3 | 90.0 | 150.0 | 50.0 | 120.0 |

          :

CSVファイルを読み込んで、MYsqlでデータを保存します。
データベースはkabu
テーブルはそれぞれopen,high,low,close です。
下らない質問なのは承知ですが、まったくわかりませんorz
よろしくお願いします。


0831nobodyさん2009/08/26(水) 14:44:42ID:???
>>830
IDだして。

っていうかいくらなんでも丸投げ過ぎるw
何がしたいのかを具体的に書いてくれよ(CSVのデータをDBに入れたいのはわかるが)

あとテーブルが4つにわかれているの?列じゃなくて?
0832nobodyさん2009/08/26(水) 14:51:00ID:???
>>831
830じゃないけどガタガタうるせえぞボケ
答えられないくせに調子に乗るな!
0833nobodyさん2009/08/26(水) 14:51:12ID:???
学校の宿題でしょ
0834nobodyさん2009/08/26(水) 14:53:46ID:???
>>830 >>832

>>1 読め
0835nobodyさん2009/08/26(水) 15:02:50ID:???
なんじゃこりゃwwwほんとに学校の宿題みたいなかんじだなw
0836nobodyさん2009/08/26(水) 15:21:11ID:???
どこのスレにも狂犬みたいなやつがいるな。
0837nobodyさん2009/08/26(水) 15:25:12ID:???
>>833-836
答えられない癖に煽りは一人前wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
きめえwwwwwwwwwwwwww
08388302009/08/26(水) 15:25:13ID:6QIN4yeN
すみません、sageてはいけないんですね。

丸投げすぎてすみませんorz
テーブルはそれぞれ分かれています。日付=torokubi が抜けてました。
日付はtorokubiに
始値はopenに・・といった具合です。すみませんがよろしくお願いします。
0839nobodyさん2009/08/26(水) 15:28:33ID:???
ここは丸投げスレじゃなくて質問スレなのでお間違えないように
0840nobodyさん2009/08/26(水) 15:29:16ID:???
>>839
氏ねクソ
0841nobodyさん2009/08/26(水) 15:30:21ID:???
>>839
じゃあなんで>>345は答えてもらえてるのか回答よろ
0842nobodyさん2009/08/26(水) 15:31:40ID:???
とんでもない基地外がやってきたな...。
0843nobodyさん2009/08/26(水) 15:31:50ID:???
>>839
素直に僕は<?php echo "Hello World!!";?>しか書けない初心者ですって言えよ(笑)
どうせお前は回答者になれるほど知識無いんだろ(笑)
08448302009/08/26(水) 15:32:28ID:6QIN4yeN
あ、あと何がしたいかっていうとですね

もともと最新値は自分で入力していくんですが、過去分を証券会社からDLしてきて、
それを表示する&(間違いとかあれば)修正したり出来るページを作りたいのです。
新規に入力できたり、DBにあるデータを表示するPHPのページは出来てるんですが
アップロードのとこがわかりませんorz
0845nobodyさん2009/08/26(水) 15:32:58ID:???
830っていい奴だね
誰か答えてみろよ
0846nobodyさん2009/08/26(水) 15:34:33ID:???
おれが回答してやる。
phpでプログラム書いて読み込むんだ
0847nobodyさん2009/08/26(水) 15:41:41ID:???
質問してる人が ああいう人に文句言えばいいとおもうんだけどね。

//DB接続略 ファイルアップロードしてファイルに保存部略
$sql = "LOAD DATA INFILE 'example.csv' INTO TABLE kabu (torokubi,open,high,low,close)FIELDS TERMINATED BY ',' LINES TERMINATED BY '\r\n' IGNORE 1 LINES ";
@mysql_query($sql);
0848nobodyさん2009/08/26(水) 15:46:29ID:???
>>847
さっさど書けばいいんだよクズ
0849nobodyさん2009/08/26(水) 15:50:58ID:???
なんで俺がそんな事言われるんだ? おまえ実は質問者だろ。
0850nobodyさん2009/08/26(水) 15:52:39ID:???
>>830
>>847がloaddataでの完璧な例を出してくれているので書くことが無いw

で、質問とは別の話なんだが、そのテーブル構成だと銘柄が判らないぞ?
まさか銘柄毎にテーブルを作るとか考えているわけではないよな?
0851nobodyさん2009/08/26(水) 15:54:55ID:???
無駄レス増やさなくていいからテンプレ守れないのは放置しとけな
あと質問者も煽られたからって荒らさないでID出さないほうで聞いて来い
0852nobodyさん2009/08/26(水) 15:56:21ID:jmEq8MiJ
くだらない質問以前に質問になってない
何がしたいの?
08538302009/08/26(水) 16:01:13ID:6QIN4yeN
>>847さん
ありがとうございます、試してみます。
そんなたった1行でできるとは、、、感服です。

>>850
銘柄はいまのところ固定してるんで大丈夫ではありました。
が、実は本当はいります。作り忘れてでしたorz

その他のみなさんもありがとうございました。
糞な質問でスレ消費してすみませんでした。
0854nobodyさん2009/08/26(水) 16:03:06ID:???
>>847
なんで@付けてんの?
0855nobodyさん2009/08/26(水) 16:08:54ID:???
>>853
>データベースはkabu
>テーブルはそれぞれopen,high,low,close です。

テーブルがkabuで列がopen,high,low,closeの間違いだよね?
それなら>>847さんの例で平気だけど。

こういう時はDBのテーブル構成も明記しておいたほうがいいよ。
0856nobodyさん2009/08/26(水) 16:10:13ID:???
おまじないだよ
0857nobodyさん2009/08/26(水) 18:23:09ID:4ml6a4mF
php5.3とphp6どっちから始めてらいいのか教えろ
0858nobodyさん2009/08/26(水) 18:42:21ID:???
5.3です
0859sage2009/08/26(水) 19:31:41ID:???
下記のファイルの権限を変更したくて
-rwxrwxrwx 1 apache apache 4852374 8月 26 19:29 hogehoge
下記のPHPを実行したんですが変更されません。
<?php
chown("hogehoge", root);
?>
構文間違ってます?
0860nobodyさん2009/08/26(水) 19:36:29ID:???
http://jp2.php.net/manual/ja/function.chown.php
0861sage2009/08/26(水) 19:48:55ID:???
>>860
<?php
$dir = "/var/www/html/";
$path = $dir . "hogehoge";
$username = "root";
chown($path, $username);
?>
これでもダメだった。
もうお手上げ。
0862nobodyさん2009/08/26(水) 19:54:08ID:???
>>858
じゃあ5.3使うとするか
0863nobodyさん2009/08/26(水) 19:54:17ID:???
説明
bool chown ( string $filename , mixed $user )

ファイルfilename の所有者を(名前または番号で指定した) ユーザuser に変更しようと試みます。 スーパーユーザのみがファイルの所有者を変更できます。


注意: この関数では、 リモートファイル を使用することはできません。これは、処理されるファイルがサーバのファイルシステムによりアクセスできる必要があるためです。

注意: セーフモード が有効の場合、PHP は操作を行うファイル/ディレクトリが実行するスクリプトと同じ UID (所有者)を有しているかどうかを確認します。
0864nobodyさん2009/08/26(水) 19:54:50ID:eFQ12b2O
なんでもいいから実用できる軽量テンプレートエンジンがあったら教えろ
0865sage2009/08/26(水) 20:06:20ID:???
>>863
条件は満たしてる気がするんだが…
0866nobodyさん2009/08/26(水) 20:07:11ID:???
>>864
http://pc11.2ch.net/test/read.cgi/php/1158647441/
0867nobodyさん2009/08/26(水) 20:13:27ID:eFQ12b2O
なんで俺がそのスレで聞きに行かないといけないんだバカ
>>1はちゃんと読んだぞ
0868nobodyさん2009/08/26(水) 20:19:31ID:???
じゃあSmarty
はい終了
0869nobodyさん2009/08/26(水) 20:55:39ID:???
>>867
>・ 質問者として、態度をわきまえること。
どう考えてもこれ読んでないだろ。
0870nobodyさん2009/08/26(水) 21:06:28ID:eFQ12b2O
敬語で質問しろと書いてないだろボケ
0871sage2009/08/26(水) 21:10:00ID:???
敬語で質問しろとは書いてないけど態度はわきまえてない
0872sage2009/08/26(水) 21:30:51ID:???
夏の終わりにはこういうの増えるね
学校を前にすると不安になるからなのかね
0873nobodyさん2009/08/26(水) 22:15:36ID:eFQ12b2O
きめえ
0874 ̄ ̄ ̄ ̄ ̄\/ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄2009/08/26(水) 22:29:35ID:1j0SUHbG
.__________
|| // //         |
||    / ̄ ̄ ̄ ̄\ . |    / ̄ ̄ ̄ ̄\
||   (  人____) |   (          )   
||     |ミ/  ー◎-◎-)|   (ヽミ        |   
||    (6    ゜(_ _) )|.  ( 6)        |    
||  __| ∴ ノ  3  )|  (∴ \____ノ_
|| (_/.\_____ノ |   >--(っ___□__)
|| / (   ))    ))ヽ|  (  ))     |三| ヾ
. ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄   |  ||========[]===|)
                    |_||  | ̄ ̄ ̄ ̄ ̄|
                  (_)\|三三三三三|
                   (:::::::::::::::::::::y:::::::::ノ)\
                    |:::::::::::::::::::::|:::::::::|   |
0875nobodyさん2009/08/26(水) 23:09:41ID:???
またかわいそうな子供がいるのか。
0876nobodyさん2009/08/26(水) 23:11:51ID:eFQ12b2O
はいはい
てめえらの知識不足ってやつね
あとsmartyは軽量ではないからな、無知は痛いね(苦笑)
0877nobodyさん2009/08/26(水) 23:14:40ID:???
>>876
>【その他諸注意】
>・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0878nobodyさん2009/08/26(水) 23:22:00ID:???
キチガイ涙目w
0879nobodyさん2009/08/26(水) 23:34:45ID:???
pear くらいならいいんじゃない?

ただのライブラリでしょ。
標準からは一歩下がったところだけど、いまはもう
デファクトスタンダードになっていると覆う。
0880nobodyさん2009/08/26(水) 23:35:36ID:???
pearなんていまだに動かない鯖もあるぞ
0881nobodyさん2009/08/26(水) 23:57:37ID:???
んなあほな
実態はただのPHPファイルだよ
0882nobodyさん2009/08/27(木) 00:17:36ID:???
javascriptのライブラリみたいなものか
0883nobodyさん2009/08/27(木) 00:40:52ID:???
そういえば最近仕事でhtmlテンプレートっていうテンプレートを使ってるシステムの手直ししたな
軽くて小さくて単純ってのはわかるが、故に難しかった
後、うどん屋とか焼肉屋とか、そんな感じの名前のフリーのシステムを使ってたのもあったなぁ
軽くて小さくて簡単なのはわかるけど、マイナーで深い使い方が出来ない分、意外と苦労した
0884nobodyさん2009/08/27(木) 00:44:00ID:???
>>880
レンタルサーバーでも、自分でディレクトリ入れてincludeすればそれで動くこと多いよ
0885nobodyさん2009/08/27(木) 01:43:48ID:eQsuAF/T
PHP4と5はどっちがいいの?
0886nobodyさん2009/08/27(木) 01:44:20ID:???
今なら6
0887nobodyさん2009/08/27(木) 02:02:52ID:eQsuAF/T
いやいや6なんてないでしょ?
オブジェクト的なのが変わっただけ?
0888nobodyさん2009/08/27(木) 02:05:17ID:???
存在するにはする開発段階だけど
PHPサイドはもう4は使うなとアナウンスしてるので5にしときな
0889nobodyさん2009/08/27(木) 02:13:48ID:eQsuAF/T
thx
5って分家的な感じだと思ってた
0890nobodyさん2009/08/27(木) 02:29:41ID:???
>>887
お前は何を言ってるんだ
0891nobodyさん2009/08/27(木) 08:47:53ID:???
>>876
http://pannkaka.txt-nifty.com/upload/manual.html

下らない質問スレなんだからこんなんでいいだろ。
0892nobodyさん2009/08/27(木) 11:08:49ID:???
>>886=>>890

正式版でもないのにPHP6なんて使うのは可笑しい
0893nobodyさん2009/08/27(木) 11:59:29ID:AzGLOn1y
http://www.pachiweb.com/updir/data/1111.jpg

for関数はこのように入れ子構造で使う事は可能なのでしょうか?
0894nobodyさん2009/08/27(木) 12:21:28ID:???
なんで画像で質問すんの?
ここにコード書けよ
バカなの?
0895nobodyさん2009/08/27(木) 12:23:49ID:???
お前らkandaMAXって知ってる?
0896nobodyさん2009/08/27(木) 12:26:54ID:???
>>893
できる

>>894
スルーしろ

>>895
しらん
0897nobodyさん2009/08/27(木) 12:28:28ID:AzGLOn1y
>>894
すいません、コード抜き出すと300行ぐらいになるので
このようにした方がわかりやすいと思いました。
ちょっと投稿レベル低すぎるようなのでくだスレの方に
書き込みたいと思います、ありがとうございました。
0898nobodyさん2009/08/27(木) 12:39:51ID:???
>>893
今日一番笑えた
サンクス
0899nobodyさん2009/08/27(木) 12:43:12ID:AzGLOn1y
何度もすいません、
ちょっと過疎ってるようなので
こちらに再度書き込ませて頂きたいと思います。

http://www.pachiweb.com/pachiweb/pachiweb.html
↑掲示板のように
http://www.pachiweb.com/updir/data/2222.jpg
↑ログをhtml出力したいと思い
http://www.pachiweb.com/updir/data/1111.jpg
↑このような構文を考えました。

ログには
$threadno,$responseno,$last,$now,$name,$email,$sub,$model,$com,$host,$pass,$ext,$W,$H,$tim,$chk,\n
このようになっており$lastはスレッドの最終書き込み判定です。
そして、上記構文で実行したところ処理が永久ループし始めました。
もうちょっとシンプルで頭の良いやり方などありましたら
教えて頂けませんでしょうか?
0900nobodyさん2009/08/27(木) 12:49:35ID:???
>>899
同じパターンの入れ子を考えるときは、再帰的な構造を考える
そうすればシンプルなものが書ける

再帰とは - はてなキーワード
http://d.hatena.ne.jp/keyword/%BA%C6%B5%A2
0901nobodyさん2009/08/27(木) 13:04:16ID:???
まじでコードは書けよ
画像に映ってるものをそのまま書けばいいだろ
0902nobodyさん2009/08/27(木) 13:07:12ID:???
すいません、紹介頂いたサイトの他に
検索などして見回ってきたのですが今一イメージが掴めません。
言葉だけでも結構なので上記構文を元にお教え頂けると幸いです。
効率よいログ自体の変更例もお教え頂けるとありがたいです。
0903nobodyさん2009/08/27(木) 13:07:41ID:???
>>902

>>901
0904nobodyさん2009/08/27(木) 13:11:52ID:???
指摘する人に、画像みて文字を打ってもらう気ですか?
面倒だから回答もらえないんだよ。
0905nobodyさん2009/08/27(木) 13:13:01ID:???
http://haruka-yumenoato.info/txt/comic/src/F2039.txt
失礼しました、上記が独自関数内容になります。
0906nobodyさん2009/08/27(木) 13:14:12ID:???
>>903->>904
すいません>>902書きこんだ直後から
txt上げれるアップローダー探したりしてました。
0907nobodyさん2009/08/27(木) 13:35:22ID:???
>>905
段の表示や画像表示だったりのある程度の共通部分は、別functionに。
0908sage2009/08/27(木) 13:36:50ID:???
なぜわざわざうpろだ使うのか意味がわからない
リンク先たどるの面倒だろ
何度もいうが普通に書け
0909nobodyさん2009/08/27(木) 13:47:14ID:???
>>907
そうしたいと思います、
アドバイスありがとうございます。

>>908
過去2chでコード書いた時に
改行制限やらtab要素消去ですごく苦労したので
今回のようにさせてもらいました。
>>905でも駄目でしょうか?
0910nobodyさん2009/08/27(木) 13:47:25ID:???
>>899
一度CSVをスレッドごと,レスごとに連想配列に入れてから
forかforeachで回して表示した方がいいんじゃない?

ページはページング処理したいんだろうから多分別の処理になると思うけど
0911nobodyさん2009/08/27(木) 13:53:04ID:???
910だけどごめんあんまコード読んでなかった
要は処理部と表示部を分けたほうがいいよということ
そのほうがデバッグもしやすい
0912nobodyさん2009/08/27(木) 13:54:06ID:???
>>910
まさに今同じ事を考えていました・・・・
やはりその肯定を最初にやらないと駄目ですよね。
前述した処理でそれが出来ていると思っていたのですが
多分まったく出来てないですよね。

実は今回何故このようにしたかといいますと
futaba.phpと言う掲示板は
スレッド番号とスレッド内のレス番号を改行で区切ったログと
そのスレッド番号がついた書き込みログの2つに分けたphpだったので
それを1つにまとめたいと思ったのが原因でした。

1つにすると処理速度大幅に遅くなったりするのでしょうか。
皆様、一度>>910さんの言うとおりの方法でやってみます、
ちょっと帰り遅くなりますがアドバイス頂ければ
また返信させていただきます。
本当にありがとうございました。
0913nobodyさん2009/08/27(木) 14:13:00ID:MqB1vJcx
おいカスども今日も来てやったぞありがたく思え
トラックバック送信ライブラリを教えろ
0914nobodyさん2009/08/27(木) 14:30:35ID:???
http://pear.php.net/package/Services_Trackback
0915nobodyさん2009/08/27(木) 14:48:11ID:???
>>905
241行目のページング処理のループ、$i使わない方がいいんじゃね
今は一番外のループ(7行目)が1回しか回らないし問題なさそうだけど
0916nobodyさん2009/08/27(木) 15:07:11ID:MqB1vJcx
>>914
ありがとうございます
0917nobodyさん2009/08/27(木) 16:59:31ID:4gKJtMw/
おいてめえら今日2度目の質問だぞ、気合い入れてよく聞けや
php5.3から実装された新機能の解説をしているサイトを教えろ
0918nobodyさん2009/08/27(木) 17:03:18ID:???
>>917
ggrks
http://www.google.co.jp/search?hl=ja&q=php5.3+%90V%8B@%94\&btnG=%8C%9F%8D%F5&lr=lang_ja
0919 ◆83yIjoTVFM 2009/08/27(木) 17:18:17ID:???
モバイルでexcelファイルをダウンロードさせたいんだけど
以下の状況で困ってるので知恵を貸して!

xlsファイルに直リンすると
softbank(911T)はexcelファイルとしてダウンロード>表示ができた
au「表示できないファイルです」
docomo(N904i)端末はバイナリがそのまま文字として出力された

あとobjectタグとかもあるっぽいけど
docomoだとダメみたいなので
auとdocomoでのダウンロードのさせかたを教えてほしい

ゆくゆくはoffice系のファイルを全部ダウンロードできるようにしたいけど
とりあえず
httpd.confに
AddType application/vnd.ms-excel .xls
を設定してある

0920 ◆83yIjoTVFM 2009/08/27(木) 17:20:17ID:???
あ、
上のはphpの関連性がないけど

今テストとしてxlsに直リンしてて
PHPで書いた内部パスひっぱってダウンロードさせるスクリプトを使いたいので
まずは生ファイルでという段階です

ということでここでの質問をお許しください・・
0921nobodyさん2009/08/27(木) 17:24:31ID:???
スレタイ嫁
09229192009/08/27(木) 17:48:24ID:GXwqUg2e
トリップとまちがえてました
>>921
thx!
0923nobodyさん2009/08/27(木) 17:56:21ID:???
モバイルはわからんから間違ってるかもしらんけど

<?php
header('Content-type: application/download');
header('Content-Disposition: filename="filename.xls"');
?>
0924nobodyさん2009/08/27(木) 18:27:42ID:???
>>923
ありがとうございます
Webのほうでもきいてみます!
0925nobodyさん2009/08/27(木) 18:47:49ID:BfJOagLT
phpスクリプトの中にperlスクリプトを書くことができますか?
0926nobodyさん2009/08/27(木) 18:51:38ID:???
できるよ
0927nobodyさん2009/08/27(木) 19:09:37ID:???
どうやって書くんですか?動きますか?
0928nobodyさん2009/08/27(木) 19:16:32ID:???
PECL-Perl
0929nobodyさん2009/08/27(木) 19:44:07ID:???
なぜIDを隠すの?
0930nobodyさん2009/08/27(木) 20:03:21ID:???
質問者じゃないから
0931nobodyさん2009/08/27(木) 23:17:09ID:qnE7rLil
         ______ 
       ,;i|||||||||||||||||||||||||||||||ii;、         _/
     /||||||||||||||||||||||||||||||||||||||ii;、        \
  / ̄ ̄\||||||||||||||||||||||||||||||||||||ii;゙ヽ,      /
'" ̄ヽ     ヽ!!||||||||||||||||  ||||||||||!!"ヘ     <  ロマンティックageるよ
ヽ          ゙!!!||||||||||||  |||||||!!   iヽ── /
|||l            ゙゙ヽ、ll,,‐''''""     | ヽ|||||||||ロマンティックageるよ
|||l     ____   ゙l   __   \|||||||||  
||!'    /ヽ、     o゙>┴<"o   /\   |'" ̄| ホントの勇気 見せてくれたら
\  /  |ミミヽ──‐'"ノ≡- ゙'──''彡| |、 |   |
   ̄|    |ミミミ/" ̄ 、,,/|l ̄"'''ヽ彡|| |、/   / ロマンティックageるよ
 ヽ、l|    |ミミミ|  |、────フヽ |彡l| |/  /_
  \/|l    |ミミミ| \_/ ̄ ̄フ_/  |彡|l/    ̄/ ロマンティックageるよ
  \ ノ   l|ミミミ|  \二二、_/  |彡|      フ  
    ̄\  l|ミミミ|    ̄ ̄ ̄  |メ/       \トキメク胸に キラキラ光った
    | \ ヽ\ミヽ    ̄ ̄"'  |/        /
    /  \ヽ、ヾ''''ヽ、_____//       /_夢をageるよ
  /  ヽ ゙ヽ─、──────'/|         ̄/
. /       ゙\ \     / / \__
   ───'''" ̄ ̄ ゙゙̄ヽ、__,,/,-'''" ̄   ゙''─
0932nobodyさん2009/08/28(金) 10:25:35ID:9RiD+7YO
PHP.INIに日本語のコメント付けても大丈夫ですか?
0933nobodyさん2009/08/28(金) 10:32:11ID:9RiD+7YO
5.2.10ですけど、あ、なんかコメントと改行のみの業を全部消したら175行に収まったんですけどこんなに少なかったんです
0934nobodyさん2009/08/28(金) 10:35:23ID:???
なぜ消したし
0935nobodyさん2009/08/28(金) 10:40:04ID:???
消しちゃったらまずいですかね?
コメント消したのはすぐ目的の個所をいじりやすかったからなんです
0936nobodyさん2009/08/28(金) 10:46:16ID:???
コメントなんだから消しても平気
0937nobodyさん2009/08/28(金) 10:54:10ID:???
検索使えよ
0938nobodyさん2009/08/28(金) 11:01:53ID:9RiD+7YO
毎回設定帰るたびに検索→修正ってめんどくさくないですか?
0939nobodyさん2009/08/28(金) 11:05:20ID:0tCfU1Pn
俺はEclipseに、php.iniをxml形式で設定できるように修正してる
0940nobodyさん2009/08/28(金) 11:07:14ID:???
>>938
175行あったら1画面に収まらないから、結局目的の箇所を探すわけだろ?
それなら検索するのと手間は変わらないと思うけど?

あとそんなに頻繁に設定変える必要があるのか?
そしてその設定項目はphp.iniじゃないと設定できない項目なのか?
頻繁に変えるなら、.htaccessとかini_setじゃ駄目なの?
0941nobodyさん2009/08/28(金) 11:14:14ID:???
             /)
           ///)
          /,.=゙''"/   
   /     i f ,.r='"-‐'つ____   こまけぇこたぁいいんだよ!!
  /      /   _,.-‐'~/⌒  ⌒\
    /   ,i   ,二ニ⊃( ●). (●)\
   /    ノ    il゙フ::::::⌒(__人__)⌒::::: \
      ,イ「ト、  ,!,!|     |r┬-|     |
     / iトヾヽ_/ィ"\      `ー'´     /

0942nobodyさん2009/08/28(金) 11:21:58ID:???
>>932
php-5.3.0/Zend/zend_ini_scanner.l
<INITIAL,ST_VALUE,ST_RAW>{TABS_AND_SPACES}*[;][^\r\n]*{NEWLINE} { /* Comment */
<INITIAL>{TABS_AND_SPACES}*[#][^\r\n]*{NEWLINE} { /* #Comment */
ということで問題ない
0943nobodyさん2009/08/28(金) 11:30:00ID:???
>>940
言いたい気持ちはわかるが
コメント消すくらいでそんなに目くじらたてることもなかろう。

ini_setが便利なのは確か。
0944nobodyさん2009/08/28(金) 11:35:29ID:???
>>943
言葉が悪かったか、スマン。
別に目くじらたてたわけじゃないよ。
0945nobodyさん2009/08/28(金) 11:40:03ID:???
目くじら立てるっていうか本人のことを思いやってアドバイスしてるんだけど
まぁ別に本人がいいっていうならいいんじゃね
0946nobodyさん2009/08/28(金) 11:45:07ID:???
今時一画面でおさまらない奴なんているの?w
0947nobodyさん2009/08/28(金) 11:49:20ID:???
>>946
24インチのフルHDのディスプレイを縦にして使ってるけど175行も表示できない・・・
0948nobodyさん2009/08/28(金) 11:54:34ID:???
ini_setが便利とかどんだけ池沼なんだよ
設定弄って再起動したほうが早いだろ
0949nobodyさん2009/08/28(金) 14:28:11ID:IryiXPVo
$keyword = "ああああ";
$treelog = file(TREEFILE);
$log = file(LOGFILE);
$threadcount = count($treelog);//スレッド数をカウント
for($i=0; $i<$threadcount; $i++){
$writing = explode(",", $treelog[$i]);
$writingcount = count($writing);
for($j=0; $j<$writingcount; $j++){
list($no,$now,$name,$email,$sub,$model,$com,$host,$pwd,$ext,$w,$h,$time,$chk) = explode(",", $writing[$j]);
if(mb_ereg_match($keyword,$com)){
$hit = TRUE;
}
}
if($hit == TRUE){
$hitthreadline .= "$i\n";
$hit = FALSE;
}
}
echo "$hitthreadline";
0950nobodyさん2009/08/28(金) 14:34:00ID:???
はじめまして。
携帯で見るページで↓のようなコードでPOST渡しの情報をezwebでやりとりしようとすると、var_dump($_POST)が空になるのですが…どこがわるいのやらわからない。
GETメソッドにするとちゃんとFORMの中身が渡ってるのですがGETにはURL長制限があるので…いい方法ないでしょうか

<html>
<head>
<title>post.php</title>
</head>
<body>
<?php
echo "POSTs:<br>";
var_dump($_POST);
echo "Requests:<br>";
var_dump($_REQUEST);
?>

<form method="POST" action="http://hoge.hoge/~hoge/post.php" >
<textarea name="message" raws=8 cols=12 >post </textarea>
<input type="hidden" value="test" />
<input type="submit" />
</form>
</body>
</html>
09519502009/08/28(金) 14:35:09ID:FUKcT0P8
まずい、>>950sageちゃいました、すいません
0952nobodyさん2009/08/28(金) 14:39:06ID:???
>>950
http://oshiete1.goo.ne.jp/qa929533.html
0953nobodyさん2009/08/28(金) 14:40:02ID:IryiXPVo
TREEFILEはスレッド順に並んだログ番号ファイルで
1,3,4\n
だとLOGFILEの記事番号1番がスレッド記事、3&4番がレス記事になります。
記事内のコメントにキーワード文字が含まれてる場合、
そのスレッドツリー丸ごと1行分を$hitthreadlineに
該当したスレッド分格納したいのですが
どうも上記プログラムを実行すると$hitthreadlineに
何も挿入されておりません。
ログの方にはキーワードを含まれた分があるのですが・・・・

何かおかしいところあるでしょうか?
0954nobodyさん2009/08/28(金) 14:41:47ID:IryiXPVo
明らかにおかしかった部分は書き直しましたがまだ先程と動作変わりません。
文章は>>953です。

$keyword = "ああああ";
$treelog = file(TREEFILE);
$log = file(LOGFILE);
$threadcount = count($treelog);//スレッド数をカウント
for($i=0; $i<$threadcount; $i++){
$writing = explode(",", $treelog[$i]);
$writingcount = count($writing);
for($j=0; $j<$writingcount; $j++){
$rrrr = $writing[$j];
list($no,$now,$name,$email,$sub,$model,$com,$host,$pwd,$ext,$w,$h,$time,$chk) = explode(",", $log[$rrrr]);
if(mb_ereg_match($keyword,$com)){
$hit = TRUE;
}
}
if($hit == TRUE){
$hitthreadline .= "$i\n";
$hit = FALSE;
}
}
echo "$hitthreadline";
0955nobodyさん2009/08/28(金) 14:45:50ID:???
1行ごとに値をチェックしてみ
0956nobodyさん2009/08/28(金) 14:46:48ID:???
>>954
そんなコードじゃコピペしてすぐ試せないだろクズが!
define使わないで書けやできそこない
0957nobodyさん2009/08/28(金) 14:50:40ID:IryiXPVo
>>955
やってみます、ありがとうございます。

>>956
昨日と同じ方ぽいのですが
外部ロダにあげるなやらちょっと無茶すぎやしませんか。
昨日言われたとおりにここにわざわざ書き込んだのに。
結局ログ自分で用意しないといけないから
defineも糞もないと思うんですが。
0958nobodyさん2009/08/28(金) 14:54:10ID:???
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)

ヌルーしとけー
0959nobodyさん2009/08/28(金) 14:56:26ID:???
>>957
$treelog = file(TREEFILE);
$log = file(LOGFILE);
$treelog = file(TREEFILE);
$log = file(LOGFILE);
$treelog = file(TREEFILE);
$log = file(LOGFILE);
$treelog = file(TREEFILE);
$log = file(LOGFILE);
$treelog = file(TREEFILE);
$log = file(LOGFILE);
$treelog = file(TREEFILE);
$log = file(LOGFILE);
$treelog = file(TREEFILE);
$log = file(LOGFILE);
0960nobodyさん2009/08/28(金) 15:04:57ID:IryiXPVo
>>958
すいません、気をつけます。

>>959
?
0961nobodyさん2009/08/28(金) 15:11:41ID:???
$treelog = file("./treefile.txt");
$log = file("./logfile.log");

みたいに書きなおせ氏ね
0962nobodyさん2009/08/28(金) 15:17:29ID:???
・ 質問者として、態度をわきまえること。
0963nobodyさん2009/08/28(金) 15:19:00ID:???
>>957
>結局ログ自分で用意しないといけないからdefineも糞もないと思うんですが。


日本語でおk
お前が用意しろよ
コピペして動かないだろバカなの?
0964nobodyさん2009/08/28(金) 15:21:50ID:???
・ 回答者として、態度をわきまえること。
0965nobodyさん2009/08/28(金) 15:22:09ID:???
残念だけどここは抽象的なことを抽象的に返す場所で
具体的な答えを求めてもかえって来ないよ
わからんから
0966nobodyさん2009/08/28(金) 15:29:40ID:???
ID:IryiXPVoスルー推奨
0967nobodyさん2009/08/28(金) 15:33:37ID:???
http://www.kent-web.com/pubc/book/test/uploader/uploader.cgi?
の2323に一式あげてみました、
失礼しました。
0968nobodyさん2009/08/28(金) 15:47:15ID:???
>>954
本題と関係ないんだけど、
$log[$rrrr]ってことはログ番号=ログファイル内での行番号ってこと?
ログファイルに(バグとか手修正で)意図しない行が追加/削除される
だけで破綻するんじゃないか?
0969nobodyさん2009/08/28(金) 15:49:04ID:???
DB使えば?
0970nobodyさん2009/08/28(金) 15:51:17ID:???
>>967
今北けど一言でいうとどうしたいの?
09719542009/08/28(金) 15:54:25ID:IryiXPVo
データベース覚えるとまた時間かかるので
とりあえず基礎技術だけ覚えるために
ログからの書き出しで行こうと思いました。
ファイル読む過程中ロックかけても駄目でしょうか?
09729542009/08/28(金) 15:56:35ID:IryiXPVo
>>970
ああああを含む書き込み番号を後で出力するために
変数に格納したいのです。
09739542009/08/28(金) 16:01:07ID:IryiXPVo
あげたphpの8行目の書き方間違えてるようですね・・・・
どうなおしたらいいんだろう。
0974nobodyさん2009/08/28(金) 16:08:37ID:???
8行目間違えてるってなんで?
0975nobodyさん2009/08/28(金) 16:09:40ID:???
>>972
<?php
$keyword = "ああああ";
$log = file("img.log");
$hit = array();
foreach ($log as $value) {
$tmp = explode(",", $value);
if (preg_match("/^".$keyword."$/", $tmp[6])) {
$hit[] = $tmp[0];
}
}
var_dump($hit);
?>
こういうこと?
09769542009/08/28(金) 16:18:52ID:IryiXPVo
>>974
1行ずつ出力したら思った行動と違う結果が出てきたんです。
ちょっとその部分見つけた後いじりすぎてどこが間違ってたか
具体的に説明できないのですが。

>>975
記事部分だとそうなのですが
欲しいのはツリー部分の該当列番号なんです。
その9番記事が格納されている
ツリーログの0含めて3番目が出力されるのが正解だと思います。
説明足らずですいません。
0977nobodyさん2009/08/28(金) 16:21:49ID:???
>>976
<?
header("content-type:text/plain;charset=euc-jp"); $keyword = "ああああ";
$treelog = file("./tree.log");
foreach(file("./img.log") as $line){
$tmp = explode(",", $line);
$log[$tmp[0]] = $tmp;
}
$threadcount = count($treelog);//スレッド数をカウント
for($i=0; $i<$threadcount; $i++){
$writing = explode(",", $treelog[$i]);
$writingcount = count($writing);
for($j=0; $j<$writingcount; $j++){
$rrrr = trim($writing[$j]);
if(mb_ereg_match($keyword,$log[$rrrr][6])){
$hit = TRUE;
}
}
if($hit == TRUE){
$hitthreadline .= $i;
$hit = FALSE;
}
}
echo "$hitthreadline";
?>
こんな感じか?
できるだけそのまま書いてみた。
09789772009/08/28(金) 16:22:32ID:???
>>977
header("content-type:text/plain;charset=euc-jp");
は無視してちょ...。
09799542009/08/28(金) 16:25:49ID:IryiXPVo
>>977
そうです、その動作です。
間違ってると思ってた8行目の動作はあっておりました、すいませんでした。
ちょっと回答ログ見直してどこがおかしかったか見直してみます。
09809542009/08/28(金) 16:28:02ID:IryiXPVo
肝心のお礼忘れておりました、
本当にありがとうございました。
これで前進できそうです。
09819542009/08/28(金) 16:48:59ID:IryiXPVo
申し訳ありませんが最後にもう一つ教えて下さい。
$rrrr = trim($writing[$j]);
ここで空白が入ってうまくいってなかったようなのですが
$writing = explode(",", $treelog[$i]);//1スレッド分の記事番号を$writingに格納
ここで配列に格納したはずなのになぜ空白が入る余地があるのでしょうか?
09829542009/08/28(金) 16:50:11ID:IryiXPVo
$rrrr = $writing[$j];修正前
$rrrr = trim($writing[$j]);修正していただいた後

補足を
0983nobodyさん2009/08/28(金) 16:56:25ID:???
>>982
空白?については判らないけど、
trimなしでうまくいかなかったのは、fileで読み込むと改行コードも入るからだよ。
たとえば、1行目の「18」は実際には「18<改行コード>」になっていた。

$log[$rrrr]は、$log[18]ではなく$log[18<改行コード>]を取得しようとしたが、そんな要素はないので。
それと$logのキーの問題の2箇所がまずかった。
0984nobodyさん2009/08/28(金) 17:03:01ID:???
>>980
とりあえずお礼ついでに次スレたのんだ
0985nobodyさん2009/08/28(金) 17:05:23ID:???
     __      _____  r―‐┐┌――┐         _
  / ∠___,  |______ | /_/7 /  7 厂| | く\     ||
  l   ___  |         | | _/ 〈_ L/ [_|   ヽ」┌─┘└─┐
  | |___| | ____| | | 口 口 | /Z_冂_ 〈\.└─┐┌┐│
  l   ___  | |         | | 口 口 l〈_,r┐┌┘ \/__| L_」 |_
  | |___| | | | ̄ ̄ ̄ ̄ |┌ー┐|┌ ┘└┐   |__  ___|
  l   ___  | | |         ||   ||└ ┐┌┘  / 〉   / \
  | |___| | | ヽ____/| ||   ||   | |   / /  //\ \__
  l______| ヽ_____ノ |.」   [__|   |_.」  く_/ く_/   \_ノ
  _             _       _        _
  | |        __| |__     | |      __| |__
  | |         |__  __|   | |        |__  __|
  | |        __| |__     | |         | |  __
  | |         |__  __|   | |         | | └─‐┘
  | |    _   ___| |_       | |    _   / /
  l ヽ__/ |  /┌┐ _ \   l ヽ__/ |   / /  |ヽ___
   \__/   ヽ、二__ノ  ヽ/     \__/ ∠_/  `ー――'
0986nobodyさん2009/08/28(金) 17:06:54ID:???
俺がスレ建てるから待ってろ
0987nobodyさん2009/08/28(金) 17:12:21ID:???
hore

【PHP】下らねぇ質問はID出して書き込みやがれ 87
http://pc11.2ch.net/test/read.cgi/php/1251447028/
0988nobodyさん2009/08/28(金) 17:13:33ID:???
>>986
コピペしたままはろうとすると専ブラじゃ制限にかかるようにみえるが
きっちり32ラインになるようにテンプレ作られてるんだよ
>過去スレ、関連スレ、FAQなどは>>2-10辺り
これを抜かすのは関心しないな
どうせ削るなら誰も使ってない質問用テンプレ消せばよかったのに
09899542009/08/28(金) 17:15:34ID:IryiXPVo
ご説明ありがとうございます、
お礼にスレ立てしようとしたんですがp2だと
ちょっとスレ立て項目見当たらないので
少しお待ちください、検索続けてみます。
0990nobodyさん2009/08/28(金) 17:16:35ID:???
>>989
もう>>986が立てたからいらないよ
09919542009/08/28(金) 17:16:54ID:IryiXPVo
ああ、立ってた。
0992nobodyさん2009/08/28(金) 17:20:00ID:???
>過去スレ、関連スレ、FAQなどは>>2-10辺り

別にこんなの見ないしどうでもいいに一票入れとく
0993nobodyさん2009/08/28(金) 17:22:22ID:???
姉妹スレDAT落ちじゃん
0994nobodyさん2009/08/28(金) 17:23:45ID:???
えー・・・
過去・関連スレはともかく
関連リンクやFAQは重要じゃないか
0995nobodyさん2009/08/28(金) 17:24:34ID:???
その一文自体は要らないだろ
0996nobodyさん2009/08/28(金) 17:25:36ID:???
書くなら>>1にかかないと意味ないしな
0997nobodyさん2009/08/28(金) 17:26:34ID:???
いる
>質問者はまず>>1を良く読むこと(必須!)
>次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
だけだと>>1にしか目がいかない
0998nobodyさん2009/08/28(金) 17:41:49ID:???
普通、質問する前に過去スレ過去ログを調べるのが当たり前だから不要
0999nobodyさん2009/08/28(金) 17:44:11ID:???
| 1.文字コードは何を使えばいいの?
| →1.UTF-8 2.EUC-JP のどちらか。迷うようなやつはShift_JISは使っちゃダメ。

今ならもう UTF-8 のみでいいのでは
1000nobodyさん2009/08/28(金) 17:45:36ID:???
>>998
そりゃお前の普通だろw

1000GET
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。