【PHP】下らねぇ質問はここに書き込みやがれ 61
1 :
nobodyさん :
2008/01/27(日) 18:17:59 ID:jK32tI// まず読め→【PHP マニュアル】
http://www.php.net/manual/ja/ PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは
>>2-10 辺り
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 62
http://pc11.2ch.net/test/read.cgi/php/1199956159/ ◆質問する時の注意
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
2 :
nobodyさん :2008/01/27(日) 18:19:14 ID:jK32tI//
【簡易FAQ】 (1/3)
1.文字コードは何を使えばいいの?
→1.UTF-8 2.EUC-JP のどちらか。迷うようなやつはShift_JISは使っちゃダメ。
2. このスレに書き込むときに自分のサイト名を晒したくない
→
http://example.com/が例文などのために予約されている 。hogehoge.comは使っちゃダメ。
3. ブラウザに何も表示されないんだけど・・・
→ Apacheの設定を見直せ。ファイルの拡張子は何にしてて、その拡張子でPHPを呼ぶようになっているか?
4. 記号の意味がわからないけどググりようがない
→ 「@」 エラー表示を抑制、「->」 オブジェクトのメンバにアクセス、「::」 静的なメソッド呼び出し、
「==」は暗黙の型変換をしてゆるい比較、「===」は型情報も含めた厳密な比較
5. echo "$arr['hoge']['fuga']"; と書いたらエラーになった
→ {おっぱい括弧}でくくって"{$arr['hoge']['fuga']}"にする
6. 一定時間ごとに自動的に何かしたいんだけど
→ cronかタスクスケジューラを使え。
7.extractって危険なの?
→変数上書き&初期化忘れなどで危険。楽だからという理由だけで安易に使わない。
8. include/requireに「〜.php?a=b&c=d」のようなパラメータをつけたい
→ URL呼び出しなら可能だけど、普通のファイル呼び出しではできません
9.include/requireでURLを指定しても何も起きない
→ .phpの拡張子のファイルをURLで呼び出すと、1度PHPプログラムとして実行された結果になる。
10. そもそもインストールの時点でうまくいかない
→ 確認すべきはPHPのconfigureの引数、php.iniの内容と置き場所、
Webサーバの設定(Apacheならhttpd.conf)、起動&再起動あたり
3 :
nobodyさん :2008/01/27(日) 18:20:07 ID:jK32tI//
【簡易FAQ】 (2/3)
11. SQLの質問はどこで?
→ データベース板に誘導されるのが嫌ならPHPにうまく関連させて質問する
12. 文字列のなかに、英字のみとか数字のみとか記号が入っちゃいやんとかはどうしたらいいの?
→ ctype_〜()が手軽。複雑なパターンはpreg_〜()あたりで正規表現を使う。
13. $a1, $a2, $a3 ... のような変数名をうまく扱いたい
→ 可変変数で実現できるけど、むしろ配列を使って$a[1], $a[2], $a[3]等とするのがベター
14. echoとprintってどう違うの?
→ よく議論される話題であるが基本的に両者とも同じ。 以下ちょっとした議論。
http://www.faqts.com/knowledge_base/view.phtml/aid/1/fid/40 15. クッキーの情報をユーザから隠したい
→ セッション使え。ただしクッキーとセッションは仕組みが違うから同じように扱うな
16. strip_tags()で削除しないタグを複数指定したい
→ strip_tags($html, '<a><p><font>'); // htmlspecialchars()も検討すべし
17. CSVやTSVのファイルをスマートに扱いたい
→ まずはfgetcsv()。ただし日本語を含むと正常に動作しない場合があるので注意だ。
18. 値渡しと参照渡し(「&」を使う)のパフォーマンスの違い
→ C言語じゃないので、パフォーマンス目的で使いわけたらダメ。参照渡しにすると逆に遅くなったりする
参照渡しは引数に戻り値を設定したり引数を関数内で変更するなど、正しい目的に使うこと
19. ファイル入出力関数(fopen等)でリモートファイル(
http:// 〜とか)を扱う際の限界
→ fsockopen()でソケット通信 or PEARのHTTP系 or CURLで解決
必要ならHTTPをはじめとする各種プロトコル(どんなデータを送受信するか)はRFCなどで調べる
20. PHPからPOSTリクエストしたい
→19.を参照
4 :
nobodyさん :2008/01/27(日) 18:20:39 ID:jK32tI//
【簡易FAQ】 (3/3) 21. 画像処理一般 or GDの限界 → ImageMagick(PECLのやつ or シェルから実行) 22. 画像・音・動画はファイルで保存?DBに保存? → 好きにしてください
5 :
nobodyさん :2008/01/27(日) 18:21:11 ID:jK32tI//
6 :
nobodyさん :2008/01/27(日) 18:22:00 ID:jK32tI//
まあ一応使うけども
8 :
nobodyさん :2008/01/27(日) 18:30:46 ID:Nkn4j03s
1000 名前:nobodyさん 投稿日:2008/01/27(日) 18:30:02 ID:Nkn4j03s 1000Get!!
前スレ
>>997 国名でいいならAPNICのサイトからJPのIP割り当て範囲を調べ、
そのリストを作成してその範囲にマッチするか総当りチェック。
県名の場合は各プロバイダによるが、ホスト名から地域が推測できるので、
それのリストを作成してチェックする。
で、スレ番61になってるが本来ここは63ね。
> 991 名前:nobodyさん 投稿日:2008/01/27(日) 18:22:16 ID:IHMN/Cyj
> ああ埋まってしまう。
>
>>983 > それでOKです。串さされたらどうしようもないですし。
> 方法を教えてもらえませんか?
> 専用の変数があるんでしょうか?
漏れ串でなければ、追いかけるのは不可能。その串のログでも
参照しない事には無理。
>>9 が言うように、推測でやるしかないので、専用の変数(←これは
関数のことをいいたかったのかな?)というものももちろん無い。
12 :
nobodyさん :2008/01/27(日) 18:44:53 ID:IHMN/Cyj
>>9 前もってリストが必要なんですね。
ご回答ありがとうございます。
>>11 HTTP_REFERER や HTTP_USER_AGENT みたいに
クライアントが発信する国名を
(もちろん情報発信はクライアント依存なんで正確性はアレですけど)
一発で取ってくれる方法があるかと思ってたんです。
そもそも国名なんかはこっちで推測するしかないんですね。
ご回答ありがとうございます。
_,,....,,_ _人人人人人人人人人人人人人人人_ -''":::::::::::::`''> ゆっくりしていってね!!! < ヽ::::::::::::::::::::: ̄^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^ ̄ |::::::;ノ´ ̄\:::::::::::\_,. -‐ァ __ _____ ______ |::::ノ ヽ、ヽr-r'"´ (.__ ,´ _,, '-´ ̄ ̄`-ゝ 、_ イ、 _,.!イ_ _,.ヘーァ'二ハ二ヽ、へ,_7 'r ´ ヽ、ン、 ::::::rー''7コ-‐'"´ ; ', `ヽ/`7 ,'==─- -─==', i r-'ァ'"´/ /! ハ ハ ! iヾ_ノ i イ iゝ、イ人レ/_ルヽイ i | !イ´ ,' | /__,.!/ V 、!__ハ ,' ,ゝ レリイi (ヒ_] ヒ_ン ).| .|、i .|| `! !/レi' (ヒ_] ヒ_ン レ'i ノ !Y!"" ,___, "" 「 !ノ i | ,' ノ !'" ,___, "' i .レ' L.',. ヽ _ン L」 ノ| .| ( ,ハ ヽ _ン 人! | ||ヽ、 ,イ| ||イ| / ,.ヘ,)、 )>,、 _____, ,.イ ハ レ ル` ー--─ ´ルレ レ´
環境変数だとaccept-langが参考になるくらいだな そういうデータ売ってるとこもあるかも知れんが まあ必要なら答えてもらえばいい
相手の国や県名を表示させるのって、それ自体が 製品となっているからな。今はそれを買うか、 全部自分で作るかの段階だろう。
16 :
nobodyさん :2008/01/27(日) 19:02:00 ID:IHMN/Cyj
>>14 おお、これクライアントの希望指定言語を取得できるんでしょうか。
いいですね。
日本からのアクセスか、それ以外かで
英語表記と日本語表記を切り替えたいので、
こっちのほうが処理も軽そうです。
>>16 それだけの目的ならHTTP_ACCEPT_LANGUAGE見るだけでいいよ
英語と日本語なら、jp以外を英語にしとけばいいんじゃない?
あとは切り替え用によくみる国旗のリンクみたいの用意しとけばOK
>>16 クライアントで設定されているWebサイト閲覧の言語の優先順位情報だから適宜だね。
複数設定されてる場合はja,en-US;q=0.7,ko-KR;q=0.3とかになるんで留意の程。
県って方言まで分けるつもりだったのかよ
そのとおりだにょ
21 :
nobodyさん :2008/01/27(日) 21:00:26 ID:IHMN/Cyj
>>17-18 アドバイスありがとうございます。
最初の二文字を切り取って判定するとよさそうですね。
>>19 言語判定だけじゃなくても保存しておけばソースとして有効でしょう。
情報は多いにこしたことはないかと。
PHPを隠蔽するため、.htaccessで拡張子.htmlでも動くように設定しました。 .htmlで動くようにはなったのですが、404 NotFoundのエラーを返すときに完全な白紙になってしまいます。 これはなぜでしょうか。また解決法はないのでしょうか。ご教授お願いします。 CentOS5 , Apache2.1 , PHP5.1.6 -.htaccess- AddType application/x-httpd-php .html ErrorDocument 404 /error/404.html -/error/404.html- 純粋なhtmlファイル
このごろスレが荒れ気味なので、夜は私がこのスレの仕切り役をさせて頂きます。 昼は仕事で忙しいので、昼は誰か良心的な方が仕切って下さい。 宜しくお願いします。
シュッ
シュッ
シュッ ハ,,ハ シュッ
ハ,,ハ彡( ゚ω゚ ),ハ
( ゚ω゚ )彡ミ( ゚ω゚ )
>>24 お断りします
_(__つ/ ̄ ̄ ̄/_
\/ /
明日は仕事なので、今日はもう上がります。 昼の人、あとはよろしくお願いします。
>>27 偽者ご苦労さまです。しかも、名前をそのままコピペしたのがバレバレですよ。
29 :
nobodyさん :2008/01/27(日) 23:50:30 ID:JQB2UzdY
すみません、教えて頂きたいのですが、 本クラス private 名前 private 値段 本棚クラス private 本を入れる配列 部屋クラス private 本棚を入れる配列 こういったクラスがあるとします。(ゲッター、セッターとかメソッドあり) この時、部屋にある本の一覧を表示とかさせたい場合、どういった方法でやればいいのでしょうか? foreachだとpublic以外取得出来ないみたいで、やり方がわからないんです。 よろしくお願いします。
ゲッターあるならそれで取り出せばいいじゃn
32 :
nobodyさん :2008/01/28(月) 00:01:46 ID:2wjTZIh4
cent osを使っています。
http://centossrv.com/ では
mysqlとphpの連結は書いてありますが、
php+postgresqlの連結が書いてありません。
書いているサイトとかしっていたらよろしくです。
文字コードはmysqlはutf8でpostgresqlはEUC-JPを使いたいのですが
これでいいですか?
default_charset = EUC-JP
mbstring.http_output = EUC-JP
mbstring.internal_encoding = EUC-JP
mbstring.http_input = ASCII,JIS,EUC-JP,SJIS
mbstring.detect_order = ASCII,JIS,EUC-JP,SJIS
mbstring.substitute_character = none
もし板違いなら誘導をお願いします。
linux板で書いていたんですが、答えもらえず
ここにきました。
よろしくです。
>>29 イテレータを定義すればforeachでも回るよ
詳しくは↓の奴が答えるから
タンスの角に小指をぶつけて いてれーたー。
Javaじゃないんですうううううう
>>32 mysqlとphpの連結ってのがどこに書いてあるのか分からんわ
入出力を自動でEuc-jpにしたい、ということなら encoding_translation=On が必要
ただこうしてもDBへのInsertなんかが勝手にEuc-jpになるわけじゃないからね
自前でmb_convert_encodingすることが必要で、これはアプリの実装次第
あとdefault_charsetでeuc指定すると、出力がUtf8決めうちの奴は化けるので夜露死苦
http://jp2.php.net/mbstring
Iterator を implements して rewind(), valid(), key(), current(), next() あたりを作れば private でも foreach できる この場合部屋クラスで IteratorAggregate を実装し、getIterator() によって Iterator を実装した自動回転式本棚クラスを返すようにすれば・・・ って PHP でわざわざそんなことするやつがおるかバカチン!
ワロタw 本末転倒だなJavaって。
もう全部publicでいいじゃんw
何でオブジェクト指向プログラミングの話をPHPスレに来て 質問するのか良く分からないが、本棚クラスにPrivateで 今どの本を取り扱っているのかを管理する変数を置いてない から、出来ないだけだろ。 これはPHPが悪いのではない。オブジェクト指向の理論を 理解していない方が悪いのだ。
41 :
29 :2008/01/28(月) 01:03:27 ID:???
本当に勉強をする気があるのならば、PHPから離れて 「デザインパターン オブジェクト指向」とかでぐぐって 見た方がいいかと。 オブジェクト指向を学ぼうとしているのか、それとも 今目の前にある問題を解決出来ればそれでいい、 という考えなのか、良く分からないのだが。
まあ本の一覧を取得するゲッターを書けばそれで終わる話だからね
/error/ 内だけ AddTypeを戻してもだめ?
46 :
質問 :2008/01/28(月) 01:24:42 ID:CLWaFVui
phpでIMAPをやろうとしています。今 $arybox = imap_listmailbox($stream, $server, "*"); for ($i = 0; $i < count($arybox); $i++) { list(,$name) = explode("}", imap_utf7_decode($arybox[$i])); $line = explode(".", $name); print ($line[count($line)-1]); ←この辺適当ですがw } のような感じでメールボックスの名前を表示させようとしています。 英語は問題ないのですが日本語のボックス名では文字化けと言うか きちんと表示されません。 どのようにエンコードしても上手くいきません。 日本語できちんと表示させるにはどうしたらいいのでしょうか? 最終的にはUTF8で表示させたいのですが よろしくおながいします。
47 :
32です。 :2008/01/28(月) 01:54:25 ID:2wjTZIh4
ってことはmysqlもeuc-jpにしたほうがいいかな? ;; 出力バッファリングを無効にする output_buffering = Off ;; HTTP charsetヘッダを設定 default_charset = EUC-JP ;; デフォルトの言語を日本語にする mbstring.language = Japanese ;; HTTP 入力変換を有効にする mbstring.encoding_translation = On ;; HTTP 入力エンコーディング変換を auto に設定 mbstring.http_input = auto ;; HTTP 出力を EUC-JP に設定 mbstring.http_output = EUC-JP ;; 内部エンコーディングを EUC-JP に設定 mbstring.internal_encoding = EUC-JP ;; 無効な文字を出力しない mbstring.substitute_character = none でいくもんね。 でもmysqlをeuc-jpに変えることってできるんですか? パッケージインストールでも。
>>47 なんかDB的に意味ない設定してるけど、運がよい場合に限り不具合は出ないだろう
mysqlの糞うざい自動コンバートの問題などもう少し調べたほうがいいかと思う
49 :
29 :2008/01/28(月) 02:11:46 ID:???
>>42 前もオブジェクト指向的な質問をしてJavaを勧められました。
何がやりたいのかというと、
処理を実行して作られたデータ(DBから取ってくるとか)を1つのオブジェクトに入れておいて、
表示する時にそのオブジェクトからデータを取って表示したいんです。
オブジェクトが1つならいいんですが、オブジェクトの中にオブジェクトとかになると…。
その辺りをどう処理したらいいのかわかなくて質問させて頂きました。
>>49 結局あと何が問題なんだ?
自作クラスなんだからどうとでも好きなように作れるじゃん。
正しいポリモーフィズムで実装したいってなら話は別だが
まずデータオブジェクトとそれに対する操作を分離して設計することを考える データに対して「それを操作する」というアルゴリズムをオブジェクト見なす データセットを舐めていく操作を最も汎用的な形にするとイテレータと呼ばれるものになる これらをinterfaceや抽象クラスとして定義して利用する データに操作を組み込みため、操作したいデータにinterfaceのメソッドを実装する OO的思考
52 :
29 :2008/01/28(月) 03:04:19 ID:???
>>50 イテレータでいけそうです。
なんかオブジェクトの中のオブジェクトをとって、またその中の〜って感じで値を得るのが
いけてるのかな?と、もっと便利なやり方があるんじゃないのかと思ったのです。
質問に答えてくれた方々、ありがとうございました。
>ブジェクトの中のオブジェクトをとって、またその中の 後学のためにRecursiveIteratorとかGoFのCompositeパターンを見ておくといいかも。 しかし部屋-本棚-本の場合はそういう発想にはあわないと思うね。
54 :
29 :2008/01/28(月) 03:12:14 ID:???
>>53 おお、ありがとうございます。
参考になりそうです。
やっぱりデザインパターンは大事なのですね。
勉強したいと思います。
array $room->getShelf(pos)->getBooks([pos]) でいいんじゃないの
PHPで共用メモリが使えるってんで鼻息を荒くしたんですが、 借りてるスペースでは使えないことが分かりがっかりしました。 どうすればいいでしょう?
射精して落ち着いてください
部屋に居る人間が、本棚を特定する場合、どういうやり方に なるのか決めてるのかなぁ。 「1番目、2番目の本棚」という感じでやるんだろうか。 本棚に収まっている書籍の特定も、何番目という数値で いいのか、それとも名前がつけられるのかによって書き方は異なる。 前者でよければ、本棚とか何とか言うのは辞めて、 おとなしく配列でやった方がコーディングや処理が 早い場合も多数ある。
59 :
nobodyさん :2008/01/28(月) 08:41:43 ID:bzu6tb73
PHPのオブジェクト指向の考え方について質問させてください class name($value) { var $aaa = "hoge"; var $bbb = 100; function getTotal($value2) { $tax = $this->price * 0.05; return $this->price + $tax; } } こんな感じのスクリプトがあったとき(構文自体は間違いがあるかも) $value や $value2 と引数?が入ってることがありましたけれども これは例えばどこからこれらの変数に値が渡されて、 結果どのような変数に値がわたっていくのでしょうか?
61 :
nobodyさん :2008/01/28(月) 09:07:27 ID:bzu6tb73
60様 すみません。 質問の形を少し変えまして、$valueをこのクラスで活かすには どのような形に書き換えればよろしいのでしょうか? 適当な例文などを示して頂ければ幸いです。
62 :
nobodyさん :2008/01/28(月) 09:09:27 ID:bzu6tb73
重ねてもうしわけありません。 私が示しておりました文は確かにめちゃくちゃでした。 訂正いたします class name($value) { var $mono = "hoge"; var $price = 100; function getTotal($value2) { $tax = $this->price * 0.05; return $this->price + $tax; } }
>>60 ではないけどひとつ言うと
classに引数は渡せない。
だから
class name
{
var $aaa = "hoge";
var $price = 100;
function getTotal($value2)
{
$tax = $this->price * 0.05;
return $this->price + $tax;
}
}
なら分かるけど正直関数内で$value2が使われてないから無駄です。
$this->がついてるのはクラス内変数
何もついてないのは関数内変数(含 引数)。
>>62 いいや・・・
まず1点。1行目の
>class name($value)
ここはクラス名の宣言やら継承するクラスなどの指定をするだけ。
引数があるのはおかしい。
class Name {
とするのが正しい。
>function getTotal($value2) {
引数に$value2を指定しているのにもかかわらず、
このスコープ内において一度も出てきていない=不要。
それぞれの変数や関数が何をしようとしているのか推測しづらいので、レスも付きにくいかと。 クラスname : 商品を扱うクラス。商品名・単価をセットしたり、消費税を計算したりする。 $value : ? $mono : 商品名 $price : 単価 getTotal : 消費税を加えた金額を取得する $value2 : ? パッと見では、クラスをnewする時に商品名・単価を設定したくて、それが$valueに入ってる? $value2は分からん・・・getTotalの呼び出し元で一々代入せずに直接変数を設定してるつもりなのかな?
class name { var $mono = null; var $price = 0; function setMono($butsu) { $this->mono = $butsu; } function getMono() { return $this->mono; } function setPrice($nedan) { $this->price = $nedan; } function getPrice() { return $this->price; } function calc($tax) { return $this->price * $tax + $this->price; } } $obj = new Name(); $obj->setMono("ペン"); $obj->setPrice(100); echo $obj->getMono()."の定価は".$obj->getPrice()."円で、税込み".$obj->calc(0.05)."円です";
>>66 なんでコンストラクタ使わないんだよ・・・。
function name($mono, $price)
{
$this->setMono($mono);
$this->setPrice($price);
}
って入れるだろ。
68 :
nobodyさん :2008/01/28(月) 09:56:34 ID:bzu6tb73
63様、64様、65様、66様 私の文を訂正して頂きましてありがとうございました。 $value については、構文上正しくない書き方であることが分かりましたし 皆々様よりご丁寧な説明文とともに、納得のいく説明を頂きましたお陰で、正しく理解できたと思います。 $value2 についてなのですが、どうしてもこの変数(メンバ変数?)を使いたい場合は 66様の構文で言うところのどこに$value2を使ってあげるとよろしいのでしょうか? 重ね重ね至らぬ質問をいたしまして恐縮です。
69 :
nobodyさん :2008/01/28(月) 10:03:03 ID:bzu6tb73
67様 お礼が遅れまして申し訳ありません。 ありがとうございました。 そのような構文の書き方ならば、functionの横に(引数)という形で書き入れても良いのですね。 参考になりました。 コンストラクタというのは、PHP5できちんと実装されたものだとマニュアルか何かで拝読いたしました。 私が使っている環境は、インターネット上のサーバに合わせている事もありPHP4.4.4をインストールしております。 そのような書き方でも大丈夫なのでしょうかと質問したいところなのですが これは、自身で調べることにいたします。お手数かけまして恐縮いたします。
>>68 >function calc($tax) {
> return $this->price * $tax + $this->price;
> }
で$value2の代わりに$taxつかってるだろ。
ちゃんと嫁。
$taxを$value2って名前にしても同じ。
#因みにcalcって変数名はどうかと思う。
>>70 なんか横から聞いてて参考になった。thx!!
73 :
nobodyさん :2008/01/28(月) 10:57:17 ID:bzu6tb73
70様 ご指摘ありがとうございます。 お陰様で不明点がひとつ解決いたしました。 72様 実はそうなのです。 「コンピュータ」の部分や、「価格」の部分を変数から受け取る形を作りたくて 試行錯誤しておりました。 66様のように書いておけば、66様の下4行という形で「ペン」「100」「0.05」の値を 変数で渡すようにすることで実現可能なのだということがわかりました。 皆々様、ありがとうございました。
>>73 見てるサイトが悪いと思う。あんな意味のない例題普通出さないわ。
まぁがむばれ。
75 :
nobodyさん :2008/01/28(月) 12:22:18 ID:bzu6tb73
74様 励ましのお言葉ありがとうございます。 よろしければ、例題としてよい事例が挙げられているお勧めのサイトなど ご存知でしたら、ご教授願えませんでしょうか? 質問にご回答頂いた上に厚かましい次第ですが、お聞き入れくだされば幸いです。
>>75 とりあえず〜〜様ってのやめれ
安価に汁、激しく読みにくい
>>76 様と殿と御中を使い分けるのは、匿名では不可能
殿が貴方様を欲しております。御中
ウォンチュ!
最近のサイトはアフィがくっついてるからな。 URL出すと宣伝乙といわれるから、自分にあったのを探せとしかいえないね。 Javaのほうが説明上手いとこが多い。PHPと構文はほぼ一緒なので理解できるはず。
>Javaのほうが説明上手いとこが多い。PHPと構文はほぼ一緒なので理解できるはず。 は???
オブジェクト指向をやろうと思うのであれば、解説サイトを探す他に、 ソースを読むという方法もある。それ以外には自分なりに課題を決めて やってみるのも手だな。 (例)認証をしてメインメニューに入るまでの過程のプログラムで、 認証をするオブジェクトと、メインメニューのオブジェクトを作り、 コーディングしなさい。IDとパスワードの確認は別ファイルにある リストと一致するかを確認するものとする。
83 :
nobodyさん :2008/01/28(月) 13:21:20 ID:wIYhLBDU
$varには、1と2しか値が入っていないこないと想定されるとき、 if ($var == 1) { } else if ($var == 2) { } とするべきか、 if ($var == 1) { } else if ($var == 2) { } else { // ここにエラー処理 } とするべきかよく分かりません。 全てに後者の方法でやるとコードが冗長になるし、 「// ここにエラー処理」に何を書くべきかよく分かりません。 ご教授よろしくお願いします。
つかマニュアル読めよ・・・。ありえん。
84はbzu6tb73への言葉ね
>>83 俺だったらswitch-case
>>83 上のほうで十分。あと、phpの場合は「elseif」と書く。
場合によっては下のほうも書くが、君がそれを何処で知ったのか。
その理由は何であるのか。を理解していないのであれば、
書くだけ無駄。
例外処理を冗長とか言うなよw
例外じゃないだろ
>>90 >>86 じゃないがPHPでもelse ifでかけるんだな。知らんかったわ。
>>83 ここのような初心者向けスレで聞くと、その答えは前者になる。が、普通は後者。
動けばいい、安全性より速さ、落ちたらその時に考えればいいというなら、前者の方がベスト。
>>89 1と2しか値が入っていないこないと想定されるときに1と2以外が入ってきた場合の処理は例外処理だろ。
try〜catchだけじゃ無いぞ。
いないこない、がチョトカワイイw
すいません確認したいのですが $text = '0x41'; echo preg_replace( '/0x[0-9a-f]{2}/ie', 'chr($0)', $text); のようなことは ereg_replace ではできないと考えてよいのでしょうか?
外から入ってくるものならifの前に$varが1か2じゃなかったらexit 中からのものならelse{echo '$varがおかしいぞー';print_r($var);} とかデバッグ用にやってる 本番には消す 俺たいていプリントデバッグだし
チェック用のコードを本番で消すのか。俺は怖くてできんな。
言葉が足りなかった 本番には(デバッグ用の定数読んで表示を)消す ね
たま〜に出るものだけど、何かのアプリ使ってると「予期しないエラー」
と表示されるでしょ?それは、この場合のelseになった場合だよ。
>>90 それは知らなかった。でも、公式マニュアルはスペース無しだw
>>98 オプションのeそのものが使えないのはわかるのですが
i の代わりになる regi のような文もあるかと思ったんですがなさそうですね。
あ、ereg関連でeオプションに相当する機能があるのかなと疑問に思ったんですが できないならできないで納得したので問題ないです。
わざわざありがとうございました。 自由度が高いし高速らしいのでやっぱりpreg使ったほうがよさそうですね。
eregはいらない子
106 :
nobodyさん :2008/01/28(月) 15:10:10 ID:jMMNIxRZ
楽天APIのXML取得について教えてください。 <Response> <Args> 〜中略〜 </header:Header> <Body> <itemSearch:ItemSearch xmlns:itemSearch="〜"> <count>151517</count> <page>3</page> <first>11</first> <last>15</last> <hits>5</hits> <carrier>0</carrier> <pageCount>100</pageCount> <Items> <Item> 〜以下略〜 このXMLにある <count>から<pageCount>までの値を取得する方法を教えてください。 PHP5対応です。商品情報は取得出来たのですがここが出来ません。 ご指導お願いします。
107 :
nobodyさん :2008/01/28(月) 15:10:35 ID:21Z67c9t
<A href="005.html" target="top">テスト</A>
<A href="a/031.php?test=1">hoge</A>
<A href="
http://yahoo.co.jp ">ヤフー</A>
こういうソースがあったとして、
これを、URLとテキストそれぞれを配列で取得するにはどうやったらいいのでしょうか
$url[0] = "005.htm";
$url[1] = "a/031.php?test=1";
$title[0] = "テスト";
$title[1] = "hoge";
上記のように取り出したいです
拳銃についているサイレンサーを、サイレンを鳴らすものだと勘違いしてる馬鹿をどう処分しようかwww
その拳銃でそいつを撃てばいいんじゃね?
>>106 simplexml+xpathで抜き出すのがよろしかろう
>>107 preg_matchで抜き出すのがよろしかろう
>>111 htmlだってsimpleXMLやDOMで抜き出したほうが楽なのでわ?
114 :
107 :2008/01/28(月) 15:44:26 ID:21Z67c9t
115 :
106 :2008/01/28(月) 15:47:44 ID:???
$xml = simplexml_load_file($url); $pageCount = $xml->Body->ItemSearch->pageCount; echo $pageCount 上記のようにやってみましたがページが表示されません。 何か抜けているのでしょうか? ちなみに商品データの方は foreach($xml->Body->ItemSearch->Items->Item as $item){ 中略 } このような形で取得が出来ました。
>>114 preg_match_allだったわ
マッチ結果をforeachでぐるぐるすればOk
>>113 現実のサイトのhtml/xhtmlはxmlパーザで処理できないことはままある
>>107 <html><body>
<?php
$str = '<A href="005.html" target="top">テスト</A>
<A href="a/031.php?test=1">hoge</A>
<A href="
http://yahoo.co.jp ">ヤフー</A>';
$a = split("\n", $str);
$a0 = split('"', $a[0]);
$url[0] = $a0[1];
$a1 = split('"', $a[1]);
$url[1] = $a1[1];
$a2 = split('"', $a[2]);
$url[2] = $a2[1];
$b0 = ereg_replace(">", "", $a0[4]);
$b0 = ereg_replace("</A", "", $b0);
$title[0] = $b0;
$b1 = ereg_replace(">", "", $a1[2]);
$b1 = ereg_replace("</A", "", $b1);
$title[1] = $b1;
$b2 = ereg_replace(">", "", $a2[2]);
$b2 = ereg_replace("</A", "", $b2);
$title[2] = $b2;
echo "$url[0] : $title[0]<br>";
echo "$url[1] : $title[1]<br>";
echo "$url[2] : $title[2]<br>";
?>
</body></html>
ぉぃぉぃw
さすがにネタだよな
>>115 > $pageCount = $xml->Body->ItemSearch->pageCount;
×ItemSearch
○itemSearch
視力検査的な回答で悪いけど
>>115 ページが表示されないとは?
echoに ; が無いようだけど
$pageCountに希望のデータが入ってないということなら
var_dump($xml->Body)するなどして変数の中身をチェック
基本は大事だよ〜
122 :
106 :2008/01/28(月) 16:10:50 ID:???
>>120 レスありがとうございます。
ご指摘いただいた所は承知しています。
小文字にしても表示出来ません。
ちなみに商品データのところも ItemSearch と大文字にしてありますが
これを itemSearch と小文字にするとエラーがでてしまうようです。
>>122 そういえばsimplexmlはchildren()で名前空間の子要素を引っ張り出してから
処理しないと駄目だったかもw
まあぐぐって自己解決して
$is = $xml->Body->children( namespace uri ); $pageCount = $is->children("")->pageCount; めんどくさいな list($pageCount) = $xml->xpath("//pageCount"); のほうが読みやすいと思う
>>124 デフォルトの名前空間も引き継がないのか
おそるべしSimpleXML・・・
126 :
106 :2008/01/28(月) 16:48:49 ID:???
皆さんいろいろとアドバイスありがとうございます。 どの方法を試してみてもやはり駄目のようです。 もう少し調べて頑張ってみます。
127 :
107 :2008/01/28(月) 16:50:02 ID:21Z67c9t
128 :
nobodyさん :2008/01/28(月) 16:52:00 ID:z4N7eEQg
<?php
Html("テスト");
function Html($test){
print <<< DOC
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "
http://www.w3.org/TR/html401/loose.dtd ">
<html lang="ja">
<head>
<title>$test</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<p>テスト</p>
</body>
</html>
DOC;
}
?>
このようなスクリプトがあるとして、ブラウザで見るとshift_jisと解釈されてしまいます。
metaとtitle要素の位置を入れ替えるとUTF-8で解釈されるようになるのですが
別のスクリプトではmeta、title要素の並びがこのままでもUTF-8と解釈されているものがあります。
スクリプトファイル自体は両方ともUTF-8で書いてありますしソースにも差異が見られないと思うのですが
(別のスクリプトからコピペしてきたものなので)
何か心当たりのある方はご教示頂けるとありがたいです。
phpのバージョンは5.2.5、ブラウザはIE系、サーバはhttpdを使ったlocalhostです。
129 :
質問 :2008/01/28(月) 16:56:05 ID:CLWaFVui
phpでIMAPをやろうとしています。今 $arybox = imap_listmailbox($stream, $server, "*"); for ($i = 0; $i < count($arybox); $i++) { list(,$name) = explode("}", imap_utf7_decode($arybox[$i])); $line = explode(".", $name); print ($line[count($line)-1]); ←この辺適当ですがw } のような感じでメールボックスの名前を表示させようとしています。 英語は問題ないのですが日本語のボックス名では文字化けと言うか きちんと表示されません。 どのようにエンコードしても上手くいきません。 日本語できちんと表示させるにはどうしたらいいのでしょうか? 最終的にはUTF8で表示させたいのですが よろしくおながいします。
>>128 ファイルはUFT形式で保存してる?
ソースでUTF-8を指定してもShiftJIS形式で保存していたら意味ないし。
と言うか実際にそう言うミスをしているヤツが会社にいたから。
>>128 そのまま試したらブラウザではUTF8に解釈されたが
133 :
nobodyさん :2008/01/28(月) 18:01:44 ID:z2UAw/tw
>>130 ソースもUTF-8で保存しています。
>>131 あら、ちゃんと解釈されましたかorz
こちらはIE系だとダメでしたがFxだとUTF-8で解釈されていました。
もうちょっと調べてみます。
134 :
nobodyさん :2008/01/28(月) 18:02:58 ID:z2UAw/tw
>>132 header()を使うのがベストなのはわかるのですが
同じように書いたのに挙動が2通りあるのが釈然としないのです。
135 :
nobodyさん :2008/01/28(月) 18:04:41 ID:z2UAw/tw
あ、ID変わってますが128=133,134です
>>128 html的には
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
のメタタグに関してはtitleより先にもってこないといけない
あとapacheとかphp側で吐いてるheaderによって文字コードが設定されてしまう事が多々ある
なので明示的にmb_http_outputで出力文字コードを設定してやれば
文字化けを起こすことはかなり低くなると思うけど
>>134 わざわざ引用したけど全く読んでないみたいだな
138 :
nobodyさん :2008/01/28(月) 18:38:13 ID:z2UAw/tw
>>136 サーバ側とかphp側の設定にもよるかもしれないですね・・・
>>137 meta要素が解析されるまで同じASCIIコードの文字コードが使われている時に
meta宣言ができるという解釈でいいですか?
この場合いきなりhtmlソースになったから文字コードの解析がおかしくなった、ということでしょうか。
>>129 これで出来た。
mb_convert_encoding($val, "utf8", "utf7-imap")
imap_utf7_decodeは一体何のために・・・
何のためにって西洋人のために決まってるだろ
fsockopenを使ってSMTPサーバーからメールを送信したいんですがPOP BEFORE認証はどのようにやればいいんですか?
145 :
nobodyさん :2008/01/28(月) 22:11:24 ID:hM6vuV4g
配列の中に配列を入れた場合がどうも苦手です。 $array1 = array('男','女','その他'); $array2 = array($array1,$array1,$array1); print_r ($array2); if(in_array('男',$array2)) { echo "あり"; } else { echo "なし"; } として検索すると「なし」が出ます。 実行結果 Array ( [0] => Array ( [0] => 男 [1] => 女 [2] => その他 ) [1] => Array ( [0] => 男 [1] => 女 [2] => その他 ) [2] => Array ( [0] => 男 [1] => 女 [2] => その他 ) ) なし どうすればいいでしょうか。
$array1 = array('男','女','その他'); if(in_array('男',$array1)) { echo "あり"; } else { echo "なし"; }
phpは、ナルシスト言語だろ。 どういうことか、分かるよね。
in_array()は配列中の値を調べるが、1次元の配列までしか調べることはできない。 $array2を1度分解して1次元の配列にすれば解決。
>>145 $array1 = array('男','女','その他');
$array2 = array($array1,$array1,$array1);
print_r ($array2);
foreach ($array2 as $key => $ary1) {
if(in_array('男',$ary1))
{
echo "あり index=>".$key."\n";
}
else
{
echo "なし";
}
}
150 :
nobodyさん :2008/01/28(月) 22:33:39 ID:hM6vuV4g
151 :
nobodyさん :2008/01/28(月) 22:36:43 ID:E8VxvVW/
Header locationやjavascript出力でページ遷移させるときに、 そのURLにGETメソッドの形でパラメータつけていって、遷移先のページで その情報をキーにしてページを生成させる場合があると思います。 そういう場合、移動先のページでユーザがブラウザのURL欄を編集して こちらの想定外のページを表示させることがあると思うんですが、 こういう対処どうしたらいいんですか? そんなバカなことする奴は無視? それしきの細工で致命的な想定外動作を生むようなプログラム書くやつがアホ? 結構悩んでしまいます GETメソッドまったく使わないわけにいかないし
>>151 ユーザは何するか分ったもんじゃないってことを前提にやっていかないとダメでふ。
要するに対策しないとダメってことでふ。
>>151 そこまでは責任持たなくていいよ
xss対策だけしっかりしとけば
>>152 なんでも、ユーザーのせいにするのは頭が悪い設計者の考え。
設計者は、あらゆるケースを想定して対策を講じなければいけないし、
そのようにしないと、一定のセキュリティーは保てない。
>それしきの細工で致命的な想定外動作を生むようなプログラム書くやつがアホ? 致命的想定外を起こさないために当然チェックはしてるんでしょ? 必要な変数が渡されてるか、渡された変数が正しいものかとか。 おかしかったらページを生成せずに警告かえしとけばいいわけで。
157 :
nobodyさん :2008/01/28(月) 22:56:40 ID:hM6vuV4g
すいません、もう1つ質問させてください。 phpからコマンド叩いて「rootユーザとしてログイン」して作業を行いたいんですが、 そもそもphpからrootユーザでのログインはできるんでしょうか。
そんなバカなことする奴は無視? →無視 それしきの細工で致命的な想定外動作を生むようなプログラム書くやつがアホ? →アホ お前の書いてるとおりだよ 両方
コマンドってことは、BASIC認証のことでしょうか? それをphpからっていうと、ソケットで送信することになりますが、可能です。
160 :
152 :2008/01/28(月) 23:02:52 ID:???
だから対策しないとダメって言ってんじゃんwwwww 叩いてる奴同一人物だろ?頭悪いな。
>>157 sudoとか使えばいいんじゃない
基本的にそのままじゃ無理だと思うけど
162 :
nobodyさん :2008/01/28(月) 23:06:15 ID:hM6vuV4g
いえ、例えば以下のような類のプログラムです。 <?php $output = `ls -al`; echo "<pre>$output</pre>"; ?>
163 :
nobodyさん :2008/01/28(月) 23:06:43 ID:eFFy9q14
ちょっとPHPとは違うんだけどさPHPをウインドウズ環境で開発してるんだけど・・・。 現在ウインドウズサーバに、VNCをインストールしてリモート操作しているが、やはり、これで接続して操作しようとすると、スクロール動作など反応が遅くやりづらいので、tera termなどの通信ソフトを使ってサーバをリモート操作しようと思います。 しかしこのソフトって本来リナックスサーバ用のソフトですよね。 私のように、ウインドウズをサーバにして使っているような環境でも動作するものなのかな?
まったくPHPと関係ないですね。 普通の人はWindowsXPあたりで開発もするし、デバッグもApacheを入れて同じPC上で行う。
166 :
nobodyさん :2008/01/28(月) 23:12:07 ID:hM6vuV4g
>>161 sudoでroot権限を与えていないユーザが踏んでもコマンドを叩くようにしたいのですが、
167 :
nobodyさん :2008/01/28(月) 23:13:59 ID:hM6vuV4g
あれ、混乱してきた。。。そもそもexec系のプログラムでコマンドを叩く場合、誰が叩いていることになるんだ?スクリプトが置かれているところのユーザ?
>>163 同一のローカルネットワーク内なら
ファイル共有しちぇばいいんじゃ?
というか激しくスレ違いな
>>162 ただのコマンドうちたいだけならそれでいいと思うんだけど
別にrootにならなくてもどーとでもできるよ?
rootで作業するとはおそろしい
170 :
nobodyさん :2008/01/28(月) 23:18:05 ID:hM6vuV4g
ルートにならなければできないコマンド、例えばユーザの管理とか。そういうこともrootにならずともできますか?
apacheが動いてるユーザーじゃないの?
そーゆことをphpでやる状況が想像できない
apacheをrootで動かす状況が想像できない
COMを使ってPHPからExcelファイルを作成しています。 そんで、改ページを挿入したいんですが、やり方が判らないです。 HPageBreaksメソッドを使えば出来ると思うのですが・・・ Ver等ですが、PHP5.1.2+Win2003です。
177 :
nobodyさん :2008/01/28(月) 23:41:28 ID:5bZSpkHc
おっと、質問者はsage禁止か!
178 :
nobodyさん :2008/01/28(月) 23:46:57 ID:hM6vuV4g
>>175 おーなんかいけそうな気がしてきました。ありがとうございます。
179 :
質問 :2008/01/29(火) 00:46:04 ID:8zOSMWfb
phpでIMAPをやろうとしています。今 $arybox = imap_listmailbox($stream, $server, "*"); for ($i = 0; $i < count($arybox); $i++) { list(,$name) = explode("}", imap_utf7_decode($arybox[$i])); $line = explode(".", $name); print ($line[count($line)-1]); ←この辺適当ですがw } のような感じでメールボックスの名前を表示させようとしています。 英語は問題ないのですが日本語のボックス名では文字化けと言うか きちんと表示されません。 どのようにエンコードしても上手くいきません。 日本語できちんと表示させるにはどうしたらいいのでしょうか? 最終的にはUTF8で表示させたいのですが よろしくおながいします。
何から何まで一発でやってくれる関数ってないもんかね
,'. : : : .::::/. : .', ::::::. : : : :l:i
!: : : .::::;:'. : : : :' ,::::::. : : :l.:|
',: .::::::/. : : : : : :.ヽ:::::. : :l、!
ト、:::/: : : : i : : : : ヽ::::::/ l
ヽ. l: : : : : l : : : : : :lノ' ノ!
l: : : : :ハ: : : : : :.lテ´ |'
,!: : : :i l:: : : : : l /
/!: : .::lーl:: i: : : :| トトト---- 、
_ /」: : :l:| l:: |: : : :l- 、_ 」 ヽイ
/l l l: l: :|:l l: |i: : : l l l ヽ ミ rn 〈
! l l !:l|: l!l j/ l: : /l // | ス ,ィ7」j l77¬. }¬、
! ヽヽ|! l:| | / /:.イ/// l _rー┘lV t:::/ ! V z::: lー{ / _,\
>>182 頼む!一発やらせてくれ!!
| | `l|ヽl! ___/'´/'´イ l /'´/┴---- ' | ' ----┴ヘ ヽ.|
l ! | ┬/ '´ | |{|_l_____/\_____| ヽ_〕
! :.l ! !:. l l/ | />  ̄` <ヽ__\ L「
| ::.', | !:. | lハ | lc | / | |ヽ|
! ::::} ! !:: l l V l 、 l !./ー' i
/ .:/ i |:: | i cV!_!_|' |
185 :
nobodyさん :2008/01/29(火) 07:27:13 ID:AL6Mrzhd
おしえてください <td> あいうえお 123456 </td> <td> 数字だけを抽出したいのですがうまくいきません preg_match('/<td>\n\s*.*\s([0-9]+)\s<\/td>\n<td>/', $buf,$match); echo $match[1]; こういう場合は一旦全部抽出させてereg_replaceで「あいうえお」を削除したほうがいいのでしょうか よろしくおねがいします
>>185 状況によりけりだろ。「あいうえお」しかないのならばそれでいいけれど、
漢字とか含んでいたらどうする?
ereg使うんじゃないの?
>>185 もうちょっと条件を厳密にしないとちゃんとした正規表現作れないよ
189 :
nobodyさん :2008/01/29(火) 08:50:53 ID:ak6dtF+8
>>185 $match = preg_replace("/[^0-9]/", "", $text);
191 :
nobodyさん :2008/01/29(火) 09:23:39 ID:AL6Mrzhd
レスありがとうございます 文字は固定なので一旦抽出してから削除する方法にしました
192 :
nobodyさん :2008/01/29(火) 09:30:48 ID:rqLkKeN0
下記のようなリクエストをヘッダーで送信して、そのページで結果を表示させたいのですが。
-----------------------------------------
POST
http://localhost/Project/POST_TEST/index2.php HTTP/1.1
Host: localhost
Content-Type: application/x-www-form-urlencode
Content-Length: 16
新宿 居酒屋
-----------------------------------------
これを$requestに入れて、
header($request);
header("Location: index2.php");
のようにしても、
「Header may not contain more than a single header, new line detected」
のようなエラーが出力されます。
どのようにしてPOSTを送信して、送信先のページに結果を表示させることができるのでしょうか?
エラーの意味がわかれば答えが出そうなもんだが
ソフトハウスに依頼すれば全部やってくれるぞ。
しまった
>>182 へのつもりで送ってた。
作業してる間にログかなり流れてたわ。
196 :
nobodyさん :2008/01/29(火) 13:04:59 ID:3emMDaRd
すんません教えてください $a=123456; $aをlong(4バイト整数)とした場合にこれの 上位ワード、下位ワードを取得して更に上位バイトと下位バイトにわける方法を教えてください CでAPIを使ったイメージで言うと awh=HIWORD(a); awl=LOWORD(a); abl=LOBYTE(a); みたいな関数があったら教えてください・・
若干スレ違いかもしれないけど、一応PHPの関数なんで質問。 chmod()でファイルをアップロード後に、特定のパーミッションにしてるんだけど レンタルサーバーで試すと、エラーが出てしまう。 しかし、エラーが出ていてもちゃんとそのファイルのパーミッションは変更されているので 現在は@つけてエラー無視してるんだけど、何が原因なのかわからない・・ chgrp()、chown()などは利用することが出来ないレベルの権限です。 フォルダ構成は [public_html/0755] - index.php - [img/0777] - アップされた画像ファイル(これの権限) - image.php(アップを実行しているファイル) 環境: Server:FreeBSD/ PHP4.4.2 /スーパーユーザーの権限はなし。 よろしくお願いします。
>>197 スレ違い以前の問題
まずは
>>1 を読め
あと何のエラーかぐらい表記しろ
199 :
197 :2008/01/29(火) 13:17:56 ID:R+uUiaBI
失礼しました。 該当箇所でのエラーは下記です。 Warning: chmod(): Operation not permitted in /エラーを出したファイルへのパス/
>>199 chmod使わなくても勝手にパーミッション設定されたりしてない?
>>198 知らないならレスしないでください。うざいです
202 :
197 :2008/01/29(火) 13:23:26 ID:R+uUiaBI
>>200 試しに該当箇所のソースをコメントし、ただ単純に
アップしてみたところ644になってました。
なぜ今回PHP上からパーミッションの変更がしたかったかと
いいますと、ユーザーが画像やテキストファイルなどをアップした場合
後に削除要望がある場合を想定して、ファイルの権限やパーミッションを
削除可能な権限にしておきたいと思ったからです。
204 :
197 :2008/01/29(火) 13:31:40 ID:???
>>203 ありがとうございます。おっしゃるとおりなんですが、
なぜエラーが出ているのに、変更は出来ているのかというのが
疑問でして・・
自分自身が設定希望のパーミッションは0755です。
0644でも問題はないのですが、パーミッションが変更出来ないなら
出来ないでいいんですが、出来ているのが気持ち悪いというか・・
よくわからない質問ですみません。
>>196 直接Cのintのバイト列にはさわれないし、無理じゃないかなぁ。
それとも、単純にビットシフトをサボりたいだけ?
エンディアンはどーしたいの
206 :
nobodyさん :2008/01/29(火) 13:39:07 ID:3emMDaRd
>>205 シフトできるんですか?できるならシフトでもかまいません。
Cみたいに普通に
$b=($a
>>8 )&0xFFFF;
ってできますか?
やってみりゃわかる
208 :
nobodyさん :2008/01/29(火) 14:04:23 ID:3emMDaRd
あ、できましたね・・・ HPみてもこれ載ってなかったからできないものと思い込んでました・・ ちなみにこれ知らなかったのでわざわざHEX文字にしてsubstrで2バイトとって それをintvalでってめんどいことしてました。 あー!
>>196 $long = 0xab1fe22;
printf("%08xh\n", $long);
printf("%08xh\n", $long & 0xffff);
printf("%08xh\n", ($long & 0xffff0000)
>>16 );
みたいのではだめ?
関数でやりたいんなら自作して使うとか。
1ビットの右シフトは2で割ることと同じなわけで…
質問です。 windows xpにApache2 + php4 + pear標準のみの環境で XML UnserializerとXML Parserを制作しているphpプログラムの libsディレクトリ内に配置して ini_set('include_path', 'libs' . PATH_SEPARATOR . ini_get('include_path')); っとインクルードパスを設定しているのですが Fatal error: Class xml_parser: Cannot inherit from undefined class pear in 〜libs\XML\Parser.php on line 96 のようなエラーが出てしまいます。 これはPEAR.phpをインクルードできていないのでしょうか? それとも他に原因があるのでしょうか?
213 :
nobodyさん :2008/01/29(火) 14:23:36 ID:3emMDaRd
>>209 すんません。
普通にシフトが使えたのでそれでできました。
214 :
nobodyさん :2008/01/29(火) 14:41:58 ID:3emMDaRd
すんません。更に教えてください 例えば、 $b = sprintf( "%c%c%c%c%c", 1, 2, 3, 4, 5 ); としたときに、$b[2]の値(ここでは3)を取り出したいのですがどうすればいいでしょうか? 一応Cのバイトの配列をイメージしているのですがうまくいきません・・・
>>214 ord($b[2])とかすりゃ出来るけどそんなことせんでも普通の数値配列ではダメなんか。
細々と質問するより全体として何をしたいのか書いたほうが良いんじゃないかな。
216 :
nobodyさん :2008/01/29(火) 15:00:13 ID:3emMDaRd
>>215 嗚呼、またそういう便利なのがあるんですね数値配列とかって
そうです、まさにそれがほしかったのです・・・
それはどのようにしたらいいのですか?
ちなみに、やりたいことはというと、LANでバイナリデータを送信したいのですが
最初に送信すべきデータを$bufにぶちこんで、そのデータ和を求めてそれを最後に送信みたいな・・・
その和を求めるところでひっかかっています。
217 :
nobodyさん :2008/01/29(火) 15:08:57 ID:3emMDaRd
>>215 ordでざっくりできました。
ありがとうございました。
219 :
nobodyさん :2008/01/29(火) 16:03:55 ID:3emMDaRd
>>218 ありがとうございます。
参考にさせていただきます。
SQLでFROMにテーブル名.フィールド名って指定できなかったんだ/(^o^)\
そこでフィールドまで指定しちゃったら何をSelectするんだよw
>>221 いや、普通に検索すると糞重たいから
せめて付加減らそうとフィールドのみ読み込んでみたり・・・
1000万件もあるとやはり時間かかるなぁ・・・
>>222 そのレコード数でインデクス貼ってないとかネタかよ
DB板でやれ
>>223 DB板めんどいからいいや
INDEXの張り方がわからんから調べ中
正規化せずに無駄なフィールドまで読んでるとかねたかよ ドラゴンボール板でやれ
じゃあ俺はシャア専用でやるぞ。
ど、どうぞどうぞ
今まで、PEARがインストールできなくて途中で諦めていたんだけど、 今日ふとしたキッカケで出来た。こんなに便利なものがあるなんて・・・ ぜひ使ってみることをお勧めします。 いや、宣伝ではないです。
CakePHPを使ってからというもの PEARのお世話にほとんどなっていない。 フレームワークとライブラリは違うものなはずなのになぜだろう?
>>229 どうでもいいようなものしか使ってなかったって事だろ
231 :
nobodyさん :2008/01/29(火) 21:11:07 ID:5qvQ61c2
mixiの日記で画像を一緒にアップすると C:\Documents and Settings\Administrator\My Documents\11.3.jpg みたいに保存されてたファイル先を表示してくれるけど どうやったらでますか? 教えてくださいえらい人
232 :
nobodyさん :2008/01/29(火) 21:14:23 ID:t20Dm/Gk
phpのインストールに関する質問です。今ソースから ./configure --with-apxs2=/usr/sbin/apxs --enable-magic-quotes --with-xml --enable-mbregex --enable-mbstring --enable-zend-multibyte --with-mysql=/usr/ --enable-ftp --with-zlib インストールしようとしたのですが、 configure: error: Cannot find MySQL header files under /usr/. Note that the MySQL client library is not bundled anymore! xmlやらzlibやらのエラーは解決できたのですが、このエラーの解決方法だけ分かりません。 mysqlは/usr/下にあるのに。。。
233 :
nobodyさん :2008/01/29(火) 21:16:08 ID:t20Dm/Gk
参考までに find / -name mysql/usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi/auto/DBD/mysql /usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi/DBD/mysql /usr/lib/mysql /usr/bin/mysql /usr/share/mysql /var/spool/mail/mysql /var/lib/mysql /var/lib/mysql/mysql ググってみると皆さんmysqlを/usr/local/mysqlディレクトリにインスコしているようで、、、 実はmysqlだけは手間省くためにパッケージマネージャからDLしたんです。
>>231 ソースは見れないから本当の仕組みは分からないけれど、
ファイルをアップロードする時に、画像ファイルのパスもPOSTしていて、
それを表示しているんじゃないの?
>>229 人がやっとPEARが使えるようになって大喜びしているときに、
水を差すような米しやがって、士ね。
>>235 じゃ、そのまま知らない方が良かったの?w
237 :
nobodyさん :2008/01/29(火) 21:41:12 ID:5qvQ61c2
>>234 POSTしてないようですね
javascriptかなんかかな
move_uploaded_fileじゃとれないんだよね
>>236 PEARでこれだけの関数を提供しているんだから、それで十分だろ。
うるめいわし黙れ
240 :
nobodyさん :2008/01/29(火) 21:50:21 ID:ez1qkwY6
すみません。
mb_encode_mime_header()について質問なのですが。
メールを送信するスクリプトがたまに送信に失敗するので調査していたところ
どうやら、送信先アドレス(to)がこちらが意図しない文字に
変換されていることに気づきました。
具体的には、文字の中に、'_'(アンダーバー)が入っているときに
エンコードしているようです。
この関数は必要なときだけエンコードする、と思っていたのですが
そうではないのでしょうか?
以下、試したことです。
kruser@saga /tmp]$ php -v
PHP 4.4.7 (cli) (built: Jan 5 2008 18:39:15)
Copyright (c) 1997-2007 The PHP Group
Zend Engine v1.3.0, Copyright (c) 1998-2004 Zend Technologies
[kruser@saga /tmp]$ php -r "echo mb_encode_mimeheader( '
[email protected] ' ) ;"
[email protected] ↑
そのまま
[kruser@saga /tmp]$ php -r "echo mb_encode_mimeheader( '
[email protected] ' ) ;"
=?ISO-2022-JP?B?YV9iY0BleGFtcGxlLmNvbQ==?=
↑
変換されてる
>>237 いまいち話の流れが分からないので、具体的にソース書いてみる。
ファイル名:test.php
<html><body>
<?php
echo "<hr>";
echo $_POST["TENSOU"];
echo "<br><hr>";
?>
<form method="POST" action="test.php">
ファイル:<input type=file name="TENSOU"><br>
<input type=submit value=" 送信 ">
</form>
</body></html>
「POSTしてないようですね。」の意味もよく分からない。
そのmixiにPOSTが全く見当たらないという意味?
242 :
232 :2008/01/29(火) 22:40:52 ID:t20Dm/Gk
>>238 dev・・・というと?すいません、かなり低レベル初心者なもので。。。ちなみにmysql本体は動きます
フレームワーク使ってPEARで開発すればいいだろ なんで混同してるんだ?
未だに、納得のいくフレームワークに落ち着かない。 もう自社開発しかねえな。
248 :
nobodyさん :2008/01/29(火) 23:34:27 ID:ez1qkwY6
>>243 レスありがとうございます。
4系最新版の4.4.8と
5系最新版の5.2.5でそれぞれ発生することを確認してます。
また、少し前のバージョン(4.3だったかな?)の
mbstringのバグは知ってましたが
日本語のエンコードがおかしいわけではないので違うかな、と思ってました。
今は試せる環境にないので、明日にでも確認してみます。
ところで、そちらでは起きないとのことですが
バージョンはいくつでしょうか??
249 :
nobodyさん :2008/01/29(火) 23:41:49 ID:RmUTKffD
聞きたいんですが、アップロードされた音声ファイルのフォーマットを変換したり、 任意のサイズまでダウンさせたり出来るプラグインとかないですかね? 画像のフォーマットを変えることが出来るんだしそんなのもひょっとしてあるかなぁーと 思って質問しました
>>242 どこのディストリか知らんがヘッダーファイルをまとめた開発用パッケージが提供されているだろう
/usr下にインスコしたならヘッダは/usr/inclue/mysql*あたりにあるはずだからそこを指定してconfigure
>>249 そういうコンソールアプリを拾ってきてphpから実行すればOk
>>248 チラッとソース見た感じ仕様っぽいけど。
届かないってことは、もしかしてメールアドレスをmb_encode_mimeheader()にかけてるの?
>>231 とりあえずmixiの画像アップページ(html)を何処かにアップしてみ。
それで答えが分かる。
254 :
242 :2008/01/30(水) 00:44:10 ID:e4VjwXRY
mysqlのソースから作り直すことにしました。 (mysql.comのmysql5.1downloadのページの一番下のsourceってやつでいいんですよね、、、ここが一番不安) カイトーして./configureしてmakeしてmake installまで、けっこうつまづきましたが、できました。 で、データベースをインストールしようとしてmysql_install_dbを実行したもののエラー。 保留してデータベースにアクセスすると前パッケージマネジャでインスコしたときに作ったデータベースが残ってた。 てかパッケージからインスコしたsqlをアインストールするの忘れてたw で、パッケージの方のsqlは削除できたんだが、ソースからのsqlはどうやって削除するのだ?
255 :
242 :2008/01/30(水) 00:45:58 ID:e4VjwXRY
初心者だけどwindowsにmysqlを導入するのは2時間かからなかった、つまづいたけど。 でもlinux(fedora)にソースから導入しようとすると、、、もうかれこれ半日は経ってる。。。
Rubyのまつもとさんが、ブログでまたPHPをdisってるね。 毎度のことだけどさ。
どっか天然だよなあの人
>>254 --prefix つけた? /usr/local/mysqlとか
だって モルモン教徒(笑) だもの 街中でヘルメットかぶって自転車にのっている 二人組みの外人。みたことあるでしょ?あれ。
260 :
nobodyさん :2008/01/30(水) 01:01:42 ID:9pKjffNB
>>256 読んできたけどなんか八つ当たりみたいな感じだなw
262 :
232 :2008/01/30(水) 01:20:25 ID:e4VjwXRY
>>258 つけてないっす。。。org
ずっとPCに張り付いててわけがわからなくなってきた、ここで整理。
windowsからlinux環境に移していて、linuxでデータベース(mysql)がうまく起動していないことが判明。
→phpinfo()を見てみると「--without-mysql」が指定されていることを発見。
→PHP再コンパイル試みるも./configureコマンドを叩くと「mysqlのheader fileが無い」と怒られる。
→血迷ったのかいきなりmysqlをソースからコンパイルし始めて5、6時間を潰す。。。
→整理していて泣けてきたので誰かエラー直してください org...
ちなみに
>>250 さんのいってたように/usr/include/ファイル探してみたんですが、mysql関連のものは無かったです。俺の半日...
263 :
232 :2008/01/30(水) 01:23:26 ID:e4VjwXRY
自己解決できない点がもう1つ。全部消したあとにもう1度インストールしてみても前のパスワードが残ってる。うーん
→phpinfo()を見てみると「--without-mysql」が指定されていることを発見。 →PHP再コンパイル試みる ← 間違い ・mysql/mysqliのdsoをコンパイルする ← おしい!mysqlのdevelパッケージが必要 ・yumでphp-mysqlを入れる ← せいかい!一番簡単! あとはよそでやれ
面白いからここでやれw
266 :
232 :2008/01/30(水) 01:53:02 ID:e4VjwXRY
php-mysql入れたんですが、、、いまだにwithout mysql かつ動かない
こいつらの中ではプログラムが世界なんだな。なんかな。
てかrubyって何?
今まで知らなかったんならそのままのほうがいいよ どうせ仕事にゃ使えないしw
C>PerlときてPukiWikiいじるために今週からPHP始めたけど特に予備知識もなく使えるようになったのはすげーと思ったよ。 いい意味で敷居が低く、悪い意味で適当。 そりゃこんな楽なら普及するわと納得したよ。 楽過ぎて他のができなくなりそうなくらいにw
わざわざ日記にレスするようなことするなよ。 漢は黙って放置だ。 PHPはきえるべきと主張してる人は少なくないけど、 そんな嫌われ言語を良い方向へ導いていこうぜ。
駄目アプリが量産されるってしょっちゅう言ってるけど ようするにエリートとしての自意識から善意で言っちゃうんだろうな
こんな人間にはなりたくないと思った
だったらPHPが良くなる方法を考えればいいのに
PHP設計者曰く、PHPは言語じゃなくツールらしいな
278 :
nobodyさん :2008/01/30(水) 09:07:58 ID:Pk8IBekk
質問です postが成功するまでwhileする物を作ったのですが breakをbreaと書いてしまい永久ループになってしまいました。 このphpを閉じても30分ほど作動したままなのですが……… もしかしてサーバーサイド側でしか止められないのでしょうか? それとも光速にpost命令が溜まっているだけでしょうか?
Ruby開発者ってまだ生きてたんだ てっきり歴代の人物かと思ってた
readdir () でうpしたファイルが、古い順に上から表示されるのがうざい
Rubyが普及しなくて焦っているのはわかるが、 他の言語・・・PHPが一番普及しているからって たたいても何も変わらないぞ。 まず、Rubyは初心者にとっても使いやすい簡単な言語だと 認知させなきゃ。そして初心者が大量に増えて セキュリティ問題で苦しめw
>>278 php.iniの設定によると思う
PHPのタイムアウト値がデフォルトならそのうちとまる
タイムアウトが無効になってるならとっととアパッチ止めれ
ふたばちゃんねるで使っているスクリプトを使って画像掲示板を試運転しているのですが、 スパム投稿には弱そうだと感じています そこで、captchaのような機能を付加したり、そもそも本流のスクリプトがバージョンアップ していればそういったものを使いたいと思っているのですが、この板内で探してみても 検索しても適当な場所が見つからずに困っています 該当するような機能の実装に付いて説明していたり該当するような強化版のような スクリプトを配布しているところをご存知でしたらお教えいただけますでしょうか? よろしくお願いいたします
>>283 適当なcaptcha落とせばサンプルコードも付いてくるでしょ
経験的にあの手のスパムは手動だから、BBQで串はじいて、あとは管理スクリプトを自前で用意するしかないね
ブログだと、投稿IPとか指定単語で根こそぎデリるアドオンとかある
スパム対策のスレ無かったっけ? 色々あるからぐぐれ
レスありがとうございます
>>284 captcha側からコードを読んで実装するのが面倒なので、ふたばのスクリプトがバージョン
アップしていて、かつ配布されていないかと思って質問したのですが該当しそうなところは
ないものでしょうか?
>>285 上記のことに関連しますが、スパム対策のコードを埋め込んでというのが面倒なのです
該当するようなところは既に検索(Google)してみたのですが、
どこも2005年くらいでバージョンアップが止まっているようでして…
一応webprog板なんだからもう少し歯に衣着せようよw
288 :
nobodyさん :2008/01/30(水) 10:38:33 ID:9nM+3WHh
フォームの検索で、□円〜□円まで という仕様にした場合、 検索結果として「100円〜」「〜1000円まで」「100円〜1000円まで」 という3パターンがあるかと思います。(※値は仮です) これをMySQLのWHERE部分として検索する場合、 if(!empty($price1) && empty($price2)){ //price1のみ $search_key = "price>='$price1'"; }elseif(empty($price1) && !empty($price2)){ //price2のみ $search_key = "price<='$price2'"; }elseif(!empty($price1) && !empty($price2)){ //両方 $search_key = "price BETWEEN '$price1' AND '$price2' "; } としているのですが、ソースが長くなりすぎて困っています。 何か良い書き方はないでしょうか?
>>288 最小の場合を0、最大の場合を99999999とか決めておけばよくね?
291 :
288 :2008/01/30(水) 11:27:38 ID:???
>>289 そうすると、それようのソースも検索項目毎に必要になるので
ソースの簡略化にはならないと思うんです。
>>290 もちろん、出来るから良いのですが、同じような範囲検索項目があると、
ソースが長く成りすぎるので、それが何とか出来ないものか?と思い、質問しました。
>>291 > それようのソースも検索項目毎に必要になるので
クラス化しとけばいいじゃん
あと、ID出せカス
293 :
288 :2008/01/30(水) 11:37:35 ID:???
>>292 クラスかですか。クラスというか、多少関数化しているのですが
もう少し考えてみます。
あと、一度質問した後はsageにするのがルールだと思うので、
なにもカス呼ばわりしなくても・・・
ageたらsageろと言われ、sageたらID隠すなと言われる。 それが2ちゃんクオリ(ry
前から必死にID出せと煽るおかしな人がいるので無視でいいよ
>>295 各スレにテンプレあるのはご存知で?
>>296 あれ?
> ・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
これ読めないの?
if (!$price1) $price1 = "0"; if (!$price2) $price2 = "0"; $search_key = "price BETWEEN '$price1' AND '$price2' ";
>>298 > (!$price1)
実際この書き方ってどうなのかな?
Noticeエラーでも気になってしまうから、ついついisset使ってしまう
>>288 がIDかくして暴れていると聞いて飛んできました
302 :
278 :2008/01/30(水) 11:59:09 ID:???
>>282 そのphpを閉じた場合のセッション、タイムアウトがあるんですね
30分続いているということはタイムアウトは長いというより、無効ですよね…
>>300 いきなり使うなら、issetとか、@とか使うのもOKだろうけど、
この場合あらかじめ $price1 = $_POST["foo"] とかで、あらかじめ何らかの値が代入されているという条件があると思って書かなかった。
>>302 デフォルトなら、max_execution_time以上のCPU時間を使うとdieされるし、
そもそもbreaなんて書いたらコンパイル時にはじかれて、実行できないと思うのだが。
>>304 あれ?
$price1 = $_POST["foo"]
これでPOSTが空でもNotice出なかったっけ・・・
勘違いかな
306 :
nobodyさん :2008/01/30(水) 12:16:51 ID:Pk8IBekk
>>304 >コンパイル時にはじかれて、
そういえばそうですよね……あれ?
max_execution_timeを見てきます
307 :
nobodyさん :2008/01/30(水) 12:56:50 ID:iTZE6D8S
PHPで処理にかかったCPU時間を計測する方法ってないですか? 手軽にパフォーマンス測定したいだけなんだけど、デスクトップだと色々とノイズが多いので。 使ってる PHPは Ver5.2です。
>>307 > デスクトップだと色々とノイズが多いので
この部分がいまいち良く分からない。
デスクトップ上ですべてを動かすんじゃなくて、
サーバを別にするしかないんじゃないの?
309 :
nobodyさん :2008/01/30(水) 13:05:17 ID:iTZE6D8S
>>308 手軽に試したいだけ。
たとえば、頻繁に呼ばれる関数内で、要素が数個の配列を毎回生成するのはコスト的に
どうだろうかとか、そんなレベルの話。
デスクトップで実行して実時間を計測しても、イマイチ信用できないし。
>>309 実行時間の計測にはPEAR::Benchmark_Timerとかかなぁ。
PHP以外のプログラムを使って計測したいのならば、別な板の
話になると思うけど。。。
>>309 Xdebugのプロファイラとかでも使えば?
312 :
nobodyさん :2008/01/30(水) 13:27:39 ID:iTZE6D8S
313 :
nobodyさん :2008/01/30(水) 14:22:33 ID:02p0qHbL
printよりechoのほうが軽いのか まぁ、何も返さないからかな? 今までmicrotime()で頑張って計算してたが、PEAR::Benchmark_Timerが便利すぎて泣いた
>>313 だから、CakePHPなんかよりPEARのライブラリーの方が使い勝手がいいってことだよ。
だって、PEARは日本語に直すと、梨。問題なし、なんちゃって(核爆)
,. - ── - 、 r'つ)∠─── ヽ 〆⌒  ̄ ̄ ̄ \__r 、 \ ,.イ ,イ \ヽ,\rv-, ヾイ /{ { ヽ、ト、 \Y <ノノ\ { .ト{\ヽ', メ __\ } ⌒ヽ }へ ゝ |"ひ) \ イびゞ \ ヽ- 、ノ // >= ノ ト、"´,. ー ノ ///\/ / \ /. { ゝ / レ// } Y´ \ { ヽ ヽ⌒> / レ´TTア⌒>、_ \ V{ \ └ ´ / ,.イ/ /ll | /≦__ } V{ >ー┬|/ ! ,.イノ || | /  ̄ ̄ ̄ / リヽイ| /:| l _|' '´ || | | _/ /{{ | |===| || | __/ /し|| | |== / // | /,.イ / ヽヽ l==| / / l / イ\ \=| /// 〃 〈 ≧ー < ミ ヾ| // ト \ \ \>∠、 /\ \ \ <〆ハ ゝ _/ \ { / ̄> X〜ヾ´ ー'´ \  ̄</⌒Y \ ', \/ ノ | ', _/ / / |/ ト、 / / \ / |ー } ヽ \/ / l / ト、 / _ l / / ヽ/____/┬─ 、____/ / ノ | / / / l /
北京オリンピックだな
class Hogehoge{ public function __set($name, $value){ echo "Hogehoge::__set".$value; } } class SimpleXMLElement2 extends SimpleXMLElement{ public $obj; public function __set($name, $value){ echo "SimpleXMLElement2::__set".$value; } public function setObj($obj){ $this->obj = $obj; } } $hogehoge = new Hogehoge(); $hogehoge->hoge = '11111'; $simpleXMLElement2 = new SimpleXMLElement2('<?xml version="1.0" encoding="utf-8"?><hoge></hoge>'); $simpleXMLElement2->hoge = '22222'; $simpleXMLElement2->obj = $hogehoge; $simpleXMLElement2->setObj($hogehoge); 出力結果: X-Powered-By: PHP/5.2.5 Hogehoge::__set11111<br /> <b>Warning</b>: It is not yet possible to assign complex types to properties in <b>*****</b> on line <b>20</b><br /> <b>Warning</b>: It is not yet possible to assign complex types to properties in <b>*****</b> on line <b>13</b><br /> 最終的な目的はSimpleXMLElementを継承したクラスのプロパティにオブジェクトを格納したい。 string以外なのでWarningが出るので、__set()をオーバーライドしてしまえと思ったが、どうもSimpleXMLElement2::__set()が機能してないようだ。 何かが悪いのか、__setを使わない方法があるのか、別な実装方法があるのか・・・ 手が空いている方がいましたら、お手数ですが教えていただければと思います。
PEARの日本語マニュアルなんてあったんだ…
>>314 > だから、CakePHPなんかよりPEARのライブラリーの方が使い勝手がいいってことだよ。
両方組み合わせ使うもんだろw
フレームワークとライブラリじゃ役目が違う。
全体的な構造にCakePHP(やそのほかのフレームワーク)を使い
局所的な部分にPEARなどのライブラリを使う。
xmlのノードにオブジェクトを追加してどうすんのさ
>>319 ずばり言うわよ。
Smartyを使いなさい。
すみません。現在携帯向けのホームページを作っていまして、トップページでは以下PHPのUA判別でPCページへ振り分けしているのですが <?php $ua = $_SERVER["HTTP_USER_AGENT"]; if(ereg("DoCoMo|J-PHONE|Vodafone|MOT|SoftBank|UP\.Browser|~ /^KDDI/|DDIPOCKET|WILLCOM",$ua)){ header("Location: モバイルページURL"); exit; } else { ?> <HTML> PC用ページhtml </HTML> <? exit; } ?> それ以外のページで同様に携帯以外(上記PHP内UA以外)からのアクセスを全てトップページ(PC用ページ)に飛ばすようにするにはどうすればよろしいでしょうか? このPHP自体は以前に検索で見つけたものなのですが、今検索するとどのページで見たものかわからず困っております。(-.-; どうかよろしくお願い致します。
smarty最新版落としたいんだけど、www.smarty.netが 昨日から死んでるだわ。どっかで最新版落とせるところない?
325 :
322 :2008/01/30(水) 21:50:30 ID:???
>>323 すみません、PHP全くわからなくて申し訳ないのですが
どこに"!"をつければよろしいでしょうか?
全くわからなすぎるな
328 :
322 :2008/01/30(水) 21:58:05 ID:???
すみません!自分でやってみて上手くいきました。 どうもありがとうございます!
>>317 何でObjectが突っ込めると思ったのか理解できない
永続化が必要ならJSON使うなりSerializeするなり汁
>>321 > Smartyを使いなさい。
CakePHPを使ってから、Smartyに興味がなくなったな。
PHPという言語自体がテンプレートに近いものだから、
ロジックとビューがちゃんと分かれていれば、そのままで問題が無いことに気づいた。
332 :
nobodyさん :2008/01/30(水) 22:31:46 ID:k3DrvwtH
cakeおすねぇ >PHPという言語自体がテンプレートに近いものだから、 >ロジックとビューがちゃんと分かれていれば、そのままで問題が無いことに気づいた 同感
スレ違いだがSmartyもCakeもあんま好きくないな Smartyは協業する上で何かしら標準が必要だから使ってるだけ これはCakeを使おうが代替できない機能 やっぱフォーム-ロジック-DBの操作を楽にしてくれてウィジットを サポートするモダンなFWじゃないと ルール縛りだけではやはり時間が掛かるよ、柔軟性もないし
> Smartyは協業する上で何かしら標準が必要だから使ってるだけ > これはCakeを使おうが代替できない機能 なんで?Cakeの方が幅広く協業できると思うけど? SmartyはCakeのビューの部分だけでしょ。協業できるのは。 > やっぱフォーム-ロジック-DBの操作を楽にしてくれてウィジットを > サポートするモダンなFWじゃないと それなら、Smartyなんて問題外じゃん。
>>332 正しいエスケープの方法は誰も知らないから適当でいいよw
HTML用とMySQL用ではやり方違うしwww
ロジックとビューを分けるのってやっぱ物理的にファイルを分けてる? そうするとポストバックが結構面倒だけど、なんかいい方法無いかね。
>>332 読んでないけど、システムの抽象度が低いとかいうことかな
そういうコードをいちいち書くのはうっかりミスという脆弱性の温床になる
しかし標準出力がかってにエスケープされる言語なんて存在しないわけで
小さいアプリじゃごく自然な対応だと思うけどね
あるいはhtmlspecialcharsはNULLですり抜けられた時代に書かれた文章かな
>>337 > ロジックとビューを分けるのってやっぱ物理的にファイルを分けてる?
> そうするとポストバックが結構面倒だけど、なんかいい方法無いかね。
だから、そのいい方法(の一つ)がCakePHPのやり方なんだってw
>>339 レスは意見のみ受け付けます。さようなら。
>>335 貴方はオブジェクト指向病にかかっていると思われ
自力学習の間は時間が無限大なのでそれでやっていけるが
社会に出るとその時間がなくなりスパゲッティーコードを生産する作業に変わりますw
>>341 めんどくさいから正直に書いちゃうけど、バカなワナビー君には理解できないんだねえ
だからその上での議論も成り立たない、言いっぱなしで生産性もない、と
反省しなさいよ
>>340 やっぱりフレームワークに頼るしかないかぁ。
>>342-343 どう思いますか?このレス。
勝手な想像ばかりで
中身が無いと思ったあなたは正常です。
>>345 自分の意見と同意以外は受け付けない、自分の意見に反する相手に攻撃的になる
これは立派なオタクの症状ですw
>>345 やっぱ簡単な皮肉でさえ文意が取れないのね、バカはいやだねえ
そんなにSmartyが使いたければ、 CakePHPの一部のビューの部分にSmartyを使えばいいだけのこと。 CakePHPはSmartyなんかよりも幅広いものを対象としているので、 それでCakePHPを使わないという理由にはならない。
ごめん CakePHP使ってみようと思ったがなんかキモい奴になりそうでやめたわw
>>349 世の中の全ての人間が、自分と同じ意見を持つという期待は持たない方がいい
>>348 だれがそんなにSmarty使いたいのか知らんけど
幅広いと言ってもCakePHP⊃Smartyでないことはすでに指摘されてる
CakePHPを使わずSmartyを使えと言うレスは見当たらないけど?
>>351 もったいないw まあ他人事だからいいが、
お前は他人のせいで道を踏み外したなw
まあ端から見てると、罵り合う同士、一緒に仕事したくない人間の典型だな お互い持論を主張して俺様が正しい、って奴ばっかだなw この業界、こんな人間しかいないのか?w
>>356 持論を主張してるのはCake馬鹿だけじゃん
>>357 お前みたいに「Cake馬鹿」っていって時点で同類だろ
Cake馬鹿程度も受け入れられないんじゃ程度がしれてるわ
ずばり言うわよ CakePHPを忘れなさい
>>340 CakePHPではコードジェネレータがついている。
といっても一アクション(一ページ)あたりほんの20行程度の短いものだが。
コードジェネレータの出力、もしくはチュートリアルのコードをベースに
そのアプリ独自のロジックを書いていくわけだが、
この標準のやり方が、ポストバックになっているぞ。
(もちろんそうじゃないやり方もできる。)
>>360 忘れてどうするんだw
そのほかのフレームワークを使うっているのなら話はわかるが
ライブラリだけじゃ、この先やっていけないよ?
>>362 CakePHPってコード規約つきのライブラリー集じゃんw
でかいディスプレイを使えばよろしい
何かよくぁからないが必死さは伝わったからCake使ってみるわw
話しぶった切ってすみませんが、
コードをロジックとテンプレートに分けようと思っています。
そのときなるべく面倒なことはしたくないので、
たとえば、
http://localhost/controller/action/123 というアドレスにアクセスしたいとき、
contorllerクラスのactionメソッドを呼ぶようにしたいです。
またそのときに使用するテンプレートを/views/controller/action.ctp ファイルに使用と思っています。
これらは必要に応じて、柔軟に変更できるようにしたいです。
たとえば設定しだいで、
http://localhost/123 でもデフォルトの動きとして controller/actionが実行されたりです。
いい関数ありませんか?
そういう関数はありませんのでCakePHPなどのフレームワークを使ってください。
なんと都合のいい質問タイミングw CakePHPの信者共が出張して宣伝活動していることだけはわかった いいからCakeBBSに帰れw
PEARは基礎。CakePHPは応用。 PEARは知識。CakePHPは実践。
学生グループ開発かj会社のプロジェクトでCakePHPを勧めたら周りから否定されて もっと知れ渡るように布教活動でもしてるのか?
抵抗勢力がんばれw
Cakeを使える人vs使えない人
>>366 最初に仕様を決めてしまえば変更する必要がないぞ
コロコロと仕様を変えるのは良くない
たまには、Smartyのことも思い出してあげて下さい
いつまでやってるんだ。それ専用でスレを作ってやったらどうだ
377 :
nobodyさん :2008/01/30(水) 23:38:34 ID:9rDWoCR8
くだらないこと聞きますが、PDOってバグってます? 環境はmysql 5.0.54、PHP 5.1.6で実行しました。 例えば、 $res = $pdo->query('SELECT avg(column) FROM table'); を実行するとどこかで失敗しているとおもわれます。(エラーは何もない) このavgを含むとfalseが返されます。 その後に$pdoの中を見ると、通常ではクエリ実行後にはqueryStringプロパティに実行したクエリがセットされるはずですがセットされていません。 もちろん、直接mysqlにこのクエリを打つと正しく返ってきます。 検索してもPDOにそれっぽいバグ報告ありませんが、ご存知の方いませんか?
>>377 CakePHPを使えば解決します
今すぐに導入すべきです
379 :
377 :2008/01/30(水) 23:44:52 ID:9rDWoCR8
>>379 それはあなたが駄目だからです
プログラマーに向いていないと思います
382 :
nobodyさん :2008/01/30(水) 23:54:52 ID:9rDWoCR8
>>380 PDOがavgを含むクエリに失敗する理由がわかりますか?
>>381 クエリ自体に問題はありませんが、PDOはいかなるときもgroup byが必要ということでしょうか?
知ってる人が見つかってよかったです。
ありがとうございます。
383 :
nobodyさん :2008/01/30(水) 23:58:02 ID:9rDWoCR8
>>381 うそつき、ハゲ!
意味なくgroup by入れたけどやっぱりダメでした。
コマンドラインでは成功しました。
PDOはダメってことですか?
delete from テーブルを実行してみて、どのようになるか教えてもらえますか?
>>382 MySQLのバージョンが未来すぎるのが失敗する理由です
>>377 $stmt = $pdo->prepare("select avg(col) ...");
$stmt->execute();
$rows = $stmt->fetchAll();
$stmt->closeCorsor();
だとどう?
>>382 I just recompiled pdo_mysql and the problem was solved.
>>383 せっかくその他の解決法教えてやろうと思ったがもう教えてやらん
390 :
nobodyさん :2008/01/31(木) 00:30:42 ID:REX6IFqd
>>377 $stmt = $pdo->prepare("select avg(col) ...");
の時点でfalseが返ってきます。
>>388 ありがとうございます。
やっとまともな方に答えていただきました。
解決したわけではありませんが、Bug #8045ってことで納得しました。
こうしてまた可哀相なヤツが生まれる…
俺も
>>332 と同じ疑問持ったけど様子見てた。
<>"&あたりしか退避しないからurlencodeでもしとけってことかな。
まあ汚染については厳密にやるとCでもPerlでもきりがないし大げさに取り上げるほどのことではない気はした。
htmlspecialcharsとurlencodeは全く用途が違うわけだが。 明示的にエスケープが必要なのがプギャーなのかな。
用途違うんだけどまだ%xxの形なら直で囲っても問題ないかなと。
>>395 お言葉を返すようですが、人間的に失格です。
本人に聞けよ
399 :
nobodyさん :2008/01/31(木) 02:27:58 ID:4JBYr2L1
はじめまして、質問です。 PHPでサイトを作ったのですが、 自分は普通にBBSに書き込めるのに、他の人からBBSに書き込めないという情報をもらい困っています。 下手なソースをアップしてもいいのですが、長いだけにそれも無理そうです。 ログを取ってみたところ、自分は書き込みチェックのフェーズまで進んでいるのに、他の人は書き込み(エラーチェック)フェーズにまでいっていないように見受けられました。 (あくまでも推測) しかし、次のフェーズへの移行はhiddenで指定しているため、両者に差異はないはずなのです。 環境の違いでもないようでした。 情報が少ないので難しいと思いますが、こういった場合どのような理由が考えられるでしょうか? もしくは、チェックツールや、どこかソースのミスを判定してくれるところなどはありませんでしょうか。 なにか解決の糸口となりえる情報をよろしくお願いします。
どのポイントで想定外の動きになっているか特定する エラーメッセージを表示する
>>399 そんな便利なもんはないです。
こっちにソースの要所だけでも書いたほうがはやいと思う。
もしくは、分岐ごとに全部条件を出力して相手にどの経路まで進んだか聞いて調べる。
402 :
399 :2008/01/31(木) 02:46:27 ID:4JBYr2L1
<form method="POST" action=""> <td><input type="submit" name="submit" value="書き込む"> 名前 <b>:</b> <input type="text" name="name" size="25" value=""> E-mail <font size="1">(省略可)</font> <b>:</b> <input type="text" name="mail" size="25" value=""></td> </tr><tr><td><textarea name="bbsfor__text1" rows="8" cols="75"></textarea></td></tr> </table><input type="hidden" name="userid" value="SS0001"> <input type="hidden" name="bbsid" value="7"> <input type="hidden" name="mode" value="bbs"> <input type="hidden" name="step" value="toukou"> <input type="hidden" name="close" value="0"> <input type="hidden" name="write" value="free"> <input type="hidden" name="ticket" value="6"> </form> 一番怪しそうなところはここの部分です。 書き込めなかったという人の報告によると、書き込みボタンを押したあとに画面がそのままになって、テキストエリアに入力した文字などが消えているそうです。 ただし自分以外にも書き込める人もいます。
>>398 簡単に作るにはいい言語といった上でのことだし
セキュリティがメインのとこだからまだ新しい言語であるphp避けるべきってのはあってる。
いやそれだけ見せられても分かるわけないって
>>402 これだけじゃわからんがACTIONが空だけどこれはいいのかな。
ポストバックだろ
action空だから今のリファラに飛ばしたいんだろ ダチにはノートンのリファラ返すように言っとけ
408 :
399 :2008/01/31(木) 02:51:47 ID:4JBYr2L1
>>405 セキュリティ上、空のほうがいいそうです。と本に書いてありました。
>>406 ポストバック?
なんじゃそりゃ
ここのやり取りを読んでいると、物事を難しく考え過ぎているような嫌いがある。 phpもwebという仕組みも究極的には、OnとOffの電気信号をやり取りをしているに 過ぎないというベースの考え方から、考える癖をつけた方がいいよ。 枝葉ばかりの方法論に固執せずに、仕組みから考えていく方が応用が利くと思う。
postbackにするのとセキュリティってどういう関係があるんだ。。。
ファイル名を隠したいってことかな? セキュリティが向上するとも思えんが
413 :
399 :2008/01/31(木) 03:52:32 ID:4JBYr2L1
まだ確定ではりませんが、事前にリファラーブロックをかけてたのでそれが原因かもしれません。
解除してみてテストしてもらいます。
>>411 XSS対策です。詳しくは【PHP サイバーテロの技法 防御と攻撃の実戦】という本に書いてあります。
この本もここの人に推奨されたので勉強のために買いました。
リファラ要求するならERROR:referer情報が変です。(ref1)的なものが必要だろ
思い切ってセキュリティーに関する部分をコメントアウトしてみたらどうかな。 もしくは、1つの項目をログファイルに追記で書き込むだけの簡潔なプログラムを 書いてみるとか。
416 :
nobodyさん :2008/01/31(木) 09:55:14 ID:no07dFZM
すみません、駄質なんですが connect()とpconnect()の違いはなんでしょう? p-が継続的だとはマニュアルに書いてあるんですが、これはclose()しないと サーバに付加がかかり続けるということでしょうか? closeしないで次のページに移動してまたpconnectしたらまた付加がかかって、 それもcloseしないで次のぺーじでpconnectしたらまた… みたいになるのですか? どうもよくわかりません そうならないとしても、「継続的」であることでの具体的なメリットって どんな場合ですか?
pconnectは、おなじ接続があったらさっきのを再利用、だよ。 イメージが逆だな。
418 :
nobodyさん :2008/01/31(木) 10:14:03 ID:no07dFZM
>>417 ありがとうございます!
イメージが逆ってのは、再利用するから接続しなおす負荷(?)がかからないって
ことですね? じゃ、いいことみたいですね
あと、続けて質問ですみませんが、マニュアルを読んでるとclose()してるサンプルって
見たことありません。しなくていいものなんですか?
ブラウザを閉じたら勝手にクローズ。だけど、ページ移動なら接続は
キープされるってことでしょうか?(pconnectの場合)
同一ページで何度も同じ接続処理を書くことってあまりないと思うので、
ページ遷移で持ち越せる位の機能じゃないとpconnectって意味薄そうな気がするのですが…
>>330 最終的には特定のxmlやらiteratorから別のxmlを作るのが目的。
modelの作成にSimpleXMLElementが使えないかなーと。
生成元からxpathで抽出して生成ノードがコンテナなら抽出元のノードの生成ノードの下にぶら下げる。
次に先程生成したノードをxpathで抽出してぶら下がったノードに相対パスを突っ込んでさらにノード作成、みたいな。
ちとややこしいけど・・・
>>418 pconnect()の対になるclose()は意味が無い。
connect()の対になるclose()はスクリプトの終了の際に
自動的に行われるので大抵の場合はしなくても構わない。
HTTPリクエストで実行されるスクリプトの場合、
接続時間が短く、リソースを掴んだままでも影響が少ないからね。
因みにリソースにはそこでSELECT等して取得したデータも含まれる。
(MySQLの場合)
あとpconnect()によるリソースの再利用だけど
接続文字列が同じだから必ずしも再利用されるとは限らない。
再利用のためのプールが1つではなく、プロセスで1つで
プロセス間でそれを共有しないため。
だから接続をタイムアウトまで最悪上限まで保持してしまう
pconnect()はかえって効率が悪くなる(不具合)場合もあるよ。
httpdの設定とか絡んで要調整。
>>420 SimpleXMLObjectのプロパティ≠子要素だから上のコードには無理がある
addNode()とか定義して自分でXMLオブジェクトを展開して追加するしかないと思うが
SimpleXMLを投げ捨てる、という手も
addChild()のユーザ投稿だと、一旦Domオブジェクトにしてから追加してるのがあるね。
>>722 __set使ってればオーバーライドすれば誤魔化せるかなーとか思ったけど見てのとおりの惨敗。
投げ捨てるか、xpathを取得して保管するか、xpathをキーにしてarrayでも作るか、どうするか思考中。
>>723 なんと。情報ありがとうございます。
調べてみて試してみます。
425 :
nobodyさん :2008/01/31(木) 12:06:11 ID:VNDK0Dvo
Magpie RSSで日付を取得する方法について教えて下さい 最新バージョンの0.72を使っています phpはバージョン5系です。 $date = date("Y/n/j G:i", $item['date_timestamp']); このようにしてRSSの時間を取得するようにしてるのですが、 echo "<li>$date<a href=\"$url\">$title</a> ($p_title)</li>\n"; このように書いて実行してるのですが、なぜか時間表示が全部1970/1/1 9:00になってしまいます。 アドバイスお願いします。 公式サイトではdate_timestampで取得することを進めているのですがどうもうまくできません。
>>425 1970/1/1てことは$item['date_timestamp']が空だね
変数をダンプしてデバグしましょう
>>426 レスありがとうございます。
変数をダンプしてみたいと思います。
助かりました!
function xxx(&$c1=null) { $c1 =100; } xxx(); 素朴な疑問なんだけどPHP5では 上の例のように参照渡しでかつその変数を省略できるけど その省略した変数に関数内で値を変更しても大丈夫なのだろうか? 今はパラメータ数を判定して 省略されてない場合にだけ値を変更してるんだけど そんなの必要ないのかな? いろいろ探したけど確証が得られなくて・・・
>>424 シリアル化してつっこんでやるってのは?
431 :
416 :2008/01/31(木) 13:12:48 ID:???
>>419 >>421 詳しい説明ありがとうございます
かなり深いですね、、適当やってると痛い目見そうだし
もっと参考書でこういうの説明して欲しいんですが、してないですよねー
プロセスとかの基本用語から理解なきゃダメですね ありがとう
>>429 質問するときはID表示、これこのスレの掟
とりあえず
>>1 を読め、読めない・実行できないなら質問するな
437 :
nobodyさん :2008/01/31(木) 14:53:10 ID:89mDm5mU
>>437 何がしたいのかわからん
entryにtest2の画像のimgタグ、test2にtest1の画像のimgタグを入れてるってこと?
>>437 外部ファイル呼び出したいだけだろ?
file_get_content(URL);
で゙呼び出せるよ
440 :
429 :2008/01/31(木) 15:22:24 ID:qO0TdOQJ
失礼しました。再度お願いします。 function xxx(&$c1=null) { $c1 =100; } xxx(); 素朴な疑問なんだけどPHP5では 上の例のように参照渡しでかつその変数を省略できるけど その省略した変数に関数内で値を変更しても大丈夫なのだろうか? 今はパラメータ数を判定して 省略されてない場合にだけ値を変更してるんだけど そんなの必要ないのかな? いろいろ探したけど確証が得られなくて・・・
441 :
437 :2008/01/31(木) 15:29:08 ID:???
>>439 ありがとうございます。
その関数を調べてもう少しテストしてみます。
442 :
nobodyさん :2008/01/31(木) 15:30:35 ID:xq4Ruxkp
セッション管理について質問です。
1:$_SESSION変数で、それぞれのデータを全て持ち回す方法
(例)
$_SESSION['name'] = 'name';
$_SESSION['email'] = '
[email protected] ';
2:セッションキーを生成して、$_SESSION['session_key']にキーのみ持ち回して
データはオブジェクトをシリアル化して、キーをファイル名とする一時ファイルに保存する方法
(例)
$_SESSION['session_key'] = '4hak2ajh8adjkeubz'; //実際はユーザごとにユニークな値を生成
$file = file("/tmp/" . $_SESSION['session_key']);
$data = unserialize(base64_decode($file['0']));
3:$_SESSION['data']にオブジェクトをシリアル化して、1つの$_SESSION変数だけ持ち回す方法
(例)
$_SESSION['data'] = base64_encode(serialize($data));
$data = unserialize(base64_decode($_SESSION['data']));
どれが一般的なのでしょうか?
>>442 一般的は1
2は自作セッション
3は関数や実行結果を保存しすぐリストアしたい時
>>440 別に問題ないんじゃね?
初期値もいれてんだしreturn後に$c1を参照したいときにゃたまにやる
>>444 変数の不変性から言って多いに問題があるのだけど、
そんなの関係ねーと小島よしおを信仰しているなら、
それも一興といわざるを得ない。
変数の不変性?
そりゃ定数なら問題だが変数だろ?
448 :
nobodyさん :2008/01/31(木) 17:20:24 ID:Zzvt9fFU
エスケープシーケンスを置き換えたるため以下のように書きました。 testesc の $char に\に続く一文字だけ該当するように想定していますが 何故か \"のときだけ " ではなく \" 2文字が引数に渡されてしまいます。 これはどこに問題があるのか教えてください。 <?php $in = '\\\\abc\tdef\\"'; $out = preg_replace('/\\\\(.)/e', "testesc('$1')", $in); echo 'input [' . $in ."]\n"; echo 'output [' . $out ."]\n"; function testesc($char){ if($char=='"'){ return '"'; }elseif($char=='\\"'){ return '?'; }elseif($char=='\\'){ return '\\'; }elseif($char=='t'){ return "\t"; }else{ return ''; } } ?> 実行結果 input [\\abc\tdef\"] output [\abc def?]
449 :
445 :2008/01/31(木) 17:22:23 ID:???
ことば足らずだったかもしれないが、指摘されていることは違います。 私が言いたいのは、返すことが予定されている変数を呼び先で勝手に変えてはいけないという意味で不変性と言っている。 OOP志向から自明の理であるが、使用貸借契約と消費貸借契約における客体を想像すれば分かりやすい。
参照で渡してる時点で変えられる事が前提だと思うのだが・・・
451 :
nobodyさん :2008/01/31(木) 17:31:15 ID:B+pFj7HJ
本当のクローラーとは違うかもしれませんが、 プログラム練習として自分なりのクローラーを作ろうとしています 現在はネットワークを縦横無尽に走るものではなく、 自分で用意した一つのサイトのトップページを指定し、 そこから同サイト内の全ページをDBに登録するプログラムを作っています 流れ的にはこうです 1. file ()でトップページを取得 2. 1.で取得したページからurlを抽出しリスト化 3. 2.で取得したurlからリンク先のページ内容を取得 4. DB(MySQL)にurlと対応するページ内容を追加、または更新 (レコードが追加か更新かは、DBにそのurlがあるかないかで判断する) 5. 3と4をループ ここまではうまくいっていますが、質問があります もしurlから取得したページがたまたま503だった場合、追加も更新も行わないようにしたいのです その場合、分岐させていけばいいのだと思い、下のようなものを考えました if(ページ内容が空じゃない){ ページ内容をデータベースに登録する } しかし、自分のページが503になったことがないので試せないのです これで合っているのでしょうか?
452 :
445 :2008/01/31(木) 17:33:33 ID:???
>>450 OOPは、現実の世界で考えれば分かりやすい。それが本質だし。
居酒屋で下駄箱の鍵を店員に預かってもらったら、
店員に勝手に開けられて「靴を磨いておきました」って言われたら、
それが正常な行為であっても、予想に反した動作だと思うだろ。
要はそういうこと。
453 :
429 :2008/01/31(木) 17:48:14 ID:???
>>452 なんか勘違いしてるみたいだけど
値を渡したつもりなのに参照渡しなってしまうという
PHP5の仕様のことを問題にしてるのではなく、
参照渡しである変数を呼び元が省略した場合に
関数内ではその変数の参照先はどこになるんだろうということです。
ローカル変数になるならいいのだけど
どこかにそのへんの詳しい情報がないだろうか。
>>451 レスポンスヘッダのコード見ればいいんじゃね?
ttp://gihyo.jp/dev/serial/01/php-security/0005?page=3 を参考にテストしてみたんですが、再現出来ません。
php4です。
このサイトに書いてある、この正規表現では二行目は無視するっていうのは本当なのでしょうか?
/*----------------------------------
<?php
$_GET['id'] = "6666". PHP_EOL . "aaa";
var_dump($_GET['id']);
if (preg_match('/^[0-9]+$/', $_GET['id'])) {
var_dump($_GET['id']);
}
?>
----------------------------------*/
本当だよ。一行ずつ正規表現で表したい時もあるべ
457 :
nobodyさん :2008/01/31(木) 18:03:54 ID:B+pFj7HJ
>>454 すると404とかも判断できるということですね!
レスポンスヘッダとかわからないので調べてきます
ありがとうございました
458 :
455 :2008/01/31(木) 18:04:48 ID:5Z05+qC0
すいません、id表示忘れていました
>>456 だとすると
>>455 のコードでは再現出来ていないという事でしょうか・・。
このコードでTRUEが得られるつもりで書いたのですが、駄目なようです。
>>458 ずばり言うわよ。
Smartyを使えば、もっと簡単。
460 :
nobodyさん :2008/01/31(木) 18:17:40 ID:5Z05+qC0
>>459 smartyも興味あるのですが。
何故再現できないか知りたいんです・・。
>>452 参照で渡してるんだろ?
お前の好きな現実の世界に例えると
クリーニング屋にシャツ出したのに
汚れが落ちてるとブツブツ言ってるようなもの。
いつのまにか$が改行関係なく最後のにしかマッチしなくなってんな PCRE_DOLLAR_ENDONLYがどーとか書いてあったからその辺かもね
463 :
nobodyさん :2008/01/31(木) 18:37:12 ID:5Z05+qC0
>>462 なるほど、昔の仕様ということですね。
ありがとうございます。
こういう細かい仕様変更はちょっと怖いですね・・。
Smarty厨うぜえw オールドタイプは市ね
465 :
448 :2008/01/31(木) 19:51:16 ID:Zzvt9fFU
>>448 の正規表現を /\\\\(.)/ から /\\\\(\C)/ や /\\\\(.{1})/
に変えたり、関数名を全てシングルクオートの 'testesc(\'$1\')' 囲んだりもしましたが
やはり文字の \" が分割されず $1 に \" が2文字渡されてしまいます。
\ に続くASCIIコードの半角記号も一通り試してみましたが \" のときだけ2文字になります。
原因どなたか分かる方おられないでしょうか。
466 :
nobodyさん :2008/01/31(木) 20:50:27 ID:VNDK0Dvo
再度質問申し訳ありません。 php4で動作するスクリプトをphp5でも動かせるようにソースを書き換えてくれるソフトなどないでしょうか? ソースが長いので書き換えるのが。
こんばんは。 ブラウザをリロードさせる関数ってありますか? よろしくです。
>>466 ない
というかphp4で動作するならphp5でも動作するだろ
逆は動かない場合もあるが
>>466 普通に書いてたら5でも動くよ。
>>467 reload()
ブラウザを操作できたら嫌がらせやり放題やん
471 :
nobodyさん :2008/01/31(木) 21:06:27 ID:VNDK0Dvo
>>469-470 レスありがとうございます。
関数の問題で動いてないみたいです。
$rssurl = array() ;
$rssurl[] = "○○";
$rssurl[] = "○○";
arrayと[]はphp5では読みこまないと記事にありました。
この関数をどのように変えてあげればいいのでしょうか?
○○はrssのURLになります。
どこの記事だよw
>>471 さっきから普通に4を書いてたら5でも動くって言われてるのに。
釣りか。。。
文字列から特定の文字があるか分からない状態でもしあったらそれを置換するには何の関数がいいかな?
475 :
nobodyさん :2008/01/31(木) 21:23:39 ID:VNDK0Dvo
わかってないだろ。記事もロクに読んでないと思う。
∬ ∬ ∬ ∬ ∬ ∬ + + 人 人 人 + (__) (__) (__) + (__) (__) (__) + . + ( __ ) ( __ ) ( __ ) + ( ´∀`∩ (´∀`∩) ( ´∀`) + (( (つ ノ (つ 丿 (つ つ )) + ヽ ( ノ ( ヽノ ) ) ) (_)し' し(_) (_)_)
479 :
nobodyさん :2008/01/31(木) 21:52:14 ID:MssSyn6A
質問です。
http:// ○○○○○.jp/php?a=1&b=2
とあったとしてお気に入りからアクセスするのとhtmlページからアクセスするので
サーベーへの負荷が変わったりするんですか?
前に「負荷がかかるから直でくるな」みたいなことを書いてあるのを見たのですが。
日本語でおk
その質問の答えだけならかわらん。
>>479 一般論としては、直でアクセスしても、htmlからアクセスしても同じ。
だけど、そのプログラム自体がリファラの取得をし、何らかの処理を
している場合は、負荷は違うだろう。
483 :
479 :2008/01/31(木) 22:15:38 ID:MssSyn6A
うまくまとまってなくて済みません。
>>482 うちに置いてあるものでは
a=1ならコンテンツのXXでb=2ならページの2を読む(XXの2ページ目を表示)
のようにしています。
日本語でおk
> 前に「負荷がかかるから直でくるな」みたいなことを書いてあるのを見たのですが。 いっているやつがバカ。 2ちゃんねるでもhttpをttpとか書くやつがいるが、 あれもばか。 2ちゃんねるブラウザ使うと直リンクになっている。
ブラウザ依存の振舞いを当然のように語る人の方が馬鹿かと
「htmlspecialchars 危険」とかですぐ見つかる質問をするってのも問題の一端ではある気がする
>>487 ずばり言うわよ。
Smartyを使っていないから。
それだけ?
それだけ、ってどんだけぇ〜
フレームワークが使えないSmarty厨はほっとけw
494 :
nobodyさん :2008/01/31(木) 22:53:36 ID:VNDK0Dvo
php4で動いたありますがphp5では動きませんでしたよw なんでだろう 真白だよ;; arrayがおかしいと思ったんだけど、arrayで外部記事をひっぱってきてるだけなので;;
ちゃんとdebugしませう
>>487 CakePHPを使っていないことが問題です
最近CakePHPを推していたのは私ですが、
>>497 は私ではありません。
Smarty厨でしょう?w
>>494 CakePHPで
htmlspecialchars($_GET['text']);
って書いたけど脆弱性ありまくりでした
>>494 とりあえずstrictでログを出せ
話はそれからだ
501 :
499 :2008/01/31(木) 23:00:03 ID:???
502 :
498 :2008/01/31(木) 23:02:52 ID:???
Smarty厨のいうことを聞くからですよw あいつは何もわからずに適当に言っているだけです。
>>487 のレスって4回目だけど
やっとENT_QUOTESが出た。
けど、文字コードの問題とか、
そもそも$_GET['text']にhtmlspecialcharsって
違和感を感じないのか?
>>487 のレスって4回目だけど
やっとhtmlspecialcharsがわかってないやつがきた
後出しジャンケン大会w
くだスレでそんなこと言ってたら生き残れなねーぞおめー
508 :
nobodyさん :2008/01/31(木) 23:12:39 ID:VNDK0Dvo
coreサーバー事態がおかしいのかも知れません。 どなたかphp5の環境で私のソースが動くかチェックしてもらえる方いないでしょうか? YAHOOニュースのRSSをMagpieRSSを使って取得しているだけです。 どうかお願いします。
>>503 シングルクオートをhtmlエンティティ化しないとどんな脆弱性があんの?
510 :
nobodyさん :2008/01/31(木) 23:20:42 ID:VNDK0Dvo
ごめんなさい 違う鯖では動作しました。 サーバーが原因だったようです。 なんだよcore鯖
>>508 ソースがないのにどうやってできる
その前に普通に書けば動くって!
>>503 その例題を書いた奴が部分的すぎる
後からどうにでも上げ足をとれるように、作為的なものを感じるが
一旦、変数に取り込んでから加工したいのだろうが、コーディング規約で決める部分で作法の範疇じゃね?
core鯖って何?
鯖が原因って、、、それは原因を知ったことにはならないだろ まずE_NOTICE、E_STRICTレベルのログくらい読むべき 変数に期待する値が来てないなら、どこでコケてるのかエコーしながら 遡って探っていく、そうやってコードのどこで問題が起きてるか特定する そうすれば状況が見えてくるし、質問するにしても回答が得やすくなる
うっせいよぼけどもしばくぞ
>>513 よくわからんけど、
Googleでの検索結果
Fedra Core鯖 946件
hard Core鯖 962件
ハードゲイ 鯖 54,500件
ってことでハードゲイのことと思われ
PHP5でMySQLも5なのか 値段もなかなかw
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
おまえ100点
>>513
じゃあ後はxreaのサポートBBSで回答を待つということで
わからんなぁ、どっちも同じじゃん。 ENT_QUOTESすることで何を防げるんだ? <a onclick="alert('&#39;+alert(4989)+&#39;')">CLICK</a> <a onclick="alert(''+alert(4989)+'')">CLICK</a>
>>509 textをhtml中に出力している、という前提だと
・HTMLのタグの内側かつ属性値の引用符の外側を出力中である
・HTMLのタグの内側を出力中で、属性値を引用符でくくっていない
・HTMLの属性値の出力中かつ、引用符にシングルクウォートを採用している
こういうケース以外では無問題?
524 :
448 :2008/01/31(木) 23:58:27 ID:Zzvt9fFU
$txt = htmlsp..($_GET["text"]);
echo "<a href='#hoge' $txt>"; //そりゃ死亡だろ。
echo "<a href='#hoge' title='$txt'>"; //うっかり死亡。
あとはjsコードジェネレーション中に同様の問題あり
htmlspecialchars忘れる可能性のほうがずっと高い気がしてきたw
あと、
>>487 の元記事はENT_QUOTESしてないとか、その断片的なコードの問題を
指摘してるものじゃないから、「コードの問題は何か」という質問自体が回答側の
ミスリードをさそってる。
シングルクオーテーションもタグやJavaScriptの囲みに使われるからこれも退避しないと悪用可能って話か。
いや、JavaScriptの囲みに使われるからと
囲みの中の'を&#39;にしたところで
何も変わってないよ。
>>522 を見ればわかるけど、囲みの中を&#39;にしても
動作は変わらない。
括弧やセミコロンや演算子禁じたほうがよさげだな。
>>528 もうこうなってくると
htmlspecialchars の問題じゃなくて
使い方の問題だな。
んで、大本のmatzの記事には使い方が書いていない。
>>529 そういう表層的な問題じゃないと思うよ。
長男は嫌だとか、年収は1000万円以上じゃないと嫌だと女がいるが、
そういう女は本気の恋愛をしてことがない女。
要するに釣りってことか
いっそ英数字以外全部?nnn;にするくらいでないと起きそう。 そしてそこまでやってるのは言語に関わらずろくにいないだろうな。 文字の退避はしてても文字コード指定しない方がはるかに多いだろうし。
釣りも社会勉強の一つで、色々な釣りにどのような反応を示すかを見て、 社会復帰のための勉強をしている人も俺を含めて結構居ると思うよ。 いつか、社会復帰できるようお付き合い下さい。
いきなり定義されてないかもしれない変数渡すなやΗεΗεΗε てこと
どこから引用したコードか知らんが、100行程度のトイアプリでPHPで語ってたら笑うな
トイアプリって何のこと?
トイ=おもちゃ
PHPSPOTってサイトに htmlspecialcharsを使いましょうって書いてあった。 それだけでいいのか? matzの思うつぼw
539 :
nobodyさん :2008/02/01(金) 01:53:10 ID:7ncIvXJm
質問させてください プルダウンのオプション部分を自動生成するプログラムを書いてて makePullDown(){ $option=""; for($i=0;$i<47;$i++){ $option.="<option value=\""; $option.=setVal($i);//valueを呼び込む関数 $option.="\">" $option.=setNamae($i);//名前を呼び込む関数 $option.="</option>\n"; } return $option;//この返り値を<select>{$pd}</select>のようにして使う } というようなものを作っています が、「$option.="<option value=\"";」の行に対して、unexpected '.'というエラーが 標準出力されてしまいます。 同じ構造のプログラムを他の場所で作っていて正常に動いているので、それを元にして 作ったのですが、今回なぜエラーになるのかわかりません。 どこが問題そうというのがあったらご指摘いただけないでしょうか? すみませんがお願いします
>>539 質問するなら再現するコードをもってこい
542 :
nobodyさん :2008/02/01(金) 02:36:44 ID:6ktoEY5E
質問です。正規表現による置換がどうしてもうまくいきません。。。 <?php $comment = "aabb/*ccdd*/eedd*/"; ?> <HTML><BODY> <?php $ok = preg_replace("/\*.*?\*/","!",$comment); $ng = preg_replace("/\*.*?dd" ,"!",$comment); printf("OK:" . $ok . "<BR>NG:" . $ng . "<BR>"); ?> </BODY></HTML> $okには/*...*/を!に置き換え、$ngには/*...ddを!に置き換えるつもりのコードです。 出力結果は OK:aabb/!/eedd*/ NG: となってしまいます、 $okのほうは正しく/* */が最小一致で置き換えられていますが、 /* ddのほうがなぜか文字列が返りません。何か特別なルールがあるのでしょうか?
>>539 $option.="\">" ←セミコロンがない
よくある凡ミスだがIDE入れればそんなミス起こらない というわけでIDEで開発しれ
545 :
nobodyさん :2008/02/01(金) 03:34:06 ID:ShuZZjDk
PHPもある程度わかってきたので、SmartyとPEARを勉強したいと考えています。 オススメのサンプルサイトもしくは、推奨の本を教えてください。 よろしくお願いします。
>>545 公式サイトのマニュアルと各ライブラリのドキュメント
Smarty PEAR フレームワークの話題は
>>1 を100万回読んでからしてくださいね
548 :
nobodyさん :2008/02/01(金) 08:21:40 ID:7ncIvXJm
やっぱりみんなpearって使ってるんですか?
Smartyはアフォ
smartyのサイトが数日前から落ちてるようなのですが、 どこかでDLできるところ知りませんでしょうか? smartyスレも落ちてるし…
使うなってことだろw
落ちてるなら立てればいいじゃない
>>542 Warningとか出てないかい?
$ng = preg_replace("/\*.*?dd/" ,"!",$comment);
ddの後ろに/
556 :
nobodyさん :2008/02/01(金) 14:53:57 ID:wTHzZE81
書き込みスレが間違っていたらすみません。 質問があります。 SWFファイルを、Linuxサーバー上でスクリーンセーバー(SCR)に変換できるようなプログラム/サーバーソフトというものは、ありますでしょうか? 開発言語はPHPなのですが、PHPで可能でしょうか? どなたかお知りでしたら、何卒ご教示をお願い致します。
mysql_pconnect が機能しているかどうか どうやって確認したらよいでしょうか 持続的接続がどこかにあるのかな それとも、コマンドラインからの起動だと mysql_connectと何も変わらないとか?
かわらない
>>556 PHPで可能
win鯖なら簡単だがLinux鯖なら少し手を加える必要がある
手っ取り早く拡張モジュールで作成することもできる
拡張モジュールの作り方はググれ
ただし蔵側にはFlashPlayerがインスコされていることが条件
560 :
nobodyさん :2008/02/01(金) 16:05:35 ID:wTHzZE81
>>559 素早いご回答、ありがとうございます。
貴重な情報、とても助かります。
ググッて、色々調べてみます。
563 :
557 :2008/02/01(金) 18:47:24 ID:???
>>558 そうですか。かわらないですか。
ところで、CLIでなくCGIのときに
mysql_pconnectが有効に機能していることを
確認する手段はありますか?
565 :
557 :2008/02/01(金) 19:09:22 ID:???
>>564 ちゃんと再利用しているかどうかを知る方法
がわかんないんです(><)
566 :
nobodyさん :2008/02/01(金) 20:12:47 ID:AYOwH3yN
imagickを使いたいんですが 機能が多すぎて何がなんだか・・・ わかりやすく説明してるサイトがあれば教えて下さい
568 :
nobodyさん :2008/02/01(金) 20:34:02 ID:WTHcD/an
<A href="1.html">テスト1</A> <A href="../menu.html" target="_self"> テスト2</A> <A href="5.html" target="top">テスト3</A> <A href="34.html" target="top"> テスト4</A> _______________________________________________ 上記のようなソースをあり、<A>タグで囲まれた部分だけを抽出したいのですが、、 preg_match_all("/<a.*> ?(.*) ?.?<\/a>/i", $str, $matchtitle); これで取得すると、 テスト1とテスト3だけしか取得できません テスト2と4はソース上で改行しているせいだと思いますが、 改行部分を含んで取得するにはどうしたらいいでしょうか
>>568 先に開業コード痴漢しちゃえば?
考えんのめんどくせ
571 :
568 :2008/02/01(金) 20:54:45 ID:WTHcD/an
<A href="1.html">テスト1</A>
<A href="../menu.html" target="_self">
テスト2</A>
<A href="5.html" target="top">テスト3</A>
<A href="34.html" target="top">
テスト4</A>
_______________________________________________
test.txt
<?php
$str = implode (file ( "test.txt" ));
preg_match_all("/<a.*> ?(.*) ?.?<\/a>/i", $str, $matchtitle);
$i=0;
foreach($matchtitle[1] as $title[$i]){
print $title[$i]."<br>\n";
$i++;
}
?>
ソースはこうです
>>569 さんの意見を参考に
preg_match_all("/<a.*> ?(.*) ?.?<\/a>/i", $str, $matchtitle);
preg_match_all("/<a.*> ?(.*) ?.?<\/a>/is", $str, $matchtitle);
に変えてみましたがだめでした
俺は基本Umsにしてる
573 :
nobodyさん :2008/02/01(金) 22:40:59 ID:WPh0v7gm
>>571 preg_match_all("/<a.*?>(.*?)<\/a>/is", $str, $matchtitle);
575 :
nobodyさん :2008/02/01(金) 23:01:18 ID:oS+/fqhr
PHPからシェルプログラムを実行させることは可能?
yes
577 :
nobodyさん :2008/02/01(金) 23:11:44 ID:oS+/fqhr
PHPから受け取った変数をもとにシェルプログラムを実行させることは可能?ってnoだよな。何言ってんだ、、、
普通にできるよっていうかマニュアルみろカス
579 :
nobodyさん :2008/02/01(金) 23:16:21 ID:oS+/fqhr
くだらねぇ質問でスマソ
581 :
568 :2008/02/01(金) 23:24:59 ID:WTHcD/an
できました! 本当にありがとうございます とても助かりました!
582 :
nobodyさん :2008/02/01(金) 23:57:45 ID:4fv7t71O
smartyでデータベースから引っ張ってきた値だけ文字化けするんですがどうすればいいですか? var_dump()で出力した結果は文字化けせず、assignしたら文字化けするんですが・・・。 あと、Smarty内でceil関数とか使えないんですか?
583 :
582 :2008/02/02(土) 00:03:55 ID:qL81uK5h
あ、スマソ、文字化けはmb_strimwidthで半バイト切り取られていたのが原因でした
>>582 文字化けするようにmeta書いたら化けて当然。
ceilも使える。
585 :
582 :2008/02/02(土) 00:12:15 ID:qL81uK5h
とりあえず文字化け解決しました {$item.string|mb_strimwidth:0:100:"...":"UTF-8"|escape} ceil関数使うのってどうすればいいんですか? {ceil($item.id/$item.id2)} じゃエラーが・・・・
そろそろいい加減Smarty専用スレたてないか? ここ最近多すぎる。
phpinfoみたら使わないライブラリが結構組み込まれてるんですが これ機能使わなくても入れておくだけでメモリ消費しますよね?
インストールしただけで使ってたらおかしいだろ常識的に考えて 呼び出したときに初めて使われるわけで
消費するよ アパッチの子プロセスがえれえ多い場合にはSSLとか削ったほうがいいこともあるちゃが 削ってもバイナリは大して小さくならんし起動時間も短くならんけん放置推奨ばい
レスありがとうございます。 関数でいつでも呼び出せる状態にしておくための 関数テーブルのようなものをメモリに読み込んで その部分だけ消費するって感じでしょうか。 関数がやたらに多いライブラリもあるので アイドリング時の消費がどの程度なのかちょっと気になります。
imagettftextの size=フォントサイズ。GD のバージョンに依存し、ピクセルサイズ (GD1) もしくはポイントサイズ (GD2) で指定する必要があります。 って改悪では? webで扱う時に問題になるのはほとんど常にピクセルサイズなのに ポイントサイズって何? 何でこんな改悪が行われたの?
sprintfの書式を調べたが分からなかったので。 カンマ区切りの数値にするにはどうしたらよい? たとえば「1234567」なら「1,234,567」みたいに出力したいです。
>>593 number_format()で解決しる
>>565 同じリソースIDが返るが、異なるプロセスだと
偶然重なるとこはあり得るし判別には使えないな。
mysqlだったらTEMPORARYテーブルに何か書き込んで
それが残ってるかで見たら?あれは接続毎に独立してる領域だから。
imagettftextで縦書きするプログラムを書いてるんですが 。とか、を縦書きすると位置が不自然になります いい方法はないですか?
ミニミニミクロ電子幼稚園っていつの間にか終わってたのか
>>597 回転か専用のフォントで上手くいかないか
600 :
nobodyさん :2008/02/02(土) 16:00:43 ID:f9Zd2DDP
form.htmlで取得した $sex $age $com の3つをcsvに書き込むのにはどうしたらいいでしょうか? また、次に書き込む際に一度書き込んだデータを消さずに 次の行に書き込んでいくにはどうしたらいいでしょうか? 以下のような感じです A B C 1 男 34 1 2 男 24 2 3 女 45 1 4 男 38 1 よろしくお願いします
>>600 form.htmlのformタグを以下のように書く。
<form method="POST" action="test.php">
[test.php]というファイルを作り、以下の内容を記述する。
<?php
$line = $_POST["sex"] . "," . $_POST["age"] . "," . $_POST["com"] . "\n";
$fp = fopen("test.dat", "a");
fwrite($fp, $line);
fclose($fp);
?>
[test.dat]というテキストファイルを作り、何も書かずに保存する。
test.phpとtest.datをform.htmlと同じディレクトリに置き、
ブラウザからform.htmlでデータを入力する。
602 :
600 :2008/02/02(土) 16:49:50 ID:???
>>601 早速ありがとうございます。
そのままの記述でテストしたところ
Warning: fopen(test.dat) [function.fopen]: failed to open stream: Permission denied in /var/www/vhosts/localhost/httpdocs/test.php on line 3
Warning: fwrite(): supplied argument is not a valid stream resource in /var/www/vhosts/localhost/httpdocs/test.php on line 4
Warning: fclose(): supplied argument is not a valid stream resource in /var/www/vhosts/localhost/httpdocs/test.php on line 5
とのエラー文が出てしまいます。
>>602 パーミッションに関するエラーが出ているので、[test.dat]もしくは
そのディレクトリのパーミッションを見直してみるといいよ。
書込みが禁止になってないかな?
605 :
600 :2008/02/02(土) 16:54:41 ID:???
>>601 出来ました!
datファイルのパーミッションの設定に誤りがありました。
ありがとうございました!
$LoginID = trim($_POST["LoginID"]); $LoginID = strip_tags($LoginID); $LoginID = htmlspecialchars($LoginID); $LoginIDはログインID&名前みたいなもので、 サイトで表示したりPostgreSQLで使用するのですが、こんな対策で大丈夫なんでしょうか?
>>605 ゆとり用の隔離スレなのだから、仕方ないw
>>606 一般的にはそれでおk。
SQL実行が不安だったら、ログイン部分をデータベース参照する
処理じゃないようにして、テキストファイルの中身との一致を
確認する処理にしてしまうのも手だ。
それをやれば、中身は文字列一致しかしないのだから、どんな
記号を入れてこられてもおk。
608 :
606 :2008/02/02(土) 17:18:07 ID:???
>>607 確かにその方法だと安心ですね。
ありがとうございました。
えー 必要な時に必要な分必要なだけチェックする方がいいよ ひろみつ先生に怒られるし
>>606 一般的にはそれでは90点くらい。
使い方によっては脆弱になりかねない。
ENT_QUOTES
implodeやらfputcsvやらname[]やら使わないのは何ゆえ?
DBに投げる値にhtmlspecialcharsかけんの?ありえねー。
613 :
nobodyさん :2008/02/02(土) 18:19:46 ID:pDDEbWQ1
index.phpで読み込み、書き込みするファイルlog.txtを 一般ユーザーからの直リンクで一切表示させない方法ってありますか? index.phpファイルの実行時のみlog.txtを操作出来るようにしたいのですが、 パーミッションの設定など試してみましたが無理でした。
一般ユーザがアクセスできない場所に保存すれば?
>>613 PHPレベルでそれをやるのは無理。
ファイル名を長くしたり、ランダムに自動で変えたりして、対処するしかないだろうね。
PHPより下のレベルでならば外部からのアクセスを遮断するのは可能だが。
616 :
nobodyさん :2008/02/02(土) 18:51:05 ID:pDDEbWQ1
>>614-615 一般ユーザがアクセス出来ない場所というのは同時に、
一般ユーザがPHPの実行でアクセス出来ない場所ではないんでしょうか?
下のレベルというのがよく分からないで、参考になるページとか単語があればお願いします。
>>616 ヒント:phpとは別のディレクトリにおいて.htaccess
>>616 public_htmlより上に置くとか.htaccessで特定ファイルへのアクセスを弾くとかね。
619 :
nobodyさん :2008/02/02(土) 19:07:54 ID:UI6Nac8M
そのまんまですね。 要するにlogをブラウザがアクセスできないディレクトリにおいて、そこをphp経由で使用する Webに公開されないディレクトリに置くか/public_htmlの代わりに/private_htmlを使うとか、Web上でもブラウザで見ることができないようにアクセス制限をかけるとか
620 :
nobodyさん :2008/02/02(土) 19:18:47 ID:pDDEbWQ1
>>617-619 よく分かりました、ありがとうございます。
今のレンタル鯖では制限のため出来ないようなので、また別の鯖を利用してやってみます。
ドキュメントルートやアクセス権の概念もなくWebアプリ作ってるってのもすごいな
>>620 その程度の知識なら、ローカルで全部やれ。
迷惑だ。
623 :
nobodyさん :2008/02/02(土) 20:21:30 ID:+LXVTbfm
check.phpからcart.tplへassignで配列を渡して、そのcart.tplから その配列をtotal.phpへhiddenで渡そうとしても上手く渡せません。 hiddenでは配列を渡せないのでしょうか? SESSIONを使うのでしょうか? どなたかやり方をお願いします。
>>623 そのコードを示さないと判断は出来ないと思う。
あと、ページをまたがってデータをやり取りする場合は、
SESSIONのほうがいいとされている。
hiddenに配列入れるってどうやってんだろ
>>625 それ、俺も思った。恐らくこんな感じでは?w
<input type="hidden" name="$a[3]" value="{0,1,2}">
パースし直すの面倒だなw
hiddenだからできないとか有り得ないだろ常識的に
630 :
nobodyさん :2008/02/02(土) 21:07:18 ID:+LXVTbfm
>>624 ありがとうございます。
SESSIONでやり取りできました。
二つあるSESSIONのお互いの配列はどうやって最後に一つにしたらいいですか?
何度もすみません。
>>625 >>626 無茶な事をしてたみたいです。すみません。
632 :
nobodyさん :2008/02/02(土) 22:17:42 ID:DhduKq9O
対話形式のコマンド、例えばpasswdコマンド、をphpのsystemやらexecやらで叩ける?
<input type="hidden" name="nanka[]" value="0"> <input type="hidden" name="nanka[]" value="1"> <input type="hidden" name="nanka[]" value="2"> これで配列渡せると思うけど
そうじゃなくて
>>623 がどうやってんだろって事だよ
なるほど・・・ ありがちなのは <input type="hidden" name="nanka" value="Array"> だろうな
637 :
nobodyさん :2008/02/03(日) 00:43:42 ID:ogX/8gGf
相談です var_dump($gNameAry2); echo "ggg>".$gNameAry2[1]."<br />"; としたとき、上のvar_dumpで配列の中身がちゃんと表示されるのに、 下のechoでの出力は何もされません どんな理由が考えられるでしょうか? この2行の間にはなにもありません
>>637 var_dump()の結果とエラーログを出して
639 :
nobodyさん :2008/02/03(日) 01:18:05 ID:ogX/8gGf
>>638 どうもです エラーは出ていないんです。var_dumpの結果は以下です
array(2) { ["グループ1"]=> string(24) "シュープリームス" ["グループ2"]=> string(21) "クルセイダーズ" }
>>639 echo "ggg>".$gNameAry2["グループ1"]."<br />";
echo "ggg>".$gNameAry2["グループ2"]."<br />";
PHPではarray[1]は、"1"をキーとした(順序つき)連想配列だと思うと分かりやすいかも あとデバッグ時にはE_NOTICEまで出力すると分かることが多い
642 :
639 :2008/02/03(日) 01:37:34 ID:ogX/8gGf
>>640 あ、それだとちゃんと表示されました(ggg>シュープリームス)
>>639 の形の配列って$gNameAry2[0]の形でアクセスできないんですか?
やばい、相当恥ずかしいこと聞いてますか?orz
643 :
nobodyさん :2008/02/03(日) 01:41:12 ID:rw9YKxIr
>>599 縦書きフォントを含んでいるttfファイルも
縦書きと横書きが一つのファイルになっていますよね?
そしてimagettftextには縦と横の指定をするオプションがないようです。
縦書きしか含まれていないttfファイルを何らかの方法で作るしかないでしょうか?
一文字ずつ回転させる方法は、一応できましたが、
負荷的に、合成を一度で済ませた方が軽いと思うので
縦書きフォントの方もさぐっています。
644 :
639 :2008/02/03(日) 02:05:53 ID:???
教えてくれた人、ありがとうございました 解決しました ほんとにありがとう
他言語の人向けにいうとPHPには配列は存在しない 配列と呼ばれてるのはハッシュ
>>646 多言語向けに言うなら、順序付きハッシュって説明してあげたほうがいいな。
連想配列の場合は暗黙に順序が付く
他の言語ではハッシュは順番が保障されないことが多い。 PHPでは入れた順番に値を取り出すことが出来る。 だから配列のようにも使えるし、ハッシュのようにも使える。 結構便利だよ。データベースのフィールドとか、 定義した順番に取り出すことが出来るから。
そんなことはどうでもいい。
どうでもよくないぞw
連想配列は子ども一人社会復帰させられないもんな
ハッシュに順番が保障されるというのは、処理が遅いということじゃない? 格納するのと取り出すのを優先するのがハッシュだと思うんだけど。
デメリットよりメリットの方がおおきい
scriptにスピードを期待するなよ
キーで値をとるのにインデクスは関係ないし逆もまた然り ギャップを埋めたりするわけでなし、実装コードのどこを見て言ってるのか分からん
ハッシュと内部のハッシュテーブルは別物だからな OrderedHashが遅いのではなく配列が遅い といっても今のPHPはチューニングされてるから一概に言えない
>>654 ハッシュに追加したキー順番データを保持しておけば良いだけ。
キーで取り出すときは、キー順番データを参照しないから変わらない。
foreachで順番に取り出すときは、ハッシュの内部順番データを取得する代わりに
キー追加順番データを見るだけ。
順番データを保持するだけでいいのだから、キーの数×数バイト のメモリ容量と
追加時にわずかな処理低下しか発生しない。
>>659 なるほど。ならば、PHPのハッシュが優秀だな。
xdebug入れたらNoticeが表示されんようになったんだけど、 これなんで?
レポートレベルが変えられてっかじらじゃね?
663 :
nobodyさん :2008/02/03(日) 19:40:31 ID:ogX/8gGf
/user/1001/img/event20080203.jpg /user/1002/img/event20080203.jpg って風に保存されてる画像があるとして、eventの後に続く数字はアップロード日時 なんですが、この日時から半年過ぎたら削除されるようにしたいと思います。 どうしたらいいんでしょう? 今考えてるのは、ユーザID(1001…)がふえてくのをループをまわして対応しつつ、 該当ファイルがあるのを確認したらunlinkで消してくことなんですが。 for($i=1001;$i<=$userCount;$i++){//こんな感じです 荒っぽいですが if(getimagesize(該当ファイル *日時抽出と比較もここ)){unlink(該当ファイル);} } しかしこれだと、ほんとに削除処理できてるのか一目瞭然でわかりづらいので なんとなく不安です。(全部のユーザのイメージフォルダを開かなきゃいけない) アップロード領域を一箇所にまとめて処理すればすぐ確認できると思うんですが、 事情がありそれは難しい状況です。 ・定期的に不要なファイルを削除できて、削除の確認がすぐに出来る方法ないでしょうか?
別にいいんじゃない? 他にやりようはあるけど、それで問題ないなら十分かと
665 :
663 :2008/02/03(日) 20:36:58 ID:ogX/8gGf
>ほんとに削除処理できてるのか一目瞭然でわかりづらいので >なんとなく不安です。 こういうのを不安に思うのがおかしいんですかねー? 逆に言ったら、アップされたときにちゃんとアップされてるか いちいちディレクトリ開いて見るのと同じってことかな…
666 :
nobodyさん :2008/02/03(日) 20:37:46 ID:+kFg/DIc
質問です 配列$_SESSION('a')中身はArray ( [id] => 1 [name] => 山田 [etc] => 右 ) に 配列の$b中身はArray ( [id] => 5 [name] => 田中 [etc] => 右 )を 入れたいのですがarray_pushではきれいに入れる事が出来ないのですが やり方を教えてください。お願いします。
>>666 unset($b)ってすると
「きれいに」なるよ
一目瞭然の使い方間違ってるよ
670 :
nobodyさん :2008/02/03(日) 20:56:07 ID:+kFg/DIc
>>668 ショッピングページの様に最初に情報を入れたカート($_SESSION('a'))に
ページをまたぎ次に選択した情報($b)を追加していきたいのですが
やり方がわかりません。お願いします。
>>668 おそらく
$_SESSION = array(
'a' => array([id] => 5 [name] => 田中 [etc] => 右)
)
で
$_SESSION['b'] = $b;
ってしたい。もしくはマージしたいんジャマイカ?
そういう一目瞭然の使い方見たのは、はじめてだ。 ま、確かに「役不足」の正確な意味を知らなかったとかは あるけどさ、ここまでひどくなるのを見ると驚くよ。 ゆとり世代ってすさまじいな。
ログ吐くとかunlinkじゃなくてrename使って一箇所に集めてみるとか やりたいようにやればいいんじゃないの
>>670 $_SESSION['cart'][] = 追加したいアイテム
$_SESSION['cart'][] = 追加したいアイテム
$_SESSION['cart'][] = 追加したいアイテム
675 :
nobodyさん :2008/02/03(日) 23:24:59 ID:zqPVhuXn
677 :
nobodyさん :2008/02/04(月) 00:13:57 ID:jFq8zh8H
なぜか教えてくださいっ!!
その程度の問題解決もできなくて pear 使ってるなんて…
679 :
nobodyさん :2008/02/04(月) 01:05:35 ID:vecMkQ0b
>>674 うまく出来ました
ありがとうございました
printf()のテキスト中で %s をエスケープしてそのまま表示することはできますか?
最近、ネチケットっていう言葉が聞かれなくなったが、 これもweb2.0が復旧した陰の部分なんだろうなぁ。 パソコンの向こうにいるのは、人間だということを理解してくれ。 テレビゲームのキャラ相手にメッセージしていると錯覚してんじゃないの?
683 :
nobodyさん :2008/02/04(月) 04:56:14 ID:0159YIyB
下らない質問ですみません。 クラスはどんなときに使うものなのでしょうか?
下らない。 でも、このスレだから許す
テンプレも読んでない質問者に対しては
>>1 と3文字入力するだけで済む
687 :
683 :2008/02/04(月) 07:20:35 ID:0159YIyB
ありがとうございました。
矢降る ↓ ↓ ↓ ↓ ↓ ↓↓ ↓ ↓ ↓ ↓ ↓↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
,.、,、,..,、、.,、,、、..,_ /i ;'`;、、:、. .:、:, :,.: ::`゙:.:゙:`''':,'.´ -‐i '、;: ...: ,:. :.、.:',.: .:: _;.;;..; :..‐'゙  ̄  ̄ `"''`゙ `´゙`´´´
生メールの本文解析めんどくさ 特にマルチパートとかまじしね
質問スレで愚痴書かれても困る。
雑談スレと間違えたなんて恥ずかしくていえない
会員制のサイトを運営していまいて、 会員ごとに見せるページが違います。 ページに関しては、phpでセッション管理で制御しているので楽なのですが、 画像だけは、直リンクされるとログインしていないくても誰でも見れてしまいます。 画像もセッション管理するにはどうすれば宜しいのでしょうか? 画像をphpで生成してreadfileで出力することを思いつきましたが、 この方法だと、同じ画像でも毎回毎回転送する羽目になって 画像の転送量が増えてしまいます。 何かいい方法はないでしょうか?宜しくお願いします。
695 :
694 :2008/02/04(月) 09:52:55 ID:2EdkHT4G
すみませんIDだしていませんでした。
.htaccessで防ぐ
697 :
nobodyさん :2008/02/04(月) 10:09:41 ID:2EdkHT4G
>>696 アドバイスありがとうございます。
.htaccessでロックする方法がイメージがつかないのですが、
IPアドレスで制限するか、画像にBASIC認証をするということでしょうか?
ちょっと、運用が難しい印象を受けたのですが・・・
698 :
nobodyさん :2008/02/04(月) 10:35:22 ID:1+3di8q+
docomoで端末情報見て簡単ログイン設定を作るのってさ UTN入れるから絶対確認メッセージ出るじゃん。 でも、某SNSサイトってそういう確認も何も無しで識別してログイン出来る…。 もちろん完全なトップページからアクセスしても識別される。。 携帯ってPCと違ってハッシュを見て〜なんて出来ないよね??
700 :
nobodyさん :2008/02/04(月) 11:19:48 ID:XGKTCZyB
質問です。 mb_splitにて文字列を配列に展開したいのですが、 <?php $text = "温泉 アロマ 癒し"; mb_internal_encoding("UTF-8"); var_dump(mb_split("[ ,./,./ ]", $text)); ?> このようにすると、展開した文字が化けて、配列が11行くらいになってしまいます。 文字列はUTF-8なのですが、なぜうまく展開してくれないのでしょうか?
701 :
700 :2008/02/04(月) 11:25:21 ID:XGKTCZyB
各文字コードで試してみたところ、 UTF-8→失敗 EUC-JP→失敗 SJIS→成功 いやだっ!SJISは信用したくないっ!!
702 :
700 :2008/02/04(月) 11:26:37 ID:XGKTCZyB
mb_regex_encodingで解決しました
703 :
nobodyさん :2008/02/04(月) 11:31:32 ID:XGKTCZyB
う〜ん、テキストが空・NULLの状態でmb_splitすると、 必ず配列が1つできてしまうな・・・ これが仕様だったらやだな・・・何で何もないところから配列ができるんだ気持ち悪い FALSEでもできるorz
>>697 Deny from all
のhtaccessを画像ディレクトリに置いておけばいいんじゃね?
ディレクトリに分けてないなら拡張子で指定してもいいし。
(関係ないけど書き込むとなぜか.htaが消されるのね)
705 :
698 :2008/02/04(月) 12:17:05 ID:fn0vsA22
>>699 ごめんごめん。モバゲの事じゃないんだ。
Goccoっていうインデックス社のSNSなんだけど、例えばトップから
「マイページ」をクリックすると端末情報とか一切送信せずにログイン出来るのよ。
一体どの情報を見てログイン識別してるんだろう…。
UTN送信確認OFFにしてるとか
708 :
nobodyさん :2008/02/04(月) 12:51:17 ID:M2AmAKlA
ページ1で生成した二次元配列($arrayA)をそのままページ2に送りたいんだけど どうしたらいいの? <input type="hidden" name="hairetsu" value="{$arrayA}"/> としてページのソースを見ると <input type="hidden" name="hairetsu" value="Array"/> ってなってしまってる…
>>708 展開して一個ずつhiddenに押し込め!
すかさずシリアライズ
711 :
nobodyさん :2008/02/04(月) 13:20:14 ID:fn0vsA22
>>706 いやぁIPでは無理しょ。
>>707 いや、それはないんよ。
実際に「簡単ログイン」ボタンからログインしようとすると送信確認出るし。
Goccoって公式サイトなんかな?
そうだとしたら公式のみ受信出来るデータで識別してる可能性もあるけど
私はマイメニュー登録してないのに自動ログイン出来ちゃうから違うか…。
UTNで送信確認無しで「何らかの」識別情報が取れるなら、docomoユーザ
に対してのログインがスムーズになるんだよね。
今、自分のサイトはPHPで構築してるけど初心者ユーザはUTN確認画面を
見て意味もなくビビってUターンする場合もあるから…。
>>711 IP自体は固定だけど重複する可能性があるんじゃまいか
NULLGWDOCOMOでぐぐれ つか有名なネタだし
>>708 二次元配列なら arrayA[1] でも同じことになるから
foreach2つ回して一個一個入れる。
715 :
nobodyさん :2008/02/04(月) 13:29:44 ID:M2AmAKlA
>>712 UIDとれる公式ならUTNとる必要なくないか?
>>1 の
>◆質問後の注意
>・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
は ◆質問する時の注意 に書いておいた方がよくない?
スレタイも間違えるしテンプレ変えるしろくでないやつが立てちゃったんだな
まず読め→【PHP マニュアル】
http://www.php.net/manual/ja/ PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは
>>2-10 辺り
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 61
http://pc11.2ch.net/test/read.cgi/php/1198002831/ ◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
が正しいテンプレ
>>717 ほとんど読み飛ばされてるし、「まず読め」のさらに前に強調表示で載せていいくらいだと思う。
720 :
nobodyさん :2008/02/04(月) 14:21:11 ID:fn0vsA22
>>713 なるほど…。
て事はマイメニュー登録してなくても、メルマガ登録の時とかにUIDを取って紐付けているのでしょうね。
ありがとうございました!!
確かNULLGWDOCOMOじゃなくても取る方法はあったはず まぁそれを解析しようとしてできなかったへたれだがorz
722 :
nobodyさん :2008/02/04(月) 16:56:24 ID:GS32OYvU
ヒアドキュメントについて質問させてください。 <?php $hogehoge = "abcde"; $hoge = <<<EOM <html> <head> <title></title> </head> <body> $hogehoge </body> </html> EOM; ?> これを 「hoge.php」 書き込みたいんですが このままだと$hogehogeがPHPとして働かないので $hogehoge → <?php $hogehoge; ?> に変更しました。 が、<?php $hogehoge; ?>の部分がPHPが働いて変数$hogehogeが表示されました(abcde) 長いので次に続く
{$hogehoge}
724 :
nobodyさん :2008/02/04(月) 16:58:52 ID:GS32OYvU
<?php $hoge = "abcde"; $hoge = <<<EOM <html> <head> <title></title> </head> <body> EOM; $hoge .= '$hogehoge'; $hoge .= <<<EOM </body> </html> EOM; こうしたところ正常に動作し、hoge.phpに書き込まれました。 しかしこれだと変数出てくるたびに切れるので面倒だ。 何かいい方法はありませんか?
725 :
nobodyさん :2008/02/04(月) 17:01:17 ID:GS32OYvU
>>723 すいません、ここで$hogehogeを表示してはまずいんです。
$hogehogeは外部から取得するもので常に変化するので
そこはPHPじゃないといけないんです。
意味がわからん 外部ってどこから? GETとかで取得するなら予めhtmlentitiesでもすればいいんじゃない?
727 :
nobodyさん :2008/02/04(月) 17:16:11 ID:GS32OYvU
>>726 例えばXMLから。
簡単に書くと
ヒアドキュメント内で
<?php echo '$hogehoge'; ?>
この一行をそのままファイルに書き込みたいんです。
htmlentitiesをすると書き込まれたphpで動かなくなるんじゃないですか?
まだ試してないですがphpが動作しないと思いますが、、、
>>727 > まだ試してないですがphpが動作しないと思いますが
試してないなら試してから質問しろ
あと、情報小出しにするな
729 :
nobodyさん :2008/02/04(月) 17:21:13 ID:GS32OYvU
>>728 いや申し訳ないけど
<?php
とかになってphpが動くはずがないですから…
今から一応試してみますね。
うは、変換された。 &lt;?php です。
>>729 別に動くか動かないかで試すんじゃねーよ
動いても動かなくても試すことでそこから何か得られるんだ
得られなかったらお前の脳の問題
で、結局何がしたいんだ?
XMLから1行取得してファイルに書き出したい?
simple_xml_loadで特定の行を取得して
file_put_contentsでファイルにでも書き出せ
><?php echo '$hogehoge'; ?> >この一行をそのままファイルに書き込みたいんです。 単にこれだけならhtmlentitiesとかしないでそのまま書けばいいじゃん。 ファイルに書き込む方法がわからんとか?
733 :
nobodyさん :2008/02/04(月) 17:35:01 ID:GS32OYvU
>>731 多分勘違いされてると思うんですが
ヒアドキュメント内に
<?php echo $town ?>
この文を書いてこの文が何も変換されないまま
hoge.phpに書き込まれたいのです。
久々にエスパー要るな
735 :
nobodyさん :2008/02/04(月) 17:37:44 ID:GS32OYvU
>>732 普通にfwriteでやってるんですがまずいんでしょうか?
<?php echo '$hogehoge'; ?>
これを書き込むと書き込んだ先で$hogehogeが展開されてるんですよ。
>>734 $hogehoge = 'abcde';
$hoge = "123 $hogehoge 456"; // こうなるのが困るらしい
$hoge = '123 $hogehoge 456'; // こういう代入をヒアドキュメントでやりたいらしい
という質問だと思うんよ、たぶん。
fwrite($handle, '<?php echo "$hogehoge"; ?>'); のようにシングルクォートとダブルクォートを入れ替えちゃダメなの?
738 :
nobodyさん :2008/02/04(月) 18:10:14 ID:GS32OYvU
>>736 そうです、わかりにくくて申し訳ない。
中々これが思い通りにいかなく困っております。
>>737 それで可能でしょうがヒアドキュメントでは不可能なんでしょうか?
それだったら素直に諦めるんですが、、、
なんのためにヒアドキュメントがあるかわかってんの?
>>738 頭悪いのいっぱい発生してるけど気にすんな。
想像力も一つの能力、想像力ないやつはクリエイターに向かない。
で、本題。
結論から言うと可能。
書き方をよく考えれば反映される。
お前も想像力足りないから考えろ。
742 :
nobodyさん :2008/02/04(月) 18:31:01 ID:OeLZYsIz
ライブラリにしたいクラスファイルの中から 他のクラスを使う時ってどう書いてますか? includeをハードコーディングするのか、 読み込み部分を一切書かず、 __autoloadの記述に委譲するのか、 ベターな方法に迷ってます。
743 :
nobodyさん :2008/02/04(月) 18:34:55 ID:GS32OYvU
>>740 改行やタブをそのまま反映させるためだと思ってますが。
違うのですか…?
>>741 わかりました。
書き方工夫してみます。
どうしてもわからない場合戻ってくるかもしれません、、、
ありがとうございました。
>>742 クラス内で他のクラスを使うってこと?
extendsでよくね?
>>741 はぁ?ヒアドキュメントできるわけねーだろw
あー、やっとわかった。 変数の内容じゃなく文字列としての $hogehoge を出したいだけか。 すごい混乱した。
で、可能なの? 俺できないと思うんだけど。 正規表現使えばできそうな気もするんだが ヒアドキュメントだけでは不可能だと思うんだが。
くだ質スレなんだからあんまりギスギスしなさんな。
茶化すだけなら雑談スレいったほうがいい。
できるよ。
>>722 にたった一文字加えるだけで。
750 :
nobodyさん :2008/02/04(月) 18:47:34 ID:M2AmAKlA
$seito=array(array(1,"山田"),array(2,"田中"),array(3,"斉藤"),…) って具合になってる配列があるとして、子配列の最初の要素が2だとわかってるときに、 "田中"という値を一発で抜き出す方法ってないですか? 自分が思いつくのはfor($i=0;$i<count($seito);$i++){…}っていう処理なんですが もっと要領のいいやりかたないのかな…
>>749 できもしないことをできると思わせるのやめとけよな
あと、なんでヒアドキュメント使いたがるのかわからん
テンプレなるならSmarty使っとけ
慣れるとかなり便利だぞ、FW使うことになると応用できるし
>>751 なんでSmartyなんか使うの?
頭悪いの?
>>750 forループしてもいいけど最初のとこを「キー=>値」のようにして
$seito = array( array(1=>"山田"),array(2=>"田中"),array(3=>"斉藤") );
echo $seito[1][2];
ではだめなんかな?
>>752 ほっとき。
使ったことない人の嫉妬か
あと、複数の値扱うなら多次元にしなきゃいかんけどそうでなのなら $seito = array( 1=>"山田", 2=>"田中", 3=>"斉藤" ); echo $seito[2]; とか。 複数の値いるなら俺はこっちにする。 $seito = Array( 1=>Array(name=>"山田",age=>26), 2=>Array(name=>"田中",age=>16), 3=>Array(name=>"斉藤",age=>3) ); echo $seito[2][name];
>>754 使う必要がわからない。
使ったけど不便すぎる。
使うぐらいなら作った方がわかりやすい。
使ってるやつは伸びない。間違いなく
757 :
751 :2008/02/04(月) 19:11:22 ID:???
>>753 できました! これ連想配列っていうんですっけ?
こうやって使うんですね ありがとうございました
>>756 なんでもいいけど結局
>>722 の言ってるのできるの?できないの?
さっきからうるさいのお前だろ?
変数を展開されたくないってことで良いの? だったら バックスラッシュでエスケープすれば良いと思うけど。
いやそれ俺だし・・・。妄想を暴走させるのは勘弁してくれ。
761 :
nobodyさん :2008/02/04(月) 19:29:05 ID:GS32OYvU
>>759 ああ、なるほど。
よく考えたらそれがありましたね。
ありがとうございます。
何か自分が言うのもなんですがこのスレってレベル低かったんですね。
試してないなら試してからって言われてるのに… ほんと頭悪いな
何今更言ってんの? みんなそんなのわかってるよ。 Smarty使うとかゴミみたいなもんだろ
Smartyの実用性知らないからそんなことが言える ただのテンプレエンジンだけとしか使えないと思ってるバカ多すぎ
smarty使うのって自分で作れないからでしょ?
さらに釣られてどうすんだ。 あれは自然災害みたいなもんとしてほっときゃいいよ。
結論 使うにしろ使わないにしろ Smarty云々言ってるやつはバカが多い
今まで勉強しようか悩んでたけど、 smartyって別に使わなくてもいいみたいですね この流れ見てると
いまだに何がしたかったのかわからない俺ガイル
>>771 いちいち
<?php echo $title; ?>
とか書きたいのなら使わなくてもいいけどな
結論
Smarty使ってないやつは<?=$var?>という書き方をするやつが多い
>>773 今日日ショートタグは減っていっているかと
>>773 オレそれしか知らないんだけど、他にいい方法ある?
779 :
nobodyさん :2008/02/04(月) 21:48:21 ID:M2AmAKlA
$staAry=array(50=>Array("sta"=>"新宿","last"=>"01:40"),51=>Array("sta"=>"東京","last"=>"01:50")) という形の配列って、$staAry[50][sta] っていう形でアクセスできるんですが、 普通に要素の順序でアクセスすることは出来ないんでしょうか? $staAry[0][sta]で“新宿”が返ってくるようにしたいんです 無理なんですか? すみません、回答お願いします
このIPから執拗な攻撃を受けているのでブロックしたいのですが、 .htaccessにどう書けばいいですか? 「xxx.xxx.xxx.xxx/xx」の書き方が難しくで分かりません。 222.15.68.195 222.15.68.198 222.15.68.200 222.15.68.201 222.15.68.202 222.15.68.203 222.15.68.207 222.15.68.208 222.15.68.209 222.15.68.210 222.15.68.211 222.15.68.212
>>779 $staAry = array(50=>Array("sta"=>"新宿","last"=>"01:40"),51=>Array("sta"=>"東京","last"=>"01:50"));
foreach ($staAry as $key => $value){
//$key : 0,1,2,3,4...
//$value : $staAry[$key]
echo $value[sta]."\n";
}
あと、連番はつけなくても
$staAry = array(
Array("sta"=>"新宿","last"=>"01:40"),
Array("sta"=>"東京","last"=>"01:50")
);
みたいにキー省略すれば 0 から順番につけてくれる
>>780 http://pc11.2ch.net/test/read.cgi/hp/1176912246/
それはリナックス板とか自宅鯖板とかのapache関連スレで聞いたほうがいいのでは
>>780 スレ違いだけど、答えておくと、下のようにやれば大丈夫。
222.15.68.194/8
>>781-783 いつもここで伺っているので、つい聞いてしまってすみません。
>>783 どうもありがとうございました。早速やってみます。
>>780 板違いネタを続けるのもあれだけど、au携帯からのアクセスを禁止してしまって良いの?
Name: pv01proxy01.ezweb.ne.jp
Address: 222.15.68.195
謎の 222.15.68.194/8 で納得してるようだし、誘導先に行く気もなさそうだから どーでもいいんじゃない?
inetnum: 222.0.0.0 - 222.15.255.255 netname: KDDI 222.0.0.0/8で完全ブロックwwwwwwwっをkwwwwwwwww ていうか攻撃受けてるわけじゃないのに勘違いしてるだけなんだろうな
789 :
788 :2008/02/05(火) 05:03:56 ID:???
ゴメン間違えたw 222.0.0.0/12だな
790 :
nobodyさん :2008/02/05(火) 05:06:40 ID:oAE2IrCI
質問です。 auの携帯電話ではmultipart/form-dataの処理がおかしくて、 multipart/form-dataと言いながらmultipart/urlencodedを送るようで 文字化けしてしまうのですが、この対策として 1.au用にmultipart/form-dataではないフォームを別に作る 2.送られてきたデータをurldecode()を使って無理やり変換する これ以外の方法で対処出来ないでしょうか? 1は一部同じ記述をするので煩雑になるのと、 2はゴミが残るようなので別に置換が必要になり敬遠しています。 よろしくお願いします。
UA見てフォームを動的に生成すればいいんじゃ
792 :
nobodyさん :2008/02/05(火) 08:53:56 ID:eHXGOXcb
画像idだけがあるとして、 それがimagecreateで作られたのか、 あるいはimagecreatetruecolorで作られたのかを知る方法ってありますか?
793 :
nobodyさん :2008/02/05(火) 09:32:13 ID:ifQzZhST
何か奇怪なことが起きて困ってます。 [test2.php] <?php require_once 'XML/FastCreate/XML_Tree.php'; ?> これで Warning: require_once(XML/Tree.php) [function.require-once]: failed to open stream: No such file or directory このエラーが出るのです。 同考えてもパスが違うのに・・・。 このファイルを削除したり、再度作成しても同じです。 新しくtest3.phpという名前で全く同じ内容のファイルを作っても、 このエラーが表示されてしまいます。
794 :
793 :2008/02/05(火) 09:34:02 ID:ifQzZhST
解決しました。 XML_Tree.phpからのエラーでした
795 :
nobodyさん :2008/02/05(火) 10:33:37 ID:oAE2IrCI
>>791 やっぱりそれしかないですかね。再考してみます。
VBとCGIでデータを送受信するシステムを作るんだけど、どうすれば良いのか分からない。 多分、VB側で接続と送信、受信の命令が必要なんだけど、ググってもよく分からない。誰か教えてくれ。そういう事を分かりやすく書いてある本でもいいんだ。
WinInet
801 :
nobodyさん :2008/02/05(火) 14:25:23 ID:ZqheJI35
おっしゃーーーーーーーー!!!!! やっとOOPの考え方わかったぜ!(プログラマー暦2年)
ほう、じゃ一言で言ってみな
雑談スレ池
804 :
nobodyさん :2008/02/05(火) 14:53:36 ID:ifQzZhST
PHP Warning: Module 'json' already loaded in Unknown on line 0 というエラーが出るのですが、一体どういうエラーなのでしょうか? jsonというModuleを使った覚えはないのですが・・・
Unknownのライン0でjsonモジュールはすでにロードされてるよん
そのまんま東
jsonで全ファイル検索してみれば?
普通に答えてる人もいんだからああしろこうしろこうあるべきなんて強要してもしょうがないだろ。 雑談や煽ってる人らと同類だぞ。
>>808 お前が一番邪魔だよ。
友達少ないでしょ?
812 :
nobodyさん :2008/02/05(火) 16:43:30 ID:ifQzZhST
>>805 なるほど、Json Moduleを重複ロードしようとしたために起こったのですね。
ですが、Json自体始めてきいたので、そういったModuleを使用した覚えはないのです。
Apacheの設定によって自動ロードされていて、何らかの原因でそれがもう一度実行されていると思ってよさそうですか?
もうちょい情報欲しいな なにrequireしたん? JSONを使うライブラリがぶつかってたりして
814 :
nobodyさん :2008/02/05(火) 16:53:14 ID:ifQzZhST
>>813 えーと、php://stdinによる標準入力です。
これで送られてきたメールを解析するのですが、空メールの時にJsonエラーが出ます。
(情報小出しすみません、今これに気づいたもので・・・。)
815 :
nobodyさん :2008/02/05(火) 17:16:13 ID:3hyvc3Sc
<? eval(gzinflate(base64_decode('暗号化された文字列'))); ?> このコードで、暗号化された文字列を得るにはどうしたら良いのでしょうか。
>>815 不可能
そのコードをそのままだとそのままの動作しかしない。
ってか何よ、その気持ち悪いコード、何の書籍のサンプル?
820 :
nobodyさん :2008/02/05(火) 17:58:47 ID:3hyvc3Sc
>>816 さん
WordPressのテンプレートのfooter.phpなんですが
このテンプレを作った人へのリンクは良いんですが、WordPress公式へのリンクとか変なサイトへのリンクが含まれています。
なので消せるかなーと思って質問してみました。
有難う御座います。
821 :
nobodyさん :2008/02/05(火) 18:24:06 ID:TiYgg/NO
PEAR htmlquickformってレイアウト性犠牲にしてない?他のpearパッケージには満足してるけど
>>821 俺は、フレームワークを入れるまでも無いような案件では、まだ使うけどな。
Fedora8はUTF-8環境なので、 MySQLやPHPをUTF-8にしたWEBアプリケーションでは mb_convert_encoding()関数は使うことがなくなるのでしょうか? UTF-8に統一した環境では、 漢字コードの煩雑さがなくなるということでしょうか?
質問の意図が分らないんだけど。鯖OSがエンコードに関係あるのか? 携帯がターゲットならShift_JISにしたりするだろうし。
UTF-8に統一出来たらあとはそんなに考えなくていいのは確かにそう
827 :
nobodyさん :2008/02/05(火) 22:44:32 ID:I3KF3byj
sourceからコンパイルした時のconfigureログとかって残ってましたっけ? あればログの場所を教えてください。
っとそういえばphpinfoで出ましたね。 お騒がせしました。
なにもかもマイクロソフトのせいです
830 :
nobodyさん :2008/02/05(火) 23:41:58 ID:YOtSSxmp
そんなとこに携番教えるの嫌だな
>>830 今だとオープンソースのPBX出てるし、目新しくはないんじゃね?
click2call系って、インフラ自作・運用は手間だけど
インフラ業者使う分にはラクなシステムだよ
833 :
nobodyさん :2008/02/06(水) 03:36:37 ID:wPMIjL3q
指定した色がパレットに存在するか否かを知る方法を教えてください imagecolorclosest imagecolorclosesthwb このへんが近いのですが、近似した色のindexを返すのでちょっと違います なぜ、この簡単な機能がないのか…??
imagecolorresolve これもですね これが一番近いようですがまだファジー機能があるようで…
836 :
nobodyさん :2008/02/06(水) 06:05:04 ID:z9nHz4Jv
文字列に特定の文字列が含まれているか検査するプログラムを書きたいんですが、 strstrで1万以上の語をマッチングさせると非常に効率が悪いような気がするのですが、 この方法よりも早くマッチング処理できる方法ってありますか? ちなみに、マチコ先生に頼んでもダメです。それは、マッチングじゃなくてマイッチングだから(核爆)
近藤真彦先生にたのんでください。
PHPの5.25のWindowsインストーラ版をWindows 2003+IISにインストールしたんだが、php.iniの設定をぜんぜん読み取ってくれない。 5.04を入れていたころは無問題だったんだが。 5.24も試してみたがだめだった。 おかげでmb絡みとかmysqlとかぜんぜん使えねーよ。 どのあたりがまずいと思う? とりあえずPHPのインストールディレクトリやC:\windows\php.iniはインターネットゲストアカウントでアクセス可能にはしている。
841 :
840 :2008/02/06(水) 09:37:56 ID:L9xITy+H
下げちまった。ごめんよ。
Windows2003+IISという環境で素直にASPを使わないのがまずいと思う。
843 :
840 :2008/02/06(水) 09:42:24 ID:L9xITy+H
それは過去の資源があるからパスでorz
844 :
nobodyさん :2008/02/06(水) 09:45:01 ID:z9nHz4Jv
>>639 はい。特定の文字列は、静的ですが、入ってくる文字列は動的です。
その特定の文字列も場合によっては追加します。
具体的には、こんな感じのPGを作っています。
$postData = "[
http://www.example.com/] ";
$targetVar = array();
array_push($targetVar, "[
http:// ");
array_push($targetVar, "儲かる");
array_push($targetVar, "絶対やれる");
for ($i = 0; $i < count($targetVar); $i++) {
if (strstr($postData, $targetVar[$i]) == TRUE) {
echo "スパムウゼーーーーーー!!!!!!!!!!!!!!";
for ($i = 0; $i < ; $i++) {
echo "<img src='
http://www.keishicho.metro.tokyo.jp/ '>";
flush();
}
exit;
}
}
}
845 :
840 :2008/02/06(水) 09:54:37 ID:L9xITy+H
どうやら古いバージョンのphp.iniを使いまわそうとしていたのが原因くさい。 php.iniも完全削除してインストールしなおしたらとりあえずは反映するようになった。
>>844 strposだと最初に見つかた場所のインデックス返すだけだから幾分軽め。
> if (strstr($postData, $targetVar[$i]) == TRUE) {
strposは見つからないときにFALSEを返すので
if (strpos($postData, $targetVar[$i]) !== FALSE) {
に書き換えればいいはず。
848 :
nobodyさん :2008/02/06(水) 14:06:19 ID:4yRuvbwo
$str = 'hoge:moge:soge:mige'; preg_match('/(.*):(.*)/',$str,$matches); これで、 hoge-moge:soge:mige と分かれて欲しいのに、 hoge:moge:soge-mige と分かれてしまいます。 最初の分け方で分けるための正規表現を教えて下さい
試してないけど、/(.*?):(.*)/ でどう?
/([^:]+):(.*)/ とかは?
出来ました 正規表現は最長マッチがデフォなんですね ありがとうございました
852 :
nobodyさん :2008/02/06(水) 16:09:55 ID:P7zv+9LN
質問です 配列をフォームの次の画面でも利用したくて、serialize($array);として hiddenに入れて送信し、次のページで $ary = unserialize($_POST['array']); var_dump($ary); としたところ、 bool(false) が表示されました。 どこに問題があったんでしょう? 配列のページ間での引渡しはserializeじゃなかったでしょうか? 正しいやり方が別にあれば教えてください すみませんがよろしくお願いします
$_POST['array']に何が入ってるかチェックせい
854 :
nobodyさん :2008/02/06(水) 18:35:39 ID:URE3uOeZ
>852 htmlspecialcharsして渡して、受けたらhtmlspecialchars_decodeする。
855 :
nobodyさん :2008/02/06(水) 19:17:02 ID:YtcNiCUS
856 :
855 :2008/02/06(水) 19:17:35 ID:???
ごめんなさい、間違えました
857 :
nobodyさん :2008/02/06(水) 19:33:42 ID:Cv0W6gKM
インクルードするときに ob_start(); @include("shuffle.php"); $shuffle = ob_get_clean(); PHP4で問題なく動作してたのですが PHP5になってから動作しなくなってから動かなくなってしまいました PHP5でも動くような記述式はございませんか? 組み込みがテンプレート方式のため$shuffleを使える方法でなんとかお願いします
Doxygen1.5.4でクラス図は作成出来たのですが、 インクルード図が作成出来ないのは仕様でしょうか?
860 :
nobodyさん :2008/02/06(水) 21:00:07 ID:8wqpE2x5
もちろんincludeは機能してます
URLのエンコード、デコードをする場合に、 urldecode() 、rawurldecode() と二つあるようなのですが、 この二つの関数はどう違うのでしょうか? マニュアルを見ると、RFC1738 エンコードかどうからしいのですが、 結論としてはどちらを使うのがいいですか? 個人的には、エンコードしたものが正確にデコードできれば、 どちらでもいいのですが・・・
PHPでTrueTypeの各属性を知る方法が提供されていたら教えて下さい
>>861 半角空白を+にするか、%20にするかの違い。
どっちでも好きにするといいよ。
864 :
nobodyさん :2008/02/07(木) 00:08:04 ID:+zOwSksv
PCが物故割れた
>>864 俺の予想ではJAVAのFullスクリーンだと思う
ユーザビリティー0の自己満足馬鹿w
870 :
nobodyさん :2008/02/07(木) 06:04:56 ID:JateuJqJ
サーバーにファイルを保存する仕組みを作って文字コードに悩まされています。 プログラムの文字コード UTF-8 サーバーの文字コード EUC Windowsの文字コード SJIS サーバーに保存するべき文字は日本語です。 正直、もう限界です。
去年まではフレームワーク乱立だったけど 今年はCakephpが一人勝ちしそうなかんじだね 1,2年はCakephpで食べていけそうだな sysmfonyの変な方向に先走った奴は乙!
?
cakeにsmartyを入れたがるヤツって、何の意味があってやってるの?
>>871 最終的には公式フレームワークのZend Frameworkに落ち着きそうだね
バージョンが上がるとZend Framework独自の機能も盛り込んでいくそうだから
PHPの追加ファンクションがZend Frameworkという形になりそう
>>874 出力のテンプレートフォーマットぐらいは統一した方がいい
webデザイナーでもwebプログラマと連携して仕事するためにsmartyを覚えるからな
877 :
nobodyさん :2008/02/07(木) 11:26:50 ID:VmG6Y420
[_example:hoge] => テスト の値を取得する方法はありませんか? $var->_example->hogeでは取得できなくて…
878 :
857 :2008/02/07(木) 11:37:00 ID:jG4lF8yz
別の方法でもいいんでお願いします
>>877 $varをdumpした値を載っけろ
>>857 php5でも動作するよ?
もうちょっと情報出さないとまともな回答なんて無理
880 :
nobodyさん :2008/02/07(木) 14:09:06 ID:JateuJqJ
>>880 うん、限界なのと困ってるのはわかったよ。
がんばれ。
で、質問がないなら帰れ。
>>880 んなもんサーバがその設定ならそれに合わせるしかないだろ。
それがダメならサーバの設定を変えろ。
883 :
nobodyさん :2008/02/07(木) 14:31:58 ID:CDhH+vVY
>>606 でちょっと上がってるんだが質問
mysqlにデータを投げ込むんだが
HTMLタグをそのまま効かせたいんで
「strip_tags」は使いたくない。
けど全部のタグ入力するのはめんd
その場合
trim
mysql_real_escape_string
htmlspecialchars($text, ENT_QUOTES);
str_replace("<?php", "<?php", $text);
str_replace("?>", "?>", $text);
これで大丈夫?
マニュアルに
「文字列からHTMLおよびPHPタグを取り除く」
って書いてあるからこれでいいものか心配。
884 :
nobodyさん :2008/02/07(木) 14:34:31 ID:CDhH+vVY
>>883 変換されたorz
str_replace("<?php", "&lt;?php", $text);
str_replace("?>", "?&gt;", $text);
※ 変換対策のために&を全角にしてます
>>883 その位やってみれば?
俺もまあ、そんな感じで放り込んでる。
なんでstrip_tagsを使いたく無いのかが解らんのだが
887 :
nobodyさん :2008/02/07(木) 15:52:05 ID:CDhH+vVY
>>885 一応いろんな物入れてみたが
発見できなかった。
けど不安で。
>>886 だってタグ消されちゃうじゃん。
俺ならBase64とかでエンコードするかなぁ
889 :
nobodyさん :2008/02/07(木) 15:57:57 ID:bRrDj0qY
動画でさ、phpの解説してるページとかないかな?
動画で何を説明しろと。
>>880 ひょっとしてそれで質問してるつもりなのか。
何をどうしたいのか具体的なこと言わなきゃ大変ですねとしか俺も言えない。
>>889 学校に行ったら?
もしくはe-ラーニングとか
892 :
nobodyさん :2008/02/07(木) 16:28:36 ID:jG4lF8yz
ググって見たのですがPHP5以降は allow_url_include がセキュリティ上の問題でデフォルトでOff になっていて onにすることは推奨されないということが分かりました。 というわけで<?php include("2ch.php"); ?>という記述は実行できない みたいなのですが、代わりに何を使えばいいのです?
>>880 文字コードで悩んでるって事は解るが
何をどうしないのかが解らんから答えがないんだよ
情報も少ないし
>>887 通したいタグ定義すれば消されない
カスタムタグも記述すれば消されない
894 :
nobodyさん :2008/02/07(木) 16:36:31 ID:CDhH+vVY
>>888 なるほど、そんな手もあるか。
>>893 全部定義すると長くない?
抜けがないかも不安だし。
だったらこっちのがスマートかと思った。
>>892 その書き方だとローカルにある2ch.phpを読み込んでるんだが
2ch.netのindex内容を取得したいの?
>>894 解らんタグが通るより自分が想定したタグだけが
通る方がよっぽど良いと思うがな
>>892 俺素人なんだが
require("2ch.php")
とかじゃダメなの?
898 :
nobodyさん :2008/02/07(木) 16:42:43 ID:CDhH+vVY
>>896 確かに。
</div>とかされてレイアウト崩されたりしても困るしな…。
参考にさせてもらってケースバイケースで考えてみる。
まりまと!
900 :
892 :2008/02/07(木) 16:49:09 ID:jG4lF8yz
すみません。相対パスだと問題なく動作致しました。
901 :
892 :2008/02/07(木) 16:51:38 ID:jG4lF8yz
>>899 おっしゃる通りです。 あとPHP5ではなくPHP5.2以降みたいです お騒がせしました
携帯向けAdsenseとかで不都合が出るだけ。 今はもう改良されてるのかな
903 :
nobodyさん :2008/02/08(金) 01:43:51 ID:zo3BaTDd
>>904 マニュアルを読んでもいまいち利点が分からないのです…
907 :
nobodyさん :2008/02/08(金) 08:11:04 ID:eEY2Q0pF
boolean値を反転するにはどうしたらいいですか?
関数の前につけるってできるの? 戻り値のリファレンスなの? それって関数の中の戻り値用の変数のリファレンスってこと? 自動変数の参照って怖くね?
> 自動変数の参照って怖くね? Cのような古い言語と一緒にするなよw
>>909 Cが古いってwww
VISTAもCで書かれているわけだが・・・
コイツは、間違いなくニート。ウザイ。市ね。お前は社会の屑だ。
911 :
nobodyさん :2008/02/08(金) 10:13:23 ID:ThV07EJ+
エックスサーバーで作ってるんですが、 PHPのheader("location: 〜〜〜"); でリダイレクトしてくれません。 なんででしょう? output_buffering = On にしてます。
>>911 locationは、Locationて書かないとダメだろ。
それにその〜〜〜をフルのURLでしっかり書いているかも怪しい。
いい加減にしろニート。
>>912 >locationは、Locationて書かないとダメだろ。
そこは関係ないだろ。いい加減恥ずかしいレスするのはやめろ。
といいつつ原因が思い当たらなくて答えてやれないが。
test
>>907 $bool = TRUE;
$bool = ($bool === TRUE)? FALSE : TRUE ;
!$bool
>>913 ニートの癖に無駄なレスつけるんじゃねーよ。
「自分はニートです、社会のゴミです。」と言って見ろ。
変なのいるけど相手しないのが吉。
>>913 思いつくのはheaderの前にすでに何か文字出力しているか、
locationの指定先が相対パスなくらいかな。
warningを表示させると、何て出る?
921 :
nobodyさん :2008/02/08(金) 12:17:53 ID:Y/kRkYzF
Smartyでコンパイル後のパスとプログラムで処理するパスが違うのは何が原因なんでしょうか。 Smarty側 Warning: Smarty::include(Path/\%%77^774^774BE9C9%%index.html.php) コンパイル側 wrt106C.tmp テンプレート名 index.html テンプレート内は特に変わった書き方はしていません。 (HTML文と{$title}があるだけです)
>>903 例えば$valueの内容がa〜zのどれかに決まっていて、
それぞれに対応して呼び出すべき func_a func_b func_c ... func_z てのがあるとする。
毎回$valueを判定して関数の選択もできるけど、最初の1回だけ判定して $func に関数を入れておけば以降$func呼び出すだけで済む。
呼び出しが数百程度ならたいした問題じゃないけど数千数万とかのデータごとに呼び出される場合に毎回判定すると手間でしょ。
クラスも使えるし今のところ関数のリファレンスは気にする必要ない。
マジレスすると、焼死体より水死体の方が無惨だったよ。 あれは人じゃない。強烈な吐き気に襲われる位すごいよ。 見たい?
アップローダか何かか? こわくてクリックできん。
PHPでDBアクセスする場合について教えてください。 Windows環境だと、PEARよりADOの方が高速で機能が豊富で優れてましたが、 Linux環境では、PDOがPEARより優れているのでしょうか? 初歩的な質問で済みません。 Linuxに詳しい方、どうぞアドバイスを頂けないでしょうか。
>>910 大好きなCが古いといわれてぶちきれたのか?w
自動変数の参照が問題になるのは、CとC++ぐらいなもんだろ。
C/C++は自動変数の参照 = ポインタ = 単純なアドレスを表す数値 を返し、
そのアドレスの先がどういう状態でも(たとえば変数が消滅していても)アクセスしてしまうが、
他の言語では参照しているものがある限り生き続け、参照されなくなったときに
消滅するという、”参照(リファレンス)”だから問題ねーんだよ。
もう少し他の言語も使えな。
929 :
nobodyさん :2008/02/08(金) 20:16:00 ID:eEY2Q0pF
imagettfbboxって四つの座標(8つの値)を返してくるけど 矩形を表現するなら二つの座標だけでいいよね? なんでこんなに返してくるの?あほなの?
アホなのではなく、アホのために8つ全部返してくれてると考えるべきかな
_ /_/
矩形とは限らんわけだが
>>928 それってGCのある言語だけじゃないの?
通常ローカル変数の参照を返すのはNGって
考えてた方が健康にいいんじゃね?
参照カウンタも知らんのか…。
いまどき、GCが無い言語なんて・・・
またレベルがどーのこーのってヤツが出てきそうだなw
>>932 どういう意味?矩形以外のバウンディングボックスなんてありうるの?
ボックスって言ってるのに…?
っていうかgd2でもimagettftextのサイズ
ポイント指定じゃなくてピクセル指定じゃん
imagettfbboxの値とズレズレだからおかしいと思ったら…
C言語の例に何でVista?VistaはCとC++と.NETが混じっているのに。
PHPが真っ先に出てきそうなんだけど。
>>933 厳密に言えば、スタックに確保して、サブルーチンから復帰[する前/した直後]にスタックの巻き戻しを行う言語だな。
928はガベコレのある言語しか触ったことがないだけだろう。
>>927 速さを気にするなら、PDOとかPEAR以前に、PHP以外の速い言語を使うべき。
どうしてもというなら、たいていPDOの方が速い。PEARはpure PHPだから。
>>932 やっとわかった
アングルかけてる場合か
たしかに4点必要だ
ちょっとお知恵を拝借させてください。 文字列「ABCDEFGH」からこんな配列を作るにはどうしたらいいでしょう? Array ( [0] => A [1] => AB [2] => ABC [3] => ABCD [4] => ABCDE [5] => ABCDEF [6] => ABCDEFG [7] => ABCDEFGH )
$abcdefgh = "ABCDEFGH"; $dest = array(); $len = strlen($abcdefgh); for ($i = 1; $i <= $len; $i++) $dest[] = substr($abcdefgh, 0, $i); var_dump($dest);
>>941 $abcdefgh = "ABCDEFGH";
$dest = array();
foreach(str_split($abcdefgh) as $chr){
$dest[] = $wk .= $chr;
}
var_dump($dest);
str_splitなんて知らんかったわ・・・w
>>947 そんなことも知らないお前は間違いなくニート。市ね。
Xの中にはa, bが含まれている。 値から一定のキーを作る a = 000010000100000000000000000000 b = 000000000000000000000000001010 これをがっちゃんこして X = 000010000100000000000000001010 後にaという値からキーを作ってXを見た時、aが含まれていることを期待できる ・・・これについて詳しく解説してるサイト知らない? Web2.0とかLightweightLanguageとか、その辺で見た記憶があるんだけど・・・ 数百万件のデータにクエリーするんだけど、80%程度の合致率でOKっていう 曖昧検索が実装したいんだ
951 :
949 :2008/02/09(土) 08:54:59 ID:uCIPYf4z
スマンス
質問です。 WinXP SP2 + Apache2 + php5.2.3 + adodb V4.94 + mysql Ver 14.12 Distrib 5.0.45, for Win32 (ia32) でInnoDBな環境なのですが、 データを追加した後、 トランザクションを開始してデータ更新、コミットした後 さらにtruncate tableを実行するとなぜかエラーになってしまい困惑しております。 具体的には以下のコマンドを発行して最後のtruncateでエラーが発生します。 insert into `foo` (id, c1, c2) values (null, 2, 3); select last_insert_id(); -- id = 1 set autocommit=0; -- adodb->SmartTrans(); begin; select * from `foo` where `id`=1 for update; insert into `backup_foo` (bid, id, c1, c2) values(null, 1, 2, 3); update `foo` set id=1, c1=4, c2=6 where id=1; commit; -- adodb->CompleteTrans(); set autocommit=1; truncate table `foo`; -- ここでエラー -- "ERROR: Can't execute the given command because you have active locked tables or an active transaction" DOSプロンプトのmysqlフロントエンドから同じようにしても問題がないので、 adodbの問題だと思ったのでバージョンを最新の4.97にあげたら直りました。 本当にありがとうございました。
954 :
953 :2008/02/09(土) 10:43:46 ID:???
スマンス
>>952 は質問なのか、報告なのか、良く分からない件
微調整だけど
>>718 のテンプレにリンクって文もあったほうが参照しやすいかもしれない。
>過去スレ、関連スレ、関連リンク、FAQなどは
>>2-10 辺り
あと注意書きは必ず読んでくださいとか書くのは・・・やっぱ見ない人は見ないか。
次スレはこうなるんですね。わかります
1 名前:nobodyさん[] 投稿日:2008/02/10(日) 02:18:29 ID:fgH88yui
まず読め→【PHP マニュアル】
http://www.php.net/manual/ja/ 過去スレ、関連スレ、FAQなどは
>>718 2 名前:nobodyさん[sage] 投稿日:2008/02/10(日) 02:20:14 ID:hG8akkdB
遠いよw
958 :
nobodyさん :2008/02/09(土) 13:19:07 ID:1j1ueCOn
PHPからrsyncでバックアップを取るバッチを作成したいのですが、普通にrsyncを叩くとパスフレーズを 求められてしまいます。proc_open()で標準入力を操作してみたのですが上手くいきませんでした。 PHP上からパスフレーズを投げてうまく同期を取る方法はないでしょうか。
で、次スレは64だから立てる人そこのところよろしく
何時もIDIDって言ってるやつのレス見て思うのだが 何でトリップじゃダメなんだ? IDなんてIP変われば変わる訳だが
トリップでもありだからせめてどっちか書けばいい。 そもそもこのスレに荒らし常駐してなきゃそんなもんも必要ないはずだけどな。
つまり、荒らしが常駐してる事だな。
>>960 答えてもらいたいなら目立つようにageるだろ普通。
ID表示よりもスレをageるのが一番の目的。
偽者防止にもなるし一石二鳥。
トリップの方が面倒臭いだろ。バカじゃねーの?w
>>965 >日付変わればID変わる訳だが?
そこまで責任もたんでいい
>>966 そうなると23時以降は日付が変わるまで出きる限り質問するなって事になるぞ?
>>963 ageが目的の場合別にageを必須にしなくても良いよな
偽者防止が目的ならage必須は解るが
>>967 めんどくせえやつだな。ageときゃいいんだよとりあえず。
gdgdうっせーともう来なくていいよ。
>>968 こういう自分の意見が通らないくなるとすぐ切れる奴は間違いなくニート。市ね。
今日にも、露が日本に対して宣戦を布告。 9日午前7時半ごろ、日本の南約700キロの太平洋上の伊豆諸島南部で、 ロシア国籍とみられる航空機が日本の領空を侵犯した。侵犯は同30分から33分まで約3分間続き、 航空自衛隊百里基地のF15戦闘機など計24機が緊急発進(スクランブル)した。ロシア機の侵犯は06年1月以来。 防衛省によると、航空機はロシア空軍の爆撃機とみられる
>>970 そういうデマを流すと最悪逮捕されるんじゃなかったけ?沖縄侵攻のときは著作権で逮捕だっけ
軽い気持ちでデマは流さないほうがいいと思うよ
>>972 You know, who do you want to believe in, God or man?
If you choose to believe in man then yes,
that is ultimately what you see.
However you were created by God and in the image of God and God breathed into you life.
God created the universe and everything that we can possibly imagine and comprehend and so much more.
God is infallible and perfect, man is fallible and imperfect, but we can still rejoice and glorify God through his beautiful creation that he gave to us all in 6 24 hour days.
you must be a neet.
NGワード: ニート
クロスサイトスクリプティングやらSQLインジェクションやらめんどくさいな・・・ まとめて対策してくれる関数を作って載せてるサイトってないの
SQLインジェクションに関しては、 ある種のライブラリ・フレームワークを適切に使えば問題ない。 適切に使うとは、SQL文字列の合成をしないということ。 変数バインディングを使ったり、O/Rマッパーを使えば良い。
>>965 別にトリップだけってわけじゃないしそれで問題ない。
この板がデフォでID非表示な弊害だししょうがあるまい。