【PHP】下らねぇ質問はここに書き込みやがれ 61
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2008/01/27(日) 18:17:59ID:jK32tI//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カテゴリ)の各スレで
0222nobodyさん
2008/01/29(火) 16:50:21ID:???いや、普通に検索すると糞重たいから
せめて付加減らそうとフィールドのみ読み込んでみたり・・・
1000万件もあるとやはり時間かかるなぁ・・・
0225nobodyさん
2008/01/29(火) 16:53:43ID:???ドラゴンボール板でやれ
0226nobodyさん
2008/01/29(火) 16:57:17ID:???0227nobodyさん
2008/01/29(火) 17:07:15ID:???0228nobodyさん
2008/01/29(火) 20:28:15ID:???今日ふとしたキッカケで出来た。こんなに便利なものがあるなんて・・・
ぜひ使ってみることをお勧めします。
いや、宣伝ではないです。
0229nobodyさん
2008/01/29(火) 20:30:09ID:???PEARのお世話にほとんどなっていない。
フレームワークとライブラリは違うものなはずなのになぜだろう?
0231nobodyさん
2008/01/29(火) 21:11:07ID:5qvQ61c2C:\Documents and Settings\Administrator\My Documents\11.3.jpg
みたいに保存されてたファイル先を表示してくれるけど
どうやったらでますか?
教えてくださいえらい人
0232nobodyさん
2008/01/29(火) 21:14:23ID:t20Dm/Gk./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/下にあるのに。。。
0233nobodyさん
2008/01/29(火) 21:16:08ID:t20Dm/Gkfind / -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したんです。
0234nobodyさん
2008/01/29(火) 21:18:28ID:???ソースは見れないから本当の仕組みは分からないけれど、
ファイルをアップロードする時に、画像ファイルのパスもPOSTしていて、
それを表示しているんじゃないの?
0237nobodyさん
2008/01/29(火) 21:41:12ID:5qvQ61c2POSTしてないようですね
javascriptかなんかかな
move_uploaded_fileじゃとれないんだよね
0240nobodyさん
2008/01/29(火) 21:50:21ID:ez1qkwY6mb_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==?=
↑
変換されてる
0241nobodyさん
2008/01/29(火) 22:05:54ID:???いまいち話の流れが分からないので、具体的にソース書いてみる。
ファイル名: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が全く見当たらないという意味?
0242232
2008/01/29(火) 22:40:52ID:t20Dm/Gk0243nobodyさん
2008/01/29(火) 22:44:42ID:???こちらの環境ではそういう問題は起きなかった。
なので、私にははっきりとした原因が分からない。
一度、違うバージョンのPHPで試してみるとかやってみるといいかもしれない。
あと、検索してて見つけたものを貼っておく。このあたりが関係しているかもしれない。
ttp://www.akiyan.com/blog/archives/2006/03/phpmb_encode_mi.html
0244nobodyさん
2008/01/29(火) 22:53:29ID:???なんで混同してるんだ?
0245nobodyさん
2008/01/29(火) 22:57:32ID:???もう自社開発しかねえな。
0246nobodyさん
2008/01/29(火) 22:57:54ID:???俺は>>238ではないが、諦めてXAMPPを入れるとかどうかな?w
ttp://www.apachefriends.org/jp/xampp-linux.html
devというと、開発パッケージか、デバイスのことを意味するんだと
思うけれど、具体的には私も分からない。
0247nobodyさん
2008/01/29(火) 22:59:45ID:???続きはこちらのスレでどうぞ。
PHP総合雑談スレ
http://pc11.2ch.net/test/read.cgi/php/1200314111/
0248nobodyさん
2008/01/29(火) 23:34:27ID:ez1qkwY6レスありがとうございます。
4系最新版の4.4.8と
5系最新版の5.2.5でそれぞれ発生することを確認してます。
また、少し前のバージョン(4.3だったかな?)の
mbstringのバグは知ってましたが
日本語のエンコードがおかしいわけではないので違うかな、と思ってました。
今は試せる環境にないので、明日にでも確認してみます。
ところで、そちらでは起きないとのことですが
バージョンはいくつでしょうか??
0249nobodyさん
2008/01/29(火) 23:41:49ID:RmUTKffD任意のサイズまでダウンさせたり出来るプラグインとかないですかね?
画像のフォーマットを変えることが出来るんだしそんなのもひょっとしてあるかなぁーと
思って質問しました
0250nobodyさん
2008/01/30(水) 00:11:06ID:???どこのディストリか知らんがヘッダーファイルをまとめた開発用パッケージが提供されているだろう
/usr下にインスコしたならヘッダは/usr/inclue/mysql*あたりにあるはずだからそこを指定してconfigure
0252nobodyさん
2008/01/30(水) 00:29:20ID:???チラッとソース見た感じ仕様っぽいけど。
届かないってことは、もしかしてメールアドレスをmb_encode_mimeheader()にかけてるの?
0254242
2008/01/30(水) 00:44:10ID:e4VjwXRY(mysql.comのmysql5.1downloadのページの一番下のsourceってやつでいいんですよね、、、ここが一番不安)
カイトーして./configureしてmakeしてmake installまで、けっこうつまづきましたが、できました。
で、データベースをインストールしようとしてmysql_install_dbを実行したもののエラー。
保留してデータベースにアクセスすると前パッケージマネジャでインスコしたときに作ったデータベースが残ってた。
てかパッケージからインスコしたsqlをアインストールするの忘れてたw
で、パッケージの方のsqlは削除できたんだが、ソースからのsqlはどうやって削除するのだ?
0255242
2008/01/30(水) 00:45:58ID:e4VjwXRYでもlinux(fedora)にソースから導入しようとすると、、、もうかれこれ半日は経ってる。。。
0256nobodyさん
2008/01/30(水) 00:51:27ID:???毎度のことだけどさ。
0257nobodyさん
2008/01/30(水) 00:55:07ID:???0259nobodyさん
2008/01/30(水) 00:59:23ID:???街中でヘルメットかぶって自転車にのっている
二人組みの外人。みたことあるでしょ?あれ。
0260nobodyさん
2008/01/30(水) 01:01:42ID:9pKjffNB情報が小出しになって申し訳ありません。
実際のスクリプトではmb_send_mail()を使ってます。
内部ではmb_encode_mimeheader()を使っている、みたいなのを見て
テストのためにmb_encode_mimeheader()を使いました。
実際にメールが送られたら困ると思って^^;
よくよくマニュアルを見てみると
私が>>240で書いてる
「必要なときだけエンコードする」というのが間違いのようですね。
http://www.php.net/manual/ja/function.mb-encode-mimeheader.php
を見ると、日本語部分とアドレス部分が分けて処理されていました。
ご指摘の件、mb_send_mail()に渡されている"to"をもう一度確認してみます。
0262232
2008/01/30(水) 01:20:25ID:e4VjwXRYずっとPCに張り付いててわけがわからなくなってきた、ここで整理。
windowsからlinux環境に移していて、linuxでデータベース(mysql)がうまく起動していないことが判明。
→phpinfo()を見てみると「--without-mysql」が指定されていることを発見。
→PHP再コンパイル試みるも./configureコマンドを叩くと「mysqlのheader fileが無い」と怒られる。
→血迷ったのかいきなりmysqlをソースからコンパイルし始めて5、6時間を潰す。。。
→整理していて泣けてきたので誰かエラー直してください org...
ちなみに>>250さんのいってたように/usr/include/ファイル探してみたんですが、mysql関連のものは無かったです。俺の半日...
0263232
2008/01/30(水) 01:23:26ID:e4VjwXRY0264nobodyさん
2008/01/30(水) 01:30:08ID:???→PHP再コンパイル試みる ← 間違い
・mysql/mysqliのdsoをコンパイルする ← おしい!mysqlのdevelパッケージが必要
・yumでphp-mysqlを入れる ← せいかい!一番簡単!
あとはよそでやれ
0265nobodyさん
2008/01/30(水) 01:37:29ID:???0266232
2008/01/30(水) 01:53:02ID:e4VjwXRY0267nobodyさん
2008/01/30(水) 02:11:23ID:???PHPは現代では害悪
ttp://www.rubyist.net/~matz/20080126.html
失笑w
0268nobodyさん
2008/01/30(水) 02:17:20ID:???0269nobodyさん
2008/01/30(水) 02:23:29ID:???0270nobodyさん
2008/01/30(水) 02:37:20ID:???どうせ仕事にゃ使えないしw
0271nobodyさん
2008/01/30(水) 02:53:41ID:???いい意味で敷居が低く、悪い意味で適当。
そりゃこんな楽なら普及するわと納得したよ。
楽過ぎて他のができなくなりそうなくらいにw
0272nobodyさん
2008/01/30(水) 03:19:00ID:???漢は黙って放置だ。
PHPはきえるべきと主張してる人は少なくないけど、
そんな嫌われ言語を良い方向へ導いていこうぜ。
0273nobodyさん
2008/01/30(水) 03:25:56ID:???ようするにエリートとしての自意識から善意で言っちゃうんだろうな
0274nobodyさん
2008/01/30(水) 03:32:03ID:???0275nobodyさん
2008/01/30(水) 04:51:54ID:???0276nobodyさん
2008/01/30(水) 07:50:12ID:???0277nobodyさん
2008/01/30(水) 08:09:50ID:???PHP総合雑談スレ
http://pc11.2ch.net/test/read.cgi/php/1200314111/
0278nobodyさん
2008/01/30(水) 09:07:58ID:Pk8IBekkpostが成功するまでwhileする物を作ったのですが
breakをbreaと書いてしまい永久ループになってしまいました。
このphpを閉じても30分ほど作動したままなのですが………
もしかしてサーバーサイド側でしか止められないのでしょうか?
それとも光速にpost命令が溜まっているだけでしょうか?
0279nobodyさん
2008/01/30(水) 09:26:36ID:???てっきり歴代の人物かと思ってた
0280nobodyさん
2008/01/30(水) 09:27:46ID:???0281nobodyさん
2008/01/30(水) 09:28:37ID:???他の言語・・・PHPが一番普及しているからって
たたいても何も変わらないぞ。
まず、Rubyは初心者にとっても使いやすい簡単な言語だと
認知させなきゃ。そして初心者が大量に増えて
セキュリティ問題で苦しめw
0282nobodyさん
2008/01/30(水) 09:28:48ID:???php.iniの設定によると思う
PHPのタイムアウト値がデフォルトならそのうちとまる
タイムアウトが無効になってるならとっととアパッチ止めれ
0283nobodyさん
2008/01/30(水) 09:29:36ID:???スパム投稿には弱そうだと感じています
そこで、captchaのような機能を付加したり、そもそも本流のスクリプトがバージョンアップ
していればそういったものを使いたいと思っているのですが、この板内で探してみても
検索しても適当な場所が見つからずに困っています
該当するような機能の実装に付いて説明していたり該当するような強化版のような
スクリプトを配布しているところをご存知でしたらお教えいただけますでしょうか?
よろしくお願いいたします
0284nobodyさん
2008/01/30(水) 09:35:17ID:???適当なcaptcha落とせばサンプルコードも付いてくるでしょ
経験的にあの手のスパムは手動だから、BBQで串はじいて、あとは管理スクリプトを自前で用意するしかないね
ブログだと、投稿IPとか指定単語で根こそぎデリるアドオンとかある
0285nobodyさん
2008/01/30(水) 09:40:36ID:???色々あるからぐぐれ
0286nobodyさん
2008/01/30(水) 09:47:42ID:???>>284
captcha側からコードを読んで実装するのが面倒なので、ふたばのスクリプトがバージョン
アップしていて、かつ配布されていないかと思って質問したのですが該当しそうなところは
ないものでしょうか?
>>285
上記のことに関連しますが、スパム対策のコードを埋め込んでというのが面倒なのです
該当するようなところは既に検索(Google)してみたのですが、
どこも2005年くらいでバージョンアップが止まっているようでして…
0287nobodyさん
2008/01/30(水) 09:48:57ID:???0288nobodyさん
2008/01/30(水) 10:38:33ID: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' ";
}
としているのですが、ソースが長くなりすぎて困っています。
何か良い書き方はないでしょうか?
0291288
2008/01/30(水) 11:27:38ID:???そうすると、それようのソースも検索項目毎に必要になるので
ソースの簡略化にはならないと思うんです。
>>290
もちろん、出来るから良いのですが、同じような範囲検索項目があると、
ソースが長く成りすぎるので、それが何とか出来ないものか?と思い、質問しました。
0293288
2008/01/30(水) 11:37:35ID:???クラスかですか。クラスというか、多少関数化しているのですが
もう少し考えてみます。
あと、一度質問した後はsageにするのがルールだと思うので、
なにもカス呼ばわりしなくても・・・
0295nobodyさん
2008/01/30(水) 11:44:59ID:???それが2ちゃんクオリ(ry
0296nobodyさん
2008/01/30(水) 11:45:08ID:???0297nobodyさん
2008/01/30(水) 11:46:38ID:???各スレにテンプレあるのはご存知で?
>>296
あれ?
> ・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
これ読めないの?
0298nobodyさん
2008/01/30(水) 11:47:24ID:???if (!$price2) $price2 = "0";
$search_key = "price BETWEEN '$price1' AND '$price2' ";
0300nobodyさん
2008/01/30(水) 11:52:03ID:???> (!$price1)
実際この書き方ってどうなのかな?
Noticeエラーでも気になってしまうから、ついついisset使ってしまう
0302278
2008/01/30(水) 11:59:09ID:???そのphpを閉じた場合のセッション、タイムアウトがあるんですね
30分続いているということはタイムアウトは長いというより、無効ですよね…
0304nobodyさん
2008/01/30(水) 12:06:19ID:???いきなり使うなら、issetとか、@とか使うのもOKだろうけど、
この場合あらかじめ $price1 = $_POST["foo"] とかで、あらかじめ何らかの値が代入されているという条件があると思って書かなかった。
>>302
デフォルトなら、max_execution_time以上のCPU時間を使うとdieされるし、
そもそもbreaなんて書いたらコンパイル時にはじかれて、実行できないと思うのだが。
0305nobodyさん
2008/01/30(水) 12:07:39ID:???あれ?
$price1 = $_POST["foo"]
これでPOSTが空でもNotice出なかったっけ・・・
勘違いかな
0306nobodyさん
2008/01/30(水) 12:16:51ID:Pk8IBekk>コンパイル時にはじかれて、
そういえばそうですよね……あれ?
max_execution_timeを見てきます
0307nobodyさん
2008/01/30(水) 12:56:50ID:iTZE6D8S手軽にパフォーマンス測定したいだけなんだけど、デスクトップだと色々とノイズが多いので。
使ってる PHPは Ver5.2です。
0308nobodyさん
2008/01/30(水) 13:01:26ID:???> デスクトップだと色々とノイズが多いので
この部分がいまいち良く分からない。
デスクトップ上ですべてを動かすんじゃなくて、
サーバを別にするしかないんじゃないの?
0309nobodyさん
2008/01/30(水) 13:05:17ID:iTZE6D8S手軽に試したいだけ。
たとえば、頻繁に呼ばれる関数内で、要素が数個の配列を毎回生成するのはコスト的に
どうだろうかとか、そんなレベルの話。
デスクトップで実行して実時間を計測しても、イマイチ信用できないし。
0310nobodyさん
2008/01/30(水) 13:09:35ID:???実行時間の計測にはPEAR::Benchmark_Timerとかかなぁ。
PHP以外のプログラムを使って計測したいのならば、別な板の
話になると思うけど。。。
0312nobodyさん
2008/01/30(水) 13:27:39ID:iTZE6D8Shttp://pear.php.net/manual/ja/package.benchmarking.benchmark.timer.php
これですか、すばらしい。
ぐぐったら、 http://www.1x1.jp/blog/2006/10/php_source_tips.html も見つかったんだけど、
array_push が [] = より 60%も遅いというのは、ちょっとショック。
array_push の方が変数名間違えたときに警告メッセージが出るから好きなんだけどなぁ。
>>311
こちらも調べて見ます。
どうも、ありがとうございました。
0313nobodyさん
2008/01/30(水) 14:22:33ID:02p0qHbLまぁ、何も返さないからかな?
今までmicrotime()で頑張って計算してたが、PEAR::Benchmark_Timerが便利すぎて泣いた
0314nobodyさん
2008/01/30(水) 16:39:05ID:???だから、CakePHPなんかよりPEARのライブラリーの方が使い勝手がいいってことだよ。
だって、PEARは日本語に直すと、梨。問題なし、なんちゃって(核爆)
0315nobodyさん
2008/01/30(水) 16:42:07ID:???r'つ)∠─── ヽ
〆⌒  ̄ ̄ ̄ \__r 、 \
,.イ ,イ \ヽ,\rv-,
ヾイ /{ { ヽ、ト、 \Y <ノノ\
{ .ト{\ヽ', メ __\ } ⌒ヽ }へ
ゝ |"ひ) \ イびゞ \ ヽ- 、ノ // >=
ノ ト、"´,. ー ノ ///\/ / \
/. { ゝ / レ// } Y´ \
{ ヽ ヽ⌒> / レ´TTア⌒>、_ \
V{ \ └ ´ / ,.イ/ /ll | /≦__ }
V{ >ー┬|/ ! ,.イノ || | /  ̄ ̄ ̄ /
リヽイ| /:| l _|' '´ || | | _/
/{{ | |===| || | __/
/し|| | |== / // | /,.イ
/ ヽヽ l==| / / l
/ イ\ \=| /// 〃
〈 ≧ー < ミ ヾ| // ト
\ \ \>∠、 /\
\ \ <〆ハ ゝ _/ \
{ / ̄> X〜ヾ´ ー'´ \
 ̄</⌒Y \ ',
\/ ノ | ',
_/ / / |/ ト、
/ / \ / |ー } ヽ
\/ / l /
ト、 / _ l /
/ ヽ/____/┬─ 、____/
/ ノ | /
/ / l /
0316nobodyさん
2008/01/30(水) 17:07:21ID:???0317nobodyさん
2008/01/30(水) 18:26:07ID:???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を使わない方法があるのか、別な実装方法があるのか・・・
手が空いている方がいましたら、お手数ですが教えていただければと思います。
0318nobodyさん
2008/01/30(水) 18:27:32ID:???0319nobodyさん
2008/01/30(水) 20:04:09ID:???> だから、CakePHPなんかよりPEARのライブラリーの方が使い勝手がいいってことだよ。
両方組み合わせ使うもんだろw
フレームワークとライブラリじゃ役目が違う。
全体的な構造にCakePHP(やそのほかのフレームワーク)を使い
局所的な部分にPEARなどのライブラリを使う。
0320nobodyさん
2008/01/30(水) 20:31:55ID:???■ このスレッドは過去ログ倉庫に格納されています