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

【PHP】下らねぇ質問はID出して書き込みやがれ 130

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2013/09/19(木) 13:47:19.93ID:???
質問者はまず>>1を良く読むこと(必須!)
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。

◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 129
http://kohada.2ch.net/test/read.cgi/php/1375636484/

◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】

◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)

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

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

【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0313nobodyさん2013/10/11(金) 17:08:58.68ID:???
if (login) {
 "OK";
} else {
 "NG"
}

if (status==200 && response=="NG") {
 ログインできません
}

///////////////

if (login) {
 "OK";
} else {
 http_status(401);
 "NG";
}

if (status==401) {
 ログインできません
}

どっちにしますか?って話?
0314nobodyさん2013/10/11(金) 17:11:54.98ID:???
知らなかったって言えばいいのに、情けねーな
0315nobodyさん2013/10/11(金) 17:13:53.97ID:???
何を?別に今出てきた話の中で知らないことはないんだが・・・
>>312は良くわかってると思うよ
0316nobodyさん2013/10/11(金) 17:16:54.28ID:???
なんだ、自覚してるのか。
0317nobodyさん2013/10/11(金) 17:19:03.86ID:???
つか、ajaxで戻す内容によると思うんだけど。
いわゆるWeb APIならステータスコードの方がハンドリングしやすいし、error_page.htmlにリダイレクトした方が良い場合もあるし。
0318nobodyさん2013/10/11(金) 17:24:57.58ID:???
RESTとHTTP+XMLを混同してるやつがいる気がするわ。
0319nobodyさん2013/10/11(金) 17:35:40.25ID:???
ちょっとずれた煽りが混ざってるだけ
0320nobodyさん2013/10/11(金) 17:41:24.12ID:???
マッハで(>>291で)答えが出てるのに相変わらずお前らときたら・・・
何に対して500返してるかもよくわからないのに相変わらず質問者置いてけぼり
0321nobodyさん2013/10/11(金) 17:56:43.93ID:???
200 OK と 400 のbad request しか使わんぞ
0322nobodyさん2013/10/11(金) 18:26:29.81ID:HtFFGZ+p
すごく勉強になった
ありがとうございます
0323nobodyさん2013/10/11(金) 18:31:12.58ID:???
>>291
> 500はinternal server errorなので使わない方が良い。じゃないと、バグなどで本当に内部エラーが
> 起こったときにわからなくなるから。

デバッグ目的でステータスコードを変な風に使わないでくれ
サーバーサイドの問題だから素直に500番台を返して欲しいぜ
0324nobodyさん2013/10/11(金) 18:34:35.04ID:???
>>323
意味が分からない
0325nobodyさん2013/10/11(金) 18:47:09.82ID:???
5xxはサーバーが出すものでプログラム側から使うべきじゃないってことでしょ
0326nobodyさん2013/10/11(金) 20:23:51.08ID:???
503なんかは、 apatchの古いのでは rewriteで出せないから、
503をPHPで書き出すページにリダイレクトしてたけどな。
0327nobodyさん2013/10/11(金) 20:30:28.72ID:???
A patch
Apache
あぱっちぇ!
0328nobodyさん2013/10/11(金) 20:35:35.83ID:???
http://d.hatena.ne.jp/keyword/Apatch
0329nobodyさん2013/10/11(金) 21:07:07.93ID:21C5uPL0
サーバ(Apacheを想定)でPHPの$_GETや$_POSTに値が収まる前に
何らかの処理を差し込むことはできるでしょうか?
例えば一律に入力フィルターを通るようにする、といったことなんですが。

