【PHP】くだらねぇ質問はここに書き込みやがれpart3
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
05/02/07 21:47:15ID:???ここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。
次スレは>>970あたりが建てて下さい
・過去スレ
【PHP】くだらねぇ質問はここに書き込みやがれ
http://pc5.2ch.net/test/read.cgi/php/1099322141/
【PHP】くだらねぇ質問はここに書き込みやがれpart2
http://pc5.2ch.net/test/read.cgi/php/1105218084/
0528nobodyさん
05/02/21 19:29:24ID:???なぜインスタンス生成する時に、大概
$foo = & new Hoge();
のように参照渡しするのか教えて頂けないでしょうか?
$foo = new Hoge();
との違いというか、メリット、デメリットがわからないので
どっちで書くべきなのかがわからないのです。
0530527
05/02/21 19:55:30ID:???Location: $xx とやったらうまくいきました。
お騒がせ致しました。
0531nobodyさん
05/02/21 20:51:23ID:???てめー508で何ていったんだ。向いてねーよ。
>>528
参照渡ししとけばメモリも無駄にならないし、
コピーする手間もはぶけるでしょ。
0533nobodyさん
05/02/21 21:57:04ID:???って感じですかね。
値渡しのメリットってないのでしょうか?
なぜPHP4のデフォルトは、参照渡しじゃなかったのだろうという疑問が
残ります。
0534nobodyさん
05/02/21 23:04:04ID:???オブジェクトをコピーしたい時って、あるよね?
デフォルトが値渡しなのは、ほかの整数型とかとの整合性をとったんじゃないの?
または後方互換性とか。
また、ちょっと特殊だが、$thisを書き換えて自分自身を違うオブジェクトに
したい場合、値渡しでなきゃダメだった気がする。
これはthisの性質で、リファレンスとは直接関係はない気がするけど。
0535nobodyさん
05/02/22 13:27:37ID:???mysqlのパスワードがかかれたconnect.inc.phpなどincludeするファイルを
include_pathに置いてそこから呼び出せばスクリプト経由でしかアクセスできない
からより安全。という使い方で間違いないでしょうか?
fopenを使って呼び出す場合の書き方はどのようになるのでしょう?
a.phpをinclude_pathにおいて
fopen("a.php")でよいでしょうか?
すぐに実験できない環境の為教えてください。
0536nobodyさん
05/02/22 14:52:49ID:???include_path = ".:/php/includes"
今のディレクトリにファイルが無かったら/php/includesディレクトリから探してくれ
というふうに解釈している
0537nobodyさん
05/02/22 15:59:38ID:???今はもう見れなくなってますが、以前はMYSQLのパスワードが記述されたファイルが見えてました。
0538nobodyさん
05/02/22 16:05:00ID:???0539nobodyさん
05/02/22 16:48:15ID:???0541nobodyさん
05/02/22 19:51:58ID:???register()を使ってもセッション単位でしか変数を永続化出来ないよう
なのですが、これをmod_php全体から見てグローバルな変数が作りたいです
0542nobodyさん
05/02/22 20:19:57ID:WO7XFPFBインスタンスを生成せずに
クラスを使ってる人いますか?
そんなプログラムの書き方は邪道でしょうか?
0543537
05/02/22 20:28:14ID:???include_pathを使うのはセキュリティ面に配慮してということでよろしいでしょうか?
0544nobodyさん
05/02/22 20:59:44ID:???0545 ◆JA..mLrN7g
05/02/22 21:37:00ID:9e743wBI<?php
$diceA = mt_rand(1,6);
$diceB = mt_rand(1,6);
$diceC = mt_rand(1,6);
$all = $diceA + $diceB + $diceC;
echo "<HTML>\n<HEAD>\n<TITLE>ダイス振り(リロードでもう一度)</TITLE>\n</HEAD>\n<BODY>";
echo "あなたは3D6を振った!<BR>結果は、$diceA + $diceB + $diceC で、$allだ!<BR>";
echo "</BODY>\n</HTML>\n";
?>
#---
↑のスクリプトで実行したら、500エラーが出るのですが、どうすればいいのでしょうか。
意図した結果:
あなたは3D6を振った!
結果は、1 + 2 + 1 で、4だ!
ようするに、3つの6面体サイコロを振りたいわけなのですが。
0546nobodyさん
05/02/22 21:43:29ID:???うわ、いつものクセでCGIの宣言やっちゃってました。orz
ちなみに、それを抜いても同じ結果でした。500エラー。
0548nobodyさん
05/02/22 21:49:07ID:???改行コードは全て試してみました。
残念ながら、全て同じ結果でした…。
0551nobodyさん
05/02/22 21:53:26ID:???print "あなたは3D6を振った!<BR>結果は、{$diceA} + {$diceB} + {$diceC} で、{$all}だ!<BR>";
0552551
05/02/22 21:57:29ID:???print <<<_RESULT_
<HTML>
<HEAD>
<TITLE>ダイス振り(リロードでもう一度)</TITLE>
</HEAD>
<BODY>
あなたは3D6を振った!<BR>
結果は、{$diceA} + {$diceB} + {$diceC} で、{$all}だ!<BR>
</BODY>
</HTML>
_RESULT_;
0553nobodyさん
05/02/22 21:57:35ID:???アスキーで送信しなおしても、同じ結果でした。(改行コードももう一度試しました。)
>>545
それに変えても、同じ結果でした。
何が原因なのかな…
変えましたけど、結果変わらず。
Tabでインデントしちゃダメですか?
ごめんなさい、僕は非常にバカでした。
さくらサーバのライトタイプを使用しているのですが、
PHPはスタンダード以上でないと使用できないそうです。
お騒がせしてすみませんでしたorz
0558nobodyさん
05/02/22 22:05:21ID:???print <<<_RESULT_
_RESULT_
これって何?
たまに見かけるけどよくわからない。
$body=ごにょごにょ;
print $bady;
ってするようなもん?
0559nobodyさん
05/02/22 22:06:00ID:???print $body;
ですスマン
0562nobodyさん
05/02/22 23:08:24ID:???というか、誰か気付いてやれよ、500鯖鰓が出てるってことはCGIモジュールだろ。
パーミッションを705なり、実行権を与えるもんにしろ。
0563nobodyさん
05/02/23 01:01:43ID:???0564nobodyさん
05/02/23 02:10:44ID:3lWUKcoHフォームのデータをPOST変数で受け取るのですが、
入力したテキスト内容(POST変数に格納されている)の全角が文字化けしてしまいます。
なにか設定が間違っているのでしょうか?
お願いします。
0566nobodyさん
05/02/23 09:36:09ID:yBSmZfwsMysqlのデータベースを使っています。その中で商品説明のカラムに重量が
記入されているのを商品IDを元に他のテーブルに抜き取りたいのですが、そんな
ことはPHPでできますか?説明がうまくできていなかったらすみません。
0567nobodyさん
05/02/23 11:13:24ID:???0569564
05/02/23 13:33:09ID:2ladzgdIありがとうございます。
解決しました。PHPの設定ミスでしたorz
0570nobodyさん
05/02/23 13:54:12ID:eVm9jlrT$i=array(1,2,3,4,5,6,7,8,9)
があったとして、これを三つづつ取り出した後に、<br>を入れたいのです
が、どうすればよいかわかりません。お手数ですがアドバイス頂ければと
思います。今は、print(join(",",$i)) とコンマで区切って表示してます。
理想としては、結果を
1 2 3
4 5 6
7 8 9
...
としたいんです。お願いします。助けて下さい・・・
0571nobodyさん
05/02/23 14:09:01ID:???何がしたいのかよーけわからんが、これでも出来るというお話。
全然最適化されているとは思えないけど。
$i=array(1,2,3,4,5,6,7,8,9);
while(list($k,$v) = each($i)){
$count++;
print "$v\n";
$join .= $v;
if($count == 3){
$count = 0;
print "{$join}\n";
$join = "";
}
}
0572571
05/02/23 14:15:59ID:???\n → <br>
としてくれ。
0574nobodyさん
05/02/23 16:05:31ID:???GETで書いておいたほうがよいですか?
0575nobodyさん
05/02/23 16:09:57ID:???POSTで問題になるのは、Vodaの昔の機種だけなので、
全てPOSTで書いて問題なし。
(糞Vodaなんかの事は気にする必要は無し。キッパリ)
0576574
05/02/23 16:59:00ID:???ありがとうございます。どこかでGETで書いたほうがいいみたいなこと読んだんでGETで書いてたのですが
GETで書くとURLが長くなるので気になってました。(私の書き方が悪いのかも。。)
POSTで書き直します。
ありがとうございました。
0577nobodyさん
05/02/23 18:08:00ID:???共有しようと思ってます。
色々方法があるみたいで、
どれにしようか迷ってるんですが、
おすすめは何ですか?
0580nobodyさん
05/02/23 19:37:22ID:gCV2DQApmod_php なのか CGI php なのかを
見分ける方法を教えてください
0581nobodyさん
05/02/23 19:58:30ID:???shebang(#/usr/bin/phpのこと)が必要か不要かを鯖のサービス説明やFAQに書いてあるだろうから、
そっから判断するのじゃ駄目?
0582nobodyさん
05/02/23 20:11:01ID:???セキュリティがらみで、サーバーモジュール→CGIに変更するところも多いし、
phpinfoの出力が見えるようにしてあっても、貴方が実際に使うサーバの設定と
イコールとは言えないのでので現状でどうなってるか、
ハッキリした事は直接訊くべき。
0583nobodyさん
05/02/23 20:36:22ID:???パーミッションはめんどいけど
0584nobodyさん
05/02/23 20:39:25ID:dzVQVqEGphpで同じように処理させるには
どのように書けばいいのでしょうか?
eval {
local $SIG{ALRM} = sub { die "OK" };
alarm 3;
〜処理〜
alarm 0;
}
alarm 0;
if ($@ =~ /OK/) { die "成功"; }
0585nobodyさん
05/02/23 20:55:14ID:???〃∩ ∧_∧
⊂⌒( ´・ω・)くぜんぶマニュアルに書いてあったでつ
`ヽ_っ⌒/⌒c ttp://www.php.net/manual/ja/ref.pcntl.php
0587nobodyさん
05/02/23 21:27:50ID:???0589nobodyさん
05/02/23 23:05:57ID:???全てのPHPファイルをUTF-8にしてincludeすると、各ファイルのBOMがロードしたページに漏れなく付いてきます。
これはUnicodeを使うならUTF-8N以外にないってことでしょうか。
0592nobodyさん
05/02/24 02:05:13ID:???名前が思い出せない。布だったかそんな名前で、トレイに常駐してる、白いアイコンのやつ。
探してます。
0594nobodyさん
05/02/24 14:56:48ID:???// URLからホスト名を得る
preg_match("/^(http:\/\/)?([^\/]+)/i",
"http://www.php.net/index.html", $matches);
$host = $matches[2];
// ホスト名の最後の二つを得る
preg_match("/[^\.\/]+\.[^\.\/]+$/",$host,$matches);
echo "ドメイン名: ".$matches[0]."\n";
マニュアルのpreg_matchからですが、上記のスクリプト中に出てくる
「^」や「?」や「+」や「$」はなんとか演算子ってヤツですか?
それぞれどんな意味と、役割があるのでしょうか?
またなぜ2つ目のpreg_match()はパターンを()ではなく[]で囲ってるのでしょうか?
それとマニュアルに載ってますか?
>それとマニュアルに載ってますか?
とりあえずマニュアルを読め。
話はそれからだ。
0596nobodyさん
05/02/24 15:23:52ID:???もちろん演算子のページは読みましたよ。
ココでいいですよね?
http://jp.php.net/manual/ja/language.operators.php
これを読んでも理解できません。ただ、結合させるって意味なんでしょうか?
0597595
05/02/24 15:41:21ID:???OK、では聞くときには「なんとか演算子」とかじゃなくて、
自分が思ったのでいいから具体的に書いてくれ。
じゃないと「何がわからないのか」がわからんので。
で「マニュアルに載ってますか?」と聞かれると「マニュアル見てないの?」となるので
マニュアルは見たけど見つからない、それっぽいのは見つけたけど意味がわからない、とちゃんと書いてくれ。
「情報は小出しにしない」というのが暗黙のルール。
で、上でおまいさんが聞いている記号は「メタ文字」と言って、正規表現の話。
「php 正規表現」とかでググれば色々出てくると思われ。
例えば
ttp://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/php_k09.htm
とかな。
正規表現について詳しく知りたかったら
正規表現道場@2ch Part4
http://pc5.2ch.net/test/read.cgi/php/1105930285/
とかで過去ログ読んだり質問したりしる。
まあガンガレ。
0598nobodyさん
05/02/24 15:56:09ID:???ttp://jp.php.net/manual/ja/pcre.pattern.syntax.php
0600nobodyさん
05/02/24 16:37:52ID:???オブジェクト指向に慣れ親しんでるからver5が良さげなんですが、現在の主流や将来性を考えると今からPHPを学ぶとした場合、Ver4と5のどちらが良いんでしょうか?
0602nobodyさん
05/02/24 18:36:51ID:S+cLCUGyつまり、
$inv = 5 なら、aaaaa
ループ以外にやり方ないでしょうか?
0603nobodyさん
05/02/24 18:43:29ID:???・賛成
・反対
のradioボタンで選択させ、反対票だけ2倍にカウントするには
どうしたらいいんでしょうか?
0605nobodyさん
05/02/24 19:29:46ID:???0606nobodyさん
05/02/24 19:31:46ID:???http://jp2.php.net/manual/ja/function.str-repeat.php
0608nobodyさん
05/02/24 21:02:37ID:???そんな某国の情報操作みたいなことはヤメレ
0611nobodyさん
05/02/24 23:19:05ID:???0612nobodyさん
05/02/24 23:35:47ID:sdrJy1MC0613nobodyさん
05/02/25 00:07:01ID:???<?php
$DATFILE = 'hoge.dat';
if($_GET['msg']){
$fp = fopen($DATFILE,'a');
fwrite($fp,$_GET['name'].' says:'.$_GET['msg']);
fclose($fp);
}
print_r(file($DATFILE));
exit;
?>
0615nobodyさん
05/02/25 00:53:28ID:VA4tKjSS0617nobodyさん
05/02/25 01:54:56ID:???header('Content-Type: text/plain');
入れとかなきゃデフォルトだとhtml扱いされて(+д+)マズー
0618nobodyさん
05/02/25 02:02:40ID:???検索して検索結果が表示されてそのページ内の個々のデータを
見てブラウザの戻るボタンで前に戻ろうとすると
「警告 : ページの有効期限切れ」が表示されます。
Javascriptのhistory;back()でも同じ状態になります。
これを回避して検索結果の状態に戻す方法は無いのでしょうか?
0619nobodyさん
05/02/25 02:33:32ID:???別にブラウザのキャッシュを表示しても構わないようなものなら
静的なhtmlにすればいいような気がするけど。
header() で Cache-Control: とか設定すればよかった気がする。
httpのRFCを読むなりしてそれらしいヘッダがあれば設定してみれば?
0620nobodyさん
05/02/25 02:41:50ID:???ブラウザのキャッシュに戻れた方がいいのかな。
google は確か検索結果をキャッシュするようにしてたから、
telnet google.co.jp 80 してみて、それらしいヘッダを設定する手もあると思う。
0621618
05/02/25 12:32:03ID:???いや、検索結果というのは自身で作成したプログラムです。
例えば会員検索のPHPプログラムがあったとして
検索フォーム(HTML)→検索結果(PHP)→詳細情報(PHP)→
検索結果に戻る→有効期限切れエラー
やはりブラウザに依存するんですかね。。
0622nobodyさん
05/02/25 12:49:33ID:???ここをmethod="get"にしたらどう?
0624nobodyさん
05/02/26 00:15:54ID:DKGm/bS1ことになったのですが、sessionに保存できる上限値みたいな
ものはあるのでしょうか。
昔Perlでcookieを使っていたとき、一つのキーに3000バイト
くらい入れたら500エラーが出たことがあるので、質問させて
いただきました。
サーバサイドで持つものなので大目に取れるのではとは
思っておりますが、ご教示いただけますと幸いです。
0625nobodyさん
05/02/26 02:37:43ID:???Lovemorgue.orgで使われてる右側のメニューのモジュールは
なんですか?
0627nobodyさん
05/02/26 06:16:31ID:???実装上の制限はあるかも知れないけど、100程度だったら問題無いんじゃないの?
心配ならphpのソースコードを見てみれば良いかと。
cookieに関しては、RFC 2109(新しいものが出てるかも知れない)の
6.3 Implementation Limits に、
at least 4096 bytes per cookie の一文がある。
■ このスレッドは過去ログ倉庫に格納されています