【PHP】下らねぇ質問はここに書き込みやがれ 61
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2007/12/19(水) 03:33:51ID:???PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 60
http://pc11.2ch.net/test/read.cgi/php/1196511516/
◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0558nobodyさん
2008/01/01(火) 02:58:34ID:mia1J22whttp://abc.s65.xrea.com/prox/wiki/?plugin=attach&pcmd=open&file=mb_eregi_test.php&refer=%A5%A2%A5%C3%A5%D7%A5%ED%A1%BC%A5%C0
0559nobodyさん
2008/01/01(火) 03:19:28ID:mia1J22wMLog: [PHP-users 29514] Re:UTF-8、正規表現で全角スペースがヒットしないことがある?
http://mlog.euqset.org/archives/php-users.php.gr.jp/29514.html
見たいなのも有るようなので、仕様(納得行かないのでバグのような気がしますが)でしょうか・・・?
0561nobodyさん
2008/01/01(火) 04:44:18ID:???PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 60
http://pc11.2ch.net/test/read.cgi/php/1196511516/
◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0563nobodyさん
2008/01/01(火) 06:09:31ID:???RubyやPythonやJavaScriptでは、既存のクラスに対してあとからインスタンスメソッドやクラスメソッドを追加できるんですが、同じことをPHPでしようとして、やり方が分からず困ってます。
なおこの質問はPHP批判ではなく純粋に質問なので、「Ruby使えやボケ」とかはなしでお願いします。
0565nobodyさん
2008/01/01(火) 06:18:22ID:???PHPをハックすればできるんじゃない?
ていうか既存のクラスいじるとかトリッキーなことしないで、
継承してからいじればいいと思う。
クラスの再利用ってそういうものでしょ。
0566nobodyさん
2008/01/01(火) 06:45:56ID:???継承すると別のクラスになります。
使おうとしいてるライブラリがクラス名を固定しているため、他のクラスは使えません。
factory methodとかDIコンテナを使っていればいいのですが、そうではないので、継承では解決できません。
0567nobodyさん
2008/01/01(火) 06:52:45ID:???何のクラスにどういうメソッドを追加しようとしてんの?
0568nobodyさん
2008/01/01(火) 06:59:41ID:???止まってるんじゃなくて、マッチングに時間がかかってるだけみたい。
対象文字列を短くしたら、数秒で終わるようになった。
たぶんeregi()のマッチングアルゴリズムがまずいんだろう。
UTF-8でいいなら、mb_eregi()のかわりにpreg_match()を使って、パターンに u オプション使えばいい。
それから、質問するときは現象が発生する最小限のコードにしてほしい。
getPage()とかいらんから、対象文字列を短くしてコードに貼付けるべし。
0569nobodyさん
2008/01/01(火) 07:02:35ID:???0570nobodyさん
2008/01/01(火) 07:03:40ID:???privateやprotecedになっているインスタンス変数に対して、publicなアクセッサを定義したいというだけです。
他人が作ったまずい設計のクラスを、なんとかして使わなければいけないときに、RubyやPythonだとなんとかできてしまうので、同じことがPHPでもできたらいいなと思って。
0571nobodyさん
2008/01/01(火) 07:19:12ID:???0572nobodyさん
2008/01/01(火) 07:37:33ID:9i91PKAGphp_qrってのを使おうと思ったんですが、インスコまではやったんだけど
php_output_from_zvalがみつかんねぇってこと言われました
php_output_from_zvalってなんのパッケージ入れればいいんですか?
0573nobodyさん
2008/01/01(火) 07:46:35ID:???0574nobodyさん
2008/01/01(火) 07:54:18ID:9i91PKAGphp4なんですが、php_qr-0.1.0.tgzとphp_qr-0.1.3.tgzを試したんですが出来ませんでした。
php4ではどのバージョンを使えばいいんでしょうかね?
とりあえずエラーメッセージ載せておきます
Warning: dl(): Unable to load dynamic library '/usr/lib/php4/qr.so' - /usr/lib/php4/qr.so: undefined symbol: php_output_from_zval in /var/www/html/index.php on line 3
0575nobodyさん
2008/01/01(火) 09:04:48ID:???有難うございます。色々試してみた所、仰るとおり、
PHP5だと何故か異常に時間が掛かるだけで(PHP4だと一瞬)、固まっている訳ではなかったようです。
どういう表現&対象文字列だと遅くなるのかがよく解らなくて困りますが…
一応、テストに使用したスクリプト、対象のソース、結果を纏めた物を用意してみました。
http://abc.s65.xrea.com/prox/wiki/?plugin=attach&pcmd=open&file=mb_eregi-test.zip&refer=%A5%A2%A5%C3%A5%D7%A5%ED%A1%BC%A5%C0
後、異常に遅い表現は、preg_match + i,s,uオプション ではマッチしないようです(PHP4.4.7のmb_eregiだとマッチする)。
もう訳が解りません…
0577574
2008/01/01(火) 09:54:04ID:???php_qr.cの594行目のチェックをはずしたらうまく行ったっぽい
0578nobodyさん
2008/01/01(火) 10:08:13ID:???//if (preg_match('{<div[^>]*>(?:(?!</div>)(?:.|[\r\n]))*?管轄裁判所)}isu', $body, $matches)) // NO MATCH(何故一致しないのかわからない…)
i,s,uはパターン修飾子だから、 /正規表現/isu の書式じゃないの?
http://jp.php.net/manual/ja/reference.pcre.pattern.modifiers.php
他人が書いてるものを見るとわけがわからなくて嫌いになりそうになるよな。
0584nobodyさん
2008/01/01(火) 14:43:07ID:???0585nobodyさん
2008/01/01(火) 15:02:55ID:???0586nobodyさん
2008/01/01(火) 15:06:59ID:???ただ100行のコードが1万行になるわけではないだろ?
せいぜい数行〜数十行増えるだけのはずだ
そうなると体感動作速度は一緒だし実測しても変わらない
気にする必要はないからわかりやすく書くよろし
間違っても条件文で読みにくい三項演算子なんて使うなよ
0587nobodyさん
2008/01/01(火) 15:31:35ID:???0590nobodyさん
2008/01/01(火) 15:35:06ID:???あとで使い勝手とか教えてくれたら嬉しい。
0593nobodyさん
2008/01/01(火) 17:29:15ID:F2c2JMdrクッキーを与えるドメインとは別のドメインを書いても
別のドメインでそのクッキーを使えるようにはならないのでしょうか?
やってみたけど上手くいかないので、やり方が悪いのか根本的に出来ないのかを知りたいです。
0594nobodyさん
2008/01/01(火) 17:31:31ID:???$result = mysql_query($sql, $link) or die("クエリの送信に失敗しました。<br />SQL:".$sql);
この記述でクエリの送信に失敗しました と出るのですが
記述が間違っているんでしょうか?
0595nobodyさん
2008/01/01(火) 17:43:33ID:???多分だけど、それが可能だとしたら他のドメインのcookieを書き換える事が可能ということに
なるので、ブラウザ側が許可しない気がする。
0596nobodyさん
2008/01/01(火) 17:49:21ID:???mysql は使ってないから、詳しくは知らないけど、これで調べれば少しは判るかも。
http://jp.php.net/manual/ja/function.mysql-error.php
0597nobodyさん
2008/01/01(火) 18:02:26ID:???その関数を使ってみたところ
単純にデータベース接続が完了してなかったみたいでしたorz
くだらない質問にありがとうございました。
0598nobodyさん
2008/01/01(火) 19:52:12ID:gtyeLFx+setcookie("pass", $pass,time()+60*60*24*30);
$pass = $_COOKIE["pass"];
if($pass == abc){BBSを表示}
を使って、簡単なログイン制限を掛けてるのですが、
この処理のあるbbs.phpを直接表示した場合、IE7.0でもFireFoxでも全く問題なく処理されるのですが、
bbs.phpをIE7.0でインラインフレームを使い入れ子にした場合、
フォームの処理を行うとクッキーがクリアされて、またpassの入力画面に戻ってしまいます。
FireFoxでは問題ないようなのですが、インラインフレームの利用で何か特別な問題が起こることはあるのでしょうか?
0599nobodyさん
2008/01/01(火) 21:46:01ID:???同じPCから複数のユーザとしてログインする必要がないなら、 setcookieで path とか domain も指定すれば
cookieが共有される気がする。
0600nobodyさん
2008/01/01(火) 22:55:23ID:???class Foo {
static Map table = new HashMap();
static { // static initializer
table.put("<", "lt");
table.put(">", "gt");
table.put("&", "amp");
table.put("¥"", "quot");
}
}
0602598
2008/01/01(火) 23:04:36ID:gtyeLFx+ここでも仕様が違うんですね。
他の方法を試してみます、どもでした。
0603nobodyさん
2008/01/01(火) 23:30:56ID:???ハァ?何これフザケテンノ?
http://php.liukang.com/manual/ja/tokens.php
ぐぐってみたら同じこと思った人がいたようで
http://p0t.jp/mt/archives/2006/08/paamayim_nekudo.html
0604nobodyさん
2008/01/01(火) 23:43:58ID:???0605nobodyさん
2008/01/02(水) 03:58:58ID:xlZOpAZW投稿フォーム改造して画像レスを送ってみたら
アップロードされちゃったんですが見ることができません。
これをHTMLやヘッダに手を加えて画像レスが見れる状態のHTMLを送って
もらうことはできますでしょうか?
PHPを使ってる掲示板なのでここで質問してみました
よろしくお願いします
0606nobodyさん
2008/01/02(水) 04:25:51ID:zb153+EZみたいな可変する文字列のn番目に文字列"\n"を挿入する場合、
substrで切り出してシコシコ成形する以外にスマートな方法ありませんか?
0607nobodyさん
2008/01/02(水) 04:44:42ID:???PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 60
http://pc11.2ch.net/test/read.cgi/php/1196511516/
◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0608nobodyさん
2008/01/02(水) 06:24:31ID:XSzMXv90$obj->NAMAE で名前カラムのデータが求められるとします(カラム名は必ず大文字)
で、上記の呼び出しを関数化したとき
function yobidashi($name){
$name=strtoupper($name);
return $obj->name;
}
としても上手くいきません
$obj->の後に続くのはカラム名でなければいけないからなんですが、
どういう書き方にしたらいいのかわかりません
どなたかアドバイスお願いします
0610nobodyさん
2008/01/02(水) 07:34:16ID:???0611nobodyさん
2008/01/02(水) 07:51:34ID:???0612nobodyさん
2008/01/02(水) 08:26:14ID:???いまいち状況がワカラン中でレスをするが・・・・
return $obj->$name;
これでどう?
関数呼び出す時は呼び出し方の例も記載すると
レスし易いと思う
0616nobodyさん
2008/01/02(水) 10:06:19ID:???evalを使うしか思いつかない。
http://jp.php.net/manual/ja/function.eval.php
return eval('return $obj->'.$name.';');
ってかんじかな。
0617nobodyさん
2008/01/02(水) 10:12:07ID:???単純に$obj->$nameでOKでした すみません、クダ質で…
evalとかglobalとか調べてついでに覚えます
ほんとにありがとう
0619nobodyさん
2008/01/02(水) 12:44:05ID:???0620nobodyさん
2008/01/02(水) 12:52:33ID:???0621nobodyさん
2008/01/02(水) 14:12:54ID:???0623nobodyさん
2008/01/02(水) 19:05:49ID:???Windowsでの話ならその通り。あくまで中身がPerlだったらの話だけど。
別にActive Perlじゃなくてもいいけど、定番だし普通これかな。
Linuxがどうかは知らない。
んでPHPと関係ないんで、次からはスレちゃんと選んでね。
0624nobodyさん
2008/01/02(水) 19:27:01ID:???0625nobodyさん
2008/01/02(水) 20:42:30ID:lW+cmhhePHPとPerlを同じものと勘違いしていました すみません
0626nobodyさん
2008/01/02(水) 21:55:46ID:XSzMXv900627nobodyさん
2008/01/02(水) 22:08:15ID:???0628nobodyさん
2008/01/02(水) 22:08:22ID:???想定用途 : 得ろサイトの直リンクのURLを文字列として持っていて、
それがまだ取得可能かどうか調べたい
答え : getimagesize() で充分。
getimagesize(そのURL)、あるいはファイルを取得してから、getimagesize()
0629nobodyさん
2008/01/02(水) 22:14:46ID:???掲示板を作ってみようと思うんだけど、クラス……というかオブジェクト指向がいまいち理解出来ない。
やっぱし、これくらい使いこなせないと掲示板自作するのは早いかな。
0630626
2008/01/02(水) 22:19:01ID:XSzMXv90ありがとう
if(file_exists("http://jp2.php.net/images/php_snow.gif")){
echo "ファイルあったよ";
}else{
echo "ファイルなかった";
}
というのを試したんだけど、「なかった」と言われます
マシン内の画像で試してもそういわれます。絶対存在してるのに、、
何が原因でしょうか?
php5 apache2 winXPでやっています
0632nobodyさん
2008/01/02(水) 22:37:22ID:???0633nobodyさん
2008/01/02(水) 22:38:43ID:???bbsなんてそんなの理解せんでもできるよ
ただ後のメンテを考えるなら覚えた方が良いかも
あとから直すのなんてめんどくさくてやってられねーとなる
0634nobodyさん
2008/01/02(水) 22:39:17ID:???0637629
2008/01/02(水) 22:54:29ID:???荷がだいぶ軽くなったよ。
いろいろ、PHPの参考書とかネット上のOOP関連の文献を読み漁ってみたけど、やっぱりモヤッとしてた。
何にせよ、ありがとう。
0638nobodyさん
2008/01/02(水) 23:10:10ID:???クラスとオブジェクト指向っていうのはそれとはまた違ったものなの?
0639nobodyさん
2008/01/02(水) 23:12:39ID:???実際に自分でコードを書いてみて体で体験して初めて感覚がつかめる。
その感覚こそが大事。つまりオナニーだけしていてはダメで、
実際に女に入れてみなければ真理はつかめないということ。
そして真理をつかんだなら、ぜひオウム真理教の再興を祈念し、入信することを勧めたい。
0641nobodyさん
2008/01/02(水) 23:18:30ID:???関数でハンドルを取る奴があるとするだろ?
例としてファイルハンドルとしようか
fread(file,num)
↑をOOPではハンドルを主体にして呼ぶ↓という感じ
file->fread(num)
メソッドに操作対象を渡すか、操作対象からメソッドを呼ぶかという違い
0642nobodyさん
2008/01/02(水) 23:19:38ID:???class と function はまったく別物。
http://www.php.net/manual/ja/language.oop5.basic.php
0643nobodyさん
2008/01/02(水) 23:25:06ID:EFH6C9iGクラスについておぼえときます・・・
0644nobodyさん
2008/01/03(木) 01:26:52ID:PuYJW96Tをechoした時
"aaa","bbb","ccc"
と表示させたいのですが、forを使う以外の方法はありませんでしょうか?
0648nobodyさん
2008/01/03(木) 02:08:57ID:???0649nobodyさん
2008/01/03(木) 04:45:11ID:???PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 60
http://pc11.2ch.net/test/read.cgi/php/1196511516/
◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0650nobodyさん
2008/01/03(木) 08:23:14ID:9iX7ULguここにある?filename=**で**をincludeするのが危険なのはわかったんだけど、こういうのも危なかったりする?
$text = htmlspecialchars($_GET['text']);
$textfile= './txt/'.$text.'.txt';
readfile($textfile);
0651nobodyさん
2008/01/03(木) 09:11:37ID:???text=../../hogehoge みたいなアクセスも出来てしまう気がする。
ディレクトリ指定が不要なら basenameを使うべき。
http://jp2.php.net/manual/ja/function.basename.php
あとファイル名に対して htmlspecialchars を使うのに、意味があるのかちょっと疑問。
0652nobodyさん
2008/01/03(木) 09:15:33ID:???ためしにtext=../../hogehoge
htmlspecialchartは元ソースに$textがなかったときに{$text}がみつかりませんでした。って表示してるからだ。ごめん消し忘れた。
0653650
2008/01/03(木) 09:21:41ID:9iX7ULguためしにこのphpファイルと同じディレクトリにaaa.txtを置いて?text=../aaa ってやってもWarning: readfile(./txt/../aaa.txt) [function.readfile]: failed to open stream: No such file or directory in C:\www\aaa.php on line *。になる。
0654650
2008/01/03(木) 09:25:59ID:9iX7ULgu0655650
2008/01/03(木) 09:47:57ID:9iX7ULguできればディレクトリ指定でファイルを読み込みたいんだけど、どうにかならないものですかね・・・
0656650
2008/01/03(木) 09:56:17ID:9iX7ULguごめん俺書き込みすぎだ。
0657nobodyさん
2008/01/03(木) 10:16:03ID:???■ このスレッドは過去ログ倉庫に格納されています