マニュアルのスーパーグローバル変数の項にPHP標準のフィルタのリンクがあったので
試してみたのですが、これはスクリプト内で任意に使用できるユーティリティのようでした
http://www.php.net/manual/ja/book.filter.php
0330nobodyさん2013/10/11(金) 21:14:02.66ID:???
どういうこと?バリデーションがやりたいってこと?
収まる前にって送信するなってことじゃない?
となるとJavaScript側でやれとしか
03312822013/10/11(金) 21:47:41.01ID:SK3emKdr
すいません、すれ違いでした。。。
0332nobodyさん2013/10/11(金) 22:05:25.91ID:21C5uPL0
>>330
例えばGETリクエストをApacheが受け取る場合だと、
Apacheがパラメータを環境変数にセットし
PHPがこれを解析して$_GET(配列)をセットしていると思います。
で、文字コードのチェックや、一切受け付けない文字(制御文字など)を除去するなど
生データ(文字列)の段階で変換したりできると簡単かと思ったんです。
配列になってからでは、100のパラメータに対して100の処理が必要だけど
生データは1つの文字列なので1回で済むかなと考え、
実行プロセスの起動と変数をセットする間に
PHPコードでアクセスできるフックポイントがあればと思いました
0333nobodyさん2013/10/11(金) 22:08:08.92ID:???
array_mapでも使って下さい
0334nobodyさん2013/10/11(金) 23:39:55.91ID:???
>>282
<?php
header('Content-Type: application/xml');
ini_set('arg_separator.output', '&');
$url = 'http://jlp.yahooapis.jp/MAService/V1/parse';
$appid = isset($_POST['appid']) ? $_POST['appid'] : null;
$sentence = isset($_POST['sentence']) ? $_POST['sentence'] : null;
$filter = isset($_POST['filter']) ? $_POST['filter'] : null;
$data = http_build_query(
array(
'appid' => $appid,
'sentence' => $sentence,
'filter' => $filter
)
);
$xml = file_get_contents($url, false, stream_context_create(
array(
'http' => array(
'method' => 'POST',
'header' => "Content-Type: application/x-www-form-urlencoded;charset=UTF-8\r\nContent-Length: " . strlen($data) . "\r\n",
'content' => $data
)
)
));
echo $xml;

post先をこのスクリプトに変えてね
03352822013/10/11(金) 23:41:55.82ID:SK3emKdr
>>334
ありがとうございます!感動しました!
0336nobodyさん2013/10/12(土) 01:37:02.46ID:RtoR0pty
javascriptでデータを集めてAjaxを使いPHPで保存したいと考えています。

<javascript>
var data = {};
data.result = resultArray; // resultArrayには配列が入っています
$.ajax({
type: "POST",
url: "save.php",
data: data
});

<PHP>
<?php
$filename = data.txt;
$result = $_POST['result'];
$fp = fopen($filename, 'w');
frite($fp, $result);
fclose($fp);
?>

こんなかんじで書いてみたのですが
data.txt には何も書き込まれません。
エラーでwrite() expects parameter 2 to be string, array given in <phpのパス>
が出てしまいます。
何か解決方法はありませんか?
0337nobodyさん2013/10/12(土) 05:26:34.97ID:???
PHPにfriteなんて関数はない
PHP使ったこともないPerl厨が荒らしにきたのが丸わかり
0338nobodyさん2013/10/12(土) 06:18:16.36ID:???
PerlとPHPの区別「すら」できん奴かもよww
0339nobodyさん2013/10/12(土) 07:55:50.69ID:RtoR0pty
ごめんなさい、fwriteでした。
0340nobodyさん2013/10/12(土) 08:28:13.04ID:???
>>336
write() expects parameter 2 to be string, array given
配列じゃなくて文字列ちょうだいって言ってるんだから
$resultをimplode()とかで文字列にしないと
0341nobodyさん2013/10/12(土) 09:03:56.48ID:???
急にajaxの話題が増えたな
0342nobodyさん2013/10/12(土) 11:06:02.06ID:???
>>336
配列の内容確認だけなら
fwrite($fp, print_r($result, true));
とか
0343nobodyさん2013/10/12(土) 11:38:40.17ID:???
http://toro.2ch.net/test/read.cgi/hp/1381154429/593
http://toro.2ch.net/test/read.cgi/hp/1381154429/594
0344nobodyさん2013/10/12(土) 12:05:42.75ID:Su3ioHiI
クラスの設計について教えてください
プログラムの全てをクラスに入れたいのですが

