トップページ⇒php
1001コメント359KB

【PHP】下らねぇ質問はここに書き込みやがれ 61

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2007/12/19(水) 03:33:51ID:???
まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
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:mia1J22w
確認用ソースです。[\r\n] でも発生する事があるようです。
http://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:mia1J22w
PHP4.4.7だと正常に動作しました。
MLog: [PHP-users 29514] Re:UTF-8、正規表現で全角スペースがヒットしないことがある?
http://mlog.euqset.org/archives/php-users.php.gr.jp/29514.html
見たいなのも有るようなので、仕様(納得行かないのでバグのような気がしますが)でしょうか・・・?
0560nobodyさん2008/01/01(火) 03:21:45ID:???
>>559のURLは関係無かったようです
0561nobodyさん2008/01/01(火) 04:44:18ID:???
まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
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カテゴリ)の各スレで
0562nobodyさん2008/01/01(火) 04:48:03ID:???
>>561
そろそろいい加減にしないとアク禁されんぞ
0563nobodyさん2008/01/01(火) 06:09:31ID:???
PHPで、既存のクラスにメソッドを追加することはできませんか?
RubyやPythonやJavaScriptでは、既存のクラスに対してあとからインスタンスメソッドやクラスメソッドを追加できるんですが、同じことをPHPでしようとして、やり方が分からず困ってます。
なおこの質問はPHP批判ではなく純粋に質問なので、「Ruby使えやボケ」とかはなしでお願いします。
0564nobodyさん2008/01/01(火) 06:13:35ID:???
>>557
その現象が発生する $body はどんなの?
なるべく短いのを書いてみて。
0565nobodyさん2008/01/01(火) 06:18:22ID:???
>>563
PHPをハックすればできるんじゃない?
ていうか既存のクラスいじるとかトリッキーなことしないで、
継承してからいじればいいと思う。
クラスの再利用ってそういうものでしょ。
0566nobodyさん2008/01/01(火) 06:45:56ID:???
>>565
継承すると別のクラスになります。
使おうとしいてるライブラリがクラス名を固定しているため、他のクラスは使えません。
factory methodとかDIコンテナを使っていればいいのですが、そうではないので、継承では解決できません。
0567nobodyさん2008/01/01(火) 06:52:45ID:???
単純な興味なんだけど
何のクラスにどういうメソッドを追加しようとしてんの?
0568nobodyさん2008/01/01(火) 06:59:41ID:???
>>557
止まってるんじゃなくて、マッチングに時間がかかってるだけみたい。
対象文字列を短くしたら、数秒で終わるようになった。
たぶんeregi()のマッチングアルゴリズムがまずいんだろう。

UTF-8でいいなら、mb_eregi()のかわりにpreg_match()を使って、パターンに u オプション使えばいい。

それから、質問するときは現象が発生する最小限のコードにしてほしい。
getPage()とかいらんから、対象文字列を短くしてコードに貼付けるべし。
0569nobodyさん2008/01/01(火) 07:02:35ID:???
つかあえてeregi使う利点ってあんの?
0570nobodyさん2008/01/01(火) 07:03:40ID:???
>>567
privateやprotecedになっているインスタンス変数に対して、publicなアクセッサを定義したいというだけです。
他人が作ったまずい設計のクラスを、なんとかして使わなければいけないときに、RubyやPythonだとなんとかできてしまうので、同じことがPHPでもできたらいいなと思って。
0571nobodyさん2008/01/01(火) 07:19:12ID:???
ふーん、ま無理だから自力で何とかするのがいいかと
0572nobodyさん2008/01/01(火) 07:37:33ID:9i91PKAG
皆さんあけおめです

php_qrってのを使おうと思ったんですが、インスコまではやったんだけど
php_output_from_zvalがみつかんねぇってこと言われました
php_output_from_zvalってなんのパッケージ入れればいいんですか?
0573nobodyさん2008/01/01(火) 07:46:35ID:???
PHPのバージョンが合ってないんじゃね
0574nobodyさん2008/01/01(火) 07:54:18ID:9i91PKAG
>>573
php4なんですが、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:???
>>564,568
有難うございます。色々試してみた所、仰るとおり、
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だとマッチする)。
もう訳が解りません…
0576nobodyさん2008/01/01(火) 09:27:18ID:???
>>574
そりゃドキュメントなりリファレンスなりreadmeなり見れば書いてあるんじゃないの
あとは作者に聞け
05775742008/01/01(火) 09:54:04ID:???
しょうがないからコード書き換えた
php_qr.cの594行目のチェックをはずしたらうまく行ったっぽい
0578nobodyさん2008/01/01(火) 10:08:13ID:???
>>575
//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

