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

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

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2008/07/17(木) 19:42:52ID:DVaNTncw
まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。

◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 70
http://pc11.2ch.net/test/read.cgi/php/1214356448/

◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。

◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)

◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0173nobodyさん2008/07/25(金) 08:51:05ID:???
Wikipediaのように入力された文字をファイル名にしたいのですが
urlencodeをするだけでいいのでしょうか?
0174nobodyさん2008/07/25(金) 09:57:31ID:???
俺いつも exit; って書いてるんだけど
exit(); って書かなきゃ駄目?
どう違うの?
0175nobodyさん2008/07/25(金) 11:25:43ID:ihOrMOFR
escapeshellcmdに日本語を含む変数をぶちこむと
日本語だけが消えるようになってしまったんですがなにか仕様変わりましたか?

ちなみにCentOS4.6で運用してるんですが
7月18日にphp関連のパッケージが4.3.9-3.22.12にアップデートされていました。
7月14日の時点ではescapeshellcmdを使用しているスクリプトも問題なく動作していたのに…
0176おはようございます155でございます2008/07/25(金) 13:42:08ID:???
>>168
PCで「あああ」を検索
http://www.google.co.jp/m/search?id=&ie=Shift_JIS&merstrict=chtml&eosr=on&q=%82%A0%82%A0%82%A0
PCで「2ch」を検索
http://www.google.co.jp/m/search?id=&ie=Shift_JIS&merstrict=chtml&eosr=on&q=2ch

携帯で「あああ」を検索
http://www.google.co.jp/m/search?guid=on&id&eosr=on&q=%E3%81%82%E3%81%82%E3%81%82&ie=Shift_JIS&merstrict=chtml
携帯で「2ch」を検索
http://www.google.co.jp/m/search?guid=on&id&eosr=on&q=2ch&ie=Shift_JIS&merstrict=chtml