$inst = new MyClass();
exit;

$inst = new MyClass();
$inst->main();
exit;

この場合、constructだけのほうが良いですか?
0345nobodyさん2013/10/12(土) 12:07:47.54ID:???
>>344
何のためにクラスに入れるのかによる
0346nobodyさん2013/10/12(土) 12:15:59.20ID:Su3ioHiI
>>345
MVCのControllerです。
0347nobodyさん2013/10/12(土) 12:40:40.80ID:???
情報が少なすぎて答えられない
0348nobodyさん2013/10/12(土) 12:45:22.80ID:???
引数も外部メソッドも不要なクラスならコンストラクタだけでいいじゃん
03492352013/10/12(土) 13:24:34.55ID:???
継承使うと結構コンストラクタではまる
0350nobodyさん2013/10/12(土) 15:47:48.97ID:???
phpほんと一貫性がないな
python3みたいに互換性捨てて一新してほしい
0351nobodyさん2013/10/12(土) 16:03:53.77ID:???
一貫性ないってどれに対して?
0352nobodyさん2013/10/12(土) 16:25:19.82ID:???
python3は互換性捨てたせいでボロクソ言われてるじゃん
0353nobodyさん2013/10/12(土) 16:29:50.82ID:???
一貫性がない=互換性捨てるってなんかおかしくね?

ところでPHPも過去の関数廃止やらで完全に後方互換性があるかというとそうではない
最新の環境で古いスクリプト動かそうとしても十中八九そのままだと動かない
まぁそこまで大まかな修正が必要かというとたぶん必要ではないんだろうけど
0354nobodyさん2013/10/12(土) 16:43:54.79ID:???
言いたいのは関数名や引数の一貫性って事だろう
文字列や配列あたりはPerl、C、Java、Ruby見境なくつまみ食いしてるから
マジカオスだわw

とは言えPythonはちょっと変えすぎたわ
3.0がリリースされてからもう5年が経とうとしてるのに
Djangoが対応したのは今年に入ってからという体たらく
有名どころのプロジェクトだとhgも2.7どまりだが、これはパフォーマンスを優先しているからだっけな?
まぁ良い所があまりないPHPで同じ事をやったら完全に見捨てられるだろうな
0355nobodyさん2013/10/12(土) 23:03:08.04ID:???
フォークしてObjectivePHPでも作ればいいと思うの
0356nobodyさん2013/10/12(土) 23:50:30.29ID:???
うーん…やっぱりNodeが最強のようだな
0357nobodyさん2013/10/12(土) 23:54:24.41ID:???
一貫性とか秩序とか美しさとか、そういうの求めてる言語じゃないから。
0358nobodyさん2013/10/13(日) 06:24:20.87ID:???
perlみたいにwebから消えていくならそれでもいいんだけどな
0359nobodyさん2013/10/13(日) 08:01:01.31ID:???
perlがwebでオワコンになった時
perlerたちは次のステージを求めたはずだ
phperの次なるステージはどこー?
やっぱjavascriptですかね
0360nobodyさん2013/10/13(日) 08:27:50.81ID:???
pythonかrubyだな
0361nobodyさん2013/10/13(日) 08:30:19.72ID:???
python rubyは始まりもしないで終わっていく存在
0362nobodyさん2013/10/13(日) 08:34:14.87ID:???
コンテンツの肥大化、動的生成化が進んでいるのに
低級言語を目指さないのはなぜなのか?
そんなの資源の進化任せでいいじゃねーかwwwwwwwwww
ってことなのか
0363nobodyさん2013/10/13(日) 08:56:10.25ID:???
>>362
かっこいいこといってるつもりなんだろうけど的外れわろた
0364nobodyさん2013/10/13(日) 10:45:39.83ID:???
pythonもrubyも新しくスマートな言語
rubyはまだ流行ってないがpythonはgoogleなどでも使われている
0365nobodyさん2013/10/13(日) 10:47:37.53ID:???
pythonは「.py」がいかんかったな
これは日本では致命的
0366nobodyさん2013/10/13(日) 13:44:25.97ID:???
>>364
新しいとか冗談はやめてくれ
Python 1990
Ruby PHP JavaScript 1995