0579 【大凶】 【1876円】 2008/01/01(火) 10:15:38ID:???
自分で正規表現考えながら書くのは結構好きなんだが、
他人が書いてるものを見るとわけがわからなくて嫌いになりそうになるよな。
0580 【大凶】 【1905円】 2008/01/01(火) 10:24:01ID:???
そこでコメントですよ
0581 【末吉】 【1693円】 2008/01/01(火) 10:35:04ID:???
大凶 2連チャンとかw
0582nobodyさん2008/01/01(火) 10:56:15ID:???
>>578 は関係ないっぽい。忘れて。
0583 【吉】 【1505円】 2008/01/01(火) 13:54:05ID:???
この板の連中は運悪いなw
今年もくだらねぇ質問して、時には回答にまわって勉強させてもらうぜ。
ヨロシクな
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:???
行数で判断できるもんじゃないよ
0588 【豚】 【542円】 2008/01/01(火) 15:33:09ID:???
2chの書き込みは行数で判断できるから3行以上の長文はスルーだな
0589nobodyさん2008/01/01(火) 15:35:00ID:???
>>588にスパムフィルタとか作らせたら凄いことになりそw
0590nobodyさん2008/01/01(火) 15:35:06ID:???
気になるならプロファイラ使って調べれば良いんじゃね。
あとで使い勝手とか教えてくれたら嬉しい。
05915842008/01/01(火) 15:56:16ID:???
>>585-590
レス、thx.
ちょっと安心したわ。
プロファイラってのも使ってみようと思う。
ありがとう。
0592nobodyさん2008/01/01(火) 16:14:59ID:???
>>588
豚ってwwwwwwww
0593nobodyさん2008/01/01(火) 17:29:15ID:F2c2JMdr
setcookieのドメインの所に、
クッキーを与えるドメインとは別のドメインを書いても
別のドメインでそのクッキーを使えるようにはならないのでしょうか?
やってみたけど上手くいかないので、やり方が悪いのか根本的に出来ないのかを知りたいです。
0594nobodyさん2008/01/01(火) 17:31:31ID:???
$sql = "SELECT id,pass FROM login WHERE id = '".$id."' AND pass = '".$password."'";
$result = mysql_query($sql, $link) or die("クエリの送信に失敗しました。<br />SQL:".$sql);

この記述でクエリの送信に失敗しました と出るのですが
記述が間違っているんでしょうか?
0595nobodyさん2008/01/01(火) 17:43:33ID:???
>>593
多分だけど、それが可能だとしたら他のドメインのcookieを書き換える事が可能ということに
なるので、ブラウザ側が許可しない気がする。
0596nobodyさん2008/01/01(火) 17:49:21ID:???
>>594
mysql は使ってないから、詳しくは知らないけど、これで調べれば少しは判るかも。
http://jp.php.net/manual/ja/function.mysql-error.php
0597nobodyさん2008/01/01(火) 18:02:26ID:???
>>596
その関数を使ってみたところ
単純にデータベース接続が完了してなかったみたいでしたorz

くだらない質問にありがとうございました。
0598nobodyさん2008/01/01(火) 19:52:12ID:gtyeLFx+
少人数利用のBBSで
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:???
IEとFirefoxではcookieが共有されるセッション管理の単位が違うせいかな。

同じPCから複数のユーザとしてログインする必要がないなら、 setcookieで path とか domain も指定すれば
cookieが共有される気がする。
0600nobodyさん2008/01/01(火) 22:55:23ID:???
javaでいう static intializer はPHPではどう書きますか。

