【PHP】下らねぇ質問はID出して書き込みやがれ 107
■ このスレッドは過去ログ倉庫に格納されています
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 105
http://hibari.2ch.net/test/read.cgi/php/1304064660/
◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0721nobodyさん
2011/06/25(土) 17:45:16.68ID:???0722nobodyさん
2011/06/25(土) 17:47:24.15ID:???// 注意: E_STRICT が有効な場合、次の行で警告が発生します
と警告されてしまいました。正式な方法でクラスの中のメソッドに直接アクセスするにはどうすれば良いのでしょうか
0723nobodyさん
2011/06/25(土) 17:48:46.30ID:???0724nobodyさん
2011/06/25(土) 17:51:16.16ID:ALxmGxKIうーん、かっこいいけど一瞬で表示されてるのでわからないです
lifhackerとかアクセスするとまず左上のロゴの辺りが表示されて、それからどんどん他のコンテンツも表示されて、
みたいな、スクロールバーがどんどん小さくなるあの感じ。。。
僕のページは何も工夫が無いからか少し真っ白の画面で待ってから全てがバッて表示されるの。
説明下手すぎて泣いた
>>711
PHP PEARというライブラリ使うとできるんですか?ちょっと試してみます・・・・
0725nobodyさん
2011/06/25(土) 17:52:14.76ID:qLdraW+2失礼しました・・。
0726nobodyさん
2011/06/25(土) 18:14:09.74ID:???コード出さないとなんともいえないけど
違うとこで警告でてるんじゃね?
static修飾子つけてクラスメソッドにしてるなら
その呼び方は普通にできる
インスタンスメソッドでもメンバ変数を使っていないなら
その呼び方が可能
0727nobodyさん
2011/06/25(土) 18:29:24.36ID:qLdraW+2それでした。低レベルな質問ごめんなさい・・・
0728nobodyさん
2011/06/25(土) 20:24:58.32ID:P4/ddFrn規模としては、ごくシンプルなブログといった感じです。
CakePHPを使って構えて開発するような規模のサイトではなく、
レスポンスのスピードも優先させたいので重いフレームワークは使いたくありません。
しかし今時フレームワーク無しの開発というのも不安があります。
こういった場合、どのような開発方法が良いでしょうか。
最近あまり聞かないですが、シンプルなSmartyを使うというのも選択肢としてアリですか?
アドバイスを頂けると嬉しいです。よろしくおねがいします。
0729nobodyさん
2011/06/25(土) 20:28:03.64ID:???オープンソースだし改造も出来る。
0730nobodyさん
2011/06/25(土) 20:41:54.73ID:???0733nobodyさん
2011/06/25(土) 22:34:50.10ID:???個人的なものなら無理にフレームワーク使う必要ないんじゃ?
俺はSmarty嫌いじゃない。嫌う人多いけどね。
シンプルなブログならSQLとAjaxでそれなりに高速だよ
もちろんサーバーによるけどね
0734677
2011/06/26(日) 03:20:03.64ID:???遅くなりましたが、レスありがとうございます。
いきなりフレームワークは敷居が高そうではありますが、
サイトを拝見したところ解説なども充実してそうだったので検討させていただきます。
また、非推奨のアプリケーションも教えていただいてありがとうございます。
海外の掲示板でも同じような質問をしている人がおり、そこではphpBBやoscommerceはやめておけという意見などがありましたが、
学習用の手頃な規模のアプリケーションというのは見つかりませんでした。もうしばらく情報収集してみたいと思います。
0735677
2011/06/26(日) 03:21:26.94ID:???基礎学習を疎かにして良いなどとはもちろん思わないのですが、
マニュアルに書かれている内容やサイトで紹介されているTipsなどがアプリケーション全体において
どのように反映されるのかを知りたいという需要は無いものなのでしょうか。
身近に熟練した人がいて正しいコーディングスタイルを学べる環境にある人は良いと思うのですが、
自分の教育者が正しいスタイルを持っていなかったり、独学で学んでいる人にとっては
何かしら模範となる学習用のアプリケーションがあっても良いのになと思った次第です。
(「まずはこれを見ろ」というモノがあれば、基本的なセキュリティホールを作ってしまったり、
スパゲティコードを書いてしまったりということは減るのではないかと思うのですが・・・)
他にもご意見くださった方ありがとうございました。
0736nobodyさん
2011/06/26(日) 03:27:28.29ID:???「美しく機能的なコード」を読んだら?
もちろんスパゲッティコードになるかも知れないけど、
自前のコーディングの不安さや物足りなさを経験したあとの方が
効率的で安全なコーディングの良さを深いところまで理解できるんじゃないかとおもうが
0737nobodyさん
2011/06/26(日) 03:34:02.74ID:???基礎的な知識を完全に身に付け、自分である程度のシステムを開発したことがある人が
いわば総仕上げ的な意味合いで行う勉強方法であって、
初心者がソース見て勉強しても身にならない所か悪影響を及ぼすぞ。
ましてや、がむしゃらに吸収する人ならまだしも、手を動かす前に口を動かしてしまう人にはまず向かない。
0738nobodyさん
2011/06/26(日) 03:50:56.46ID:???C++ / VB.net / C# / PHP / Perl / Cshell...etc
色々やったがどうしても Python の変な記述文法が好きになれない。
0739nobodyさん
2011/06/26(日) 07:12:19.24ID:???変な記法ならVBのほうが上でしょうに
0740nobodyさん
2011/06/26(日) 07:15:30.66ID:???0741nobodyさん
2011/06/26(日) 07:32:21.77ID:???どうせWeb特化でない言語で書くなら、高速なCか
Perlみたいな文字列処理が楽に書ける言語で書きたいな
シェルでCGIってのはPerl/CGIが流行るより昔には実際に行なわれてたらしいな…
0742nobodyさん
2011/06/26(日) 09:38:47.69ID:/pJHPvpJ…というより、半角記号とスペースを禁止にしたいんですが、どう書いたら良いでしょうか?
ttp://ref.layer8.sh/ja/entry/show/id/1121
調べていてこのページを見たら、
半角記号を削除して表示する
echo preg_relace('/[\@-\/]/i', '', 対象文字列);
と書いてありますが、これだと<とか>とか?のチェックが出来てるのかなと
疑問なのですが…
0743nobodyさん
2011/06/26(日) 10:08:39.20ID:???0744nobodyさん
2011/06/26(日) 10:26:03.47ID:???質に不満を感じるならASCIIコード表から必要な文字を抽出すればいいんじゃないかな
http://www.ascii-code.com/
0745nobodyさん
2011/06/26(日) 10:41:46.19ID:???キミは、数学を学ぶ前から、数学が社会で何の役に立つの?って文句言うクチかい?
>マニュアルに書かれている内容やサイトで紹介されているTipsなどがアプリケーション全体において
>どのように反映されるのかを知りたいという需要は無いものなのでしょうか。
これはまぁ、そうかもしれん。
数学の喩えを引くと例えば「積分に関しては○○先生の××って書籍が分かりやすい」とかいうのはあるとおもうが、PHPに関してもそういうのがあってもいいと思う。
だが、そういうものが刊行されたりするには、数学に比べてずいぶんと歴史が浅いと思わんかね?
数学にしたって、数千年の歴史があるにもかかわらず、万人がコレだ!って薦めてる本って無いだろ?
0747nobodyさん
2011/06/26(日) 11:11:27.88ID:???0749nobodyさん
2011/06/26(日) 12:39:09.90ID:???0750nobodyさん
2011/06/26(日) 12:46:42.35ID:???0751nobodyさん
2011/06/26(日) 12:47:27.15ID:???やるならJavaとかCと似てない奴やれよ
0752nobodyさん
2011/06/26(日) 14:13:29.05ID:Yv8I1zOTwhile(1){
print2(file_put_contents("test.txt",date("H:i:s.u")."<br>\n",FILE_APPEND | LOCK_EX));
sleep(1);
}
としたら1分以上も動きつづけています。30秒で終わるのかと思ってた
0753nobodyさん
2011/06/26(日) 14:48:22.51ID:???while($i < 60){
$i++;
sleep(1);
}
0754nobodyさん
2011/06/26(日) 14:50:02.09ID:???0755nobodyさん
2011/06/26(日) 14:50:13.21ID:Yv8I1zOTphp自体の、タイムアウト秒数はどのように設定するのでしょうか
0757nobodyさん
2011/06/26(日) 15:42:22.22ID:W+AeykF5「はい」と答えた個数の合計を表示
それに応じたコメントを表示させたいのですが
まず、合計を表示させるところで生き詰まってます
<input type="radio" name="Q1" value="1">はい
<input type="radio" name="Q1" value="0">いいえ
<input type="radio" name="Q2" value="1">はい
<input type="radio" name="Q2" value="0">いいえ
これをpostでphpに送って結果を表示させたいのですが・・
色々やっても駄目でした
親切な方教えてください
0758nobodyさん
2011/06/26(日) 16:08:51.77ID:???0760nobodyさん
2011/06/26(日) 16:37:12.43ID:???親切な俺が教えてやるよ
<input type="radio" name="Q1" value="1">はい
<input type="radio" name="Q1" value="0">いいえ
<input type="radio" name="Q2" value="1">はい
<input type="radio" name="Q2" value="0">いいえ
<input type="text" name="count" value="">「はい」と答えた個数の合計を入力してください
0761nobodyさん
2011/06/26(日) 16:40:30.19ID:W+AeykF5駄目なソースは消してしまったので・・
if($_POST["Q1"])
{
if($_POST["1"]) {$1=1}
if($_POST["0"]) {$1=0}
}
と一問づつ設定して
最後にprint $1+$2+$3+・・・・
で合計を出すとこんな感じだったと思います
0762nobodyさん
2011/06/26(日) 16:43:56.92ID:W+AeykF5助かりました親切な方
できればphp側で合計を出せるようにしたいんです
0763nobodyさん
2011/06/26(日) 16:45:30.60ID:???ダメじゃなくて計算出来てるんじゃん?
ダメって言ってたのは何?
あと変数名に1は使えないと思う
あとダメなソースを消しちゃ勉強にならないと思う
0764nobodyさん
2011/06/26(日) 16:57:22.42ID:???http://www.php.net/manual/ja/language.variables.external.php
見て勉強してください
ここみて勉強したら分かるほどの低レベルすぎる質問で寸
0765nobodyさん
2011/06/26(日) 17:02:44.30ID:W+AeykF5それが、できてないんですよ
if文がうまく書けていないのか
エラーで表示されません
わかりました次はダメなソースは消しません
>>764
す、すいません
勉強してきま寸
0767nobodyさん
2011/06/26(日) 18:25:18.90ID:npr5oXlMObjectiveCが断トツに使いにくかった
0768nobodyさん
2011/06/26(日) 18:43:30.57ID:???それはたぶん、先に他の「オブジェクト指向」の言語習った為、じゃないかと思う。
ObjectC自体は面白い言語だよ。
0769nobodyさん
2011/06/26(日) 18:56:09.57ID:???0770 忍法帖【Lv=14,xxxPT】 【東電 72.7 %】
2011/06/26(日) 20:10:02.66ID:vOsyilAC例えば、ボクが
GET /foobar.htm HTTP/1.1
Host: example.com
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
を送りたいとして、その返事(HTMLデータ等)を取得したい。という感じです。
ないとしたら、やっぱりsocketにwriteするの自分で作るしかないのかな。
0771nobodyさん
2011/06/26(日) 20:13:05.40ID:3TwWQZaU【PHPのバージョン】5.3
【連携ソフトウェア】MySQL
【質問内容】opendirでfilesフォルダの中を開くと、filesフォルダの中身は数万個あるにも関わらず、70個程度しか開けていません。
どういった原因が考えられますか?
0773nobodyさん
2011/06/26(日) 20:25:42.40ID:???0774nobodyさん
2011/06/26(日) 20:28:52.45ID:1bpDkxSmhttp://localhost/b.phpに発行したクッキーを送ります
これをソケット通信で行っているサンプルが載っているサイトってありませんか?
0775nobodyさん
2011/06/26(日) 20:34:20.78ID:???0776nobodyさん
2011/06/26(日) 20:35:39.06ID:???悪いことしたいなら自分で勉強しろ
0777nobodyさん
2011/06/26(日) 20:48:06.47ID:???0778nobodyさん
2011/06/26(日) 20:52:15.32ID:???0782nobodyさん
2011/06/26(日) 22:25:14.04ID:yPaZokgHfunction addp($lst){//←ここ2
$lst->add(new A("その2"));
}
}
class B{
var $lst=array();
function add($newClass){
$this->lst[]=$newClass;
}
function Fire(){
$this->lst[0]->addp(&$this);//←ここ1
print_r($this->ls);
}
}
$c=new B()
$c->add(new A("その1"))
$c->Fire();
上記のようなコードで、$c->Fire();時に$Cのthis->lstにその1とその2を入れたいと思っています
矢印ここ1の箇所の"&$this"でクラスBの$lstを参照渡しして、クラスAで$lstに追加をしているのですが
"&$this"を記述しないで、ここ2の関数内でparent->lst->addみたく参照出来ないでしょうか
ここ1の箇所は何度も書く予定で、"$this->lst[0]->addp(&$this);"を出来れば"$this->lst[0]->addp();"こう、スマートに書きたいなと思いまして。
0783nobodyさん
2011/06/26(日) 22:28:14.58ID:???>矢印ここ1の箇所の"&$this"でクラスBの$lstを参照渡しして
$thisはBのインスタンスでBの$lstじゃないと思うけど
0787nobodyさん
2011/06/26(日) 22:50:05.81ID:???0788nobodyさん
2011/06/26(日) 22:51:05.15ID:???0789nobodyさん
2011/06/26(日) 22:58:56.39ID:???甘えるな
悪いことしたいなら自分で勉強しろ
↓
778 名前:nobodyさん[sage] 投稿日:2011/06/26(日) 20:52:15.32 ID:???
ソケット通信が悪いことと読み取ってしまうあなたの頭が超疑問
0791nobodyさん
2011/06/26(日) 23:06:24.30ID:yPaZokgHあっごめんなさい、クラスBの$lstを渡すとすれば
$this->lst[0]->addp(&$this->lst);//←ここ1
と、なりますね
となるとますます長くなるので
$this->lst[0]->addp();で済ます方法というのがあれば教えて欲しいです
0793nobodyさん
2011/06/27(月) 00:34:08.52ID:???0794nobodyさん
2011/06/27(月) 00:49:24.56ID:???0796nobodyさん
2011/06/27(月) 01:09:05.01ID:???$thisが付いてるとスマートじゃなくて$thisが付いてないとスマートじゃないというのが良く分からん
別に自身のインスタンス変数を引数で渡すというのは必要がある場合なら別におかしなことじゃないと思うが。
今回のはクラス間関係がないのでただ関数に渡してるのと同じ。
0797nobodyさん
2011/06/27(月) 01:09:34.85ID:???0798nobodyさん
2011/06/27(月) 02:11:14.83ID:???0799nobodyさん
2011/06/27(月) 04:22:17.34ID:???http://php.net/manual/ja/function.file-get-contents.php#example-1930
>>782
http://php.net/manual/ja/function.debug-backtrace.php
で出来る事は出来る
が、誤ったアプローチなので設計から見直した方がいい
コードから何をしたいのか汲み取れないので目的を書くべきだなー
0800nobodyさん
2011/06/27(月) 04:33:58.97ID:pkVc30mhfopenやファイル名の衝突回避、どこでserializeするのかどこでunserializeするのか、ファイルロックは適切か・・・
と悩むところが多いですが、phpの組み込み機能で手軽に設定を保存出来る機能はありませんでしょうか
$_SESSIONの全ユーザー共通版のような感じです
0801699
2011/06/27(月) 06:27:59.66ID:???http://www.php.net/manual/ja/function.sleep.php#95164
このコードを試してみたらそれっぽいことができました。
どうやらflushするときにバッファに充分な文字数が無いとダメみたいです
$buffer=str_repeat(".",1024);に変えるだけでうまく動かないので。。
0802nobodyさん
2011/06/27(月) 16:58:07.84ID:???間違っているところやもっとスマートな書き方があれば教えて頂きたいです。
<form action="goukei.php" method="post">
<?php
for($i=1;$i<6;$i++) {
print <<< EOF
<input type="radio" name="q{$i}" value="1">はい
<input type="radio" name="q{$i}" value="0">いいえ<br>\n
EOF;}
?>
<input type="submit" name="submit" value="登録">
</form>
<?php
if(isset($_POST["submit"])) {
$errors = array();
for($i=1; $i<6; $i++) {
if(!isset($_POST["q{$i}"])) {
$errors[$i] = $i . "番が選択されていません。" . PHP_EOL;
}
}
if(!count($errors)) {
$sum = 0;
for($i=1; $i<6; $i++) {
$sum += $_POST["q$i"];
}
echo '合計:' . $sum;
}
foreach ($errors as $error) {
echo $error . "<br>";
}
}
?>
0804802
2011/06/27(月) 17:05:41.17ID:xqyiNAlq<form action="goukei.php" method="post">
<?php
for($i=1;$i<6;$i++) {
print <<< EOF
<input type="radio" name="q{$i}" value="1">はい
<input type="radio" name="q{$i}" value="0">いいえ<br>\n
EOF;}
?>
<input type="submit" name="submit" value="登録">
</form>
<?php
if(isset($_POST["submit"])) {
$errors = array();
for($i=1; $i<6; $i++) {
if(!isset($_POST["q{$i}"])) {
$errors[$i] = $i . "番目が選択されていません。" . PHP_EOL;
}
}
if(!count($errors)) {
$sum = 0;
for($i=1; $i<6; $i++) {
$sum += $_POST["q$i"];
}
echo '合計:' . $sum;
}
foreach ($errors as $error) {
echo $error . "<br>";
}
}
?>
0805nobodyさん
2011/06/27(月) 17:31:42.80ID:lGcvt27/return "bbbb";
}
$hoge = 'aaabbbccc';
$hoge = preg_replace('/aaa(.*)ccc/', $a='\\1',$a(), $hoge);
これを実行すると\1なんていう関数はないと言われますが、
bbbを呼び出して、bbbbという結果が返ってくるようにするには
どうしたらいいでしょうか?
0806805
2011/06/27(月) 17:38:00.48ID:???0807。 ◆oDupeixhZv52
2011/06/27(月) 17:56:11.20ID:???$hoge = preg_replace('/aaa(.*)ccc/e', "$1()" , $hoge);
0808nobodyさん
2011/06/27(月) 18:39:32.84ID:???#1
<?php
$TOI = Array(1=>"問題1",2=>"問題2",3=>"問題3");
if($_POST['CMD'] == "送信")
{
A_disp();
}
else
{
Q_disp();
};
function Q_disp()
{
global $TOI;
$HTML = "<form method='POST'>\n<table border='1'>\n";
foreach($TOI as $KEY => $RECORD)
{
$TR = <<< DATA
<tr>
<td>{$RECORD}</td>
<td>はい<input type="radio" name="Q[{$KEY}]" value="1"></td>
<td>いいえ<input type="radio" name="Q[{$KEY}]" value="0"></td>
</tr>
DATA;
$HTML .= $TR;
};
$HTML .= "\n</table>\n<input type='submit' name='CMD' value='送信'>\n</form>";
echo $HTML;
}
0809nobodyさん
2011/06/27(月) 18:42:24.84ID:???function A_disp()
{
global $TOI;
$REQ = $_POST["Q"];
$ANS = 0;
$ERR = "";
foreach($TOI as $KEY => $Q)
{
if(isset($REQ[$KEY]) == true)
{
$ANS += $REQ[$KEY];
}
else
{
$ERR .= "{$KEY} 番目が選択されていません<br>\n";
};
};
echo "合計:{$ANS}<br>\n";
if(strlen($ERR) > 0)
{
echo $ERR;
};
};
?>
自分だとこんな感じか
0810nobodyさん
2011/06/27(月) 18:52:10.74ID:xqyiNAlq関数使うのが上級者ぽい感じですね。
自分はまだまだ初心者なので関数使おうという発想にいたりません。
勉強させていただきます。
0811nobodyさん
2011/06/27(月) 19:36:36.20ID:???0812nobodyさん
2011/06/27(月) 19:41:00.97ID:???おなじ質問スレでもこっちの方が良かったか???
△▲ WebProg 初心者の質問 Part23 ▼▽
0814nobodyさん
2011/06/27(月) 19:58:58.27ID:???わろすwwwwwwwwwwwwww
0816nobodyさん
2011/06/27(月) 20:11:19.45ID:xqyiNAlq2ちゃんの行数制限で仕方なく……
0817nobodyさん
2011/06/27(月) 20:39:54.12ID:3qkhECzwsession_start();
if ($_POST['id'] == "aaa" && $_POST['pass'] = "bbb") {
$_SESSION['login_flag'] = 1;
}
こんな感じにするのでしょうか?
それで他のページで
session_start();
if (!$_SESSION['login_flag']) {
exit("ログインしてください");
}
みたいな感じに
0820nobodyさん
2011/06/27(月) 20:50:59.13ID:3qkhECzwどういうことでしょうか?
もう少し詳しくお願いします。
■ このスレッドは過去ログ倉庫に格納されています