【PHP】下らねぇ質問はここに書き込みやがれ 56
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2007/10/11(木) 17:55:41ID:uObe69hrPHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 55
http://pc11.2ch.net/test/read.cgi/php/1191058556/
◆質問する時の注意
・ sage進行(メール欄にsageと記入すること)「sage進行」とはスレを目立つ上部に上げないことによって、荒らしが発見できないようにすることです
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
・ 書き込むときには、「公式マニュアル、リファレンス本は読みました」と明記すること
(でないと、公式マニュアル読めと煽られます)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
・質問者が「公式マニュアル読んだ」と書いていないからといって、
公式マニュアルに書いてもいないのに、公式マニュアルよめと適当なことを言わないこと。
質問者は公式マニュアルを読んでいるかもしれない。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0377nobodyさん
2007/10/18(木) 00:48:49ID:???他人のことだから、あれだけど、そういう驕り昂ぶった態度が、
日本信号のような事故を招くんだよ。気をつけてね。
0378nobodyさん
2007/10/18(木) 00:50:24ID:vC0YRi3Pおまえ、なにをひとりで偉そうなんだ?
0380nobodyさん
2007/10/18(木) 00:52:49ID:???0381nobodyさん
2007/10/18(木) 00:54:58ID:???いや別に偉そうに言っているわけじゃないよ。
ただ、この業界、悦に入っている奴が多く独善的に失敗するまで気付かない、
いや失敗しても人のせいにして自己防衛に徹する人が多いから、
アドバイスをしただけだよ。大失敗する前に気付こうね。
0384nobodyさん
2007/10/18(木) 01:05:27ID:???まぁ、まだ若いから耳に痛いことを受け入れがたいんだろうね。
俺もそんな時代があったからね。失敗して自らを省みるときがあったら、またおいで。
0385nobodyさん
2007/10/18(木) 01:23:20ID:???まずは鏡を見ろ
周りの同僚はその鏡に映っている勘違い野郎に困り果てているんだ
先輩のお前ならどうしたらいいと思う?
0386nobodyさん
2007/10/18(木) 01:40:20ID:???そうやって、すぐ攻撃的になるのが若いんだよ。
歳が若いというより脳が若いといった方が正確かもしれないが。
もっと冷静に自分を見つめ直しなさいね。秋の夜長、考える時間はいくらだってあるぞ(笑)
0387nobodyさん
2007/10/18(木) 01:46:37ID:???0388nobodyさん
2007/10/18(木) 01:59:05ID:???亀父ってインパルス堤下にソクーリだよな
0389nobodyさん
2007/10/18(木) 01:59:57ID:???http://headlines.yahoo.co.jp/hl?a=20071017-00000139-jij-bus_all
0390nobodyさん
2007/10/18(木) 02:10:50ID:???0391nobodyさん
2007/10/18(木) 02:19:39ID:fFRrKZqA<?php
echo "<a href'".$_SERVER['script_name']."?food=apple'>好きな食べ物はりんごです</a>";
echo $_GET['?'];
?>
0392nobodyさん
2007/10/18(木) 02:21:35ID:???0393nobodyさん
2007/10/18(木) 02:25:26ID:???すげえレベル低そうな専門 or DQN大学だな
0394nobodyさん
2007/10/18(木) 02:33:25ID:???話はそれからだ
0395nobodyさん
2007/10/18(木) 02:34:31ID:???| ノ\ ヽ |
/ ●゛ ● | |
| ∪ ( _●_) ミ j
彡、 |∪| | >>391
/ ∩ノ ⊃ ヽ
( \ / _ノ | |
.\ “ /__| |
\ /___ /
0396nobodyさん
2007/10/18(木) 02:37:42ID:???俺も英語の大学だったがCの初歩やらされたし似たようなもんだと思うが。
で本題だが、宿題をきくんじゃねーよ。
0397nobodyさん
2007/10/18(木) 02:40:58ID:hsdJKY1+もともとそういうためにclassはあるんでしょうか?
オブジェクト指向は知らないんですがclassでglobalみたいなことができる程度の知識はあります。
$hoge;
function Hoge() {
global $hoge;
}
class Hoge {
0398397
2007/10/18(木) 02:42:01ID:hsdJKY1+class Hoge {
var $hoge;
function Hoge() {
$this->hoge;
}
}
こんなかんじですよね?
0399391
2007/10/18(木) 02:55:24ID:fFRrKZqAaction
script_name
food
apple
などです。。
まだ入門の授業で初歩的な事とは思うのですが…。先生が不親切なんでサッパリです。
どうぞ宜しくお願いします。
0401nobodyさん
2007/10/18(木) 03:09:55ID:???深夜に変な粘着が住み着いているんじゃねーか。
それもいつも決まった2人か3人のキモいやつだと思うんだが。
0402nobodyさん
2007/10/18(木) 03:18:26ID:???>>400の言ってる通りなんだけどエスケープ処理とかちゃんとやらないと。
というかそもそもhtmlがおかしいし・・・
<?php
echo "<a href=\"{$_SERVER['PHP_SELF']}?food=apple\">好きな食べ物はりんごです</a>\n";
echo $_GET['food'];
?>
見るからにviewなので、こういうのはhtmlに埋め込んで書くのがわかりやすい。
<a href="<?php echo $_SERVER['PHP_SELF']; ?>?food=apple">好きな食べ物はりんごです</a>
<p><?echo $_GET['food']; ?></p>
このスクリプト名がhoge.phpだとすると、やっていることは、
<a href="hoge.php?food=apple">好きな食べ物はりんごです</a>
これをクリックすると、hoge.phpにGETメソッドで変数foodにappleという値を入れたのが送信される
これは$_GET['food'] = "apple"と表すことが出来る。
0403nobodyさん
2007/10/18(木) 03:29:33ID:9nEaD6jD何か簡単な方法ないでしょうか。
0404nobodyさん
2007/10/18(木) 03:30:46ID:???>もともとそういうためにclassはあるんでしょうか?
違います
>globalを使いたくないのですが、そのためだけにclassを使うのはおかしいですか?
何をどう使うかは君の自由だが、忠告しておくなら「無意味だからやめとけ」
0406nobodyさん
2007/10/18(木) 04:45:13ID:???レスありがとうございます。
書き込み前に、headerだけ送ってみたのですがうまくいかず
ttp://www.avoidnote.com/archives/2005/07/modified_since.php
を参考にさせてもらったのですが、
HTTP headerで確認すると、最初はIf-Modified-Since: xxxxx GMT
と出るようになりました。キャッシュ後は、HTTP/1.x 304 Not Modified になってます。これでいいのかな?w
実はサイトも動的なのですが、rssも動的で
ttp://feedanalyzer.com/
で見るとIf-Modified-Sinceがどうたらこうたら言われてたので作業してました。
お騒がせしました。
0407nobodyさん
2007/10/18(木) 05:19:55ID:9nEaD6jDキャッシュ後もHTTP/1.x 200 OK
となってます。うん。。
0408nobodyさん
2007/10/18(木) 06:05:37ID:4uVZrR94いつも$_SESSIONに、当たり前のように保存しているのですが、
トランザクション単位でセッションって保証されているのでしょうか?
たとえば、セッション変数をAとBを設定しても、
取り出すときに、Aだけ取り出せないとかありますか?
セッションも実体はファイルで実装されていたような気がするのですが、
もしそうだとすると、ファイルが壊れたときなどのときに、
トランザクション内で不整合が生じる場合もありえるのかと思いました。
phpに限ったことではないのですが、今回高額の金額を扱うシステムなので、
少し不安です。ご教授お願い致します。
0409408
2007/10/18(木) 06:34:50ID:4uVZrR94例えば、A画面からB画面へ遷移する場合に、
A画面から送られたデータを
$_SESSION["A"]="a";
$_SESSION["B"]="b";
とMODELクラスでセットした後、
B画面を表示するときにVIEWクラスで、
$x = $_SESSION["A"];
$y = $_SESSION["B"];
とセッションから取り出したときに、
$yは"b"と入っているのに、$xは""だったみたいなことってありますでしょうか?
というのが質問の趣旨です。
もし、その可能性があるとすると、トランザクション単位で全ての変数の有効性をチェックしてから
でないと、取得した値を使うのはまずいのかなぁと思っています。
宜しくお願いします。
0410nobodyさん
2007/10/18(木) 06:51:24ID:+ZcK0GoEif ( id > 2147483647 ) // エラー
0411nobodyさん
2007/10/18(木) 08:24:26ID:???そうやって、スルーできないのが年寄りなんだよ。
歳がいってるというより頭が固いといった方が正確かもしれないが。
もっと冷静に自分を見つめ直しなさいね。先は短いから、考える時間ももう少ないぞ(笑)
#冷静さを装っているけど、ぜんぜん冷静じゃない>>386(笑)
0412nobodyさん
2007/10/18(木) 09:06:26ID:dUvBQY0o使用したいのですがどのようにしたらいいのでしょうか?
PHPは4.4.7を使用しています
以下現状
class test{
function test(){
}
function output(){
ob_start("collback");
echo "おはよう。<!--{aaa}-->";
ob_end_flush();
}
function collback($buffer){
$ary1 = "<!--{aaa}-->";
$ary2 = "フェルプス君";
return str_replace($ary1,$ary2,$buffer);
}
}
$hage = new output();
$hoge->output();
0413nobodyさん
2007/10/18(木) 09:33:06ID:???function test(){}
function output() {
ob_start(array($this, "collback"));
echo "おはよう。<!--{aaa}-->";
ob_end_flush();
}
function collback($buffer) {
$ary1 = "<!--{aaa}-->";
$ary2 = "フェルプス君";
return str_replace($ary1,$ary2,$buffer);
}
}
$hoge = new test();
$hoge->output();
0414nobodyさん
2007/10/18(木) 09:53:40ID:dUvBQY0oできました
ありがとうございます
0416403
2007/10/18(木) 10:37:17ID:9nEaD6jDttp://www.avoidnote.com/archives/2005/07/modified_since.php
でIf-Modified-Sinceが使えるように追加したのですが、
session を使ってるのですが、なんどブラウザーをリロードしても304が返ってこず200のままです。
//session_start(); としみると、304が返ってくるのですが。
sessionを使ってると仕方ないのでしょうか?
idは変数です。$idです。間違えました。
1以上の整数が入るはずなのです。
MySQLのInteger型になってるです。
autoincrementされるのです。
0418nobodyさん
2007/10/18(木) 11:34:35ID:mbbw0WwDtestlogという200行のデータが書き込まれたログファイルがあります。
$start = 20;と、$end = 50;という変数をあらかじめ設定し、
testlogの20行目から50行目までの内容を、printlogという別ファイルに
保存するには、どのようにすれば良いでしょうか。
0419nobodyさん
2007/10/18(木) 11:48:12ID:vnSZjWJQフォームで入力されたテキストボックスの値を
送信後も残すにはどうすればいいでしょう?
運用はテキストボックスのキーワードで、あるデータを検索して、
そのテキストボックスの下に、結果を表示するようにしています。
絞込みが必要になると何度も検索するのですが、
テキストボックス内の文字が毎回消えてしまうのが不便です。
テキストボックスの値を受け取ったPHPから
テキストボックスに書き出せればよいと思うのですが、
方法がわかりません。
0421nobodyさん
2007/10/18(木) 11:53:30ID:???200行読込んで20〜50行だけを別ファイルに書出せばいいんじゃね
その内容の質問で何を答えて欲しいのかと・・
>>419
>テキストボックスの値を受け取ったPHPから
<input type="text" name="hoge" value="受取った値" />
でいいんじゃね
難しく考えるな 思ったようにやってみる これ大事
0422419
2007/10/18(木) 12:16:39ID:???即答ありがとうございます。
a.phpファイルの構成はこうなってます。
<form action="a.php" ---
<input type="text" name="key" size="20" value=” ??? ”> ← ??? に $_POST["key"] を入れる方法はうまくいきません。
</form>
<?php
← この中でなにかせよということでしょうか?
?>
0423nobodyさん
2007/10/18(木) 12:27:27ID:???><input type="text" name="key" size="20" value=” ??? ”> ← ??? に $_POST["key"] を入れる方法はうまくいきません。
<input type="text" name="key" size="20" value=” <? echo $_POST["key"]; ?>”>
次からはマニュアル嫁よ
0424nobodyさん
2007/10/18(木) 12:36:12ID:???文字化けの解消について質問です。
テンプレート使ってて、テンプレートに渡す為に全ての変数を
配列で一括して一つの変数に収めているのですが、
携帯用に文字コードを一括でSJISに変換すると
一部分だけ(他はちゃんと変換されている)変換されなくて困ってます。
仕方ないので、foreach使って中身を一つずつ変換・・・とか、
一度あえてEUCにしてから変換・・・とかもやってみたのですが、
その部分だけがどうしても文字化けしています。
どうしたら解消できるでしょうか?
0425424
2007/10/18(木) 12:37:46ID:???0428nobodyさん
2007/10/18(木) 13:01:45ID:???$fin = @fopen("testlog", "r");
$fout = @fopen("printlog", "w");
$start = 20;
$end = 50;
$n = 1;
while (!feof($fin)) {
$line = fgets($fin);
if($n >= $start && $n <= $end)
fwrite($fout,$line);
$n++;
}
fclose($fin);
fclose($fout);
0429nobodyさん
2007/10/18(木) 14:04:16ID:pYJCyy1zFrom: ・・・・
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-2022-JP
Content-Transfer-Encoding: 7bit
こういうヘッダのようなものが付加されるんですが、いったいどうしてでしょうか?
0430nobodyさん
2007/10/18(木) 14:08:07ID:???自動的に付加されるようにmb_sendmailがそうなってるんじゃね?
嫌なら「mail()」使え、設定も自分でな
0431nobodyさん
2007/10/18(木) 14:18:04ID:pYJCyy1zヘッダとして付加してくれるならありがたいんですが、
メールの本文に出力されてしまってるんですよ・・・。
こういうものなんですか??
0433nobodyさん
2007/10/18(木) 14:23:06ID:???違うと思うぞ
mb_send_mail に一致する日本語のページ 約 9,360 件中 1 - 30 件目 (0.28 秒)
0434nobodyさん
2007/10/18(木) 14:23:35ID:???の$bodyと$headerの間のカンマがドットになってたりしない?
0435nobodyさん
2007/10/18(木) 14:32:20ID:pYJCyy1zToに改行が含まれてて、それが原因みたいでしたorz
0436403
2007/10/18(木) 15:31:29ID:9nEaD6jD0437397
2007/10/18(木) 15:32:10ID:hsdJKY1+遅くなりましたがレスありがとうございます。
globalは使わないほうがいいと(スパゲティになったり外部から書き換えられる危険性があるとかなんとか)
いくつかのページで書いていたのですが、
それでもglobal(もしくは$GLOBALS)は普通に使われているものなのでしょうか?
外部から書き換えられないといえばOOPのカプセル化という言葉が思いつくのですが、
それでclassを使ったほうがいいのではないかな?と自分の中では思ってました。(OOP知らないんですけどね・・)
0438nobodyさん
2007/10/18(木) 15:46:45ID:???0439nobodyさん
2007/10/18(木) 15:51:14ID:OvH6obTW$iが50文字以上場合のときに処理する場合はifでしてますけど、
switchですることは可能でしょうか?
switch ($i){
case ($iが50以上の場合): break;
default:
}
この場合、caseで比較するときは、===のみの比較なんですか?
0440nobodyさん
2007/10/18(木) 16:15:13ID:???==と同じ
>>436
あてずっぽで答えてあれなのだが
session.cache_limiterあたりが影響してるんじゃ?
0441nobodyさん
2007/10/18(木) 16:20:45ID:???何をしたいんだか何をいってるんだかよくわからない
とりあえずifでできることは基本的にswitchでもできる
===ってのは型の比較まで行う演算子
$iが50文字っていうのが謎
switchの中では50以上の場合と書いてるし
文字列の長さ(strlen)なのか数値なのかはっきりしてほしい
0442nobodyさん
2007/10/18(木) 16:36:17ID:???0443nobodyさん
2007/10/18(木) 16:38:01ID:???0445nobodyさん
2007/10/18(木) 17:15:34ID:ELaqevO/シングルクォート→? とエスケープして
$value = strtr( $value, array_flip( get_html_translation_table( HTML_SPECIALCHARS, ENT_QUOTES) ));
その後、戻す処理は ?→'
シングルクォートだけ取り残されてしまうのですが
なぜ039 39と違う表記にズレているのでしょうか?
php4環境で、元に戻す方法がおかしいでしょうか?
0446nobodyさん
2007/10/18(木) 17:15:55ID:???俺も気になったのでやってみたらデキタ
$dispMode = 0;
if (isset($_GET['mode'])) {
$dispMode = intval($_GET['mode']);
}
switch ($dispMode) {
case (10 < $dispMode) :
echo '10ue';
break;
case 5:
echo '5';
break;
default:
echo 'oth';
break;
}
0447nobodyさん
2007/10/18(木) 17:16:44ID:ELaqevO/シングルクォート→&#039;
戻す対象
&#39;→'
0448nobodyさん
2007/10/18(木) 17:38:20ID:???0449nobodyさん
2007/10/18(木) 17:47:09ID:???0450nobodyさん
2007/10/18(木) 18:05:45ID:???0451nobodyさん
2007/10/18(木) 18:46:24ID:???むむ、確かに動くな。
こんな仕様あったんだっけ。
foreach(array(1,2,3,4,5,6,7,8,9,10) as $dispMode) {
echo "$dispMode: ";
switch($dispMode) {
case (5 > $dispMode) :
echo "0-4\n";
break;
case (5 < $dispMode && $dispMode < 10) :
echo "6-10\n";
break;
case 5:
echo "5\n";
break;
default:
echo "other\n";
break;
}
}
実行結果:
1: 0-4
2: 0-4
3: 0-4
4: 0-4
5: 5
6: 6-10
7: 6-10
8: 6-10
9: 6-10
10: other
0452nobodyさん
2007/10/18(木) 18:52:27ID:???0453nobodyさん
2007/10/18(木) 20:02:58ID:???0456nobodyさん
2007/10/18(木) 22:01:11ID:???■[javascript]switch文のcaseは色々なものが書ける
http://d.hatena.ne.jp/ofk/20070627/1182919776
0459nobodyさん
2007/10/18(木) 22:06:51ID:???なんでこのスレって人を見下げたようなレスをする奴がわいて来るんだろうな?
0460nobodyさん
2007/10/18(木) 22:07:48ID:???0462nobodyさん
2007/10/18(木) 22:11:10ID:???0465nobodyさん
2007/10/18(木) 22:13:22ID:???クラスのことを教えたら、
そんなものつかったら可読性が下がるとか
言い出すコボラーですか?w
どんな構文でも適切に使えばいいだけの話でしょう。
0466nobodyさん
2007/10/18(木) 22:15:35ID:???行かないしw
だから、君はまた俺のレスを見ることになるよ。
ぐちぐちいうなよ? お前が消える以外に見ない方法なんて無いんだからw
0468nobodyさん
2007/10/18(木) 22:18:09ID:???0469nobodyさん
2007/10/18(木) 22:19:14ID:???他の言語でこんな書き方して
「動きません」とか「エラーになるんですけど」とか
言われたら正直泣いちゃうかも
0470nobodyさん
2007/10/18(木) 22:19:24ID:???それは、おまえの教えかたがヘタクソなんだよw
人に理解してもらえないからってボロクソに言う前に、
お前がクラスを理解するほうが先なんじゃね?
0471nobodyさん
2007/10/18(木) 22:21:00ID:???>他の言語でこんな書き方して
>「動きません」とか「エラーになるんですけど」とか
まさに>>468がそんな感じだな
定数しか書けないことを知って、だから○○はクソなんだ、とか言いそうw
0472nobodyさん
2007/10/18(木) 22:21:08ID:???あー、あなたのレスは実は、
PHPとあと一つ(?)の言語しか知らずに
「PHPが普通じゃない!」といったら
実は他にもそういう言語があって、
恥をかいたやつを笑っているんだな?w
0473nobodyさん
2007/10/18(木) 22:22:18ID:???メジャーなところでCやJavaやったことある人間なら痛感してるだろ
ここでPHPを執拗に擁護してるのはPHPしかやったことないだけちゃうんかと
0475nobodyさん
2007/10/18(木) 22:23:10ID:???0476nobodyさん
2007/10/18(木) 22:23:25ID:???まあ、現実は、他にも使える言語があるのに、
「だからPHPはクソなんだ。」と言っているやつが
いまここで恥かいているんだけどなw
■ このスレッドは過去ログ倉庫に格納されています