JavaScriptはここ数年で1歩進化したが
他はもう終わりかけ
0367nobodyさん2013/10/13(日) 18:48:46.51ID:???
言語仕様的にはスマートなのはpythonだな。rubyはぐちゃぐちゃで読みにくい。perlの二の舞いになりそう。

スクリプト言語ですらないけど、個人的にはScalaが流行って欲しい。
0368nobodyさん2013/10/13(日) 22:08:36.93ID:fAMMFKma
お.py
0369nobodyさん2013/10/13(日) 22:18:57.01ID:???
  _  ∩
( ゚∀゚)彡 おっ.py!おっ.py!
 ⊂彡
0370nobodyさん2013/10/14(月) 02:38:34.41ID:4ChYFJye
phpファイルの最後に ?> って書かなくてもいいの?
IdeOneでPHPのタブを開くと ?> が書かれてないけど必要ないの?
0371nobodyさん2013/10/14(月) 02:39:06.26ID:???
マニュアルに書いてあるよ
0372nobodyさん2013/10/14(月) 02:41:11.07ID:???
PHP: PHP タグ - Manual
http://www.php.net/manual/ja/language.basic-syntax.phptags.php

>ファイル全体が純粋な PHP コードである場合は、ファイルの最後の終了タグは省略するのがおすすめです。
>終了タグの後に余分な空白や改行があると、予期せぬ挙動を引き起こす場合があるからです。
>余分な空白や改行のせいで PHP が出力バッファリングを開始し、その時点の内容を意図せず出力してしまうことになります。
0373nobodyさん2013/10/14(月) 02:47:46.48ID:4ChYFJye
>>371-372
�d
0374nobodyさん2013/10/14(月) 04:12:29.49ID:XIFTN7Pt
欠陥品しか使えない奴は大変そうだな
0375nobodyさん2013/10/14(月) 12:02:43.05ID:???
終了タグで終了しないバカは、むしろ書かなくていいよ、ってこと。
0376nobodyさん2013/10/14(月) 13:46:11.85ID:???
欠陥だらけの糞言語w
0377nobodyさん2013/10/14(月) 14:16:25.43ID:???
まだ欠陥が口癖の阿呆がいるのか
0378nobodyさん2013/10/14(月) 18:28:40.28ID:???
phpが流行ったのはhtmlに書けるから
いい加減このhtmlにphpを混ぜることの汚さに気づいて欲しいわ

perlの正統進化系であるpythonが流行りますように
0379nobodyさん2013/10/14(月) 18:53:08.06ID:???
なんかテンプレートを否定するアホが混じってますね
perlやpythonだって同じような仕組があるのに
0380nobodyさん2013/10/14(月) 19:02:33.48ID:???
<p><?php echo $hoge; ?></p>
<ul>
<?php foreach ($hage as $val) : ?>
<li><?php echo $val; ?></li>
<?php endforeach; ?>
</ul>


echo "<p>{$hoge}</p>\n".
"<ul>\n";
foreach ($hage as $val) {
echo "<li>{$val}</li>\n";
}
echo "</ul>\n";

