【PHP】下らねぇ質問はID出して書き込みやがれ 139©5ch.io
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん 転載ダメ©2ch.net
2015/01/05(月) 15:56:07.51ID:???過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 138
http://kanae.2ch.net/test/read.cgi/php/1414427135
◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.5
【連携ソフトウェア】MySQL ImageMagick
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0011nobodyさん
2015/01/07(水) 18:04:41.04ID:HTxb5ePJttp://codepad.org/yVnMfKj7
出力したファイルをそのままもう一度処理にかけるとバイト数が元に戻り、文字化け等が無いんですが、
C++のifstreamでは下がったバイト数分しか読み込まれず、パース出来ません
日本語のせいかとも思いましたが、「あ」*1000文字のファイルでも「a」*1000文字のファイルでもファイルサイズが下がりました
0013nobodyさん
2015/01/07(水) 18:20:39.09ID:???> //ASCIIコードの適当な文字と排他演算させる
の意味が良くわからんけど、手元で実行したらファイルサイズは変わらなかった。
aaa.dat -> bbb.dat -> ccc.datと変換。
-rw-rw-r-- 1 1000 1月 7 20:18 2015 aaa.dat
-rw-rw-r-- 1 1000 1月 7 20:19 2015 bbb.dat
-rw-rw-r-- 1 1000 1月 7 20:19 2015 ccc.dat
0014nobodyさん
2015/01/08(木) 11:21:10.84ID:pml5LpVDUTF-8でやってるんですが、文字のバイト数を定めるコードまで書き換わってるんでしょうか
0015nobodyさん
2015/01/08(木) 11:44:03.53ID:pml5LpVDファイルの転送方法を自動->バイナリにしたら普通にできました
ありがとうございました
0016nobodyさん
2015/01/11(日) 02:13:41.14ID:228RDm1SsetOutputModeをHTML5の設定にしたけど、パースの際に
metaなど閉じタグ不要の要素に、スラッシュがないと怒られる。
こういう仕様なの?
それとも正しくHTML5に設定できてなくてXHTMLの形式でパースされてるのかな?
構成
FuelPHP1.7.2
PHPTAL1.3.0
001716
2015/01/11(日) 02:52:39.38ID:228RDm1SsetOutputModeの意味を理解してませんでした・・・。
0018nobodyさん
2015/01/12(月) 01:00:37.32ID:fqM0hwsAどうしても納得出来ない箇所あるから誰かわかりやすく教えて
http://phpbook.e1blue.net/perfect/index7_Router.html
サイトに大体のコード書いてあるけど、わからないのは一箇所だけ。
Routerクラスのif (preg_match('#^' . $pattern . '$#', $path_info, $matches)) って所なんだけど
格納されてる文字列が$path_infoより$patternのほうが長いって、マッチングできなくないの?
0019nobodyさん
2015/01/12(月) 10:56:18.38ID:???つまり、$patternの方が短くなければならない。
$patternは、$this->routesの中身によるから、$this->routesの中身がどうな
っているか検証したほうがいい。
もっとも、そこのコードは複雑でわかりづらいけど。
あるいは、どうしても知りたいなら、実際に動かすといい。
foreach ($this->routes as $pattern => $params) {
if (preg_match('#^' . $pattern . '$#', $path_info, $matches)) {
$params = array_merge($params, $matches);
return $params;
}
}
0020nobodyさん
2015/01/12(月) 11:16:11.64ID:fqM0hwsAやっぱりそうだったのか。
じゃあ例えば
RequestされたURLが
http:/example/foo/bar/status/list
ルーティング定義配列(compileRouteメソッド変換済み)が
/status/list
とかだった場合、
$path_info = '/list';
$pattern = '/status/list';
になるはず。
だから$path_infoより$patternのほうが短くないとけないはずなのに
if (preg_match('#^' . $pattern . '$#', $path_info, $matches))
はtrueにはどうしてもならないと思うんだけど。
0021nobodyさん
2015/01/12(月) 11:33:29.78ID:fqM0hwsA個々のアプリによって定義するルートが違うとかで、アプリを作る段階にならないと詳細にはわからない。
『それでもとりあえず$pattenのほうが$path_infoよりも長くなるなんて、まずpreg_match関数が機能しないと思う』
とさっきまで考えていたんだが、書いてる途中で少しなにかに気がついた。
ルーティング定義連想配列のキー値は「PATH_INFO」で
そのキー値だけを正規表現に変換するのがcompileRoutesメソッド。
そして変換済みのルーティング定義配列(現ルーティングパラメータ)を
$path_infoとマッチングを行うのがresolveメソッド。
その中でif (preg_match('#^' . $pattern . '$#', $path_info, $matches))
というルーティングパラメータのキー値($pattern)と$path_infoをforeachでまわす処理が出てくるが、
マッチすれば値をマージして返す。
結局resolveメソッドで何がしたいかというと、ルーティングパラメータのキー値をキャプチャした$matchesでマージして
それを返したいだけ。
ってところまで理解できた。
フレームワークのRtouterクラスの理解はこの程度にしておいて、実際にアプリ作る段階で
ルーティング定義配列作ると思うから、そこで実際の値の動きを追って理解しようとお思う。
0022nobodyさん
2015/01/12(月) 12:42:08.78ID:???あとは比較的簡単だよ。
一通り終えてそこに戻れば完全に理解できるかも。
Routerクラスは複雑過ぎて、俺にはイマイチわからなかったけど。
0023nobodyさん
2015/01/12(月) 16:14:53.77ID:fqM0hwsA>>22の言う通り最後の方まで処理追っかけて読んでみるよ。
さんくす。
0025nobodyさん
2015/01/16(金) 18:50:33.50ID:2SMs2buE文字として格納されている$a[0]="6B"を
ビット否定で反転して再び文字列として$a[0]に"94"という形で入れたいのですがどうすればいいですか?
$a = ~intval($a, 16);
$a = dechex($a);
$a = substr($a, 6, 2);
適当にやってたらこれで出来ましたが全然スマートじゃないのでご教授お願いします。
0026nobodyさん
2015/01/16(金) 19:51:28.76ID:???0029nobodyさん
2015/01/16(金) 22:43:51.09ID:???6Bを2進数にすると1101011
これをbit否定で反転すると0010100
10100は16進数で14
>>25はbit否定で反転した1111....1110010100となった時の下位8桁以上を含んでいる
これをbit否定で反転するには6Bの桁数を取得して、左シフトとビット和を使って1で埋めた値をXOR演算で反転すれば良い
カラーコードの16進数として色を反転させたかったら
dechex(hexdec('FF') - hexdec('6B'));
とすればいい。でもこれはbit否定の反転なんて言わん
0030nobodyさん
2015/01/16(金) 22:46:07.52ID:2SMs2buEwindowsの電卓で6BにNOTするとFFFFFFFFFFFFFF94だったので
FFでANDすると94と思った数字になったんですが
これをPHPですると$a = dechex(~hexdec($a)); $a &= 0xFF;
としても0にしかなりません・・・
0031nobodyさん
2015/01/16(金) 22:49:47.64ID:???電卓のその結果は正しい
普通はそれでフラグを管理したりする
FFFFFFFFFFFFFF94という値を使わずにsubstr()して何故か94だけ取得してるのがおかしい
0033nobodyさん
2015/01/17(土) 02:30:14.09ID:???>>30
dechexは int->16進数表記文字列だ ソレに 0xFF の論理和とってどーすんだよ。
0034nobodyさん
2015/01/17(土) 02:31:07.45ID:???0035nobodyさん
2015/01/17(土) 10:35:28.17ID:???0036nobodyさん
2015/01/18(日) 01:07:07.39ID:t9lQSBuq地域選択ですが優れたUIのサイトを御存じの方いらっしゃいませんか?
日本-東京-上野
というように複数階層で選択してもらうのですが、いまいちしっくりくるUiが浮かびません。
3階層か4階層なのにいい感じにまとまっているサイトを御教授ください。
すみませんが、宜しくお願い致します。これでもう2週間くらい考えていますが、私の腐った頭ではアイディアが浮かびません。
0037nobodyさん
2015/01/18(日) 08:29:39.97ID:???0039nobodyさん
2015/01/19(月) 19:58:08.23ID:???この掲示板の住人は>>37>>38のように無能だけだよ
センスが問われる質問をこの無能達にしても仕方がない
いくらかかっても良いから自力で考えた方が遥かに良いだろう
0040nobodyさん
2015/01/19(月) 20:05:02.47ID:???0041nobodyさん
2015/01/20(火) 22:36:40.06ID:???こっちでは回答しないよ。
0042nobodyさん
2015/01/21(水) 00:45:04.08ID:???0043nobodyさん
2015/01/21(水) 19:22:41.15ID:???死ねよ
0044nobodyさん
2015/01/23(金) 21:14:09.03ID:hqqvifMFPHPのようなWebシステムにおいてdispatherっていうのはどういう役割を担うものなのでしょうか?
フレームワークとかでよく見るのですがいまいちよくわかりません
0045nobodyさん
2015/01/24(土) 00:33:02.50ID:???マルチスレッドのほうはスレッドの振り分けで、PHPのフレームワークではリクエストによって処理を振り分け。
意味が違う。
0046nobodyさん
2015/01/24(土) 00:49:53.53ID:???004744
2015/01/24(土) 06:43:22.49ID:/NxVsKku意味が違うものだったのですね
すっきりしました
ありがとうございます
0048nobodyさん
2015/01/25(日) 16:15:26.61ID:smE8X9qk他の無料ブログからインポートした記事が大量にあって、記事IDと画像の紐付けが難しいため
記事本文から一番最初の画像をpreg_match_allで抜き出そうとしたところ
一番最初ではなく、一番最後の画像が抜き出されてしまいます
preg_match_allの使い方が間違っている気がするのですが、ご助言いただけますでしょうか
$img_dir_url = home_url().'/wp/wp-content/uploads/';
$pattern = '/<img.+src=[\'"]'.preg_quote($img_dir_url,'/').'([^\'"]+)[\'"].*>/i';
$string = get_the_content();
if ( preg_match($pattern,$string) ) {
$images = preg_match_all($pattern, $string, $matches);
echo $images[1][0];
}
0049nobodyさん
2015/01/26(月) 05:20:13.27ID:???$image[1][0]に文字列が入ってるのもよくわからんけど
とりあえず$matchesに結果が収まってるからechoするならこっちでしょう
0050nobodyさん
2015/01/26(月) 05:40:05.61ID:???http://peace.2ch.net/test/read.cgi/tech/1418738547/
005148
2015/01/26(月) 06:34:44.15ID:???すみません、質問箇所を抜き出す際に余分な記述を整理していて間違えましたが
正しくは「echo $matches[1][0];」でした
$img_dir_url = site_url().'/wp-content/uploads/';
$pattern = '/<img.+src=[\'"]'.preg_quote($img_dir_url,'/').'([^\'"]+)[\'"].*>/i';
$string = get_the_content();
if ( preg_match($pattern,$string) ) {
$images = preg_match_all($pattern, $string, $matches);
echo $matches[1][0];
}
上記をテストしてみましたが、$matchesに含まれる要素は下記の二つのみでした
一番最初に挿入された画像を取得したいのですが、何故一番最後になってしまうのか……うーん
$matches[0][0] →記事本文全文
$matches[1][0] →記事本文中で一番最後に挿入された画像ファイル名
>>50
プログラム板にも同様のスレがあったの気がつきませんでした
今後参考にします
0052nobodyさん
2015/01/26(月) 06:46:41.86ID:???状況から見て最短マッチじゃなくて最長マッチになっているんだろうな
005348
2015/01/26(月) 08:40:49.20ID:???なるほど、$stringの記事本文を変えてテストしてみたらそれっぽいですね
$matches[0][0]に入っているのは記事全文は勘違いで「<img src="〜」から記事の文末まででした
もう一度正規表現から勉強し直して見直してみます
貴重なヒントありがとうございます
0054nobodyさん
2015/01/26(月) 08:49:01.58ID:???0055nobodyさん
2015/01/26(月) 14:01:02.90ID:???0056nobodyさん
2015/01/26(月) 18:22:05.82ID:???(д`* )
(⊃⌒*⌒⊂)
/_ノωヽ_)
005748
2015/01/26(月) 22:47:47.48ID:???ありがとう〜!
最初の+を+?にしたら無事に1番目の画像が取得できるようになりました、感謝
.*のところも見直した方がいいのかな?と思って外してみたけど
画像が取得できなくなって???なので元のままにしておきました
正規表現まだまだ手探り状態なんで勉強しないとな
0058nobodyさん
2015/01/27(火) 08:52:30.07ID:???投稿記事がどこから始まるかっていうのは法則があるだろうし
ソース抜き出す正規表現絡みの質問多いけどもっとみんなDOMやればいいのに
0059nobodyさん
2015/01/27(火) 15:24:26.49ID:???0060nobodyさん
2015/01/27(火) 23:10:57.91ID:???A→B→Cと遷移したとき
Cにいる状態でブラウザの戻るボタンを押したら
BをとばしていきなりAに遷移するような
仕組みにしたいんですが
どうしたらいいですか?
0061nobodyさん
2015/01/27(火) 23:55:11.26ID:???Bでなんらかの値を確認して妥当ならC、無効ならAにリダイレクト
あとこっちを使いなさい
↓
【PHP】下らねぇ質問はここに書き込みやがれ [転載禁止](c)2ch.net
http://peace.2ch.net/test/read.cgi/tech/1418738547/
0065nobodyさん
2015/01/28(水) 07:08:09.40ID:???ローカルルールも読めないのか?
荒らしがいないときは基本こっちを使うべき>>2にも書いてんだろ
0066nobodyさん
2015/01/28(水) 08:07:42.52ID:???0067nobodyさん
2015/01/28(水) 08:11:41.16ID:???0068nobodyさん
2015/01/28(水) 08:25:32.44ID:???0069nobodyさん
2015/01/28(水) 08:34:13.27ID:???質問に回答もせず荒らすことだけしか考えてない輩がいるからこのスレは終了な
以後、このスレで質問しても荒らしの自演と見做されるので
質問者は
【PHP】下らねぇ質問はここに書き込みやがれ [転載禁止](c)2ch.net
http://peace.2ch.net/test/read.cgi/tech/1418738547/
で質問しましょう
あと、このスレでの質問=荒らしなので回答はやめましょう
0070nobodyさん
2015/01/28(水) 08:42:18.14ID:???0071nobodyさん
2015/01/28(水) 09:00:33.46ID:???0073nobodyさん
2015/01/28(水) 22:43:51.48ID:oxIdnnOu一応、こちらでも事前に調べてみましたがJavaScriptでボタンを非表示にする方法が
あったのですがブラウザ側でJavaScriptを無効にしてた場合に連打されたらまずいなと思い
php側で何か対処法が知りたくてこちらで質問させていただきました。
0075nobodyさん
2015/01/28(水) 23:52:03.61ID:???0076nobodyさん
2015/01/29(木) 02:07:05.50ID:???>>74のようにJavascriptを使用できるブラウザじゃないと操作できないようにするとか、
ユニークなID埋め込んで同IDでPOSTされたものは受け付けないとか、
セッションで管理するとか。
0077nobodyさん
2015/01/29(木) 02:31:36.81ID:0JNlRH9V>>76
ありがとうございます。
ユニークIDを埋め込んでみたら二重POSTを防ぐことができました。
0078nobodyさん
2015/01/29(木) 07:28:28.46ID:???そういう意味で重複時のリジェネレートが必要でない
1発で完全なユニークIDを作成する方法ってあるんだろうか
0079nobodyさん
2015/01/29(木) 09:39:52.62ID:???また荒らしか
0081nobodyさん
2015/01/29(木) 15:41:21.64ID:???あるよ
>>80
どっからどう見ても再生成が必要な例を挙げてしまうほど読解力のない回答者さんこんにちは。
0082nobodyさん
2015/01/29(木) 17:58:28.59ID:???最大長が存在する限り天文学的な確率になっても被る可能性はある
かといって無限な実装は無理
0083nobodyさん
2015/01/30(金) 00:43:13.82ID:???そうだねないね
0084nobodyさん
2015/01/30(金) 07:32:23.26ID:???0085nobodyさん
2015/01/30(金) 07:52:02.85ID:???0087nobodyさん
2015/01/30(金) 13:27:57.23ID:???0088nobodyさん
2015/01/30(金) 15:42:37.56ID:???0089nobodyさん
2015/02/02(月) 18:43:56.09ID:???AサーバにBサーバのphpスクリプトをiFrame内に読み込んだ場合
スクリプトを実行するのはAサーバですか? それともBサーバですか?
0090nobodyさん
2015/02/02(月) 18:55:51.25ID:???0091nobodyさん
2015/02/02(月) 18:58:04.57ID:???0092nobodyさん
2015/02/02(月) 18:59:14.68ID:???iFrameでsrc="script.php"とした場合、どうなるのかと
0093nobodyさん
2015/02/02(月) 19:09:44.23ID:???action属性を空白にしているのに、そのまま機能してるみたいなんですよね。
POSTするとき、Bサーバに問合せてることになりますよね。
さっき、何もせずに外部サーバのiFrameに読み込ませたら機能してビックリしたんです。
これが可能なら、yahooのTopページを読み込んで、偽Yahooとか出来る事になりますよね。
0094nobodyさん
2015/02/02(月) 19:26:31.68ID:???0095nobodyさん
2015/02/02(月) 19:53:10.12ID:???それにしてもDBにまで登録できてしまうとは驚きです
0096nobodyさん
2015/02/02(月) 19:58:41.11ID:???0097nobodyさん
2015/02/02(月) 20:19:23.67ID:???単にそのページのPOST機能でPOSTデータを登録してるに過ぎないんじゃないの。
つーか他所から別の箇所にPOSTできるのは普通だよ。
だからCSRFとか問題になるんだし。
0098nobodyさん
2015/02/03(火) 01:56:10.50ID:???スパム投稿につながる可能性ありますよね。。。。気が付かなかったなぁ
0099nobodyさん
2015/02/03(火) 03:14:32.99ID:???はまちちゃんでぐぐったら?
0100nobodyさん
2015/02/03(火) 09:44:16.65ID:???今のブラウザなら鍵の持ち主のステータスバーへの表示まであるし。
0102nobodyさん
2015/02/03(火) 12:36:59.32ID:???refererを吐き出さない時があるので結構複雑ですね。
referer以外にFormを設置したURLを知る方法ってあるんですかね?
0104nobodyさん
2015/02/03(火) 13:18:13.64ID:???15年遅れてないですか?
業者さんならPHP屋さんをやめたほうがいいですし
これからの人なら本でも買ってください
0106nobodyさん
2015/02/03(火) 14:30:51.28ID:???それで困るケースを考えて、そのケースの対応をしろよ。
■ このスレッドは過去ログ倉庫に格納されています