【PHP】質問スレッドpart26【php】
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
04/12/21 22:34:55ID:???0528nobodyさん
05/01/26 17:51:15ID:???根本的に使い方がおかしい
マニュアルぐらい嫁
http://jp2.php.net/manual/ja/function.in-array.php
0529524
05/01/26 19:27:06ID:???ありがとうございます。
あのマニュアルはいつも読むのですが、いつもわからないです...
あれでみなさん理解できているのですかねぇ。
needleの方の配列が、
1. どれかだけのマッチする場合だけ、TRUEを返すのか?
2. 全てマッチする場合だけ、TRUEを返すのか?
があれだけじゃわからないような...理解力不足でしょうか?
使い方もよくわからないです。
両方配列にしたらマッチしなかったので、>>527のようなコーディングを
してみました。
逆引大全も見ていましたが、配列が使えるとは書いてなかったです...
マニュアルの後の投稿されている英語のサンプルをちょっと読んでみます。
0532nobodyさん
05/01/26 20:00:02ID:???0534nobodyさん
05/01/26 20:15:21ID:???ユーザーが減って行くんだよね・・・
0536nobodyさん
05/01/26 20:20:40ID:???0537nobodyさん
05/01/26 20:21:32ID:???0538nobodyさん
05/01/26 20:40:38ID:5qrlpz1Z// カウンタファイル名の設定
$counterfile = "counter.dat";
// ファイルオープン。未作成の場合は新規作成。
$mode = file_exists($counterfile) ? "r+" : "w";
本に載ってたアクセス・カウンタの冒頭からのスクリプトなんですが、
$modeの行の後半の?と:の意味が解りません。他の本を
見てもネットで検索しても解説しているところを見つけられな
かったのですが、これはどういう意味があるんでしょうか?
0540nobodyさん
05/01/26 21:21:27ID:???$foo = $flag ? '1' : '2';
は
if($flag) $foo = '1';
else $foo = '2';
と一緒ってことだよ。
使い慣れるとめちゃ使い易いからガンバレ。
0542nobodyさん
05/01/26 21:56:15ID:???0543nobodyさん
05/01/26 23:14:44ID:???0544nobodyさん
05/01/26 23:57:38ID:???0545nobodyさん
05/01/27 00:15:56ID:???0546nobodyさん
05/01/27 00:43:43ID:???何組?
言って?
何組?
0547nobodyさん
05/01/27 01:15:30ID:???0548nobodyさん
05/01/27 01:17:44ID:???0549nobodyさん
05/01/27 01:22:17ID:???0550nobodyさん
05/01/27 09:12:00ID:???0551nobodyさん
05/01/27 11:31:30ID:???の処理速度の検証をされた方はいらっしゃいません
でしょうか?
何となく気になった・・・自分でやれよ!!笑
0552nobodyさん
05/01/27 11:41:06ID:???0553nobodyさん
05/01/27 12:22:11ID:9YUdbfEg0555nobodyさん
05/01/27 12:33:10ID:D/dtmk8n/ ,r ̄\!!;へ
/〃/ 、 , ;i
i,__ i ‐=・ァj,ir=・゙)
lk i.l /',!゙i\ i
゙iヾ,. ,..-ニ_ /
Y ト、 ト-:=┘i < 敢えて言おう!PHPはCGI言語のチャンピオンだと!
l ! \__j'.l
」-ゝr―‐==;十i _,r--――、
.ト、.j.!レ' ̄三! >ーr‐r‐r‐< _,.r<"「 l_____
____,..r--r=ヾヽj,r―'"≦__ ̄ ̄r―'"\\ \r",.-、, \
∧ ト-'‐'"三へ>ト-‐'"~ ゙i / \\(_.人 ヽ._ ヽ
レ'へ._ノi 「 \ ゙l //./",「 ̄/ / / ヽ-ゝ. \ /
レ'// .l l ! ! i/./ ./ / / / ,( \ ノハ
レ'/ .! ! i ゙'!  ̄ ∠, / ヽ._ ,ター '",〈 !
/゙" ,r'" .l‐=ニ゙,「l ! 「 ̄!. /./ ー==' .l.ト、. -‐'"/!.ト,
/ .ト- ゙ー―┘!└‐'='-‐" ヽ._/ 、 トミ、 ̄ ̄._ノノli\
0556T
05/01/27 12:35:22ID:oDNRzBsVGETメソッドによってURLにつなげて変数を他のページに渡す
場合、変数が丸見えになってしまうのを防ぐために、urlencode
などが使えるとのことですが、この関数では英数字以外の文字しか
エンコードしないのですよね?
となると、変数名および変数の値自体が全て英語や数字の場合、
urlencodeでエンコードしても意味がないと思うのですが、
英数字をGETで渡す必要があるケースで、セキュリティ上これを
丸見えにしないですむようなエンコードの関数、および方法は
ないでしょうか?
初心者のため、ご教授よろしくお願いします!
0558nobodyさん
05/01/27 12:40:18ID:???んでその「セキュリティ上の理由」とやらを聞かせてもらおうか。
0559nobodyさん
05/01/27 12:52:42ID:???>変数が丸見えになってしまうのを防ぐために、urlencode
その認識に大きな誤りがあることを誰か指摘してあげてください。
0560T
05/01/27 12:56:41ID:oDNRzBsVそういう理由ではないんでしょうか?
0562nobodyさん
05/01/27 13:31:27ID:???インターネットを使う上での約束事にRFCというものがあって、
その中のRFC 2396 (3986でobsoleteされた?) に URL(URI)の事が書かれている。
URLに使える文字や使えない文字を含めたい時の扱い方も定義されていて、
それに基づいて作られたのがurlencode関数ってことになる。
で、>>556の質問については、セッションやcookieを使ったらいいんじゃないかな。
0564nobodyさん
05/01/27 14:35:46ID:???ユーザに変数名を知られても問題無い様な仕組みにしないといけないんじゃないかな?
0567nobodyさん
05/01/27 17:26:17ID:???いんや〜〜・・・
入力フォームのmethodをgetにしないといけないんだろ。
(そんな状況は旧J-PHONE向けにしか思い当たらんが…)
ん?そもそも旧J-PHONE向けのサイトだったら、
引数付きのURLなんか見れないんだから、意味不明か…
「GETしか駄目」な状況が見えない…
0569nobodyさん
05/01/27 18:04:06ID:???0571nobodyさん
05/01/27 20:08:34ID:???ごっちゃごちゃぁ〜〜〜〜〜
0572538
05/01/27 21:23:09ID:???>>539 3項演算子っていうのか。何で本に載ってないんだろう。
オライリーの本なら載ってんのかなぁ。
>>540 丁寧にありがと。よく解ったっす。
>>541 そうだす。
0573T
05/01/27 22:03:03ID:oDNRzBsV一晩寝て起きたら誰か私のフリして書き込まれてますね。
563は私ではありませんので。
561さん、562さん、564さんをはじめコメントいただいた方、
ご親切にどうもありがとうございました!!
なるほどです。勉強になりました。
(ちなみにほんもののTです。)
0574nobody
05/01/27 23:32:06ID:???base64_encode()
base64_decode()
とかどお?
ttp://php.s3.to/man/function.base64-encode.html
0575nobodyさん
05/01/28 11:18:07ID:7CVjKDTnPHPで、ある文字列に特定の文字が何個入っているか
調べてくれる関数ってありませんでしょうか?
0576nobodyさん
05/01/28 11:25:30ID:???0577513
05/01/28 14:07:03ID:???>これで$flagにTRUEが入ってれば$aは関数として取り扱われていることがわかります。
× $aは関数として
○ $aは配列として
訂正してお詫び申し上げます。
0578463
05/01/28 16:43:24ID:6uyBWJ8D0579nobodyさん
05/01/28 16:43:45ID:???0580nobodyさん
05/01/28 16:49:11ID:???0581nobodyさん
05/01/28 21:22:22ID:ox6Cyfvrremote_hostは出せないんだろうか…(addrの項目はある)
0583nobodyさん
05/01/29 12:21:24ID:???0584575
05/01/29 15:23:09ID:uZIEcNwj0585nobodyさん
05/01/31 08:59:00ID:???セキュリティ面でエラーを表示させない様にして、display_errors = Offとした
時に気になったのでエロイ人、教えてください。
スクリプトを書くときは特定の条件でスクリプト内でini_set()する予定です。
0586nobodyさん
05/01/31 09:22:23ID:yrnZkyfn自分で調べられないような特別な事がお前に起きてるわけ?
0588nobodyさん
05/01/31 12:06:18ID:qVyRdTkmググっても見つかりませんでした・・・。
0589nobodyさん
05/01/31 12:11:32ID:???MMCacheからforkしたeAcceleratorがあるよ。
http://eaccelerator.sourceforge.net/Home
当方では特に問題なく動いてます。
Apache 1.3.33
PHP 4.3.10
Solaris 8
0590nobodyさん
05/01/31 12:15:46ID:YTm3MD79これってどういった仕組みになっているんでしょうか。
またPHP4だけで実現可能でしょうか。教えてください。
0591nobodyさん
05/01/31 12:23:28ID:qVyRdTkmありがとうございます。
早速試してみます。
0593nobodyさん
05/01/31 12:42:51ID:???やりたい事を分割してみていくとこうなる。
1. ユーザがページを見る
2. ページ内のメールアドレス向けにメールを送信する
3. PHPを使ってメールを受信する
4. 3.のデータを元に登録する。
1,2はHTMLの話なので略。
3.は複数の手段が考えられるので後述
4.は分かるだろうから略。
3-1. 外部からメールを直接受信する(受信専用メールサーバをPHPで実装)
-> 無茶なので考え直す
3-2. PHPがメールソフト(MUA)の振りをしてメールデータを取得
-> やり方としては素直。ipop関数あたりを参照。トリガーをどうするか要考慮。
3-2. 外部SMTPサーバ->自持SMTP->MDA->鯖内メールデータ(ファイル)
MDAの処理中に抜き出す(procmail、forward等) -> 場合によっては使えそう
3-3. 3-2の鯖内メールデータに直接アクセスする
-> 3-1同様強引だが、最後の手段としてはありえそう。
3-4. そろそろ飽きてきた。条件が揃えばPHPで出来るって事は分かったべ?
0594nobodyさん
05/01/31 12:42:56ID:???これだと403が直ぐに返ってしまいます。これを如何にも
サーバーが存在しないように偽装出来ますでしょうか?。
0595594
05/01/31 12:50:31ID:???0596590
05/01/31 13:03:27ID:???非常に丁寧な回答ありがとうございました。
空メール受信用のアドレスを用意してPHPで受信し、登録する方法にします。
トリガーはメールマガジン管理画面へのアクセスに。
参考になりました。
0597nobodyさん
05/01/31 13:26:21ID:???.forwardとか使って、POPサーバへの受信時に
PHPスクリプトをキックする方が楽だしすっきりすると思う。
(3-2の中の自持SMTPはレンタル鯖でも条件があえばできる)
0598nobodyさん
05/01/31 13:43:57ID:???現時点では設定ディレクティブのプリフィックスがmmcacheからeaccelerator
に変わったくらいしか違いは見受けられないけど、実質的に開発を引き継いで
くれたことには意義があると思う。
ロードマップが未掲載なので先は不明。
http://eaccelerator.net/RoadMapUk
0599nobodyさん
05/01/31 14:22:57ID:???0600nobodyさん
05/01/31 16:23:59ID:8FwNP7ph知人の紹介してくれそうな会社がPHP+Solarisを使ってウェブ構築をやっています。
わたしはC/C++/Ruby/VB6と歩いてきて使いこなせる力は
VB6 >> C++/C >> Ruby
です。
SQLは本当に基本的なところだけ抑えていてOracleを使って開発していました。
言語的に好きなのはC++が一番好きです。
好きとかだけで食っていけないのも世の常なので、皆さんに質問したいのですが。
PHPについて
開発速度/効率/再利用性/どの程度分担作業できるか/開発環境(IDE)はどの程度充実しているか
将来性/言語的メリット・デメリット
等について実際に現場で働いてる方の意見をいただきたいのです。
よろしくお願いします。
0601nobodyさん
05/01/31 16:47:40ID:???eAcceleratorってrequireとかしたファイルはキャッシュしてないのだろうか、
なんかキャッシュファイルがMMCacheより小さい気がするんだけど。
ただの圧縮関係なのだろうか。
0602nobodyさん
05/01/31 17:11:10ID:jB8MTmrN実際システムではどのような流れで認証を行っているのでしょうか?
私はとりあえず、IDとパスワードをチェックして、両方とも一致したら
IDとパスワードをセッション変数に格納し、
それ以降のページでは最初にセッション変数のIDとパスワードを調べ、
そのつどIDとパスワードを保存してあるファイルから調べるという方法を
とろうかと思っています。
それとも、IDとパスワードが一致した時点で、認証済みを判断する変数をひとつ用意して
それの値を1にし、それでそのつど判定するのでしょうか?
0603nobodyさん
05/01/31 17:11:43ID:???> 開発速度/効率/再利用性/どの程度分担作業できるか/開発環境(IDE)はどの程度充実しているか
> 将来性/言語的メリット・デメリット
最初から順番に
-人によるけど遅くはない
-人によるけど悪くはない
-設計によるPEARとかmojaviとか使えばそれなりに。
-デザイナとプログラマで分けたいなら、可能。複数プログラマでの作業分担は普通に出来る。
-IDEなんて無くても開発できる。phpEclipseが良いらしい。
-知らないけど、先行きは暗くはない。
-使用人口が多いので情報が豊富。・ノイズも多い。
#ぷーは余計なこと考えずにまず働け
0604nobodyさん
05/01/31 17:24:51ID:???imgタグを抜き出したいのですが、そのイメージをアンカータグが囲っている場合、
そのアンカータグごと抜き出したいのです。
その際マッチの順番は変えたくないので、一回の処理で終わらせる方法はないでしょうか?
preg_match_all('/<a .*?><img (.*?)><\/a>|<img (.*?)>/i', $body, $match);
正規表現が余り得意でないので、書き方さえ間違っているかもしれないですが、分かる方よろしくお願いします。
0607nobodyさん
05/01/31 17:57:27ID:???ってことを聞きたいのか?
アンカータグとイメージタグの間に空白文字\s*は入れておいたほうがいいかもなぁー。
0608604
05/01/31 18:00:59ID:???一回で抜きたいのですが、アンカータグ付きの正規表現しかマッチしていないようなのです。
もしかしてor文の書き方が間違っているのかなぁ?と思って聞いてみたのですが。
0609600
05/01/31 18:09:32ID:???ありがとうございます。
キーワードを頼りにいろいろ見てましたが悪くないなと感じました。
> #ぷーは余計なこと考えずにまず働け
ごもっともorz
0610nobodyさん
05/01/31 18:11:35ID:???アンカー無しも抜けそうな気がするが、PCREライブラリによって違うのかな?
/(<a .*?><img (.*?)><\/a>)|(<img (.*?)>)/i
という感じで全体を()で括ってみるとか。
0611604
05/01/31 18:21:53ID:???/(<a .*?><img .*?><\/a>)|(<img .*?>)/i
こう書いたら$matchに返ってきた配列は別でしたが、imgのみも抜けました。
ちょっと色々試してみます。
ありがとうございました!
0612nobodyさん
05/01/31 19:18:27ID:ZbMy7NkR出来ますでしょうか? なぜこんな質問をしているのかといいますと、
下記のようなメルマガ登録フォームを設置してるんですが、
その登録者数をカウントしたいと思ってるのです。
<FORM ACTION="http://regist.mag2.com/reader/Magrdadd" METHOD=POST TARGET="_top">
メルマガ名<INPUT TYPE=HIDDEN NAME="MfcISAPICommand" VALUE="MagRdAdd">
<INPUT type=text NAME="rdemail" size=30 VALUE="">
<input type=hidden name="magid" value="00000xxxxx">
<INPUT TYPE=SUBMIT VALUE="登録"> </FORM>
上記はまぐまぐで用意されているフォームHTMLですが、
これでデフォルトのまぐまぐスクリプト(http://regist.mag2.com/reader/Magrdadd)
だけでなく、自作の「regcnt.php」も呼び出して、登録してくれた人の
人数を数えたいのです。
こういうことって可能でしょうか?
それとも実は私がすごい勘違いしてて、もっと簡単なやり方があったりして・・・。
0614612
05/01/31 19:29:36ID:ZbMy7NkRもう一つ考えたのは、まず最初のFORM ACTIONをregcnt.phpに変更して、
そこで数だけカウントして、フォームから受け取った各変数をそのregcnt.phpから
直接http://regist.mag2.com/reader/Magrdaddに渡す…という
方法(つまりユーザーからしてみればregcnt.phpの存在にはほとんど気づかずに
すぐにまぐまぐの「登録完了」が表示される)も考えたのですが、
肝心の渡す方法が検索しても分からなくて挫折しました。
もしかしたらこれもまるっきりアホなやり方かもしれませんが。。。
上級者様のご意見を仰ぎたいです。
0615nobodyさん
05/01/31 19:29:40ID:???まずカウントを集計するスクリプトに飛ばして集計処理をした後、
まぐまぐのフォームへデータをPOSTすればよいだけだと思うが。
0616615
05/01/31 19:32:24ID:???思いっきりかぶった(w
それでいいよ。
POSTのやり方分からんのなら
http://www.google.com/search?hl=ja&lr=lang_ja&ie=UTF-8&oe=UTF-8&q=%E3%83%95%E3%82%A9%E3%83%BC%E3%83%A0+post+http%E3%83%98%E3%83%83%E3%83%80&num=50
ほれ。
0617612
05/01/31 19:33:27ID:ZbMy7NkRフォームを複数設置しているため、どのページからの登録が
多いのかを調べたいと思っていまして。。。
>>615
そうですね、たぶん私が614で書いたのと同じ意味で
おっしゃって頂いているのだと思いますが、
その「phpスクリプトからまぐまぐへデータをPOST」の方法がイマイチ分からなくて…。
スクリプト内から「HTMLフォームのsubmit」と同じ動作を命令できるのでしょうか??
なんか無知過ぎてすみません。
0618612
05/01/31 19:36:59ID:ZbMy7NkRあ、私も思いっきりかぶりましたww
教えていただいてありがとうございます!
早速指示していただいたGoogle検索結果を読んで理解しに行きます。
自分でもいろいろ検索してたんですが、
「httpヘッダ」なんて、自分じゃ考えもつきませんでした。
本当に助かりました。ありがとうございます。
0619615
05/01/31 19:37:09ID:???> たぶん私が614で書いたのと同じ意味で
そう。全く同じ意味。考え方としては正しい。
> スクリプト内から「HTMLフォームのsubmit」と同じ動作を命令できるのでしょうか??
できる。↑の検索結果見ながら頑張れ。
0620615
05/01/31 19:37:55ID:???まぁ頑張ってくれ。
0621nobodyさん
05/01/31 20:18:23ID:???0625nobodyさん
05/02/01 14:14:36ID:07WWszEkpath_infoなURLで拡張子無しで、
www.○○.jp/hoge/abcdef/123_456/ (hoge.phpにアクセスしている)
アクセスした場合実機では「リクエストされたページは表示できません。」
Openwave SDK6.2では406エラーになり、
www.○○.jp/hoge.php/abcdef/123_456/
の場合実機(タルビー)では変わらず、Openwave SDK6.2では問題無く表示されます。
UAからSmartyのテンプレートを切り替えで表示キャリアを分けていて、
i-modeとvodafoneに関してはオフィシャルなシミュレータと実機で表示確認済みです。
Openwave SDK6.2には下記のようなログがありました、
HTTP/1.1 406 Error
Date: Mon, 01 Jan 2005 00:00:00 GMT
Server: Apache
Alternates: {"hoge.php" 1 {type application/x-httpd-php} {length 733}}
Vary: negotiate
TCN: list
Connection: close
Content-Type: text/html; charset=iso-8859-1
Transfer-Encoding: Chunked
解決へのポインタもしくは、ezwebサイト用のシミュレータ等でもっと詳細なログを吐いてくれる
ものがあれば教えてください。
Apache 1.3.33
PHP 4.3.10
Smarty2.6.2
0626nobodyさん
05/02/01 14:58:03ID:???mktime, gmmktimeの結果が1970年以前では
壊れた挙句に,9時間毎(OSがJSTの場合)にループしませんか?.
RH7.3, rpmの4.1.2でも同じみたい
Vine(バージョン不明)のrpm 4.2.3 ではうまくいく
PHPではなくOS側の問題ですか?.
設定で回避できるようなら教えてください.
■ このスレッドは過去ログ倉庫に格納されています