1 :
nobodyさん :
04/09/16 18:17:37 ID:/HV017tY
2 :
nobodyさん :04/09/16 18:18:23 ID:/HV017tY
990 名前:nobodyさん :04/09/16 18:05:43 ID:??? 最近PHPを他人のプログラム見ながら勉強してます。 非常に初歩的な質問スマソ $test->d->abc この->ってよく見かけるんですけど何ですかこれは? 上記一文は何を表しているんでしょう? 検索エンジンでは調べにくいし・・・ 前スレ質問の続き。しつこくてすんません。 ニュアンス的にはtestの中のdの中のabc、みたいな感じでよろし? データベースなんかの変数指定するときに使うのかな?
4 :
nobodyさん :04/09/16 18:55:34 ID:/3nHM0bK
オブジェクト指向の基礎も見てきた方がいいんじゃないかな。
説明しようとしても、
>>3 が知らないだろう概念が出てくるから。
さわりの部分だけだから、PHPに限らずどんな言語でもいいよ。
関数 or die(); 関数の結果がFALSEだったらorの後ろが実行されるけど 関数の結果がTRUEだったら実行される文法ってある? if文使えっていわずにさ。 関数 and die(); とか試したけどダメだった。
->って何デスカ?って前スレの最初の方にもあったぞ ->でスレ内検索ぐらいしろyp
>>6 !(関数) or die();
つか、おまいさん、この書き方がどういう理屈で動いてるのか理解してないだろ
すいません質問させてください。 mb_strlenを使って日本語2バイト文字も1文字分として取得したいんですが、 なぜか2文字分に数えられてしまうんです・・・ PHPの書籍なんかじゃちゃんと取得できると書いてあるんですが どうすればいいんでしょうか。
>>9 数えてる対象の文字列の文字コードと
mb_internal_encodingで指定してる文字コードは一致してる?
11 :
3 :04/09/16 20:06:06 ID:5ifGdNVO
なんとなく分かりますた。変数をパッケージ化したもの、みたいな 感じだね。
PHPのライブラリをかいたんだけど、インストーラをどうすればよいのかわからん。 インストール用のスクリプトを用意したいのだが、参考になる資料があれば教えてくれ。 または既存のライブラリでよさげなインストーラがついているものを教えてくれ。 おねがいします。
pear のインストーラー最高!
関数のオーバーロードを便宜的に実現したいんだけど何か上手い手法ないかな? デフォルト引数で何とかなる時は勿論使うけど、それじゃ無理な時ね 自分が使う手法は↓みたいなのなんだけどもっと上手いやり方ないかな? ・引数の数が違う時→func_num_args()で引数数によって分岐 function foo(){ switch (func_num_args()) { ..... } } ・引数の数が同じ時→引数の組み合わせを表す引数を追加する function foo($a, $b, $mode){ switch ($mode) { ..... } }
17 :
15 :04/09/16 22:32:04 ID:???
クラスメソッドなら__call()を使う手もあるってことかな? よくわからんが。 ところでビットフラグ立てたらオーバーロードじゃない気がするのは俺だけか
$var= ereg_replace( "\W" ,"" ,$var) ; で英数字以外は $var から削除されるはず・・・ですよね? でも何もマッチしてないってどういうことなんだろう・・・ [Linux & PHP 4.2.2]
20 :
カポコン :04/09/16 23:38:59 ID:???
>>19 んなわけあるか。eregはposixじゃ。
\Wが使いたいならpreg_replace()を使え。
あな〜る
>>21 Perl五巻の正規表現使う時はそっちじゃないとマズーなのですね。
一つ勉強になりますた。
ありがdエロい人!
日本語なら \W だと残念な結果になることも。[^\w] を使いましょう。
[^a-zA-Z]
26 :
nobodyさん :04/09/17 00:52:51 ID:se+yyo+v
ぬるぽ
27 :
nobodyさん :04/09/17 03:10:08 ID:6ekDtRzJ
mod_rewriteでどうよ PHP関係ないけど
>>27 鯖ソフトのマニュアルを読んで質問してんか?
30 :
27 :04/09/17 03:31:08 ID:???
>>28 調べてみたらそれで出来そうです。
ありがとうございました。
>>29 サーバーのマニュアルは読んでいません。
すみません…
31 :
nobodyさん :04/09/17 04:54:53 ID:JPYA0nJm
配布するなら、safe_modeがonでも動くように作らなきゃダメ? みなさんどーしてます?
32 :
nobodyさん :04/09/17 06:39:03 ID:5wQlvbGR
前スレの方ではないのですが、 クラスを利用するメリットを教えて頂けますか? 今のところ所謂「手続き型」での処理しか書いてないのですが、 関数に引数を渡して返り値を受け取るのと メンバ変数を与えててメンバ関数で処理した値を受け取るのと 違いがよくわからず、どういった場面で使ったらいいかわかりません。 「例えばこういった処理ならクラスを使う」といった例があったら 簡単にでも説明して頂けたら、と思います。
>>32 ない。
手続き型でうまく書けるのなら、無理してオブジェクト指向にする必要はない。
手続き型でうまく書けない場面に出会ったら、はじめてクラスを導入すればよい。
おれなら、関数の戻り値を複数返したい場合とか、引数の数が10個ぐらいになると
「クラスを定義してメソッドにしたほうがええなー」と思えてくる。
質問。XMLファイルの中にPHPのコードを埋め込んでいるのだが、 最初の <?xml ...?> の部分でエラーになる。 Parse error: parse error, unexpected T_STRING in example.xml on line 1 さすがに、PHPでXHTMLが扱えんとは思えないのでなんか回避策があると思うのだが 教えてくれ。
普通は逆なんじゃない? PHPの中にXML書くのかと。
>>34 過去に何度も出ているけど・・・。
<?php echo '<?xml version="1.0" ?>' . "\n"; ?>
とするか、
php.ini などの設定で
short_open_tag = Off
にしておけばそのエラーは出ない。
その場合は、<? や <?= という短縮タグは使えなくなるけど。
しつもんさせてください mkdirでディレクトリを作成し、そのディレクトリの中にファイルを作成したいのですが、 どのような方法でできるでしょうか? ご教授よろしくおねがいします。
>>37 釣りか?釣りなんだな?
釣りだと言ってくれ。。orz
釣りじゃないです。。。 perlで出来ることなのですが、PHPではSAFE MODEのエラーで mkdirしたディレクトリに新規ファイルを作ることが出来ないので困ってます。 ちなみにパーミッションは777です。 PHPでは出来ないのですかね?
前スレにも来てなかった? まあがんばれ
&&とandって等価なの? シンタックスシュガー?
ありがとう 現在必死でがんばってます。 もうちょっとで出来そうです。
すいません、質問させて下さい。 Google のように、サーバ上にあるPDFファイルを、 HTMLファイルに変換して表示したいと思っています。 これをPHPを使ってやりたいのですが、 そのためのツールや方法等ご存知の方おられますか? PDFLib は、PDFファイルを生成することはできますが、 PDFファイルからの変換はできないようで…
45 :
:04/09/17 11:24:42 ID:???
前スレで書きましたが。 DBにぶちこんでる、画像データの 縦横サイズの取得方法を教えておくれ。 getimagesize でワーニングが・・・・・。
46 :
45 :04/09/17 11:51:38 ID:???
やりたいことは、DBにいれてる画像の縦横サイズを変更して出力したいってことです。
47 :
nobodyさん :04/09/17 12:27:24 ID:cRQBTDS0
48 :
nobodyさん :04/09/17 12:41:33 ID:goOqcDH1
オブジェクト指向(C++)の本を読んでいたら、 オブジェクト間に関連を持たせる場合、 相手オブジェクトのポインタを、属性として持つ、 と書いてありました。 自分の中で生成した場合は、相手のポインタを保持するのは容易ですが それ以外の場合はどうするのでしょうか?
>>47 入門書見ればできると思う。基本。
PHP+MySQLの入門書でいいんじゃないかな。
52 :
nobodyさん :04/09/17 14:22:01 ID:cRQBTDS0
>>51 どれがオススメでつか?
立ち読みしてみたけど、「検索」とは書いてあるものの、
結局は「キーワード検索」ばっかで
自分の意としている完成形ではないのですが。
53 :
nobodyさん :04/09/17 14:27:14 ID:a6SOcmfZ
PHP5.0.1を使っているのですが、 Perlの「$_ = 1;」 と同じ動作をさせるには、どう書けばよいのでしょうか?
>>52 キーワード検索が出来れば何でも出来るだろ。
キーワードを入力出来るか固定されてるかの差だけだよ。
55 :
nobodyさん :04/09/17 14:52:01 ID:cRQBTDS0
>>52 とは言っても初心者なモンで。
どうやってSQL文と検索項目を増やしていいのか分からない。
56 :
nobodyさん :04/09/17 14:52:47 ID:cRQBTDS0
57 :
45 :04/09/17 14:53:52 ID:???
>>49 お返事ありがとうございます。
$imageにはファイル名でなく
イメージデータが格納されているためということでしょうか?
>>50 お返事ありがとうございます。
imagesx を 49さんが転記してくださってるソースの
$imageにかけてみました。(下記)
$img_x = imagesx($image);
そうしたらワーニング発生・・・・
<b>Warning</b>: imagesx(): supplied argument is not a valid Image resource
$imageに画像がはいっているのでは・・・・
>>55 キーワード検索の場合はフォームのtype=textで入力するタイプだよね。
コンボボックスは<select>で出来るよね。値はどちらもname変数に入る。
検索スクリプトにその値を渡す時点でselectだろうがtextだろうが一緒になるわけです。
複数指定されていれば、SQL文をandで結合していけばいいだけ。
where A=1 and B=2とかね。
59 :
nobodyさん :04/09/17 15:12:31 ID:cRQBTDS0
>>58 親切丁寧にありがd。
とりあえず参考書片手にやってみまつ。
60 :
>>58 :04/09/17 15:22:04 ID:cRQBTDS0
すいません。 質問ついでにもう一つ。 2つのテーブルからデータを1行ずつ 交互に読み出して表示ってできますか? ・TABLEタグのヘッダー ・DBのテーブルAの1行目出力 ・DBのテーブルBの1行目出力 〜略〜 ・DBのテーブルAのn行目出力 ・DBのテーブルBのn行目出力 ・TABLEタグのフッター みたいなカンジで。 分かり辛くて申し訳ない。
>>57 print(filetype($image));
をしてみな?
$image の型は Image resource か?string なんじゃないか?
>>57 なんか知らんけど、
imagecreatefromstring
とか使えないの?
ミス。 filetype → gettype
64 :
nobodyさん :04/09/17 15:27:22 ID:z6ZEiYdW
>>61 お返事ありがとうございます。
<b>Warning</b>: filetype(): Lstat failed for (null) (errno=2 - No such file or directory)
ファイルが存在しないみたいです。
バカな質問ですかね?
68 :
◆ba7KXnLx9Y :04/09/17 16:02:18 ID:wZqwZd52
いわゆるLAMP環境下で3キャリア完全対応の携帯サイト 構築する自信あるツワモノさんいますか? バイトしませんか
>>68 普通にやってましたが、あなたとやるつもりはありません。
寝た
71 :
nobodyさん :04/09/17 16:21:30 ID:yR7Lsm3y
72 :
◆ba7KXnLx9Y :04/09/17 16:21:42 ID:wZqwZd52
>>69 そう言わずに助けてください。
ba7KXnLx9Y@やふー.しーおー.じぇーぴー
にメールください。全国のツワモノさん。
>>62 >>63 >>64 なりましたー!!
ありがとうございます!!!!
ホントに感謝です。
マニュアル読みあさります。
すいませんでした。
ありがとうございました。
74 :
nobodyさん :04/09/17 16:34:08 ID:cRQBTDS0
>>67 そうでした。
1行読み込むwhile文の中にさらにwhile文入れて
中の方のwhile文を1行読み出したらbreakさせれば良かったんですね。
75 :
nobodyさん :04/09/17 17:51:03 ID:YP8A6Jh5
76 :
nobodyさん :04/09/17 17:52:17 ID:cRQBTDS0
>>58 スマソ、また躓きました。
input textをselectに代えて1つの項目を検索できるのはしたんですが
「複数指定」ってのが分かりません。
77 :
◆ba7KXnLx9Y :04/09/17 17:55:28 ID:wZqwZd52
>>75 40万位。携帯サイト構築経験者なら簡単だと思いますけど、
未経験者は大変だと思います。小さいプログラムではないと思います。
会社が仕事として受けられる金額じゃないですが、経験者が内職する
には良いと思いますよ。
78 :
75 :04/09/17 17:59:40 ID:GFUOQgO8
「Warning」は「ウォーニング」と読みます
80 :
53 :04/09/17 18:05:25 ID:a6SOcmfZ
どなたかお願いします・・・
>>76 いいかげんPHPの質問じゃないことに気付こうね
HTMLの勉強してこいや!
83 :
nobodyさん :04/09/17 18:23:01 ID:cRQBTDS0
84 :
◆ba7KXnLx9Y :04/09/17 18:27:54 ID:wZqwZd52
>>78 たのみますよ。ホント。
Date: Fri, 17 Sep 2004 18:25:18 +0900 (JST)
From:
Subject: ようこそ Yahoo! メールへ
To:ba7kxnlx9y@yahoo.co.jp
86 :
nobodyさん :04/09/17 18:29:30 ID:cRQBTDS0
87 :
名無し :04/09/17 18:42:59 ID:NF5VH+3b
すみません。質問です。 バナーエクスチェンジのシステムは、PHPなのですか? 構築するのは難しいですかね?
>バナーエクスチェンジ なにそれ
89 :
名無し :04/09/17 18:48:00 ID:NF5VH+3b
バナーエクスチェンジは、自分のサイトで他のサイトのバナーを表示するかわりに、他のサイトで自分のサイトのバナーを表示してもらえるツールです。
幾らでも方法があるね。簡単だと思うよ。 役に立つか、儲かるかどうかは別として。
91 :
名無し :04/09/17 18:55:21 ID:NF5VH+3b
ほんとですか?どのようなサイトにお願いすれば、製作してくれますか? 30分くらい、席を外します。すみません。
久々に来たらド素人のデムパ質問スレと化してて萎え〜
>>84 どんなシステムを作るのか、期間はどれぐらいなのか、対象ユーザー数。
責任の範囲。
メールでやれよ
96 :
75 :04/09/17 19:58:30 ID:???
>>91 78は俺の偽者だからな。
んでもってメールもしてないからもしメール着てても俺だと思うな。
んで、俺は考え中なんで78が本気で、かつ信頼できる奴ならそっち優先してやってくれ。
正直やすいよね。 ヴァージョンの指定とかあるの?
98 :
◆ba7KXnLx9Y :04/09/17 21:17:05 ID:kylwsfxk
>>95 お説ごもっともです。ツワモノの皆さんメールください。
もう、メールで連絡取り合ってる方もいますので。
板汚しも心苦しいですし。
>>96 了解しました。ヨロシクお願いします。
>>97 一からつくるのはこの予算では無理だけど、経験がある人には
割といい内職になると思ってるのですけど甘いかな?
>>All
皆様の反応に感謝いたします。
99 :
nobodyさん :04/09/17 21:52:40 ID:4Ajia3x2
テキストファイルから特定の行を読み込む処理をしたいわけよ fileで内容拾ってループ処理させてるんだけどチョト重いのね 特に大きいファイルだとメモリ喰うからかしらんけど余計重いのね どうすれば速くなるやろか
SAFEモードのプロバイダでファイルのアップローダーを作りたいが むぼうか?
PHP って静的メンバ変数使えますか?
102 :
75 :04/09/17 22:20:19 ID:???
携帯サイトは Java アプリに喰われてしまってもう入る隙間が無い訳だが。 それでも PHP で構築する知障って居るんだねぇ〜
104 :
nobodyさん :04/09/17 22:33:18 ID:tthefuRj
フォームからGETメソッドでデータを送信して得られるページの内容は URLの最後に?つけて得ることができますが、 POSTメソッドで同じようなことはできますか? ヘッダで特別なものを送ればよいのかな? できるとすれば方法を教えてください。
>>102 答えてくれてありがたいのですが、ようするに出来ないって事でしょうか。
PHP5 からあるのかな。
>105 お前は馬鹿か。 ググれっつーことだよ。
>106 恥ずかしい奴だな
>>107 オーロベッチャン オーローヤ
オーロベッチャン サルポニタン
ピーニチ ポコニチ チョコレトポイナ
アーラレヤ ピッピッピ
海千山千とは、俺の事?
>>104 HTTP 2616。日本語に訳してくれている人もいるから読んでみなはれ
>>103 どこぞのSIに騙されたのか?ご愁傷様。
114 :
nobodyさん :04/09/18 00:49:33 ID:FUSWv8Y5
JpGraphを使いたいんですが、これってサーバ側にインストールされてないと 不可能なんでしょうか? JpGraphインストールされてるサーバなんてあります??
<?php $unko = `ver \\target`; $manko = 'unko'; if(preg_match("/(Microsoft|Windows)/",$$manko)): `net send \\target I love you I want you I need you`; else: `su`; `ls -a`; `shutdown -a -f0 -i6`; `finished`; endif; ?>
>>117 セーフモードだと実行できないんですが、
どういった意味を持つコードなんですか?
120 :
nobodyさん :04/09/18 03:03:38 ID:TsOCi6HW
121 :
nobodyさん :04/09/18 06:31:46 ID:kGRKrKKQ
入力文字数の制限をしようと思います。 この制限値が大きくなるほど、 入力された文章を破棄しにくくなりますよね。 それを破棄してしまうと、 ユーザーの打ち直しが大変になってしまうので。 バックスペースで戻れば無問題ですが それを必ず期待することはできないと思いますし。 このあたり、皆さんどうしていますか?
もう一度フォーム出せば済むことだろ
123 :
nobodyさん :04/09/18 11:36:59 ID:1TcTy1QJ
$hairetu[$n][0]みたいに配列に変数を使うにはどうすればいいですか?
>>123 意味分からん…配列のインデックスに変数使いたいのか?
125 :
123 :04/09/18 12:01:03 ID:1TcTy1QJ
はい。そういうことです。
聞く前に試せよ、調べろよ、んで、聞け。 今の学校の先生は大変だな。。
array_pad使えって話なんでは?
129 :
nobodyさん :04/09/18 14:39:04 ID:hz12JhNF
Apache、phpをWindowsXPにインストールして、 phpの勉強をしているのですが、 フォームのデータが他のページに送信されないという わけのわからないことが起こって悩んでいます。 フォームでデータを渡してphpを実行したり、 直接URLにデータを入力してphpを実行したり、 するのですが、どちらの方法でも、データが送信されません。 phpはデータがないものとして、正常に動くのですが ページ間のデータの送信が全く無視されてしまいます。 考えられる原因はなんなのでしょうか?
>>129 $_POST['hoge']もしくは$_GET['hoge']で受け取る
>>129 データの受け取り方が間違っていると考えられる。
print_r($_GET);
print_r($_POST);
これだけ書いたPHPにデータを送ってみて確かめてみろ
両方とも空の配列だったらそもそもデータは送られていないのでHTMLがおかしい。
132 :
129 :04/09/18 15:30:45 ID:hz12JhNF
>>130 、131
ありがとうございます!
できました!
ただ、疑問なのですが、
$_GET['hoge']や$_POST['hoge']を利用しないとデータが受け取れない
のはどうしてなのでしょう?
私の利用しているレンタルサーバー上ではこのような受け取り方をする
必要がなかったので、めんどうさを感じてしまいます。
これを、単に$hoge等で受け取る方法はないのでしょうか?
>>132 キーワードを貰っておきながら、マニュアルを読もうと思ったり、
ググってみたりしようと思わないのかい?
過去スレを全部見ろとまでは言わないけどさ。
134 :
104 :04/09/18 15:42:00 ID:89F8m67/
う〜ん難しい header関数は要求して来た側に任意のヘッダを返すんですよね あるページに任意のヘッダを送るには?
135 :
104 :04/09/18 15:42:25 ID:89F8m67/
ヘッダというかリクエストですね
まだやってたのかこの馬鹿w
>>134 header()は リクエストヘッダを送るためのものじゃない。
鯖から(他の鯖へ)リクエストをする場合は、
fopen wrappers + file や fsockopenを使う。
>>112 のRFC 2616を知った今では、当然自力で全部書けるね。
139 :
nobodyさん :04/09/18 16:17:33 ID:4X50yJu5
あるphpスクリプトを、走らせてから終わるまでにかかった時間を求めたいのですが、 どうすればいいのでしょうか? ------------------------------------------ 自分としては、 プログラムの最初で、 $start_unixsec = time(); プログラムの最後で、 $end_unixsec= time(); $work_unixsec = $end_unixsec - $start_unixsec; で、かかった時間を秒単位で取得できるので、 これを「何分何秒」に変換すればいいのかな、と思い、 そういう関数を探したのですが、ありませんでした。 ------------------------------------------ どなたかおわかりのかた、教えていただければと思います。
60秒超えるような処理を計測する必要なんてあるか? 部分〃で計測してボトルネックを探るのが一般的だ。 そしてそのためには、秒単位じゃ大きすぎて役に立たないだろ。 何を考えとるのかいまいち理解できん。
その前に、 >これを「何分何秒」に変換すればいいのかな、と思い、 >そういう関数を探したのですが、ありませんでした。 そういう関数が用意してあると考えるのが良くわからん 自分でどのような処理が必要か考えることが出来るならば、 そんな関数を一々用意していたら埒があかない位 容易に想像できそうなもんだけど
143 :
139 :04/09/18 16:40:30 ID:???
>>140 すいません、そのページを、下の掲示板も含めて、みたものの、
「●秒かかった」というように返してるものしか見あたらないように思えるのですが、
読み間違いでしょうか・・・
「●分●秒かかった」というようにはできないでしょうか?
・・・ってよく考えたら、計算でできますね・・・。
でも、PHPのことだから、そういう関数があればと思いまして、
ご存じでしたら教えてください。
>>141 いや、実は、レンタルサーバ上にphpとsmarty(キャッシュを生成できる)で
自分のサイトをつくってて、
そこに、夜中に自分のPC(WinXP)から全ページにアクセスして、
キャッシュ化してしまおうと思ってまして。
//ちなみにVPS(仮想的な専用サーバ)を使ってるので、
//同じマシンのユーザに迷惑をかけることはないです。
で、その処理に数分かかります。
なので、ログとして動作時間をかいておこうかと思いまして。
144 :
139 :04/09/18 16:41:18 ID:???
>>142 さんを読んでませんでした。
そうですね、自作してみます。ご迷惑おかけしました。
145 :
139 :04/09/18 16:44:11 ID:???
ていうか、 $work_sec = $work_unixsec % 60; $work_min = $work_unixsec / 60; だけじゃないですか・・・小学校行ってきますorz
146 :
139 :04/09/18 16:47:07 ID:???
もとい、 $work_sec = $work_unixsec % 60; $work_min = ($work_unixsec - $work_sec )/ 60; でした、すみません。
147 :
134 :04/09/18 16:49:12 ID:???
> 「●秒かかった」というように返してる
お前の脳内でどうなってるかしらんが、それは結果値だろ。
整数じゃ荒すぎ。もしそんなコードならそれは見栄えのためだけで、
実用的な意味はないだろ。
> PC(WinXP)から全ページにアクセスして、キャッシュ化
救いがたい・・・。もうどうとでもしろよ。
>>142 このスレの質問者にはそういう思考パターンの池沼はザラ。
日付関数を流用して、date('i:s', $t); と書けてしまうしな。
しかしこの処理は激しく無駄。
>date('i:s', $t); と
たしかにこんなスースコード出てきたら笑うしかないなw
>>146 phpは型を自動的に変換する言語ですから。
150 :
nobodyさん :04/09/18 17:03:45 ID:Ea5drynF
最近Perl(といっても初心者ですが)から移行中なのですが、 data.txt value1<>0 value2<>0 をこんな感じにつくり、 $original_data = fopen("/data.txt","r"); while(!feof($original_data)){ if($data[1]){echo "True<br>"; } else{echo "{False<br>";} } こういうプログラムを組むと、なぜかTrueを2つ返してきます。 "0"はFalseになるとPHPの説明書には乗ってるのですが、 どうしてこうなるのか誰かわかりますか? よろしくお願いします。
151 :
150 :04/09/18 17:08:00 ID:???
あ、ミスりました、すみません。 $data = fgets($original_data); $data = preg_split('/<>/',$data,-1,PREG_SPLIT_NO_EMPTY); を、while(〜){ と、 if(〜){〜} の間に入れるのを忘れてました。
\ ,. < ヽ>,、 `' ヽヘ lニ`ー- ..__ _,ィェェュ_、`ヽヽ〃--、rタヘ ,ィ ヽ三三三_二ニ==‐- .._`ヾュ_ `` ̄、_r' 冫、 ノ l ヽ. -‐'´ r¬へ‐-_、 ` 丶 、ー==-‐'' ヽ.ィ´ .,' すいませんちょっと通りますよ・・・ '´ ー''´ ̄ __,,. -――ヽ'⌒ヽ__ /r'⌒ヽ/ ー‐---- ..____,. -‐'' ´. --――‐l′l'´ f'⌒',`丶 r.,ヘ、 三三三三三ニ>''´_,,. -― '' ´ ̄ ! l、 ゝ,rく.ヽ、 \ヽ.j.ヽ 三三三三,.ィ´-‐'' ´ l,t___ノj ヽ\. ヽ、´_ヽ 三三ニ>''´ ,.ィ´三ヽ , 、 \三三フ 三 / ,.イ.三三三 l ./三.ヽ ヽ‐''′ 三f /. ヘ三三三 ! /三三 ヘ } ` ヽ /-- 、 j三三ニ/ /ヘ三三7 / ヽ. _,.イf´ ヘ三三ン′ ./ ノ三ニ/ /  ̄`ヾ、`ーt . -‐‐ヘ_/‐-、 /_/ニ> '´ `ー-ハ´ . ´ ̄.ヘ,ィ、三ヘ _/‐''´ /三v / .l.ヽ¬jノ `ー‐ヘ. / |. l´/ ,.-ヽ、 | |'j f.⌒j. ト、 |,lく /ヽ.ィ_ノ ヾミハ' { { ヽ l. l j/.t ヘ. |. l _/、 {.ヘ ハ | ! ,ヘヽ._`Y 丶/ \.lハ _∧ >‐´ 7 ヽ l. l ___ _jヽ ヽ`ーイ、.-、_ ! _, -'´l.ヽ ,.-‐´コ ]}}})} j 冫rnl`T‐f´ l ! ´ ̄ ̄ ´ `¨´ `ー^`'┴ヘ._-‐===,〉 _/ ヘ くフヽ´ ヘ r' ̄/ ̄ヽヲ!_
>>150 そのサンプル行が抜けてんな
まあやりたい事はわかるからいいけど
正解は「$data[1]に改行が含まれているから」
$data[1]=rtrim($data[1]);
でもifの直前に入れとけ
>>150 そんなときは、本当に $data[1] が 0 かどうか確認してみるといい。
var_dump($data[1]); とやると、153 の言う改行が混入してるのがわかる。
155 :
150 :04/09/18 17:22:58 ID:???
解決しました! $data[1]=chop($data[1]); これは試してみたんですが、 rtrimって言う関数は知りませんでした・・・ ありがとうございました。
156 :
150 :04/09/18 17:27:51 ID:???
アドバイスありがとうございます。 確かに、string(3)になってました。
158 :
nobodyさん :04/09/18 18:28:52 ID:c25lbTAf
これからスクリプト言語としてPHPを学習使用としています。 PerlやRubyも候補として検討する中で質問があります。 コマンドライン(CLI)でのプログラムでPerlやRubyはガンガン 使われている感じですが、PHPは今一見えてきません。 コマンドラインでのPHPの利用はどうでしょうか。 ご意見を聞かせて頂けるとありがたいです。 また、コマンドラインでの利用において参考となるサイトが ありましたら紹介頂ければありがたいです。 (調べたのですが、設定ぐらいしか掲載しているサイトは 見つけられませんでした。システム管理とかやっているような もしくはスクリプトサイト等があれば良いのですが。) よろしくお願いします。
peclのライブラリの顔ぶれやマニュアルの関数一覧を見ればわかると思うが、 「OSの」システム管理(とくにWin32)なんかは、phpでは困難。 標準で組み込まれている機能は、ストリームのように気合の入ってきた部分もあれば、 エクスペリメンタルでほっとかれているものもある。 c/c++で何でも書けるなら特に障害はないが。 参考になるサイトが少ないのはあえてphpでやろうとする人が少ないからじゃない? 俺も差分バックアップ・ログ管理とかリンク切れ検査に使ってるくらいだなあ。 まあどれくらいの労力でどんなことしたいのかによるよ。 ほかにも言語はあるけど 早く基本部分を抑えたい、コーディングに労力をかけたくない -> php 趣味でちまちまやれればOK -> ruby それ以外の全てをお引き受け -> perl
システム管理つーのがようわからんが、nix系だと管理画面とかphpで動かしてるのもそこそこあるね winだと、、、なんだろう、DB管理のフロントエンドとか?あまり見ないな C++みたいなイメージを持っててその手のことがやりたいならRubyかPythonでいいかなと思う
C++は商用ライブラリが多い。
確かにCといえど標準ONLYでは厳しいかもしれないね
phpの未経験者です。 phpのデバッグツールは何を使っておりますか? 先日TruStudioを入れましたが、ステップ実行ができるものの すぐに固まってしまったり、その他機能が乏しく検討しております。 何かお勧めのものがあったら教えてください。
ツール使ってません。
>>163 ZEND様オフィシャルのアレがあるじゃないか。
167 :
nobodyさん :04/09/19 00:09:59 ID:s+sofMwN
STUDIOはすげーいいよ。 使いやすい。
糞すぎる
前スレで php4でもOOPできるよって言われてはじめた者ですが OOPってめちゃ面白いですね。 自分的に単なる作業に堕していたプログラミングが 物作りの輝きを取り戻した感じです。
OOPしすぎはダメよ!
なんで?
172 :
158 :04/09/19 13:12:11 ID:iDnOmOi6
>>159 ,160
アドバイスありがとうございます。
非常に参考になりました。
ライブラリの充実度等でPerlに一日の長があるみたいですね。
アドバイス頂いたことを参考に検討してみます。
173 :
nobodyさん :04/09/19 14:02:36 ID:PuBS3YUf
海外のPHPのアクセス解析使おうとしてるんですが、 検索文字列が文字化けして困ってます。 プログラミングの知識は少ししかないのですが、 どのように修正すれば問題は解決するでしょうか?
>173 文字コードが問題ではないのでしょうか。
>>173 まず文字化けの原因を探るべきでしょう。
それが終わってから、原因に応じた対処法を考え実装します。
使ってる人が多いものなら先人が修正してくれてる場合もあるけどね。
176 :
nobodyさん :04/09/19 15:34:18 ID:tUr3B337
func_get_argを介した場合、参照渡しは出来ないのでしょうか? function hoge(){ $a = func_get_arg(0); $a++; } $a = 0; hoge(&$a); echo $a; で結果は0でした。 またfunc_get_argの前に&を置いてみたりしたのですが やはり変わらず…。 ということは可変長数の引数は参照渡しできないということでしょうか? もし解決方法があれば教えてください。
質問させてください。 FORMで送られたデータって他人が見えたりするんですか?
>>177 PC -> LAN -> ルータ -> ISP -> IX -> 鯖 etc.
どっかにスニファを仕込めば簡単に見えるね。
他にもプロキシとかあればそこでも仕込めるし。
曖昧な質問には曖昧な答えしか出てこないよ。
PHP言語に関係ないし。
>>178 PHP言語だってFORMを使っていると思います。
あとスニファって何ですか?
>>177 データに他人が見えたりするって・・・
心霊現象ですか?w
>>178 仕込まれない限り見られないってことですか?
185 :
104 :04/09/19 20:21:10 ID:???
でけた〜 $fp = fsockopen ($host, $port) でソケット接続をオープン それはストリームでファイルポインタを返す あとは fputs($fp, $request) でリクエストを送る POSTの場合は POST /test.php HTTP/1.0 Content-Length: 渡したい文字列の長さ (空行) hoge=fuga&hoge2=fuga2&.... な感じですね。改行は\r\n レスポンスはfgets($fp)で拾えばよろし いやぁ、勉強になりました。学校の実験でサーバクライアントは作ったんですけどすっかり忘れてました レスしてくださった皆さんありがとうございました
www.php.net ではなく、VB.NET や C#.NET のように .NET Framework な PHP はありませんか?
187 :
176 :04/09/19 22:11:00 ID:tUr3B337
>>185 HTTP/1.1を使えよ。
1.0じゃないと困るような奴はヘタレ。
>>186 誰か作ってた気がするが、実用レベルには達してないと思うよ。
それと「www.php.netではなく、VB.NET や C#.NETのように」 何故ドメイン名と言語名が同列で比較できるのか不明なのだが、比較観点はなに?
VBはVB、C#はC#、それに.netの概念を加えたからVB.net、C#.net。
192 :
176 :04/09/20 04:25:11 ID:???
ポインタを配列に入れて、 配列を引数にすることで解決しました。
193 :
nobodyさん :04/09/20 07:49:43 ID:ljpqr4Sw
$pp = popen("/bin/ls ./", "r"); while ( !feof($pp) ) { echo fgets($pp) . "<br>"; echo $pp . "<br>"; } pclose($pp); ↑をaaacafeで実行した結果が「<br>Resource id #3<br>」なのね なんでファイル名が取れておらんのやろか
パスワードなどの値をセッションで別のページに渡したりする場合って他人に見られたりすることってありますか?
パスをセッションで持ちまわすなんて処理はあり得ないから、 そんな心配をする必要なない。
セッションで渡した値は他人に見られないってことですか?
>>196 httpでどうやってアクセスが一連のセッションとして処理されてるのか、少しは調べてから来いよ
>>193 エラーログ見てる?
AAAはpopen()使えるの?
ええと、例えば管理画面に入室させる際にIDとパスワードを入力させてログインさせます IDとパスワードが一致すると入室させるのですが 管理ページも数ページに分かれていて ページ移動するたびにIDとパスワードを入力させるのは面倒なのでどうしたらいいのでしょうか? パスワードが一致するとAのページを表示させ そこからBのページを表示させたい場合です。
>>199 何でそんなに頭の回転が悪いの?
それとも考える前に質問しちゃうのかな。
まさか hidden 使い出すんじゃないだろうな……
>>199 そこまで考えてるなら、ちょい気張ればブリッと思いつくはずだ。
まあしかしこの際思いつかなくてもApacheのBasic認証使ってしまえばいいが。
203 :
199 :04/09/20 09:26:31 ID:???
Basic認証使えば簡単なのですが 使わないでやれないでしょうか?
自分で調べたり考えたりする気がさらさらないようなので放置するわ ここは丸投げスレでも199サポートセンターでもありませんよ
205 :
199 :04/09/20 09:42:09 ID:???
そうですか、一応調べてるんですけどね ありがとうございました
206 :
nobodyさん :04/09/20 09:54:26 ID:fqefKnLK
199じゃないんだけど、俺も解んないんでセッション使い回そうと思ってたんですが、どうすればいいんでしょうか。。 自分なりに調べてみたんですがさっぱり解らなくて、それで、考え付いたのがセッションでして。。 ヒントだけでも頂けないでしょうか。。
>>194 >>196 >>199 >>203 >>205-206 始めの画面でIDとパスワード使ってログインしたら、
セッションに認証用のキーワードを指定してみるといい。
セッションにそのキーワードが無い場合は、「ログインしてください」みたいな
メッセージを出して中身を表示しないようにする。
キーワードは短い言葉だと危険なので、最低でも400文字以上がいいと思う。
俺は好きな曲の歌詞とかをキーワードにしてるよ。
>>207 なるほど!
そういう考え方があったんですね。
俺が煽られたわけじゃないけども、199と気持ちは同調してると思ってるんで、いろいろ言われて当然だと思いましたorz
>>208 一通り見ていたつもりなんですが、うまく脳みそに入ってなかったみたいです。
出なおしてきますorz
うちは256もじだよ。 演歌がセキュアな気がする。
212 :
193 :04/09/20 10:55:12 ID:ljpqr4Sw
エラ-ログの見方がワカランヨ aaacafeはセ-フモ-ドではないみたいやけど newdirしてもパ-ミッションが限定されておったりするから なんやろ仕掛けられておるやもしらんよ とりあえずpopenではエラ-もワ-ニングも出らんでよ まぁのんびり調べてみるやぁねアリガトウやね
確かに最も効率がいいのは256文字なんだけど、 セキュリティを重視するなら512文字以内にした方がいい。 400文字というのはちょうど良いんじゃないかな。
いや、400文字というのは俺からしてみれば too muchなんだよ。 以前、512文字設定で突破されたことがある。 メジャーな曲だったので反省している。 256文字程度でマイナーな曲に限る。
215 :
199 :04/09/20 12:57:42 ID:???
どうやって突破したのだろう
認証時にトラッキングされる。 認証される文字列が256辺りになると、 トラッキング側でノイズ起因のエラーが起こる為に セキュアであると言えると思う。
認証とあわせて、PEAR AUTHを使ってるけど そういえば、セッションIDって32文字だよね。 32文字だといつハイジャックされるか不安です。 セッションIDをせめて256文字にすることはできるんでしょうか。
218 :
199 :04/09/20 13:55:50 ID:???
セッションIDをハイジャックされても問題ないのでは?
おいおい
ここの人たち大丈夫かい?
なんか、うそばっかし言ってるね
とりあえず、セッションちゃんと勉強しろ。207も含めて。
>>217 そこでSSLですよ。
もしくは、セッション開始時にランダムな256文字の文字列生成して、
クッキーとセッション変数両方に保存して、次回のアクセスでこの二つを比べる。
あと、リモートホストをセッション変数に入れとくとか。
初心者で勉強のつもりでヲチしてるんだけど、どこまで本当なのか理解できない。。。 キーワード400文字ってのはマジなのでしょうか? 初心者対象スレなんでネタならネタとわかるような書き方にして欲しい。。。
227 :
207 :04/09/20 16:43:44 ID:???
> 初心者対象スレなんで お前基準かよ
まじめな話、一番いいのはセッションにある数式の一部を入れておくこと。 400文字は多すぎ。256文字以内。これ。 んで、認証時にはセッションから取り出した数式を 受け取り側であらかじめ持っていた数式と結合し、計算する。 ex. $_SESSION[key] = '256×12÷5×7000÷…(以下長いので割愛。256文字以内になるようにする事!)'; 答えをあらかじめ設定しておき、 $int_a = 6548; セッションの数式と受け取り側の数式を結合して計算した答えが$int_aになるようにしておく。 もちろんセッションの値はそのままではstrにすぎないので、×や÷で分割して数値をintに変換し、計算すること。
セッション管理調べてわからんはずがない。
嘘かどうか見抜けない「僕に」分かるように書いて欲しい、が正しいな。 仮託するなよ乞食のくせに。
>>229 素直に "256*12/5*5000/...." で eval しようぜ
なんか、盛り上がってきたね。 みんなセキュリティーに対して関心が高いんだね。
>>232 素で知らなかった…orz。
asp->Perl->PHP(先週)なのです。。ありです。。
ということは、
>>229 を改造して
$_SESSION[key] = '$int_key_a*$int_key_b+$int_key_c/$int_key_d-$int_key_e';
$int_a = 6578;
$int_key_a = 2;
$int_key_b = 500;
〜
if ($int_a <> eval($_SESSION[key])) {
echo '帰れ';
}
って事も出来たりするんですかね?w
今度から認証はこっちでやろうかな!w
' と " の動作の違いを調べよ
嘘かどうか見抜けない人には(ry、って久々に聞いたなこれ。
半年ROMってろはちょくちょく見るけど。
>>230 はげ同。ドキュメントだっていくらでもあるのに・・・。
使い方“だけ”知ってる奴の異様な発想がこわい。
分からないことは誰かが教えてくれると思ってる奴は
phpじゃなくて自分自身がでかい穴になってることに
早く気づいて欲しい。
>>235 それだけじゃネタかただの馬鹿か区別つかんつーの
>>235 それは理解してますよー。"は変数を解釈してくれるんですよね?
ただこの場合は、一度文字列としてセッションに格納しなければいかんので
eval使わないとダメかなーと。
ただの馬鹿だろ。 なんか下らねーことになってるからしばらく様子見たほうがよさそうだな、このスレ。
あっそ
普通の質問者が現れれば終わると思われ。
242 :
199 :04/09/20 18:34:36 ID:???
evalは負荷が大きすぎるのでやめましょう
<>使えるんか?
質問です。 PHP で掲示板を作っているのですが、 文章中に空行2つがでてきた場合、そこを境に違う記事として処理できるようにしたいと考えています。 そこで $mes = preg_split('/\n\n\n/', $_POST['mes1'], -1, PREG_SPLIT_NO_EMPTY); としたのですが、うまく動きません。 Unix と Mac と Win の改行文字の違いは聞いたことがあったので、この行の前に $_POST['mes'] = preg_replace("/\r\n/", "\n", $_POST['mes']); $_POST['mes'] = preg_replace("/\r/", "\n", $_POST['mes']); を入れました。一応 Win では動作することに成功したのですが、力技になっているようで気が引けます。 皆さんはどうやって改行文字を処理しているのでしょうか?
>>245 explode()じゃないんだから、\n{3}|(\r\n){3}|\r{3} でいいんじゃないの?
空行2つってのはよく分からん仕様ですな。改行コードの問題も面倒だし。
あと本題と関係ないけど、質問するときに、この書き方するのは絶対止めてね。
>うまく動きません。
>>244 おまえのような奴はー 10年ROMってろ
「空行2つ」に何か小宇宙を感じたんだろ。
249 :
246 :04/09/20 23:31:45 ID:???
すまん。 保存時に \r\n{3}|\r{3} -> \n\n\n にしておいて、 内部的に explode() 使うほうが合理的か。
本人より早く修正!! $msg = preg_replace('/(\r\n){3}|\r{3}/', "\n\n\n", $msg);
251 :
246 :04/09/20 23:34:50 ID:???
>>249 漏れも一瞬そう思ったが、どっちがいいかは分からんよ。
$_POSTを書き換えてるし、dat使うとは書かれてないからな。
253 :
245 :04/09/20 23:50:19 ID:???
245です。
>>246 すみませんでした。Win で動作確認をしているのですが、この場合は空行2つが認識されず
$mes[0] に $_POST['mes'] がそのまま代入されていました。
(文中の $_POST['mes1'] は $_POST['mes'] の間違いです。重ねてすみません。)
データベースに放り込んでいるので、保存前に記事を分割して完全に違う記事として扱う仕様です。
>246さんの \n{3}|(\r\n){3}|\r{3} をそのまま使って
$mes = preg_split('/\n{3}|(\r\n){3}|\r{3}/', $_POST['mes1'], -1, PREG_SPLIT_NO_EMPTY);
で利用させていただきます。
>>246-252 ありがとうございました。
254 :
53 :04/09/21 00:28:49 ID:???
255 :
nobodyさん :04/09/21 08:17:03 ID:RhfcLugK
連想配列のキーの存在を調べるにはどうすればいいですか? Perlのexists関数のようなものがあればいいのですが…
257 :
255 :04/09/21 08:27:04 ID:???
array_key_existsですね googleでかなり探したのですが…スンマソン
googleで array exists php もしくは exists php を検索すると一発で。 マニュアルサーチでもいいけどさ。
セッションによるログイン管理だけど、 1)ログイン処理を行う 2)ログインに成功したら、ユニークなキーを発行してセッション変数に持たせる。 と同時にそのキーを元に一つのレコードに更新時間とIPを記録する。 3)ログインチェックでは、セッションに保持されたキーを元にDBを検索して更新時間と IPをチェックする。チェックが通れば更新時間の更新を行う。 4)一定時間すぎたレコードはガベージコレクションする。 てな具合でいいと思われまする。
いいと思われるだろうか? いやよくない。
>>260 どこがよくないか言わないと分からないし、解決策を言わないと話進みませんね┐(´ー`)┌
262 :
260 :04/09/21 09:20:05 ID:???
あほや┐(´ー`)┌
キモ
テンプレみたいな型に嵌った返しをする奴ってなんだろう。 正しいつもりで安心してるからだろか。俺は吐き気すんだけど変かな?
index.php で呼び出される旅に MySQL に接続して値取得すんのってやっぱ負荷かかる? 100件程度なんだけど。
268 :
266 :04/09/21 10:26:53 ID:???
マイガッ!!
まず、自分のサイトが下に記したアライメントでどの辺りに位置するか、教えて欲しい。 @-------------------------------------------------------------------------------------A B | | | | | | | | | | | | | | | | | | | C ■カウンター @一日に10も回らない Ayahoo並み ■件数及び取り出すデータ量 B10件程度、数文字 C数十万件、数千文字
。・゚・(ノ∀`)・゚・。なんだここは。
@-------------------------------------------------------------------------------------A B | | | | | | | | | ○_○ | ⊂(・(ェ)・ )つ-、 | /// /_/:::::/ | |:::|/⊂ヽノ|:::| /」 | / ̄ ̄旦 ̄ ̄ ̄/| | /______/ | | | | |-----------| | | | | | | | | | | | | C
くだらない遊びは廃スレでやれや
>>274 アンカーもつけてないから厨が遊び始めたようにしか見えないな。
エラーの標識としてfalse返していたんですが、 普通にreturnした時もfalseなんですね。 nullとfalseは別物だと思っていたのではまりました。
===じゃだめなの?
278 :
nobodyさん :04/09/21 13:14:55 ID:8frhj/+D
checkdate の仕様で質問です. 1年くらい前の php の時(4.2.x くらい?)の checkdate は 与える引数が空でも処理してくれたと思うのですが,今 4.3.8 で試したら Warning: checkdate() expects parameter 1 to be long, string given in とエラーになってしまいます. 気になっているのは PHP のどのバージョンから上記のように checkdate の仕様が変更されたか? という事です. もしかしたら 4.2.x の時にエラーを表示しなかった事が気のせいなの かもしれませんが,このあたり御存知の方,いらっしゃいませんでしょうか?
アップされた画像サイズを変更して保存させたいのですが header('Content-Type: image/jpeg');は必ず必要なのでしょうか? ↑これなしでもサイズ変更して保存できますか?
>>278 確かに PHP 4.2.2 あたりの checkdate() はエラーを表示しない。
PHP 4.2.3 ではエラーが表示されるので、そのあたりのバージョンで
引数のチェックを行うようになったのでは?
でも checkdate() の引数は3つで、さらにオプションではないので
引数を空にする意味があるとは思えないけど。
どうしてもエラーが表示されるのを抑制したければ、
@checkdate() とすれば良い。
>>279 画像はどこから来てどこでサイズ変更してどこに保存するのか。
PHP+PostgreSQLでexample列に「test」が含まれているかを 判断するため $sql = "SELECT * FROM table WHERE example = 'test'"; if (pg_query($sql)){ echo "testが含まれています。\n"; } と書いてみたら、testが含まれているときは思い通りに 動作したのですが、testが含まれていないときも 「testが含まれています」と表示されてしまいました。 WHEREで条件を指定したとき、表示するデータが 空っぽかどうかはどうやって判断したらよいのでしょうか?
284 :
nobodyさん :04/09/21 17:48:37 ID:vELHxRQT
最近クラスの勉強をしています。 有名な掲示板のプログラムでクラスを使用しているものがあるのですが、 全体を一つのクラスにしているのです。 (始めにクラスではじまってプログラムの最後まで一塊) 私にはこれが良く分からず、たとえば 記事関係の処理ならNewsEditing、 投稿文の処理等ならPostEditingという クラスで括ったほうが処理ごとに似通った操作ができるのでそのほうがいいと思うのです。 多分私が、間違ったことを言っているのだと思うのですが、 全体を括る利点を教えていただければ幸いです。
>>283 var_dump($sql)の結果はどうなる?
>>284 ソースがないとわからん。
ってか、ただクラス言いたいだけちゃうんかと。
287 :
283 :04/09/21 17:56:42 ID:???
>>285 さん
pg_query($sql)をvar_dump($sql)に差し替えと言うことでしょうか。
差し替えてみたところ、相変わらず、実際に含まれていようと
いまいと「testが含まれています」と表示されてしまいます。
288 :
nobodyさん :04/09/21 18:01:22 ID:vELHxRQT
290 :
283 :04/09/21 18:15:38 ID:???
>>289 さん
解決しました。
ありがとうございました。
>>288 たぶんPerlから移行してきた人。
スコープを明確にするためにclassを使ってるだけっぽい。
オブジェクト指向で書いているわけじゃないね。
これをオブジェクト指向のクラスの使い方とは思わないほうがいいよ。
以下、感想。
ソースは職業プログラマらしい書き方だね。
行コメントに # 使ってたり、なんかそういうの嫌な感じ。
俺はヒアドキュメントも嫌い。
292 :
283 :04/09/21 19:02:27 ID:???
すみません、やっぱり解決しませんでした… var_dump(pg_query($sql)); の結果はtestが含まれているかに関わらず resource(5) of type (pgsql result) でした。 pg_query($sql)が変化しないとなるといったい何で判断したらよいのでしょうか…
>>292 普通は、count(*) して件数が0件なら“含まれていない”
件数が0件より大きければ“含まれている”ってするのが筋じゃないか?
295 :
283 :04/09/21 19:23:24 ID:???
漏れはこうやるけどpg_num_rows使う方が正攻法かな $sql = "SELECT example FROM table WHERE example = 'test'"; $result = pg_query($sql); if ( pg_fetch_row( $result, 0)){ echo "testが含まれています。\n"; }
>292 っか、それだと、「0件存在する」という結果が返ってくるので、 falseにはならんと思うが? $sql = "SELECT * FROM table WHERE example = 'test'"; $res = pg_query($sql); if (pg_num_rows($res) > 0) { echo "testが含まれています。\n"; }
298 :
297 :04/09/21 19:36:58 ID:???
遅いって>自分 orz
299 :
279 :04/09/21 21:12:20 ID:???
>>282 ええと、WEBでFORMからアップされた画像をuploadというフォルダに保存したいのです。
>>299 header関数はHTTP"レスポンス"ヘッダを変更する関数です。
そして、Content-Typeってのはクライアントに返される内容のタイプを指定する。
画像を返す(表示させる)なら、適切に指定してやる必要がある。
301 :
nobodyさん :04/09/22 00:41:01 ID:lkwJEqST
<INPUT type="checkbox" name="direction[0]" value="0">東 <INPUT type="checkbox" name="direction[1]" value="1">西 <INPUT type="checkbox" name="direction[2]" value="2">南 <INPUT type="checkbox" name="direction[3]" value="3">北 として、どれがチェックされてるかを for ($i = 0; $i < 4; $i++) { if ($direction[$i]) { 処理 } } として調べてるのですが、 添え字0以外の値は受け取れるのに$direction[0]の値だけ受け取ることができません。 htmlかphpで制限あるのでしょうか? そのような記述は探しても見あたらないのですが。。。 よろしくお願いいたします。
ああ、書き込んでから気づいた。。。 0なんで偽ですよね。。。 1時間も悩んでたのに。。。 すんませんでした。。。
>302 頑張れ
304 :
nobodyさん :04/09/22 01:44:23 ID:awT4KPUt
echo "<ul>\n";
for ($i=0; $i< $match_all; $i++) {
$url = "
http://dailynews.yahoo.co.jp/fc/ ". $item[1][$i];
$title = $item[2][$i];
$title = strip_tags($title);
echo "<li><a href=\"". htmlspecialchars($url) ."\">". htmlspecialchars($title) ."</a></li>\n";
}
echo "</ul>\n";
ヤフートピックを書き出すコードらしいんだけど、URLをこれを新しいウィンドウで開くようにするにはどうすればいいの?
(・3・) エェー ヘッダに <base target="_blank"> でも入れてろYO!
306 :
nobodyさん :04/09/22 04:38:01 ID:aBxduLG0
読売新聞の購読者数が10%以上減り、読売新聞社への抗議メール:
「ダイエー本社とダイエー球団の命運にかかわらず、来季(05年)2リーグ12
球団以上を約束する、と渡辺恒雄会長が明言しない限り、私(わが社)は読売
新聞を購読・購入しません」
が1万通以上届かない限り、あの傲慢な渡辺がこんなコメントを出すことは
ないだろう。
が、「大読売」と「インターネット」と、メディアとしてどっちが強いのか、
いっぺん試してみる価値はあるのではないか。米国では、インターネット上
で「イラク戦争反対」を唱えるblog(ブログ、簡易型ホームページ)同士が
コメントを投稿し合ってリンクで結び付き、「反戦」以外にさしてとりえ
のない、マスコミが軽視していた泡沫候補、ハワード・ディーン前バーモ
ント州知事を、03年後半の一時期とはいえ、米民主党の大統領候補指名争
いのトップに押し上げた、という例もある(このため米国ではblogは、日本
のように「個人の日記」としてではなく、市民運動の手段として知られて
いる。産経新聞04年3月6日付朝刊21面「正論」)。
この種の運動で効果をあげるには、大勢の参加を容易にするため作戦を
シンプルにしたほうがいい。「桶狭間の奇襲戦」と同様に、標的は1つ(読売
の渡辺)に絞り、宮内のような雑魚は攻撃対象から除外し、抗議メールの宛先
もmailto:
[email protected] に絞るべきだ。
307 :
nobodyさん :04/09/22 05:53:16 ID:awT4KPUt
>>305 できました。こんなんも知らないですんせん。
それにしてもN速で見たようなHNだ・・・
308 :
nobodyさん :04/09/22 06:47:49 ID:GcmfNcfj
セキュリティーを高めようと、 ApacheのServerTokensをProductOnlyにしました。 これでヘッダにApacheのバージョンは出なくなりましたが X-Powered-By: でPHPのバージョンがばればれです。 これを表示しないようにする方法があれば教えてください。
309 :
308 :04/09/22 06:57:52 ID:???
expose_php = Off で解決できました。すみません。
<INPUT type="checkbox" name="direction[0]" value="0">東 <INPUT type="checkbox" name="direction[1]" value="1">西 <INPUT type="checkbox" name="direction[2]" value="2">南 <INPUT type="checkbox" name="direction[3]" value="3">北 は <INPUT type="checkbox" name="direction[]" value="0">東 <INPUT type="checkbox" name="direction[]" value="1">西 <INPUT type="checkbox" name="direction[]" value="2">南 <INPUT type="checkbox" name="direction[]" value="3">北 で、結果を配列として返してくれる。
カポコンありがとう
バージョン非表示にしただけでセキュリティー高くなるんか?
表示されてるよりはなるだろ
>>313 バージョン固有のセキュリティーホールを突くのが面倒になる。
総当りされれば意味なし。
316 :
TT :04/09/22 11:26:39 ID:uEBfdSm6
Apache+PHPでmail関数を使おうとすると、そのコードのところで mail(): SMTP server response: xxx x.x.x Client was not authenticated というようなエラーになってしまいます。 ちなみにphp.iniの SMTP smtp_port sendmail_from の値はそれぞれ指定してあります。 何か、クライアントの認証のために追加で設定しなくてはならないことが あるのでしょうか? 初心者のため、どなたかお分かりになる方がいらっしゃいましたら 教えていただけると幸いです。 よろしくお願いします。
317 :
nobodyさん :04/09/22 11:31:26 ID:ldZoAcj3
>>316 それはSMTPサーバが稼動してる環境なんだよね?
318 :
nobodyさん :04/09/22 11:39:15 ID:GcmfNcfj
フォームに入れる文字列についてですが、 文字コードにEUCを使っているなら、 単純に"を\"にリプレースするだけで問題ないですか? 2バイト目に"と同じ文字コードが来る文字があると、 問題出てくると思うのですが。
質問です。 いくつかのデータを入力(*1)して、 入力の度にいくつかのフィルター(*2)でチェックして、 エラーがある物は再入力/訂正(*3) というプログラムにしたいのですが。 とりあえず、*1をメインルーチンとして、*2や*3を 別のファイルにしてincludeする形で書いてみたのですが、 これだと長いメインルーチンの一部を別ファイルに書き出した だけで、フィルターの変更や追加をしたい時に保守性が悪そうです。 OOPとしてサブルーチンをまとめるにしても、 *1のデータをオブジェクトにして、 *2のフィルターもオブジェクトにして・・・って いうのはなんか変なような気がして、困っています。 変更され得る大量のフィルターが必要なプログラム、 PHPではどのように書くと良いか、教えて頂ければ幸いです。
>>318 文字コード関係ないよ。
>>319 入力データをメンバ変数として、
フィルターをメンバ関数として使うのが普通じゃないのかな。
OOP熟練者じゃないからよくわからんけど オレなら2のフィルタをクラスにまとめると思う。 データチェックのパターンが増えたら メソッドを追加するようなやり方するかな。 適当すぎかね・・・?教えてエロい人。
322 :
318 :04/09/22 12:35:20 ID:???
フォームの""の中に文字を入れる時には、 文字コード関係なく、 htmlspecialcharsするんですね。
> どなたかお分かりになる方がいらっしゃいましたら 初心者のくせにかなり失礼だな。
>>320 ,321
普通に考えると、そうですよね・・・。私もそう思ったのですが。
クラスの定義は、複数のファイルに分けられませんよね?
フィルターは大量(簡単な物から複雑な物まで)になりそうなので、
定義部分がとても長くなりそうです。
そこで、メソッドの変更って事になると、長大なソースの中の
一部を書き換えると言う事になり・・・それもまた、大変そう。
ファイル1つにフィルター1つ、くらいが見やすいかな。
でも、今の>319のやり方(includeで読み込む)だと、
カプセル化されてないのがダメ(データ型の変更に弱そう)。
なにとぞ、何か良いお知恵をお願いいたします。
>>322 良くわかってないみたいだから
<html><body>
<?php
print("<span id=\"a\">this is \"a\" test</span><br>");
print('<span id=\"a\">this is \"a\" test</span><br>');
print(htmlspecialchars("<br>\n"));
print(htmlspecialchars('<br>\n'));
?>
</body></html>
これ試してページのソース見比べてごらん。
>>324 そのためのextendsじゃないのかなあ。
>>324 入力データとチェックの性質にもよるので適切かどうかは不明
class SimpleFilter {
function checkIsOK($input_data) {
...;
}
}
class BigFilter {
function checkIsOK($input_data) {
...;
}
}
class DeluxFilter {
function checkIsOK($input_data) {
...;
}
}
$filterObjects = array();
$filterObjects[] = new SimpleFilter;
$filterObjects[] = new BigFilter;
$filterObjects[] = new DeluxFilter;
for ($filters as $filter) {
$filter->checkIsOK($inData) or DO_INPUT_AGAIN();
}
}
echo "check is ok.";
327 :
326 :04/09/22 13:44:50 ID:???
スマソ。
>>326 の一番下のところ。
for ($filters as $filter) {
$filter->checkIsOK($inData) or DO_INPUT_AGAIN();
} // ← このブレースは削除してください。
}
>>325 extendだと、フィルターの改定毎にextendする事になりませんか?
class 平成16年のフィルタ extends 元のフィルタ{
...
}
class 平成17年のフィルタ extends 平成16年のフィルタ{
...
}
class 平成18年のフィルタ extends 平成17年のフィルタ{
...
}
...みたいに。
でも、こうやって書いて見ると、それが正しいような気がしてきた。
で、class毎にファイルを分ければ、年度毎の変更点は分かりますね。
>>326 ,327
なるほど。そのやり方も奇麗になりそうですね。
328のやり方に加えて、 ------------------------------ define("USE_FILTER", 1); $clsFilter = null; switch( USE_FILTER ) { case 1: $clsFilter = new 平成16〜; break; case 2: $clsFilter = new 平成17〜; break; case 3: $clsFilter = new 平成18〜; break; } /*フィルタ使用*/ $clsFilter->function();
330 :
nobodyさん :04/09/22 15:11:38 ID:shVA5n05
$mail = "
[email protected] "
$subject = "件名:秩父の秋";
$msg = "メールの内容秩父の秋はなんたらかんたら";
$header = "色々";
mail($mail, $subject, $msg, $header);
↑これを実行すると、相手の$subject(件名)の内容が文字化けて届くんですけど
どのようにしたら、文字化けせずに件名が届くようになりますか?
>>328 前の年のフィルタの一部を利用するならそうならなくもない。
ただ、親クラスがどこなのかわかりづらくなって、美しくないのであまりお勧めはできない。
abstructかinterfaceをひとつ用意して、各フィルタはバージョンごとにそこから派生させるのを基本としたほうがいい。
どうしても必要なら、孫ぐらいは仕方ないかもしれないけど。
あと、前年フィルタのうち次に持ち越されると部分が必ずあるなら、 構造解析からやり直したほうがいいかもな。
333 :
331 :04/09/22 15:30:35 ID:???
ごめん、interfaceはわすれてくれ。PHPじゃ意味ないな。 ちなみに>328のやり方 class FilterFolder { var $element; function FilerFolder(){ $this->element = array(); function attach($filer){ $this->element[] = $filer; } ・・・insertとかdeleteとかメソッド・・・ function checkIsOK($inData){ for ($this->filters as $filter) { $filter->checkIsOK($inData) or return false; } return true; } } とかやっておけばOOPらしいかな。
>>333 326とかのコードをコピペした部分があるとは思うんだが、
もうちょっとコードを丁寧に書いてくれないと分かりづらい。○| ̄|_ i|||
335 :
質問しなおします。 :04/09/22 15:40:26 ID:shVA5n05
$mail = "
[email protected] "
$subject = "件名:秩父の秋";
$msg = "メールの内容秩父の秋はなんたらかんたら";
$header = "色々";
mail($mail, $subject, $msg, $header);
↑これを実行すると、相手の$subject(件名)の内容が文字化けて届くんですけど
どのようにしたら、文字化けせずに件名が届くようになりますか?
ただし、mb_send_mailを使わずに
>>332 mb_send_mailのことですよね?
それが、mb_send_mailは使えないみたいなんで。お答えありがとうございます
337 :
331 :04/09/22 16:16:50 ID:???
>>334 むしろ、}が足りなかった_| ̄|○ >326のやつ借りてきてくれ
質問させていただきます 未だにHTMLでのHPが多いのは何故ですか? PHPは人気がないのですか?使いにくい?知られてないのか 何か理由がありますか?
>>338 とりあえずもう少し勉強してからその問題考え直してみれば?
>>338 教えてあげよう。CGIが必要ない場合はHTMLが一番いいんだよ。
何事もシンプルが一番いいだろ?
>>338 マークアップ言語とスクリプト言語の違いを勉強してきなさい。
>>338 HTML に偽装してるとか裏でアプリ動かしてるとかは考えないのか?
例えば HTML 形式 ならブラウザのキャッシュが殆ど自動的に働くが
PHP でキャッシュを効かせられるような、ちゃんとしてる奴はあんまりいないんじゃないかな
HTTP ヘッダについてしっかり学ぶ必要もある。
>>344 んだから、そのページが静的に作られてると判断した理由はなあに?
.php なページをブラウザで表示してソースを見ても <?php 〜 ?> はないよ。
>>344 よくばりだなぁ
これだけ>339-343の釣果じゃまだ満足しないのか
>>344 根本的なところから勉強した方がいい。
htmlのコンテンツの生成にPHPを使ってるんだよ。
ただ毎回生成するのがいいのか、別のタイミングで事前に生成しておくのが良いのかは
それぞれのシチュエーションによって異なる。件のページはphpのデモンストレーションの
意味合いもあって動的生成。
あと拡張子がhtmlだから動的生成ではないとか、逆にphpだからphpを使ってるとは限らない。
設定の仕方でいかようにも。そこらのサイトなんかだと本当のことは中の人しか判らない。
厨房にマジレスカコイイ
(・3・) エェー 質問に答えられなくてヤキモキしてたお子茶間が溢れ出したんだNE!
ぼるじょあさんはプログラミングもできるのか 知らなかった… すこし関心した
351 :
nobodyさん :04/09/22 18:09:14 ID:Spt3uBKt
フォームから入力された項目に対して, 必須項目に入力されているかどうか, 数字のみフィールドに対して数字以外が入力されているかどうか・・・ 等々を判断してくれるような汎用ライブラリとかはありませんか? 自分でつくろうとしたんですが,radioやcheckboxやselectなど面倒くさくなったのです・・・
352 :
351 :04/09/22 18:16:58 ID:Spt3uBKt
あ,すみません. 追加なのですが,レンタルサーバなもので PEARのHTML_QuickFormなどは使えないのです・・・ 単純にrequireして使えるライブラリやクラスが理想なのですが.
>>352 PEARは普通にincludeして使える。
PECLとかと間違えてない?
355 :
351 :04/09/22 18:28:29 ID:???
質問ですPHPをマスターしたんですが何に使えばいいですか?
そんなエサに俺様がクマー
>356 PHPの本を出版だー
じゃあ、手始めに
>>356 の質問に答えてもらおう。
マスターになるのは結構簡単だよ。 「こんなスクリプト組んでみたんですけどどうですかね?」 「へー、ゴキゲンだねぇ」
362 :
nobodyさん :04/09/22 20:04:55 ID:WbLCczlE
「へー、ゴキゲンだねぇ」
併合期限だねぇ
364 :
TT :04/09/22 21:10:03 ID:wzCQpIRe
mail()関数でのエラーの件(>316です) >317さん 自分のPC上のローカルサーバーでテストをしていて、普段E-メール送信に 使っているSMTPサーバ名やポート番号をメールソフトのプロパティから 拾ってきてphp.iniに記述したんですけど。。。 普段自分のPC上のメールソフトからメール送信はしてるので、SMTPは稼動 してる環境だとは思うんですが・・・
SMTPに問題あり
>>364 >SMTPサーバ名を拾ってきてphp.iniに記述
は変じゃないの。ローカルのpathを記述でしょ。
リモートのSMTPを使いたいならPHPMailerとか使わないと
mail関数だと今のところ出せないと思うけど
まぁ、なんだ。
>>316 と
>>366 は マニュアルのメール部分を読んでくれ。
使用OSを書いてないのでパス。
ああ、「Windowsじゃない」とは確かに明言してないな。
えろんなサーバーでX-Powered-Byヘッダがなくなってておもろかった。
370 :
TT :04/09/23 02:45:45 ID:wbKSUi7Y
364です すみません、使用OSはWindows2000です。失礼しました! マニュアルをもう一度確認してみます。
思えばウェブってのは新しいタイプのサーバーが出るたんびに 大きな動きになるよな。。。次に出るのはなんだろうか?
372 :
二階堂面一 :04/09/23 04:50:35 ID:loTaUpM/
押忍!自分はPHP始めて数日の莫迦モノです。押忍! 開発環境はWindowsXP HOME、使用サーバはレンタルサーバ(PHP 4.3.8)です。 簡単にフォーム送信プログラムをイチから書いて動かしてみました。 フォームから受けた内容をそのままstripSlashes()でクォートを消して mail()で送信してます。 Windowsの一般的なメーラー(Outlook Express、Eudora、Becky!)や Macintosh(OS9系)の一般的なメーラー(Outlook Express)では問題は起きませんが、 Macintosh(OS9系)のEntourageのみ、件名・本文が空白になってしまいます。 誰かこの事象に対するTIPSをお持ちではないでしょうか。 よろしくお願いしますです、押忍!
>>372 多分、適正でない「生SJIS」かなんかで送信してんだろ。
教えて君で申し訳ないです。。。 Mac OS9.2.2 で、PHPのローカルテストをしたいのです。 ですが、検索しても出て来ません。 同じ環境の方はどうやってローカルでPHPを動かしているんですか?
いったい何を検索したの?
PHP使いはアホばっかりやなw
と、アホが申しております。
>>371 ツッコミどころありすぎてスルーされまくってるな。。。
と慈悲の御心で反応。
380 :
nobodyさん :04/09/23 12:29:45 ID:3TpzK2e0
Aファイルの一部を書き換えする時て 1)AファイルのコピーtmpAを作成してそこから1行づつ読み込みループ 変更しない場合はそのままAファイルへfgets 変更する場合は文字列処理してAファイルへfgets 仕上げにtmpAを削除 2)file(Aファイル)で一発読み込み 配列ループで変更する場所だけ文字列処理 Aファイルへ一発出力 処理速度やらメモリ効率やらなんやらでどっちがええやろか まぁファイルサイズにもよるとは思うんけどファイルは1行60バイト前後で300行前後やね
381 :
nobodyさん :04/09/23 12:30:40 ID:3TpzK2e0
1)2)以外でもなんかええ方法あったら教えてタモ-レ!!
速度処理とメモリ効率は大抵トレードオフの関係にあるから どちらが良いとは一概に言えない気がする
384 :
nobodyさん :04/09/23 14:16:20 ID:cIuxyfdR
どなたが教えてください。 藤という漢字だけではないのですが、 特定の文字が化けます。 何がいけないのでしょうか? $test = '藤'; echo "{$test}<br>"; //正常に表示される $test = mb_convert_encoding($test,'EUC-JP','auto'); echo "{$test}<br>"; //?に化ける
>>384 単に文字エンコーディングの検出に失敗しているだけじゃないの?
mb_convert_variablesの説明にもあるが、短い文字列では
エンコーディングの検出があやふやになるのは仕方が無いこと。
解決するには、(解決になってないが)文字エンコーディングを明示するか、
もっと長い文字列を与えるしかない。
phpのバージョンによってautoがまずいと
mb_convert_encoding($test,"EUC-JP");
388 :
nobodyさん :04/09/23 16:14:58 ID:+Z5r+lqe
レンタルサーバのPHPがCGI版でしかもregister_globals On です。 .htaccessにて php_flag register_globals on をやったのですが、internal server error 500 になってしまいます。 CGI版は.htaccessは効かないのでしょうか
みんなPHP覚えて、何に使うか。何をするのか。 覚えたきっかけ。覚えて得をしたこと。損をしたこと。 などなど、少し聞かせてください。
漏れはヒッキーですることなかったから覚えたまでよ
漏れも
俺漏れも
むしゃくしゃしていたから
カッとなってやった。
では、初めはどのようなプログラムを書いたのか どうやって取り掛かったのか 本?WEB?
いまじゃお茶の教室でPHPを教えてるんだよ。
最初はPHPの予定だったが、同名の出版社があるということでPHSになった
最初に作ったプログラムはEUCコードのCSVをSJISに変換するもの
最初は HelloWorld
ブログ。誰でも組める。オライリーのアノ本を見て。
>>388 想像通り効かない。この機会にマニュアルも嫁。
suexecなどでCGI版使わせる場合だと、ユーザ毎にphp.iniが使えるように
インストール時にphpを設定するのが普通。
>>398 テキストエディタとかで一発で出来そうな気がするのは気のせいですか?
403 :
nobodyさん :04/09/23 23:01:52 ID:cIuxyfdR
>384-387 アドバイスどうもです。 みなさまのおっしゃるとおりぽいです。 一文字はやはりだめぽい上に、 autoも怪しいところでした。 その辺考慮してもうちょっと考えたいと思います。 ありがとうございました。
>>402 1分に1回更新されるファイルとかだったらどうする?
それもリモートのサーバに定期的にアップロードされてるものとか。
エディタのマクロの方が良い場合もあれば、スクリプトで対応した方が良い
というか、エディタではできない場合もあろう。
そういうのを「EUCコードのCSVをSJISに変換するもの」と表現したとしたらとっぽいね
とっぽい?
セッションを今勉強してるんですが、自分なりに調べたんですが解らないので教えてください。 セッションを使うとtmpフォルダの中にファイルが作成されると思うのですが、 これはどうやって消すのでしょうか。。 厨な質問だと思うのですがよろしくお願いいたします。。
初めて作ったのは変哲も無い掲示板、そのまえに人のスクリプトの改造から入ったけど・・・。
マニュアルの
http://jp.php.net/session session.gc_probability
session.gc_divisor
session.gc_maxlifetime
あたりを読むと分かるかも。
一定の割合で勝手におそうじされます。
>>409 レスありがとうございます。
マニュアル嫁!な、質問でしたね。。
大変申し訳有りません。
でも助かりました。
ありがとうございました。
ただGCを適当に動かすのって試行錯誤しないと実際にはできないことですよね。 永続化情報とフローの中間を橋渡すだけだから、自分でガリガリ消してもいいんだろうけど。
gcのチューンなんてしばらく忘れてた
413 :
nobodyさん :04/09/24 12:30:26 ID:5Uv+a+mr
クラスの中から、 自分の場所(クラス名、メソッド名)を知る方法があれば 教えてください。
415 :
nobodyさん :04/09/24 13:04:57 ID:MeFHTXD3
携帯やエッヂから現在地を習得するのはどうすればいあでつか?
人生の現在地を知るにはどうしたらよいのでしょうか?
ここは遊び場ではありません
左手の中指下を降りる線の濃いところ。
PHPとあまり関係ない気がします
ぜんぜん関係ないです。
423 :
nobodyさん :04/09/24 14:01:20 ID:SN/xJ/fP
いや 現在地習得システムでつ 位置確認サービス
軽くてコンパクトなLibfileありませんか? 使用頻度が高いのでおながいします
重そうなLivedoor社長とは話はしたことないけど。
PHPLIBって、最近は流行らないの?
最近PHPLIBのありがたさを知りました。
429 :
423 :04/09/24 16:08:40 ID:/JTUfIoi
PHPdetu
432 :
nobodyさん :04/09/24 17:25:01 ID:B4B1YB/Q
>407 session_destroy(); こんなんもあるけどだめ?
PHPには便利な関数がいっぱいあるからな。
>>423 が欲しがってるような関数もあるだろう。
iya_genzaitisyutokusisutemu_detu()関数を使え。
ちなみにyahooBBの個人情報を取得するするには、get_500yen()関数を使えば良い。
マジでか。 だとしたら、bbs_2ch()関数で2ch風掲示板が出来上がるのか。 PHPって便利だね。
>434 今一面白くないな
二面は白いから大丈夫
今一、面白くないな 今、一面白くないな
>432 それではファイル自体は消えないぞ。
439 :
nobodyさん :04/09/24 20:34:25 ID:B4B1YB/Q
>438 消し残しの削除ってことだったのですな。 申し訳なかった。 その時その時のセッションかと勘違い。
440 :
427 :04/09/24 20:52:14 ID:???
>>430 一昔前は、セッションといえばPHPLIBで、
本でも扱われているのが多い(多かった)よね。
「PEARは仕様が確定してないから」とかで
敬遠されてたような気がするんだけど。
それに、PHPLIBにはウィッジェットもあって
便利だと思うんだけど・・・。
あれ?GPSってPHPでないんだ? Perlならあったはず・・・?
セッション管理中のページからのリンク先を 違うセッションで管理したいんだけど PHPのバージョンは4.2.2だったりするから古くて困るけど セッションをクッキー使わずに管理してるときは ちょっと強引だけど$_POSTや$_GETからPHPSESSIDを session_startする前にunsetすればいいけど クッキー管理してるときはどうしたらいいのかな
みんなでこのヴァカがなにを勘違いしているのか推理してみないか? まず漏れ。 京ぽんGPSのページがcgiだからw
う〜ん、じゃあ俺は・・・ PがついてるからPHPかPelでできると思ってるとかw
445 :
うずまら( 'A`)ノI ◆2Gex/8ct1s :04/09/24 23:15:22 ID:Ch62ESQv
¶ , ¶゜ : ¶、 ¶¶¶゜ .¶″ .. ¶ ¶¶¶¶¶ ¶´ :.. .¶l¶¶¶¶ ¶¶¶¶¶¶ .¶ .... ¶ ¶¶¶¶¶ ¶ :、 i、 : .: . .i¶ ¶¶¶¶ ¶¶ ,| : ,、 : : リ .il: ..,,i´ ` .. ,¶ ¶¶¶¶ ¶¶ ..l’ ,,l゙^;,.,,i´` ,イ.』.,l゙ ¶¶¶¶¶ ¶´ ¶¶ ¶¶¶¶¶ :l,,iill,,,,,,,,ll,,il` ,,,i″.,l,ll,,,,,,,,,,,,ll: : : .¶: ¶¶ : : l,: : ¶¶¶¶!゙゙゙゙゙゙¶¶¶,.: ll゙: ,ill!l゙゙゙~゙゙゙゙!¶l, : ,¶¶ み : .'ll: 、.¶¶¶¶◎._::,,l゙’: : .:l,,,,,,◎,,`.¶¶ ,,i¶¶ ,r.、:ll、.,ll: : .,l: .゙“゙゙゙゙゙° : `″ ..,l、.i、 ,:¶¶¶ ._,llト: : ll::,l゙ll丶ll° ,===l・,r .,,ill!| :il゜,,ll゜ ¶: : .,,,ll゙° .「,l’ |: ,l!゙':丶 l!゙ .,i! : .,r゙°".,l:,.,lll゙ ¶¶ ,::° : °l゙::'l゜.: ._ ,,liぁ ..,,,,, l,liili、、,,,,,l ¶¶° ¶¶ :,l`: : :llll゙゙゙゙゙゙ll゙゙゙゛丶 `: : ,Z`li: : : :”~”゚゙゙゙`':`。 ¶
PHP5.0.1を使っています。 image関数のgetimagesizeを使ってSWC形式のサイズを取得しようと思ったのですが、何故かfalseが帰ってきてしまいます。 SWF形式は正常に取得でき、zlib圧縮関数も導入してあります。 PHP4.3.8では正常に動くので、PHP5.0.1のバグの可能性もあると思うのですが ご存知の方がいらっしゃいましたらよろしくお願い致します。
>>443 PHSと間違えてんじゃね?
たしか昔PHSと間違えて書き込みした奴がいたような。
でもPHSってGPS機能付いてたっけか。。?
449 :
nobodyさん :04/09/24 23:37:20 ID:gRGLb/8y
質問させてください。
formから画像をアップロードした場合、ファイルタイプを判別するには
どうすればいいでしょうか?
>>63 さんが「gettype」と書かれているのがヒントだと思うのですが…
画像ファイルは、formにて「name="send_img"」として送信しています。
で、「echo gettype($_POST['send_img']);」とすると、
「string」と返ってきます。
また、直接「echo $_POST['send_img'];」とすると、
「C:\WINNT\TEMP\php77.tmp」と返ってきます。
php77.tmpは一時ファイルだと思うのですが、
php77.tmpから「image/jpeg」などと判別させることは可能でしょうか?
もしくは、アップロードしたファイルからファイルタイプを判別する方法を教えて頂けませんか?
450 :
449 :04/09/24 23:48:23 ID:gRGLb/8y
すみません、PHPのマニュアルを読んでいたら自己解決しました。 echo $_FILES['send_img']['type']; とすると、タイプが返ってきました。 スレ汚し失礼しました。
携帯のみのアクセスにしたいのでつが 端末によりページを変えるにはどうすればよいでつか?
>>451 UserAgentで出力を変えるとか?
REMOTE_ADDR 見て分ける方が確実
すれ違いな質問だけど、携帯対応サイトって新機種が出る度にソース改変してるの?
マジでいってんのか?
>>36 亀レスですまんが、ありがとう。
<?php echo "<?xml ...?>"; ?> をやっちゃうとそれがXML文書じゃなくなっちゃうので困ってました。
short_open_tag = Off でいきます。
ありがとうございました。
>>454 ケータイ側のアプリも併用してる場合は、一応テストするけどね。
メンテ工数には入ってないから、要望があればだけど。
まあ実機テストも限度があるので元々既存の機種でもそんなに揃えてやってない。
本テストで自分ならパケ死するぐらいの金額逝った…それを何台もはちょっと
458 :
457 :04/09/25 02:07:34 ID:???
ついでだけど、ケータイ用の回線エミュレータいれてる人いる?勿論会社で そもそもケータイ用のがあるのかも知らないんだけど、一般電話回線用のは昔導入して使ってた。
phpize ←オマイラこれを発音して書け
>>451 ケイタイのみってのはapacheの設定で、ホストでキルのがベスト。
端末ごとの判断はUserAgentか、HTTPヘッダ(x-jphone-msnameとか)
>>457-458 うちはオープン前に全機種チェックするぞ。時間いくらで借りられるとこあるし、
公式サイトでボダEZなら端末センターで無料で使えるし。
お助けください。 現在、インデックスリストを表示するやつを組んでます。 dir() に日本語表記のフォルダ読ませるにはどうしたらよいのでしょうか…。 さっきから色々試してるけどもう限界…
>>462 なんの工夫もなく読めますが。
文字コードで躓いてるのかもしらんが、
環境も処理も書かないアホは死んだ方がいいんじゃない?
釣りまがいの質問にも答えてるいい奴じゃないかw
いいかげんネタ質おおすぎ
471 :
12 :04/09/25 10:06:38 ID:???
phpは自動で型を変換してくれるのに キャスト演算子があるのはなぜなんですか?
便利だから
強引に型変換したいから
475 :
442 :04/09/25 12:34:18 ID:???
ちょっと高度な質問だったみたいですね
藁
442は日本語が意味不明
確かに解読するのに高度な技術がいるな
7行あるけど1行の文だしな。
>>442 正直いって他の人と同様やりたいことがわかんねぇよ。
(他の人は判ってんのかも知んないけど)
session_destroy→session_id(NewID)→session_startってことか?
>>480 まさかそんな簡単な質問するのに7行も書いてないって。
>>480 違う
AというページからBというページにtarget="_blank"でリンクして
BのページとAのページとで違うセッションを持ちたい ということ
デストロイするとAのページで持っていたセッションも破壊されるので
だめだよ
session_startすると勝手にセッションIDが振られるけど このセッションID名のようなものを自分で生成したいと思ったら どうしたらいいかな?32文字の0〜fを羅列すればいいだけ?
>>482 その挙動はセッション変数で管理した方が早いんじゃないのかな?
442氏と似たようなことかどうか判らんけど。 1.PHPLIB使って認証してるページのフォームボタンから JavaScript経由で別ウィンドウを呼び出し (その別ウィンドウは認証やセッションをしない) 2.その別ウィンドウを閉じる 3.元ページを操作(submit)すると再認証を要求される という流れがあって、はて?と思ったら、元ページにアクセスする際 (当然最初だから認証画面が出てくるわけだが)、 ブックマークから飛ぶと上記の再認証は発生しないのだが、 別ページのリンクから飛ぶと上記の再認証が発生するという現象に 出くわした。 これについて何故そうなるのか教えていただける人いますか? ブラウザはIE SP6です。
>>483 乱数を種にユニークなIDでも生成して、そのMD5ハッシュ値でも取る。
中でも同じようなことやってた筈。
>>482 ならば session_destroyはしないで、session_id(NewID)→session_start
とすれば良いだけ。後で戻る時に元のIDを返してやるように保持しとかんと駄目だけどね。
つか、そんならsession_name使って別セッション名でパラに持った方がすっきりするんじゃないのか。
スクリプトをEUCで書いてShiftJISで出力するため、 ob_start("mb_output_handler")を使っています。 この場合、最後にob_end_flush()をコールしてもしなくても 同じ結果になると思っていいでしょうか。
>>486 ありがとう
とりあえず時間+乱数とかでやってみます。
そのIDでsession_nameやれば多分いけそうですな。
勝手にSESSID振られるとまずいの??
すいませんPHPで 一定時間内に一定回数以上のアクセスがあったIPアドレスからのアクセスを 一定時間制限するようなページってできますか?
できますよ
それはどういう風にすればいいのでしょうか? どこかに出来合のモノがありますか?
それからできればサイト全体をそうしたいのですが それもできますでしょうか?
サイトの全部のページをPHP化するのは出来ませんから PHPを通してアクセスするような感じにしたいです
して下さい
そんな面倒なことをしなくてもwebサーバでやればいいじゃないか?
要求にあった拡張機能(モジュール)を探して使え。
現在のところ349個あるらしいから大抵は見つかるだろう。
http://modules.apache.org/ モジュールが見つからない場合は自分で作れ。
そして一生メンテナンスしろ。
これでOK?
498 :
nobodyさん :04/09/25 23:34:28 ID:b9Ydmcot
新規質問だったからageます
499 :
nobodyさん :04/09/25 23:38:27 ID:b9Ydmcot
>>497 使えるものを知りませんか?
モジュールを作るのは大変そうです
一生メンテナンスする人っていますかね?
↓次の人どうぞ〜
↑難しいみたいですね
echo(DAY_1);
503 :
nobodyさん :04/09/26 01:25:20 ID:xki5KZNu
下記のようなスクリプトを作ったのですが、
実行すると
Fatal error: Call to undefined function: () in ****.php on line 8
というエラーが返ってきます。
どうも最後の行に問題があるようですが、どうしても解決できません。
何がだめなのでしょうか?
<?php
$local_file = '
http://www.****.com/test.gif ';
$remote_file = '/public_html/';
$ftp = ftp_connect('ftp.****.com');
ftp_login($ftp, '$id', '$pass');
$ftp_put ($ftp, $remote_file, $local_file, FTP_ASCII);
?>
_$ftp_put ($ftp, $remote_file, $local_file, FTP_ASCII); ↑
ポジティブ?<?=POSITIVE_SIGN?> ネガティブ?<?=NEGATIVE_SIGN?>
文法ミスとは情けない限りだな しかもたったの8行で 漏れは1行でも英語の文法ミスるが
>>503 > ftp_login($ftp, '$id', '$pass');
これじゃ
>>504 の指摘してるミスがなくても動かない。
一重引用符は内容を解釈しない。
508 :
503 :04/09/26 02:34:02 ID:xki5KZNu
わいはあほや〜 わいはあほや〜 わいはあほや〜
関西人ならしょうがないか
関西民国人ならしょうがないな
関西は独立国?
分子レベルで分解して霧散してくれ
∩( ´Α`)< 先生、質問です!! ∩( ´Α`)< FLASHからPHPを読み出して、リアルタイムでFLASHを挙動させたいんです! ∩( ´Α`)< そんなことは可能なんでしょうか!? ∩( ´Α`)< つまり、誰かとリアルタイムでネット対戦とか、そういう感じです!
お前は上司にもそうやって質問するのか?
>>513 じゃあhttpのしくみについてレポートを作って職員室まで来なさい。
∩( ´Α`)< 先生!早速やってみました!! ∩( ´Α`)< HTTPは、HyperTransferProtocolの略であります!! ∩( ´Α`)< HTTP は 1990年から存在するようになりました! ∩( ´Α`)< 現時点のHTTPはRFC2616で定義されています!http/1.1です!! ∩( ´Α`)< HTTPは、共同的ハイパーメディア情報配布システムのためのものです! ∩( ´Α`)< そして、先生!HTTPは、ポート80を標準として使用します! ∩( ´Α`)< HTTPは、WebブラウザとWebサーバの間での通信プロトコルであります! ∩( ´Α`)< ちなみに、通信プロトコルとは、ネットワーク上での通信の規約の事です! ∩( ´Α`)< 通信プロトコルは、大きく分けて7層に分かれています! ∩( ´Α`)< 物理層、データリンク層、トランスポート層や、アプリケーション層等です! ∩( ´Α`)< ちなみに、先生!HTTPの場合、第7層のアプリケーション層に含まれます! ∩( ´Α`)< 第7層には、FTPや、POP3、SMTP等もあります! ∩( ´Α`)< 先生!今回このレポートを書いて、インターネットの色々な事がわかました! ∩( ;´Α`)< 先生!先生!でも、ごめんなさい!!殆どWikiPediaで調べました! ∩( ´Α`)< 先生!先生!何か、罰をください! ∩( ;´Α`)< 先生!先生!先生!もう32行なのでかくことが出来ません!!
暇ね
518 :
先生 :04/09/26 13:33:55 ID:???
>>516 間違い大杉でやり直しだバカチン
ついでにwikiも修正して来い
>>516 それは「TCP/IPにおけるhttpの位置付け」だな。
「ちなみに」が多い割にしくみについて全然触れておらんので
それじゃあ10点しかやれんよ。
session_start などの関数がありますけど、 イマイチ「セッション」という概念が良く分かりません。 ぐぐっても、本見ても詳しく書いてないんですが、 だれか教えてくりそ
( ● ・3・ ● ) エェー >本見ても詳しく書いてないんですが . 嘘つくなYO
便乗質問。 session関数と同様の働きする関数ってある??
>>522 同様の働きをするものが二つも三つもあっても仕方なかろう・・・
そりゃ一部にはchopとかエイリアス関数はあるが
( ● ・3・ ● ) エェー > session関数と同様の働きする関数ってある?? session関数使えYO
525 :
522 :04/09/26 14:26:40 ID:???
いや、sessionが必要な働きするスクリプトなのに、 どうもsession関数が使われてないの見つけたんだよね。 だから聞いてみた
>>525 ほんとかよ
「Cookieに記憶させてました」じゃねーだろーな
きっと自作しちゃったんだよ
すいません、日記スクリプトを書いてて文中のURLに自動リンクを貼ろうとしてます。
で、勉強して間もない自分では難しかったので検索で見つけたのが、このスクリプト
$text = ereg_replace("(https?|ftp)(://[[:alnum:]\+\$\;\?\.%,!#~*/:@&=_-]+)(\n)",
"<a href=\"\\1\\2\" target=\"_blank\">\\1\\2</a>",$text);
ただ、日記スクリプトなので、一度書いた日付の日記を再編集する機会が多く、
<a href="
http://hoge.com " target="_blank">
http://hoge.com</a >
このようにリンク済みの状態になっている二つのURLの両方共に、
それにイメージタグの中のimg src=の後にまでリンクが貼られる始末です(;´Д`)
よく使われるスクリプトだと思われますが、
皆さんはどのような方法で対処してるんでしょうか…。
ぶっちゃけ、セッション関数が無くても サーバにデータ保存できるなら セッション関数を自作することは屁の河童です。
PHPでのアップロードってサーバーの実メモリ以上の容量のファイルもアップロード可能でしょうか?
>>528 ( ● ・3・ ● ) エェー 表示する時だけタグつければいいBE
>>528 保存する時に変換するのではなく、表示する時に変換するとか?
>>530 試してレポートよろ。
HTTPのPOSTでギガ単位レベルのアップロードなんて、どれだけ実用的なんだか知らんけど。
>>531 >>532 ああ、なるほどー、と思ったんですが、
それだけだと日記文中のイメージタグの中のimg src=の後にもリンク貼られちゃいますよね?
後、今気づいたけどこのスクリプト、URLに入った日本語部分はすっ飛ばされる…。
>>534 ( ● ・3・ ● ) エェー URLの拡張子見て囲むタグ変えればいいんじゃないのKANA
>>535 画像を画像として日記中に表示させたい時もあれば、
余所サイトにいわゆる直リンしたい時もありますので…。
>>536 ( ● ・3・ ● ) エェー 今までどうやって区別してたんだYO
>>536 他のタグに囲まれてない時って感じにすればいいんじゃないか?
普通、画像表示は相対パスにすると思うけどな
>>537 ハイ、それが出来ませんでした…。
>>538 > 他のタグに囲まれてない時って感じにすればいいんじゃないか?
それが自分の力で出来たらいいんですが…。
すいません、初心者スレ行ってきます。
といいつつあれからずっと触ってたんですが、 とりあえず考え方として、URLの直前に改行コードがある場合にのみ リンクを貼る、というやり方にしようと思いました。 これでタグで囲まれている時、及びimgタグの中である場合には無視できるのでは、と。 で、もう一息(多分)なのですが、どうもリンクが貼られないようです。 よければアドバイスなどいただけないでしょうか。 $text = ereg_replace("(\n)(https?|ftp)(://[[:alnum:]\+\$\;\?\.%,!#~*/:@&=_-]+)", "<a href=\"\\1\\2\" target=\"_blank\">\\1\\2</a>",$text);
せめてID出すか、質問した時のレス番号を名前に入れろよ。 誰が誰か分からんし。
最長マッチ使え
>>129 >>132 亀レスで失礼
PHPの4.2.0以降のバージョンでは、セキュリティ強化の為、POST・GETによるフォームデータが以前のような「$変数名」では取得できない設定になっています。
php.iniファイルのちょっと下の方にある
register_globals = Off
と言う設定文がそうですが、デフォルトで「Off」に設定されています。
ここを「On」に替えれば、以前のように簡単にフォームデータが取得できます。
>>543 そうか。「最新 PHPハンドブック」のサンプルソースの
ページを見ていて、なんでかなーと思っていた疑問が
解決した。
・・・が、面倒な仕様変更だね。仕方ないか。
>>544 例えばこんな関数があるとする。
function check(){
if( 送信されたフォームデータのチェック ){
$flag = true;
}
if( $flag == true ){
return true;
} else {
return false;
}
}
これを使うスクリプトに
http://hoge.com/check.php?flag=true なんてのを送られてきた場合、
フォームデータのチェックが通っても通らなくても true が返ってしまう。
これじゃ危険だろ?この返り値がtrueならデータの削除処理などをする、なんて時とかは特に。
まぁそんなヘンテコは関数作る奴は居ないけどな いや、例としては分かるけど
>>541 すいません
528=540です。
>>542 > {}? 最短マッチ(? がないと最長マッチになる)
最長マッチ入れてみましたがリンクが貼られませんでした。
$text = ereg_replace("{\n}(https?|ftp)(://[[:alnum:]\+\$\;\?\.%,!#~*/:@&=_-]+)",
"<a href=\"\\1\\2\" target=\"_blank\">\\1\\2</a>",$text);
何でそんなに回りくどいことしようとしてるの? 改行の次は行頭だから、 ^(https?|ftp) こっちじゃ駄目なん?
>>548 >>549 その二つを織り交ぜて変更しました。
$text = preg_replace("^(https?|ftp)(://[[:alnum:]\+\$\;\?\.%,!#~*/:@&=_-]+)",
"<a href=\"\\1\\2\" target=\"_blank\">\\1\\2</a>",$text);
ついにエラーが出て動かなくなりました。
すいません、僕は愚図でノロマな亀です…。
あ、エラーは出てないや。 ただ、$textが空っぽになった模様。
何がしたいのか見えてこない
そりゃあーた preg_replace_allしないと
>>552 単純に、頭がhttp|ftpで始まる行があったら自動で<a>タグのリンクをくっつけたいんです。
$text = ereg_replace("(^https?|^ftp)(://[[:alnum:]\+\$\;\?\.%,!#~*/:@&=_-]+)",
"<a href=\"\\1\\2\" target=\"_blank\">\\1\\2</a>",$text);
行頭の「^」の位置を増やしてみたけどスルーされるなあ。
555 :
553 :04/09/26 20:52:26 ID:???
スマン、素で間違えた
馬鹿がいっぱいw
$str="test
test
http://www.google.jp/ test
test
";
$str=explode("\n", $str);
foreach($str as $line){
$line=ereg_replace("^(https?|ftp)://([^:/]+)(:(\d+))?(/[^#\s]*)(#(\S+))?", "\\0", $line);
echo $line;
}
いきなり答えだけど、一個一個調べろ。
いちいち配列に戻して処理なんて基地外みたいなことしてる奴に言われても説得力ねーーーw
558 :
556 :04/09/26 20:54:45 ID:???
あぁ、アンカーで囲むの忘れてた。 答えになっとらんね。 そこは自分で解決してみ〜。 因みに、もっともっと他にやり方はいっぱいある。 もっとスマートな方法も。。
559 :
556 :04/09/26 20:55:13 ID:???
>557 じゃあ答えろよ。
配列に戻すなんてpreg_replaceの用法全然理解していないバカが何粋がってんだか
556のような教えたがりチャンっていつでもいるなぁ…
>>547-561 お前ら頭おかしんじゃねーの?
PHPどころか正規表現すら分かってないんじゃない?
かあいそう(←なぜか変換できない)な528に乾杯。
も・・もうちょい・・・。。
>>556 すいません!
やはり行頭を表す「^」が入ってるとリンクされないでスルーされます
(「^」外すとちゃんとアンカーで囲むようにはできました)
どこがおかしいんでしょうか。
$text=explode("\n", $text);
foreach($text as $line){
$line=ereg_replace("^(https?|ftp)(://[[:alnum:]\+\$\;\?\.%,!#~*/:@&=_-]+)",
"<a href=\"\\1\\2\" target=\"_blank\">\\0</a>", $line);
$temp_text= $temp_text.$line;
}
$text=$temp_text;
528空気読まずに元気に質問ワロタ
( ● ・3・ ● ) エェー これならどうかNA $text = ereg_replace("([^[:punct:]]+)(https?|ftp)(://[[:alnum:]\+\$\;\?\.%,!#~*/:@&=_-]+)", "\\1<a href=\"\\2\\3\" target=\"_blank\">\\2\\3</a>", $text);
おまいら・・。
>>569 できました!
というか文中の\nを<br>に変換してたのを忘れてました!
なので
>>556 さんのでも動くと思います。
ありがとうございます!
時間かかったけどよかったね
死ねよカス
良い勉強になったと思う。
こいつ自身じゃ何もやってねーじゃねーか。 教えるだけ無駄。
ここは僕の顔にめんじて引いてください! 争いは何も生まない!
ワラタ
ワロタ
>>543-544 超FAQなんで放置されてただけですよ
>>545 そのスクリプトなら問題ではない
なぜならregister_globalsディレクティブがonの時に登録される変数は、
スーパーグローバル ではなく、単なるグローバル変数。
故にcheck関数内の別スコープでは$flagは現れない(=未定義)
珍しく真面目な野郎が現れたぞ。
>>519 7階層ならTCP/IPだったか?OSI参照モデルの方じゃ無かったのか?
( ゚Д゚)ポカーン・・ また知ったかが
>>582 PHPのスレじゃなくて専用スレでやってくれ
>>582 HTTPは5層(セッション層)だと学校で習わなかったのか?
とりあえずe-wordに逝けよ無知野郎
>583 メール欄見ろ。
session_start();がすでに開始されているかどうか確認する方法で なるべくスマートなやり方ってありませんか?
>>585 HTTP は アプリケーション層からセッション層までを跨いだプロトコルです
>>587 セッション変数を発行してそれをプリントしてみる
>>587 if (session_id()) {
echo "セッションが開始されている";
} else {
echo "まだセッションが開始されていない";
}
>>589 >>590 お二人ともありがとうございました。
session_idの方が、作ってるものの条件に
合っていたので、そっちでやってみます。
なんか上のほうでやってるURLのタグ置換の話だけど URLの最後が .jpg や .gif だったときには img タグ、 それ以外は a タグに置換するようにすれば、あんな ごちゃごちゃしたコード書かなくても済むよね。
>>592 ( ● ・3・ ● ) エェー よく読めYO
Win2000Pro+PHP5.0.1+Apache2で開発中です。 FTPサーバ”nekosogiftpd 1.20”をローカルに立ててテストしてるんですが、 PHPのFTP関数の返り値がおかしいんです。 <?php $ftp_con = ftp_connect('localhost'); ftp_login($ftp_con, 'hoge', 'hoge'); $result = ftp_chdir($ftp_con, 'hoge'); var_dump($result): ?> このようなスクリプトを実行すると、ftp_chdirの成否に関わらずFALSEが返ってくるんです。 成否はFTPサーバのログやftp_pwdで確認できます。 どんな原因があるんでしょうか。
$_POST[mail]みたいに'や"でくくらない書き方って あるんですか?
includeとかreadfileでリモートファイルを読みたいのですが、
難なくできるファイルと403エラーになるファイルがあるのはなぜですか?
$result = file('
http://...php?hoge=piyo );
↑こんな感じで例えば検索サイトの抽出結果などを取り出したいのですが。
>>595 非推奨ですが読んでくれます。
でも、できれば"(より望ましいのは')で括るべきでしょうね。
>>598 403エラーの意味を考えろ。
HTTPの知識つけてからPHPしろや。
次の脳内患者さん、どうぞ。
>>595 "###$_SERVER[HTTP_HOST]###" のように文字列中にある場合は Notice も出ない。
でもやめといた方がいい。
いろいろ考えたけど僕の頭では考え付きませんでしたのでおしえてください。 phpで書いたソースのhtmlのみを.htmlとしてcopyすることってできますか?
606 :
605 :04/09/28 06:57:08 ID:???
解決しました
607 :
nobodyさん :04/09/28 10:32:13 ID:V6CF9F0W
>>594 レンタル鯖に同じことやったが問題なかった。
nekosogiftpdが正しい値を返してないのかもな。
ん、やっぱFTPDの問題だな。 QUICKFTPでも問題ないがnekosogiだとfalseが返ってくる。
648 :非通知さん :sage :04/09/28 17:46:39 ID:qmurh+C2 ここでマジレス ↓ 649 :非通知さん :sage :04/09/28 17:47:16 ID:9ReSWf70 うんこはいいにおい
610 :
nobodyさん :04/09/28 18:23:39 ID:wWo5p4+T
暗号化/複合化の処理を行いたいんですが、 PHPにディフォルトで入ってる関数って一方向暗号化のものしかないんで困っています。 レンタルサーバなので mcrypt 入れる訳にもいきません。 自前で暗号化/複合化関数つくってる方っていないですか?
複合化できるの使うなんて大した度胸だねぇ
>610 どんなレベルで秘匿する必要があるデータかによる。 単に平文流れるのが嫌だってんなら、 base64のencode/decodeでいいし(極端すぎ)
PostgreSQLに関する関数を使ったPHP、hoge.phpを、
php hoge.php
とコマンドして実行すると、自分の意図どおりに動くのに、
http:// 〜〜/hoge.php
のような感じで、ApacheでPHPを実行すると、SQLに接続できないです。
原因をご存知でしたら教えてください。httpdを再起動したりしましたが無理でした。
614 :
613 :04/09/28 19:13:42 ID:???
自己解決いたしました。すみません
615 :
nobodyさん :04/09/28 19:15:33 ID:wWo5p4+T
>>611-612 ありがとうございます,気持ち暗号化しておきたいだけなんで・・・
だったら base64+α くらいでいいんですかね,やっぱり.
でも結構本気の暗号化が必要で,mcrypt使えない人とかは
どうしてるんでしょう?
自己解決した人、1行くらいで 凡ミスの理由を書いて欲しい・・・って 思うのは私だけ?
>>616 普通は自己解決しても、聞いた限りは書くべきだよな。
きっとApacheが動いていたユーザ(nobody)でSQLサーバに接続しようとした。 userを指定したか、SQLサーバにnobodyで接続できるようにしたかのどちらかじゃないかな。
>>615 気持ち程度でもいいのなら、元の文字列から1バイトずつ取り出して
適当な値とxorするとか、足し算するとか、してみてはどうだろう?
それをbase64変換して流せば、例えデコードされても
元のデータの意味は分かりづらくなると思うよ。
$text = mb_eregi_replace('([ァ-ヶー]{3,})', '<a href="search.php?key=\1" class="keyword">\1</a>', $text); このような処理を考えているのですが、serch=?key=\1 の \1 を urlencode したいのです。 $text = mb_eregi_replace('([ァ-ヶー]{3,})', '<a href="search.php?key=' . urlencode('\1') . '" class="keyword">\1</a>', $text); とやってみてもダメでした。 何か良い方法はありませんか?
PHPで、 スクリプトの終了時に呼び出すハンドラを設定することは できますか?
624 :
620 :04/09/29 01:55:26 ID:???
625 :
621 :04/09/29 02:28:55 ID:???
>623 register_shutdown_functionですね。 ありがとうございました。
626 :
nobodyさん :04/09/29 02:36:18 ID:VlQlAY+W
627 :
nobodyさん :04/09/29 15:52:26 ID:LWHTYlg+
あるphpを設置したところ、 Querry Err SELECT COUNT(*) CNT from CM_M Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/*****/www/ad/cm_list.php on line 80 などというメッセージがたくさん出てしまいました。 これはうまくMySQLにつなげてない事を示しているのでしょうか?
>>626 ソースのコメント読めば分かるだろ。
拾いたいモジュールがあればmoduleTagsプロパティに追加してやればいい。
つーかcontent:encodedうざくね。plain textと大差ないくせに。
<?php
require_once 'XML/RSS.php';
$rss = new XML_RSS('test.rss');
$rss->moduleTags[] = 'CONTENT:ENCODED';
$rss->parse();
foreach ($rss->getItems() as $item) {
print $item['content:encoded']."\n";
}
?>
>>627 英語が読めないので訳してくれ、ってことか?
cm_list.phpの80行目でmysql_fetch_array()に渡された引数は有効なMySQL result resourceではありません。
>>629 その前の query err も訳してやったほうがいいみたいだぞ。
>>627 SQL文が間違っているようだ。
文法的には問題ないので、 テーブル CM_M が未定義なんじゃないの?
MySQLに聞いてみればいい。
634 :
627 :04/09/29 16:38:50 ID:LWHTYlg+
プログラムの文法自体が間違ってるんですか? それならば私の設置したサーバーには合わない、という事ですね。 みなさんありがとうございました。
PHPで掲示板とかのログをテキストに保存するのに比べてMySQLに保存するのってどういう利点がありますか?
>>634 えええ?何を言ってるんだ君は。
最初にDBの下準備が必要なんじゃないか、という流れだよ。
639 :
635 :04/09/29 17:21:09 ID:xRdAx0d3
どのみちネタ質問だ。いいかげんウザイんで死んでくれ。
とっても無意味なIDと質問をありがとう
>>636 使い方が分からない→使えない
って事なんだろうから放っておけば
643 :
nobodyさん :04/09/29 17:50:55 ID:PVuY1v0f
include() とか require() って ファイルから読み込むのが普通ですが、 これを stringから読み込む方法は無いでしょうか?
645 :
643 :04/09/29 18:17:30 ID:PVuY1v0f
>>644 ありがとうございます。
<html>
<head></head>
<body>
<?php
print("Hello");
?>
</body>
</html>
というStringをPHPを評価して読み込みたいわけです。
fileに対してのinclude()だと可能ですが、
stringに対してのeval()だとParse errorになるようです。
> stringに対してのeval()だとParse errorになるようです。 マニュアル読めないのか? phpソースに<html>なんて出てきたらエラー出るのは分かりきってるだろ。 eval('?>' . $html . '<?php ');
648 :
643 :04/09/29 18:34:15 ID:PVuY1v0f
(´・ω・`)ショボーン
649 :
643 :04/09/29 18:38:18 ID:PVuY1v0f
>>647 ありがとうございます。目から鱗でした。
(`・ω・´)シャキーン
# はい。Parse error は確信犯です。
まあPHPもSQLも軽さでしか使わないと思うんだが・・・ 常時1000人が繋がってると仮定するから。
651 :
nobodyさん :04/09/29 19:03:20 ID:9Wp4ccns
MySQLで登録されたデータを検索して、何件引っかかったのかPHP側で出力したいのですが、 $cnt = mysql_query("select count(*) from テーブル名 where 条件", 接続ID) と記述しておいて本文側でprint文で表示させてやるとResource id #2 と表示されてしまいます。 mysql_fetch_arrayは配列取得の関数なので用途が違うと思うのですが、どうすれば良いでしょうか?
>>651 違うと決め付けずにmysql_fetch_arrayの結果をvar_dumpでもしてみれ
>>651 俺だったらPear::DB使って
$cnt = $db->getOne($query);
するな。
>>651 mysql_queryの返り値から得るとか有り得ないだろ
別名を付けて値を得る
select count(*) as cnt ...... とか
656 :
651 :04/09/29 19:24:28 ID:???
>>652 なるほど。配列に格納される様になっていたのですねorz
>>653 PEARを使おうとも思いましたが、件数表示のためだけに使うのも…と思ってやめました。
今度機会があったら使ってやってみようと思います。
返答ありがとうございました。おかげさまで解決しました。
657 :
651 :04/09/29 19:29:52 ID:???
>>655 そういう方法もあるのですか…勉強してきます
>>651 $hdl = mysql_query('SELECT * FROM … WHERE …') or die('失敗');
$num = mysql_num_rows($hdl);
print $num;
ってんじゃ、いかんのか?
>658 資源の無駄
たった今バッチ1本と検索系1本書き終えましたー。 これが初めてPHPで書いたコード。 質問はしなかったけど、ログは参考になったので、ひとことお礼まで。
662 :
nobodyさん :04/09/29 23:17:00 ID:pA14RzMO
たまたまこのスレ覗いてみただけなのですが、 >659 さんの仰っている資源ってどのことを指すのでしょうか?
ケナフとかだろ
>>653 $s = "select count(*) as total from ...";
$q = mysql_query($q);
list($total) = each(mysql_fetch_row($q));
将来的な互換性も考慮するとpearとかくだらんものは使わないほうが良いと思われ。
>>664 PEARよりあなたの方がくだらないですよ(^^)
そこでphplibですよ
666get, zuzaa
orz
>>662 SELECT COUNT(*) だとmysqlが返すのは数値ひとつ
SELECT * だとwhereに該当する行すべて
といいたいんだろうけど、実際問題としてどのくらい無駄になってるかは
mysqlがCOUNT(*)をどの程度最適化しているか、という実装次第
なんか最近sAGEが多いな〜、 このスレは。。。なんだけどなぁ・・・。 新入りが多いのかレベルも低そうだし。
>>670 Webプログラマー、とくにPHPともなると低レベルなのは仕方ないだろ。
初めてのプログラミングがPHPという奴も多いだろうし。
だよな Cかアセンブラくらいできないとプログラマとは呼べない PHPなんて小学生でもできる
「PHPができる」って意味はおかしいけどな。
その以前に、カポコン自体が低レベr(ry
じゃあなに? PHPが 何?
>>673 いまどきアセンブラってw
あれを選択して得点できる基本情報技術者試験は時代錯誤もいいとこかと。
オブジェクト指向概念でも出題してくれるほうが現場としてはありがたいわけで。
>674 出来る 〜が生じる だからおかしくないだろ
俺はPHPが初めてのプログラミング。 1年やってる。 けど、やればやるほど知らないといけないことが増えまくりでエンドレス。 そして、その度に自分が無知であることに思い知らされる。 何かキリが無い様な気がして、どうしようかと。 趣味でやってる程度だけど、将来役に立つのかさえ分からない。 もの凄く無駄な時間を費やしてる様な気がしてならない。 けど、楽しい。 このスレは、質問したこと無いけど、ずっとROMってる。 言いたいことが上手く言えん。 質問でも何でもないのでスルーよろ。
宣言してない変数は使えないようにしたいんだけど この機能いつ実装されるんだろうな
>>680 そういうオプションがあってもいいような気はするが、
それはPHPの精神には反するんじゃないだろうか。
別に明文化されてるわけじゃないけど。
え、個人的に必要ならやればいいじゃない。エラー周りのコードをわずかに書くだけだし。
>>679 無駄な時間と思えるようになったのなら上等上等。
Cやハードウェアやアルゴリズムに手を出していい時期になったんじゃないの。
Basicじゃものたりなくなって〜っみたいのが、今はスクリプト言語がそれに当たるのかも知れんね。
今はプログラミングも結構細分化されてる部分があるから、 進みたい分野をある程度絞ってるのも手だろう もちろんどの分野のコードを読むにも必要になる知識があるが、 やりながら覚えないと楽しくない 必要だからやっとけと言われても実感伴わないとな
>>677 オブジェクト指向何ぞでプログラミングしてたらROMに収まり切りません。
基本情報処理技術者なんだから、アセンブラやCOBOLなんかの古典的言語も"基本"としてやっとけ。
あとは自分の分野じゃ基本では足りない部分をみっちりやれば良い。
今時、実社会にCOBOLなんてあるのかな いくらやっても、無かったら意味ない それより、プログラムの流れの理解のほうが重要度が高い Cを極めて、プラスもう1つがいいと思うが。
> オブジェクト指向概念 > 基本情報処理技術者 基本情報処理もオブ指向もコーディングだけじゃないのよね
PHP は何時までたっても Perl の分家。お遊び言語にすぎない。 PHP で飯が食える時期はあと数年だよ。本気なら C/C++ だね。
PHPもPerlと同じで一時だけ また都合の良いものが出てきたら、そっちへ一斉に乗り換えるから。 C/C++がキッチリしていれば、どんな言語が出ようとも 理解が早い とはいえ、実際にPHPで動かしてる訳で、 趣味でCを勉強すればいいだけとも言える。
C/C++でWEBプログラミングって本気ですか? .粘着厨まで現れたか・・・w。
ごめんなさい。冗談ですた
オレの口から言えることはただ一つ。本気かどうかを決めるのは 本人次第ということだ
今ならC覚えるよかJavaの方が応用範囲広いんじゃね?
694 :
nobodyさん :04/09/30 09:18:21 ID:GWvHODZq
PEAR等に出てくる"::"ってどういう意味?
>>682 設定できないから困ってるんだが
PHP5だと出来るのかい?
>>695 使えないようにというか、エラー設定でE_NOTICEを追加すれば
注意文が出るようになるよ。
>>693 応用範囲を言い出したら、
アセンブラ≧C>Java
なんじゃないか? Cやアセンブラなら手間さえかければJavaのできることはできるよ
応用範囲っていうかケースバイケースでしょうに。 アセンブラはぶっちゃげ覚えなくてもいいと思う。 変数に0入れるより、自分自身でxorしたほうが早いとかそんな時代じゃないしさ。 ゲーム業界でガリガリやるつもりじゃないかぎりはイラヌ。 やるとしてもかじる程度、他の勉強の時間に割り当てたほうが良い。
>>696 参照時はNoticeが出るけど、代入時には出ない。
>>699 ああ、全部「var 変数;」とちゃんと宣言したかったというわけか。。
文盲勘違いでスマソ。あったっけかなぁ。調べてみるか。
fgetcsvとwhileでCSVファイルをテーブル一覧表示にしています。 CSVは20040930.csvのようにyyyymmddで名前を付けています。 これを新しい日付順にソートする方法は無いでしょうか?
702 :
699 :04/09/30 10:58:14 ID:???
>>700 うん。別に俺が元質問者じゃないのだけどね。
俺も最初のころは変数宣言が欲しいなと思ったことはあるが、
慣れてきたのか、もうさほど思わなくなった。
参照の方は、E_NOTICEで回避できるし、代入時のtypoも
うまく言えないけど、簡単に見つけれるような書き方に
なったような気がする。
別にOOPやってなくてもclass使ってコーディングしたことがあれば… static method
>>705 分からない人はだまっておいたほうが質問者のためです
分からない奴はどう分からないかが 分からないのだから、何か反応いるって 分かる香具師は、何が分からないか 分かるから、自分で行動する
どちらにせよ704で情報十分だろ
>>694 それならC言語登場前にユニクスもマルティクスも出来上がってる
応用不可能な分野が増えたために言語&開発手法戦争時代に突入したと思われ
>>704 汎用性があがると生産性が落ちるのかもな
OSI参照モデルの問題設定と同じだ
712 :
705 :04/09/30 14:43:51 ID:???
713 :
701 :04/09/30 15:12:12 ID:???
CSVの中身の表示は置いといて、ファイル名を配列に格納 ソートして表示を試そうとしたのですが、上手くいきません <?php $fArr = array(); $df = opendir ("./csvdata/"); while ($tmp = readdir($df)){ if ($tmp !="." && $tmp !=".."){ $fName = basename($tmp); $fArr[$fName] = $tmp; echo "$fArr[$fName]<br>"; } } closedir ($df); ?> ここからどのようにしたら良いでしょう? echoの上にソート関数を置いたら激しくエラーが出ました
>>713 おらおらっ!
<?php
$fArr = array();
$df = opendir ("./csvdata/");
while ($tmp = readdir($df)){
if ($tmp !="." && $tmp !=".."){
$fName = basename($tmp);
$fArr[$fName] = $tmp;
}
}
closedir ($df);
// ↓ ここで ソート
// ↑ ここで ソート
print_r($fArr);
?>
715 :
nobodyさん :04/09/30 15:52:23 ID:GWvHODZq
>>712 ようやく分かりました。thx!
OOPしたことはありますが、
「必ず」インスタンスを
作るものだと思っていました。
俺はclassも作るし、-> も :: も使うけど… OOPじゃなくて、構造化プログラミング。
717 :
nobodyさん :04/09/30 16:56:43 ID:h+OAAFCj
PHPで携帯の戻るを制御か禁止する方法知りませんか? ドコモとauだけでも…
またお前か
放置しとけばいいさ
720 :
704,712 :04/09/30 18:22:02 ID:GWvHODZq
>712のページのサンプルを引用して・・・ class Aのインスタンスをnewしてから $a->example()とした方が良いのか? A::example()とした方が良いのか? (もちろん、両方の書き方が可能、という前提で) それぞれの利点/欠点を教えて下さい。 (特に、どっちが早いとか、効率が良いとか)
721 :
694,712 :04/09/30 18:22:35 ID:GWvHODZq
あ。704間違い。694でした。
722 :
694,715 :04/09/30 18:23:37 ID:GWvHODZq
712も間違ってるし・・・orz
723 :
nobodyさん :04/09/30 18:26:40 ID:gIFHZKNr
GDってなんでBMPファイル作れないんだろ??
>>720 ここは初心者に手取り足取りOOを教えるスレじゃないんですけど。
PHPでサーバーに保存してあるzipファイルとかを読み込んでブラウザに出力してダウンロードしたいんですが どうしたらいいでしょうか?
>>725 適当なヘッダつけて標準出力に吐けばダウンロードされるよ。
readfileんとこにサンプルが投稿されてるから、それみて後はググって何とか。
725はzipを展開したいんじゃないの?
731 :
725 :04/09/30 19:53:06 ID:???
>>728 やりたいことができました。ありがとうございました。
732 :
723 :04/09/30 19:59:22 ID:gIFHZKNr
BMPをサムネイルにしたり他のフォーマットに 変換したりしたいのだけど imagecreatefrombmpやimagebmpな関数が 見つからないわけですが…
imagecreatefromwbmp() imagewbmp()
734 :
723 :04/09/30 20:13:19 ID:gIFHZKNr
WBMP images are Wireless Bitmaps, not Windows Bitmaps. WBMP is used for bandwidth constrained, black and white, limited devices such as PDAs and Cell Phones. って書いてありますが。 実際試してもできぬ。
ややワラタ
>>734 PHPとリンクしてるGDのバージョンと、
試して駄目だったソースから身だけ(数行で済むでしょ)晒してみ。
ただ出来ないバージョンは無かったと思うがな…
せっかくだからPECL新顔のFreeImageβ使ってみてよ。 画質レポートきぼんぬ。
いやほんとアホのレスはサクっと無視でいいからさ。
739 :
723 :04/09/30 21:09:36 ID:???
Apache/1.3.27 (Win32) PHP/4.3.9 ["GD Version"]=> "bundled (2.0.28 compatible) ---code--- $file = 'test.bmp'; $size = getimagesize($file); $dst_im = imagecreatetruecolor(120, 160); $src_im = imagecreatefromwbmp($file); imagecopyresampled($dst_im, $src_im, 0, 0, 0, 0, 120, 160, $size[0], $size[1]); imagewbmp($dst_im, 'thumb.bmp'); imagedestroy($dst_im); ---code--- Warning: imagecreatefromwbmp(): 'test.bmp' is not a valid WBMP file in c:\root\local\test\bmp.php on line 66 Warning: imagecopyresampled(): supplied argument is not a valid Image resource in c:\root\local\test\bmp.php on line 67
>>739 単純に対応してないBMPフォーマットを食わせてるだけの気がするが。
GDで適当なの画像をBMPで書き出して、それをもういっぺん食わせてみ。
741 :
740 :04/09/30 21:42:01 ID:???
あと確認しときたいが、自分で書いてる
>>734 の意味は
理解してるという前提で話をしてるのだが、大丈夫だよな。
742 :
723 :04/09/30 21:51:32 ID:???
えーっとその対応してないBMPをなんとか扱えないかと 思ってたわけなんですが。 ローカルでimagemagickを試したらいけたのだけども 借りてるサーバに入ってない… 素直に諦めます 涙
743 :
nobodyさん :04/09/30 22:01:16 ID:WCeDx1bJ
会話中突然失礼します。初心者です。 PHPで画面サイズ取得する方法、誰か知りませんか? どなたかアドバイスをください。 ----------------- わかんなかったのでjavascriptと組み合わせて 下のような趣旨のソースにしたけどエラーになってしまいました。 画面サイズによってインクルードするファイルを 変えたかったんです。 ----------------------- <SCRIPT language="JavaScript"> <!-- w = window.screen.width; function jump() { if (w < 1024) jumpURL = "<?php include("top1.htm");?>"; if (w > 1024) jumpURL = "<?php include("top2.htm");?>"; location.href = jumpURL; } //--> </SCRIPT>
またお前か
'〜("〜")〜'に汁。てかスレ違い
>>743 javascriptで取得してPHPに教えてあげる考えであってる。
あとはクライアントサイドスクリプトとサーバサイドスクリプトの仕組みと挙動を理解して来い。
パラメータで処理分岐させるんじゃないみたいだから、 PHPにwidth, heightを伝える必要はない。 ロケーションでそのまま飛ばしてるんだからクライアント側の Getリクエストだけの問題。 jsのlocationで飛ばないケースを対策するのを忘れずに。
アホが釣れたなw
751 :
nobodyさん :04/09/30 23:49:52 ID:qd4TgOT3
test.php?var1=aa&var2=bbb のように呼び出したときに var1の中にaa&var2=bbbという文字列を入れるにはどうしたらいいのでしょうか?
解決しました。 みなさん、ありがとうございました。
>>752 あなたは曽我さんですか?それともジェンキンスさん?
一旦質問振ったら自己解決したら スレ住民にお礼言うより解決の経緯を書くのがマナーでしょ。
755 :
701 :04/10/01 12:44:20 ID:???
757 :
701 :04/10/01 14:16:05 ID:???
>>755 はい
配列にファイル名を格納してソート、count()で配列数を数え
countの数だけテーブルを作りました
ここの人が見たらさぞかし汚いソース何だろうな、と
ほのぼのしていいな。
PHPでhtmlメールを送りたいんですが、普通にメール本文にタグ書けばいいんでしょうか?
762 :
760 :04/10/01 17:32:44 ID:???
違うみたいですね。 もしよろしければ教えて下さい。お願いします。
マニュアル読め
クライアントのリクエストヘッダをそのままの形で取得する方法はありますか? $_SERVER[HTTP_REFERER]等のように個々に指定するのではなく、 まとめて取得したいのですが。
何でマニュアル読まないのかなぁ、 読んだ方が早いのに・・・・・・
答えすぎ甘やかしすぎってことかな
日教組教育のせいって事でつな!
>>751 なんでそんなことしたいのか分からないけど、
$_SERVER["QUERY_STRING"] をごにょごにょいじれば?
マ ニ ュ ア ル に 載 っ て い る ・ ・ ・ 。 ど ん な マ ニ ュ ア ル で し ょ う か (ドキドキ)?
なんか辞書に載ってるからミロ! と同じだな 辞書の使い方が分からなければ、分からない 辞書引いても、用例が分からなければ分からない
ダブルクリック出来れば読めますよ。
>>764 そのままの形っていう意味がわからん。
配列からすべての読み出し方がわからないのか?
京都府警レベルでも読めるってことだな
ワカリマチェェェン
∩___∩
| ノ ヽ/⌒) あばばばばばば
/⌒) (゚) (゚) | .|
/ / ( _●_) ミ/ ∩―−、
.( ヽ |∪| / / (゚) 、_ `ヽ ヨメマチェェェン
\ ヽノ / / ( ● (゚) |つ
/ / | /(入__ノ ミ あばばっあびゃばびゃばば
| / 、 (_/ ノ
| /\ \ \___ ノ゙ ─ー
| / ) ) \ _
>>770 ∪ ( \ \ \
\_)
>>769
764にしたって知りたい言葉入れてエンター押すだけじゃん ぱそこんの使い方ならよそで教わってこいよ
例えばさ、メールする時にしても確実に使う関数、必要だろうと思われる関数、いらないが 勉強すれば便利になる関数とかあるじゃん? そういうのをさらっと書いてあれば便利なんだが。 それとも全部読まなきゃいけないのか? 辞書を全部読まなきゃいけないみたいで嫌だ
他力本願寺はここでつか?
でもみんなはどう勉強してるのか気になる 普通、あれをしてみたい!と一番初めに思うよね そうしたら、それに関係する関数を探すの? そのつど、辞書全部引いて探すの? どうしてる?
780 :
764 :04/10/02 01:18:16 ID:???
>>774 まさにこんな感じです。ありがとうございました。
$_SERVERでなく、クライアントがサーバに渡すヘッダだけ拾いたかったのです。
>>779 > そのつど、辞書全部引いて探すの?
辞書全部って発想がアメウマ臭いなお前。
>>779 パッと作れる人は過去の経験からパズルみたいに組み合わせて作ります。
上にでてきたメールの話をとりあげれば、 メールしたい -> マニュアルの目次を見る -> メール関数発見 (終) Fromに日本語を入れたい -> MIMEヘッダ(常識) -> mimeで検索或いは文字変換関係の関数を調べる -> mb_encode_mimeheader() マニュアルとWebProg(更にはWeb以外のプロトコルも)の知識がありゃ 自力でもなんとかなるもんだよ。 そこを吹っ飛ばした質問が多いから飽きれてきつく言う人もいるんでないの?
784 :
nobodyさん :04/10/02 02:45:37 ID:gzZ8+fHB
クラスってどうゆうメリットがあるんですか? ユーザ関数とは違うんですか?
つかPHP逆引きマニュアルマダー
779書いたけど、今マニュアル全部読んでる。一応 なんかホームセンターの中を回ってる気分 想像力が膨らんできた
つーかPHPやり始めの人間がマニュアル読まないでどうやって学んでるんだ
じゃ、次からマニュアルのココを読め!で いいじゃん マニュアル嫁じゃ分からんだろ。全部調べなきゃならなくなる
当てずっぽで関数探すとか?
だから、分からない香具師は「何が分からないか」が分からない。 それが分かっていたら、自分で調べるだろ
いや、だから。 どう答えるかは、本人の自由かと。
子供に勉強しろ!と叱る親みたいだな。ココ 自分のポジションを明確にしたい為に質問してるのに、 マニュアル嫁はない。
あっそ。
おまえら、もっと検索エンジンとか使えよ そもそも何も分からん奴はとりあえず書店行け
>>794 勉強する気のない奴は誰の役にも立たない邪魔者だし
>>797 やる気ないんだったら、そもそも質問なんてしないだろが。
分からんやっちゃなw
質問の回答得られなくて困るのは回答者じゃないし
>>798 きっと勉強せずにカンニングするタイプなんだろ
答える側にもメリットはあると思うが。 いや、例えば○○がしたいんだけど、どうしたらいい?という質問があったら じゃ、マニュアルのココとココをココを読めば?でいいやん。 1つの事柄について、マニュアル全部読むなんて非効率でかなわん。
>>792 それを自分で超えられるかどうかなんでないの?
まあ俺は友達や先輩に聞きながら覚えたが、
最終的には自分で乗り越えられるかどうかだよな。
2chに友達や先輩の役割を求めてる人が多いって事なのかね。
なんかしら一個言語覚えちゃえば、後は楽なんだけどな。
あの関数はどこだろうなーみたいなおおよそのアタリをつけて調べられるし。
>801 質問者と回答者の考え方から勉強したほうがいいよ
>>803-804 なんの為に4行もレスが離れてると思ってるのか、考えろ
文の読み方から勉強したほうがいいな
↑まぁ教えてくれなかったからってそうカッカすんな
807 :
nobodyさん :04/10/02 05:15:29 ID:4Xpk7UM0
お前だけそうしてろ。 調べる方法はなにもマニュアルだけじゃない。 グーグルもある、本だってある。 くだらない質問してくる奴は大抵、辞書も満足に使いこなせない奴だろ。 俺はそう思ってるし、それでなんとかやってこれてる。 おまえの考えを押しつけるな。
過去ログみてて思ったのだが スレ番的に、なちじょあ ◆yEbBEcuFOU=軟式? どうでもいいが(´_ゝ`)
809 :
nobodyさん :04/10/02 05:28:05 ID:Y9+HS0d0
> おまえの考えを押しつけるな。 禿同。
質問も回答もした事があるけど、
自分である程度調べたら質問文もそれなりに要領を得た物になるんだよね。
質問が間違った知識を元に的を外している、
もしくは複数の意味に捉えられるような書き方した場合は
「マニュアル嫁」で却下される場合が多いな。
>>764 は最初の質問が後者のパターンだった、と。
最初から
>>780 の聞き方をしてれば良かったんだけど
httpリクエストヘッダはhttpサーバを経由して得る、という考えに至らなかったと。
811 :
nobodyさん :04/10/02 08:35:58 ID:ze3q/U93
cont2.php?%E9%01%EE%9A%15%EE%83%D2h%E9v%D4%FD%3DeJ%FA%02%A0%DF%BBM%9D_%A0%DE%B1%E7%8D%FD%E9%9A%96%E1%D0X%18m%84%D1%0A%A9%0AoF%9E%09%0A をデコードできますか??
>>811 俺の知ってるエンコードがなされたものかも知れないが、
実際になされたエンコード方式を教えてくれないとデコードの可否は回答できない。
816 :
nobodyさん :04/10/02 11:53:08 ID:uhB5BMdp
トラックバックの受信機能を日記につけようと思っています。
PEARから
http://pear.php.net/pepr/pepr-proposal-show.php?id=48 を探してきたのですが、使い方がいまいちわかりません・・・
トラックバックを受信した時トラックバックのデータを保存するにはどうすればいいか
教えていただけませんか。
具体的には
他のblogからトラックバックを私の日記へ送信。
↓
トラックバックを受信(受信した場合の保存方法がわかりません。。)
↓
日記に私のトラックバックを表示
どうかよろしくお願いします。
>>816 取り合えずソースの頭に書いてあるサンプルぐらいは試してみたか?
818 :
nobodyさん :04/10/02 12:14:20 ID:uhB5BMdp
>>817 なんどか試してみたんですが・・・、
// store data in your storage
のところで保存処理を行えばいいと思ってたんですが、
どうもうまくいきません。
私だめですね;;
>>818 だめじゃなよ、頑張りな。
君はやればできる子なんだから
>>818 それで合ってるよ。どの辺が判らない(うまくいかない)?
先ずは戻り値の$data配列の中身でもvar_dump()してみ。
821 :
nobodyさん :04/10/02 13:32:37 ID:XE0I1+gL
PHPにてユーザー認証のあるwebサイト(YAhoo等)の 認証後に表示されるデータなどを取得したいのですが どうすればよいのでしょうか? 当然、ユーザー名やパスワードは自分のものを使ってです。
>>821 どうすればいいって・・・とりあえず自分でやってみれ。
HTMLを読んでAction属性で指定されたドキュメントに必要な値をPOSTすればいい。
書式は認証機構による。初心者はブラウザのHTTPリクエストとレスポンスを
横取ってながめてみるといい、というあたりが一般常識かな。
>>821 認証がBASIC認証だったら、それに対応したHTTPクライアントライブラリを利用する。
認証フォームを使ってPOSTで送ってるタイプの認証も同様にPOST送信が可能なライブラリを利用。
どちらもPEARにある。また他にも公開されてるライブラリがある。
自分でSOCKET通信しても良いと思うけど、既に有用なライブラリがあるんだから
それ使うのが良いでしょうな。
他には外部の対応しているプログラム(例えばwget)を利用する手もある。
漏れはpearのじゃなく でつ 使ってる。思いっきりなネーミングが好きだw
http://sourceforge.net/projects/snoopy/ あと、最初は全部自分で書いてみた方がいいね。コーディング量もたいしたこと無い。
エラー処理が必要な個所や、とくにHTTP/1.1の決まりごとはざっと知っておく必要がある。
Socket関数は無理だろうから、fsockopenかstream_socket_clientを使って。
せっかくPHPなんだからどのみちソケット関数はないだろう まずはfsockopenのサンプル使ってPOSTを成功させてみるところからじゃないの
A <?php $a = "abc"; if (ereg($a, abcdef)) { echo "1"; } ?> B <?php if (ereg("abc", abcdef)) { echo "1"; } ?> AとBは、目に見える結果としては同じになると思うのですが 実行速度やメモリ使用量などの観点から見ると どちらのほうがメリットが大きいのでしょうか? それともまったく変わらないのでしょうか?ご教授ください。
A, Bともに未定義の定数abcdefが存在するためエラー処理のロスがある。 A, Bともにダブルクウォートを使用しているためパースされるロスがある Bは変数に代入してい分早くメモリ消費も少ない 以上はマニュアルと常識的な思考ができれば自明。 A, Bの差異はエラーを除いて誤差の範囲であり、実際上無意味なので気にするのはナンセンス。 初心者ほど速度や負荷ネタで盛り上がるが、答える方は無意味な質問に答えされられるため 大変うざったく死んでほしいといつも願っている。
速度比較するならベンチ取るぐらいしてから聞けよ。 早い糞コードより読みやすく移植性の高いコードを書けよ。 毎度毎度毎度同じ回答で申し訳ないとは思うがね。
>>824 でつって商標登録されてんだろうと思ってたが、、、。
大丈夫なのかw
>>827 おおかた自分が予想していたとおりの答えが得られて満足しました。
どうもありがとうございました。
そういや正規表現はPosixよりPCREのほうが早いって書いてあったけど、あれどうなったん? 別ライブラリつかってるままなんだっけ?
832 :
827 :04/10/02 14:52:48 ID:???
>>830 このソースならstrstrを使え、というのもあるがな。
何にしろ腹立たしいアホだ。
>>831 そのままじゃない
どっちもeregだから関係ないけど
ここの質問見てるとereg使ってる人が妙に多いけど、なんの影響だろうね
>>832 なるほど。改良点はたくさんあるわけですね。
勉強になります。
いや俺はホントに腹立ってるんだって。 メモリの使用なんてPHPをソースハック出来るレベルになって初めて分かることだろ。 理由わからずにどっちが速いなんて丸暗記してどうすんの。 正攻法で学べよと思う。 速度にしたってmicrotime()でベンチとればいいだけだし、""のパースとかでかい変数は 参照渡しにするとかDBの正規化とかっていうのはいちいち聞かれてたらたまらんつーの。 基礎の組み合わせなんだから、ベンチやって人のソースを読んでマニュアル読んで少しずつ 分かっていけばいいのにさあ。 やってみて巨大なボトルネックが出来て質問されたなら答える方も挑戦してみようと思うじゃない。 マニュアルに書いて有るようなレベルで速度がどうとか聞かれてもうざいだけだわ。 つーかなんだこの分量バカだろ俺はほんとに
839 :
nobodyさん :04/10/02 15:46:24 ID:f1jlg8jO
文字列中の「"」や「\」の前に\を付けて「\"」や「\\」にしたいんですけど、 $changed = preg_replace( "/([\"\\\])/", "\\ \\1", $str ); こうすると「\ "」「\ \」となるんですが、置換文字列のスペースを詰めて $changed = preg_replace( "/([\"\\\])/", "\\\\1", $str ); とするとうまく行きません。 どうしたら良いでしょうか?
840 :
839 :04/10/02 15:50:41 ID:f1jlg8jO
たぶん、 $changed = preg_replace( array("/\"/", "/\\\/"), array('\"', '\\'), $str ); こんな感じにすれば動作はすると思うんですが、見た目がややこしいのでもっと簡潔に書きたいんです。 どなたかよろしくご教授お願いします。
やってないけど preg_replace('/([\"\\\])/', '\\\\\\1', $str); の間違いじゃないの。
おおスマン。 '/(["\\\])/' か "/([\"\\\])/" どっちかだな。 細かいことは正規表現スレのリンク読めば分かるかな。 # そもそも正規表現の仕事じゃないような気がしないでもないが。
844 :
nobodyさん :04/10/02 16:26:08 ID:UuykfYQH
実運用でPHP5使っている方います? まだ安定性にも不安があるしバージョンアップの間隔も短いので、 やっぱりPHP4で作る方が安心ですよねぇ。 PHP4のクラスは、インスタンスごとにメソッドまで作る(共有しない)らしいので インスタンスをたくさん作るプログラムはPHP5の方がよさそうですが…
845 :
839 :04/10/02 16:30:35 ID:f1jlg8jO
>>843 (842)
ありがとうございます。
ヽ(´▽`)ノ
# それにしても \\\\\1まではやってみたんですが、\6個だったとは...ムズカシイ orz
simpleXMLが使いたかったのでPHP5にしてみた 今はちょっと反省している
リテラル\一個に対して \\\\ ね。参照が \\1 なので計6個。 $1で参照するなら \\\\$1 の4個。 後者推奨とマニュアルにはある。
ねぇねぇ、ダウンロードしてきたPHPマニュアルが 文字化けしてるときはどしたらいいの? ねぇねぇ
>>848 winのchmだろ。散々既出なんで自分で治せ。
質問です。 ファイルへの書き込みで、 ファイルの先頭へ書き込みたいんですが、 うまいやり方がわかりません。 w モードで開いて、新しく全部書き込む方法は 行数が増えた時に負荷も大きくなりそうで心配です。 行数が増えても負荷を小さくして書き込むことはできないでしょうか? お願いします。
>851 'a' 書きこみのみでオープンします。ファイルポインタをファイルの 終端に置きます。ファイルが存在しない場合には、作成を試みます。 これの意味分かるか?
853 :
852 :04/10/02 17:53:52 ID:???
>851 いや、スマン。 読み間違い。 'x' 書き込みのみでオープンします。ファイルポインタをファイルの先頭に置きます。 こっち。
え、、えっくす 知らなかったよ どうもありがとう バカ!
なんだかよく分かりませんが、 どこにファイルポインタを置こうが今回の件に関しては関係無いのではなくって?
856 :
854 :04/10/02 18:13:02 ID:???
xにするとファイルがあった場合WARNINGになってしまうみたいなので、 r+で開いて書き込んでみたんですが、 Windowsでいういわゆる Insertキーを押してある状態みたいに なってて、 文字が上書きして入力されてしまいます。 書き込んだ文字分だけシフトさせることはできないんでしょうか?
858 :
854 :04/10/02 18:23:01 ID:???
思いつきません(;_;)
一発でどうにかできる関数がなさそうな以上、 自分で組むしかないでしょう 重いかどうかは、実装してからベンチ
860 :
854 :04/10/02 18:35:16 ID:???
見当すらつきません。 やっぱり書き直すしかないのかなあ(;_;
$filename = "hogehoge"; $add = "先頭に付け足すデータ"; $contents = file_get_contents($filename); file_put_contents($filename, $add . $contents);
862 :
861 :04/10/02 18:44:03 ID:???
863 :
861 :04/10/02 18:48:03 ID:???
>860 あ、そーゆーことか、すまん 書き直すしかないだろう
>>860 そういうことは「出来ない」と諦める手もあるよ。
諦めるレベルに差はあれど、誰しも技術的、経済的な理由等々で諦めてるもんだ。
865 :
nobodyさん :04/10/02 19:04:37 ID:vlVC7o1I
.htmlの拡張子に一部分.PHPの拡張子を読み込みさせたいのですが 宜しくお願いします。
866 :
821 :04/10/02 19:05:47 ID:XE0I1+gL
>>822 ありがとうございます。
とりあえずアドレスにパラメータつけてrequireとかで読み込ませたんですが
”現在お使いのブラウザの設定ではログインできません。
(クッキーを無効にする設定になっています)”
とか表示されてうまく入れませんでした。
PHPの方でクッキーを読ませたりして認証通すことはできるのでしょうか?
>>860 別にちっちゃいファイルなら、簡単にできるけど。
追加する部分を新規ファイルに書く、いままでの部分をその新規ファイルにアペンド
ファイルネームを変更。みたいに。
でもね、これ、極めて馬鹿らしい方法だよ。
例えば、ファイルのありとあらゆる場所に追加するようなのが必要なら、データベース使うとか
双方向リストを持たせた多数のファイルをつくるとか。
追加するのが先頭だけってんなら、逆順に書いて、ファイルの最後尾に追加していくとか。
なんにしても、アルゴリズムが悪すぎると思うよ。
httpd.confの設定で、.htmlでもphpを呼ぶようにしたらどうだ? っか、質問意図不明杉
>>865 AddType application/x-httpd-php .php .html
これで、.htmlファイルもphpくぐってから出力される
という意味でよいんだな?
>>854 文脈からテキストファイルのようだけど、
書き込み時の負荷だけ下げたいのであれば、ファイル内の文章を逆にして
読むときに逆から読むようにすれば良いのでは?
例)
"World"と書かれたファイルの先頭に"Hello "を挿入したいとする。
元ファイルの内容を"dlroW"にし、末尾に" olleH"を追記する。
読み込み時に逆から読めば"Hello World"と書かれたファイルが出来上がってるという寸法。
871 :
822 :04/10/02 20:06:12 ID:???
>>866 なんか明後日の方向めざしてるね。
他のレスにかいてあるけど、fsockopenのサンプル見た?
HTTPでブラウザが鯖にどうやってリクエストしてるか分かった?
初心者にすすめるべきサイトではないかもしらんが、
http://X68000.q-e-d.net/~68userのHTTPクライアントの項を 眺めて感じをつかんでみたら。これからやらないといかんことは同じだから。
Cookie情報はつまるところHttpヘッダフィールドのテキストなんで、
リクエスト時にいっしょに送信するだけ。ただCookieのOn/Offをどうやって
判定してるかはサイトによるので自分で調べてね。
>>851 以降を読んで...
それを効率よく実装されたものがデータベースとして幅広く使われてるんだけど。
データベース使うほどでもないけど、簡単でより効率のよい実装方法さがしているのであれば、
データファイルをインデックスと実際のデータ部分にわけて、
インデックスは勿論実データへのアドレス参照(tellなどで得られる)と確保したデータ領域の長さを持つ。
データ部分は、パディングをもたせて少し冗長な構成にする。
データを更新する時はseekでそのデータの先頭にポインタをセットし、上書きする。
データがパディングを含めた予め確保した領域の長さを上回るようであれば、
新しいデータ領域をファイル末尾に確保し、インデックスを更新する。
インデックスは更新する必要があるので固定長で。
説明に不備あるかもしれないけど、大筋はこんな感じで。
インデックスと固定長データを使った方法を提案してみる。
利点は用途によってはもっと最適化出来る事。欠点は拡張が難しいこと。
でも、開発/保守コスト考えると素直にDB導入したほうがいいよ。
。o O (認証にしろHTTPにしろあんまりスレと関係ないなあ)
パケットdumpアプリ使えや。
876 :
854 :04/10/02 20:28:03 ID:???
>>872 こんな詳しく、どうもありがとう!<(._.)>
いやー、難しそうですね。
DB使うほど大げさな物でもないので、
多少の負荷はかえりみずとも
簡単な方法でいこうと思います。
ほんとにどうもありがとう(*´ω`*)
> 初心者にすすめるべきサイトではないかもしらんが ム板じゃ「問題ありのサイト」なんてリンクされてるが、 最初の一歩としてはお手軽でいいかなとも思う 821のやりたいことならphpマニュアルでことたりるのだろうが
>>875 Mozilla + Live HTTP Headerプラグインがお手軽でお勧め。
(Firefox1.0PRにもいつの間にか対応してたし)
879 :
nobodyさん :04/10/02 21:11:36 ID:/4BoaAqc
ブラウザからディレクトリ内のファイルを消すプログラムを作っています。 □ファイル名1 □ファイル名2 … [削除] こんな具合にファイル名の横にチェックボックスにチェック を入れて削除ボタンを押すと消える、という仕組みです。 この場合、formから送った情報を$_POSTで受け取るんですが チェックが複数だった場合はどうすれば受け取れるでしょうか…?
マニュアルにちらっと書いてあるが、name属性には配列が使える。 name="del_f[]" とすると、$_POST['del_f'] が配列になる。
誰も使わないと思いますが置いときますね。 whoisをPHPで実現するサンプルです。 $fp = fsockopen('whois.nic.ad.jp', 43); fwrite($fp, "php.gr.jp\r\n"); $data = ''; while(!feof($fp) and $dat = fread($fp, 4096)) $data .= $dat; fclose($fp); echo mb_convert_encoding($data, 'SJIS', 'JIS');
882 :
nobodyさん :04/10/02 21:47:18 ID:CVirW+JC
今まで、WoodyでLAPPをしていました。 Woodyですので、PHP4.1.2でした。 この度、「まるごとPHP!」を買って、WoodyにLAMPを導入 する記事を参考に、softagencyからPHP4.3.8をインストール しました。 しかし、'--without-pgsql'でビルドされているみたい(?)で、 PostgreSQLに接続できなくなりました。 ですが、WoodyのPHP4.1.2も'--without-pgsql'は同じ? みたいなので、ひょっとして、このPHP4.3.8もなんとか PostgreSQLに接続する方法がありませんか?
誰か使うかもしれないので置いときますね。
httpでのソケットのサンプルです。
# エラーチェックは実装してません
echo http_get('2ch.net', '/');
function http_get($host, $path) {
$fp = fsockopen($host, 80);
fwrite($fp, "GET $path HTTP/1.0\r\n" .
"User-Agent: PHP\r\nReferer:
http://$host/\r\n " .
"Host: $host\r\nConnection: close\r\n\r\n");
while(!feof($fp) and $dat = fread($fp, 4096))
$data .= $dat; fclose($fp);
return $data;
}
>>Imo 自分の日記に書いてください
>>884 はぃ、以後そうします。(いつになるかわからないけど
# もう3つぐらい貼り付けようと思っていた
>>882 普通にコンパイルしなおせばいいんでない?
extensionにpgsqlのモジュールもあると思うけど、それを毎回読み込む方向でいけば
再コンパイルせずに使えるかも。
888get, zuzaa
889 :
nobodyさん :04/10/02 23:53:03 ID:CVirW+JC
>>886 自分でビルドする腕はありません。(汗
Woodyの純正のPHP4にはPHP4-pgsqlというパッケージが
ありました。でも、>882に書いたPHP4.3.8をインストール
するときにREMOVEされてしまいました。
なんか、モジュールがあったんだと思いますが・・・
そのモジュールだけ、作る事って出来ないんでしょうか?
もしくは、どこかから持ってくるとか?
Woodyのパッケージはしらんけど、pgsql.soみたいなdsoはないの? dl()するかphp.iniでロードするように指定できたと思うんだけどな。 他のパッケージも検索すればあるとは思うよ。MySQL以外のDB使ってる人も多いだろうし。
オフィシャルであるような気がするなあ 野良パッケージにまわされるほどマイナーなのか・・・
892 :
nobodyさん :04/10/03 00:59:30 ID:dJZy1DJi
fsockopenのtimeout引数は「接続してからのtimeout時間」 socket_set_timeoutは 「有効なファイルポインタが確保されてからのtimeout時間」 という認識でよいですか? それでソケット接続までの時間がかかる場合に全体でtimeoutを 設定してエラー処理するにはシグナルほにゃらら(理解していない)で 処理するしか方法はないんでしょうか? 今fsockopenやsocket_set_timeoutを設定して運用してるんですが 接続先のサーバが込み合ってる場合、効果ないようです。
893 :
nobodyさん :04/10/03 01:58:38 ID:n1LZAPOp
>>891 woodyのが古杉
sargeのPHP4.3.8は依存関係の問題でwoodyには
入れられませんでした。
本で紹介されてたのはwoody用にビルドされた物で
よさげでしたが・・・pgsqlが無いのが残念
Woodyって何ですか?
きゃい〜ん天野の相方
Panasonicのパソコン
PCエンジンみたいなもんだよ。 タウンズがメガドライブな
898 :
893 :04/10/03 08:47:32 ID:n1LZAPOp
PHP側の工夫でなんとかならないかと思ったけど、 woodyの問題なのかなぁ。 そして結局、たらい回しになりそうな希ガス
>>850 コンパイルしなおせば直る感じ?
でもまんどくそいから、誰かやってよ
一番最新のやつ
掲示板機能を利用した多人数参加型ゲームCGIの作成について質問です。 Indexページで現在参加できる部屋にリンクし、ユーザーは好きな部屋に入り、 各部屋内ではスクリプトとユーザーの投稿によってゲームが進行するようにする予定です。 Indexページで、存在する部屋のリストと、各部屋が参加募集何人しているかを横に表示したいのですが、 IndexページもCGIで出力する予定でしたが、このページはもっともアクセス数が多くなると思うのでできるだけ負荷減らしたい。 そこでページが要求されるたびにCGIで出力するのではなくて、ページが更新されるたびにCGIでhtmlファイルを鯖内に作成し、 これをユーザーに見せるようにすれば負荷が軽くなるかな?と思ったのですがどうなのでしょうか 使用言語はPHPとMySQLです。
なにかPHPで作れるサイトのネタないかな。
>>892 確かに、相手のサーバに接続できない場合、socket_set_timeout() で設定した
タイムアウト時間が過ぎても無反応になる。
同じ問題で困った時には、socket_set_blocking() で non-blocking モードにして、
自分でタイムアウト処理を書いて回避した。
>>900 負荷を考えるならCGIで作るのは止めた方がいいな。
別の方式でWebプログラムを組んだ方がいい。
905 :
nobodyさん :04/10/03 18:27:51 ID:2j245/56
セッションを使ったパスワード認証を試しているのですが
バグが自分では解決できませんでした
$passはフォームからPOSTで受け取っています
〜login.php〜
session_start();
$fp = fopen("./pass.txt","r");
$fps = fgets($fp, 32);fclose($fp);
if($_POST['pass'] == $fps){
$_SESSION['login'] = 1;
header("Location:
http://********/***.php ");
}else{print("パスワードが違います");}
〜移動先〜
session_start();
if(isset($_SESSION['login'])){
}else{header("Location:
http://********/login.php ");}
バグは、パスワードが合っていてもlogin.phpに飛ばされて
一度パスワードを間違えてから正しいものを入れるとやっと認証されます
ご指摘の程、よろしくお願いします
>>905 要するに header("Location: 〜")した時にsessionが引き継がれないってことかな?
それは正しい動作です。
どうしてもsessionを引き継ぎたい場合は Locationの時に明示的にSIDをつけましょう。
"0xff" という文字列を 255 に変換する方法はありますか? 一桁までは 0x0〜0xF をキーにした連想配列でやってたのですが 2桁はさすがにちょっと・・・
$str = '0xff'; if (substr($str, 0, 2) == '0x') { echo HexDec(substr($str, 2)); }
> それは正しい動作です Locationは302 foundだからSession Cookieセットされるし、 飛び先でブラウザはSessID送信するけど。
910 :
nobodyさん :04/10/03 19:20:44 ID:cGVfVdlB
ファイルから一行だけ読みこむ時はfopen(),fgets(),fclose() と file(),array_shift() ではどちらがよいでしょうか?
912 :
nobodyさん :04/10/03 19:22:11 ID:cGVfVdlB
高速レスありがとうございます。 リロードしてびっくりしました。
>>907 <?php
$str = "0xff";
print( eval("return $str;") );
?>
>>908 hexdec("0xff") でいいんじゃない?
>>915 ほんとだ、、ヘルプちゃんと見てなかったですね。
それなら何も使わずそのままいけますね。
ありがとうございます。
お勧めの入門書があれば教えてくだちぃ。 サーバサイドスクリプト自体が初めてです、というか Webプログラミング自体が初心者です。 JavaScriptなら趣味で少々という程度。 PHP+mySQLの組み合わせだそうです。
スレ違いですね。
PHPでは、文字列のバイト数を知るにはどうしたらよいですか? 長文をiモード用に出力する時に、10kbまでとかに抑えたいのですが。。。 一文字一文字を、文字コードから英数字→1byte、日本語→2byteとかやるのは、 我ながら「ちょっと違うな。。。」という気がするので。
$123はエラーだ。ンな事は厨でも知っている。 しかし、 <?php $hoge = 123; echo($$hoge); ?> はエラーではない。
922 :
nobodyさん :04/10/04 01:09:25 ID:meht8xax
会議室の予約などをブラウザから出来るようにするPHPスクリプトはありますか? 何時から何時まで、と、名前を入れると、スケジュール表に表示されて、 誰がどの会議室を予約しているかが分かる奴です。 よろしくお願いします。
スレ違いですね
>>922 有料でよければいくらでもあるんじゃない。
Web製作板にCGI捜索スレがあるから向こうで聞いてみるといいかも。
こっちは作る板なんで板違いってことになってるのだよ。
925 :
nobodyさん :04/10/04 05:44:44 ID:bD/BtCvp
PHPのページってPRつかないの?
926 :
919 :04/10/04 08:17:20 ID:???
>>920 ありがとうございます。
でもソコ見てもワカンナイよ〜!
927 :
nobodyさん :04/10/04 08:51:39 ID:yuKvwDKr
あるプログラムの中で定義されているクラス名の一覧を、 そのプログラム自身が得る方法はありますか? あるフォルダー内のすべてのPHPスクリプトファイルに 書かれたクラス名の一覧を得ればいいのかな? でも、ファイル一覧なんて得られる? 他にもアイデアはありませんか?
>>927 get_declared_classes() という関数が使えるのでは?
システムに組み込まれているクラスも含まれてしまうのが問題かも
しれないけど。
929 :
nobodyさん :04/10/04 09:44:35 ID:yuKvwDKr
>>928 参考になります。ですが、問題点もご指摘の通りです。
930 :
927 :04/10/04 09:55:53 ID:yuKvwDKr
もしくは、あるクラスの子クラスの一覧、でも 良いのですが、それも得るのは難しい?
>>927 システム組み込み関数を外したければ以下のように
すればできるんだけど。
// スクリプトの最初でシステム組み込みクラスを取得
$a = get_declared_classes();
//... クラス読み込み ...
$b = get_declared_classes();
print_r( array_diff( $b, $a ) );
あるクラスの子クラス一覧を取得する方が手間がかかる。
933 :
nobodyさん :04/10/04 12:11:42 ID:2BmYiFW6
すみません。 外部プログラムの出力結果を変数に代入したいのですが、 system関数を使うと、そのまま出力結果が出力されたうえ、最後の一行しか変数にも代入されていません。 たとえば、 $str = system( 'echo \'hoge \n piyo \n\'' ); echo "str = $str"; とすると、 出力されるのは、 hoge piyo str = piyo です。最初の二行はソースの echo $str; を除去しても出力されsystem関数が自動的に出力しているものだと思います。 そして、$str には出力結果の最後の行しか代入されていません。 目的をかなえるためにはどうしたらよろしいでしょうか? お知恵をお貸しいただけないでしょうか。よろしくお願いします。
>>933 $str = `echo \'hoge \n piyo \n\'`;
これは?
935 :
nobodyさん :04/10/04 12:25:56 ID:yuKvwDKr
>>933 shell_exec. proc_open, popen 他
938 :
nobodyさん :04/10/04 14:20:46 ID:rKN1tExD
1から9の乱数を生成したいのだけれども function make_seed(){ list($usec, $sec) = explode(' ', microtime()); return (float) $sec + ((float) $usec * 100000); } PHPマニュアルにのっていたのだと、短い間に連続で乱数を生成するときに どうしてもかぶってしまいます。範囲が狭いからだと思うのですが、1から9の 数字を適当にばらける生成方法はないでしょうか? while($flag){ srand(make_seed()); $rand = rand(1,9); print $rand; }
939 :
933 :04/10/04 14:28:35 ID:???
>>934 ,936,937
ありがとうございます。(指導を含めて)
webで調べたとき、「systemは出力全てが返り値で、execは出力の最後の行のみが返り値になる」という風に書かれているページを初めの方に読んでそのまま鵜呑みにしていたため余計な先入観がありました。
今後はきちんとマニュアルを読んでいきます。
while($flag){ srand(make_seed()); while( $tmp == ( $rand = rand(1,9 ) ) )continue; print $rand; $tmp = $rand; }
自作webメーラの作成をしているんですが imap_open関数の質問です。 この関数はapop対応はどうやったらよろしいんでしょうか? phpのマニュアルを読んでもそれらしいことが書いてなかったので わかる方がいらっしゃったら教えてください。 よろしくお願いします。
そもそもimapとapopってプロトコルが違うのでは
自分自身のプロセスIDを取得するにはどうしたらいいですか?
>>938 短い間ってのは関係ない。乱数なんだから被るのはあたりまえ。
あと、シードは勝手に植えられるので初期化は忘れてもよくなってる。
randではなくmt_randの使用が推奨される。
940にもあるけど、やりたいのは値の(文字通りの)ハッシュ化なんじゃ。
>やりたいのは値の(文字通りの)ハッシュ化なんじゃ
俺もオモタ。
必要なだけ値をプールしておいてランダムな順番で取り出すのが常套かと。
>>943 マニュアルを検索しなさいよ。
>>942 名前で間違えやすい。
IMAP関数は名前のIMAPだけじゃなくて、POP関係の機能も内包してる。
APOPは使ったこと無いから判らん。
949 :
nobodyさん :04/10/04 15:30:29 ID:hc/DHFsc
950 :
nobodyさん :04/10/04 15:35:20 ID:Cboj2mbR
ファイルを生成する場合はどうすれば良いのでしょうか。 今は、fopen($file, "w")で出来ているので、これでも良いのかな。。 touch()でも生成できるみたいですが、 生成専用の関数ってあるのでしょうか? ファイルシステム関数を見ているのですが、頭がこんがらがってきました。
>>938 srandはwhileループの外(スクリプトの最初)に置くべき
同じ値でsrandをしたら、randで同じ値が返るのは当たり前。
>>944-945 の言うように全て違う値が欲しい場合、自分ならこうするが
$arr=range(1, 9);
shuffle($arr);
foreach ($arr as $val) {
echo $val, "\n";
}
>>950 ファイルを生成して、その中身に変更を加えたり読んだりする場合は
普通fopenを使う。touchでファイルが出来るのは副作用。
そのファイルの内容を扱うつもりなら結局fopenを使わないとならない。
というか、ファイルの内容を扱う際にはファイルハンドルが必要。
逆に言うとファイルハンドルを使用しない関数では中身を扱うことは出来ない。
その様子だと、ファイルハンドルという概念が欠落しているように思えるけど、
fopenとtouchの返り値の違いはどう認識してんの?
JavaScriptタグを使ってSSIみたいなことをやろうと思ってます。 <script type="text/javascript" src="xxxx.php?a=aaa"></script> なんてタグでパラメータを渡し、 phpの方が document.writeを吐いてやればいいかと思うのですが、 他にPHPにパラメータを渡す方法はないでしょうか? value="aaa" みたいにタグで渡せれば最高なんですが…
>>953 inputタグ(だっけか?)のhidden属性なんか使えばできんじゃね?
956 :
879 :04/10/04 19:18:29 ID:???
if文の中で変数checkが存在したときpage2.htmに飛ばす プログラムを作成してるのですが、上手くいきません… if(isset($_POST['check'])=="true"){ header("Location:page2.htm"); exit; } いちばん初めに <?php header("Content-Type:text/html;charset=EUC-JP"); ?> というヘッダーを宣言してるんですが、これが原因でしょうか…
存在した時なら if($_POST['check']) でいいんでないかい?
>>957 >いちばん初めに
><?php header("Content-Type:text/html;charset=EUC-JP"); ?>
>というヘッダーを宣言してるんですが、これが原因でしょうか…
それなら質問するより先に、その部分を削って試すべきなんじゃないか?
> <?php header("Content-Type:text/html;charset=EUC-JP"); ?> はて、なんで、?>で閉じられているのだろう。 余計なものを出力済みなオカソ。
また「上手くいきません」か…
>>961 エラーくらい書けってのな。
たぶんヘッダーが二重になってエラー出てるんでしょ。
if文を文書の先頭に持っていけば解決。
よくわからないけど Location はフルパスでなければいけませんよ
んなこたぁない。
1.0もだよ。
相対パスでもヨロシコやってしまうブラウザが多いのも事実ではあるな。
> Location のパス 携帯サイト作ったときにハマったなぁ・・・ ドコモの一部機種ではフルパスで書かないとジャンプしないから。 ってか、かなりスレ違いスマン
970 :
nobodyさん :04/10/05 05:17:37 ID:pcuRA4ss
PHP5をRedHat7.3に入れようと思ったのですが、 libxml2が必要と言われ、 libxml2を入れようと思ったら glibc-2.3が必要と言われ、 glibc-2.3を入れようと思ったら glibc-common = 2.3.2-27.9.7 is needed by glibc-2.3.2-27.9.7 glibc > 2.2.4 conflicts with glibc-common-2.2.4-13 glibc > 2.2.4 conflicts with glibc-common-2.2.4-19.3 glibc = 2.2.4 is needed by glibc-devel-2.2.4-19.3 と言われました。 これは、RedHat7.3には入らない、ということでしょうか? なんとかして入れる方法はないでしょうか?
if(isset($_POST['check'])=="true"){ if(isset($_POST['check'])==true){
>971 if (isset($_POST['check']) {}
>>972 $_POST['check']="んなー";
>>972 )が足りん
次スレマダー?(・∀・)っ/凵 ⌒☆チンチン
if (unset($_POST['chock']:-))
976 :
905 :04/10/05 10:41:30 ID:???
報告が遅くなりました
>>906 さんのSIDを付ける方法で解決できました
ありがとうございました
977 :
nobodyさん :04/10/05 13:35:41 ID:dS8mMcyD
mbstring.internal_encoding = EUC-JP に設定した状態で Master Value EUC-JP Local Value UTF-8 になってしまうのはどんな場合でしょうか?
>>977 httpd.confの<VirtualHost>や<Directory>で設定されている。
もしくは、.htaccessで設定されている。
>>977 mb_internal_encoding("UTF-8");
ini_set('mbstring.internal_encoding','UTF-8');
のどっちかだと思うけど。
980 :
nobodyさん :04/10/05 15:30:19 ID:hoOclm0O
HP巡回スクリプトってphpで簡単に書けます? 例えば、あるソフトのVerUPが乗ってるHPを1日1回調べて VerUPしてたら、その内容を取り出してきてtxtに書き出すとかいうの。
そういう質問するアホには簡単に書けないようになっています
phpで出来るか、出来ないか やっても素人には難しいか、 Yes、NOで答えて
人による。 猿なら出来る。馬と鹿には無理。
そんな情報の出し方でまともな回答を期待してるようなら、無理かも知れんね。 他の言語を使うよりは可能性があるだろ。試してみればいい。
PHP挫折で挫折したら他の言語は厳しそうね 何ならやれるだろう Jscript?
他の言語だったら、長くなりそうな所をphpでサクっと書きたいだけ
>>988 M$ペーシック、と思ったけどphpのほうがずっと楽だな。
もうバッチファイルくらいしかないんじゃない。
991 :
nobodyさん :04/10/05 15:56:10 ID:hoOclm0O
>>989 コード量なんて初期の学習コストに比べれば誤差にもならね
それに、言語構造複雑な方が短くなるケースは多いよ。単純な処理の場合特に
長くなりそうなところ...? そうだ、複数行文字列を print するところを ?> ... ... ... ... <?php でくくると短かくなるNE! (・∀・)
996 :
nobodyさん :04/10/05 16:00:18 ID:hoOclm0O
TAHKS
呼んだ?
998 :
nobodyさん :04/10/05 16:25:09 ID:d6yyUuwZ
>>998 そのALERTの内容を書かない事には。
何が起こってるかを他の人にわかるように書こうね。
初めて1000をとってみます。 ちょっとドキドキ
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。