【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カテゴリ)の各スレで
0243nobodyさん
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:???0322nobodyさん
2008/01/30(水) 21:32:04ID:???<?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自体は以前に検索で見つけたものなのですが、今検索するとどのページで見たものかわからず困っております。(-.-;
どうかよろしくお願い致します。
0324nobodyさん
2008/01/30(水) 21:42:37ID:???昨日から死んでるだわ。どっかで最新版落とせるところない?
0327nobodyさん
2008/01/30(水) 21:56:51ID:???0328322
2008/01/30(水) 21:58:05ID:???どうもありがとうございます!
0329nobodyさん
2008/01/30(水) 22:00:02ID:???if(!ereg("DoCoMo|J-PHO ...
header("Location: http://www.example.com/pc.html");
ここはプログラム書く人の板なんでそういう質問は嫌われるよ
丸投げスレに持ってくると誰かやるけど
0330nobodyさん
2008/01/30(水) 22:04:41ID:???何でObjectが突っ込めると思ったのか理解できない
永続化が必要ならJSON使うなりSerializeするなり汁
0331nobodyさん
2008/01/30(水) 22:25:08ID:???> Smartyを使いなさい。
CakePHPを使ってから、Smartyに興味がなくなったな。
PHPという言語自体がテンプレートに近いものだから、
ロジックとビューがちゃんと分かれていれば、そのままで問題が無いことに気づいた。
0332nobodyさん
2008/01/30(水) 22:31:46ID:k3DrvwtH> PHP使ってるヤツらって
> htmlspecialchars($_GET['text']);
> こんなコード書いてる!
> m9(^Д^)プギャー
とありますが、上のコードの何が問題なんでしょうか?
教えて下さい。
0333nobodyさん
2008/01/30(水) 22:32:21ID:???>PHPという言語自体がテンプレートに近いものだから、
>ロジックとビューがちゃんと分かれていれば、そのままで問題が無いことに気づいた
同感
0334nobodyさん
2008/01/30(水) 22:32:36ID:???Smartyは協業する上で何かしら標準が必要だから使ってるだけ
これはCakeを使おうが代替できない機能
やっぱフォーム-ロジック-DBの操作を楽にしてくれてウィジットを
サポートするモダンなFWじゃないと
ルール縛りだけではやはり時間が掛かるよ、柔軟性もないし
0335nobodyさん
2008/01/30(水) 22:36:49ID:???> これはCakeを使おうが代替できない機能
なんで?Cakeの方が幅広く協業できると思うけど?
SmartyはCakeのビューの部分だけでしょ。協業できるのは。
> やっぱフォーム-ロジック-DBの操作を楽にしてくれてウィジットを
> サポートするモダンなFWじゃないと
それなら、Smartyなんて問題外じゃん。
0337nobodyさん
2008/01/30(水) 22:38:56ID:???そうするとポストバックが結構面倒だけど、なんかいい方法無いかね。
0338nobodyさん
2008/01/30(水) 22:39:48ID:???読んでないけど、システムの抽象度が低いとかいうことかな
そういうコードをいちいち書くのはうっかりミスという脆弱性の温床になる
しかし標準出力がかってにエスケープされる言語なんて存在しないわけで
小さいアプリじゃごく自然な対応だと思うけどね
あるいはhtmlspecialcharsはNULLですり抜けられた時代に書かれた文章かな
0340nobodyさん
2008/01/30(水) 22:43:08ID:???> ロジックとビューを分けるのってやっぱ物理的にファイルを分けてる?
> そうするとポストバックが結構面倒だけど、なんかいい方法無いかね。
だから、そのいい方法(の一つ)がCakePHPのやり方なんだってw
0342nobodyさん
2008/01/30(水) 22:47:07ID:???貴方はオブジェクト指向病にかかっていると思われ
自力学習の間は時間が無限大なのでそれでやっていけるが
社会に出るとその時間がなくなりスパゲッティーコードを生産する作業に変わりますw
■ このスレッドは過去ログ倉庫に格納されています