class Foo {
 static Map table = new HashMap();
 static { // static initializer
  table.put("<", "lt");
  table.put(">", "gt");
  table.put("&", "amp");
  table.put("¥"", "quot");
 }
}
0601 【大吉】 【314円】 2008/01/01(火) 23:02:33ID:???
>>1
06025982008/01/01(火) 23:04:36ID:gtyeLFx+
>>599
ここでも仕様が違うんですね。
他の方法を試してみます、どもでした。
0603nobodyさん2008/01/01(火) 23:30:56ID:???
Parse errorでunexpected T_PAAMAYIM_NEKUDOTAYIMとか出てきた
ハァ?何これフザケテンノ?
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
12345678790
みたいな可変する文字列のn番目に文字列"\n"を挿入する場合、
substrで切り出してシコシコ成形する以外にスマートな方法ありませんか?
0607nobodyさん2008/01/02(水) 04:44:42ID:???
まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
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
sqlへのselectの結果(オブジェクト化したもの、$obj)に対して、
$obj->NAMAE で名前カラムのデータが求められるとします(カラム名は必ず大文字)
で、上記の呼び出しを関数化したとき
function yobidashi($name){
 $name=strtoupper($name);
 return $obj->name;
}
としても上手くいきません
$obj->の後に続くのはカラム名でなければいけないからなんですが、
どういう書き方にしたらいいのかわかりません
どなたかアドバイスお願いします
0609nobodyさん2008/01/02(水) 06:46:53ID:???
>>608
$obj->$name
0610nobodyさん2008/01/02(水) 07:34:16ID:???
4:44 のテンプレ貼り ktkr
0611nobodyさん2008/01/02(水) 07:51:34ID:???
手動スクリプト乙w
0612nobodyさん2008/01/02(水) 08:26:14ID:???
>>608
いまいち状況がワカラン中でレスをするが・・・・
return $obj->$name;

これでどう?
関数呼び出す時は呼び出し方の例も記載すると
レスし易いと思う

0613nobodyさん2008/01/02(水) 08:56:01ID:???
>>608

return $obj->__get($name);

ではどうですか?
0614nobodyさん2008/01/02(水) 08:59:39ID:???
>>608
そのオブジェクトを返してる部分にメソッドを追加する
0615nobodyさん2008/01/02(水) 09:49:13ID:???
>>608
global $obj;
0616nobodyさん2008/01/02(水) 10:06:19ID:???
>>608
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とか調べてついでに覚えます
ほんとにありがとう
06186162008/01/02(水) 10:17:01ID:???
>>617
そんな書式があったのか...。
逆に勉強になった。ありがと。
0619nobodyさん2008/01/02(水) 12:44:05ID:???
Active Perlをインストールしないと 「.pl」は動かないの?
0620nobodyさん2008/01/02(水) 12:52:33ID:???
答えてるやつも大分初心者だな
0621nobodyさん2008/01/02(水) 14:12:54ID:???
そんな下らない事を書かずにはいられない620は人生初心者だな
0622nobodyさん2008/01/02(水) 16:30:00ID:???
>>617
一番覚えるべきなのは「可変変数」かと
0623nobodyさん2008/01/02(水) 19:05:49ID:???
>>619
Windowsでの話ならその通り。あくまで中身がPerlだったらの話だけど。
別にActive Perlじゃなくてもいいけど、定番だし普通これかな。
Linuxがどうかは知らない。

んでPHPと関係ないんで、次からはスレちゃんと選んでね。
0624nobodyさん2008/01/02(水) 19:27:01ID:???
そういえば長いこと*.plのうんこアイコン見てないな
0625nobodyさん2008/01/02(水) 20:42:30ID:lW+cmhhe
>>623 ありがとうございます 
PHPとPerlを同じものと勘違いしていました すみません 
0626nobodyさん2008/01/02(水) 21:55:46ID:XSzMXv90
jpgファイルが存在するかどうか確認する関数ってないですか?
0627nobodyさん2008/01/02(水) 22:08:15ID:???
file_exists
0628nobodyさん2008/01/02(水) 22:08:22ID:???
どういう使い方を想定してるのかよく分からんので、適当に推測して答えると、

想定用途 : 得ろサイトの直リンクのURLを文字列として持っていて、
       それがまだ取得可能かどうか調べたい

答え : getimagesize() で充分。
    getimagesize(そのURL)、あるいはファイルを取得してから、getimagesize()
0629nobodyさん2008/01/02(水) 22:14:46ID:???
クラスを使って、プログラムしてる人どれくらいいる?

掲示板を作ってみようと思うんだけど、クラス……というかオブジェクト指向がいまいち理解出来ない。
やっぱし、これくらい使いこなせないと掲示板自作するのは早いかな。
06306262008/01/02(水) 22:19:01ID:XSzMXv90
>>627
ありがとう
if(file_exists("http://jp2.php.net/images/php_snow.gif")){
echo "ファイルあったよ";
}else{
echo "ファイルなかった";
}
というのを試したんだけど、「なかった」と言われます
マシン内の画像で試してもそういわれます。絶対存在してるのに、、
何が原因でしょうか?
php5 apache2 winXPでやっています
0631nobodyさん2008/01/02(水) 22:37:06ID:???
>>629
(゚Д゚)ノ ァィ
0632nobodyさん2008/01/02(水) 22:37:22ID:???
志村〜
0633nobodyさん2008/01/02(水) 22:38:43ID:???
>>629
bbsなんてそんなの理解せんでもできるよ
ただ後のメンテを考えるなら覚えた方が良いかも

あとから直すのなんてめんどくさくてやってられねーとなる
0634nobodyさん2008/01/02(水) 22:39:17ID:???
クラスは使うけどオブジェクト指向の概念なんかわざわざ理解しようと思ったことはない
0635nobodyさん2008/01/02(水) 22:47:04ID:???
>>629
覚えれば便利。

同じような処理を書くのにウンザリしてきたら、嫌でも辿り着くから心配ないよ。
0636nobodyさん2008/01/02(水) 22:51:42ID:???
>>629
関係ない。
単なる概念、プログラムする対象の捉え方の違い。
06376292008/01/02(水) 22:54:29ID:???
レスありがとう。

荷がだいぶ軽くなったよ。
いろいろ、PHPの参考書とかネット上のOOP関連の文献を読み漁ってみたけど、やっぱりモヤッとしてた。

何にせよ、ありがとう。
0638nobodyさん2008/01/02(水) 23:10:10ID:???
functionで関数作ってるんですけど
クラスとオブジェクト指向っていうのはそれとはまた違ったものなの?
0639nobodyさん2008/01/02(水) 23:12:39ID:???
OOPっていうのは読んでいるだけじゃ身に付かない。
実際に自分でコードを書いてみて体で体験して初めて感覚がつかめる。
その感覚こそが大事。つまりオナニーだけしていてはダメで、
実際に女に入れてみなければ真理はつかめないということ。
そして真理をつかんだなら、ぜひオウム真理教の再興を祈念し、入信することを勧めたい。
0640nobodyさん2008/01/02(水) 23:16:11ID:???
オウムなんか再興しないでいいだろ
>>639がセックス教団作ってよ
0641nobodyさん2008/01/02(水) 23:18:30ID:???
>>638
関数でハンドルを取る奴があるとするだろ?
例としてファイルハンドルとしようか

fread(file,num)

↑をOOPではハンドルを主体にして呼ぶ↓という感じ

file->fread(num)

メソッドに操作対象を渡すか、操作対象からメソッドを呼ぶかという違い
0642nobodyさん2008/01/02(水) 23:19:38ID:???
>>638
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
$array = array("aaa","bbb","ccc")

をechoした時

"aaa","bbb","ccc"

と表示させたいのですが、forを使う以外の方法はありませんでしょうか?
0645nobodyさん2008/01/03(木) 01:31:37ID:???
>>644
echo '"'. implode('","', $array) .'"';
06466442008/01/03(木) 01:35:00ID:???
>>645
出来ました!こんなやり方があったんですね。
勉強になりました。ありがとうございました。
0647nobodyさん2008/01/03(木) 01:35:13ID:???
>>645
俺が投稿しようとしてた内容と1文字も違わなくてワロタ
0648nobodyさん2008/01/03(木) 02:08:57ID:???
何に使うんだろうな
0649nobodyさん2008/01/03(木) 04:45:11ID:???
まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
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
http://phpspot.org/blog/archives/2007/01/php_71.html

ここにある?filename=**で**をincludeするのが危険なのはわかったんだけど、こういうのも危なかったりする?
$text = htmlspecialchars($_GET['text']);
$textfile= './txt/'.$text.'.txt';

readfile($textfile);
0651nobodyさん2008/01/03(木) 09:11:37ID:???
>>650
text=../../hogehoge みたいなアクセスも出来てしまう気がする。
ディレクトリ指定が不要なら basenameを使うべき。
http://jp2.php.net/manual/ja/function.basename.php

あとファイル名に対して htmlspecialchars を使うのに、意味があるのかちょっと疑問。
0652nobodyさん2008/01/03(木) 09:15:33ID:???
>>651
ためしにtext=../../hogehoge

htmlspecialchartは元ソースに$textがなかったときに{$text}がみつかりませんでした。って表示してるからだ。ごめん消し忘れた。
06536502008/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 *。になる。
06546502008/01/03(木) 09:25:59ID:9iX7ULgu
あ、ごめん、aaaよみyこめた。basenameつかってみるー
06556502008/01/03(木) 09:47:57ID:9iX7ULgu
うーん、、困った。
できればディレクトリ指定でファイルを読み込みたいんだけど、どうにかならないものですかね・・・
06566502008/01/03(木) 09:56:17ID:9iX7ULgu
eregで$textに.が入ってたら不正扱いにするとかでおkかな?
ごめん俺書き込みすぎだ。
0657nobodyさん2008/01/03(木) 10:16:03ID:???
一般論として、不正な文字列かチェックするのではなく、正当な文字列かチェックするようにしたほうが良い。
■ このスレッドは過去ログ倉庫に格納されています