日本語が、アレなんですよね…
シフトジス(´・ω・`)。

>>172
どういうことでしょうか。
ググッてみましたがわかりません。
宜しければ詳しくご助力願いたい。
0177nobodyさん2008/07/25(金) 13:50:41ID:???
>>176
Shift-JISなんて極力使わないほうがいいと思うけど。
携帯だとだめなんだっけ?

後半部分、何が分からないのか分からないのでもっと詳しく。
01781752008/07/25(金) 14:02:05ID:???
escapeshellcmdじゃなくてescapeshellargでもダメだったんで
自作しようかと思うんですが、

$str=escapeshellarg($str);
でエスケープするのと
$str="'".ereg_replace('\'','',$str)."'";
でシングルクオート消してからシングルクオートで囲うのとでは
セキュリティ的に違いがありますでしょうか?
0179nobodyさん2008/07/25(金) 14:32:31ID:???
>>177
もうEUC-JPに対応しない携帯は無視していいレベル
iPhoneみたいな舶来物は知らんが
0180nobodyさん2008/07/25(金) 15:20:23ID:???
preg_match()で、
最後尾から検索するにはどうすればいいのですか?
01811552008/07/25(金) 15:23:24ID:???
できた…何故だ…これにしただけで…
http://www.google.co.jp/m/search?guid=on&ie=Shift_JIS&merstrict=chtml=&p=%82%A0
eosr君がアレだったみたいですね。
とてもくだらない&下手したらurlの問題だからスレチなのにお騒がせいたしました。
いやっほォォォォォォぅぅぅぅぅうううハッピーでーす!!!!
感謝しますノシ
0182nobodyさん2008/07/25(金) 15:23:46ID:???
>>177
Shift_JISな
Shift-JISなんて文字コードは存在しない
0183nobodyさん2008/07/25(金) 18:05:35ID:???
>>182
それはHTTPヘッダの記述上の話だろ・・・
0184nobodyさん2008/07/25(金) 19:25:29ID:???
>>174
ダメではないけど気持ち悪い
0185nobodyさん2008/07/25(金) 22:27:20ID:B5N4x1kS
予約語 var の意味がよくわかりません。
宣言無しで普通に動作するんですが、これってPHPが自動で補完してるんですか?
0186nobodyさん2008/07/25(金) 22:52:47ID:???
php4時代の遺物だから気にしなくていい
0187nobodyさん2008/07/25(金) 22:52:49ID:???
>>185
PHP4時代のクラスの定義
0188nobodyさん2008/07/25(金) 22:54:01ID:???
>>185
「php var」でググったらまんまあった
0189nobodyさん2008/07/25(金) 23:19:44ID:UqlR9HfL
PHP初心者です。
zend frameworkのドキュメントを見ると、

$authAdapter->setTableName('users')
      ->setIdentityColumn('username')
      ->setCredentialColumn('password');

のような書き方を見かけるんですが、これは2行目と3行目の$authAdapterを省略して、
3つのステートメントを書いているのでしょうか?
また、改行せずに1行にまとめても動作するようなんですが、メソッドチェインとの区別が
つかないような気が…
これについてPHPのオンラインマニュアルを見たのですが、見つからなかったです。
0190nobodyさん2008/07/25(金) 23:23:50ID:???
メソッド名で動作が推測できそうな気がするが・・・・・

オブジェクトのメソッドの返値のオブジェクトのメソッドの返値のオブジェクトのメソッドを呼んでる
改行はスペースと区別されない
0191nobodyさん2008/07/25(金) 23:32:54ID:???
class Hoge {
  var $a;
  var $b;
  function Hoge($a, $b) {
    $this->a = $a;
    $this->b = $b;
  }
}

class Hoge {
  private $a;
  private $b;
  public function __construct($a, $b) {
    $this->a = $a;
    $this->b = $b;
  }
}
0192nobodyさん2008/07/25(金) 23:45:48ID:???
>>190
ありがとうございます。
>>189の3つのメソッドをよく見てみると、return $thisとなってました。
メソッドチェインなんですね。どうもです。
0193nobodyさん2008/07/26(土) 00:16:07ID:???
>>191
ヴぁーはぱぶりっくだぞ
0194nobodyさん2008/07/26(土) 16:26:06ID:???
PHPの勉強を始めて一ヶ月になります。
本を四冊くらい読み、最近はフレーームワーク(ZEND)を一応理解するところまで行きました。
大雑把なプログラミングはできるかなと思います。
でも、それはちゃんとしたものとは言いがたいでしょう。
実務レベルの細やかなテクニックを学ぶにはどうしたらいいのでしょうか。

出来れば、ソース丸見えで赤面するくらいの、参考になるサイトを教えてください。
0195nobodyさん2008/07/26(土) 16:31:12ID:???
phpで作られているオープンソースアプリを知りたいってことでいいのかしら。
メジャーなとこでは、pear、phpmyadmin、phpbb、xoops辺り?

http://www.google.com/search?q=php+%E3%82%AA%E3%83%BC%E3%83%97%E3%83%B3%E3%82%BD%E3%83%BC%E3%82%B9
ぐぐるといっぱいあるけど。
0196nobodyさん2008/07/26(土) 18:59:05ID:???
>>190
Zend Frameworkのソースは読んでないけど、Zend_Auth_Adapterの各メソッドが
Fluent Interface的に使えるようにreturn $this;している予感。
0197nobodyさん2008/07/26(土) 19:43:17ID:???
>>195
ちょっと違う気もしますが、ありがとうございます。
0198nobodyさん2008/07/26(土) 20:06:40ID:???
newでメソッドを繋げられないのに怒ってる人もいるよね
0199nobodyさん2008/07/26(土) 20:40:38ID:???
>>180
0200nobodyさん2008/07/26(土) 20:42:43ID:???
preg_match_allで全部取って最後から見れば?
0201nobodyさん2008/07/26(土) 20:45:01ID:???
>>200
全部とると時間と負荷がかかるので。。。
0202nobodyさん2008/07/26(土) 20:46:45ID:???
じゃ検索文字列と検索語を反転だ!
0203nobodyさん2008/07/26(土) 21:10:17ID:???
>>202
アイデアすごいですけど、
それでも負荷があるじゃないですか?
0204nobodyさん2008/07/26(土) 21:29:02ID:???
逆立ちしてみたらいいんじゃないかな?
0205nobodyさん2008/07/26(土) 21:35:57ID:???
>>204
僕未だに逆立ちできないんですよ。。。
0206nobodyさん2008/07/26(土) 22:09:48ID:NARGMpiL
今、昔の偉人の生年月日を扱う処理をしていますが、、
世界中のパソコンが1900年より前の日付を扱うことが禁忌になっているため、
処理ができません。

そもそも時間は、普遍的なものでありプログラミング言語も含めたパソコンの仕様がこれに手を加えることこそ禁忌だと思います。

実装が出来ないので大変困っているので、来週経済産業省に対して警告するつもりですが、
トリッキーな方法でもよいので、回避する方法はないでしょうか。
phpだけが悪いわけではありませんが、phpが悪くないわけでもありません。
0207nobodyさん2008/07/26(土) 22:12:58ID:???
Pear::Date使う
0208nobodyさん2008/07/27(日) 00:53:14ID:???
経済産業省に警告して、その結果を報告してくれ。
いや、報告しろ。命令だ。
0209nobodyさん2008/07/27(日) 03:54:29ID:P7Lb4B4C
<?php require_once("abc.txt"); ?>
と書くと、abc.txtの中身が全部表示されますよね?
全部じゃなくて、上から5行くらいだけ表示したいのですが
そういう場合はどうすればいいのでしょうか?
よろしくお願いします。
0210nobodyさん2008/07/27(日) 03:58:52ID:???
>>209
abc.phpにして出したい部分だけechoすれば良いんじゃない
必要ならifとかで

なんだか色んな事を基礎からやったほうがいいと思わせる質問
0211nobodyさん2008/07/27(日) 04:45:28ID:???
>>206
何言ってるんだ?
>>209
file()
0212nobodyさん2008/07/27(日) 06:48:34ID:???
>>206
http://pc11.2ch.net/test/read.cgi/hp/1215590777/315n-
カオスがここにある
0213nobodyさん2008/07/27(日) 07:12:39ID:???
>>212
こりゃカオスだな
昔の暦は正確に1年が何日か把握してなくてずれまくりだったから
正確に今日から何日前かなんて無茶だな
0214nobodyさん2008/07/27(日) 08:46:35ID:???
実際に仕事でやるプログラムって、何行くらいなんですか?
カートとかなら一日で作れちゃうじゃないですか。
PHPでの仕事って、どういうことやるんでしょうか?
0215nobodyさん2008/07/27(日) 08:55:34ID:???
入門書に載ってるカートと
実際に運用されてるカートは別物
0216nobodyさん2008/07/27(日) 09:04:36ID:???
実際に運用されてるカートってどんなもんなんですか?
あと、何行くらい?
0217nobodyさん2008/07/27(日) 09:36:55ID:???
行数関係ないだろ
0218nobodyさん2008/07/27(日) 09:49:00ID:???
言われてみればそうですね。

入門書に載っている、データベースに関するモデルつくってセッション使ってアクションしてビューみたいな
単純なカートを1としたら、実際に運用されているカートの複雑さ、難易度はどのくらいですか?
0219nobodyさん2008/07/27(日) 11:35:50ID:???
君は今はちゃんと基礎を勉強しろ
0220nobodyさん2008/07/27(日) 11:39:13ID:???
本は6冊くらい読んだんですけど
何をどう勉強すりゃいいのかわかんないです。

みなさんはどうやって勉強されたんですか?

0221nobodyさん2008/07/27(日) 11:42:40ID:???
それ読んでない。ちゃんと理解しろ。あと目標をはっきりさせろ。
0222nobodyさん2008/07/27(日) 11:53:02ID:???
うーん。

例えば、載ってる言葉は理解してるし、同じプログラムを再現することはできるんですよ。

PEARライブラリとかZENDフレームワークとか、SMARTYなどの
大まかな流れはわかるんですけど
細かいことを書いてあるわけじゃないので
一体自分に何が足りないのかがよくわからない。
書いてあることはわかる、書いてないことがわからない。

つまり、目標を立てようにも、目標となるものを思い起こす手立てがないわけです。

だから、実務レベルのカートというものを教えてもらって、目標にしたいわけです。
0223nobodyさん2008/07/27(日) 11:59:51ID:???
何冊本を読んでも中級なんだろうな。
長い経験で得たものとか本にするのは面倒だし
だってそんな売れない本つくらないし。
俺は趣味でこのスレ見てるだけだからそれでいいけど。

仕事って仕事しないと判らないよな。

仕事っていかに楽をして客から金を出させるとかそういうことじゃない。
数人が数日働けばすく何十万って金が得られないと赤字だし。
0224nobodyさん2008/07/27(日) 12:11:09ID:???
なるほど。
考えさせられますね。
実務レベルの知識は実務で身につけるしかないし
手の抜き方と力の入れどころのバランス感覚も、仕事をしてみないとわからない。

経験に勝る勉強はなしって、昔から言いますもんね。

自分でコツコツ何か作ってみて、物足りなくなったらまた来ます。
ありがとうございました。
0225nobodyさん2008/07/27(日) 12:23:35ID:???
他の言語で経験を積め。
そうすれば自分の非力さが理解できる。
PHPは糞だと気づく。PHP一本の自分が糞だと気づく。

そもそも本を買うやつはバカ。俄者。
0226nobodyさん2008/07/27(日) 12:25:28ID:???
その程度のレベルで実務を語るな馬鹿者
0227nobodyさん2008/07/27(日) 12:32:38ID:???
>>225
本は糞っていうけどさ
意外と本見るといろんな人の考え方がわかるから楽しいよ
寝転びながら気楽に読めるもの楽しいからね
駆け出しのフリーランスだけど、PHPは技術じゃなく納期までにやり遂げることが大事なんだなと思った
技術なんて二の次
あとは仕事のコネかな?
0228nobodyさん2008/07/27(日) 12:35:46ID:???
うん、ブラックだね。よくわかるよ。
0229nobodyさん2008/07/27(日) 12:38:08ID:???
昨日、ちくわ喰ったら下痢しちゃってさぁ
0230nobodyさん2008/07/27(日) 12:40:06ID:???
> 技術なんて二の次
ここまで素直だと逆に良いと思う
0231nobodyさん2008/07/27(日) 13:18:28ID:???
本を読まないと、時間がいくらあっても足りないよw
0232nobodyさん2008/07/27(日) 13:47:09ID:???
PHP自体を否定する奴は何でこのスレ来てんのさw
0233nobodyさん2008/07/27(日) 13:48:30ID:???
否定するためにだろ文盲か
0234nobodyさん2008/07/27(日) 14:28:29ID:???
日曜日ぐらい休めよw
0235nobodyさん2008/07/27(日) 14:41:36ID:???
毎日がエブリディです
0236nobodyさん2008/07/27(日) 14:43:36ID:???
毎日が日曜日
0237nobodyさん2008/07/27(日) 16:13:41ID:???
日曜日が毎日
0238nobodyさん2008/07/27(日) 16:32:39ID:um099hpf
PHP初心者ですが、ここのソースってコピペしても上手く実行されません。

http://www.phppro.jp/school/phpschool/vol6/2

文末に訂正文が書いてあるけど、コードは訂正されてないままですか?

120) { $error_message[] = "年齢は1才から120才の範囲で入力してください。。。以降がそのままブラウザにテキスト表示される。
0239nobodyさん2008/07/27(日) 16:35:53ID:???
>>238
どううまく実行されないんだ?
0240nobodyさん2008/07/27(日) 16:48:15ID:???
そんなとこのコードなんて参考にすんな
0241nobodyさん2008/07/27(日) 16:58:17ID:um099hpf
>>239

こんな感じえす
ttp://uproda.2ch-library.com/src/lib041728.jpg

インプットフォームには以下が表示されてます

<?php print(htmlspecialchars($age, ENT_QUOTES)); ?>
0242nobodyさん2008/07/27(日) 17:00:58ID:???
>>241
俺のはうまくいった
どっかで全角入ってる&エラー非表示とかじゃない?
0243nobodyさん2008/07/27(日) 17:03:51ID:???
って良く見たらURLが.htmになってるんだが
htaccessでhtmでPHPが使えるように設定してあるのか?
基本的にPHPは.phpじゃないと動かないぞ
0244nobodyさん2008/07/27(日) 17:04:19ID:???
>>241
PHP自体が動く環境になってないじゃんw
0245nobodyさん2008/07/27(日) 17:08:05ID:um099hpf
>>243-244
XAMPPで自動設定してくれてるものと思ったのでインスコしてそのままでs。
というか、拡張子php変えたら動きましたorz

いらん手間かけさせてごめんなさい。
0246nobodyさん2008/07/27(日) 17:16:46ID:???
XAMPPなんか使ってるから・・・
0247nobodyさん2008/07/27(日) 18:23:06ID:???
XAMPPとかって問題じゃないだろ、これはw
0248nobodyさん2008/07/27(日) 18:28:18ID:???
ふーむ。phpをやる気はあるのかよwwwwwwww
0249nobodyさん2008/07/27(日) 18:28:25ID:???
なんで?
0250nobodyさん2008/07/27(日) 18:28:55ID:???
>>249>>247宛ね
0251nobodyさん2008/07/27(日) 19:01:26ID:???
.htmで動くようにするって話で、環境構築方法は関係ないと思うが
0252nobodyさん2008/07/27(日) 19:30:23ID:???
htmで動くようにすることそのものが環境構築方法じゃねぇかw
0253nobodyさん2008/07/27(日) 21:37:56ID:???
いや、XAMPPは最低限のPHPの開発環境を整えるもんだろ
.htmでPHPを動かすのは特殊だからまた別途で設定するのが普通だろ
それをXAMPPをあーだこーだ言うやつってなんなの?頭悪いの?
それとも何か?デフォルトで.htmでPHPを動かせるように設定しろってのか?
そっちのほうが特殊すぎるだろ、アホじゃねーの
0254nobodyさん2008/07/27(日) 21:49:05ID:???
普通の方法だと拡張子の設定は当然自分で意識してやるじゃん。
.htmをphpで動かしたければ自分でそうする。
しかし245はXAMPPを使っていたのでそれをしなかった。
自動で「.htmがphpで動くようになっている」と思っていた。

1.これが「XAMPPのせい」でないとする理由は?
2.「XAMPPを使っていなかったらこんな問題が起きなかった」ことが間違いとする理由は?
0255nobodyさん2008/07/27(日) 22:01:45ID:???
04webserver+pphpが最強だと何度言ったら…
0256nobodyさん2008/07/27(日) 23:15:56ID:???
>>254
知っているから、設定だと思うが
初心者は拡張子設定なんかしない
初期設定のまんまで動かすから、結局同じ
0257nobodyさん2008/07/27(日) 23:43:57ID:???
<IfModule mime_module>
AddType application/x-httpd-php .html
</IfModule>

これで普通は逝ける筈〜
0258nobodyさん2008/07/28(月) 10:58:18ID:apihHBHU
わけあって、PHPで動的にメソッドを定義したいんだけど、できるかな?

class Foo {
function foo { echo "Foo¥n" };
function bar { echo "Bar¥n" };
}



class Foo {
$arr = array('foo'=>'echo "Foo¥n";', 'bar'=>'echo "Bar¥n"');
foreach ($arr as $name=>$body) {
define_method($name, $body);
}
}

のようにしたいんだけど、できますか?
0259nobodyさん2008/07/28(月) 11:45:24ID:???
どういうわけが?
0260nobodyさん2008/07/28(月) 11:55:09ID:???
>>258
動的に作りたい関数を定義したファイルを作る
これをincludeする
使う
定義したファイルを消す(お好みで)
0261nobodyさん2008/07/28(月) 12:42:12ID:apihHBHU
>>260
えー、そんな方法しかないんでしょうか。
それはちょっとなー。
0262nobodyさん2008/07/28(月) 12:43:11ID:???
>>256
普通の手動構築で「初期設定」って何?
0263nobodyさん2008/07/28(月) 12:49:05ID:dgDJYOWr
AというブラウザからBというブラウザを新たに開いて、
Bをボタン等で閉じたときにAを更新するにはどうすればいいでしょうか
宜しくお願いします
0264nobodyさん2008/07/28(月) 12:51:22ID:???
>>263
PHP関係ない。
0265nobodyさん2008/07/28(月) 12:59:05ID:???
>>261
runkit
0266nobodyさん2008/07/28(月) 13:12:06ID:apihHBHU
>>265
うひょー なにこれ、すげー
ありがとうございました
0267nobodyさん2008/07/28(月) 17:03:07ID:???
>>258
> わけあって、PHPで動的にメソッドを定義したいんだけど、できるかな?

名前が変だがオーバーロードを使う。


あるクラスのメソッドを呼び出したとき、
そのクラスにメソッドがあれば、通常通り呼ばれ(当たり前)
そのクラスにメソッドがなければ、エラーになる前にコールバックが呼ばれる。

そのコールバックで処理をすれば、あたかもクラスにメソッドがあるかのよう。
0268nobodyさん2008/07/28(月) 19:08:40ID:???
>>267
>そのクラスにメソッドがなければ、エラーになる前にコールバックが呼ばれる。
ここをくわしく
0269nobodyさん2008/07/28(月) 20:06:08ID:???
つマニュアル
0270nobodyさん2008/07/28(月) 21:48:41ID:???
全部Python化完了。スッキリしたぁ。
0271nobodyさん2008/07/28(月) 22:47:14ID:???
PHP作るの手伝ってくれる方いませんか?
0272nobodyさん2008/07/28(月) 22:49:09ID:???
いいよ
■ このスレッドは過去ログ倉庫に格納されています