【PHP】下らねぇ質問はID出して書き込みやがれ 130
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2013/09/19(木) 13:47:19.93ID:???過去スレ、関連スレ、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等)・フレームワークは各該当スレへ
0409nobodyさん
2013/10/15(火) 16:10:39.27ID:???0410nobodyさん
2013/10/15(火) 16:22:54.12ID:???0413nobodyさん
2013/10/15(火) 16:33:06.55ID:???pythonにもmvcフレームワークなんてあるのに
ttp://aka-note.blogspot.jp/2012/01/pyramidpythonwsgiweb3mvcbankaccount.html
サンプルのindex.makがhtmlに書いてるように見えないのかね?
0414nobodyさん
2013/10/15(火) 16:56:34.02ID:???http://www.ibm.com/developerworks/jp/linux/library/l-django/
こっちは正統なMVCFWみたいだけどね
0415nobodyさん
2013/10/15(火) 16:58:33.59ID:???まぁテンプレートエンジンはWeb開発じゃ必須だろうし
PHPに最初から組み込まれてるのは別に不思議じゃない
ASPやJSP参考にしてるんだろうしね
0416nobodyさん
2013/10/15(火) 17:02:00.67ID:???1つじゃ無理って言うから5つ出したのに、5つ出してもまた無理ってそれじゃ困ります。
PHPの復号化は数種類の関数しかないので凄い人なら簡単に出来ると思ったのです。
まず暗号化されたデータはurlencodeされていることがわかりますよね?
凄い人はそこからさらにあと少し問い詰めたら簡単に復号できると思うのです。
0418nobodyさん
2013/10/15(火) 17:17:21.55ID:???eRubyをwikipediaでみてきて下さい
>>416
例えば与えられた文字をbin2hexでASCIIコード16進数に変換
そこからさらに2進数にしてビットをシフトしたり反転させたり・・・
なんてことをしていたらその処理をした人でないと中身がどうなってるかなんてのはわからないわけで・・・
0420nobodyさん
2013/10/15(火) 17:55:11.85ID:???/(?<!¥)[0-9]+円/
にすると、¥1000円という文でマッチさせると、000円でマッチしてしまいます。
先読み否定で貪欲さみたいなのって指定出来ないのでしょうか。
0422nobodyさん
2013/10/15(火) 18:08:40.98ID:???正規表現道場 Part2
http://kohada.2ch.net/test/read.cgi/php/1348048723/
0423nobodyさん
2013/10/15(火) 18:13:14.94ID:cu6CA9hv1000円だけにマッチさせたいんだよね?
/(?<!¥)(1)[0-9]+円/
0424nobodyさん
2013/10/15(火) 18:13:44.08ID:???バイナリ扱える時点でPHPで扱える復号化処理は数種類だけではないよ。
そもそも復号化処理ってなにやるかわかってんかね。
わかってるんだったら、何故誰も取り合わないのかよく調べて考えろ。それで解けるかもしれない。
わからないんだったら、その数種類しかないもの、自分で試してこい。それで解決するんだろ?
0426nobodyさん
2013/10/15(火) 18:23:54.33ID:???0427nobodyさん
2013/10/15(火) 18:24:53.68ID:???0429nobodyさん
2013/10/15(火) 18:45:57.68ID:???私が試して来た方法とどの辺りに違いがあるんでしょうか。
調べても説明が端的なものばかりで、本当によく分からないんで
なぜ000円にマッチしたりしたのか教えてください。
0431nobodyさん
2013/10/16(水) 11:36:10.36ID:???¥でない文字の後に [0-9]+ でなるべくなんだから、
¥でない1という文字のあとにつづく000がマッチして何がおかしいの?
これ以上は該当スレで
/(?<!¥)(?<![0-9])[0-9]+円/
0433nobodyさん
2013/10/16(水) 12:03:54.01ID:???0434nobodyさん
2013/10/16(水) 15:14:27.41ID:???初心者がWAFを用いずWebシステムを作成するのはセキュリティ的に好ましくないですか?
いきなりWAFを使うのはどうかと思いガリガリ書いてましたがセキュリティを考えるととてもじゃないけど手に負えません
0435nobodyさん
2013/10/16(水) 15:20:54.31ID:???setcookieでクッキーを設定して、すぐにheader()で指定のページに移動させるとクッキーが設定されていません。
setcookie後、とりあえず何かしらページを出すと、クッキーが設定されるのですが・・・
前者のやり方は良くないのでしょうか?
よろしくお願いします
×クッキー設定 → header( "Locatoin... → 次のページ クッキーなし
○クッキー設定 → 何かしら完了画面 → 次のページ クッキーあり
0436nobodyさん
2013/10/16(水) 16:02:01.39ID:???ググったら出てくるやつじゃないのか
0437nobodyさん
2013/10/16(水) 17:01:40.05ID:???0438435
2013/10/16(水) 17:05:05.39ID:rEUN+AXcお騒がせ致しました
0439nobodyさん
2013/10/16(水) 17:49:55.85ID:+GFXtXqVhttp://www.php.net/manual/ja/language.generators.syntax.php#control-structures.yield
この例は、
$arr = array(1, 2, 3);
foreach ($arr as $value) {
echo "$value\n";
}
に置き換えれるわけで、どういうときに使うのかいまいちピンときません。
どういうときに使うと嬉しいのでしょうか?
0440nobodyさん
2013/10/16(水) 17:55:09.15ID:???0441nobodyさん
2013/10/16(水) 18:25:50.09ID:???0442nobodyさん
2013/10/16(水) 19:46:06.88ID:???スレ違い
>>1読め
WAF使うなら、コードと両方でやることになると思え。
かぶっている所作もあるがそもそも得意分野と機能が全く違う。
むしろ、HTTPから知らないと書けない上に
PHP組む上で必要なセキュリティに関する知識も加わる。
ルールの嵐でWAF設定書くほうが初心者殺しだよ。
0444nobodyさん
2013/10/16(水) 23:02:07.29ID:???preg_replaceでパターン内の()で囲んだ部分を後から参照する方法教えてください
�Aperlでの
while($s =~ /.../g){
...
}
↑phpの正規表現でもこのようなことはできますか?
0446nobodyさん
2013/10/17(木) 10:33:06.33ID:???無限リストが楽に作れて嬉しい
<?php
function stripe(array $colors) { while (true) foreach ($colors as $color) yield $color; }
$rainbow = stripe(['red', 'orange', 'yellow', 'green', 'blue', 'indigo', 'violet']);
?>
<ul>
<?php foreach(range(0, 30) as $i): ?>
<li style="background-color: <?php echo $rainbow->send(null); ?>;"><?= $i; ?></li>
<?php endforeach; ?>
</ul>
>>441
なんでPHPの例だけカーソルになってるんだ
0447nobodyさん
2013/10/17(木) 12:07:43.73ID:???やるかどうかは別として、どっかのサービスとのネゴシエーションが書きやすくなったり、
ファイルやDBからの読み出しまわりのメソッドが簡略化できる気がする。
気がする。
0449nobodyさん
2013/10/17(木) 13:23:54.51ID:???<?php
$string = 'April 15, 2003';
$pattern = '/(\w+) (\d+), (\d+)/i';
$replacement = '${1}1,$3';
echo preg_replace($pattern, $replacement, $string);
?>
上の例の出力は以下となります。
April1,2003
0450nobodyさん
2013/10/17(木) 15:13:55.83ID:HuABhb/lclass A {
private $test = [
"test" => function () { }
];
}
PHP Parse error: syntax error, unexpected 'function' (T_FUNCTION)
0451nobodyさん
2013/10/17(木) 15:17:12.38ID:???0452nobodyさん
2013/10/17(木) 15:18:31.96ID:HuABhb/l$test = [
"test" => function () { }
];
$test["test"]();
これは実行できるはずです。
0453nobodyさん
2013/10/17(木) 15:21:30.05ID:???0454nobodyさん
2013/10/17(木) 15:27:58.99ID:???0455nobodyさん
2013/10/17(木) 15:35:34.07ID:???5.3.6で[のとこでエラー出たけど5.4だと出ないのね
まぁ本題だけどクラスのプロパティ(メンバ変数)とは別物だから挙動は違う
private $test = strlen('hoge');
こういう関数使ったり定義したりは出来ない
http://www.php.net/manual/ja/language.oop5.properties.php
> 宣言時に初期値を設定することもできますが、初期値は定数値でなければなりません。
もしやるとしたらコンストラクタでやるべし
0456nobodyさん
2013/10/17(木) 15:54:20.59ID:HuABhb/l納得致しました
ありがとうこざいます。
0457nobodyさん
2013/10/17(木) 22:20:29.16ID:8Sl61Bzm自分のサイトを定期的に巡回してページが正しく表示されているかを確認したいのです。
質問。
[1] このような機能の総称というか、概念を端的に表す言葉って何かありますか?
例:「巡回テスト」「ページ確認テスト」
[2] 代表的なソリューションってありますか?できれば言語は php か rubyで。
具体的には自分の作ったサイト(CakePHPかWordPress。たまにROR)の所定のページが
こちらの期待通りのレスポンスとコードを出力しているのかを一日1回程度調べて、
まとめをメールで受信したいです。
現状は自作してますが、統計をとったり解析したり、メール送信したりの機能を
もった、もっと良いツールが公開されているのではないかと探してます。
スレチなら何処か別の板に聞きに行きます
0458nobodyさん
2013/10/17(木) 22:31:17.19ID:???0459457
2013/10/17(木) 22:58:17.31ID:???移動します。
0461nobodyさん
2013/10/18(金) 00:22:18.07ID:???要件次第だけど数十行のPHPコードとcronで実現できる話じゃね
(+URLリストや正しいレスポンスHTMLやメールテンプレートなどが欲しければファイル作る必要あるけど)
0462nobodyさん
2013/10/18(金) 01:36:10.63ID:???str_repeat() の配列版かな?
無限リストは列挙数が定められない場合に作るんだから代用になり得ない
0463nobodyさん
2013/10/18(金) 01:56:24.03ID:???ありがとうございます。
簡単なものならそんなに難しくないのですが、
徐々に機能を足していると、ひょっとしてもっとよいツールがありそうな気がして。
どうやら無さそうですね。
0464nobodyさん
2013/10/18(金) 02:11:35.98ID:???0468nobodyさん
2013/10/18(金) 10:18:03.84ID:???論点がずれてるよ
30という列挙数に意味はないし
無限リストで処理している部分を $colors[($i + 1) % count($colors)] に置き換えても意味はない
だって無限リストの話なんだから
0472nobodyさん
2013/10/18(金) 20:12:09.06ID:T/wMdp+iprivate $m_part = array();
public function NewPart() {
$part = new \Part();
$this->m_part[] = $part;
return $part;
}
}
$test = new test;
$np = $test->NewPart();
$np->structname = 1;
これで$this->m_part[] に入れた$partの内容まで書き換えれてしまう
ようだけどこういう書き方ってありなのでしょうか?
0473nobodyさん
2013/10/18(金) 20:32:03.60ID:???0474nobodyさん
2013/10/18(金) 23:08:32.21ID:???yieldの活用例である無限リストの作成と、
更にその無限リストの活用例として>>446を書いたんだけど…w
無限リスト自体の価値を知りたかったら
関数型言語で勉強するといいんじゃないかな
俺も上手くまとめられる自信がないしスレチになるから
0476235
2013/10/19(土) 05:21:31.31ID:P7GcS3MGシングルトンクラスを書いたファイルをコピーして別のフォルダに配置して、
別のプログラムからそれぞれインスタンス取得したら
シングルトンとして機能しないということでいいです?
indexAとindexBは任意の時期にアクセスがあるものとします
/classA/csingleton.php ↓コピー
/classB/csingleton.php
class CSINGLETON
{
〜
}
/indexA.php
require_once("/classA/clsingleton.php");
$obj= CSINGLETON::getInstance();
〜
/indexB.php
require_once("/classB/csingleton.php");
$obj= CSINGLETON::getInstance();
〜
0478nobodyさん
2013/10/19(土) 06:34:55.64ID:???シングルトンなんか関係なくない?
同じプロセスならエラーになるし、質問自体がナンセンス
0479nobodyさん
2013/10/19(土) 09:50:47.68ID:???ンモー
好きなだけFizzBuzzしてなさいよw
php -r 'function fizzbuzz($i = "0") { while (true) { yield bcmod($i, 15) ? (bcmod($i, 5) ? bcmod($i, 3) ? $i : "Fizz" : "Buzz") : "FizzBuzz"; $i = bcadd($i, 1); }}
$f = fizzbuzz(); while ($line = fgets(STDIN)) { echo $f->send(0), ":", $line; }'
無限リストの肝心なところは文字通り無限の列を表せるって事
仮にだよ、素数を任意の個数だけ出力するプログラムを書きたいって時に
無限個の素数が収まっているリストがあるとうれしいでしょ?
欲しい数だけ取り出せば済むから楽、遅延評価だからメモリにもCPUにも優しい
そういう物が yield でぐっと簡単に作れるようになったと言いたい
0480nobodyさん
2013/10/19(土) 10:36:56.59ID:???0481nobodyさん
2013/10/19(土) 17:41:31.98ID:QxORnovr取引を円滑に進めるためのお勧めオープンソースはありますか?
0482nobodyさん
2013/10/19(土) 18:49:56.01ID:P7GcS3MG勉強しなおします
0483nobodyさん
2013/10/19(土) 22:03:14.20ID:6nRZ2Ke1やっぱPHPにイベントハンドラ的なものはないん?
<input type="button" onclick="PHPユーザー関数">
的な事が出来れば凄く捗るんだけどな
PHPの場合はページ遷移時以外は動作しないでFA?
0485nobodyさん
2013/10/20(日) 00:41:21.32ID:???ユーザーが任意の被らない半角英数字のキーワードと共に画像と説明をアップでき、
他のユーザーがそのキーワードを入力したら説明と共に画像が見れるしくみです
(dbに例えるとkvsみたいなもの?)
そこで質問なのですがデータディレクトリにキーワードの名前のサブディレクトリを生成し、そこに画像と説明や削除パスのハッシュを書いたファイルを置いておくか
データディレクトリに画像だけ置いて後はMySQLに任せるかどっちがよろしいでしょうか?
前者
データ用dir(外部からアクセス不可)
┣hoge(キーワード)━image.jpg,info.dat
…
┗fuga━image.jpg,info.dat
後者
データ用dir
┣abcdef.jpg(ユニークでランダムな名前)
…
┗ghigk.jpg
MySQLにキーワードを主キーにしてど画像パスと説明と削除パスハッシュを入れる
0486485
2013/10/20(日) 00:45:38.92ID:+YENYWYK前者だとセキュリティ上データディレクトリにアクセス許可できないけどそしたら画像が見れなくなるので後者にします
0487nobodyさん
2013/10/20(日) 16:57:08.89ID:QCUwnfDFのコードでを複数ファイルに記述していて
特定のページだけこのPHP5.4のhtmlspecialcharsに非互換問題のエラーが出力されていました。
Warning: htmlspecialchars() [function.htmlspecialchars]: charset `cp932' not supported, assuming iso-8859-1
修正はしたのですが、なぜ特定ののページだけhtmlspecialcharsのバグが発生したのかわかりません
簡単な助言だけでもいいのでください
0488nobodyさん
2013/10/20(日) 17:03:34.44ID:???0489nobodyさん
2013/10/20(日) 17:12:45.07ID:QCUwnfDF自己解決になりますが
エイリアスがSJIS、932だと問題なく通るようです。
詳しい問題点はわかりませんが、エイリアスcp932に問題があるようなので使わないようにしたいと思います
0490nobodyさん
2013/10/20(日) 18:13:13.79ID:???0491nobodyさん
2013/10/20(日) 18:37:06.99ID:???0492nobodyさん
2013/10/21(月) 11:46:18.39ID:???0493nobodyさん
2013/10/21(月) 14:33:56.23ID:???0494nobodyさん
2013/10/21(月) 21:43:11.33ID:Ui1hZpHGfile_get_contentsでPOST送信してデータを更新しているのですが、更新できるときとできないときがあります。
ちなみにこんな感じでやっているのですが更新できなかったときも成功と表示されてしまいます。なぜでしょうか?
もっと良い方法があればご教示願います。
<?php
$url = 'http://example.com/test.php';
$data = array(
'hoge' => 'piyo',
);
$header = array(
"User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)",
"Content-type: application/x-www-form-urlencoded",
);
$option = array('http' => array(
'method' => 'POST',
'content' => http_build_query($data),
'header' => implode("\r\n", $header),
));
if($contents = file_get_contents($url,false,stream_context_create($option))){
echo "成功";
}else{
echo "失敗";
}
?>
0495nobodyさん
2013/10/21(月) 22:45:28.80ID:???よく中身を見れ。
0496494
2013/10/22(火) 00:22:17.31ID:DD9q/9gHレスありがとうございます
中身はこれだけです…
0497nobodyさん
2013/10/22(火) 00:58:26.35ID:???var_dump($contents)
してみる。
0499nobodyさん
2013/10/22(火) 10:07:12.23ID:???呼び出し先のログには何か出てないか?
0500nobodyさん
2013/10/22(火) 12:58:08.46ID:???リクエスト通りにページが取得できたらtrueを返すだけ(not found等以外)なので
POST送信までは出来てる
POST送信によってページが更新出来たかどうかまでは判定できんよね
POST後の処理内容が怪しい
多分、条件に依っては更新されない要素がある予感
0501nobodyさん
2013/10/22(火) 13:42:09.56ID:???0502nobodyさん
2013/10/22(火) 13:59:31.04ID:???0503494 ID(IP)変わってごめんなさい
2013/10/22(火) 14:13:35.82ID:JoBlG3d4ありがとうございます。そういうことですか。納得。
もう1つ質問です。URLは存在するのに
Warning: file_get_contents(http://URLは伏せます): failed to open stream: HTTP request failed! HTTP/1.0 404 Not Found
のエラーが出るサイトもあるのですが、これは一体どういうことでしょう?
0504nobodyさん
2013/10/22(火) 14:19:46.80ID:???あと、接続先が自分の管理内にあるんならログ見てから発言しろ
0505nobodyさん
2013/10/22(火) 14:20:52.15ID:???0506494
2013/10/22(火) 14:32:27.16ID:JoBlG3d4ありがとうございます
ブラウザでは普通に見れます
接続先は自分の管理外です
0507nobodyさん
2013/10/22(火) 14:53:35.50ID:???0508nobodyさん
2013/10/22(火) 16:00:29.14ID:???>リクエスト通りにページが取得できたらtrueを返すだけ
おい、全然違うだろ!
>>506
ユーザーエージェント名で弾いてる可能性もある
ひょっとしてお前さんは、サービス側からは好ましからざる振る舞いをしているのかい?
■ このスレッドは過去ログ倉庫に格納されています