どっちが汚いかは明白である
0381nobodyさん2013/10/14(月) 20:59:35.55ID:???
php入門でぐぐって一番上にでるページが突然表示されなくなったんですが
サイト名わかる人いますか?
緑色のサイトです
0382nobodyさん2013/10/14(月) 21:04:25.77ID:???
>>381
>>1
0383nobodyさん2013/10/14(月) 21:04:58.20ID:???
そふぃのphp入門 か。。
0384nobodyさん2013/10/14(月) 21:14:54.44ID:???
http://www.asahi.com/business/update/1014/TKY201310130299.html
宣伝乙サイトだから殺されたんじゃね
0385nobodyさん2013/10/15(火) 02:25:30.08ID:???
そのサイトでは無いです
一週間前ぐらいには存在したはずなのに跡形もなく消えました
サイトの内容をコピペしてたのでそれでぐぐっても一切引っかからないんです
0386nobodyさん2013/10/15(火) 02:26:27.70ID:/6Rybe7+
すみませんまた下げてしまいました
0387nobodyさん2013/10/15(火) 08:00:23.01ID:???
>>386

                 _/ ̄二ニ> / ̄ ̄7
             } ̄ ̄\_ニrヘrx∠二_   〈
              〈  >'´        `丶、〉,       / ̄ ̄ ̄\
             〉/             \ゝ     / も   話   !  / ̄ ̄ヽ
               〃   -‐ァ7丁 ヽ       ヽ      !  ら  し  |  |  あ  |
            / / / / / j  j  \       ',、   |  え  か  :!   l  の  |
             / // /  /  ,′ l 入 \     ',、    !  ま  け  :!  ヽ__/
           ハ// //  /  /  //   丶 ヽ   ハハ.  |  す  な.  |
            | l l //  /  /  //    \ ハ   j', ',  |  か   い  :!
           l l l /  /  /  //      ヽハ   ハ !  ',      で  j
          fハ! ! l  /  //// 、, -‐ ´ `丶l | ノ~}j l  \_____/
            Vヘl ハV,rr=ミx /     ,zr=-x_ l !/勹/ j
           V∧ ヽ込zソ`       乂ソ'′リ} 〉'/  j
 近 そ  あ.     乂ハ                jし'′ /
 づ れ   と             、           ハ   /
 か 以                         /    /
 な 上             \    r‐ ー、   / ̄>/
 い                 〈 > 、 ` ´  , イ >'´_|
 で                ∧ 《ハ`ー-‐'´  / / \_
               〈. \ヘハ_   / /   / ̄\__
0388nobodyさん2013/10/15(火) 10:42:11.97ID:???
>>380
ハイライト通してみると後者のほうが(ry

いい加減、DreamWeaverで見れなくなるからとかそういう理由で
前者採用すんのやめて欲しい。
0389nobodyさん2013/10/15(火) 11:03:43.65ID:???
MVCモデルって言葉知ってるか?
0390nobodyさん2013/10/15(火) 11:12:19.63ID:???
>>388
素人さん、いらっしゃい。
頑張ってROMって勉強していってね。
0391nobodyさん2013/10/15(火) 11:37:39.30ID:???
>>380
どっちも汚い

phpはデザインと分離できてると勘違いする馬鹿がほんと多いな
Smarty使わなきゃほんとの分離にはならない
0392nobodyさん2013/10/15(火) 11:42:06.87ID:???
「ほんとの分離」って何?
Smartyなんてキャッシュ機能ついてるってだけだよね
0393nobodyさん2013/10/15(火) 11:45:18.70ID:???
Smartyなんぞ使わなくてもテンプレートなんて30行もあれば書けるだろ

class Template

require 'template.php';
$tmpl = new Template('template.html');
$tmpl->set('hoge', array(1,2,3,4));
$tmpl->run();
0394nobodyさん2013/10/15(火) 11:46:15.61ID:???
メソッドは自分で準備してね(はぁと
0395nobodyさん2013/10/15(火) 11:49:55.84ID:???
<?php
$a = 'title';
?>
<!DOCTYPE html>
<html>
<head>
<title><?= $a =></title>

たぶん>>391はこういうこと言いたいんだろうけど

<!DOCTYPE html>
<html>
<head>
<title><?= $a =></title>

これで動くようにすることも出来るわけで何か勘違いしてると思うわ
0396nobodyさん2013/10/15(火) 12:10:38.00ID:???
>>387
http://web.archive.org/web/20130927043713/http://php.xenophy.com/
切れてるとこ悪いけど見つかりました
ありがとうございます
0397nobodyさん2013/10/15(火) 13:38:50.32ID:???
>>396
>>1も読めないクズは早く消えろよ
0398nobodyさん2013/10/15(火) 14:03:34.95ID:cu6CA9hv
質問です

「s59y」←この文字が
「IH%7F%FC%F6%834%C0%1F%D3%D3%E0」←この文字に暗号化されているのですが
複合化することはできますでしょうか?よろしくお願いします。
0399nobodyさん2013/10/15(火) 14:14:28.16ID:???
本当にそれがそれに変換されてるとして
1つのサンプルで復号化に挑戦しろってそりゃ無理だろ
つうかPHPの質問して下さい
04003982013/10/15(火) 14:30:35.46ID:cu6CA9hv
>>399
レスありがとうございます。
たしかに1つのサンプルでは難しいと思いました、すみません。
「左=複合化された文字列」「右=暗号化された文字列」です。可能であればよろしくお願いします。

「u0pd」→「%00%895%D3%1A%B0%9D%84%DC%18%11%F6」
「ffhr」→「%F5%C0%AF%09%9B%11%3E%06%E5%3A_%D3」
「khwn」→「%8B%B7%EC%09%5D%9F%FB%EC%A3%EF%5E-」
「bpef」→「%7D%02%01%8E%D3%12%27%0A%B5%DF%E9h」
「f3uh」→「B%8E%B9H5%F49%99%94%A2x%3A」
0401nobodyさん2013/10/15(火) 15:05:04.45ID:???
復号化とかどこの田舎者が広めたんだよとググったら、結城先生までもが使ってたよ orz
0402nobodyさん2013/10/15(火) 15:09:16.62ID:???
>>380
どっちが汚いか明白なの?
俺はどっちも汚いと思う。

ちなみに俺はヒアドキュメントで書けない場合は、上のパターンで書くかな。
0403nobodyさん2013/10/15(火) 15:11:32.21ID:???
ヒアドキュメントも下のパターンと一緒だから
0404nobodyさん2013/10/15(火) 15:19:11.57ID:???
下のパターンは1ファイルなんだろうけど
上のパターンはMVCとかで2つ以上ファイルがあることを想定した書き方だろ
JSPとかと同じ
0405nobodyさん2013/10/15(火) 15:28:33.19ID:???
>>400
1方向である可能性があるし時間の無駄だしそんな無駄に無償で付き合う人おらんで
0406nobodyさん2013/10/15(火) 15:29:29.65ID:???
>>401
気持ち悪いから「エンクリプト|デクリプト」で統一しよう案
複号を平文化と呼ぼう案
0407nobodyさん2013/10/15(火) 15:31:22.32ID:???
意味がわかればどうでもいい
0408nobodyさん2013/10/15(火) 15:48:43.40ID:???
>>403
きれい・汚いというのが見た目の問題だとしたら、ヒアドキュメントと下のパターンは全然違うと思うけど。
<?php
echo <<<EOB
<p>{$hoge}</p>
<ul>
 <li>{$val[0]}</li>
 <li>{$val[1]}</li>
</ul>
EOB;

ループが必要なら使えないが。
まあ、最近は、HTML/DOM要素を直接PHPで生成するのはほとんどやらなくなったが。
0409nobodyさん2013/10/15(火) 16:10:39.27ID:???
昔からそんなことしねーよ
0410nobodyさん2013/10/15(火) 16:22:54.12ID:???
そもそもどっちがMVCとかないでしょ。それ。
0411nobodyさん2013/10/15(火) 16:27:09.62ID:???
>>408
アホか
恥ずかしい
0412nobodyさん2013/10/15(火) 16:28:01.74ID:???
>>410
本気で上の記法採用してるやつが>>395みたいに書いてるって思ってんの?
■ このスレッドは過去ログ倉庫に格納されています