■ このスレッドは過去ログ倉庫に格納されています
【PHP】下らねぇ質問はここに書き込みやがれ 2
- 1 :デフォルトの名無しさん:2015/07/09(木) 22:41:26.96 ID:7gcchy0Q.net
- PHPに関する下らない質問用避難スレです。
まず読むこと【PHPマニュアル】
http://www.php.net/manual/ja/
- 2 :デフォルトの名無しさん:2015/07/09(木) 22:44:03.40 ID:7gcchy0Q.net
- ◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.5
【連携ソフトウェア】MySQL ImageMagick
【質問内容】
◆質問する時の注意
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・ 解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・ 誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・ SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・ 次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
- 3 :デフォルトの名無しさん:2015/07/09(木) 22:52:09.65 ID:WzYQ7/UQ.net
- 今このスレがダントツで勢い1番ある
これはPHPが死んでない証拠
かぜ…風を感じる
この風はやがで嵐になり世界を覆い尽くすだろう
- 4 :デフォルトの名無しさん:2015/07/10(金) 16:26:47.92 ID:OIRLXo70.net
- 荒らしは呼ばないでくださいw
- 5 :デフォルトの名無しさん:2015/07/10(金) 20:22:05.28 ID:+n//tbc7.net
- PHPDocでさ、「この引数は未使用です」 ってのを明示したいんだけど
そういうのをしめすキーワード とかってあるの?
- 6 :デフォルトの名無しさん:2015/07/10(金) 20:31:11.94 ID:I8IKrBJT.net
- windowsのphp5.6です。
phpってphpファイルの中に沢山のfunctionを記述しておいて、クライアントサイドのJSから特定のfunctionを実行するっていう事は出来ますか?
今はやり方が分からないので、どんなに短いfunctionでもphpファイルに分けているので、数行のファイルが沢山出来て混乱してます。
これを一つのphpファイルに纏めたいんですが。
- 7 :デフォルトの名無しさん:2015/07/10(金) 21:36:55.80 ID:3n0kQAul.net
- 今は
http://localhost/[function名].php
ってことだと思うけど、
http://localhost/test.php?func=[function名]
みたいな感じのアクセスでfunctionが実行できるようにまずは目指すといいよ。
/*****/
function aaa() {
print "aaa";
}
if ($_GET["func"]=="aaa"){
aaa();
}
/*****/
とか。
- 8 :デフォルトの名無しさん:2015/07/10(金) 22:42:24.51 ID:I8IKrBJT.net
- >>7
サンキュー、うまく行ったよ。
感謝するよ。
- 9 :デフォルトの名無しさん:2015/07/10(金) 23:42:29.67 ID:AQ+t2M5U.net
- >>6
>これを一つのphpファイルに纏めたいんですが。
関連する関数を特定のクラスにまとめてメソッド化する。
そうしてからそのオブジェクトのメソッドを呼び出せばいいと思う。
- 10 :デフォルトの名無しさん:2015/07/10(金) 23:48:25.35 ID:I8IKrBJT.net
- >>9
php初心者なんですが、関数をわざわざclass化するメリットが分かりません。
よく使う自分用のライブラリ関数なんですが、そういう場合でもclass化が良いのでしょうか?
- 11 :デフォルトの名無しさん:2015/07/11(土) 13:22:52.85 ID:97s+/3Az.net
- >>10
>よく使う自分用のライブラリ関数なんですが、そういう場合でもclass化が良いのでしょうか?
自分の好きにするといいよ。
関数が100個あって100ファイルにばらけてある場合と
関数が100個あって10個ずつ10ファイルにクラスとしてまとめてある場合と
どちらが使いやすいかのトレードオフになる。
クラスにするメリットは関数を整理できて、カプセル化、再利用性、多態性の活用などがよく挙げられる。
ただし、まとめるにしても関連のあるものを上手くまとめて凝集度をあげないとメリットにはならない。
- 12 :デフォルトの名無しさん:2015/07/13(月) 13:28:30.09 ID:oX4poPnV.net
- オブジェクト指向だし使った方がいいと思うけど
- 13 :デフォルトの名無しさん:2015/07/15(水) 00:53:43.66 ID:8rWetXNK.net
- フレームワーク使えば大抵はurlでメソッド指定する形じゃないかえ?
- 14 :デフォルトの名無しさん:2015/07/15(水) 11:59:32.47 ID:chI1HCyx.net
- クラス化するとき悩むのが
なにをメンバ変数で持ってどこからを引数で取るか
線引きがめんどくさい
構造に機能を持たせる
というOOの基本にたびたび戻らないと道に迷う
- 15 :デフォルトの名無しさん:2015/07/15(水) 18:44:26.33 ID:chI1HCyx.net
- ループしない1回だけのループ
ってどうやって書いてる?
とちゅうでbreakするためだけに使うループ
- 16 :片山博文MZ ◆T6xkBnTXz7B0 :2015/07/15(水) 18:53:14.79 ID:OqXQaHQl.net
- >>15
do {
...
} while (0);
- 17 :デフォルトの名無しさん:2015/07/15(水) 20:55:04.20 ID:70iQnSqB.net
- 新たなるオライリー本か?
http://www.amazon.co.jp/dp/B00TN97BE2
- 18 :デフォルトの名無しさん:2015/07/15(水) 21:27:10.55 ID:R8AN98c6.net
- オブジェクトが実体として何で出来ているかをイメージしてから組まないと自分含め使いにくいものができないか?
例えばカレンダーなら本体は日付をインデックスにしたカレンダーデータの配列とポインタになるDateオブジェクトだろ
あとは成り行きというか使いやすいように追加してけばいいんじゃね
- 19 :デフォルトの名無しさん:2015/07/15(水) 23:17:08.37 ID:gZn+GrQT.net
- >>15
わざわざループにしなくてもifで良いだろ?
- 20 :デフォルトの名無しさん:2015/07/15(水) 23:30:47.77 ID:chI1HCyx.net
- >>19
たまには breakしましょ! って気分にもなる。
ところで、staticなプロパティには $this->hoge みたいなアクセスできないけど
これってどうしてこういう仕様になったん? $this ってつけるのがおこがましいから?
- 21 :デフォルトの名無しさん:2015/07/17(金) 18:23:52.01 ID:+cEtQv4N.net
- 教えてほしいことがあります。
16文字の数字(10進数だが16進数と見立てて扱う)をTripleDESで暗号化したいのですが、
暗号化後の文字は同じ文字数にして16進数の文字列として出力したいのです。
PHPでの暗号化のロジックはここを参考にしました。
http://pentan.info/php/sample/mcrypt.html
しかしバイナリを文字列に変換する方法が分かりません。何かいい方法は無いですか?
- 22 :デフォルトの名無しさん:2015/07/17(金) 21:17:19.62 ID:Es/joK9Z.net
- >>21
pack使えばいいんじゃね?
- 23 :デフォルトの名無しさん:2015/07/17(金) 21:56:25.92 ID:fqZ49WSE.net
- メアドとパスワードが一致したらログインしてheaderでindexに飛ばすってのでエラってる
ログインボタン一回クリックで真っ白になって、更新するとセッション有りでindexに飛ぶんだけどこれ何事?
XAMPPのローカル環境つかってます
- 24 :デフォルトの名無しさん:2015/07/17(金) 22:28:49.31 ID:X7JQ6nLK.net
- Locateヘッダちゃんと出てる?
- 25 :デフォルトの名無しさん:2015/07/18(土) 00:35:44.93 ID:nGHsy5jQ.net
- >>23
日本語しゃべれないの
- 26 :デフォルトの名無しさん:2015/07/18(土) 13:11:37.92 ID:IZxdPzJ7.net
- aaa.php?
みたいな末尾の?って何を表すんですか?
例えば$ajaxのurl指定する場合など。
?なくても行けるんですが。何ですか?
- 27 :デフォルトの名無しさん:2015/07/18(土) 13:21:37.90 ID:wSGt/trv.net
- >>26
aaa.phpっていうファイルがあるか確認してる。あればtrueが返ってくる。
・・・というのは冗談でURL引数って奴。コマンドライン引数みたいな感じ。
- 28 :デフォルトの名無しさん:2015/07/18(土) 21:04:30.97 ID:tiSbDOek.net
- $a = 6 if($b==3);
みたいな書き方ってある?
- 29 :デフォルトの名無しさん:2015/07/18(土) 22:57:41.14 ID:BcDQum9s.net
- >>28 それはない。
これならある。
if($b==3) $a = 6;
- 30 :デフォルトの名無しさん:2015/07/18(土) 23:29:20.25 ID:BcDQum9s.net
- あと少し違うが3項演算子。
$a = ($b==3) ? 6 : 0;
- 31 :デフォルトの名無しさん:2015/07/18(土) 23:46:57.93 ID:vbEi4sCx.net
- >>20
その方法ではインスタンスからは静的定義は参照できない。
$this::hogeを使いなされ
- 32 :デフォルトの名無しさん:2015/07/19(日) 00:07:40.45 ID:tXAPBBi/.net
- $a = ($b==3) ?: 6;
これもいけるはず。
- 33 :デフォルトの名無しさん:2015/07/19(日) 02:23:02.42 ID:c+wEV4Gg.net
- 【ワカヤマン】PHP技術者認定試験 Part2
http://hello.2ch.net/test/read.cgi/lic/1437239772/l50
- 34 :デフォルトの名無しさん:2015/07/19(日) 10:10:22.19 ID:0klZrZWn.net
- >>32
式 expr1 ?: expr3 の結果は、expr1 が TRUE と同等の場合は expr1、 それ以外の場合は expr3 となります。
http://php.net/manual/ja/language.operators.comparison.php#language.operators.comparison.ternary
- 35 :デフォルトの名無しさん:2015/07/19(日) 13:22:36.56 ID:6ediHd5J.net
- $a = isset($_GET['a']) ? $_GET['a'] : null;
とか書かないとエラー出る間抜けな仕様どうにかしてほしいわ
- 36 :デフォルトの名無しさん:2015/07/19(日) 15:13:16.72 ID:RIeQhCDh.net
- >>35
けっきょく、それはそういう関数を書いた。
GETとPOST両対応必要とかよくあるし。
まあPHPのことだし、文句言いまくってたら
そのうちそういう関数が標準に作られると思う。
- 37 :デフォルトの名無しさん:2015/07/19(日) 22:39:27.31 ID:WiE9ew2Y.net
- PHP7以降は??演算子で同じことが実現できるようになるかと
- 38 :デフォルトの名無しさん:2015/07/20(月) 00:23:03.73 ID:jGk3X2/t.net
- はーギブアップ。助けてくり。
レジ内のトランザクションファイルがBtrieveで管理されてるんです。そのファイルをlinuxにFTP後、phpで読むのにpervasiveからダウンロードしたodbcでコネクトしようとしてるんだが、どーにも上手くいかない。誰か経験した方おられますかー?
- 39 :デフォルトの名無しさん:2015/07/20(月) 00:41:49.48 ID:KxSgKVVh.net
- エラーの内容をここに記せば、助けてやらぬこともないが・・・
- 40 :デフォルトの名無しさん:2015/07/20(月) 01:03:24.81 ID:jGk3X2/t.net
- >>39
はうう。明日も早よから仕事でもう寝るでやんす。エラー内容は仕事の合間見てお披露目いたしやすん
- 41 :デフォルトの名無しさん:2015/07/22(水) 04:21:40.30 ID:ekK874Uz.net
- >>31
selfとはなんだったのか
- 42 :デフォルトの名無しさん:2015/07/22(水) 04:26:01.66 ID:ekK874Uz.net
- >>28
後置ifはphpには無い。英語が母語ならまだしも、日本人にとっては後置ifは自然じゃないし、無くてもよくない?
>>38
使ったこともやったことも無いけど、シンプルに転送モードを間違えているとかではないのかな。
- 43 :デフォルトの名無しさん:2015/07/22(水) 13:23:53.96 ID:ASUhZOW+.net
- >>42
$a = 6 if($b=="ikemen");
と書いたらとても自然になる。
- 44 :デフォルトの名無しさん:2015/07/22(水) 17:06:34.54 ID:8TpaOP4G.net
- vs2013でphpやっている人居ません?
ブレークポイント置いてもデバッガでブレークしない時が有るので困ってます。
- 45 :デフォルトの名無しさん:2015/07/23(木) 15:49:24.85 ID:055pcEAQ.net
- use の使い方がよくわからない
これってどこかが起点になるの?
- 46 :デフォルトの名無しさん:2015/07/24(金) 20:15:48.68 ID:+CDH8aof.net
- あの、こんな質問しても回答得られないかと思うんですが、
自作のPHPプログラムが
PHP5.3.3
で動かない関数か何かの機能があったので
PHP5.5.19
にしたら動いたのですが、それが何の関数あるいは機能だったのか忘れてしまいました。
確か、何か文字列を扱うような処理だったような気がするんですが。
もし何かご存じでしたら教えてください。
- 47 :デフォルトの名無しさん:2015/07/25(土) 00:16:52.68 ID:d8tAw0yr.net
- hex2bin
- 48 :デフォルトの名無しさん:2015/07/25(土) 00:22:57.00 ID:d8tAw0yr.net
- 公式久々に見たが7のβリリースされたのか
誰か試した?
- 49 :デフォルトの名無しさん:2015/07/25(土) 00:30:00.61 ID:bLirGUmg.net
- >>47
レスありがとうございました。
hex2binではなかったのですが、47さんのレス見て、記憶が蘇り
string ucwords ( string $str [, string $delimiters = " \t\r\n\f\v" ] )
バージョン 説明
5.4.32, 5.5.16 delimiters パラメータが追加されました。
でした。助かりました。
このdelimiters を使ったんでした。
- 50 :デフォルトの名無しさん:2015/07/25(土) 17:38:12.49 ID:UNRH9nX8.net
- use って、「この下全部」の指定できない?
- 51 :デフォルトの名無しさん:2015/07/25(土) 18:39:15.22 ID:9eb0cRTw.net
- 初心者がPHPを学んで、在宅ワークすることはできますか?クラウドワークスとか使って。
- 52 :デフォルトの名無しさん:2015/07/25(土) 22:17:10.90 ID:UyNvGgTG.net
- >>51
仕事ふっても損害賠償で追い込まれそう。
- 53 :デフォルトの名無しさん:2015/07/25(土) 23:49:31.94 ID:58G5Vzfx.net
- 関数内のコードを文字列として取得したいのですが、知恵を貸してください。
<?php
$closure = function () {
echo 'ああああ';
};
$function = new ReflectionFunction($closure);
$function->getStartLine(); // 2
$function->getEndLine(); // 4
↑の場合、始点が「2行目12文字目」で、終点が「4行目2文字目」という結果を得られることが理想です。
今のところ、その関数が宣言された行数は取得できますが、何文字目までは分かりません。
ちなみに、PHP5.4以降です。
- 54 :デフォルトの名無しさん:2015/07/25(土) 23:56:28.48 ID:58G5Vzfx.net
- >>53 の続き
行数だけでも取得できそうですが、↓の場合、行数だけではどちらが対象の関数か判断できません。
<?php
$a = function () { ... }; $b = function () { ... };
$function = new ReflectionFunction($b);
$function->getStartLine(); // 2
$function->getEndLine(); // 2
- 55 :デフォルトの名無しさん:2015/07/26(日) 01:19:35.53 ID:h4z7MVDb.net
- >>53
自分自身を読めばいいんじゃね?
- 56 :デフォルトの名無しさん:2015/07/26(日) 01:49:05.89 ID:zHKRpE7w.net
- >>55 返信ありがとうございます。完璧ではありませんが、自己解決しました。
<?php
// (1)関数名から特定できました。
function bar() { ... } function foo() { ... }
codeDump('foo');
// (2)変数名をたどって特定できました。
$bar = function () { ... }; $foo = function () { ... };
codeDump($foo);
// (3)呼び出し元の行数から特定できました。
codeDump(function () { ... });
// (4)どっちの関数か分からない。
codeDump(function () { ... }); codeDump(function () { ... });
(4)もcodeDump()の実行を記録すれば、何とかいけそうな気もします。
codeDump()のコードは長いので省きます。
- 57 :デフォルトの名無しさん:2015/07/26(日) 16:02:52.29 ID:ZSlyWYZ/.net
- >>51
出来るがやめたほうがいい。
毎日半日以上土日も使って取り組んで1ヶ月で5万円とかになるだろうから、
ニートでもコンビニで働いた方がいい。
- 58 :デフォルトの名無しさん:2015/07/27(月) 17:27:06.21 ID:nDok85gM.net
- php5.6のwindows版x64ビルドってexperimentalって表示されているけれど、webサーバーに入れるならx86版が無難なのか?
あえてx64版入れたらパフォーマンス上がったりするん?
- 59 :デフォルトの名無しさん:2015/08/01(土) 04:29:29.73 ID:VbjGDeVR.net
- 今ならx64がおすすめ
- 60 :デフォルトの名無しさん:2015/08/01(土) 11:22:12.36 ID:Idj4/r/L.net
- PHP7には 変数名の大文字小文字を無視するオプションはある?
- 61 :デフォルトの名無しさん:2015/08/02(日) 10:41:08.23 ID:6SU53Ow+.net
- PHPで作成したプログラムを納品する時に暗号化して納品したいのですが無料で使えるものってありますか?
- 62 :デフォルトの名無しさん:2015/08/02(日) 13:39:57.36 ID:5pxTtzkh.net
- >>61
そのコードなら、そのまま納品しても大丈夫だと思うよ
- 63 :デフォルトの名無しさん:2015/08/02(日) 13:59:43.94 ID:GbrSR7tz.net
- それを心配しないといけない客の仕事をしたのが運の尽き
- 64 :デフォルトの名無しさん:2015/08/02(日) 14:57:32.96 ID:K/J2HC0o.net
- if(count($hoge) < 5)
$foo = count($hoge);
こんなコード書くとcount()が2回実行されて無駄だから
$bar = count($hoge);
if($bar < 5)
$foo = $bar;
みたいにしたほうがいいのかな?
- 65 :デフォルトの名無しさん:2015/08/02(日) 17:45:59.09 ID:GbrSR7tz.net
- 2回程度なら別に。
ループ終了条件に入れるのは避けるといいよ
- 66 :デフォルトの名無しさん:2015/08/02(日) 20:01:49.28 ID:sk4/2k9I.net
- >>64
宗派による。
一つは、関数count()が2回実行されて無駄だよ派。
もう一つは、一時変数$barを無駄に使うな派。
- 67 :デフォルトの名無しさん:2015/08/02(日) 21:13:03.78 ID:lE/E+5km.net
- >>65、>>66
サンクス!
一時変数を無駄に使うな派に入信しまぁす
- 68 :デフォルトの名無しさん:2015/08/03(月) 11:02:06.41 ID:ecUSu7IP.net
- 配列で変数に文字列を代入する場合、
変数名は「ダブルコーテーション」で囲うと参考書には書かれてたのですが
サンプル(↓)にはシングルコーテーションで囲われてました。
シングルとダブルでどう使い方が違うのでしょうか?
$conf = array(
'test1' => "1234"
'test2 => "abcf"
);
- 69 :デフォルトの名無しさん:2015/08/03(月) 11:27:50.73 ID:4ImaC/Mz.net
- PHPの場合シングルのほうが変数展開が起きない分微々たるもんだが総じて早い
変数を入れたり改行コードなんかの制御入れたりしない場合はシングルのほうがいい
参考書なんてのは作者にあわせたコーディング規約で書かれてるので
その作者好みのコードであってそれが全てではないことは頭に入れておいたほうがいい
特に初心者向けだとシングルよりダブルのほうがトラブルが起きにくいっていう事情もある
"こんにちは{$name}さん\n";
'こんにちは' . $name . 'さん' . "\n";
変数展開ってのは↓のようなコード
$a = 'test1';
$conf = array(
"$a" => 1234
);
echo $conf['test1'];
- 70 :デフォルトの名無しさん:2015/08/03(月) 11:39:25.12 ID:0IyVer1H.net
- >>69
> "こんにちは{$name}さん\n";
これも変数展開ですよ
- 71 :デフォルトの名無しさん:2015/08/03(月) 11:41:05.12 ID:4ImaC/Mz.net
- >特に初心者向けだとシングルよりダブルのほうがトラブルが起きにくいっていう事情もある
これの説明で書いたけど書く場所が悪かったね
- 72 :デフォルトの名無しさん:2015/08/03(月) 12:13:37.23 ID:93o/VQtA.net
- >>68
「変数名」ではなく「連想配列のキー」をどう囲うかという質問じゃないの?
- 73 :デフォルトの名無しさん:2015/08/03(月) 15:57:04.96 ID:nTSIXxVa.net
- >>69
あれほとんど気のせいレベルらしいよ
どっかで速度測ってたけど、むしろ逆なくらい差が無かった
- 74 :デフォルトの名無しさん:2015/08/03(月) 19:06:22.14 ID:kjCv49NU.net
- http://www.phpbench.com/
http://www.blueshoes.org/en/developer/php_bench/
Quote Typesdouble (") vs. single (') quotes
ここの5番目と6番目。
両サイトじゃ結果が違うけど自分のテスト環境じゃ同様に1000回ループで後者のダブルほうが遅くなる。
Windows 32bit 5.4.12で0.00049と0.00064
Linux 64bit 5.4.16で0.0042と0.00089
phpbench.comでどういう環境で差がでないのか知りたいが環境記述が見当たらないな。
ヘッダ見る限りじゃUnix系のPHP5.4.29みたいで、自分に近い環境のようだけど、
ベンチマークに使ってる機材は別かもしれないし。
- 75 :デフォルトの名無しさん:2015/08/03(月) 19:07:47.81 ID:kjCv49NU.net
- >Linux 64bit 5.4.16で0.0042と0.00089
Linux 64bit 5.4.16で0.00042と0.00089に訂正
- 76 :デフォルトの名無しさん:2015/08/04(火) 01:35:51.66 ID:XAt8t1hS.net
- アクセラレータかなんか使ってんじゃね?試してないからなんともいえないけど
- 77 :デフォルトの名無しさん:2015/08/04(火) 10:52:31.94 ID:3xU88wGi.net
- PHP tools for VS
使っている人いる?
MS純正でこういうの無いの?
- 78 :デフォルトの名無しさん:2015/08/05(水) 02:41:24.63 ID:2Cq1bTVi.net
- Web上でパスワード変更するためのフォームを作成中です。
環境は、OS: Ubuntu 14.04.2 LTS カーネル: Linux 2.6.32 PHPバージョン: 5.5.9です。
以下のようにしてPHP上でexpectとpasswdコマンドを呼び出してパスワードを変更させています。
$cmd = EXPECT_PATH." -c \"\n";
$cmd .= PASSWD_COMMAND."\n";
$cmd .= "expect \\\"(current) UNIX password:\\\"\n";
$cmd .= "send -- \\\"".$old_password."\\n\\\"\n";
$cmd .= "expect \\\"Enter new UNIX password:\\\"\n";
$cmd .= "send -- \\\"".$new_password."\\n\\\"\n";
$cmd .= "expect \\\"Retype new UNIX password:\\\"\n";
$cmd .= "send -- \\\"".$retype_new_password."\\n\\\"\n";
$cmd .= "expect \\\"passwd: all authentication tokens updated successfully.\\\"\n";
$cmd .= "send -- \\\"exit\\n\\\"\n";
$cmd .= "\"";
$stream = ssh2_exec($connection, $cmd);
fclose($stream);
ところがこの方法だと、実行中にシェル上でps -elf | grep passを実行すると
「/usr/bin/expect -c spawn /usr/bin/passwd expect "(current) UNIX password:" send -- "現在のパスワード\n"…send -- "exit\n"」
のようにパスワードが平文で表示されてしまいセキュリティ上問題があると思われます。
そこでphp側でパスワード等の情報を外部シェルスクリプトに渡して外部シェルスクリプト側でパスワードを変更させようと考えてますが、外部シェルスクリプトに変数を渡す方法を教えていただけますでしょうか。
なお、ssh2_execの第4引数に環境変数を設定できそうなので試してみましたがPHP Warning: ssh2_exec(): Failed setting old_password=oldpassword on remote end in /xxx/xxx/test.php on line XXのように言われてしまいました。
- 79 :78:2015/08/05(水) 02:46:10.16 ID:2Cq1bTVi.net
- すみません。投稿時の文字数の規制のためコードを省略していた際に誤って一緒に削ってしまいましたが、
define('EXPECT_PATH', '/usr/bin/expect');
define('PASSWD_COMMAND', 'spawn /usr/bin/passwd');
が定義されています。
また、>>78のコードの前段階で以下のようにssh接続を行っています。
$server = "localhost";
$port = 22;
if (!$connection = ssh2_connect($server, $port)) {
echo "Connection failed!\n";
exit;
}
if (!ssh2_auth_password($connection, $username, $old_password)) {
echo "Authentication failure!\n";
exit;
}
よろしくお願いいたします。
- 80 :デフォルトの名無しさん:2015/08/05(水) 03:32:13.43 ID:P4ayKmpW.net
- http://d.hatena.ne.jp/gunshot/20090904/p2
- 81 :78:2015/08/06(木) 03:00:16.86 ID:eVr6rnl0.net
- >>80
ありがとうございます。なんとか解決できました!
- 82 :デフォルトの名無しさん:2015/08/07(金) 00:32:15.42 ID:b6GYbe8Q.net
- 社内Lan上でWebサーバ立ち上げると、社外から見られることはあるんですか?
ただし、そういう設定にはしていない前提で御回答ください。
- 83 :デフォルトの名無しさん:2015/08/07(金) 00:46:40.61 ID:kZ4TYkCP.net
- >>82
あなたやネットワーク管理者が一般的にそういう設定にはしていないとしても、バカがいるとできる
- 84 :デフォルトの名無しさん:2015/08/07(金) 01:02:30.35 ID:b6GYbe8Q.net
- バカが何するとそうなるのでしょう?
あと、php5.5使ってます
- 85 :デフォルトの名無しさん:2015/08/07(金) 01:07:36.80 ID:Tkx3sFxb.net
- そういう設定にはしていない事が確実なら、アクセスされる事はないんだろう。
社外から見られる可能性はあるか?という質問なら、見られる可能性はあるんだろう。
- 86 :デフォルトの名無しさん:2015/08/07(金) 11:17:33.82 ID:VjeH+b7c.net
- >>84
PHPは関係ない。
- 87 :デフォルトの名無しさん:2015/08/07(金) 12:06:55.93 ID:toqjv3cn.net
- >>82
的確なネットワーク構成なら問題ない
ネットワーク管理者がうんこじゃなければ平気だろう
- 88 :デフォルトの名無しさん:2015/08/07(金) 17:20:27.74 ID:eN4mur/X.net
- >>82
例えそういう設定にしてなくとも可能性はある
例えば未知の脆弱性を突かれてネットワークに侵入されたり、ウイルスやトロイ等を仕込まれたり・・・例を挙げればキリが無い
- 89 :デフォルトの名無しさん:2015/08/07(金) 18:05:42.92 ID:o4PrLinW.net
- v6がない理由を50文字以内くらいで教えて
- 90 :デフォルトの名無しさん:2015/08/07(金) 18:17:20.61 ID:VjeH+b7c.net
- >>89
V8を讃えよ!
- 91 :デフォルトの名無しさん:2015/08/07(金) 18:28:40.67 ID:oad5u1TR.net
- >>89
V6はTOKIOに負けたから
- 92 :デフォルトの名無しさん:2015/08/08(土) 00:09:09.24 ID:UAFhNLHx.net
- すみません。ほんとに初心者で申し訳ないのですが教えてください。
以下のif文が実行されないのですが、どこが間違っているのでしょうか?
$text = "[ja]";
if( strpos($text, "\[:ja\]") ){
echo "match";
}
よろしくお願いいたします。
- 93 :デフォルトの名無しさん:2015/08/08(土) 00:53:10.84 ID:fdExEYFc.net
- if文は実行されてるけど条件に合致していないだけ
あとその条件文でstrposは一致した場合0を返すときがあるからその書き方じゃだめ
if ( strpos($text, "\[:ja\]") !== false )
とか
- 94 :デフォルトの名無しさん:2015/08/08(土) 15:28:03.35 ID:JK2LUyvo.net
- アスキーコードが入った配列を 文字列にしたいんだけど
すっきり綺麗に書く方法はありますか?
$bins = array(85,78,75,79);
$text = unko($bins);
unko() を作りたい。
- 95 :デフォルトの名無しさん:2015/08/08(土) 15:39:44.21 ID:cerAE1Gg.net
- >>94
yieldとchr使えば?
- 96 :デフォルトの名無しさん:2015/08/08(土) 16:16:50.97 ID:JK2LUyvo.net
- >>95
yieldをこれにどう使うのかわかんねー・・・
- 97 :デフォルトの名無しさん:2015/08/08(土) 18:50:02.44 ID:d7oiKQ0C.net
- すっきり綺麗に書きたい気持ちはわからんでもないけど、関数化するなら別によくない?
- 98 :デフォルトの名無しさん:2015/08/09(日) 10:11:38.86 ID:Bf9QBgBr.net
- 復活〜
- 99 :デフォルトの名無しさん:2015/08/09(日) 12:08:35.38 ID:bIJ4oByb.net
- packすりゃあいいじゃんと思ったけどPHPのpackは配列渡しても正しく動かないのか・・・・・
そうなると $text = implode('', array_map('chr', $bins)) がコードとしては簡潔かな?
- 100 :デフォルトの名無しさん:2015/08/09(日) 20:38:11.87 ID:un5fqtRA.net
- >>99
それじゃウンコ()使ってないからダメだな
- 101 :デフォルトの名無しさん:2015/08/09(日) 20:42:56.24 ID:1cZqWlyS.net
- PHPって画面を遷移させずに画面内に動きを起こすことってできないんですか?
例えば、2つのテキストボックスに数値を入れるタイプの簡単な計算機を作って、
「計算」ボタンを押すと画面遷移させず更新もさせずに結果をその画面に表示するとかです
- 102 :デフォルトの名無しさん:2015/08/09(日) 20:52:01.39 ID:XO0o9kDB.net
- >>101
無理。javascriptで。
- 103 :デフォルトの名無しさん:2015/08/09(日) 21:19:31.24 ID:1cZqWlyS.net
- >>102
そうですか
ありがとうございます
- 104 :デフォルトの名無しさん:2015/08/11(火) 01:01:18.37 ID:vIC4fnIq.net
- phpってxdebug入れると遅くなるのか?
俺に教えやがれ!さあ来い!
- 105 :デフォルトの名無しさん:2015/08/11(火) 10:24:08.90 ID:TmniTjHd.net
- foreachで十分なんだけど、でもカウンターも欲しい ってときどうしてる?
A: for($i=0; $i<count($list); $i++){ $a=$list[$i]; 処理; }
B: $i=0; foreach($list as $a){ 処理; $i++; }
Bの方が好きなんだけど、$iがループ外にあるのがすげーいや。
- 106 :デフォルトの名無しさん:2015/08/12(水) 03:31:05.24 ID:uUCq7Pj1.net
- >>105
ループ終了条件にcountを使うなと教わらなかったのか?
よって前者は $cnt = count($list); がループ外に出現することになる。
- 107 :デフォルトの名無しさん:2015/08/12(水) 08:11:15.94 ID:sFpfPRX7.net
- heredocの中でjson_encodeを使うことは出来ないのですか?
<?php
$hensu = '値';
echo <<<EOM
<script type="text/javascript">
var hensu2 = <?php echo json_encode($hensu) ;?>;
alert( hensu2 );
</script>
EOM;
?>
こういうのが出来ませんでした。
- 108 :デフォルトの名無しさん:2015/08/12(水) 10:56:55.76 ID:XD0FvRJl.net
- そりゃそうだろ
$json_encode = "json_encode";
しておいて
<?php echo json_encode($hensu) ;?>;
を
{$json_encode($hensuu)}
にしたらどうなる?
- 109 :デフォルトの名無しさん:2015/08/12(水) 10:59:49.91 ID:MGGhiGE4.net
- >>107
ヒアドキュメント内では、変数や特殊文字は展開できるけど、関数は実行できないよ。
関数は外に出すといい。
http://php.net/manual/ja/language.types.string.php#language.types.string.syntax.heredoc
<?php
$hensu = '値';
$hensu2 = json_encode($hensu);
echo <<<EOM
<script type="text/javascript">
var hensu2 = {$hensu2};
alert( hensu2 );
</script>
EOM;
?>
- 110 :デフォルトの名無しさん:2015/08/12(水) 14:10:09.24 ID:sFpfPRX7.net
- >>108>>109
上手く行きました。有難うございます。
この
{ }
の意味は何ていうキーワードでくぐれば良いでしょうか?
- 111 :デフォルトの名無しさん:2015/08/12(水) 14:31:29.53 ID:uUCq7Pj1.net
- >>110
>>109のリンク先に書いてるよ
- 112 :デフォルトの名無しさん:2015/08/12(水) 15:49:57.10 ID:IssKFxaM.net
- >>106
教わったけど面倒くさいから・・・ それにこういうのは、
いつかそのうちPHPが実行時に最適化するはずなので
その日を信じて今日も生きる
- 113 :デフォルトの名無しさん:2015/08/12(水) 16:31:09.47 ID:h9xT+Vg3.net
- 別にそうしなければならないというわけでもないからな
コンパイラ感覚で書いてる人は多いでそ
- 114 :デフォルトの名無しさん:2015/08/12(水) 17:03:02.40 ID:sFpfPRX7.net
- >>111
波括弧構文というのですか。難しい。
- 115 :デフォルトの名無しさん:2015/08/12(水) 17:15:49.37 ID:uUCq7Pj1.net
- >>112
まぁボトルネックになってたら出すでもいいけど。
- 116 :デフォルトの名無しさん:2015/08/13(木) 05:07:20.03 ID:jvB0Vatl.net
- >>114
意味さえわかればその辺の翻訳者が適当につけた名前なんてどうでもいいわ
別になくても動くけど文字としての$記号があったら意図しない動作をする場合もあるし
変数であるのを明示するのはいいこと
- 117 :デフォルトの名無しさん:2015/08/13(木) 09:15:37.50 ID:mPByWcg9.net
- 値は$varです。
とかやると
“$varです。”という変数の内容を出そうとするからな、{}は常に入れるべきかなあ
- 118 :デフォルトの名無しさん:2015/08/14(金) 16:18:46.79 ID:4t7qYmCW.net
- 質問なのですが、phpとmySQLを使って画像処理をしたいのですが、どんなライブラリを取り入れればよいでしょうか。
- 119 :デフォルトの名無しさん:2015/08/14(金) 16:33:11.21 ID:tycV63/U.net
- >>118
gdつけてコンパイルしなおせば?
あとmysqlがなぜ必要と思った?
- 120 :デフォルトの名無しさん:2015/08/14(金) 16:46:35.57 ID:4t7qYmCW.net
- >>119
目的としては特定の色に名前を付けてその名前を表示する、みたいなことをしたいので、
そのためにmySQLを入れようかと思ったのですが、不要ですか??
- 121 :デフォルトの名無しさん:2015/08/14(金) 16:51:26.37 ID:qC8ZbOuS.net
- 色DB
- 122 :デフォルトの名無しさん:2015/08/14(金) 16:54:26.91 ID:vqGh2HbU.net
- PHPってソース解析される可能性ありますか?
- 123 :デフォルトの名無しさん:2015/08/14(金) 16:54:31.89 ID:4t7qYmCW.net
- >>121
単語だけ言われましても・・・(´・ω・`)
- 124 :デフォルトの名無しさん:2015/08/14(金) 17:07:33.56 ID:mMb0xxGG.net
- >>123
環境は?
phpのモジュールは追加するのかビルドしてるのか?
MySQLはインストール済み?
MySQL側の管理はどの程度できる?
SQL書ける?
- 125 :デフォルトの名無しさん:2015/08/14(金) 17:10:02.44 ID:mMb0xxGG.net
- >>122
無い
でも穴開けられやすいから注意な
- 126 :デフォルトの名無しさん:2015/08/14(金) 17:42:14.93 ID:4t7qYmCW.net
- >>124
環境はxamppとaptana3を使っています。
phpに関しては初期設定以外特に追加もビルドもしていません。
mySQLはこれから手をつけようか、というところです。
どうでしょうか?
- 127 :デフォルトの名無しさん:2015/08/14(金) 17:44:27.96 ID:vqGh2HbU.net
- >>125
何に穴が開くんでしょうか?
- 128 :デフォルトの名無しさん:2015/08/14(金) 18:34:43.43 ID:mMb0xxGG.net
- >>127
パーミッション関係なしに拡張子だけで実行できるじゃんか
アップローダ作ってうっかりphpファイルをコンテンツの場所に置けるようにしただけで
ソース読むphp置けちゃったりするべ。
- 129 :デフォルトの名無しさん:2015/08/14(金) 18:40:06.49 ID:mMb0xxGG.net
- >>126
これから覚えることが多すぎる
xamppを一つ一つ覚えてからかなあ、特に管理部分
画像処理といえるのかわからんけど、色の名前とパラメタの対応とか
将来的に変わらないデータならDB使うまでもないような気はする
練習にはいいけど
- 130 :デフォルトの名無しさん:2015/08/14(金) 20:38:34.17 ID:9UnPChAc.net
- >>126
画像処理とMySQLはほとんど関係ない。
まずは、GDとかで四角形なり画像の出力を試すといい。
http://php.net/manual/ja/book.image.php
http://php.net/manual/ja/function.imagerectangle.php
もしGDがはいってないならインストール。
ただGDって直線はいいけど曲線は苦手。ギザギザになる。
- 131 :デフォルトの名無しさん:2015/08/15(土) 01:32:47.01 ID:+JKpzm6t.net
- クラスの中でDBからひっぱってきたデータを多次元配列で変数に納めてリターンしたいんですけど中では無理なんですかね。外でforeachで回すのも無駄なので方法を教えてほしいです。
- 132 :デフォルトの名無しさん:2015/08/15(土) 10:49:18.29 ID:Wj7gSpLp.net
- >>131
外でなく中でっていうのはSQLでやるってこと?
- 133 :デフォルトの名無しさん:2015/08/15(土) 14:01:37.64 ID:iShapREu.net
- >>130
gdってインストールで済むのか。 ほんとだパッケージあるじゃん。
毎回コンパイルしてたわ。 なんだよもー!
- 134 :デフォルトの名無しさん:2015/08/15(土) 15:04:43.67 ID:+JKpzm6t.net
- >>132
オブジェクトから多次元配列をリターンさせたい
- 135 :デフォルトの名無しさん:2015/08/15(土) 17:21:41.60 ID:iShapREu.net
- >>134
自作クラスにぶっこめばいいぞ。
fetchallでクラス指定できるじゃん?あれ使う。
- 136 :デフォルトの名無しさん:2015/08/15(土) 18:26:16.31 ID:+JKpzm6t.net
- >>135
素人なもんであれじゃわからんです。
- 137 :デフォルトの名無しさん:2015/08/15(土) 20:43:53.04 ID:iShapREu.net
- >>136
もー! 「fetchall クラス あれ」 で検索で出てくるじゃん!
自分でテーブルごとにクラス作ってカラム名でメンバ変数書いて
$sth->fetchAll(PDO::FETCH_CLASS, クラス名);
ってやるやつ。 もういきなりメンバ変数に値入って返るから。
- 138 :デフォルトの名無しさん:2015/08/15(土) 21:53:38.11 ID:+JKpzm6t.net
- >>137
たぶんあった。ありがとう。
- 139 :デフォルトの名無しさん:2015/08/16(日) 00:09:19.03 ID:W1BPcUvW.net
- >>137
ヨコヨコからです。こんなのがあるのか知らなかった。モノスンゴイ便利〜
- 140 :デフォルトの名無しさん:2015/08/16(日) 04:56:30.22 ID:EjNR4Gby.net
- windows(utf-16)でファイル・ディレクトリ操作でき無いですか?
ASCII、SJISならいいんですが。その他のutf-16ができません。
拡張モジュールとかありますか?
how to iterate over non-English file names in PHP - Stack Overflow
http://stackoverflow.com/questions/2947941/how-to-iterate-over-non-english-file-names-in-php
- 141 :デフォルトの名無しさん:2015/08/16(日) 09:57:03.06 ID:z6SsnuJ9.net
- >>137
すまねえ☆ついで質問で申し訳ないですがオブジェクトの中でquery,prepare,executeが使えないんですけどこれってどうすればいいんですかね。
- 142 :デフォルトの名無しさん:2015/08/16(日) 10:15:01.34 ID:UepVPRcb.net
- >>140
リンク先にPHPからwindows apiを叩けばできるよって書いてあるよ
- 143 :デフォルトの名無しさん:2015/08/16(日) 12:18:13.51 ID:z6SsnuJ9.net
- >>141 自己解決。PDOにせつぞくできてなかっただけだった。すまねえ☆
- 144 :デフォルトの名無しさん:2015/08/16(日) 23:12:07.45 ID:ziQJsyKn.net
- PHPでレンサバ(xサーバー)のMySqlに接続ができません。
$link = mysql_connect($url,$user,$pass) or die("MySQLへの接続に失敗しました。");
$urlについてです><
もしご存知の方いたら教えていただけないでしょうか。
初心者ですいません。
- 145 :デフォルトの名無しさん:2015/08/16(日) 23:17:18.11 ID:ssoeETHe.net
- >>144
localhostでええやん。
- 146 :デフォルトの名無しさん:2015/08/16(日) 23:19:43.31 ID:ziQJsyKn.net
- レンサバでもlocalhostでいいんですか?
- 147 :デフォルトの名無しさん:2015/08/16(日) 23:35:20.00 ID:FEBcibKq.net
- mysql_connect
http://php.net/manual/ja/function.mysql-connect.php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
die('接続できませんでした: ' . mysql_error());
}
echo '接続に成功しました';
mysql_close($link);
警告
この拡張モジュールは PHP 5.5.0 で非推奨になり、PHP 7.0.0 で削除されました。
MySQLi あるいは PDO_MySQL を使うべきです。
- 148 :デフォルトの名無しさん:2015/08/17(月) 00:09:15.04 ID:oEBSVNMg.net
- >>147
まだ削除されてないってことだよな
- 149 :デフォルトの名無しさん:2015/08/17(月) 00:13:32.65 ID:5ktVpXOG.net
- 7の予定まで書かれるようになったんだ
- 150 :デフォルトの名無しさん:2015/08/17(月) 00:18:17.06 ID:roquPsRR.net
- >>146
そのスクリプトを設置してる場所からみてlocalhostにあるmysqlデータベースに接続ってこと
データベースサーバを別サーバに用意してるレンタルサーバもあるが
格安レンタルサーバとか共有サーバはだいたいwebサーバと同じサーバにおいてる
- 151 :デフォルトの名無しさん:2015/08/17(月) 00:31:20.09 ID:LyqGgPuc.net
- >>150
そんなんやめてsqlite3にしたら?軽いし、早いしいいぞぉ
- 152 :デフォルトの名無しさん:2015/08/17(月) 05:34:58.17 ID:MZO1YKpV.net
- sqliteは大規模ではほぼ使われてない。
- 153 :デフォルトの名無しさん:2015/08/17(月) 06:15:54.39 ID:roquPsRR.net
- sqliteは100行単位でデータ増えただけでもベンチに数字として現れるからな
かといって体感出来るほど遅いと感じるまではしばらく余裕がある
個人で使うには十分だがシンプルすぎてsqliteから他のDBに移行したいとき苦戦する
ORマッパー使えばいいが無駄が多いパフォーマンス重視なら使いたくない
- 154 :デフォルトの名無しさん:2015/08/17(月) 06:17:21.14 ID:roquPsRR.net
- 何が言いたいかというとsqlite使うなら
その前にガチムチmysqlさんをある程度触ってからがお勧め
- 155 :デフォルトの名無しさん:2015/08/17(月) 09:36:26.92 ID:nRo3eKd8.net
- >>153
逆じゃね?
sqliteできちんと仕事できるなら
mysqlでもpostgesqlでもどこでも生きていける
- 156 :デフォルトの名無しさん:2015/08/17(月) 10:18:00.15 ID:roquPsRR.net
- >>155
その通りだが別に逆ではない
sqliteはシンプルで簡単だと思われがちだが
あれは完全に玄人用
- 157 :デフォルトの名無しさん:2015/08/17(月) 16:17:07.93 ID:/53UNtSq.net
- PHPって変数の寿命ないのかよ。ループで値おかしくなって焦ったわ。
- 158 :デフォルトの名無しさん:2015/08/17(月) 16:26:56.36 ID:ZyRhfbbF.net
- 使い方が変なんじゃ?
- 159 :デフォルトの名無しさん:2015/08/17(月) 17:05:17.24 ID:yQK+Nz/F.net
- >>157
foreachで参照でも使ったぁ?
- 160 :デフォルトの名無しさん:2015/08/17(月) 17:26:14.35 ID:M1oT74qU.net
- foreach内参照は最初はハマるわなー
- 161 :デフォルトの名無しさん:2015/08/17(月) 19:46:54.20 ID:D8EzW0OH.net
- PHPにはブロックスコープないからね。
- 162 :デフォルトの名無しさん:2015/08/17(月) 22:24:07.74 ID:LyqGgPuc.net
- >>153
大規模、小規模ふくめてoracle、mssql、mysql postgresqlのシステム組み上げ10年くらいだが、たまたま今年sqlite3でphpのシステム組み上げ機会に恵まれまして。
いやまー信じられない程の取り回し。dbファイルもシステムと別に取り扱いできて楽だし、軽いしこりゃいーわ。今までのdbシステムの面倒くささなんだったのよって事で、俺的オヌヌメ。それまではmysql一択だったんだけどね。
- 163 :デフォルトの名無しさん:2015/08/17(月) 23:08:08.70 ID:X1R8xEy2.net
- 見栄をはらなくてもいいんだよ
- 164 :デフォルトの名無しさん:2015/08/17(月) 23:36:59.82 ID:LyqGgPuc.net
- >>163
見栄はらせろよ
- 165 :デフォルトの名無しさん:2015/08/18(火) 11:19:17.76 ID:fW4GU+Ok.net
- sqliteは、今まで使ってたRDBMSの知識そのまま生かせるから
以前からDB触ってた人にとっては楽だよな
しかもGUI含めてファイルを直接覗けるツールは山ほどあるし
- 166 :デフォルトの名無しさん:2015/08/18(火) 18:56:35.63 ID:x2qVDreM.net
- functionであちこちに自作の関数作るのにハマってるんですけど、これって一個のファイルにまとめた方が良いんですか?
それとも自分で管理できればokですか?
なるべく個別に分けた方が読み込み減って速いですか?
- 167 :デフォルトの名無しさん:2015/08/18(火) 19:47:48.16 ID:+37xVzyg.net
- function毎にファイル分けるのは阿呆だけど
includeコストかかるし全く関係ないfunctionを適当にまとめてもなぁ
文字列関係の操作や配列関係の操作でわけて必要なものをincludeするとかすればマシだと思う
まぁオブジェクト指向勉強してクラス使い始めればそんなこと考えることもなくなるぜ
- 168 :デフォルトの名無しさん:2015/08/18(火) 21:57:49.37 ID:NoP1vlWj.net
- 144です!無事できました!xxxxxxxxx.cgidbでXサーバーのmysqlに接続できました!
ご回答していただきましてありがとうございました!
- 169 :デフォルトの名無しさん:2015/08/18(火) 23:35:47.50 ID:vA+EdJDa.net
- http://notepad.cc/share/5Fjv3BkLKc
Warning: imagecolorallocate() expects parameter 1 to be resource, null given in /home/u356689811/public_html/img.php on line 21
Warning: imagettftext() expects parameter 1 to be resource, null given in /home/u356689811/public_html/img.php on line 23
Warning: file_get_contents(http://iup.2ch-library.com/jbk.cgi): failed to open stream: HTTP request failed! HTTP/1.1 403 Forbidden in /home/u356689811/public_html/img.php on line 38
このようなエラーがでます・・・
- 170 :デフォルトの名無しさん:2015/08/19(水) 00:02:13.26 ID:P+NUjwVB.net
- >>169
訳して読めないん?
- 171 :デフォルトの名無しさん:2015/08/19(水) 00:02:41.20 ID:LOHOwjsk.net
- >>170
読んだけどどうすればいいのか分かりませんでした。
- 172 :デフォルトの名無しさん:2015/08/19(水) 00:03:49.55 ID:LOHOwjsk.net
- 何をしたいかと言うと画像に「アドセンスクリックお願いします」
をつけてhttp://iup.2ch-library.com/にうpしたいです。
- 173 :デフォルトの名無しさん:2015/08/19(水) 01:09:15.56 ID:L3Cv9rI8.net
- forbiddenを日本語で1万回ぐらい唱えろ
- 174 :デフォルトの名無しさん:2015/08/19(水) 01:14:11.94 ID:LOHOwjsk.net
- POSTの受け取りエラーはできました。
でも画像に文字を入れるとnullが想定されていません警告がでます。
その後jsに画像データを渡してもうpできません。
- 175 :デフォルトの名無しさん:2015/08/19(水) 03:12:04.97 ID:6ywDLaMX.net
- 画像が指定されてないから
- 176 :デフォルトの名無しさん:2015/08/19(水) 03:37:05.31 ID:Qh+hZUtC.net
- >>174
http://php.net/manual/ja/function.imagecreatefrompng.php
こういうの使ってリソースを作成して渡さないとだめ
- 177 :デフォルトの名無しさん:2015/08/19(水) 09:50:35.04 ID:LOHOwjsk.net
- jsの参照からPOSTでPHPに送って、それをPHPで編集して、もう一度jsに戻す事はできませんかね?
- 178 :デフォルトの名無しさん:2015/08/19(水) 11:01:21.38 ID:LOHOwjsk.net
- 画像の編集はできるようになりました。
ただ、編集した画像をjsに戻す方法が分かりません。
- 179 :デフォルトの名無しさん:2015/08/19(水) 11:06:50.17 ID:GbG0htqR.net
- >>178
imgタグのURL書き換えようぜ
- 180 :デフォルトの名無しさん:2015/08/19(水) 11:16:29.30 ID:LOHOwjsk.net
- 一度サーバーに保存してそのURLを渡すという事ですか?
- 181 :デフォルトの名無しさん:2015/08/19(水) 11:28:02.44 ID:LOHOwjsk.net
- あとテンポラリファイルをjsから使うにはどうすればいいですか?
- 182 :デフォルトの名無しさん:2015/08/19(水) 11:32:10.00 ID:vCtz9n8J.net
- >画像に「アドセンスクリックお願いします」
クリック誘導しちゃいけない
ちゃんと規約よまないとアボセンスされるぞ
- 183 :デフォルトの名無しさん:2015/08/19(水) 11:33:28.90 ID:LOHOwjsk.net
- >>182
違います
アフィ対策うpロダを作りたいです。
正確には既にあるうpろだに画像を編集して送信したいです。
- 184 :デフォルトの名無しさん:2015/08/19(水) 11:37:24.15 ID:LOHOwjsk.net
- ただ他のサーバーとの通信は規約で禁止してある所が多いので
html→phpにポスト送信
phpで画像編集してjsに送信
js→他サーバーのうpろだに送信したいです。
これなら規約的にも大丈夫ですし、もしうpろだの管理人から規制食らってもクライアントから送るので問題ないので。
- 185 :デフォルトの名無しさん:2015/08/19(水) 11:44:26.68 ID:+Zdd/FzT.net
- 臭い質問者だな
- 186 :デフォルトの名無しさん:2015/08/19(水) 11:52:58.60 ID:6ywDLaMX.net
- アフィ対策うpろだ作るっつってヨソのうpろだ間借りしちゃいかんだろ
- 187 :デフォルトの名無しさん:2015/08/19(水) 12:29:23.59 ID:GbG0htqR.net
- >>181
使えない
- 188 :デフォルトの名無しさん:2015/08/19(水) 12:38:18.71 ID:LOHOwjsk.net
- >>186
HTMLの参照からPOST送るのも、PHPで編集してPOST送るのも同じなので大丈夫と思うんですが。
- 189 :デフォルトの名無しさん:2015/08/19(水) 13:08:53.68 ID:Qh+hZUtC.net
- いい加減うっとうしくなってきた
- 190 :デフォルトの名無しさん:2015/08/19(水) 13:10:38.51 ID:LOHOwjsk.net
- すみません。
画像の編集はできたので後は何とかします。
ありがとうございました
- 191 :デフォルトの名無しさん:2015/08/19(水) 14:52:07.42 ID:E7jETczI.net
- $test=new tester();
$data=$test->getDust();
testerとDustを可変にしたいんですけど書き方教えてください。
- 192 :デフォルトの名無しさん:2015/08/19(水) 15:31:50.31 ID:E7jETczI.net
- 自己解決
- 193 :デフォルトの名無しさん:2015/08/19(水) 22:19:55.98 ID:sb/lS4ZW.net
- 画面全体をキャプチャする場合imagegrabscreenが使えますが
特定のアプリケーションをキャプチャしたい場合って何か方法ありますか?
- 194 :デフォルトの名無しさん:2015/08/19(水) 22:41:45.97 ID:LOHOwjsk.net
- base64でエンデコしたらPHP→jsに渡せた〜
送信もできたー
ただうpできない。。。
ファイル名が送られてないのかな…?
これはjsの話だからjsで聞くけどPスレの方ありがとうございました
- 195 :デフォルトの名無しさん:2015/08/20(木) 00:17:48.07 ID:z6CxRTbz.net
- 英数字の文字列を、大文字を小文字に、小文字を大文字にするにはどうすればいいですか?
たとえば、以下のようの文字列をこう変換したいです
jFw3YG3r2
↓
JfW3yg3R2
おねがいします
- 196 :デフォルトの名無しさん:2015/08/20(木) 00:26:28.33 ID:sgktyw/y.net
- >>195
置き換えればいい。
- 197 :デフォルトの名無しさん:2015/08/20(木) 00:30:42.60 ID:fJ97YSxG.net
- >>195
function swap_casing($str)
{
return strtr($str, implode('', array_merge(range('a','z'), range('A','Z'))), implode('', array_merge(range('A','Z'), range('a','z'))));
}
- 198 :デフォルトの名無しさん:2015/08/20(木) 00:33:26.41 ID:fJ97YSxG.net
- >>193
windows限定ということもあって使ったことないけど、マニュアルには普通にあるよ
http://php.net/manual/ja/function.imagegrabwindow.php
- 199 :デフォルトの名無しさん:2015/08/20(木) 02:13:01.38 ID:z6CxRTbz.net
- >>196-197
ありがとうございます!
思ってた通りにできました!
- 200 :デフォルトの名無しさん:2015/08/20(木) 10:01:51.88 ID:C8zNXNPV.net
- >>198
ありがとうございます
ウィンドウハンドル (COM インスタンスの HWND プロパティ) というのはどうやって取得するのでしょう?
使用例ではIEのがのっていますが、とあるゲームのクライアントなのですが。
- 201 :デフォルトの名無しさん:2015/08/20(木) 10:42:50.46 ID:H8XW99Sq.net
- そのとあるゲームを識別する材料は何よ。
タイトルかプロセス名になると思うけど、同じプロセスでも
トップレベルウィンドウが複数あるやつもあるので注意
spy++とか触ってみ
- 202 :デフォルトの名無しさん:2015/08/20(木) 10:53:43.78 ID:C8zNXNPV.net
- >>201
オンラインに接続するマルチプレイゲームなのでチート対策にプロセスは隠されてしまいます
ただキャプ系のソフトだとちゃんと取れるのでやりようはあると思います
そもそもPHPでやるのは難しいんですかね
関数コールすれば現在起動中のソフトウェアのウィンドウハンドルがわかるというのでなければ
難しそうなのでいったん諦めたいと思います
紹介していただいたspy++というのはどんなものか気になるのでいじってみたいと思います
ありがとうございます
- 203 :デフォルトの名無しさん:2015/08/20(木) 12:49:26.18 ID:H8XW99Sq.net
- >関数コールすれば現在起動中のソフトウェアのウィンドウハンドルがわかる
いやそのままだけど、、、、spy++動かせばわかると思うけど
「現在起動中のソフトウェアのウィンドウ」はものすごく大量にあるので
その中から選択するキーをどうすんのって話ね。
- 204 :デフォルトの名無しさん:2015/08/20(木) 19:32:57.07 ID:WOs6ZAoH.net
- win32アプリケーションを実行した結果とか取得できたっけ?
- 205 :デフォルトの名無しさん:2015/08/20(木) 20:19:30.25 ID:H8XW99Sq.net
- コンソールならパイプ経由でいけるべ
あとCOMなら標準でいけるかと
それ以外だと結果っていってもなんのことか
- 206 :デフォルトの名無しさん:2015/08/21(金) 14:04:20.29 ID:fqRYNQxQ.net
- >>205
結果って出力じゃなくてexitの戻り値系の話じゃね?
- 207 :デフォルトの名無しさん:2015/08/21(金) 14:30:01.51 ID:S8ndpYq0.net
- そいつは、、、systemだとcmd.exeの戻り値だからちゃんと取れない、という話?
execでいけないかな
- 208 :デフォルトの名無しさん:2015/08/22(土) 17:12:21.65 ID:/ddVcb/Z.net
- $list=scandir('history/',SCANDIR_SORT_DESCENDING);//ファイル一覧取得
$s=file_get_contents($list[0]);//最新のファイルを読む
このような風にしてディレクトリ内の最新のファイルを読みたいのですが上手く行きません。
何故でしょうか?
- 209 :デフォルトの名無しさん:2015/08/22(土) 17:39:53.87 ID:/ddVcb/Z.net
- 事故解決しました
- 210 :デフォルトの名無しさん:2015/08/22(土) 18:05:24.29 ID:/yiufrRR.net
- 事故ったのか
- 211 :デフォルトの名無しさん:2015/08/22(土) 20:19:50.88 ID:/ddVcb/Z.net
- ファイル名が
フォルダ/ファイル
で返ってくると思っていたら
ファイル
しか返ってこなかったのが原因でした。
- 212 :デフォルトの名無しさん:2015/08/23(日) 02:42:29.78 ID:F0J/JaHP.net
- class AClass
{
private $prop = 1;
}
class BClass
{
private $prop;
public function __construct()
{
$prop = 1;
}
}
AClassとBClassは、どちらもプライベート変数$propを持っていますが、2つの違いは何でしょうか?
結果が同じなら、AClassの方が好ましいとか。
AClassよりもBClassの方がパフォーマンスに優れているとか。
私はAClass派ですが、BClass派の方の意見も聞いてみたいです。
- 213 :デフォルトの名無しさん:2015/08/23(日) 03:37:33.89 ID:MjjZ1bjj.net
- http://php.net/manual/ja/language.oop5.properties.php
C++みたいな初期化子が無いからBが若干気持ち悪いのはどうしようもないな
- 214 :デフォルトの名無しさん:2015/08/23(日) 09:55:42.83 ID:HMoj5OB/.net
- コンストラクターで何か渡さないならAでいいんじゃないの
- 215 :デフォルトの名無しさん:2015/08/23(日) 10:45:25.47 ID:vhLXwY7S.net
- Bは、$this->prop = 1;じゃない?
こういう間違いするくらいなら、Aがいいと思う。
AとBではそれほど違いはないだろうし。
- 216 :デフォルトの名無しさん:2015/08/23(日) 11:44:14.88 ID:F0J/JaHP.net
- >>215
$this->prop = 1;が正しいです。
ふと疑問に思って、適当に書いたので間違えました。
>>213-215
ご意見ありがとうございます。
「俺は、コンストラクタで代入しなきゃ気が済まない。」という方はいないようですね。
- 217 :デフォルトの名無しさん:2015/08/23(日) 12:26:03.55 ID:dSq5s0nX.net
- コンストラクタには、メンバー変数の単なる初期化より、
オブジェクト生成時に必須で意味ある操作を記述するのが望ましい気がする。
- 218 :デフォルトの名無しさん:2015/08/24(月) 19:38:56.86 ID:JwKFnUGE.net
- http://d.hatena.ne.jp/cypher256/20121013/p1
こういうのがあるんですが
PDOでも同じような結果(SQLite>MySQL)になりますかね?
- 219 :デフォルトの名無しさん:2015/08/24(月) 20:17:08.06 ID:X6qu577D.net
- >>218
そりゃなるだろうなぁ
・スケールしない
・構成が単純
・同時アクセス数が少ない
という条件ならSQLiteは無敵でしょ
- 220 :デフォルトの名無しさん:2015/08/24(月) 22:23:52.85 ID:/ftfGLfA.net
- >>218
お?なんだ?
sqliteの成績いいじゃないのよ。
- 221 :デフォルトの名無しさん:2015/08/25(火) 11:38:49.51 ID:2QQu0W9L.net
- PHPで作ったフォルダの所有者がWWWになってFFFTPから削除できない。助けて
- 222 :デフォルトの名無しさん:2015/08/25(火) 11:46:00.83 ID:lyj94kL0.net
- FFFTPをWWWでログインするか、WWWを操作できるアカウントでログインすれば
いいんじゃないかな?(´・ω・`)
- 223 :デフォルトの名無しさん:2015/08/25(火) 11:50:12.45 ID:9xu5YWLi.net
- phpから消しゃいいじゃん
- 224 :デフォルトの名無しさん:2015/08/25(火) 12:04:50.75 ID:oTbGWeCq.net
- sqliteはインデックス絡めた集計が遅くてしんどい
kvsみたいなシンプルなテーブル構成じゃないと性能でないし
いろいろ面倒すぎる
- 225 :デフォルトの名無しさん:2015/08/25(火) 12:39:56.31 ID:N0kKPKqp.net
- >>221
sshまたはPHPからLinuxコマンドでrmすればいい。
- 226 :デフォルトの名無しさん:2015/08/25(火) 12:42:08.37 ID:2QQu0W9L.net
- >>225
窓なんだけど
- 227 :デフォルトの名無しさん:2015/08/25(火) 12:55:27.06 ID:N0kKPKqp.net
- >>226
rd (option) [directory name]
rmdir (option) [directory name]
- 228 :デフォルトの名無しさん:2015/08/25(火) 13:08:52.73 ID:2QQu0W9L.net
- >>227
ありがとう
- 229 :デフォルトの名無しさん:2015/08/25(火) 15:36:21.02 ID:07X4ZgXk.net
- GDを使いたいのですが、ネットで探してみても具体的に何をすれば使えるようになるのか、よくわかりません。
箇条書きみたいな形でどうすればいいか教えていただけないでしょうか??
- 230 :デフォルトの名無しさん:2015/08/25(火) 15:57:06.35 ID:9xu5YWLi.net
- どの環境?
それぞれの環境でやり方違うけど、要はGDのライブラリを組みこむだけだよ
GDの下にpngやjpegやzipやfreetypeやらあるけどまあ全部込みでいいだろう
- 231 :デフォルトの名無しさん:2015/08/25(火) 17:57:06.12 ID:07X4ZgXk.net
- ライブラリの組み込み、って何をすればいいのかがちょっとよくわからない。
どこかのフォルダに入れればいいだけじゃないみたいだし下手にいじって全部パーにはしたくないのですよね。
- 232 :デフォルトの名無しさん:2015/08/25(火) 17:59:44.73 ID:9xu5YWLi.net
- いやだからWindowsなのかLinuxなのかMacなのかその他なのか
- 233 :デフォルトの名無しさん:2015/08/25(火) 18:01:06.85 ID:9xu5YWLi.net
- そして現行のものはどうやってインストールしたのか
xamppとか?ソースからビルド?httpdはどれでバージョンは?
- 234 :デフォルトの名無しさん:2015/08/25(火) 18:06:33.56 ID:07X4ZgXk.net
- winです。xamppを使っています。
httpdとバージョンについては覚えていないのですが、
xamppのインストールは六月頃だったのでその時の最新のものだと思います。
- 235 :デフォルトの名無しさん:2015/08/25(火) 18:11:06.98 ID:F9GsSPUL.net
- php.iniのextension=php_gd2.dllとか書いてるあたり探して先頭のコロン外せばいいんじゃね
- 236 :デフォルトの名無しさん:2015/08/25(火) 18:19:46.72 ID:vVSJ44wn.net
- 言語としてのPHPはwebサーバーは独立してる。
webサーバー上でPHPを扱うケースは関係ある。
GDを動かすだけならwebサーバーは関係無い。
- 237 :デフォルトの名無しさん:2015/08/25(火) 18:47:37.26 ID:9xu5YWLi.net
- http://php.net/manual/ja/install.windows.extensions.php
これでいいんじゃね。
書いてある内容から抜粋すると、C:\php5\php.ini を編集して
>>235の通りにすればいいかと、先頭の外す文字はセミコロンのようだけど
- 238 :デフォルトの名無しさん:2015/08/25(火) 19:30:29.99 ID:0DooLhSC.net
- >>237
ようだけどって、php.ini編集したことないの?
- 239 :デフォルトの名無しさん:2015/08/25(火) 22:20:16.92 ID:z2POwS4S.net
- とりあえずDevelopmentかProductionかでerror_reportingやらdisplay_errors, error_logの設定ぐらいは触らなきゃ始まらんよなぁ・・・・・
- 240 :デフォルトの名無しさん:2015/08/25(火) 22:38:51.17 ID:/vS3aNyo.net
- ぶっ壊しながら覚えるんだけどねえ
- 241 :デフォルトの名無しさん:2015/08/25(火) 23:02:09.59 ID:iOl5eWYF.net
- 最初中身みないでdevelopmentなら開発者向けで使えるのは全部使える設定だろと思ってたらひどい目にあったな
あとxamppはxamppの中にPHPのフォルダあるからよくわからずに新たにPHPインストールしちゃってサーバーとコマンドラインで別の設定とバージョンで動かしてたり
- 242 :デフォルトの名無しさん:2015/08/26(水) 11:56:14.21 ID:1VgT2ip6.net
- >>238
Windowsはやったことないわ
- 243 :デフォルトの名無しさん:2015/08/26(水) 11:56:39.99 ID:1VgT2ip6.net
- あと、コロンって書いてるからやんわり指摘したんだよ
- 244 :デフォルトの名無しさん:2015/08/26(水) 17:36:20.72 ID:1UBBn/05.net
- php.iniのフォーマットはプラットフォームに依らない
- 245 :デフォルトの名無しさん:2015/08/26(水) 17:50:20.81 ID:Rs0R7URv.net
- やんわり指摘する必要もない。びしっと指摘すべき
- 246 :デフォルトの名無しさん:2015/08/26(水) 18:47:42.81 ID:ravcYZS2.net
- やめちまえ
- 247 :デフォルトの名無しさん:2015/08/26(水) 20:32:22.15 ID:+yw1sjwq.net
- Array
(
[1111] => Array
(
[name] => 山田太郎
[age] => 25
[addr] => 東京都新宿区
)
[1112] => Array
(
[name] => 山田太郎
[age] => 26
[addr] => 東京都新宿区
)
[1113] => Array
(
[name] => 山田太郎
[age] => 40
[addr] => 北海道札幌市
)
)
こういうデータがあり、1111と1112の山田太郎さんは同一人物と仮定します。
このデータの重複を排除して更新する場所は更新(ageを25から26)にしたいのですがどうしたらいいですか?
IDは更新後の1112に統一するようにしたいです。(1111の部分を消したい)
$test = array(1111=>array("name"=>"山田太郎","age"=>25,"addr"=>"東京都新宿区"),1112=>array("name"=>"山田太
郎","age"=>26,"addr"=>"東京都新宿区"),1113=>array("name"=>"山田太郎","age"=>40,"addr"=>"北海道札幌市"));
- 248 :247:2015/08/26(水) 20:35:14.82 ID:+yw1sjwq.net
- いい忘れましたがこの場合同一人物と決定付けるデータ(ユニーク)はnameとaddrになります。
- 249 :デフォルトの名無しさん:2015/08/26(水) 20:56:10.01 ID:ravcYZS2.net
- 仮に25才が26才より後に出てきたら25才にすんの?
一回で1000件超も処理すんの?
DB使ってないの?
- 250 :デフォルトの名無しさん:2015/08/26(水) 21:10:31.96 ID:+yw1sjwq.net
- >>249
>仮に25才が26才より後に出てきたら25才にすんの?
26歳にします
>一回で1000件超も処理すんの?
IDはまだらでスタートも500ぐらいからなのですが
全部抽出した今現在2000件ぐらいあります
>DB使ってないの?
DBに入れる前に簡易的にデータを視覚化して問題ないか確認したいので
データ整理が終わって問題がなさそうだったらそれからDBに入れたいです
- 251 :デフォルトの名無しさん:2015/08/26(水) 23:22:58.87 ID:KIJq3Kjz.net
- >>247
foreachとかで重複のチェックおよび削除をするのはダメなの?
- 252 :デフォルトの名無しさん:2015/08/26(水) 23:54:16.74 ID:7RAfYG22.net
- >>251
言うのは簡単だけどそれ結構むずいぞ
- 253 :デフォルトの名無しさん:2015/08/27(木) 01:55:32.38 ID:1lLqbxXs.net
- 多重ループで回して当たったら年齢低い方を外すだけだろ。
てか個人情報の悪用か?
- 254 :デフォルトの名無しさん:2015/08/27(木) 03:48:24.24 ID:8ceC1383.net
- みんなO(n^2)大好きなの?
>>247
name+addrをキーとして考えて、それぞれのキーに対してどのIDを使うべきかを抽出しさえすれば解決できるでしょ。
これならO(n)だ。
- 255 :デフォルトの名無しさん:2015/08/27(木) 03:56:54.04 ID:Qf9+I7qu.net
- 2000なら計算量気にするほどの量じゃないしな
name+addrだとこのケースだとキーにマルチバイト入るし問題はないだろうけどあんま好きじゃないわ
- 256 :デフォルトの名無しさん:2015/08/27(木) 16:45:05.82 ID:yuSy9xY3.net
- >>250
テスト用のDBまたはテーブル作ってそれ使って確認すれば済む話
- 257 :デフォルトの名無しさん:2015/08/27(木) 17:07:08.43 ID:uKUzATKZ.net
- テスト用にとりあえずゴミを作るというのは断片化の原因でありお行儀が悪い
- 258 :デフォルトの名無しさん:2015/08/27(木) 17:23:22.59 ID:TAgfx1h3.net
- <?php
$data = [
'1111' => ['name' => '山田太郎', 'age' => 25, 'addr' => '東京都新宿区'],
'1112' => ['name' => '山田太郎', 'age' => 26, 'addr' => '東京都新宿区'],
'1113' => ['name' => '山田太郎', 'age' => 40, 'addr' => '北海道札幌市'],
];
// id=name+addr => [data.key, data.age]のindex
$index = [];
foreach ($data as $key => $value) {
$id = $value['name'] . ',' . $value['addr'];
if (!array_key_exists($id, $index)) {
$index[$id] = ['key' => $key, 'age' => $value['age']];
} else {
if ($index[$id]['age'] < $value['age']) {
unset($data[$index[$id]['key']]);
$index[$id] = ['key' => $key, 'age' => $value['age']];
} else {
unset($data[$key]);
}
}
}
print_r($data);
- 259 :デフォルトの名無しさん:2015/08/27(木) 20:33:39.94 ID:qru52hv5.net
- >>258
素晴らしい!
そのスクリプトなら計算量はO(n)だ。
安易に二重ループにすると計算量がO(n^2) で大変だもんね。
- 260 :デフォルトの名無しさん:2015/08/27(木) 20:54:35.90 ID:xIJ2Lz80.net
- よくわからん仕様だけど一時的にsqlite使うのが楽そう
使い終わったらファイルごと捨てちゃって
- 261 :デフォルトの名無しさん:2015/08/27(木) 20:57:16.97 ID:Vyt3jNWq.net
- それは断片化になる
メモリに作るのなら問題ないけどな
sqlite::memory:だっけか
ベンチ測ってないが配列のキーに日本語使った時の速度の影響ってないのかね
- 262 :デフォルトの名無しさん:2015/08/27(木) 22:55:51.74 ID:Vyt3jNWq.net
- 気になって測ったけど爆速だったわ
- 263 :デフォルトの名無しさん:2015/08/28(金) 00:08:07.52 ID:+cQXDdQR.net
- >>261
コード書ける側の人ならベンチくらい自分でとりなよ
- 264 :デフォルトの名無しさん:2015/08/28(金) 00:09:25.52 ID:+cQXDdQR.net
- オゥ…なぜdatが261で止まっていたのか。
というわけで、O(n^2)大好きな方は考えを改めていただきたい所存
- 265 :デフォルトの名無しさん:2015/08/28(金) 00:56:02.87 ID:AoeXeGce.net
- どうせPHP内部では配列は全部ハッシュテーブルだし, 速度は変わりようがない(PHP7では真の配列が入るとかどうとか)
- 266 :デフォルトの名無しさん:2015/08/28(金) 01:33:00.87 ID:jxZe3mFi.net
- 変態言語PHP
- 267 :デフォルトの名無しさん:2015/08/28(金) 12:43:42.63 ID:DqL8tsCW.net
- ファイルごと捨てちゃうのに断片化って?
vacuumすりゃいいし
- 268 :デフォルトの名無しさん:2015/08/28(金) 15:34:05.48 ID:jxZe3mFi.net
- 知ってるか?
ファイルって復元できるんだぜ!
- 269 :デフォルトの名無しさん:2015/08/28(金) 15:54:18.47 ID:zPlCh50K.net
- vacuumがやることはsqliteファイル構造内の最適化であってHDDのそれとは違うしなぁ
- 270 :デフォルトの名無しさん:2015/08/28(金) 18:03:21.46 ID:PakmCYt4.net
- sqliteで、
* テーブル作って
* データロードして
* 削除対象のデータを削除して
* データ取得して
* PHPのデータ構造を再構築
するより、>>258のコード書いた方がよっぽど早い。
- 271 :デフォルトの名無しさん:2015/08/29(土) 00:50:53.57 ID:9KBnd+er.net
- で、それをDBに入れて確認するわけだから
最初からDB使ったが効率いい
まさか確認なしでリリースする馬鹿はいないよな?
- 272 :デフォルトの名無しさん:2015/08/29(土) 01:13:41.82 ID:Ab8Z57Rm.net
- 1発で問題ないを前提としたらそれでいいけど
修正前提としてんだからよくないだろ
deleteしたりかえって作業が増えるわ
- 273 :デフォルトの名無しさん:2015/08/29(土) 01:18:12.82 ID:L/zgq/d+.net
- 大した作業量でもないやねー。コマンドラインちゃかちゃかする程度っしょー
- 274 :デフォルトの名無しさん:2015/08/29(土) 01:24:37.13 ID:Ab8Z57Rm.net
- それアホくさいで・・・
効率がいいとはとてもいえんな
- 275 :デフォルトの名無しさん:2015/08/29(土) 01:30:22.26 ID:Ab8Z57Rm.net
- ていうか>>271は大きな勘違いをしているな
>で、それをDBに入れて確認するわけだから
この作業要らないようにしてるんでしょ
- 276 :デフォルトの名無しさん:2015/08/29(土) 01:43:56.82 ID:Ab8Z57Rm.net
- 宿題終わらん(´・ω・`)
- 277 :デフォルトの名無しさん:2015/08/29(土) 01:49:16.00 ID:4/0//Q+P.net
- 作業効率でいうなら
悪い:1配列作成→2配列内の重複チェック→修正→チェック完了→3DBつくる→4DBつっこむ→(運用開始)→5新しいデータ来る→6DBの中身との重複チェック→7DBにデータ入れる
良い:1DB作る→2登録するデータ一行ずつ受け取る→3DBの中身で重複チェック→4重複なければDBに登録→(修正があればテーブル作り直し1へ)→(運用開始)→2'データ来る→3重複チェック→4重複なければDBに登録
運用時に必要となる処理も含めて全体の工程を考えればどっちが効率がいいかはわかりきってる。
まあ運用開始後もいちいち全行とってきて配列使って重複チェックするならDB使わなくてもいいけどそんなわけないだろさすがに
- 278 :デフォルトの名無しさん:2015/08/29(土) 02:09:31.09 ID:Ab8Z57Rm.net
- 重複のチェックじゃなくてアップデートなんだがな
まぁいいわ
>>258と同じことをビシっとSQLでかけたら効率がいいということで
- 279 :デフォルトの名無しさん:2015/08/29(土) 03:29:07.88 ID:ZMuJUzU2.net
- >>278
>>254と>>258のどっちの人なの?
- 280 :デフォルトの名無しさん:2015/08/29(土) 03:40:57.39 ID:Ab8Z57Rm.net
- どっちの人でもないで・・・
ID:Vyt3jNWq ID:jxZe3mFi
はオレだ
- 281 :デフォルトの名無しさん:2015/08/29(土) 06:06:52.85 ID:/nsMHMAj.net
- 以下を満たすようなcsvを読み込んで、データベースにインポートするプログラムを作ってるんだけど、アドバイスください。
・カラムごとにインポート先のテーブル/カラムが異なる。
・csvは複数の種類がある。(csvごとにデータベースとのマッピングが異なる。)
汎用的な処理を作って設定でうまいことやりたいんだけど、良いライブラリやサンプルはないですか?
- 282 :デフォルトの名無しさん:2015/08/29(土) 08:13:19.25 ID:/nsMHMAj.net
- 眠気でどうかしてました。ここよりスレ立てるまでもない質問とかの方が適してそうですね。、あんまりphp関係ないし。。移動します。
- 283 :デフォルトの名無しさん:2015/08/29(土) 19:02:08.82 ID:STDwRupe.net
- たぶん無理だと思うんだけど、いや絶対無理だと思うんだけど、あえて訊いてみる。
関数の引数の変数名を取得することって出来る?
hoge($a); という関数があって、それを hoge($chinko) と呼び出したときに
そのときの変数名 $chinko を取得する方法。
無理だな。 だって引数が変数とは限らないもんな。
あーでも参照なら変数と限ることができるのか? 参照縛りならいける?
- 284 :デフォルトの名無しさん:2015/08/29(土) 19:04:04.38 ID:ZMuJUzU2.net
- 仮引数ならまだしも実引数はさすがに。
むしろ用途をしりたい
- 285 :デフォルトの名無しさん:2015/08/29(土) 19:31:57.61 ID:1x+r04Uf.net
- もう一つ引数を追加して、変数名を文字列で渡すというのは?
- 286 :デフォルトの名無しさん:2015/08/29(土) 19:56:45.67 ID:SKly7+Od.net
- debug_backtrace() で、["file"]["line"]["function"]["args"]等を取得して、
そのファイルを読み込み、正規表現とか使って、変数名を抜き出すとか。
ふと思いついたので、おかしな方法だと思うけど一応参考に。
http://php.net/manual/ja/function.debug-backtrace.php
- 287 :デフォルトの名無しさん:2015/08/30(日) 09:22:39.00 ID:wgRyWxOv.net
- file_get_contentsで自身のphp読み込んで正規表現で抜き出したら出来るんじゃね
- 288 :デフォルトの名無しさん:2015/08/30(日) 15:20:20.12 ID:FcrFu/Vp.net
- jsやjqやjq-ui使ってクライアントサイドのユーザーインターフェイス的なものを作っていると<body>の中にいろんな要素が追加されてdomツリーも複雑になり収集が付かなくなって来ました。
こう言う場合、できる限りphpなどのサーバーサイドで処理する様に書き換えるべきですか?
- 289 :デフォルトの名無しさん:2015/08/30(日) 15:24:19.97 ID:ef9SYKfA.net
- 別にphpにしなくても静的な部分はhtmlでいいでしょ
例えば最下層までスクロールするアニメーションを実装するとして
それをphpでやるってのはただの馬鹿だよw
最下層までいくのに何回画面遷移するんだっていう話
- 290 :デフォルトの名無しさん:2015/08/31(月) 07:59:11.05 ID:sP4JUecY.net
- //フォーム外から変なの投げられてきたらサヨウナラ
$_int = isset($_GET['_int']) ? $_GET['_int'] : null;
if (!ctype_digit($_int)) exit;
//変なのきても0にして処理続けます
$_int = isset($_GET['_int']) ? (int)$_GET['_int'] : 0;
そもそもフォーム外からの入力とか考慮する必要があるのか不明ですがどっちがいいでしょうか?
- 291 :デフォルトの名無しさん:2015/08/31(月) 10:15:36.04 ID:Ad0sNMCq.net
- >>283
どうしてもそれが必要なら、いわゆる連想配列かJSONを引数にすれば良い。
- 292 :デフォルトの名無しさん:2015/08/31(月) 10:22:21.26 ID:Ad0sNMCq.net
- >>290
XSS, CSRF, セッションハイジャックについて調べるといいよ。
- 293 :デフォルトの名無しさん:2015/08/31(月) 10:41:15.82 ID:1S2ZHjxL.net
- >>290
上のように、処理を終了する方がいい。
下の場合、予想しない挙動をする場合もありバグの原因になるから。
- 294 :デフォルトの名無しさん:2015/08/31(月) 15:14:59.59 ID:nEToo1o2.net
- >>290
フォーム外かどうかをチェックするコードではないよね。
意図しないアクセスをされたときの挙動は別途。
ま、不正な値を吸収して処理を継続できるならそのほうがやさしいとは思う。
>>291
「いわゆる連想配列かJSONを引数にすれば」、「関数の引数の変数名を取得すること」ができるの?
- 295 :デフォルトの名無しさん:2015/08/31(月) 15:21:22.24 ID:sP4JUecY.net
- >>292
曖昧なこといってすみません
そのへんの対策は当然するとして
例えばcURLなんかを使って2chに書くスクリプトみたいのありますよね?ああいうのを考慮すべきかという話です
>>293
下の場合上のelseに当たり
下が問題なら上も問題になるということになりませんか?
- 296 :デフォルトの名無しさん:2015/08/31(月) 15:26:34.27 ID:Ad0sNMCq.net
- > >>291
> 「いわゆる連想配列かJSONを引数にすれば」、「関数の引数の変数名を取得すること」ができるの?
あー、連想配列かJSONにして、仮引数名を入れればってこと。
どっちみち呼び出し側から変数名を渡すしかないけど、引数の数を増やすよりいいかなと。
- 297 :デフォルトの名無しさん:2015/08/31(月) 15:27:54.14 ID:Ad0sNMCq.net
- 間違った。
必要なのは実引数名だった。
- 298 :デフォルトの名無しさん:2015/08/31(月) 15:32:58.58 ID:Ad0sNMCq.net
- >>295
うーん、「ああいうの」がどういうのかわからないんだけど、要件によるとしか言えないんじゃないかなあ。
> //変なのきても0にして処理続けます
> $_int = isset($_GET['_int']) ? (int)$_GET['_int'] : 0;
この方針で行くと、期待するパラメータ全てがなくとも処理が続行しちゃうけど、それでいいかどうかは要件次第。
- 299 :デフォルトの名無しさん:2015/08/31(月) 15:35:35.28 ID:dCXkMxpH.net
- そう、何でも要件次第
用意したフォームを使わずに飛び込んできたとしても
それでもいい場合と良くない場合があるしね。
2ch互換BBSだって、直接dat見に来るのを許容するシステムもあれば
API経由を共用するシステムもあるし
- 300 :デフォルトの名無しさん:2015/08/31(月) 15:59:06.34 ID:sP4JUecY.net
- >>294 >>298 >>299
ありがとうございます
難しく考えず柔軟に対応することにします
- 301 :デフォルトの名無しさん:2015/08/31(月) 20:41:11.85 ID:Ny4CPwsw.net
- 前提としてphpとjavascriptでajaxもどきに挑戦しています。
file_get_contents('php://input'); で取得するデータに関する質問です。
javascriptが有効/無効で処理をわけるつもりで
無効な時はform actionにphpのパス指定してPOSTで送信しているのですが
その際日本語はデコードされて取得しています。
有効な時はjavascriptの関数に飛んで
XMLHttpRequest
↓
open("POST", "phpファイル", true);
setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
としているのですが日本語がデコードされずに取得されます。
form要素もデフォルトではContent-Typeがapplication/x-www-form-urlencodedのはずですが
この違いが出る原因はなんでしょうか?
- 302 :デフォルトの名無しさん:2015/08/31(月) 21:18:52.81 ID:l4mmrlHu.net
- Ajaxがjavascriptだったという認識で、PHPではサーバー処理が終わるまでマチになってブラウザと非同期通信困難だろ?
- 303 :デフォルトの名無しさん:2015/08/31(月) 21:22:36.97 ID:l4mmrlHu.net
- ajaxはほとんど使わないが、javascriptとブラウザの機能を使って、
クライアント側で非同期、リアルタイム通信してるかのように見せかける技術だろ?
サーバーからすると、見せかけのふつうの通信を頻繁するだけで。
- 304 :デフォルトの名無しさん:2015/09/01(火) 00:17:19.81 ID:iyNI0UTo.net
- 日本語不自由すぎ
- 305 :デフォルトの名無しさん:2015/09/01(火) 07:10:09.47 ID:PA13f3W/.net
- >>301
普通にどっちもエンコードされてるけど
環境の問題じゃ
- 306 :デフォルトの名無しさん:2015/09/01(火) 19:32:37.13 ID:GtQLzV5s.net
- >>301
ほとんどスレチだけどXMLHttpRequest使ってPOSTするときは自分でエンコードしてから渡してあげないといけない。
同じ指定云々は
送「こういう感じに解釈してよ」受「おう」
っていうやりとりしてるだけ。「こういうふうに変換しといたわ」じゃない所が違う原因。
フォームでの送信はブラウザが勝手にその辺やってくれてるってだけ。
- 307 :デフォルトの名無しさん:2015/09/01(火) 21:38:59.47 ID:gnKiZ/P3.net
- PHPの画像リソースってメモリ上にあるのでしょうか?
もしメモリ上でなければ、tmpファイル名を確認する方法を教えて下さい。
もしメモリ上なら画像リソースからtmpファイルを作成する方法を教えて下さい。
- 308 :デフォルトの名無しさん:2015/09/01(火) 21:54:01.11 ID:SHJ8zf1q.net
- PHPの画像リソースが何をさしているのか
GDの話してんならGDの使い方見ればわかるでしょう
ttp://php.net/manual/ja/ref.image.php
メモリ上にあるのをimagepng imagejpegとかで出力
imagedestroyで解放
アップロードされた画像の話してんならアップロード処理のとこ見ればいい
ttp://php.net/manual/ja/features.file-upload.post-method.php
こちらはテンポラリファイルとして実在する
$_FILES['userfile']['tmp_name']
- 309 :301:2015/09/01(火) 22:20:13.67 ID:IcLe/G5W.net
- 返信ありがとうございました。
もうhttpリクエストとかの流れを勉強してみます。
- 310 :デフォルトの名無しさん:2015/09/01(火) 23:30:20.38 ID:gnKiZ/P3.net
- >>308
出来ました。
ただtok2でImageMagickが使えないのでインストールする方法を教えて下さい
- 311 :デフォルトの名無しさん:2015/09/01(火) 23:55:50.60 ID:iyNI0UTo.net
- >>310
ただ、とつなげる理由が分からん。ImageMagickは別の話でしょ
- 312 :デフォルトの名無しさん:2015/09/01(火) 23:57:45.93 ID:gnKiZ/P3.net
- >>311
ImageMagickを使う為に>>307が分からなかったのですが>>307をしたけどImageMagickが使えませんでした
- 313 :デフォルトの名無しさん:2015/09/01(火) 23:59:44.63 ID:iyNI0UTo.net
- >>312
GDではできたけど、GDはいやだってこと?
できましたっていうから解決したのかと。
- 314 :デフォルトの名無しさん:2015/09/02(水) 00:01:47.26 ID:Ke7ywQgJ.net
- >>313
2つの画像からgifアニメを作りたいのですがGDだと無理みたいなので・・・
- 315 :デフォルトの名無しさん:2015/09/02(水) 00:04:28.52 ID:w8Kps//0.net
- 今入ってないならサポートに問い合わせ。
root持ってるならパッケージインストール。
rootは無いけどhttpdを自由に設定できる権限があるならphpを手元にインストールしてそれを使うようにする。
- 316 :デフォルトの名無しさん:2015/09/02(水) 00:06:43.25 ID:Ke7ywQgJ.net
- >>315
ImageMagickをDLしてPHPファイルを読み込んで関数を使うみたいな方法はないのでしょうか?
- 317 :デフォルトの名無しさん:2015/09/02(水) 00:11:38.74 ID:w8Kps//0.net
- >>316
php.iniを編集する権限はあるの?
- 318 :デフォルトの名無しさん:2015/09/02(水) 00:14:11.74 ID:Ke7ywQgJ.net
- >>317
ないみたいです
- 319 :デフォルトの名無しさん:2015/09/02(水) 00:15:35.58 ID:w8Kps//0.net
- >>318
>>315
- 320 :デフォルトの名無しさん:2015/09/02(水) 00:25:58.98 ID:Ke7ywQgJ.net
- >>319
ありがとうございました
- 321 :デフォルトの名無しさん:2015/09/02(水) 13:32:51.31 ID:mwFjmevD.net
- バイナリプログラミングが出来れば自分でライブラリ作れるでしょ
ttp://blog.wnotes.net/blog/article/php-treats-animated-gif
この人みたいに(ちゃんと使えるかは不明)
- 322 :デフォルトの名無しさん:2015/09/02(水) 14:03:56.14 ID:opT5h4j/.net
- バイナリプログラミングって何だろう?
直接16進で機械語を打ち込むことかな
- 323 :デフォルトの名無しさん:2015/09/02(水) 14:05:33.62 ID:opT5h4j/.net
- こういうことか?
http://blog.asial.co.jp/754
> <?php // sample.php
> echo pack('C*', 0x50, 0x48, 0x50, 0x21) . PHP_EOL;
- 324 :デフォルトの名無しさん:2015/09/02(水) 17:52:10.67 ID:DsnqIILb.net
- セッションの保存をデフォルト(ファイルに書くやつ)でやってたのを、mysqlのようなDBに保存をしようと思う。
セッションハンドラクラスを作るのはいいんだけど、既存のアプリケーションに手を加えたくない。
php.ini の設定だけで自前セッションハンドラを組み込む方法ってある?
- 325 :デフォルトの名無しさん:2015/09/02(水) 17:54:49.49 ID:P+JlZNhE.net
- わざわざセキュリティ落とすようなことしないほうがいいよ
- 326 :デフォルトの名無しさん:2015/09/03(木) 22:57:13.60 ID:EZEw+dN3.net
- 2chみたいな掲示板を作ろうと思っているのですが、
何か良さそうな本はありませんか?
超初心者でも掲示板が作れるようになる本があれば教えてください。
- 327 :デフォルトの名無しさん:2015/09/03(木) 23:01:46.74 ID:gfhZ4+hm.net
- 既成品で動作させて気になる所を改良
- 328 :デフォルトの名無しさん:2015/09/03(木) 23:05:48.07 ID:EZEw+dN3.net
- いや、一から自分で作りたいんですよ。
何か良さそうな本があったら教えてください。
- 329 :デフォルトの名無しさん:2015/09/03(木) 23:11:31.13 ID:gfhZ4+hm.net
- 既成品を手本にゼロから作る
- 330 :デフォルトの名無しさん:2015/09/03(木) 23:15:14.55 ID:gMUwrAz0.net
- 1レスだけで作ろうと思えば作れそうだな
- 331 :デフォルトの名無しさん:2015/09/03(木) 23:39:38.83 ID:sW2CV04d.net
- >>326
コードサンプルをみることなく作るってことかな。
それなら、まずはhttpを理解するところからかなぁ。
少なくともhttp methodを知る必要があるし。
- 332 :デフォルトの名無しさん:2015/09/04(金) 19:24:17.94 ID:VmPNiXwJ.net
- 専ブラ対応しないならファイルの扱い方書いてある入門書ならなんでもいいよ
組み方がわからないなら何度も言われてるけど既製品見た方がはやい
- 333 :デフォルトの名無しさん:2015/09/04(金) 19:27:32.12 ID:z8YQRmVJ.net
- 何でファイルに書き込むこと前提なんですかねぇ
- 334 :デフォルトの名無しさん:2015/09/04(金) 21:58:28.78 ID:2xWjdMGKe
- >>326
掲示板の参考書じゃないけど、やっぱオライリーの「初めてのPHP&MySQL」がいいんじゃないかな?おれはあれで2か月ぐらいでブログ作れたよ。
- 335 :デフォルトの名無しさん:2015/09/04(金) 22:03:46.73 ID:2xWjdMGKe
- 334だけど、ちなみに俺も掲示板を作りたいな〜と思ってる。ただ、本家2chが自由というか完成されてるから、同じもの作ってもな〜とも思ってる。
誰かおもしろいアイデアないですか?
- 336 :デフォルトの名無しさん:2015/09/04(金) 22:15:59.80 ID:u93h3NNf.net
- ふと気になって夜も眠れない思考実験なんですけど、
もしもPCやサーバーやスパコンのCPUを見破り、そのマシン語を自由に操れる悪魔がいたとして、
その悪魔は世界中のありとあらゆるコンピューターをハッキングすることが出来てしまうのでしょうか?
- 337 :デフォルトの名無しさん:2015/09/04(金) 22:18:06.21 ID:GXVi17zX.net
- >>336 寝言かな?
- 338 :デフォルトの名無しさん:2015/09/04(金) 22:23:11.25 ID:u93h3NNf.net
- >>337
いえ、思考実験ではありますが、紛う事なき起き事です。
なんとなく思いついて
それが気になって眠れなくなるってことって
結構ありますよね?
でもどうなんでしょう?
ファイアウォールも根本はマシン語なので、
それが使いこなせてしまえば意味がなくなったりしませんか?
- 339 :デフォルトの名無しさん:2015/09/04(金) 22:32:22.09 ID:WfcwgdCY.net
- マシン語って言葉を最近覚えたんだろうね
- 340 :デフォルトの名無しさん:2015/09/04(金) 22:32:32.46 ID:voaTutYw.net
- >>338
それさあ、飛び回っている分子を選別し、振り分けできるような悪魔がいたら、いろんな事できるねって話と同じレベルだよ。
- 341 :デフォルトの名無しさん:2015/09/04(金) 22:36:24.64 ID:u93h3NNf.net
- >>340
うん。マクスウェルの悪魔やラプラスの悪魔と同レベル。
でも不可能であることだけはなんとなくわかりました。
- 342 :デフォルトの名無しさん:2015/09/04(金) 23:12:55.93 ID:2xWjdMGKe
- 普通の共用鯖で掲示板運用したら無謀?アクセス増えたら引っ越すつもりならあり?
- 343 :デフォルトの名無しさん:2015/09/04(金) 23:29:31.17 ID:+AIeW6Wf.net
- 関係ないけど、マクスウェルの悪魔は実在するよ
- 344 :デフォルトの名無しさん:2015/09/05(土) 00:06:05.84 ID:f7B8ro5r.net
- マシン語を自由に操れるのと、実行中のプログラムを改変するのは別の話である。
- 345 :デフォルトの名無しさん:2015/09/05(土) 01:14:30.57 ID:IONLXn6k.net
- 俺はインタプリタしか無理だ。
- 346 :デフォルトの名無しさん:2015/09/05(土) 05:08:46.02 ID:i6kEld9S.net
- PHPはポインタみたいなのありますか?
たとえば、100メガの文字列があるとしして。
後半の50メガ以降、80メガ以降を既成関数に渡したいとすると
カットして実体を渡すほかないですか?
- 347 :デフォルトの名無しさん:2015/09/05(土) 07:20:58.46 ID:JpUOkObrq
- 誰か面白いアイデアくりぃ〜笑 狂言でもいいお◎
- 348 :デフォルトの名無しさん:2015/09/05(土) 07:21:28.15 ID:JpUOkObrq
- ほんとにおもしろいと思ったら、ガチで必ずつくるから◎
- 349 :デフォルトの名無しさん:2015/09/05(土) 07:02:47.17 ID:i6kEld9S.net
- 諦めてファイルへ書き出しファイルポインタにします
- 350 :デフォルトの名無しさん:2015/09/05(土) 08:02:31.97 ID:NiREPU1p.net
- >>344
なるほど。
実行中のプログラムの根本であるファイルを操作することは不可能、
つまりそのような悪魔は存在しないと言うことですね。
ありがとうございます。
>>343
細胞内では第二種永久機関のブラウン・ラチェットが実現していると言うこと?
マクスウェルの悪魔は第一種永久機関の問題だよ。
- 351 :デフォルトの名無しさん:2015/09/05(土) 10:01:39.68 ID:D0k+6Pch.net
- 初スレ失礼します。
学校の課題で生徒の出席システムを作ることになったのですが、上手くいきません
どなたかご教授お願いします
- 352 :デフォルトの名無しさん:2015/09/05(土) 10:04:13.94 ID:D0k+6Pch.net
- 使用しているサーバはazure
で
ソースがhttps://drive.google.com/file/d/0B8a6OH-vNdAMWUl0aGdRX2VLZU0/view?usp=sharing
にうpしてあります。
初めてなので、めちゃくちゃ汚いらしいですが、よろしくお願いします。
- 353 :デフォルトの名無しさん:2015/09/05(土) 17:58:19.61 ID:8nbMWQS4.net
- 何かエラーが出てるならそのメッセージを
こういうコードでこういう結果がほしかったけどこういう結果になるのはなぜかとか
丸投げじゃなくてどう上手くいかないのかコード抜粋してその説明を
- 354 :デフォルトの名無しさん:2015/09/06(日) 04:47:29.17 ID:BCfPqjBk.net
- 学校の課題なんだから、自分でどうにかしないと学習にならないだろ。
- 355 :デフォルトの名無しさん:2015/09/07(月) 21:55:02.02 ID:IfyRdfTS.net
- そもそもその出席システムとやらが何だかわからないんだからどうしようもない
出欠二値でいいなら生徒をビットに割り振るのが一番スマートだな
nを生徒の番号としてn番目のビットフラグを立てるにはどうするか
n番目のビットが立ってるかどうかどう検出するか
二進数と論理演算で調べればすぐにわかるけどな
- 356 :デフォルトの名無しさん:2015/09/08(火) 00:12:02.60 ID:fkrc3pHR.net
- >>355
生徒数が増えた場合のアドバイスも書いてあげなよ。
大学なら学部生100人くらいいることはよくあるだろうし、すぐ必要になるさ。
- 357 :デフォルトの名無しさん:2015/09/08(火) 07:10:07.73 ID:xGk/4aAi.net
- 丸投げソース見てやるとかおまいら優しいな
- 358 :デフォルトの名無しさん:2015/09/08(火) 21:23:18.02 ID:yqLWsTWb.net
- 見てるわけなかろ
>>356
1列16人で区切って表示テーブルを横に伸ばせばいいだけ
16人なら全員出席でも7万以下だから昔のファミコンでもなんとかなるレベル
- 359 :デフォルトの名無しさん:2015/09/09(水) 18:51:31.08 ID:v1G2BtY+.net
- これをPHPでできますかね?
http://1bit.mobi/20110106215505.html
- 360 :デフォルトの名無しさん:2015/09/09(水) 18:58:26.50 ID:tGrd6Eqr.net
- できてもジャンプアクションのスクロールないとチープ極まりない
- 361 :デフォルトの名無しさん:2015/09/09(水) 19:01:57.65 ID:v1G2BtY+.net
- >>360
スクロースは別にjsですればいいですが、最低限js未対応ブラでも目次の表示はしたいので。
どのようにして作ればいいのでしょうか?
- 362 :デフォルトの名無しさん:2015/09/09(水) 19:10:13.56 ID:+quVusLF.net
- PHPとJSでは動作が異なるし、PHPではブラウザからすると静的なHTMになるだけ。
事前にサーバーでHTMが生成してあっても同じ。
そのときPHPでもJSでもなくてもいい。C言語、BASICでもいい。
- 363 :デフォルトの名無しさん:2015/09/09(水) 20:26:23.28 ID:v1G2BtY+.net
- >>362
PHPが対応鯖多いのでPHPでしたいです。
ただURLのソースはJQを使っていてどのようなソースを書けばいいか分かりません
- 364 :デフォルトの名無しさん:2015/09/09(水) 20:49:32.40 ID:JyAhRrTZ.net
- http://php.net/manual/ja/book.dom.php
http://php.net/manual/ja/book.simplexml.php
http://php.net/manual/ja/function.file-get-contents.php+http://php.net/manual/ja/function.preg-match.php
このあたり使えばできるよ
あのJavaScriptのソース(tree.js)は理解出来てるわけ?
全くわからないのならphpでやるのは諦めたほうがいいような・・・
- 365 :デフォルトの名無しさん:2015/09/09(水) 22:01:43.70 ID:cP17XdT8.net
- >>361
>js未対応ブラでも、目次の表示はしたい
目次とリンクは、HTMLファイルに書いておく。
そうすれば、JS機能がオフでも、表示される
- 366 :デフォルトの名無しさん:2015/09/09(水) 23:23:02.07 ID:v1G2BtY+.net
- "&index;"を目次に置き換えるコードを書いてみましたがしてみましたが出来ません・・・
http://notepad.cc/share/jH5opiyc92
<h1>あ</h1>
<h2>い</h2>
<h3>う</h3>
<h4>え</h4>
<h5>お</h5>
<h6>か</h6>
の目次を作ると
か
か
か
か
か
か
になります
- 367 :デフォルトの名無しさん:2015/09/10(木) 00:24:43.96 ID:satfoS2b.net
- 勝手にhタグ拾ってリンク作ればいいんだよね。
html内の[[nav]]の所をリストに書き換えるソース書いた
// htmlファイルを用意してない場合は
// ob_start();で出力をバッファにためて
// 最後に
// $html = ob_get_contents();
//htmlファイルを用意してあるなら
$html = file_get_contents('path');
$linkname = 'head_link'; //リンク用のnameの名前
preg_match_all("/<h[1-6].*?>(.*?)<\/h[1-6]>/", $html,$matches);
$html = preg_replace_callback("/(<h[1-6])(.*?)>/", function($tag){
global $linkname;
static $i = 0;
$str = $tag[1] . " name=\"{$linkname}{$i}\"" . $tag[2] . '>' ;
$i++;
return $str ;
}, $html);
$count = count($matches[0]);
print_r($matches);
$navi = "<ul>\n";
for($i=0;$i<$count;$i++){
$navi .= "<li><a href=\"#{$linkname}{$i}\">" .$matches[1][$i] ."</a></li>\n";
}
$navi .= "</ul>\n";
$html = str_ireplace("[[nav]]", $navi, $html);
echo $html;
- 368 :デフォルトの名無しさん:2015/09/10(木) 00:31:14.20 ID:satfoS2b.net
- hタグにname勝手につけなくてもいいならpreg_replace_callbackらへんは全部削除してね
というかページ内リンクnameじゃなくてidだった
h2とかh3を入れ子にするのは自分でやってねforの中で$maches[0][$i]にセレクタごと入ってるからなんとかして判定して頑張って
- 369 :デフォルトの名無しさん:2015/09/10(木) 00:46:13.08 ID:1c9BnOEf.net
- >>367
ありがとうございます。また明日してみます。
あと>>366が上手く行かないのは、何が原因でしょうか?
- 370 :デフォルトの名無しさん:2015/09/10(木) 01:10:32.85 ID:9M5qBB4N.net
- >>369
何というかコードへの突っ込みどころは多すぎるけど, 何より正規表現がダメ(>>367のを使うべき)
/.*\<h([1-6])\>(.*?)\<\/h\1\>.*/u
という正規表現をしているが, これでは .* は標準で貪欲マッチだから最後のh*タグにしかマッチしない
正規表現使うよりSimpleXMLとかで処理した方が楽だし確実だし賢いと思うけど。
- 371 :デフォルトの名無しさん:2015/09/10(木) 04:23:28.45 ID:l18x+WdQ.net
- http://www.dmm.co.jp/digital/videoa/-/list/=/sort=saleranking_asc/
たとえばDMMの動画紹介などで、サムネイルがずらっと整列して並んでいるのですが
こういった表示をするにはCSSでするんでしょうか?それともPHPで処理して反映させるんでしょうか?
- 372 :デフォルトの名無しさん:2015/09/10(木) 05:16:11.27 ID:BZtDa5Me.net
- >>371
調査方法はいろいろあるけれど、結論としてはスタイル。
/*media screen*/
#main-src ul#list > li, #main-src ul#list2 > li {
float: left; ←これ
width: 24%;
margin: 0 -1px -1px 0;
border: 1px #ccc solid;
}
- 373 :デフォルトの名無しさん:2015/09/10(木) 11:33:11.46 ID:+aSujBcM.net
- >>372
おまえ親切だな。
- 374 :デフォルトの名無しさん:2015/09/10(木) 22:13:29.23 ID:mAu5JtU+.net
- Eclipseが重いねん
オールインワンから何を削ると軽くなるの?
もしくは違うIDE行ったほうがいいのかな
デスクトップはi7でSSDで16GBメモリだから無問題なんだけどノートがi5でHDDで4GBメモリだからヤバイ
どちらも64bit Windows7
- 375 :デフォルトの名無しさん:2015/09/10(木) 22:25:26.56 ID:/OF3RUxs.net
- phpやる人はasp.netはやらないんですか?
- 376 :デフォルトの名無しさん:2015/09/10(木) 22:44:43.06 ID:+aSujBcM.net
- Atomつかおうぜ
- 377 :デフォルトの名無しさん:2015/09/10(木) 22:53:53.10 ID:mAu5JtU+.net
- >>376
Atomいいよな
html(.tpl)とかJSとかcssはAtom使ってるわ
でもずーーーーっとWin畑でVisualStudioだったから実行時にステップ実行で変数見れないの気持ち悪いねん
var_dumpとかダルいねん
- 378 :デフォルトの名無しさん:2015/09/11(金) 03:03:42.84 ID:0qcobZsx.net
- >>377
AtomだろうがEclipseだろうがステップ実行できるだろ。
無能を棚に上げるな。
- 379 :デフォルトの名無しさん:2015/09/11(金) 08:47:28.11 ID:k9ZbFTSR.net
- VSに慣れると厳しいわな
あれと比較すると他のIDEはウンコ以下
- 380 :デフォルトの名無しさん:2015/09/11(金) 09:50:52.88 ID:yoTyzIo0.net
- ネット上でPHPを扱うサーバってどこ使えばいいのかな。
無料なところで、さーっと探してみたら「Rental Orbit Space」が何だか良さそうだったのだけど、
ほかになにかおすすめのところがあるようなら教えてほしい。
- 381 :デフォルトの名無しさん:2015/09/11(金) 10:39:11.71 ID:t30ynhYx.net
- 板チ
http://peace.2ch.net/hosting/
- 382 :デフォルトの名無しさん:2015/09/11(金) 14:24:42.27 ID:QQGqaHlG.net
- mysqlを利用する場合はどちらがオススメですか?ページ内ではselectを3回ほど使ってます。
1.使用するデータを全部読み込んでからhtmlの出力を始める。
2.使用する直前に必要なデータだけを読み込む。
現在1の方法を使っているのですが、2の方が表示速度が上がるのではないかと。
- 383 :デフォルトの名無しさん:2015/09/11(金) 14:27:42.42 ID:/k4jExi0.net
- 2はajax使うの?
まあ両方やって計測で
- 384 :デフォルトの名無しさん:2015/09/11(金) 14:29:02.46 ID:r0qleKIN.net
- mysqlの使い方次第
3回使用しているところでどれくらい時間が掛かっているかを調べ
チューニングの方法をまず考えた方が良いかも。
- 385 :デフォルトの名無しさん:2015/09/11(金) 14:36:42.85 ID:QQGqaHlG.net
- >>383
phpとmysqlだけです。
それ以上の知識が無いので…。
- 386 :デフォルトの名無しさん:2015/09/11(金) 14:41:15.72 ID:QQGqaHlG.net
- >>384
標準的な方法があるわけではなくその都度良い方を選んだらいいと言う事ですね。
- 387 :デフォルトの名無しさん:2015/09/11(金) 20:42:48.90 ID:8lckqHAv.net
- $val = "ichigo";
ってのがあったとして
$ichigoって変数にしたいのですがどうしたら良いですか?
具体的にはforeachの中でarrayに("ichigo", "mikan",...)
とあって、$valをキーにしました。
"ichigo"と$ichigoが欲しくて
$val_1 = "$" . "$val";
としたのですが'$ichigo'になってしまいました。
- 388 :デフォルトの名無しさん:2015/09/11(金) 20:45:55.94 ID:6RIVBYPF.net
- $$val
- 389 :デフォルトの名無しさん:2015/09/11(金) 20:56:24.18 ID:mSu0XMwg.net
- LAMP環境です
ページAでsetcookie('test',123)してるんですが、ページBでcookieの中を見るとと入っていません
ググったんですがよくわかりません
よろしくお願いします
- 390 :デフォルトの名無しさん:2015/09/11(金) 20:57:43.88 ID:8lckqHAv.net
- 事故解決しました
${"$ichigo"}でした
- 391 :デフォルトの名無しさん:2015/09/11(金) 20:58:53.79 ID:t30ynhYx.net
- ページBは別ディレクトリなのか?
- 392 :デフォルトの名無しさん:2015/09/11(金) 21:20:38.66 ID:GJirAVL+.net
- >>389
実際のコードを書け, 特にsetcookie側。
- 393 :デフォルトの名無しさん:2015/09/11(金) 21:26:55.46 ID:Z45NruML.net
- たぶんpathだな
- 394 :384:2015/09/11(金) 21:41:13.86 ID:mSu0XMwg.net
- 答えになってないかもですが、symfonyを使ってます
AとBはcotrollerも違い、viewのディレクトリも違います
ソースは今日は出先なので貼れないですが以下のような感じです
Acontroller.phpの中で、
テーブルにレコードinsertするActionの一番最後に書いてます
function registAction{
//レコードinsertする処理
setcookie('test',123);
}
Bcontroller.php
ではcookieに関する処理は入れてません
cookieはブラウザ(Chrome)のDeveloperツールで確認してます
- 395 :デフォルトの名無しさん:2015/09/11(金) 22:16:36.36 ID:GHVwR1ig.net
- entensionでcache関連の奴どれか入れるとレスポンス良くなるますか?
- 396 :デフォルトの名無しさん:2015/09/12(土) 09:56:39.53 ID:R3r/vRAo.net
- 2chのread.cgi/hoge
みたいなphp以下のファイルを処理する事ってできませんかね?
- 397 :デフォルトの名無しさん:2015/09/12(土) 11:08:14.49 ID:KVS4ZFCE.net
- >>389
symfony使ったことないけどhttpレスポンス管理するオブジェクトあるっぽいからそこで食わせればいいんじゃね
sfWebResponseとsfWebRequestでググれば使い方出てくる
>>396
mod_rewrite
じゃなければもっと詳しく書いてくれないとわからない
- 398 :デフォルトの名無しさん:2015/09/12(土) 11:10:06.53 ID:K5Xj9mys.net
- 普通にファイルを開いて読めば良いだろう
- 399 :デフォルトの名無しさん:2015/09/12(土) 15:09:05.41 ID:ss/jDHIV.net
- >>396
PATH_INFOのこと?
- 400 :デフォルトの名無しさん:2015/09/12(土) 15:55:05.76 ID:R3r/vRAo.net
- 普通のサーバーじゃ出来そうにないな
- 401 :デフォルトの名無しさん:2015/09/12(土) 16:40:00.67 ID:v8+tPOvk.net
- 普通にPATH_INFO使え
- 402 :デフォルトの名無しさん:2015/09/12(土) 16:50:08.17 ID:1mS4NSAq.net
- phpってhtmlやjavascriptなんかも混ぜて書ける変態言語に見えるんですが、ちゃいますか?
- 403 :デフォルトの名無しさん:2015/09/12(土) 17:07:47.18 ID:Lvz/9L2y.net
- >>402
あまり知られてないけど、shも書けるしCも書けるよ
- 404 :デフォルトの名無しさん:2015/09/12(土) 21:51:57.35 ID:mTeFJ4oV.net
- PHPで童貞捨てたんですが、次に学ぶためにとっつき易い言語って何ですか?
Cが似てるとかJavaが近いとかそんなアドバイスくださいな
- 405 :デフォルトの名無しさん:2015/09/12(土) 22:29:39.47 ID:gDZ5aTy9.net
- >>404
Cが似てる
- 406 :デフォルトの名無しさん:2015/09/12(土) 23:44:50.71 ID:TYwAh20p.net
- >>404
JavaやってからCだな
ただその前にJavaScriptは必須
- 407 :デフォルトの名無しさん:2015/09/12(土) 23:49:30.21 ID:3+0RjRCl.net
- PHPをグニャグニャにしたのがperl
- 408 :デフォルトの名無しさん:2015/09/13(日) 00:39:33.65 ID:77ddCjlU.net
- どう考えてもC。
PHP7でついに本当の配列を手に入れたとか言ってる意味が分からないならますます。
- 409 :デフォルトの名無しさん:2015/09/13(日) 01:10:18.96 ID:zE88tHy7.net
- プログラミング初心者でやっとPHPが手になじんできた程度の者です。
レンタル鯖を借りて会員制の自サイトを公開するとなると、どの程度の時間で習得できますか。
最近Mysqlの勉強をしているのですがあまり進捗がないです。
おすすめの本、サイトがあれば教え得頂きたいです。
- 410 :デフォルトの名無しさん:2015/09/13(日) 01:15:18.94 ID:H6vWVRfH.net
- 俺もおすすめのレンサバ教えてほしい
- 411 :デフォルトの名無しさん:2015/09/13(日) 01:34:59.27 ID:cf7CWKJI.net
- var_dump('鯖板へ');
- 412 :デフォルトの名無しさん:2015/09/13(日) 01:39:02.72 ID:SU3r4vhu.net
- 会員制の自サイトを作るのは難しいことではない
難しいのは会員の情報を守ることだ
- 413 :デフォルトの名無しさん:2015/09/13(日) 01:57:14.30 ID:cf7CWKJI.net
- さらに会員を集めなくてはならない。
- 414 :デフォルトの名無しさん:2015/09/13(日) 10:54:35.22 ID:ts9uuw7s.net
- >>409
1年くらい。
PHP+MySQLに半年。セキュリティに半年。
- 415 :デフォルトの名無しさん:2015/09/13(日) 14:46:36.91 ID:D2q3+sgT.net
- ImagicKかGDのどちらかで、画像処理をしたいのですが、jpg gifどちらでもプログラムを変えることなく組めるのはどちらですか?
- 416 :デフォルトの名無しさん:2015/09/13(日) 15:21:48.77 ID:SU3r4vhu.net
- GD(条件のとこは擬似言語)
if ($fname.getMimeType().match("image/jpe?g")) $resource = imagecreatefromjpeg($fname);
elseif ($fname.getMimeType() =="image/gif") $resource = imagecreatefromgif($fname);
$resource = new Imagick($fname);
if-else使うことがプログラムを変えることを指しているのならImagick
- 417 :デフォルトの名無しさん:2015/09/13(日) 16:53:22.24 ID:77ddCjlU.net
- 画像リソースを読み込んでしまえばどちらも同じ
- 418 :デフォルトの名無しさん:2015/09/13(日) 17:38:28.92 ID:iQC47Pyn.net
- さくらのレンタルサーバーを使ってるのですが
Fatal error:Call to undefined function ftp_connect
上記が表示されてアップロードできません。
調べたらconfigureオプションで --enable-ftpを追加すれば可能とのことでしたが
configureにはどうやってアクセスするのでしょうか?
コマンドラインの操作手順等が分かりません。
- 419 :デフォルトの名無しさん:2015/09/13(日) 17:40:46.15 ID:RKUXc0Tt.net
- さくらのサーバーを使ったこと無いけど基本モジュールはビルド済みで、php.iniの設定だけでは?
- 420 :デフォルトの名無しさん:2015/09/13(日) 18:01:08.92 ID:iQC47Pyn.net
- iniに記述してみましたが反応なしでした。
- 421 :デフォルトの名無しさん:2015/09/13(日) 18:51:05.80 ID:77ddCjlU.net
- >>418
> configureオプションで --enable-ftpを追加すれば可能
これはconfigureというコマンドのオプションに追加ってことだよ。
configureはMakefileを作るためのコマンド。その後出来上がったMakefileを使ってmakeする。
つまりphpをソースからコンパイルする人向けの話だよ。
- 422 :デフォルトの名無しさん:2015/09/13(日) 18:57:27.34 ID:iQC47Pyn.net
- >>421
ややこしそうですね
こちら側で修正できませんでしょうか?
- 423 :デフォルトの名無しさん:2015/09/13(日) 19:27:22.03 ID:4H3dG/Do.net
- >>422
レンタルサーバーじゃむり
- 424 :デフォルトの名無しさん:2015/09/13(日) 19:49:44.44 ID:gd0zNYZx.net
- >>422
「FTP関数の使用」は × になってるよ
ユーザーが変更するのは無理でしょ
https://help.sakura.ad.jp/app/answers/detail/a_id/2105
- 425 :デフォルトの名無しさん:2015/09/13(日) 23:51:21.17 ID:M+tl4tzP.net
- index.php?q=文字列
で受け取った "文字列" をJSの変数
var variable ="文字列";
に入れておいて、その直後に
index.html
を読み込んでその中で使いたいのですが、やり方が分かりません。
ググルキーワードを教えてください。
- 426 :デフォルトの名無しさん:2015/09/14(月) 01:19:08.17 ID:btLla6l6.net
- QUERY_STRING もしくはCONTENT_LENGTH js だろ。
php関係ねーだろドサンピン
httpdの事を調べなこのどシロウトが
世話がやけるぜスカンピン
おととい きやがれこのノータリン
- 427 :デフォルトの名無しさん:2015/09/14(月) 01:24:45.41 ID:BKH9gjXB.net
- GETメソッドは、URLの末尾に「?」をつけ、
「パラメーター名="値"」という形式で、データを送る
一方、POSTメソッドは、フォームの中のコントロールに、
値を入力して、データを送る
詳しくは「get post 違い」で検索して
そして、JSファイルに書き込んだら、
HTMLファイルに、JSファイルのパスを書いておく
<script src="File1.js"></script>
- 428 :デフォルトの名無しさん:2015/09/14(月) 01:32:16.31 ID:IkwcTGNO.net
- JSファイルに書き出すと、
複数からアクセス合ったとき困ることにならないか?
- 429 :デフォルトの名無しさん:2015/09/14(月) 01:52:01.56 ID:dwa7hTy+.net
- >>425
> index.html
> を読み込んでその中で使いたい
使うのはhtmlおよびそのJSを読み込み、解釈したクライアントであって、php側が使うものではない。
- 430 :デフォルトの名無しさん:2015/09/14(月) 14:23:48.75 ID:4n9SKrVI.net
- 別にファイルを書き出しておく必要はないね。
PHPでJavaScriptのスクリプトを動的に生成すればいいだけ。
- 431 :デフォルトの名無しさん:2015/09/14(月) 15:48:44.95 ID:B32AStzW.net
- >>425
http://php.net/manual/ja/reserved.variables.get.php
- 432 :デフォルトの名無しさん:2015/09/14(月) 15:50:43.03 ID:h9CenDqd.net
- >>430
その方式だと
<script >...</script>がindex.htmlの前に入るんじゃないですか?
問題無いですか?
- 433 :デフォルトの名無しさん:2015/09/14(月) 17:04:28.61 ID:7eSzmWQT.net
- index.htmlにjs記述してindex.htmlでパラメータ受け取ればいいんじゃないのか?
- 434 :デフォルトの名無しさん:2015/09/14(月) 17:20:33.69 ID:B32AStzW.net
- そもそも、index.phpで受け取ったものをindex.htmlで使いたいというのはあってるんだろうか?
- 435 :デフォルトの名無しさん:2015/09/14(月) 17:58:40.45 ID:h9CenDqd.net
- >>434
元々index.htmlで作ったページをbrowserから引数を渡す仕様に変更したい場合などじゃあない?
- 436 :デフォルトの名無しさん:2015/09/14(月) 22:51:36.27 ID:LFk2qsIS.net
- ググりまくったところxammpのPHPのverアップデートはPHPを新しく落としてきて上書きすればいいとあったのですが上手く行きません。
ttp://mergedoc.osdn.jp/index.html#/pleiades_distros4.5.html
このx64 FullEdition(PHP ver5.4.31)のPHPを
ttp://windows.php.net/download/
ここの5.6.13(VC11 x64 Thread Safe (2015-Sep-04 02:29:45))にしようと現在のPHPフォルダをリネームしてバックアップ
新規にPHPフォルダを作って解凍してXAMPPコントロールパネルのApacheのスタートボタンを押すものの(php.iniの編集はしていない状態)
Error: Apache shutdown unexpectedly.This may be due to a blocked port, missing dependencies...とポート重複した時と同じエラーが出てしまいます
これ( http://www.microsoft.com/ja-JP/download/details.aspx?id=30679 )は入れてます
- 437 :デフォルトの名無しさん:2015/09/14(月) 22:55:12.35 ID:dwa7hTy+.net
- apacheを止めたという文章がないままapacheのスタートを押してるけど、その辺大丈夫なの
- 438 :デフォルトの名無しさん:2015/09/14(月) 22:58:43.11 ID:LFk2qsIS.net
- >>437
すみません止めてます
止めて尚且つコンパネも終了してます
念のため再起動もしました
- 439 :デフォルトの名無しさん:2015/09/14(月) 23:35:21.73 ID:dwa7hTy+.net
- >>438
実際ポートがLISTENしてないことも確認した?
- 440 :デフォルトの名無しさん:2015/09/14(月) 23:41:48.14 ID:LFk2qsIS.net
- >>439
はい
またバックアップしたPHP_bakeup(旧PHPフォルダ)をPHPにリネームすると即座に起動します
- 441 :デフォルトの名無しさん:2015/09/14(月) 23:48:32.38 ID:dwa7hTy+.net
- なんだろ、とおもってぐぐったら先頭にこんなん出てきたけど、ググりまくったとのことなので別件なのかな。
http://ninnin.in/diary/xampp-error-this-may-be-due-to-a-blocked-port-missing-dependencies/
- 442 :デフォルトの名無しさん:2015/09/14(月) 23:51:59.14 ID:LFk2qsIS.net
- >>441
このページも見ましたね……
ちょっと解決できそうにないので5.9積んだEclipseの導入を考えてみます
ありがとー!
- 443 :デフォルトの名無しさん:2015/09/14(月) 23:53:02.45 ID:LFk2qsIS.net
- 間違いました 5.6です
- 444 :デフォルトの名無しさん:2015/09/14(月) 23:53:39.65 ID:dwa7hTy+.net
- いえいえ。お役に立てず。
ちなみに再頒布可能パッケージは64bit版入れてある?
あとはぱっと思いつくものないです。(イベントビューア見てみてとかそういう感じになっちゃう)
- 445 :デフォルトの名無しさん:2015/09/14(月) 23:58:33.31 ID:LFk2qsIS.net
- 再頒布パッケージはx86とx64入れてます
元々Win畑だったのでそこら辺はなんとなく想像がついて色々やってみたのですがXAMPPだけはどうにもならずに今回質問しました
どうもありがとう
- 446 :デフォルトの名無しさん:2015/09/14(月) 23:58:57.36 ID:dwa7hTy+.net
- そっかぁ。無念。
- 447 :デフォルトの名無しさん:2015/09/15(火) 05:26:50.64 ID:FdSfZNLJ.net
- php上書きで動くほど単純なもんじゃないだろw
php5.6用のapacheモジュール登録したり
php.iniも前バージョンの参考にして最低限xampp用のパスに書きなおさないとだめだろ
素人はおとなしくパッケージのままつかっとれ
- 448 :デフォルトの名無しさん:2015/09/15(火) 08:33:34.00 ID:c6kBSd9X.net
- php_mysqli.dll
の有無で何が変わりますか?
入れると検索が速くなりますか?
- 449 :デフォルトの名無しさん:2015/09/15(火) 20:11:48.06 ID:dFBKAE/q.net
- PHPを使って、別のWEBページの特定のHTMLを引っこ抜いてきて表示することってできますか?
自分のブログのコメント欄のみを見やすく表示する「コメントビューワー」を作りたいのですが…
- 450 :デフォルトの名無しさん:2015/09/15(火) 20:15:12.24 ID:hBquVAC9.net
- 自分のブログならDBあたりに保存されているんだからそこ読めばいいだけ
- 451 :デフォルトの名無しさん:2015/09/15(火) 20:17:29.12 ID:iJn5Afvq.net
- 一度全部のHTMLを読み込んだ上で必要な箇所を抜き出して表示することは可能
php スクレイピング
とかでぐぐるといいんじゃないっすかね
- 452 :デフォルトの名無しさん:2015/09/15(火) 20:26:43.08 ID:dFBKAE/q.net
- >>450
livedoorブログはデータベースにアクセスできないんですよね…
>>451
ありがとうございます!スクレイピング、聞いたことあります
ちょっと検索してみます!
- 453 :デフォルトの名無しさん:2015/09/15(火) 22:49:51.66 ID:Zyfo7CCu.net
- ググったけど本当にXAMPPのPHPフォルダ上書きでおkとか書いてるblogそこそこあるな
PHPに限らんけどアホみたいな記事あげてる奴多すぎるからggrksってのも微妙だな
- 454 :デフォルトの名無しさん:2015/09/15(火) 22:56:32.01 ID:Zyfo7CCu.net
- もう見てないだろうけどオールインワン重いし色々古いし特にPHPオンリーならいいとこないからやめたほうがいい
ttp://sourceforge.net/projects/xampp/files/XAMPP%20Windows/5.6.12/ ポータブルがいいならここのZIP版
IDE必要ならEclipseなりなんなり別に落として使うといいよ
俺はPHPStormだけど軽いし強力なので金があるならオススメ(ステマ)
- 455 :デフォルトの名無しさん:2015/09/15(火) 23:52:05.89 ID:wfKXWUgu.net
- パッケージにphp.iniというファイル自体は入ってないから上書きで設定引継ぎなんじゃないの。
php.ini.develop っぽいやつじゃない?
今回の話のは旧バージョンのディレクトリリネームしてるからphp.ini行方不明だろうけど。
- 456 :デフォルトの名無しさん:2015/09/16(水) 02:27:28.84 ID:kmfiaTaj.net
- >>452ですが、調べてもさっぱりわかりません…
うーん、別のサイトで同じことやってたからソース見て参考にしようと思ったんだけどphpって難しいね
- 457 :デフォルトの名無しさん:2015/09/16(水) 02:45:23.08 ID:zBDmVf67.net
- >>456
file_get_contents('http://〜') で HTML 取ってきて、その中から欲しい部分を取り出せばいい。
HTMLを正確にパースしなくても、うまいこと正規表現書いたりその他ロジックを組み合わせればいい。
例えば、まずコメント部分を探すため特定のクラスが指定された div を見つけ、その後ろをコメント1件ずつを探すため特定のクラスの付いたタグを探すとか。
開始タグと終了タグの対応をきとんと取ろうとすると大変だから、適当に誤魔化して処理するといい。
- 458 :デフォルトの名無しさん:2015/09/16(水) 03:19:18.85 ID:ieR9FMOp.net
- 変なこと教えずにxpath使えでいいじゃん。
- 459 :デフォルトの名無しさん:2015/09/16(水) 03:22:50.57 ID:zBDmVf67.net
- htmlが厳密だったらそれでもいいんだろうけど
- 460 :デフォルトの名無しさん:2015/09/16(水) 04:05:57.10 ID:YSsosHmp.net
- DOMDdocument::loadHTML
- 461 :デフォルトの名無しさん:2015/09/16(水) 06:47:11.48 ID:HSSwq9JZ.net
- 質問者はそもそもPHPの扱い方もわからなければ
そもそもプログラム経験もないのではないか?
ヒント与えたところで作れないだろうな
- 462 :デフォルトの名無しさん:2015/09/16(水) 14:50:47.08 ID:LN3L51MD.net
- file_put_contents('%SystemRoot%\system32\hoge.dll', $dll);
C:\Windowsなどが入る予定の%SystemRoot%が環境変数としてではなく文字列として認識され
そんなフォルダないよと言われるのですが
Windowsの環境変数使う時ってどうしたらいいのでしょうか?
- 463 :デフォルトの名無しさん:2015/09/16(水) 14:59:36.61 ID:aL/dguIa.net
- 一般には外部コマンド実行で、PHPに取得命令があればそっち。
- 464 :デフォルトの名無しさん:2015/09/16(水) 15:03:06.05 ID:7sbTeZHX.net
- getenv('SystemRoot') してつなぐ
- 465 :デフォルトの名無しさん:2015/09/16(水) 15:04:15.17 ID:aL/dguIa.net
- これで
<?
$SystemRoot = exec("echo %SystemRoot%");
$dllpath = "{$SystemRoot}\system32\hoge.dll";
print_r([$SystemRoot,$dllpath]);
//file_put_contents($dllpath, $dll);
- 466 :片山博文MZ ◆T6xkBnTXz7B0 :2015/09/16(水) 15:08:12.18 ID:OezDmTKu.net
- $_ENV['環境変数の名前']
- 467 :デフォルトの名無しさん:2015/09/16(水) 15:12:56.40 ID:LN3L51MD.net
- レスありがとうございます。
$_ENVではUndefined Indexになったで、>>464さんのgetenv使う方法でとります。
exec使う方法も参考になりました。
どうもありがとうございました。
- 468 :デフォルトの名無しさん:2015/09/16(水) 16:10:09.45 ID:S9pU6Zcj.net
- $say = $greeting . " ななしさん";
$greeting = "おはよう";
echo $say; //おはよう ななしさん
$greeting = "こんにちは";
echo $say; //こんにちは ななしさん
イメージとしてはこのようにしたいのですがこれは期待どおり動作しません
リファレンスにして
$say =& $greeting . " ななしさん";
に変えると変化して動作するのですが「ななしさん」が表示されません
どうするのが正しいんですか?
- 469 :デフォルトの名無しさん:2015/09/16(水) 16:16:09.27 ID:ieR9FMOp.net
- 正しい方法なんてものはないし、期待通りに動かすことぐらいできそうな気がするけどな。
ただそうするのに何らかの理由をつけて避けてるだけで。
- 470 :デフォルトの名無しさん:2015/09/16(水) 16:27:31.20 ID:S9pU6Zcj.net
- 関数使わないでも変数にリファレンス使うだけでいけそうだったから質問しただけです
エラー出してくれればよかったのですが
あのコードで動いてしまったのでちょっと変えれば動くもんかと
- 471 :デフォルトの名無しさん:2015/09/16(水) 16:32:23.17 ID:kmfiaTaj.net
- >>457
ありがとうございます。
>>460さんの方法と合わせて、以下のようなコードを書いてみました。
<?php
$html = file_get_contents('http://~’);
//HTMLを書き出す
$doc = new DOMDocument();
$doc->loadHTML($html);
//一部分(sectionタグ)だけを抽出
$section = $doc->getElementsByTagName('section')->item(0);
//HTMLを出力
echo $doc->saveHTML($section);
?>
仰る通りPHPを触るのは初めてで若干混乱していますが、一応うまくいったようです…
ちなみに、「->」という演算子は「右辺の中の左辺のの要素を参照する」っていうことでいいんでしょうか…?
- 472 :デフォルトの名無しさん:2015/09/16(水) 16:32:23.54 ID:ieR9FMOp.net
- >>470
evalにしてみたら?
- 473 :デフォルトの名無しさん:2015/09/16(水) 16:40:19.72 ID:zBDmVf67.net
- >>470
これは
$say =& $greeting . " ななしさん";
多分こう評価されるんでしょう。
($say =& $greeting) . " ななしさん";
$say は $greeting のリファレンスになり、それと文字列を繋げた値が作られ、その値は捨てられる。
で、やりたいことは多分クラス化してやるような処理なんじゃないかな。
- 474 :デフォルトの名無しさん:2015/09/16(水) 16:40:48.24 ID:OCykl+Gn.net
- 知り合いが作ったソースを修正しなきゃいけないんだけど、ど初心者なもんでちょっとご教授頂きたい。
*var_dumpやprint_r(var,true)使うとくっそ重くなってフリーズ、もしくは*メモリエラー(リーク?オーバーフロー?)出ちゃうんだけど
小分けに表示したり、*子にオブジェがあった場合に再帰的に下までのぞきにいくんじゃなくて親に直接ついてる子のみの参照(表示)とかできる?(´・ω・`)
あとよかったらそれぞれの機能にあたる名前?を教えてほしいOTL 日本語喋れって怒られた・・・
・var_dump やprint_r と言った関数を例にした機能
・php.iniに設定するメモリーの値を超える事
・子のオブジェ?(例えば class a{ public int num1;public function a(){} public function b(){}}で言うところのa::bやa->num1?a::num1?に当たる名前
クラスAの○○であるnum1、クラスAの○○である関数(?)b?
・○○.phpという形でアクセスして来た場合の 実行元のPHPと呼ばれたPHP(use ××.php←)の関係 (親と子・・・ではないよねOTL)
・staticとglobalの使い方
・cgi-php と handlerの違い(1リクエスト1プロセス発行と言うのは同じ?)
・上記とprefork workerの違い
\(^o^)/全部じゃなくてもいいので一部でもいいです!お願いします
- 475 :デフォルトの名無しさん:2015/09/16(水) 16:52:29.82 ID:ieR9FMOp.net
- >>474
その知り合いに聞けばいいじゃんという回答ではだめなんだろうか。知り合い死んだの?
- 476 :デフォルトの名無しさん:2015/09/16(水) 16:59:34.00 ID:9fL6Ueyi.net
- PHP マニュアル
ttps://secure.php.net/manual/ja/index.php
クラスの中には、定数や変数("プロパティ" といいます)、
そして関数("メソッド" といいます)を含めることができます
ひとまず検索するか、PHP マニュアルを読んでくれ
- 477 :デフォルトの名無しさん:2015/09/16(水) 17:04:11.27 ID:ieR9FMOp.net
- というだけではアレか。
最初の質問は、出力したいものがオブジェクトならリフレクション使う。
そうではなく多次元配列の中のオブジェクト以外を出力したいということなら自前でちょっとした関数作る。
最後二つはapacheの話。下から二つ目は何か誤解を含んでいる気配も。
付け焼刃的にやりたいというわけじゃないなら公式マニュアルどんどん読めばいいよ。
- 478 :デフォルトの名無しさん:2015/09/16(水) 18:37:59.26 ID:GuiiBHkk.net
- >>474
子にオブジェクトって継承なの?
親に直接ついてる子の意味がちょっとよくわからない。PHPのクラスの親子関係は1対1だよ。再帰でもなさそうだ。
・var_dump やprint_r と言った関数を例にした機能
一般的にその都度値を表示して確認することをプリントデバッグと呼ぶ。
大くくりに言うとデバッグ
・php.iniに設定するメモリーの値を超える事
phpに限らずメモリ以上のデータを保存しようとして溢れることをオーバーフローという
・子のオブジェ〜
クラスの中の$varはプロパティ、function hoge(){...}はメソッド
そして子じゃなくて$obj = new objしたなら$objはobjクラスのインスタンスと呼ぶ。クラスの親子関係は別にある
・○○.phpという形でアクセスして来た場合の 実行元のPHPと呼ばれたPHP(use ××.php←)の関係 (親と子・・・ではないよねOTL)
a.phpの中でincludeもしくはrequire b.phpをしたなら呼び出し元
・staticとglobalの使い方
普通のとは使いどころ違うからエスパーするけどもし関数内で使われているstaticとglobalキーワードの違いでいうなら
global →関数の外で使われている変数を見れる
static →その関数全ての呼び出しで値を保持して使える
・cgi-php と handlerの違い(1リクエスト1プロセス発行と言うのは同じ?)
・上記とprefork workerの違い
ごめんcgiで動かすことがないのでよくわからない。
あとhandlerはエラーハンドラしかわからないけどこの文脈で出てくるhandlerってどういうもの?
ググったけどようわからん…
- 479 :デフォルトの名無しさん:2015/09/16(水) 18:52:44.93 ID:ieR9FMOp.net
- >>478
彼のいう「子にオブジェクト」って、メンバに別のクラスのインスタンスを含むってことじゃないかしら
- 480 :デフォルトの名無しさん:2015/09/16(水) 20:37:16.81 ID:OCykl+Gn.net
- 想像以上にレスがきてる!
>>475 もうコンタクトを取ることは不可能臭い
>>476,>>477 急にお腹が・・・
>>478 ありがたや・・・
>>479 親と子って違うのかorz
えっと・・・レスを参考にして質問を修正すると・・・
プリントデバッグ使うと動作が不安定になってオーバーフローしてしまうので
インスタンスのプロパティ表示を小分けにしたり、インスタンスの中のインスタンスの詳細を表示しないように設定できませんか
(´・ω・`)こんな感じですかね
class testA
{
}
- 481 :デフォルトの名無しさん:2015/09/16(水) 21:04:25.11 ID:ieR9FMOp.net
- >>480
それなりに簡単に自分で作れるから勉強と思って頑張りな。
それかxdebug入れてvar_dumpを強化するか。
- 482 :デフォルトの名無しさん:2015/09/16(水) 21:41:01.67 ID:OCykl+Gn.net
- (´・ω・`)はい、分かりました。 >>476のマニュアル読んできます
- 483 :447:2015/09/17(木) 16:29:03.53 ID:1rTPpGdU.net
- //リファラーのURLを取得
$referer = $_SERVER["HTTP_REFERER"];
>>452で質問したものですが…
//取得したURLのHTMLを取得
$html = file_get_contents($referer);
//HTMLをパースする
$doc = new DOMDocument();
$doc->loadHTML($html);
//特定の箇所だけを抽出
$com = $doc->getElementsByTagName('section')->item(0);
//HTMLを出力
echo $doc->saveHTML($com);
上記のようなコードを書いたのですが、特定の箇所だけを抽出する際にタグではなくIDのみを抽出したいので、「getElementsById(‘hoge’)->item(0);」と書いたところうまくいきませんでした…
パースしたHTMLから特定のID部分だけを抜き出すにはどうすれば良いのでしょうか
- 484 :デフォルトの名無しさん:2015/09/17(木) 16:43:30.98 ID:Z358njol.net
- getElementById じゃないの?
idは1個しかない前提だから、そのまま返ってこないかな
- 485 :447:2015/09/17(木) 16:52:17.92 ID:1rTPpGdU.net
- >>484
あ、すみません;
sが余計でしたね…しかしどうしてもできない…
たとえば、取得したHTMLのID名「blog-footer」を全部引っこ抜きたい場合、
$hoge = getElementById('blog-footer')->item(0);
echo $doc->saveHTML($hoge);
と書いても無理でした…
なんでなんでしょうか…
- 486 :デフォルトの名無しさん:2015/09/17(木) 17:05:32.70 ID:bU092Fsh.net
- マニュアル読んでないからじゃないかな。
- 487 :デフォルトの名無しさん:2015/09/17(木) 17:10:09.39 ID:N+2d3iGi.net
- public DOMNodeList DOMDocument::getElementsByTagName (string $name)
public DOMElement DOMDocument::getElementById (string $elementId)
なのだが。
- 488 :デフォルトの名無しさん:2015/09/17(木) 17:37:16.77 ID:Z358njol.net
- まずIDは1個なので、Listが返るわけでもなし、item(0)なんてやる必要はない。
で、
ちょっとやってみたけどsetIdAttribute呼ばないと駄目な感じ?
一応呼んだら出来たけど、これじゃ使いにくそうな。
- 489 :デフォルトの名無しさん:2015/09/17(木) 17:41:57.38 ID:N+2d3iGi.net
- 頭悪い奴しかいない予感
- 490 :デフォルトの名無しさん:2015/09/17(木) 17:42:38.67 ID:JaPdUxaK.net
- IDは1個であるはずだけど>>452の中じゃclassのように使ってたりしてなw
- 491 :デフォルトの名無しさん:2015/09/17(木) 17:49:19.98 ID:Z358njol.net
- ま、PhantomJSとNokogiriばっか使ってるからphpは任すわ
- 492 :デフォルトの名無しさん:2015/09/17(木) 18:01:29.12 ID:bU092Fsh.net
- >>488
だからマニュアル読みなって
- 493 :デフォルトの名無しさん:2015/09/17(木) 18:21:44.45 ID:N+2d3iGi.net
- Rubyのことも良くわかってなさそうだな、こいつ
- 494 :デフォルトの名無しさん:2015/09/17(木) 18:37:41.50 ID:2BhOyj3T.net
- Fatal error: Call to undefined function getElementById()
エラーの意味くらい理解できるようになれよ。
$hoge = $doc->getElementById('blog-footer');
echo $doc->saveHTML($hoge);
- 495 :デフォルトの名無しさん:2015/09/17(木) 18:38:42.85 ID:2BhOyj3T.net
- ageてしまい大変申し訳ございません
- 496 :デフォルトの名無しさん:2015/09/17(木) 18:38:57.46 ID:z0CdisW0.net
- ( ^ω^)・・・俺477に書いた初心者でそのモジュール知らないけど item(0)いらないんじゃね?getElementsじゃなくてgetElementだし
返り値見てもDOMElementか無ければNULLが返るってあるし
中の値?みたいならtextContent とかinnerTextとか参照すればいいんじゃない?(違ったらごめんね)
- 497 :デフォルトの名無しさん:2015/09/17(木) 20:01:18.86 ID:JaPdUxaK.net
- つうかSimpleXMLのほうが使いやすいだろうに
- 498 :デフォルトの名無しさん:2015/09/17(木) 20:31:11.04 ID:hKr4+HsM.net
- SimpleXMLはXMLとして不適切なHTMLはまともに読めないんじゃなかったっけ?
DOMDocumentならloadHTML関数でかなり強力に読める(Warningもオプション付ければ抑制して後から取得も出来る)
DOMNodeからSimpleXMLを作るにしても, 最終的にHTML出力を得るならDOMを使うのがいいんじゃない?
- 499 :デフォルトの名無しさん:2015/09/17(木) 20:51:06.20 ID:2BhOyj3T.net
- まあDOMはやたらメモリ食うからなあ
>>452の使い方的にlivedoorブログがちゃんとしたソース吐いてるならSimpleXMLでもいいんじゃね
- 500 :デフォルトの名無しさん:2015/09/17(木) 21:18:39.96 ID:hKr4+HsM.net
- 試してみたけど, SimpleXMLで幾つかのlivedoorブログのソースをパースしようとしたらfalseが返ってきた(全てXHTML1.0)
エラーログに大量のパースエラーが記録されてるから, ソースからSimpleXMLでパースするのは困難で, DOMからSimpleXMLに変換するしかなさそう(DOMでは読めた)
- 501 :447:2015/09/18(金) 15:10:18.11 ID:Qyee3ty4.net
- >>494
すみません;無事出来ました…;
ご教授頂きありがとうございました…
>>496さんもありがとうございます
確かにDOMだと読み込みまでの時間が遅くて若干もっさりですね…
- 502 :デフォルトの名無しさん:2015/09/18(金) 20:53:13.78 ID:+pqm/1Nv.net
- php-fpmの仕組みバッチリ理解してる人いる?
- 503 :デフォルトの名無しさん:2015/09/19(土) 15:25:46.90 ID:ISETQD0O.net
- index.phpをデフォルトページにしておいて、
IE8,9,10で
来た人には
indexIE8910.html
それ以外の人には
index.html
を開かせるようにするにはどう書けばよいでしょうか?
- 504 :デフォルトの名無しさん:2015/09/19(土) 16:08:41.80 ID:H93lCnag.net
- UA拾って振る。以上。
- 505 :デフォルトの名無しさん:2015/09/19(土) 16:24:22.58 ID:ISETQD0O.net
- >>504
もうちょっと詳しく教えてくだしゃいませお奉行様。
- 506 :デフォルトの名無しさん:2015/09/19(土) 16:31:57.85 ID:H93lCnag.net
- >>505
ゆーざーえーじぇんと php ぐぐる
- 507 :デフォルトの名無しさん:2015/09/19(土) 16:35:59.14 ID:ISETQD0O.net
- >>506
index.phpのサンプル作ってくだしゃいませ、
お代官様!
- 508 :デフォルトの名無しさん:2015/09/19(土) 16:41:10.23 ID:UDnFG9E7.net
- IE弾く流れがあるから
IE使ってても見れるのに見れなくしてるサイトとかあるし
IE使いが積極的にUA偽装してるし意味ないで・・・
- 509 :デフォルトの名無しさん:2015/09/19(土) 17:46:05.37 ID:H93lCnag.net
- ブラウザの分岐つくんのめんどくさいんだぜ。テキトーにどっかの拾って使っとけ。
- 510 :デフォルトの名無しさん:2015/09/19(土) 17:59:55.14 ID:NWKVhdko.net
- IE9ってまだ現役扱いで対応してる?
切り捨てているサイトが出てきたな
- 511 :デフォルトの名無しさん:2015/09/19(土) 19:15:52.32 ID:ISETQD0O.net
- >>509
>テキトーにどっかの拾って使っとけ。
それをここに書きなさい。この紋所が目に入らぬか!控えおろー
- 512 :デフォルトの名無しさん:2015/09/19(土) 19:27:17.46 ID:+Kt9F6BW.net
- BrowserMatch/ReWriteRuleとかwebサーバ側で判断と分岐させるか、
php側で$_SERVER['HTTP_USER_AGENT']見て読ませるcss/js変えたりheader()でLocation吐いて移動させたりしろ
はい終わり
- 513 :デフォルトの名無しさん:2015/09/19(土) 19:52:46.47 ID:H93lCnag.net
- >>511
アホ
- 514 :デフォルトの名無しさん:2015/09/19(土) 21:34:22.18 ID:ISETQD0O.net
- >>512
かたじけない。
- 515 :デフォルトの名無しさん:2015/09/20(日) 02:47:51.76 ID:X3nquW9o.net
- PHPはもう捨てようぜ・・・
- 516 :デフォルトの名無しさん:2015/09/20(日) 03:03:07.63 ID:RNt2QHn9.net
- ua詐欺ってどこで見分けられんだろjavascriptでそのブラウザ特有の命令投げればわかんのかな
- 517 :デフォルトの名無しさん:2015/09/20(日) 07:47:40.74 ID:dFW+uZ12.net
- そっちのほうが確実
js切ってるやつ考慮してとかいってphpやhtaccessで分けるのはクレイジー
- 518 :デフォルトの名無しさん:2015/09/20(日) 09:34:13.66 ID:1JwuQWhK.net
- >>516
tteb?
- 519 :デフォルトの名無しさん:2015/09/20(日) 11:19:00.05 ID:Ptvv9YCq.net
- UA詐称まで視野に入れてUA判定しなきゃならない状況がそもそもクレイジー
といってもこれまで存在し続けたブラウザの独自仕様がなくなることは無いんだろうな
- 520 :デフォルトの名無しさん:2015/09/20(日) 11:20:28.44 ID:GyUJ1dZ9.net
- Operaに当たり前のようにUA詐称機能が付いてた頃が懐かしい。
- 521 :デフォルトの名無しさん:2015/09/20(日) 13:39:59.27 ID:VoXgoN5g.net
- UA詐称されて困るのってどういう時?
- 522 :デフォルトの名無しさん:2015/09/20(日) 13:45:51.66 ID:f3Nx3+I+.net
- >>521
おれもそれが知りたい
- 523 :デフォルトの名無しさん:2015/09/20(日) 17:02:18.73 ID:BPPcfRt3.net
- 直接困るのは、そのブラウザをはじきたいと思っている場合じゃないか?
背景は宗教的な理由かもしれない。
- 524 :デフォルトの名無しさん:2015/09/20(日) 18:50:13.22 ID:4L7qLZxU.net
- 憎きリンゴ教とかな
- 525 :デフォルトの名無しさん:2015/09/20(日) 19:10:09.51 ID:Ptvv9YCq.net
- 焼きリンゴ教にみえた
もはやphp関係ないが、正確なブラウザ名知りたいってときは、あとはアクセス統計したいとか
ブラウザ依存の機能や独自仕様対策を使いまくってるとか、そんなところかね
それか、ガラケースマホなど機種に応じた処理をしたい一方で
これらを詐称するブラウザを広告のためとかの理由ではじきたいとか
- 526 :デフォルトの名無しさん:2015/09/20(日) 19:42:55.60 ID:GyUJ1dZ9.net
- クライアントを特定のものに強制するくらいなら、専用アプリにwebviewでも乗っけた方がマシだな。
- 527 :デフォルトの名無しさん:2015/09/20(日) 20:20:12.65 ID:daw+dtLw.net
- はじきたいからやるんじゃない。このアホンダラ
UAでNPAPIかどうか、WebRTC使えるかどうか、デスクトップかスマホかタブレットかの判定してレイアウトとか挙動を各アプリインターフェイスガイドラインに沿って作り込むんだよ。ドサンピン
言わせんな恥ずかしい。ノータリン
UA詐称っつーのはサーバーサイドの開発者が使うんだよ。どシロウトが
知らんけど
- 528 :デフォルトの名無しさん:2015/09/20(日) 20:48:13.17 ID:VoXgoN5g.net
- >>527
詐称した人が正しく動かないことまでわざわざフォローする必要ないよねって話。
- 529 :デフォルトの名無しさん:2015/09/20(日) 23:52:17.26 ID:RNt2QHn9.net
- safari使ってる人面倒い人が多いから対応したくないなりー
- 530 :デフォルトの名無しさん:2015/09/21(月) 06:56:58.49 ID:mABftDP3.net
- >>528
自己責任だよな
- 531 :デフォルトの名無しさん:2015/09/21(月) 10:53:04.85 ID:/htKyytw.net
- ど素人の質問です
lampの環境を自分で作ってみたい。
xpが入ってたPCにリナックスをいれて鯖を立てると思う。
すでに簡易のサーバーを立ててHTMLのHPぐらいは表示できたがLAMPではまだです。
CentOSを落としていろいろやると思いますがかなり苦戦するんでしょうか?
何時間ぐらい必要でしょうか?
また一度サーバーを立てると、PHPやJavaのサーブレットで掲示板みたいなのをつくり
そのファイルをサーバーに置くだけで設置になるため
ただの置き場所みたいな状態になるんですか?
簡易サーバーの時はそんな感じでした。
- 532 :デフォルトの名無しさん:2015/09/21(月) 14:07:32.14 ID:FK25Dm7Z.net
- >>531
https://www.apachefriends.org/download.html
- 533 :デフォルトの名無しさん:2015/09/21(月) 14:16:28.52 ID:A7EzE/Oa.net
- linux板いけっちゅう話だな
- 534 :デフォルトの名無しさん:2015/09/21(月) 15:03:36.58 ID:/htKyytw.net
- >>532
サンプはつかったことあります。LAMPです
- 535 :デフォルトの名無しさん:2015/09/21(月) 15:10:19.81 ID:iVgIunoX.net
- ぶっちゃけかなりの割合でmysqlというかDBいらんよな
- 536 :デフォルトの名無しさん:2015/09/21(月) 15:22:15.65 ID:eqstY8VZ.net
- 何がどうど素人の質問なのか分からないんだけど、人によるとしか言いようがないよそれ。
初めてlinuxインストールするってのならだいぶ時間かかるだろうけど、
とはいってもどこまで理解しながら作業を進めるかでやはり時間は大きく変わる。
- 537 :デフォルトの名無しさん:2015/09/21(月) 15:24:15.54 ID:/htKyytw.net
- LinuxのCDでは起動したことありますが
自分で特定のlinuxをやいてそこから起動となるでしょうから多分そこで詰まりそう
- 538 :デフォルトの名無しさん:2015/09/21(月) 15:44:15.58 ID:VEzrvsWB.net
- 社名 労基
でググると過去の2chスレが出てくる会社
and(orではない)
転職会議で2.5点の会社は超絶要注意
and
IT系です
転職する際は注意
- 539 :デフォルトの名無しさん:2015/09/22(火) 02:03:17.71 ID:O8icbsBo.net
- アンケートのフォーム作ってポストした後にブラウザの更新押すとフォームの再投稿になるのを防ぎたいんだけど、POST処理の後にheader('Location: http://〜');を書いてもリダイレクトされないんだけどどうしてなの?
因みにリダイレクトするとアクセスはGETになるんだよね?
- 540 :デフォルトの名無しさん:2015/09/22(火) 03:06:46.32 ID:Lx7QSeWZ.net
- コードも書かずにどうしてなの?もクソもねえだろ
header()の手前でなんか出力してねえかerror_reporting(E_ALL);してみろ
- 541 :デフォルトの名無しさん:2015/09/22(火) 04:09:53.45 ID:7aj0zY2+.net
- クライアントが何を受け取ったか確認するのが手っ取り早いのに
- 542 :デフォルトの名無しさん:2015/09/22(火) 04:23:47.61 ID:sy60767L.net
- 金だ。金を受け取ったんだ。
- 543 :デフォルトの名無しさん:2015/09/22(火) 14:00:52.87 ID:h5oh6xqR.net
- ajaxでやればいいんじゃね
- 544 :534:2015/09/22(火) 15:40:53.63 ID:O8icbsBo.net
- >>540
すまん…;そっか、header関数は直前に何も出力しちゃいけないのかー…
どこで使えばいいかわかんねぇ…
【~/anke.php】
<form method="post" action=“anke.php">
<textarea name="kitou”></textarea>
<input type="submit" name=“toukou” value="送信"></form>
<?php
//送信ボタンを押した後に別のtxtファイルデータに回答を格納
$lines = file(‘anke.txt');
if ($_POST[‘toukou’]) {
$kaitou = htmlspecialchars($_POST[‘kaitou’]);
$data = “kaitou¥n”;
array_unshift($lines, $data);
}
//結果を表示
echo “<p>回答:{$items[0]}</p>”;
//データ格納用ファイルを開いて投稿を書き込む
$kakunou = fopen(‘anke.txt', 'w');
foreach($lines as $line) fputs($fp, $line);
fclose($kakunou);
?>
こんな感じなんだけど、どのタイミングでリダイレクトさせればいいんでしょうか…
- 545 :デフォルトの名無しさん:2015/09/22(火) 15:58:33.01 ID:WwQzZTLz.net
- >>544
<form method=・・・
POST受取時に、この部分がすでに書き込まれる
それがまずい
- 546 :540:2015/09/22(火) 16:21:22.47 ID:O8icbsBo.net
- 色々試したのですが、htmlタグの一番上に
<?php
//POSTでアクセスしてきた場合はページをリダイレクトしてGETに
if ($_SERVER['REQUEST_METHOD'] == "POST"){
header('location: http://anke.php');
}
?>
と書いたらなんかうまくいきました。
header関数って本当に前後に何も書いちゃいけないんだね;
微妙な空白が入っててもダメだったのか…
- 547 :デフォルトの名無しさん:2015/09/22(火) 17:56:31.22 ID:7aj0zY2+.net
- PHPサイドから見ればこういう気持ちだよ。
指示に従って本文を途中まで(もちろん空白であっても)出力しているのに、
いまさらヘッダ送れとか何言ってんだ?無理無理。どう考えても手遅れ。
- 548 :デフォルトの名無しさん:2015/09/22(火) 19:14:14.17 ID:Lx7QSeWZ.net
- いまさらじゃねーよなんでヘッダ先に送ってんだよflushしてねーんだからちょっと溜めといてくれよ
と思う開発者もいるかもしれない
- 549 :デフォルトの名無しさん:2015/09/22(火) 19:19:10.92 ID:7aj0zY2+.net
- そんな人にも最適。出力バッファリング機構が用意されております。
って、知っててかいてるよね。
- 550 :540:2015/09/22(火) 19:27:53.94 ID:O8icbsBo.net
- そもそもヘッダがなんなのかすらさっきまでわかってなかった;
- 551 :デフォルトの名無しさん:2015/09/22(火) 19:44:29.47 ID:yEiScBEC.net
- つか, そもそも論だけども, Viewは分離しよう
- 552 :デフォルトの名無しさん:2015/09/22(火) 20:08:22.92 ID:7aj0zY2+.net
- >>550
分かるようになったってすごいことじゃん。おめでとう。
>>551
PHPの根底思想がhtmlの一部を動的にできたらなぁ。
そうだ、コードを埋め込めるようにしよう(ピコーン)なわけで、
まずそこから始めるというのを無闇に否定できないと思う。
Cでオブジェクト指向の記述ができないわけじゃないけど、
まずは手続き型で記述することを勉強しようねというのと似てるかも。
- 553 :デフォルトの名無しさん:2015/09/22(火) 23:13:57.29 ID:O8icbsBo.net
- 無料ブログサービスしか使ってなかったからサーバーの仕組みとかわかんなかったんだよな
掲示板とかも作れるみたいだけど、データベース使わずにテキストファイルに投稿を保存するやり方でもいいの?
- 554 :デフォルトの名無しさん:2015/09/22(火) 23:24:45.80 ID:A/BppHMq.net
- >>553
独自フォーマットのテキストファイルを管理する方がめんどくさいと思うけど。
排他ロックとか修正とか独自フォーマットに沿った読み書きとか、全部自分で面倒みないといけないよ?
- 555 :デフォルトの名無しさん:2015/09/22(火) 23:33:11.39 ID:WwQzZTLz.net
- >>553
自分のPCに仮想環境を作って、そこでサーバー立ててみると良いよ
- 556 :デフォルトの名無しさん:2015/09/23(水) 00:02:05.78 ID:r+N6ISIe.net
- >>553
×サーバの仕組み
○HTTPの仕組み
- 557 :デフォルトの名無しさん:2015/09/23(水) 00:09:41.45 ID:5Jki+Gg9.net
- >>555
一応さくらのサーバー借りてるからこれから色々弄ってみる!
- 558 :デフォルトの名無しさん:2015/09/23(水) 00:12:41.71 ID:LtBCHtUp.net
- >>553
軽量化のためあえてそういう選択をするのは大いにアリだと思う。
ただ泥臭い部分まで面倒見ないといけなくなるから、そこら辺を考えた上での選択だね。
アンケートみたいにただただ追記していき後で集計、みたいなのなら独自データファイルでも十分簡単だと思う。
掲示板だと現在何件書かれているか、リクエストされたページに表示すべきレコードをデータファイルからどう抽出するか etc. 割と面倒くさくなりそうだし、軽量化を狙ってトータルで重くなるなんて何やってんだかわからないことにもなるかも。
- 559 :デフォルトの名無しさん:2015/09/23(水) 00:14:19.00 ID:6kWxNQrp.net
- プロトコルのお約束、DNSの仕組み、そういうのからは結局逃げられん
>>554
DBはDBでめんどくさいぞ
RDBMSの仕組みや応答、SQL、型、リレーション、テーブル設計すんのだけでも膨大な知識が要る
テーブルごとの連携を必要としないならDBなんていらん。1回勉強しちまえば楽なのはDBもテキストも変わらん
- 560 :デフォルトの名無しさん:2015/09/23(水) 00:15:28.51 ID:moqzHvv1.net
- 一からサーバーを立てて、
アパッチを設定し、PHPを設定し、DBを設定し、
動かしてみる。
エラーが出たらログを見てその原因を特定し、直す。
この繰り返しで大体マスターできる。
レンタルサーバーではなかなかできないよ
許されることが限られるからね。
- 561 :540:2015/09/23(水) 00:26:54.86 ID:5Jki+Gg9.net
- >>558
アンケートぐらいならなんとかなりそうってことか…
ファイルに書き込む時に改行(水平タブ?)みたいなのを入れたりして見やすくしてるんだけど多くなってくると面倒臭そうだな
サーバーはドットインストール見てPHP用にローカルサーバー建てたことならあるけどサイバーダックが使い物にならなくなったから放置してるわ…
- 562 :デフォルトの名無しさん:2015/09/23(水) 01:33:07.77 ID:98opwncD.net
- 自分でテキストファイルを使うのは、排他制御などが難しい。
DBなら皆が同じように使っているから、情報を集めるのも楽
結局、WordPress
- 563 :デフォルトの名無しさん:2015/09/23(水) 01:38:44.03 ID:sohVsCxT.net
- >>562
なんでそこで結論が飛躍するんだよw
- 564 :デフォルトの名無しさん:2015/09/23(水) 03:05:32.03 ID:5Jki+Gg9.net
- ワードプレスもインストールして使ってみる
- 565 :デフォルトの名無しさん:2015/09/23(水) 03:28:24.02 ID:r+N6ISIe.net
- ありものを使うというのはとてもいい選択の一つだよ。
自分でえっちらおっちら作って、そのときに得た知識をあとで使わないって人もよくいるし。
- 566 :デフォルトの名無しさん:2015/09/23(水) 04:53:51.01 ID:8RODq+xl.net
- くだらねぇ
- 567 :デフォルトの名無しさん:2015/09/23(水) 09:21:42.16 ID:VaH5eN5d.net
- wpを高速で動かすにはphpが速く動く高性能鯖にするのが一番か?
- 568 :デフォルトの名無しさん:2015/09/23(水) 11:33:01.22 ID:DXyy1a0Y.net
- phperなんだからwordpressをコードレベルでカスタマイズしていらないコードをごっそり削るのが一番いいんじゃね
勉強にもなるし楽しいぜ
セキュリティ修正があったら該当コード組み込むぐらいで機能的なアップデートはスルー
- 569 :デフォルトの名無しさん:2015/09/23(水) 13:05:16.48 ID:6385dCY6.net
- 手っ取り早く効くのはキャッシュだろう
- 570 :540:2015/09/23(水) 15:35:35.31 ID:5Jki+Gg9.net
- アンケート作ってるんだけど、一回解答したユーザーの二重投稿を防ぐには
・利用者のIPアドレスを検出して変数に格納
・投稿データを保存したテキストファイルを開いて上から下までループ文で検出
・一致するIPがあった場合、エラー文を提示して投稿拒否
ってやり方でいいの?
- 571 :デフォルトの名無しさん:2015/09/23(水) 15:45:58.40 ID:fiqO6gPv.net
- IPじゃ駄目だろう。変えられたら分からなくなるぞ。
それでも良いという緩いチェックなら構わないけど。
- 572 :デフォルトの名無しさん:2015/09/23(水) 15:52:39.38 ID:6kWxNQrp.net
- そんな簡単に中の人の同一性チェックができるなら苦労しねーっつの
- 573 :デフォルトの名無しさん:2015/09/23(水) 16:24:58.46 ID:KUv2kphT.net
- Cookie 渡すという手もあるけど
複数PC使われたり、削除されたら駄目だしな。
アンケートサイトによくあるのは、
メールアカウント+パスワードによる認証だけど、
これだって複数メールアカウント取れるわけだし。
ポイント制だと、最後は特定個人に紐付けられるから、
架空人物だと色々問題が起きる。
その辺でごまかしを抑制するという程度か。
- 574 :デフォルトの名無しさん:2015/09/23(水) 16:37:43.26 ID:1jqGrEyR.net
- 異常な連続ホストを弾けば多少はマシになるかと
後は公開串禁止とか
- 575 :デフォルトの名無しさん:2015/09/23(水) 17:08:39.46 ID:N4Wzlgzs.net
- oauthでfacebookとかのアカウントでログインさせるというのも手かもな。
ぶっちゃけcookieで管理する程度で十分だろうけど。
- 576 :デフォルトの名無しさん:2015/09/23(水) 17:24:23.95 ID:ByrCNK4a.net
- ログインなしで個人認証するのをいまから作成する
- 577 :デフォルトの名無しさん:2015/09/23(水) 17:50:33.97 ID:RaRZfipQ.net
- うまいやり方あれば教えてください
renderにとある処理(セッションを削除する処理)を入れてるんですが、
同ページ内で2回renderを呼び出す時、1度目の呼び出しでセッションが消えてしまいます(当たり前なんですが)が2回目の呼び出し時にセッションを削除したいです
↑補足ですが何故こんな事になったかというと、
同じようなことをしてる処理を共通化する為元々1つだったControllerを分けたら、そのページのrenderと共通化した部分のrenderが2回呼ばれてしまいました
- 578 :デフォルトの名無しさん:2015/09/23(水) 18:06:30.00 ID:r+N6ISIe.net
- セッションを削除する処理がレンダリングと関係あるとは思えない
- 579 :デフォルトの名無しさん:2015/09/23(水) 18:20:43.59 ID:6kWxNQrp.net
- コードも環境もなしに問うなと 標準関数の話しかすんなとは言わんが
renderにoptionalな引数入れてそれ確認させれば?うまいやり方かどうかは知らんけど
- 580 :デフォルトの名無しさん:2015/09/23(水) 19:20:27.52 ID:KGKC2S3B.net
- クッキーとIPともう一つなんか足せば大丈夫だろーって話題変わってた
- 581 :デフォルトの名無しさん:2015/09/24(木) 02:21:46.55 ID:KIwTvfAf.net
- >>570
IPアドレスでは、同じネットカフェの、異なるPCでも、
同一人物に判定されてしまうので、友達同士で投稿できない
2chでも、同じネットカフェなら、どのPCからアクセスしても、
IDが同じになってしまうのよ
- 582 :デフォルトの名無しさん:2015/09/24(木) 02:38:55.16 ID:IK2Xge5y.net
- >>581
マジかよ…
スタバとかのwifeでもそうなるってことか
ってか2ちゃんでたまに何もしてないのに規制かかって書き込みできなくなるのも同じiPの奴が規制されたのに巻き込まれてるってことなの?
- 583 :デフォルトの名無しさん:2015/09/24(木) 02:57:43.66 ID:biV9B2V5.net
- >>582
お前の奥さんのことなんて知らんよ
- 584 :デフォルトの名無しさん:2015/09/24(木) 03:20:31.89 ID:nbO+sd/Q.net
- >>583
違うぞ。スタバにいる人妻のことだぞ。
- 585 :デフォルトの名無しさん:2015/09/24(木) 07:51:16.78 ID:n2zeSQ7H.net
- スタバの現地妻か、裏山
- 586 :デフォルトの名無しさん:2015/09/25(金) 19:41:28.66 ID:trjxrUIW.net
- >>577
普通に片方のセッション削除する処理消せばいいだけじゃないの
- 587 :デフォルトの名無しさん:2015/09/25(金) 21:39:08.32 ID:f2COha4U.net
- file get contentsでとあるサイトをスクレイピングしてるんだけど、1~3回ほどページ更新すると内容が表示されなくなる
これってそのサイトがスクレイピング対策をしてるってこと?
- 588 :デフォルトの名無しさん:2015/09/25(金) 21:51:43.85 ID:+5sW3GLu.net
- >>587
そのサイトに聞けよ!
- 589 :デフォルトの名無しさん:2015/09/25(金) 22:09:07.55 ID:f2COha4U.net
- >>588
いや、その前にphpの問題なのかなと思って。
それにブロックするなら最初からスクレイピングさせないもんなんじゃないの?
暫く時間たった後にまた更新すると今度はちゃんと取得できてるんだよね…
なんなの?これ
- 590 :デフォルトの名無しさん:2015/09/25(金) 22:14:25.58 ID:S9QW43Ts.net
- >>589
どうやってスクレイピング判定するの?
- 591 :デフォルトの名無しさん:2015/09/25(金) 22:19:10.09 ID:6j3mg6Uy.net
- 負荷対策してるだけなんじゃない
- 592 :デフォルトの名無しさん:2015/09/25(金) 22:26:49.35 ID:f2COha4U.net
- >>590
それもわからんorz;
ってかブロックできるもんなのかすらわからん…
<ソース>
$html = file_get_contents('http://');
$html = str_ireplace($kesu, "", $html);
$doc = new DOMDocument();
$doc->loadHTML($html);
$hoge = $doc->getElementById(‘hoge’);
echo $doc->saveHTML($hoge);
一回目:普通に表示→更新ボタンおす
二回目:表示
三回目:非表示(スクレイピングしてるとこだけ)
〜3時間ほど経過〜
四回目:表示
ってなる。どうしてなんや
- 593 :デフォルトの名無しさん:2015/09/25(金) 22:33:11.74 ID:suy8B6gV.net
- ステータスが何を返しているか見ている?
初回とその後で変わっていない?
- 594 :デフォルトの名無しさん:2015/09/25(金) 23:13:50.38 ID:trjxrUIW.net
- >>592
スクレイピングと同じようにブラウザからアクセスするとちゃんと表示される?
- 595 :デフォルトの名無しさん:2015/09/25(金) 23:17:54.47 ID:f2COha4U.net
- >>593
変わってないと思う…
>>594
ブラウザからのアクセスだといつも通りちゃんと表示される。
- 596 :デフォルトの名無しさん:2015/09/26(土) 00:20:22.23 ID:F1OYRTCW.net
- >>595
HTTPレスポンスコード見てみ
- 597 :デフォルトの名無しさん:2015/09/26(土) 00:25:44.55 ID:xWCYZ6+4.net
- >>595
statusに304が返ってきてないか?
- 598 :デフォルトの名無しさん:2015/09/26(土) 00:27:45.19 ID:VnXY6/gA.net
- 他のサイトでもやってみるとか、
自分でもっと単純なサイトを作って、試してみるとか、
ソースコードのあちこちに、Print文をばらまいて、
デバッグしてみるとか
何か、saveHTML()というのが、やばそうな気がする。
それを実行すると、バグを引き起こすとか、
ロックされたりするとか
- 599 :デフォルトの名無しさん:2015/09/26(土) 01:09:23.12 ID:7dfhRWtS.net
- クローラー判定は別に難しくないしそういう制限をサーバでするのは可能
ブラウザと同じヘッダ送出して同じ手順を踏んで公開サーバー経由でなければいけるだろう
- 600 :デフォルトの名無しさん:2015/09/26(土) 01:27:35.85 ID:UIDpKSqR.net
- エラー検出してみたら、「このIPは制限されています」って返ってきた\(^o^)/
やっぱり対策してるんだね
ぶっちゃけ2ちゃんの過去ログサイトなんだけどさ…
そりゃ誰もがスクレイピングしようとするもんなぁ
- 601 :デフォルトの名無しさん:2015/09/26(土) 02:34:06.16 ID:gDkHrrbc.net
- >>600
エラー検出って難ですか?
- 602 :デフォルトの名無しさん:2015/09/26(土) 09:55:12.02 ID:piyEqEap.net
- スクレイピングして何に使うのかは知らないけど 一時期やらおんだかの捏造記事で訴えるとか訴えねーとかやってた気がしたのどうなったんだろ
- 603 :デフォルトの名無しさん:2015/09/26(土) 21:13:16.16 ID:v7fSGmLa.net
- クライアント側のJSを公開したくないので、サーバーのPHPなどでそのJSを実行したいんですが、
可能ですか?まったく同じ動作結果になるようにするにはどういうやり方をするんでしょうか?
ググルキーワードを教えてください。
- 604 :デフォルトの名無しさん:2015/09/26(土) 21:22:54.61 ID:LSY/VAID.net
- >>603
JSによる
とりあえずどんなJSなのか見せて
- 605 :デフォルトの名無しさん:2015/09/26(土) 21:46:46.75 ID:ey0zQ6i9.net
- >>603
Ajax
- 606 :デフォルトの名無しさん:2015/09/27(日) 01:48:51.82 ID:IWmq2jg0.net
- >>603
ブラウザの機能を叩くクライアントサイドスクリプトと完全互換にはなり得ない
つかクライアントサイドスクリプトを公開したくないってどういう状況よ?
- 607 :デフォルトの名無しさん:2015/09/27(日) 02:44:15.81 ID:9FNu5D9+.net
- お前のパソコンで処理させろ!
でもなにしてるかは聞くな!
- 608 :デフォルトの名無しさん:2015/09/27(日) 04:12:00.87 ID:gZb7XvC3.net
- echo`x=hoge;echo $x`;
ってしたいんだけど、
PHP側で勝手に変数展開されて
bashに渡る文字列が"x=hoge;echo "になっちゃう。
変数展開してほしくないときのシングルクオートみたいなのはないの?
- 609 :デフォルトの名無しさん:2015/09/27(日) 05:27:35.19 ID:QHSPW0OV.net
- >>604
そんな特殊な処理ではないので、
どりあえず、どういう手法があるか
ググルためのキーワードを教えてください。
- 610 :デフォルトの名無しさん:2015/09/27(日) 08:10:30.50 ID:Ek3Ll/Tz.net
- 「この記事を見た人はこんな記事も見てます。」
ってよくあるけど、あれってどういうアルゴリズムというかロジックで実現してるんでしょうか?
やはりDBに何らかの情報を記録する必要がありますよね?ではどういうテーブルにどういう項目を?そしてどういう計算を?
どのページからどのページに行ったかという遷移ですかね?
うーーーーん難しい。誰かご教授いただけますと嬉しいです。
- 611 :デフォルトの名無しさん:2015/09/27(日) 08:37:47.68 ID:Q5TaQhUz.net
- 同じ分類のPV多い記事並べただけちゃいますのん?
- 612 :デフォルトの名無しさん:2015/09/27(日) 08:45:57.94 ID:hy9T85ay.net
- この記事を見た人は→この記事を見た人"達"とは言っていない
- 613 :デフォルトの名無しさん:2015/09/27(日) 11:28:08.11 ID:KXvZe9oE.net
- レコメンド アルゴリズムで検索
- 614 :デフォルトの名無しさん:2015/09/27(日) 12:09:27.06 ID:w5aIV8MQ.net
- >>608
echo`x=hoge;echo $x`;
これはこうじゃないの?
echo`$x="hoge";echo $x`;
あと、シングルクオート「'」でなくて、
バッククオート(実行コマンド)「`」でいいのか?
bashの文法も確認した方がいい。
- 615 :デフォルトの名無しさん:2015/09/27(日) 14:52:00.62 ID:Ek3Ll/Tz.net
- >>611
え?そんな簡単!?
>>613
名称のご教示ありがとうございます。
検索してみるとやっとまともな情報にありつけました。名称知ることは大事ですね。
勉強します。
- 616 :デフォルトの名無しさん:2015/09/27(日) 16:16:41.77 ID:Q5TaQhUz.net
- セッションか何かでアクションおっかけてデータにしてそれをマイニングするとか骨が折れちゃうぜ。
- 617 :デフォルトの名無しさん:2015/09/27(日) 23:26:33.11 ID:UYzM99J3.net
- 簡単なものなら
1 ページA → ページB
2 ページA → ページC
3 ページA → ページC
こうやってデータをため込んで、 この3データだったら
ページAを見た人はページCも見てますって表示するだけでしょ
- 618 :デフォルトの名無しさん:2015/09/27(日) 23:34:00.29 ID:VOKvc2Zg.net
- >>611がアイテムベースで>>612がユーザーベースだろ
- 619 :デフォルトの名無しさん:2015/09/27(日) 23:34:43.72 ID:hvy9lckk.net
- >>617
ページID、IPアドレス、タイムスタンプを履歴として取っておき、
特定ページにアクセスがあったときに、
そのページにアクセスがあり、現在のアクセスと異なるIPアドレス群を取得し、
そのIPアドレス群がアクセスしたページIDを
アクセス数順に必要な数だけ表示すればいいんじゃない?
- 620 :デフォルトの名無しさん:2015/09/28(月) 00:54:18.84 ID:s97i3FEf.net
- >>614
bashは変数代入時に$は不要、参照は必要
変数値を""で囲む必要もない(囲んでもいい)
だからコマンド自体は間違ってない
> x=hoge
> echo $x
- 621 :デフォルトの名無しさん:2015/09/28(月) 02:23:19.63 ID:mTZVEwhb.net
- >>608
" " で囲めば、変数展開される
' ' で囲めば、変数展開されない
それと、ヒアドキュメント
- 622 :デフォルトの名無しさん:2015/09/28(月) 13:25:40.62 ID:ewoIlnRc.net
- >>608
shell_execをつかう。
- 623 :デフォルトの名無しさん:2015/09/28(月) 14:35:52.57 ID:yBwbnPi+.net
- php初心者でうまく説明出来ないんだけど・・・
***.phpのURLリクエストが来て、その処理をするときに 外部のDBを使って確認したい時とかありますよね!
そういう情報ってアドオンとかにあるライブヘッダーとかで覗かれたりしないんですか?
(´・ω・`)作り方による場合、どういった作り方をすればいいんでしょうか
- 624 :デフォルトの名無しさん:2015/09/28(月) 14:52:20.96 ID:ruFObRnM.net
- phpソースがおかれたDirのアクセス権限を設定すればなんとか
- 625 :デフォルトの名無しさん:2015/09/28(月) 16:17:02.52 ID:3Q9ZQIvE.net
- >>623
アドオンが何のアドオンでライブヘッダーとは如何なるものか示さなければ何言ってるのかわからん
- 626 :デフォルトの名無しさん:2015/09/28(月) 17:21:04.08 ID:ewoIlnRc.net
- >>623
phpと外部のDBとの通信と、クライアントとphpの通信は互いに疎。
- 627 :デフォルトの名無しさん:2015/09/29(火) 16:56:38.87 ID:ifZ4QSeP.net
- 上の質問が終わってからで構わない
phpのヒアドキュメントでhtmlを書いて、それを他のサイトでJSみたいに呼び出す事って出来る?
他のサイトは無料ブログサービスだからサーバーサイド弄れない前提で
- 628 :デフォルトの名無しさん:2015/09/29(火) 17:29:33.15 ID:ux+ZVrLF.net
- phpでjavascriptのコード出力すればいいだけ
そんでscript srcにそのphp指定すりゃいい
- 629 :デフォルトの名無しさん:2015/09/29(火) 17:36:47.96 ID:ifZ4QSeP.net
- >>628
それだとヒアドキュメントを使う旨味がなくない?
JSだと文字列リテラルとかいうので’’の間を改行したりできないじゃん
ヒアドキュメントならHTMLをそのまんま貼り付けて出力できるじゃん?
- 630 :デフォルトの名無しさん:2015/09/29(火) 17:53:47.32 ID:DjqaY7BG.net
- >>627
> phpのヒアドキュメントでhtmlを書いて、
ヒアドキュメントである必要性はないよね。
iframeでも使えば?
- 631 :デフォルトの名無しさん:2015/09/29(火) 18:06:03.49 ID:ux+ZVrLF.net
- >>629
だいたいそんな仕組みがあるわけないじゃない
JSで呼びたいならJSのスタイルにしなきゃいけないわけで
そもそも改行とかhtmlはbrで判断してんだからどうでもいいでしょ
- 632 :デフォルトの名無しさん:2015/09/29(火) 18:14:09.43 ID:ux+ZVrLF.net
- ああ、+をつけたくないってことか
- 633 :デフォルトの名無しさん:2015/09/29(火) 18:27:20.11 ID:ux+ZVrLF.net
- $html = <<<EOF
<p>hello world</p>
<p>hoge
hoge<br>hoge</p>
EOF;
$html = preg_replace('/'.PHP_EOL.'/', '', $html);
echo "document.write('{$html}')";
これなら少しは可読性あがるんでない
- 634 :デフォルトの名無しさん:2015/09/29(火) 19:13:43.83 ID:DjqaY7BG.net
- >>633
その用途でPHP_EOL使う人って何をどうこじらせてるのか興味がある。
- 635 :デフォルトの名無しさん:2015/09/29(火) 19:24:15.21 ID:rgPn5SeK.net
- むしろPHP_EOLはどういうとこで使うべき定数なんだ?
- 636 :デフォルトの名無しさん:2015/09/29(火) 19:58:07.18 ID:ux+ZVrLF.net
- その用途ってなんだよw
改行コードさしてんだから問題ないでしょ
- 637 :デフォルトの名無しさん:2015/09/29(火) 20:08:13.16 ID:twisClEL.net
- >>634
何が正解?
- 638 :デフォルトの名無しさん:2015/09/29(火) 20:12:38.85 ID:twisClEL.net
- \r\n|\r|\nじゃなくてたんに\r|\nでいいよね?
\r\nも指定しないとマズイケースってある?
- 639 :デフォルトの名無しさん:2015/09/29(火) 20:29:36.44 ID:DjqaY7BG.net
- >>638
今回の場合、単に削るのが目的だから\r\nはいらないね。
あとpreg_replaceなんて超絶高機能なものを使う必要もないのでstr_replaceでやる。
- 640 :デフォルトの名無しさん:2015/09/29(火) 21:38:10.80 ID:ifZ4QSeP.net
- >>633
うお、それは思いつかなかった…あたまいいな
記事にウィジェットっていうか、最新記事とかおすすめ記事とか広告とか全部まとめて1セットで表示したいときってあるじゃん?
それを一々貼り付けるんじゃなくて外部化できたらメンテナンス上楽かなと思って。
JSでやってもいいんだけど、可読性が悪いし変更もし辛いんだよね
- 641 :デフォルトの名無しさん:2015/09/29(火) 21:38:46.96 ID:1MZ0DxPh.net
- str_replace何回までならpreg_replaceより早いかを試すベンチマークを書いてくれ!
- 642 :デフォルトの名無しさん:2015/09/29(火) 21:55:16.30 ID:rgPn5SeK.net
- マルチバイトを含む文字列の検索・タグ付け処理で、検索文字列1500セットを、
トライ木構造な1個のパターンでpreg_replace1回で済ます方法、
strposとstr_replaceで置換して溜めていって最後に引数に配列入れたstr_replaceで一括置換する方法、
この2パターンでどっちが早いか試したらphp5.3とphp5.6で結果が逆転した経験がある
5.6だとstrpos/str_replaceのほうが早かった
- 643 :デフォルトの名無しさん:2015/09/29(火) 22:15:08.01 ID:1MZ0DxPh.net
- 1500とか大勝利ですやん
- 644 :デフォルトの名無しさん:2015/09/29(火) 22:57:48.33 ID:ssY7AIaz.net
- >>637
個人的には /\x0D\x0A|[\x0A\x0D]/ とASCIIコード指定で書くのが趣味
- 645 :デフォルトの名無しさん:2015/09/30(水) 01:29:57.79 ID:MFXzG0RB.net
- PHPで自分専用の日記帳&思いつきメモ&金銭管理&タスク管理ツールつくって自己管理するの楽しすぎワロタ
- 646 :デフォルトの名無しさん:2015/09/30(水) 02:41:45.95 ID:EyIEkC/I.net
- 単純な文字列の複数置き換えでも、
str_replace("c", "", str_replace("b", "", str_replace("a", "", $str)));
とか見づらいからpreg_replace使ってしまう。
ラッパークラス書けばいいけどなんかあほくさいし、標準実装してほしいわ。
$s = new String($str);
$s->replace("a","")->replace("b","")->replace("c","");
- 647 :デフォルトの名無しさん:2015/09/30(水) 02:45:08.64 ID:Eb56OawZ.net
- str_replace( ["a", "b", "c",], "", $str); か
str_replace( ["a", "b", "c",], ["", "", "",], $str);
でできるはずだし
こっちのほうが速い
- 648 :デフォルトの名無しさん:2015/09/30(水) 02:58:18.28 ID:5VICgqtC.net
- >>646
だからあほだといわれるんだよ。
マニュアルは読めよ。何度でも読めよ。
- 649 :デフォルトの名無しさん:2015/09/30(水) 03:03:20.43 ID:EyIEkC/I.net
- arrayでしょ?
知ってるけど、それはもっと嫌。
- 650 :デフォルトの名無しさん:2015/09/30(水) 03:06:27.35 ID:5VICgqtC.net
- 1行目で笑わざるを得ないけれど、何がいやなの?
- 651 :デフォルトの名無しさん:2015/09/30(水) 03:09:06.72 ID:Eb56OawZ.net
- 好き嫌いは別にしてこれらは内部動作的に無駄が多い。
PHP文字列と内部のC言語文字列の変換を繰り返す事と正規表現を使う事で。
ここへ処理が集中するケースだと時間とCPUリソースを使う。
str_replace("c", "", str_replace("b", "", str_replace("a", "", $str)));
$s->replace("a","")->replace("b","")->replace("c","");
- 652 :デフォルトの名無しさん:2015/09/30(水) 03:23:47.66 ID:Eb56OawZ.net
- ほとんど差が出なかった。
$loop=10000;
$str=""; for($n=0;$n<3000;$n++) $str .= base64_encode(mt_rand());
$time = microtime(true);
for($n=0;$n<$loop;$n++)
$s = str_replace("c", "", str_replace("b", "", str_replace("a", "", $str)));
$time = microtime(true)-$time; echo "$time\n";
$time = microtime(true);
$A=["a", "b", "c"];
for($n=0;$n<$loop;$n++)
$s = str_replace( $A, "", $str);
$time = microtime(true)-$time; echo "$time\n";
$time = microtime(true);
$A=["a", "b", "c"]; $B=["", "", ""];
for($n=0;$n<$loop;$n++)
$s = str_replace( $A, $B, $str);
$time = microtime(true)-$time; echo "$time\n";
- 653 :デフォルトの名無しさん:2015/09/30(水) 03:34:17.75 ID:EyIEkC/I.net
- >>650
mixedっていう概念が。
- 654 :デフォルトの名無しさん:2015/09/30(水) 03:39:56.66 ID:EyIEkC/I.net
- str_replace(array("a","b","c"), array("","",""), $str);
とか、
str_replace("c", "", str_replace("b", "", str_replace("a", "", $str)));
より最悪だよ。
2・3個程度ならいいけど、対応するものを探すのにも労力がかかる。
対応するのをハイライトしてくれるIDEもあるのかもしれんけど、
基本前から1,2,3…とか数えないとだめなとこがもううんkでしかない。
- 655 :デフォルトの名無しさん:2015/09/30(水) 03:59:00.83 ID:Eb56OawZ.net
- 関数呼び出しが、複数回か一回かで比較してるわけだが。
- 656 :デフォルトの名無しさん:2015/09/30(水) 04:03:22.73 ID:EyIEkC/I.net
- あ、いや、別に無視するつもりはなかったんだけどあんま見てないw
あほって言われたからかっちーんってきて、>>648 >>650にレスをしてる。
- 657 :デフォルトの名無しさん:2015/09/30(水) 04:11:08.53 ID:6yKygfp8.net
- >>652 と同じようなことして時間計ってみた結果。
str_replace の入れ子 : 1.43s
str_replace を array で : 1.46s
strtr を array で : 5.67s
preg_replace で [abc] を置換 : 6.96s
preg_replace で [abc]+ を置換 : 7.19s
php 5.1.6 での結果。
str_replace を array で使うより入れ子にした方が速いってのは意外に感じた。
文字の出現率に偏りがあるなら入れ子の順序で最適化もできそうだね。
- 658 :デフォルトの名無しさん:2015/09/30(水) 04:16:21.14 ID:Eb56OawZ.net
- a-zまでの複数個置換だったら配列のほうが速いはずとおもうがやってはいない
- 659 :デフォルトの名無しさん:2015/09/30(水) 04:24:19.04 ID:GOPPmiIs.net
- 個人的には array() でなく [] を使うのが違和感
5.4から使えるようになった、わかるよ
内部的に速度差がない文字数少ない書きやすい慣れれば見やすい、わかるよ でもそういうんじゃねーんだ
- 660 :デフォルトの名無しさん:2015/09/30(水) 04:24:56.40 ID:5VICgqtC.net
- >>657
そのstrtrには何かウェイトでも?
http://ideone.com/01biJO
- 661 :デフォルトの名無しさん:2015/09/30(水) 04:35:32.91 ID:GOPPmiIs.net
- >>660
5.4.12以前の使ってたり書き方次第でstrtrは遅くなる
が、お前さんの書き方、なんだそれ
引数3個入れるときは長さ揃えないと無視される結果、それだと置換されないぞ早くて当然
実際動かして結果確認してから時間計りなさい
- 662 :デフォルトの名無しさん:2015/09/30(水) 04:37:18.26 ID:5VICgqtC.net
- こりゃあすまんかった
- 663 :デフォルトの名無しさん:2015/09/30(水) 04:39:56.74 ID:5VICgqtC.net
- なおした。遅いな。
- 664 :デフォルトの名無しさん:2015/09/30(水) 04:56:24.38 ID:O5d+GXPE.net
- 配列はPHP7から実装されたものですん!
- 665 :デフォルトの名無しさん:2015/09/30(水) 14:48:02.16 ID:MFXzG0RB.net
- 普通に$kaeru{a,b,c}; $kaeta{d,e,f,};
str_ireplace{$kaeru,$kaeta,$html}じゃあかんの?
メンテしやすいし
- 666 :デフォルトの名無しさん:2015/09/30(水) 16:24:43.23 ID:JBefBAW1.net
- いったいなんだいその書き方は?
PHP7にしたら動くのかね?
- 667 :ゆうき:2015/09/30(水) 20:56:39.13 ID:5In1o3Ll.net
- だれか、このプログラム作ってください
よろしくおねがいします
以下の要件を満たすプログラムを作成せよ
&#61656;課題名:引数・返り値に構造体を使った複素数計算関数
&#61656;
&#8226;要件
&#8211;複素数の足し算を行うcomplex_sum関数と掛け算を行うcomplex_product関数を作成せよ
&#8226;引数:複素数(その1),複素数(その2)の2つ
&#8226;返り値:複素数(計算結果)
&#8226;動作:複素数その1と複素数その2を足してその結果を返り値にする
&#8211;このとき,計算は作成した関数で,出力はmain関数で行うこと
&#8226;出力:
1つ目の複素数の実部,虚部を入力してください:【実数値(1),実数値(2)を入力】
2つ目の複素数の実部,虚部を入力してください:【実数値(3),実数値(4)を入力】
(【実数値(1)】+【実数値(2)】i)+(【実数値(3)】+【実数値(4)】i)=【加算結果】
(【実数値(1)】+【実数値(2)】i)×(【実数値(3)】+【実数値(4)】i)=【乗算結果】
- 668 :デフォルトの名無しさん:2015/09/30(水) 21:12:13.25 ID:JBefBAW1.net
- 作って下さいはスレチ
ていうかここC言語スレやないんやで
- 669 :デフォルトの名無しさん:2015/09/30(水) 21:30:58.57 ID:GOPPmiIs.net
- 複素数とか懐かしいなオイ
- 670 :デフォルトの名無しさん:2015/09/30(水) 23:00:55.59 ID:MFXzG0RB.net
- テキストエリアに書いた文字をそのままの状態で保存することってできる?
更新ボタン押してもそのまま書き込まれてる状態っていうか…
例えて言うならevernoteとかmacのメモみたいな感じで
- 671 :デフォルトの名無しさん:2015/09/30(水) 23:12:46.45 ID:8HX6e1yX.net
- >更新ボタン押してもそのまま
最近のブラウザならデフォルトでそういうのついてるでしょ
まぁ下書き機能とか普通にあるじゃん
10秒おきにajaxでサーバに保存とか
ログイン状態ならいいけど非ログイン状態ならセッション使うことになるからクッキーでよくね?って話だけど
- 672 :デフォルトの名無しさん:2015/09/30(水) 23:26:53.70 ID:GOPPmiIs.net
- 最近のブラウザでも昔のブラウザでも、
metaのcache-controlやHTTPヘッダのExpires・Last-Modifiedあたりの状況によって
更新ボタン押下時に入力内容がリセットされたりする
あと<form>の構造、逆に言えばこの辺の調整で保存されるようになりうるんだけど……
他の手段だと、cookie、session、サーバ保存、あとlocalstorageも当然だけど全部普通に実装しようとするとjavascript依存だな
- 673 :デフォルトの名無しさん:2015/10/01(木) 00:26:51.11 ID:Dxsc0OBp.net
- 現在のプロジェクトでフルPHPで作成されたWEBアプリケーションのパフォーマンスが出なくなってきたので、
バックエンド部をjavaにしようという話が出ています。
PHP5以降でjavaと連携する方法が今一つまとまらないので質問させて下さい。
フルPHPから緩やかにjavaに移行しようと考えているらしく、PHP/Java Bridgeも使用しにくい状況です。
この場合、PHPからfile_get_contentsでtomcatのサーブレットコンテナへHTTPリクエストし、
json形式などでレスポンスを受け取ってPHPでクライアントレスポンスを出力、
という方法しかないでしょうか。
同一マシン上にPHPとjavaが存在していればループバックと出来るものの、
メモリ、CPUリソースの負担が増えてパフォーマンス的に上がるのかかなり微妙な予感がしています。
- 674 :デフォルトの名無しさん:2015/10/01(木) 00:31:04.72 ID:LSWhCnNG.net
- ページの beforeUnload かなにかで cookie に保存すればいいんじゃね
- 675 :デフォルトの名無しさん:2015/10/01(木) 00:50:27.95 ID:z1lAS5eB.net
- 話が出ていますっつーならその話を出したやつに考えさせろよ
- 676 :デフォルトの名無しさん:2015/10/01(木) 00:53:50.07 ID:Dxsc0OBp.net
- >>675
そうなんですよね。
ホントに下らない話だと自分でも思っているからここで質問させて頂いています。
- 677 :デフォルトの名無しさん:2015/10/01(木) 00:55:08.88 ID:uSsV6wdT.net
- すっげー知り合いの香りがするwww
- 678 :デフォルトの名無しさん:2015/10/01(木) 00:59:42.10 ID:Dxsc0OBp.net
- >>677
あ、もしかしたら隣の席の・・・。
- 679 :デフォルトの名無しさん:2015/10/01(木) 01:30:25.12 ID:M2hxjHUk.net
- HHVMでもいいけどまずはPHP7にしてみるとかいう選択肢はないのか
来月に正式版がリリースされるはず
無駄にコストかけるより環境の置き換えと少しのコード修正でテスト出来るならそっちのがいいんじゃない
- 680 :デフォルトの名無しさん:2015/10/01(木) 03:53:24.19 ID:kBF9/RuM.net
- >>673
パフォーマンスが悪い理由は調査したんだろうか。
してなきゃそんな話にはならないだろうけれど、本当に改善できないんだろうか。
- 681 :デフォルトの名無しさん:2015/10/01(木) 06:48:02.39 ID:z1lAS5eB.net
- できるわけないじゃん
>>673自身がjavaに移行すれば早いのになと言い出したか
権力強い無能が言い出したか知らんが
別言語で書き直して高速化で解決できるならその前にボトルネック調査して修正してるわ
- 682 :デフォルトの名無しさん:2015/10/01(木) 13:07:15.61 ID:uSsV6wdT.net
- phpってそんな言うほど遅い?
- 683 :デフォルトの名無しさん:2015/10/01(木) 14:48:48.55 ID:xUyWxNo6.net
- >>682
毎秒10リクエスト程度だったら全然問題ない
- 684 :デフォルトの名無しさん:2015/10/01(木) 18:17:38.74 ID:yb6zYl2l.net
- どうせインデックスあたらないSQLでも投げてんだろ
- 685 :デフォルトの名無しさん:2015/10/01(木) 18:20:38.73 ID:FLynHvaU.net
- 遅い部分だけC言語で処理したらいい。レンタルだと不明だが。
- 686 :デフォルトの名無しさん:2015/10/01(木) 18:22:30.73 ID:xUyWxNo6.net
- つか、逆にJavaって速いのか?
Jenkinsとか糞重いんだが。
- 687 :668:2015/10/02(金) 01:02:38.04 ID:NE1jsZAh.net
- みなさん有難う御座います、>>673です。
>>679
HHVMはエンジニア総とっかえになりそうですし、真っ先にやるとすればやはりPHP7ですよね。
百歩譲っても設計からやり直してJavaに移行だろ、と。
自分もなんでこのタイミングでこんなコストが掛かる話が出て来たのかと思っています。
現状の方針にストップを掛ける方向に材料を提供して行ってみます。
>>680から>>684
ボトルネックはどう考えてもDBなんですよ。
物理設計がまずくて無駄なDB問い合わせとDB更新が頻発してるんだろ、と。
でもそれなりに同時アクセスがあるサービスなので混乱してるのかな、と思います。
設計からやり直しを決定出来る権力が欲しい。。。
>>685
現場にC出来るエンジニアがおらんとです。
>>686
言語のパフォーマンスで言えばC系に次ぐものがありますので、それなりに早いです。
でも設計に大きく依存しますので・・・。
皆さんもやはり違和感を感る話なんだな、と認識出来ました。
自分はストップを掛ける方向に動くことにします。
考え直してくれると良いのですが。
- 688 :675:2015/10/02(金) 03:15:33.07 ID:cle9kUAg.net
- >>687
かわいそうに。
ボトルネックがDBなら、工数かけてJavaに変えても結局パフォーマンス上がらんじゃないかって
上層部が顔を真っ赤にして怒鳴り散らす未来が待ってるね。
俺がその状況ならとっととクエリを改善して、もうパフォーマンス悪くないからその話進めなくていいよね?ってする。
- 689 :デフォルトの名無しさん:2015/10/02(金) 03:25:00.54 ID:j2xAjxnc.net
- Ruby資格の教科書を見たが、5年前の求人割合では、
Java:Ruby = 10:1 だが、今では、5:1 で、
5年後には、2:1 と予測されている。
JavaからRubyへの流れが、止まらない
こういう情勢で、速度が問題となるのに、
違和感を感じる
DBの全レコードを探索しているのでは?
まさか、インデックスの付いていない項目で、
検索しているのでは?
Where文の左側で、先にインデックスで比較して、
レコード件数を絞らないといけない
バグのほとんどはプログラムにあるのではなく、
設計段階での論理矛盾が原因。
テーブル設計時に、どこが悪いかわかるはず
- 690 :デフォルトの名無しさん:2015/10/02(金) 03:36:20.66 ID:gMdpYExV.net
- あえてエスパーしてみるが
・全部ウソ
・現場で実際に問題になってることと>>687の頭の中が全然別物で682があらぬ方向に突っ走ってるだけ
どっちかだと思う
- 691 :デフォルトの名無しさん:2015/10/02(金) 03:46:44.20 ID:MaT1v7mR.net
- >>687
DB を SSD に置いてみたら
- 692 :デフォルトの名無しさん:2015/10/02(金) 04:04:24.63 ID:j2xAjxnc.net
- 最初に振り分けサーバーで、顧客ID・地域などで、
処理するサーバーを変える
HDDからSSDへ、変えれば速い
物理メモリーの量を増やす
リアルタイム性のいらない統計処理などは、閉店後に行う
インデックスを使って検索しているか、チェックする
テーブル全体をロックせず、その行だけをロックする(行ロック)
Stored Procedureを使う
- 693 :デフォルトの名無しさん:2015/10/02(金) 05:18:46.84 ID:XsCDb17v.net
- 10倍速いサーバーを使え
- 694 :デフォルトの名無しさん:2015/10/02(金) 05:35:03.08 ID:MZbKrQpC.net
- HDDもSASじゃなくてSATAなんだろ
- 695 :デフォルトの名無しさん:2015/10/02(金) 09:36:38.78 ID:Gd8B7UmP.net
- >>687
以前のジョブでも、現在のジョブでも、
DBアクセスを丹念にチェックして、
一分かかっている処理を1秒以内に終わる様に改造した。
見違える様になったぞ
- 696 :デフォルトの名無しさん:2015/10/02(金) 14:03:22.83 ID:XsCDb17v.net
- >>695
ジョブズならそのサーバーを水槽に投げ込んでまだ隙間がある。
って言うんだよな
- 697 :デフォルトの名無しさん:2015/10/02(金) 17:28:42.44 ID:ExAoDKGZ.net
- ジョブズ キチガイかよ
- 698 :デフォルトの名無しさん:2015/10/02(金) 18:12:25.67 ID:cle9kUAg.net
- キチガイだからこそというのもある
- 699 :デフォルトの名無しさん:2015/10/03(土) 08:23:38.91 ID:oanQRH4z.net
- Webアプリに詳しい人が多いと思うので質問
JavaのServletなんかをいまさらやっても求人はほとんどないんですよね?
Javaの練習としては意味あるのかな?JSPはいらないと思うから極力JSPを使わず
HTMLJQueryのみと最小限のServletつかってHPなんかを作る
って意味ありますか?
プログラム2年目の初心者です。そのごPHPやろうかなと
- 700 :デフォルトの名無しさん:2015/10/03(土) 08:24:14.85 ID:oanQRH4z.net
- 1個言語極めたほうがいいと聞いてるので
PHP後なんです。PHPの言語の本は読んでますが
- 701 :デフォルトの名無しさん:2015/10/03(土) 08:28:42.45 ID:kqQdpap+.net
- この臭さ
- 702 :デフォルトの名無しさん:2015/10/03(土) 09:24:17.96 ID:ajbLAT8w.net
- JavaでAndroid開発頑張れよ
いくらでも仕事あるぜ
- 703 :デフォルトの名無しさん:2015/10/03(土) 09:28:31.33 ID:oanQRH4z.net
- クラウドなど使ってるのでWEBの知識もつけたいんです
- 704 :デフォルトの名無しさん:2015/10/03(土) 09:39:58.17 ID:Ah57aA4b.net
- Web技術はプログラミング言語とは独立な話だけど
- 705 :デフォルトの名無しさん:2015/10/03(土) 09:42:54.06 ID:oanQRH4z.net
- そうなですか。JSONを送る練習したほうがいいとききました
- 706 :デフォルトの名無しさん:2015/10/03(土) 16:04:31.13 ID:giCn6CLq.net
- 送る練習ってなんだ ただ仕様調べてその通り書くだけだろ
- 707 :デフォルトの名無しさん:2015/10/03(土) 17:37:45.34 ID:K3yeuoy4.net
- ジェイソン来られても困るわ
- 708 :デフォルトの名無しさん:2015/10/03(土) 21:35:32.27 ID:B7qJf8Bu.net
- 以前アンケート作成について質問させてもらった者ですが、今二重投稿を防ぐためのIPチェックのコードを書いてて、うまくいかないからアドバイス貰えると嬉しいです‥
// IPアドレスを取得して変数にセットする
$ip = $_SERVER["REMOTE_ADDR"];
//投稿データを貯めたファイルを変数に格納
$lines = file(‘【投稿情報を格納したファイル】.txt');
//ファイルのデータを上から下までチェック
for ($i = 0; $i < count($lines); $i++) {
//各データを区切ってる水平タブを削除
$items = explode("¥t", $lines[$i]);
//データの10番目のアイテムが投稿者のIPなので、現在のIPと一緒の場合は別処理
if ($items[10] == $ip) {
echo 'ip重複やで';
}}
これ何が間違ってる?
- 709 :デフォルトの名無しさん:2015/10/03(土) 21:40:51.97 ID:1PQVSqiN.net
- >>708
10番目のアイテムは$item[9]じゃね?
- 710 :デフォルトの名無しさん:2015/10/03(土) 22:17:47.22 ID:g7xKsIu0.net
- wpってもっさりして動きがのろいんだがphpが遅いのが原因だろ?
速いphpって無いのか?
- 711 :デフォルトの名無しさん:2015/10/03(土) 22:31:29.81 ID:ajbLAT8w.net
- phpが遅いのが主原因ではない
php以外でのサーバの最適化とソフトウェア(wp)自体の最適化を行わないことには一緒
そういうのを全部やってるサーバ借りるのが一番
- 712 :デフォルトの名無しさん:2015/10/03(土) 22:44:12.21 ID:K3yeuoy4.net
- サーバーのスペックのがでかいわ
- 713 :デフォルトの名無しさん:2015/10/03(土) 23:39:19.95 ID:DW7EPY85.net
- >>705
将来的にも食っていきたいならJavaの前にCどうぞ。
- 714 :デフォルトの名無しさん:2015/10/03(土) 23:40:00.07 ID:DW7EPY85.net
- >>710
php7
- 715 :デフォルトの名無しさん:2015/10/03(土) 23:41:16.36 ID:tV482q2K.net
- >>708
大筋間違ってないと思うが、世の中固定のグローバルIPアドレスを一人で専有するユーザーなんてほぼいないんだから、せめて「一定時間内の」同一IPを弾くとか工夫した方がいいと思う。
あと、重複チェック用にチェック項目だけを書いたファイルを用意しておくといいと思う。
IPアドレスとタイムスタンプ、あと UA あたりとか。
つか、受け付け時はノーチェックで受け付けて集計時に重複排除すればよくね?
リアルタイムに集計結果をページに反映させたいなた無理だろうが、受け付ける時はなるべく余計なことしない方がいいと思う。
- 716 :デフォルトの名無しさん:2015/10/04(日) 05:08:32.61 ID:FsLwYc7A.net
- >>714
7って本当に速いのか?
- 717 :デフォルトの名無しさん:2015/10/04(日) 06:24:37.92 ID:6bPbjGVx.net
- wordpressを早くしたいならまずはサーバをapacheから変えることだな
- 718 :デフォルトの名無しさん:2015/10/04(日) 07:04:55.55 ID:JXiMzRO3.net
- fpmって付随効果はいろいろありがたいけど
phpの実行速度そのものはmodule版とあんま変わらないよね
- 719 :デフォルトの名無しさん:2015/10/04(日) 10:13:44.72 ID:J4whK/1Y.net
- >>708
ネットカフェだと、異なる人が、
異なるPCから投稿しても、
同じIPアドレスになってしまう
ネットカフェ内の誰かが、2chに書き込むと、
連続投稿となり、他の人が書き込めなくなった
- 720 :デフォルトの名無しさん:2015/10/04(日) 11:30:31.54 ID:FsLwYc7A.net
- >>717
何に変えるのか言ってくれよ
- 721 :デフォルトの名無しさん:2015/10/04(日) 14:30:47.56 ID:NaI5stH8.net
- >>713
Cはほんの軽くやってます。きちんとやったほうがいいんでしょうか。やるとなると何がいいですか?MAC持ってませんがiphone?
- 722 :デフォルトの名無しさん:2015/10/04(日) 15:44:38.57 ID:DWkf6ASR.net
- 触ったことあるのと理解してるのは別の話、そこを分かってるとおいそれと「やってる」なんて言わないからな。
黙々とやってみるわけでもなく、何をやったらいいかとぐだぐだこんなところで聞いてくるなら別の職を検討する方がいいと思うよ。
コンサルとか案外向いてるかも。
- 723 :デフォルトの名無しさん:2015/10/04(日) 15:50:26.92 ID:/KIHQ6WK.net
- >>721
iphone?objective-cやりたいの?
というか、きちんとやったほうがいいのかどうかからずいぶん飛躍したところに着地してるよそれ。
言語をきちんと学ぶかどうかだよね。とりあえずK&Rを隅から隅まで読むこと。
- 724 :デフォルトの名無しさん:2015/10/04(日) 16:44:58.93 ID:3q2CjWiD.net
- 今時K&Rは流石に古い
- 725 :デフォルトの名無しさん:2015/10/04(日) 16:46:56.71 ID:/KIHQ6WK.net
- 確かに今じゃもう古いってのはあるけど、しかし代わりになるものがないのも事実じゃないかな。
- 726 :デフォルトの名無しさん:2015/10/04(日) 16:54:09.77 ID:3q2CjWiD.net
- まぁC言語のスレじゃないから掘り下げる気はないよ
- 727 :デフォルトの名無しさん:2015/10/04(日) 18:18:46.23 ID:NaI5stH8.net
- >>722
ヘルプデスクのことですか?
あれって60歳まで仕事ないからだめかな
組み込みで簡単なゲームウォッチ
作ったかな
- 728 :デフォルトの名無しさん:2015/10/04(日) 19:48:30.72 ID:EdfN5JOs.net
- >>727はたぶん学び続ける職全般に向いてないからやっぱりコンサル向きだ
- 729 :デフォルトの名無しさん:2015/10/04(日) 19:58:02.00 ID:NaI5stH8.net
- >>728
ヘルプデスクのこと?本を読んで覚えるのはできるけど
家でPC開いて一人で土日つぶす式の勉強は無理かな
- 730 :デフォルトの名無しさん:2015/10/04(日) 20:00:27.76 ID:NaI5stH8.net
- 通勤時間に勉強できるようならできるだろうけど
- 731 :デフォルトの名無しさん:2015/10/04(日) 20:08:57.70 ID:JXiMzRO3.net
- 楽しそうだな君たち
- 732 :デフォルトの名無しさん:2015/10/04(日) 21:44:32.70 ID:DWkf6ASR.net
- >>728
いやコンサルはむしろ新しいことを取り入れ続ける人間が向いてると思うよ。
聞きかじった新しいことをさも分かってる風に堂々と並べ立てられるスキルが求められる。
エンジニアはなかなかあのニオイを出せないけど、それをぷんぷん漂わせてるんだから天職だと思うよ。
- 733 :デフォルトの名無しさん:2015/10/04(日) 21:52:59.61 ID:/KIHQ6WK.net
- なんでコンサルからヘルプデスクにつながるんだろう
- 734 :デフォルトの名無しさん:2015/10/05(月) 02:32:17.82 ID:pXkN35Nh.net
- プログラミングヤる前に色々勉強した法が良さそう・・・
- 735 :デフォルトの名無しさん:2015/10/05(月) 15:12:10.76 ID:2wXr8eiu.net
- windowsサーバー2003 R2 SP2
PHP5.3.8
【質問内容】配列がおかしい、配列番号どおりに並んでいない
【詳細】
$hoge_arr = array();
$hoge_arr[0] = "あああ";
$hoge_arr[2] = "ううう";
$hoge_arr[3] = "えええ";
$hoge_arr[1] = "いいい";
$hoge = implode("\n",$hoge_arr);
print $hoge;
【期待する結果】
ああああ
いいいい
うううう
ええええ
【実行結果】
ああああ
うううう
ええええ
いいいい
なぜなんでしょうか?(*_*)
- 736 :デフォルトの名無しさん:2015/10/05(月) 15:15:52.17 ID:kPKq1OVt.net
- >>735
PHPの配列とはそういうものです。
マニュアルを読みましょう。
- 737 :デフォルトの名無しさん:2015/10/05(月) 15:31:04.63 ID:2gaTZTqA.net
- あうえい、それぞれ一個増える仕様です
- 738 :デフォルトの名無しさん:2015/10/05(月) 15:47:13.43 ID:IPku5sGT.net
- >$hoge = implode("\n",$hoge_arr);
ここの前で
ksort($hoge_arr);
すりゃいい
- 739 :デフォルトの名無しさん:2015/10/05(月) 22:47:07.89 ID:hKC6CL9o.net
- >>735
PHP7でなら期待する結果が得られると思われる
- 740 :デフォルトの名無しさん:2015/10/05(月) 23:44:57.99 ID:0vUoyrfn.net
- >>739
1 2 3 0の順で格納した場合に、配列だと判断してくれる(=内部でデータ変更してくれる)かどうかが気になるところだよね。
- 741 :デフォルトの名無しさん:2015/10/06(火) 00:51:13.38 ID:1MaEKRz1.net
- PHP7でそんな変更があるとはどこにも書いてないな。
基本的な文法は後方互換持たせてるっぽいし。
- 742 :デフォルトの名無しさん:2015/10/06(火) 02:14:13.60 ID:7bWwpFop.net
- RCで試してみればよいか, 俺は正式リリース後にするが
- 743 :735:2015/10/06(火) 03:09:20.30 ID:wqvPEXhX.net
- >>741
https://nikic.github.io/2014/12/22/PHPs-new-hashtable-implementation.html
めっちゃ分かりやすく書いてくれてたのでオヌヌメ
- 744 :デフォルトの名無しさん:2015/10/06(火) 10:58:33.53 ID:8pBv5L1n.net
- >>742
そろそろ俺も7.0使ってみるかと思ってインストールしたら、7.1.0-devがインストールされてしまった。
7.0インストールするのめんどいのでこのまま>>735を実行してみる。
php -v
PHP 7.1.0-dev (cli) (built: Oct 6 2015 10:52:14) ( NTS )
Copyright (c) 1997-2015 The PHP Group
Zend Engine v3.0.0-dev, Copyright (c) 1998-2015 Zend Technologies
実行結果:
あああ
ううう
えええ
いいい
結論:
互換性は保たれている。
- 745 :デフォルトの名無しさん:2015/10/06(火) 11:39:11.92 ID:O9Pn11VB.net
- そこの挙動が変わったらいろいろ大変そうだもんな
既存システムの検証なんて気が遠くなる
- 746 :デフォルトの名無しさん:2015/10/06(火) 11:44:44.60 ID:8pBv5L1n.net
- 7.0 RC5でもやってみたけど、当然ながら同じ結果だった。
php -v
PHP 7.0.0-dev (cli) (built: Oct 6 2015 11:24:05) ( NTS )
Copyright (c) 1997-2015 The PHP Group
Zend Engine v3.0.0-dev, Copyright (c) 1998-2015 Zend Technologies
- 747 :デフォルトの名無しさん:2015/10/06(火) 11:47:49.68 ID:8pBv5L1n.net
- あ、RC 5じゃなくて、RC 4+αなのか。
NEWSファイルに
> 15 Oct 2015, PHP 7.0.0 RC 5
って書かれてたから、RC 5は10/15リリース予定なのかな。
- 748 :デフォルトの名無しさん:2015/10/06(火) 15:40:51.94 ID:MPuxCYgs.net
- print_rとかvar_dump使うとフリーズしたり真っ白画面になったりするんだけど、どうしたらいいんだろうか
- 749 :デフォルトの名無しさん:2015/10/06(火) 15:49:24.74 ID:SmWERlUR.net
- >>748
内容が膨大で出力に時間がかかってるかタイムアウトしてるんじゃね。
オブジェクトの必要な部分だけをダンプしたら。
- 750 :デフォルトの名無しさん:2015/10/06(火) 17:13:58.45 ID:MPuxCYgs.net
- >>749
レスありがとうございます。個別にした所表示されました。
内容的には 連想配列5セット?分程度なんですが
渡し方が悪いのか妙にいろんなのがくっついてきてて・・・OTL
- 751 :デフォルトの名無しさん:2015/10/06(火) 23:36:29.98 ID:7bWwpFop.net
- >>748
さぁprint_rやvar_dumpを使う代わりにテストを書くんだ
- 752 :デフォルトの名無しさん:2015/10/07(水) 12:02:18.61 ID:qdqRCjiZ.net
- 受ける会社大丈夫?
下記の条件が全て当てはまる会社にご注意下さい。
・IT系 in tokyo
・「社名 労基」でググると過去の2chスレが出てくる
・転職会議で2.5点
- 753 :703:2015/10/07(水) 20:44:42.98 ID:8dqqBgV+.net
- >>715
IPアドレスで制限はやめた方が良さそうなんだね
とりあえず「一定時間内の同一IPを弾く」でやろうと思うんだけど、タイムスタンプ?っていうのはどうやればいいの?
検索して調べる際のキーワードというか‥ヒントでもいいから教えてくれないだろうか‥
- 754 :デフォルトの名無しさん:2015/10/07(水) 22:10:07.06 ID:G4XQLQ5p.net
- >>753
タイムスタンプって、ある事象が起きた時刻のことだよ。
ここで言えば回答を受け付けた時刻で、たとえば time() で取れる。
time の値は一見時刻に見えないただの数値で、この数値のまま記録して経過時間を判別することもできるけど、
処理系への依存性を減らしたりデータファイルの視認性を上げるためにおれなら日時形式にフォーマッティングして記録する。
2015-10-07 21:57:15 みたいな。
アンケートを受け付けた時、重複検索用に次のようなレコードを出力にしておき、
<タイムスタンプ>¥<IPアドレス>¥<UA>
チェック時には 現在時刻-判定時間 の「判定時刻」を求め、その判定時刻より大きいタイムスタンプを持つ行を検索し、IPアドレスとかUAをチェックする。
重複検索用のファイルはたまに判定時間を過ぎた古いレコードを削除してやるといい。
- 755 :デフォルトの名無しさん:2015/10/07(水) 22:17:36.43 ID:OQQ44hBw.net
- セッション使えばよくね
- 756 :デフォルトの名無しさん:2015/10/07(水) 22:18:22.91 ID:G4XQLQ5p.net
- レコード形式書き直し
<タイムスタンプ>¥t<IPアドレス>¥t<UA>
¥t はタブね。
カンマでもいいけど UA に使われそうにない ¥t がいい。
が、どっちにしても UA に区切り文字が含まれることを想定して、文字列は置換かけて利用して。
フィールド区切りを ¥t、レコード区切り(改行)を ¥n にするなら、UA は必ず ¥t や ¥n、ついでに ¥r をスペースに置換したものを利用する。
これやらないとセキュリティホールになりえるから抜け目なく。
- 757 :デフォルトの名無しさん:2015/10/07(水) 22:47:03.23 ID:WJBWsnfN.net
- fgetcsv(), str_getcsv()あんだからさあ・・・
- 758 :デフォルトの名無しさん:2015/10/07(水) 22:56:56.86 ID:0iwSPjqO.net
- >>755
セッションだと同じ人が、
いったんブラウザを閉じてから、
また接続して投票するかも
- 759 :デフォルトの名無しさん:2015/10/07(水) 23:08:21.36 ID:07QWenOi.net
- >>755
セッションもキーのやり取りがCookieですしおすし
意図しない2重投稿の拒否には効果的だと思うけど, 能動的に多重投稿しようとする場合にはなー
>>754,751
態々TSVでそんな処理を実装するなんて馬鹿げてると思うんだ
初めからSQLiteでも使って適当なテーブル設計にしておけばSQL文ひとつで済む処理だぜ, それ
ついでに言っとくと, 日時形式はタイムゾーン(UTC, JST, &c...)まで書かないとロケール依存だし, そもそもUNIX時間に処理系/環境依存性なんてない
- 760 :デフォルトの名無しさん:2015/10/07(水) 23:55:06.06 ID:G4XQLQ5p.net
- >>759
大元がdb使う話じゃないからそれに合わせたまでだよ。
今時 db 使えない環境も無いだろうが、順を追って覚えていく上でもファイルベースの処理はやって損はないでしょう。
環境についても、別に既存データを別環境に引っ越すことを狙ってるわけじゃないからロケールは不要だし、そこら辺まで意識したいなら UTC にでもすればいい話。
環境依存性の話は、どちらかと言えば時刻の取り扱いが異なる言語やOSへ引っ越す場合についての話。
その処理系で返される値がintじゃなかったら?時刻の新旧と値の大小の対応が不連続な処理系だったら?という話だよ。
2038年問題にどう対処されるか、負のタイムスタンプが何を表すか、そこら辺に違いが出る可能性があるでしょ。
日付と時刻でフォーマッティングしとけば、そこら辺の違いを吸収しやすくなりポータビリティが上がるでしょ。
- 761 :デフォルトの名無しさん:2015/10/08(木) 00:09:08.13 ID:+wLyjalJ.net
- うむ、ヘルプデスク君
- 762 :デフォルトの名無しさん:2015/10/08(木) 00:25:30.51 ID:pWF1/z0v.net
- db使った方が日付のポータビリティ高そう
- 763 :デフォルトの名無しさん:2015/10/08(木) 00:27:44.19 ID:EtqyyL8e.net
- >>762
そりゃそうだ
- 764 :デフォルトの名無しさん:2015/10/08(木) 01:42:25.19 ID:fFP80ZXX.net
- >>760
まぁ, 日付時刻フォーマットにするならISO8601とかあるし, 理由もなくオレオレフォーマットにするぐらいならそっち使った方がいいよ
- 765 :デフォルトの名無しさん:2015/10/08(木) 02:25:14.02 ID:EtqyyL8e.net
- >>764
目的を考えろよ。
別システムと情報交換するわけでもなく、自分ローカルの値なんだぞ?
簡単な文字列比較で時刻の新旧が比較できることが要件であり、それを満たしさえすればオレオレで充分だろ。
もちろん標準に添うことに反対するわけではないが、基本を勉強する段階で従うべきルールを不必要に増やすこともないでしょ。
- 766 :デフォルトの名無しさん:2015/10/08(木) 03:01:17.15 ID:fFP80ZXX.net
- >>765
目的考えればUNIXタイムが最適じゃない?
- 767 :デフォルトの名無しさん:2015/10/08(木) 03:07:36.73 ID:zAcCECc5.net
- いいや。おれの腹時計だ。
- 768 :デフォルトの名無しさん:2015/10/08(木) 03:11:49.64 ID:EtqyyL8e.net
- >>766
通常はそれで充分だと思うよ。
当面は unixタイムスタンプが扱える環境であれば同じように動作するだろうし。
おれが言ってるのは unixタイムスタンプを直接取れない処理系、及び unixタイムスタンプの溢れに対する対処に差がある処理系の考慮の話で、
少なくとも php に限定すれば気にするような話じゃないからね。
んまあこのコードを 2038年以降の 32bit版PHP で動かせるか、そこは気になるけどね。
負数に回り込んだりしてうまく比較できなくなるのであれば、その対応コードが必要になっちゃうよね。
- 769 :デフォルトの名無しさん:2015/10/08(木) 03:26:34.08 ID:9a4rvECp.net
- >>760
> その処理系で返される値がintじゃなかったら?
それはつまり、time がリファレンス通りの動作をしない実装の PHP を想定してのレスだよね。
その状況で、他の処理等々がリファレンス通りの動作をすると信じていいのかい?
- 770 :デフォルトの名無しさん:2015/10/08(木) 03:28:25.76 ID:fFP80ZXX.net
- >>768
意図は分かったけど, それ自分で言ってる基本とか目的云々とは対極の立場だよ
- 771 :デフォルトの名無しさん:2015/10/08(木) 04:15:37.76 ID:EtqyyL8e.net
- >>769
そこで言ってる処理系って他言語も含めての話だよ。
例えば同じことを windows api で書かなくちゃいけなくなった場合、得られるタイムスタンプの型は何種類かあるけど、まずどれを使うかという選択をしなくちゃならないし、そしてネイティブにはunixタイムスタンプを得られる api が無いという事情もある。
でもどんな処理系でも何らかの形で日付時刻として対応の取れる値を取得する手段はあるから、その形で値を管理すれば処理そのものは元のインタフェースの事情から解放されるでしょ。
そして、そう作るのに大きな手間がかかるというわけでもなく、PHP なら
date('Ymdhis')
とやるだけで要件を満たす値が得られるし、ついでに
date('Y-m-d h:i:s')
とやって視認性を高めてもいいでしょって話だよ。
>>770
環境と処理の本質を疎にするため値を目的に応じた表現にして管理するってのは基本でしょ。
ラッピングと同じように。
- 772 :デフォルトの名無しさん:2015/10/08(木) 07:28:26.01 ID:JPpo1zNY.net
- if文の評価式で、変数に値が入っているかどうかを聞く場合、
$hoge = 'hogehoge';
if($hoge)
と
if($hoge != '')
どっちが正解?
- 773 :デフォルトの名無しさん:2015/10/08(木) 12:31:05.75 ID:9a4rvECp.net
- >>771
ああ、その層の話をしてたのね。はあくした。
- 774 :デフォルトの名無しさん:2015/10/08(木) 12:32:39.24 ID:9a4rvECp.net
- >>772
空文字列であるかどうを知りたいなら if ($hoge !== '') が正解
- 775 :デフォルトの名無しさん:2015/10/08(木) 17:56:58.28 ID:vrJgyY4U.net
- >>774
ありがとう
他人の書いたソースで、文字列でも数値でも
if($hoge)でやってるから、どうなのかと思って
- 776 :デフォルトの名無しさん:2015/10/08(木) 19:38:15.41 ID:DbNAUAeX.net
- 0とかfalse、null等の扱いを厳密にするならきっちり分けるべき。
!==でなく!=を使ってる時点で、曖昧でも問題がない設計なんだろう。
厳密な型の比較には注意が必要。
http://php.net/manual/ja/types.comparisons.php
- 777 :デフォルトの名無しさん:2015/10/08(木) 20:26:28.64 ID:9yien46K.net
- Javascriptスレで聞いたら
>PHP等の手を借りないと
>Javascriptだけでは不可能です
と言われたのでここに来ました。
index.htmlを表示している状態で、どこかの任意のWEBサイト
(例:www.yahoo.co.jp)を非表示の状態で読み込んで、そのサイトの
文章などの文字列を取得してindex.htmlの中で利用したいのですが、
どういう手順になるのか見当も付きません。
おおまかな流れを教えてください。
- 778 :デフォルトの名無しさん:2015/10/08(木) 21:46:10.43 ID:bUX/DeaC.net
- >>777
javascriptのajax( )でやれば?
phpのファイル呼び出して特定のdivコンテナにぶち込めばいいさ
- 779 :デフォルトの名無しさん:2015/10/08(木) 21:53:46.65 ID:9yien46K.net
- >>778
レス有難うございました。
おおまかな流れは分かりました。
クライアントサイドだけでは出来ないんですね。
- 780 :デフォルトの名無しさん:2015/10/08(木) 22:17:06.23 ID:+wLyjalJ.net
- クロスドメインのクの字も出てきてないのに何を納得したんだろうか
- 781 :デフォルトの名無しさん:2015/10/08(木) 22:24:14.36 ID:9yien46K.net
- >>780
ajaxを使うこと
- 782 :デフォルトの名無しさん:2015/10/08(木) 22:49:04.38 ID:6F5A76Bc.net
- JavaScriptにはクロスドメインの制約あるけど、AjaxでPHPを呼んで、
そのPHPでスクレイピングして結果を戻す場合にも制約にかかるの?
- 783 :デフォルトの名無しさん:2015/10/08(木) 23:00:47.02 ID:+wLyjalJ.net
- 当然ながら、呼ぶ.phpの場所が読んでるhtmlと同じ場所なら、かからん
ただ、読み込むWebサイトを動的に変化させたい、php呼び出し時の引数で外部WebサイトのURLを指定して…とかになると
同時にセキュリティホールを生み出しかねないのはCORSと同じだが
- 784 :デフォルトの名無しさん:2015/10/08(木) 23:28:47.77 ID:6F5A76Bc.net
- >>783
>当然ながら、呼ぶ.phpの場所が読んでるhtmlと同じ場所なら、かからん
疑問が晴れた。ありがとう。
PHPで動的な処理をする場合、セキュリティが必須なのも同意。
- 785 :デフォルトの名無しさん:2015/10/09(金) 00:46:12.68 ID:D2kqon1E.net
- Googleのrecaptchaを突破する方法知りませんか?
- 786 :デフォルトの名無しさん:2015/10/09(金) 00:52:39.32 ID:+sCz9Yei.net
- おそらく答えるのは不正アクセス禁止法違反幇助に該当するので
- 787 :デフォルトの名無しさん:2015/10/09(金) 00:58:07.71 ID:l3A42VSr.net
- 画像に書いてある英数字を読んで入力するだけじゃん
- 788 :デフォルトの名無しさん:2015/10/09(金) 02:57:28.21 ID:a9mGxvsP.net
- みんなphp以外だとどんな言語使ってる?
使えるじゃなくて普段使ってるもので良かったら利点等々聞けると・・・
- 789 :デフォルトの名無しさん:2015/10/09(金) 09:42:04.02 ID:DHEVIjM9.net
- >>782
PHPはこの場合proxyに過ぎないわけでかかるかどうかは相手サーバ次第が正解
- 790 :デフォルトの名無しさん:2015/10/09(金) 09:55:44.27 ID:SYQG11wT.net
- >>789
じゃあ同一生成元ポリシーに引っかかるかどうかが
相手サーバに依存する具体例よろ
- 791 :デフォルトの名無しさん:2015/10/09(金) 17:37:39.50 ID:DHEVIjM9.net
- かかるってのはアクセス出来ないという話で
同一生成元ポリシーとかそういう話じゃない
どういうケースかというと相手方がproxyであるかチェックを行うサイト
- 792 :デフォルトの名無しさん:2015/10/09(金) 19:12:36.00 ID:BO+xHSp1.net
- >>791
Q「(クロスドメインの)制約にかかるの?」
A「かかるかどうかは相手サーバ次第」←アクセスできるかどうかという話だ。
というやり取りをしていることについてどう思う?
- 793 :デフォルトの名無しさん:2015/10/09(金) 22:49:18.72 ID:D2kqon1E.net
- >>787
画像を選ぶ方式に変わったんです
- 794 :デフォルトの名無しさん:2015/10/09(金) 23:18:45.07 ID:FgkOUotZ.net
- 現在地取得(今いる住所取得)は
geolocation APIとグーグルマップAPIを使い算出してました。
PHP側で同じようなパッケージなどありますでしょうか?
- 795 :デフォルトの名無しさん:2015/10/10(土) 00:11:17.08 ID:YSjtdWRL.net
- >>792
そもそも質問がおかしいだろ
- 796 :デフォルトの名無しさん:2015/10/10(土) 00:48:54.21 ID:g8ZQ4q1/.net
- >>795
そう思うならそこを指摘するべきであり、支離滅裂なレスをすることの理由にはならんだろ
- 797 :デフォルトの名無しさん:2015/10/10(土) 01:27:12.60 ID:/QYhRBFu.net
- globalは避けたい、staticプロパティやsingletonもglobal量産みたくなりかねないから避けたい
定数乱発もできるだけ回避したい
でも呼び出し側の設定によって関数・classの動作を変えるなど柔軟に作りたい
- 798 :デフォルトの名無しさん:2015/10/10(土) 02:13:33.85 ID:+26wGx+X.net
- >>797
スクリプトを実行して終了するまでの間はずっと同じ設定値なの?
実行中に設定値が一定なら define が妥当じゃね。
define のスコープの広さが気にくわないのであれば、設定値クラスみたいのを作ってスクリプト実行時に好きに初期化して、
設定値を利用したい方のクラスではコンストラクタに設定値クラスオブジェクトを渡しておくとか?
実行中に設定値が一定なら設定値クラスと処理クラスを一緒にしてしまえということになりそうだけど、static の乱発したくないというならこうなるのかね。
んまあ設定値クラスが持つ値の元はやっぱり define かなにかで定義することになりそうだけど。
つか、設定値で動作を変えるという内容にもよると思うけど、処理の差が出る部分を派生クラスで実装変更するというのはどうなの。
- 799 :デフォルトの名無しさん:2015/10/10(土) 03:38:04.85 ID:YSjtdWRL.net
- >>796
同一生成元ポリシーってのはJavaScriptでの話であってPHPは関係ない
>>790があのようなレスで返したこと自体が謎
- 800 :デフォルトの名無しさん:2015/10/10(土) 03:45:58.97 ID:YSjtdWRL.net
- あ、質問がおかしいではなく>>790がおかしいだな
- 801 :デフォルトの名無しさん:2015/10/10(土) 03:50:35.79 ID:g8ZQ4q1/.net
- >>799
>>795の「質問」って>>790のことを言ってる?
>>789がすでにおかしなレスなんだからそこが問題だろ。
- 802 :デフォルトの名無しさん:2015/10/10(土) 03:51:54.13 ID:wKf2WBeU.net
- >>801
このスレには割とガチで頭の可笑しいのが一人いる, そう思っておくとスルー出来てよい
- 803 :デフォルトの名無しさん:2015/10/10(土) 04:14:26.37 ID:QDr2SJN2.net
- AサイトからBサイトのAPIをajaxで呼び出す→クロスドメイン制約により不可能
AサイトからajaxでAサイトのPHPを呼び出しPHP経由でBサイトのAPIを呼び出す→ここに当てはまる答えを書きなさい
- 804 :デフォルトの名無しさん:2015/10/10(土) 04:56:27.45 ID:NbY3/Ke0.net
- なんでそんな面倒なことすんの?
- 805 :デフォルトの名無しさん:2015/10/10(土) 05:00:54.49 ID:DKs1l9pU.net
- そらパクリサイトやろ
- 806 :デフォルトの名無しさん:2015/10/10(土) 09:27:43.87 ID:NaWvx4mT.net
- 外部からDBに接続させたくないから、PHP本体がレン鯖にある場合にやってる
- 807 :デフォルトの名無しさん:2015/10/10(土) 15:54:35.25 ID:onaXIcy1.net
- 連想配列に代入する値に変数を使うことはできますでしょうか?
値を代入した変数を連想配列に代入したいのです。
具体的には多次元の連想配列の値に変数を使いたいと思ってます。
$params[] =array(
"id" => "aaa" ,
"fruit" => "apple",
"cooking" => "rice",
)
このキーidの値(aaa)に配列を使いたいわけです。
$id_hairetu = array("aaa", "bbb","ccc")
$params[] =array(
"id" => "$id_hairetu" ,
"fruit" => "apple",
"cooking" => "rice",
)
のようにしたいのですが、うまく行きません。わかりづらくてすみません
どなたかご指導のほどお願い致します。
- 808 :デフォルトの名無しさん:2015/10/10(土) 16:01:10.54 ID:wKf2WBeU.net
- >>807
それは, 代入後に$id_hairetuの値を変えた場合に$paramsの値も連動して変わるようにしたいということなのか, 或いは単に代入時の$id_hairetuの値をコピーしたいだけなのか
- 809 :デフォルトの名無しさん:2015/10/10(土) 16:11:20.89 ID:onaXIcy1.net
- >>808
後者です。
代入時に$id_hairetuの値をコピーしたいのです。。
- 810 :デフォルトの名無しさん:2015/10/10(土) 16:14:28.69 ID:wKf2WBeU.net
- >>809
そんなんだったら
$id_hairetu = array("aaa", "bbb","ccc");
$params =array(
"id" => $id_hairetu,
"fruit" => "apple",
"cooking" => "rice",
);
でいいじゃん
- 811 :805:2015/10/10(土) 16:15:19.31 ID:wKf2WBeU.net
- 今は&もエスケープされるのか
$id_hairetu = array("aaa", "bbb","ccc");
$params = array(
"id" => $id_hairetu,
"fruit" => "apple",
"cooking" => "rice",
);
- 812 :デフォルトの名無しさん:2015/10/10(土) 16:53:54.22 ID:onaXIcy1.net
- >,805>811
ありがとうございます。
そのまま配列(id_hairetu)を代入したところ
idに3つめの"ccc"しか代入されませんでしたorz
params[0][id]=aaa
params[0][fruit]=apple
params[0][cooking]=rice
params[1][id]=bbb
params[1][fruit]=apple
params[1][cooking]=rice
params[2][id]=ccc
params[2][fruit]=apple
params[2][cooking]=rice
のようにしたいわけです。。
- 813 :デフォルトの名無しさん:2015/10/10(土) 17:12:22.95 ID:wKf2WBeU.net
- foreachでも書けるけど
$params = array_map(function($i){return array('id' => $i, 'fruit' => 'apple', 'cooking' => 'rice');}, $id_hairetu);
- 814 :デフォルトの名無しさん:2015/10/10(土) 17:56:56.30 ID:NbY3/Ke0.net
- >>812 みたいな事よく起こるけどこれってなんでなんだろう?
- 815 :デフォルトの名無しさん:2015/10/10(土) 17:59:48.94 ID:onaXIcy1.net
- >>813
解決できました
ありがとうございます!
- 816 :デフォルトの名無しさん:2015/10/10(土) 21:38:47.37 ID:LXdnro1p.net
- visualstudioでphpを使えるの?
- 817 :デフォルトの名無しさん:2015/10/11(日) 00:44:08.76 ID:Fm9fNPIx.net
- >>816
はい使えます
- 818 :デフォルトの名無しさん:2015/10/11(日) 01:19:29.32 ID:KbfkRHMw.net
- >>817
デバッグは出来るの?
- 819 :デフォルトの名無しさん:2015/10/11(日) 01:45:44.46 ID:Fm9fNPIx.net
- >>818
はい出来ます
- 820 :デフォルトの名無しさん:2015/10/11(日) 03:45:07.97 ID:c+Go0B7k.net
- VSでphp使う意味は?
- 821 :デフォルトの名無しさん:2015/10/11(日) 05:56:49.44 ID:CC31UwIt.net
- VSの話題なんて全然なかったのに同一人物がずっときいてんの?
板を移動した弊害?
- 822 :デフォルトの名無しさん:2015/10/11(日) 07:05:41.91 ID:KbfkRHMw.net
- >>820
普通は何を使うの?
- 823 :デフォルトの名無しさん:2015/10/11(日) 08:37:01.75 ID:c+Go0B7k.net
- >>822
質問を質問で返さないでもらえますか?
- 824 :デフォルトの名無しさん:2015/10/11(日) 08:55:57.42 ID:HRXjUTC6.net
- >>823
PHPの開発にVSを使う意味を聞きたいのではなく、
VSでPHPを使う意味を知りたいって不思議な気もするよ
- 825 :デフォルトの名無しさん:2015/10/11(日) 09:48:17.70 ID:KbfkRHMw.net
- >>823
なぜですか?
- 826 :デフォルトの名無しさん:2015/10/11(日) 10:51:19.50 ID:LbFd/0K7.net
- VSスレで聞いて
- 827 :デフォルトの名無しさん:2015/10/12(月) 07:03:36.46 ID:0McaFoKh.net
- IDEなんて第三者が拡張できるようにしてることが多いんだから
何が出来るかなんてプラグイン次第だろ
デバッグなんてIDEの中核機能の1つとして当たり前に搭載されてるものであって
使うような仕組みそのものが用意されてないならただのエディタだ
- 828 :デフォルトの名無しさん:2015/10/13(火) 07:32:40.90 ID:QMMb6qGP.net
- クロージャーについてうまく理解していないんですが、phpにおいて、クロージャーを使用するメリットってなんですか?
いろいろ見てたのですが javascriptではかなりメリットがありそうですが、privateやクラスが実装されているphpでは使う意味が無いようにすら感じられます・・・
(´・ω・`)なんでこんなの使うの?
- 829 :デフォルトの名無しさん:2015/10/13(火) 08:34:08.54 ID:IKf0MrqG.net
- スコープがどこであれ名あり関数定義は少ないほうがいい
普通の関数・クラスと違ってuseが使えるからcallback関数で使うのに便利
preg_replace_callbackの第二引数とかには、普通の関数じゃ自動で渡される$match以外は、値を引き渡せない
だから定数、global、singletonを使わざるを得ないように見えるけど無名関数ならいける
- 830 :デフォルトの名無しさん:2015/10/13(火) 11:22:13.69 ID:K3Va9rOK.net
- >>829
無名関数とクロージャは違う。 たぶん違うと思う。
- 831 :デフォルトの名無しさん:2015/10/13(火) 12:20:21.40 ID:DtUJdHVx.net
- 便乗だけど
http://qiita.com/hugo-sb/items/3e344486658e3cfbd407
>このサンプルのような単純なケースの場合、静的変数を利用しても同様な処理は記述できますが、
>クロージャーを利用することでカウンターを保持する変数を関数内に閉じ込めることででき、
>また以下のように複数のカウンターを生成することも容易です。
複数のカウンター生成はそうなんだけど、カウンターを保持する変数を関数内に閉じ込めることができって、
別にstaticでも閉じ込められるよね?
function mycount() {
static $cnt;
++$cnt;
return $cnt;
}
echo mycount(); //1
echo mycount(); //2
echo mycount(); //3
echo $cnt; //エラー undefined var
閉じ込めてるってこういうことじゃなくて?
- 832 :デフォルトの名無しさん:2015/10/13(火) 12:28:37.88 ID:MwC2t3jo.net
- >>831
それだとその関数のインスタンス(というのか分からんが)がひとつしか取れないじゃん。
変数の実体が隠蔽されてるというだけでグローバル変数と変わらない。
- 833 :デフォルトの名無しさん:2015/10/13(火) 12:49:09.93 ID:7qM/SX9p.net
- 【OS名】Win7
【PHPのバージョン】5.6
【質問内容】
文字列の一部分だけを置換したく以下のようなコードを書きました。
// 最初の"ほげ"を"hoge"に置換
$hoge = "ほげほげ";
$begin = mb_strpos($hoge, "ほげ");
$end = mb_strpos($hoge, "ほげ", $begin + 1);
$hoge2 = substr_replace($hoge, "hoge", $begin, $end - $begin);
print_r($hoge2);
当然といえば当然なのですが出力が文字化けしてしまいます。
substr_replaceのマルチバイト版を使おうと思ったらmb_substr_replaceは定義されておらず、
mb_ereg_replaceを使ってみたらすべての一致部分が置換されてしまいました。
マルチバイト文字を含む文字列の一部分置換を実現したい場合はどのようにすれば良いでしょうか?
- 834 :デフォルトの名無しさん:2015/10/13(火) 12:57:31.02 ID:N777J+eM.net
- preg_replace
ereg系は非推奨だからできれば使わない
- 835 :デフォルトの名無しさん:2015/10/13(火) 13:01:34.65 ID:jBFoqp2r.net
- >>831
> 複数のカウンター生成はそうなんだけど、カウンターを保持する変数を関数内に閉じ込めることができって、
> 別にstaticでも閉じ込められるよね?
staticだと初期化できない(再び0からスタートすることができない)。
- 836 :デフォルトの名無しさん:2015/10/13(火) 13:16:22.68 ID:7qM/SX9p.net
- >>834
それで出来ました。ありがとうございます。
- 837 :デフォルトの名無しさん:2015/10/13(火) 13:32:15.97 ID:IKf0MrqG.net
- そりゃ関数引っ張ってくるたび、その時useで引き渡した変数を保持してくれるけど
状態を持つインスタンスかインスタンスのような何かが欲しいだけだったら
単にcounterクラスを作って適宜newして作ってくれ、複数欲しけりゃ複数newしてくれ、初期化したかったら->init()作ったから使ってくれ、でもいいわけさ
だから>>828はいろいろ見た結果、classがありゃ別に良くね?と思ったんだろうと考えた
他の言語ともそうだけどjavascriptのクロージャとphpのクロージャとは違うし
となるとあとはクロージャの元々の「親のスコープの変数を(呼び出し時に引数で渡されなくても)持ってこれる」点かなと
なんかヘンだろうか
>>834
どうでもいいけどmb_ereg_replaceって非推奨なってないんじゃね?POSIXなeregと違ってバイナリセーフだから
- 838 :デフォルトの名無しさん:2015/10/13(火) 19:41:25.42 ID:DtUJdHVx.net
- >>832 >>835
ありがとう。イメージつかめた。
変数を閉じ込めるだの変数の初期化だのってのは文字通りの意味ではなくて、
カウンターを別インスタンスにするってことか。
- 839 :デフォルトの名無しさん:2015/10/13(火) 19:55:55.24 ID:lKovNds8.net
- >>838
それならクラスでもいいんだけど、大事なのは、、まぁやってりゃそのうち気づくと思うのでどうぞクロージャを。
- 840 :デフォルトの名無しさん:2015/10/13(火) 20:54:24.39 ID:2Lm5yRxi.net
- ガールズちゃんねるみたいな掲示板って、phpで作れる?
- 841 :デフォルトの名無しさん:2015/10/14(水) 02:01:02.42 ID:QSQe/OJj.net
- そんな質問してるようじゃ無理
- 842 :デフォルトの名無しさん:2015/10/14(水) 05:35:18.09 ID:FCUQuge3.net
- ファミコンゲームの開発に
PC-9801とか使ってたのは
どういう理屈で可能だったの?
(´・ω・`)
- 843 :デフォルトの名無しさん:2015/10/14(水) 10:26:53.35 ID:vwkn6oKu.net
- >>839
つまりクロージャーのメリットはないんですね
- 844 :デフォルトの名無しさん:2015/10/14(水) 17:31:47.32 ID:yK3lkgWZ.net
- 聞き出せなかったね
- 845 :デフォルトの名無しさん:2015/10/16(金) 00:34:09.28 ID:3nqUFkcM.net
- PHPにおいてクロージャのメリットはほぼ無いと思う。
PHPでは無名関数とか無名クラスとしてしか使い道ないよ。
- 846 :デフォルトの名無しさん:2015/10/16(金) 01:24:59.58 ID:Z14D5oxv.net
- >>845
無名クラスはともかく無名関数とは比較にならないだろう
- 847 :デフォルトの名無しさん:2015/10/17(土) 11:15:26.58 ID:CvIjhw+d.net
- クロージャ言ってるけど公式的には無名関数なんだけどね
その公式からして
定義された時のスコープは参照できないけど
スコープにある変数は参照できるからクロージャとも名乗ってよくね?
なんてこまけぇこたぁいいんだよ理論で
クロージャと自称してるから仕方ないけど
- 848 :デフォルトの名無しさん:2015/10/17(土) 17:09:50.67 ID:44Ma41Lx.net
- 文字列のうちマルチバイト文字だけurlencodeするにはどうすればいいですか?
- 849 :デフォルトの名無しさん:2015/10/17(土) 17:26:07.13 ID:VIGRJF+u.net
- >>848
マルチバイト文字だけにマッチする正規表現で preg_replace_callback とか?
- 850 :デフォルトの名無しさん:2015/10/17(土) 22:48:49.43 ID:44Ma41Lx.net
- >>849
マルチバイトだけ抜き出す肝心の方法がわからないんです
と思ったけどよく考えたらASCII除外とほぼ同じなんだからこれで大丈夫…なんですかね
preg_replace_callback(
'/[^ -~]+/',
function($matches){return urlencode($matches[0]);},
mb_convert_encoding($string, 'UTF-8', 'auto')
);
- 851 :デフォルトの名無しさん:2015/10/18(日) 06:04:12.45 ID:F4Gg11pg.net
- >>850のコード書く時どうやって書く?
自分的には
preg_replace_callback('/[^ -~]+/', function($matches){
return urlencode($matches[0];
}, mb_convert_encoding($string, 'UTF-8', 'auto'));
なんだが
- 852 :デフォルトの名無しさん:2015/10/18(日) 18:05:17.75 ID:H4W8oY2a.net
- マルチバイト文字だけにマッチする正規表現かよ!
- 853 :デフォルトの名無しさん:2015/10/18(日) 19:17:40.63 ID:wjDoFuRU.net
- >>850
mb_substrで一文字ずつ切り出してstrlenでバイト数 > 1の場合にurlencodeするとかどうでしょう
- 854 :デフォルトの名無しさん:2015/10/18(日) 20:14:14.10 ID:5Pr0yIMd.net
- 1<strlen($string)よりisset($string{1})のほうが早くないか
と思って試したけど5%も違わなかった
- 855 :デフォルトの名無しさん:2015/10/18(日) 22:47:05.25 ID:X/2nKuj7.net
- >>851
構文エラー埋め込んだだけにしか見えないけど、改行の話?
- 856 :デフォルトの名無しさん:2015/10/19(月) 08:47:23.06 ID:teI61ugJ.net
- 書き方なんて文脈とコーディング規約と売り方に合わせりゃいいんだよ
- 857 :デフォルトの名無しさん:2015/10/20(火) 03:21:23.42 ID:1/bgAIX6.net
- file get contentsでスクレイピングする時、クローラーじゃなくてブラウザと同じヘッダを送りたいんだけどどうすればいいの?
- 858 :デフォルトの名無しさん:2015/10/20(火) 03:34:12.36 ID:+JqN1HNW.net
- >>857
http://php.net/manual/ja/function.file-get-contents.php
context参照
- 859 :デフォルトの名無しさん:2015/10/20(火) 16:59:27.06 ID:5+o2HAea.net
- ブースター飛距離が足りないとお嘆きのアナタに!!
- 860 :デフォルトの名無しさん:2015/10/20(火) 17:01:12.18 ID:5+o2HAea.net
- ごばくごめん
- 861 :デフォルトの名無しさん:2015/10/21(水) 19:42:02.24 ID:g4C44bEN.net
- 起動するとウインドウが次々出てくるプログラムって作れたよね?
それを開くとウイルスみたいにクラッシュかフリーズするまで止まらないやつ
テキストファイルで作った記憶があるんだけど作り方知ってる人いませんか?
- 862 :デフォルトの名無しさん:2015/10/21(水) 19:43:44.64 ID:g4C44bEN.net
- ↑オフラインのPCでも起動できるからブラクラとはちょっと違ったはずなんだ
- 863 :デフォルトの名無しさん:2015/10/22(木) 10:22:28.49 ID:CeSwqlxw.net
- javascriptだろ、今はpopup禁止の設定多いから
自分で試すならそれ切ってな
- 864 :デフォルトの名無しさん:2015/10/22(木) 16:54:44.29 ID:RFoUDNFf.net
- >オフラインのPC
ブラクラの意味がわかってないようだなw
- 865 :デフォルトの名無しさん:2015/10/22(木) 18:02:07.88 ID:/aknw9nT.net
- スレチ
- 866 :デフォルトの名無しさん:2015/10/23(金) 12:53:16.53 ID:pBHgjBfA.net
- ちょっと前にphpの無名関数の話が出てたけど
useで持ってこれる親の変数はあくまで無名関数が定義されたときの変数の中身で
そんで親の変数に対しての参照を持ってるわけじゃないから
例えば $counter=0; $func = function()use($counter){ ... ++$counter; ... }; とかしても
func();で呼ばれたときに$counterはfunc()内では常に0で始まり、
親側の$counterもfunc()によって増減しないしfunc()定義後に親の$counterが動いてもfunc()内では常に0で始まる
親の変数を持ってくるだけならいいけど、親と共有したいなら静的変数やグローバルを使うかcallbackと無名関数を使わないでwhileで直接まわしたりする
こういう挙動は、こういうものなの?、それともphpのコンパイラの都合?
- 867 :デフォルトの名無しさん:2015/10/23(金) 14:26:29.65 ID:9JJo3sM8.net
- >>866
$func = function() use(&$counter) {}
- 868 :デフォルトの名無しさん:2015/10/23(金) 15:25:14.49 ID:pBHgjBfA.net
- >>867
悪い参照渡し頭からすっぽ抜けてた
- 869 :デフォルトの名無しさん:2015/10/27(火) 18:08:57.59 ID:kr0AuHv9.net
- どうでもいいけどシコった後って眠くなるよな
俺?今まさにその状態
- 870 :デフォルトの名無しさん:2015/10/27(火) 23:44:48.24 ID:B8WGR4ja.net
- $dt = new DateTime();
var_dump($dt);
これ
class DateTime#2 (3) {
public $date =>
string(26) "2015-10-27 23:42:06.000000"
public $timezone_type =>
int(3)
public $timezone =>
string(10) "Asia/Tokyo"
}
って表示されますが
このdate,timezone_type,timezoneの値はどうやって取得するんですか?
$dt->dateだとエラーになりました
- 871 :デフォルトの名無しさん:2015/10/27(火) 23:51:35.09 ID:lR1b6/iE.net
- 【OS名】CentOS
【PHPのバージョン】5.5
【連携ソフトウェア】なし
【質問内容】
__get()や__set() はどうして遅いの?
- 872 :デフォルトの名無しさん:2015/10/27(火) 23:58:28.62 ID:jZAx/6LC.net
- >>870
getTimezoneメソッドやgetTimestamp, formatメソッド
- 873 :デフォルトの名無しさん:2015/10/28(水) 00:00:10.40 ID:EtBJvyZs.net
- >>871
ドライブがSSD
もしくはリードオンリー
ライブラリのオモフク
require多発
DNS周りの設定の時もある
いろいろあるで
まず切り分けせなあかんな
- 874 :デフォルトの名無しさん:2015/10/28(水) 00:39:29.83 ID:i3wzfLRw.net
- >>870
echo $dt->date;
自分の環境ではこれで普通に表示されたよ。
何か別のエラーじゃないの?つーかそのエラーを書くべき。
まあformatメソッドを使うべきだけど。
$dt = new DateTime();
var_dump($dt);
echo '<br><br>';
echo $dt->date;
- 875 :デフォルトの名無しさん:2015/10/28(水) 00:44:20.20 ID:i3wzfLRw.net
- class DateTime#2 (3) {
ってなってるからこれならどう?
echo $dt::date;
- 876 :デフォルトの名無しさん:2015/10/28(水) 02:11:40.12 ID:Gr82QenC.net
- >>870
iniファイルちゃいますの
- 877 :デフォルトの名無しさん:2015/10/28(水) 02:15:59.71 ID:tfmfu5HE.net
- あれ
$dt = new DateTime();
var_dump($dt);
echo $dt->date;
ってやるとエラーがでませんでした
しかし
$dt = new DateTime();
echo $dt->date;
だとPHP Notice: Undefined property: DateTime::$date
getTimezoneメソッドやgetTimestamp, formatでも取得できますが
phpの仕様としてはpublicな変数に->でアクセスできるはずなので
- 878 :デフォルトの名無しさん:2015/10/28(水) 02:16:57.61 ID:tfmfu5HE.net
- PHP 5.6.8
- 879 :デフォルトの名無しさん:2015/10/28(水) 03:03:50.24 ID:Li6zvEko.net
- >>870
http://codepad.org/wjxI4fDr
- 880 :デフォルトの名無しさん:2015/10/28(水) 04:21:08.56 ID:cCNG5eR4.net
- >>877
DateTimeはプロパティを列挙するタイミングでそれらのプロパティをセットする
かと言って読み書きする事を前提にした実装にはなっていない
互換性のためか何か理由があるんだろうけど
ぶっちゃけ不具合みたいなものだから使ってはいけない
- 881 :デフォルトの名無しさん:2015/10/28(水) 09:26:04.92 ID:fdp+6Zs/.net
- >>877
マニュアルに書いてないものは存在しないものとみなすべき
- 882 :デフォルトの名無しさん:2015/10/28(水) 11:45:24.49 ID:KIgU+Tc4.net
- POSTされたデータを$_POSTや$_REQUESTじゃなくて生のまま受け取る方法ってある?
GETはわかる$_SERVER["QUERY_STRING"]がある
- 883 :デフォルトの名無しさん:2015/10/28(水) 11:56:41.36 ID:KIgU+Tc4.net
- 悪いphp://input使えばいいだけだった
すまんこ
しかしphpのmultipleなselectの扱いは意味がわからん
- 884 :デフォルトの名無しさん:2015/10/28(水) 12:57:25.30 ID:WdTv92Vj.net
- んんんんっwwwwwwwwww
んんwwwwwwwwwwwwwwwwwwwwwww
んんんんんんんんんっwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
- 885 :デフォルトの名無しさん:2015/10/28(水) 20:35:52.72 ID:obxDMXos.net
- usernamekana1を半角カナオンリーにしたいので
↓のようにやっていますが
$usernamekana1=str_replace(array(" ", " ",'.','-',"\t","\r\n","\r",
"\n",'<','>'), "", $firstname_kana);
//↑半角カナ以外
$usernamekana1=mb_convert_kana($usernamekana1,hks);//なので
我ながら不恰好ですので良い表現方法ありませんでしょうか?
ご教授頂けますようよろしくお願いしますm(_ _)m
- 886 :デフォルトの名無しさん:2015/10/28(水) 21:24:10.99 ID:KIgU+Tc4.net
- >>885
文字コードと$usernamekana1に入りうる文字によるが
preg_*で文字コードから正規表現で範囲指定して全角かな全角半角カナだけ取ってきて処理する手法がある
どっちが早いかは状況次第
- 887 :デフォルトの名無しさん:2015/10/29(木) 20:34:13.57 ID:b5qdY+6i.net
- ($time=time()).','.date('Y/m/d H:i:s', $time)
とか
$pos = 0;
while( ($pos=strpos($string, $needle, $pos+1)) !== false ){ ... }
みたいな評価順序を利用した書き方って使わないほうがいい?
可読性とコーディング規約が許すなら別に問題ない?
- 888 :デフォルトの名無しさん:2015/10/29(木) 21:35:18.33 ID:bUytiJ2C.net
- その条件なら問題ないよ
- 889 :デフォルトの名無しさん:2015/10/29(木) 21:45:42.46 ID:GhGzx96S.net
- >>889
直観的でないな。読みづらい。
- 890 :デフォルトの名無しさん:2015/10/29(木) 21:56:39.13 ID:mJa4MfsR.net
- >>889
自虐かよ
- 891 :880:2015/10/29(木) 22:10:07.61 ID:wwuM8Qzg.net
- >881さん
コメントありがとうございます。
すいません。
ググったのですがサンプルが見つからないので
半角カナ以外すべて$usernamekana1から消す方法は
$usernamekana1=mb_convert_kana($usernamekana1,hks);
↓みたいな関数があれば良いのですけど……
$usernamekana1=mb_convert_kigou_dell($usernamekana1);
遅くても良いので良い方法をご助力頂けないでしょうか?
- 892 :デフォルトの名無しさん:2015/10/29(木) 22:40:27.23 ID:bUytiJ2C.net
- >>891
ぐぐったけどサンプルが見つからないっていうのが、
>>886の方法をやらなかった理由?
- 893 :デフォルトの名無しさん:2015/10/29(木) 23:53:04.60 ID:ZblI1NQd.net
- >>891
記号を削除するんじゃなくて、半角カナになる文字だけ取り出す操作の方がいい。
- 894 :デフォルトの名無しさん:2015/10/29(木) 23:54:40.39 ID:zirA75NK.net
- >>887
前者はコードゴルフが目的でなければ止めた方が良い
whileの書き方は定石なので問題ない
- 895 :デフォルトの名無しさん:2015/10/30(金) 00:00:30.08 ID:A2BJ2A1c.net
- >>893
対象だけ取り出すって面倒じゃない?preg_replaceで対象以外取り除けば1回で済むけど
- 896 :デフォルトの名無しさん:2015/10/30(金) 12:34:45.32 ID:+QhXPTHH.net
- function mb_convert_kigou_dell($usernamekana1) {
mb_regex_encoding('UTF-8');
mb_internal_encoding('UTF-8');
$str = mb_convert_kana($usernamekana1, 'hks');
$str = preg_replace('/[^ヲ-゚]/u', '', $str);
return $str;
}
- 897 :デフォルトの名無しさん:2015/10/30(金) 12:38:57.11 ID:AKFcUkih.net
- 変な関数名つけてくると思ったらやっぱ英語怪しい人かよ
- 898 :デフォルトの名無しさん:2015/10/30(金) 13:00:11.17 ID:+QhXPTHH.net
- >>897
ごめんなさい。
お手本のコードをぜひ見せてください。
- 899 :デフォルトの名無しさん:2015/10/30(金) 15:22:31.89 ID:sATRB+gZ.net
- PDOのプレースホルダで、bindParamの値に(int)0で渡すと空白で置き換えてくれちゃうんですけど、回避方法ありますか?
$value = 0;
bindParam(':name', $value, PARAM_INT);
こんな感じです
- 900 :デフォルトの名無しさん:2015/10/30(金) 15:46:55.75 ID:RESFqDek.net
- kigou_dell
んんん???
- 901 :デフォルトの名無しさん:2015/10/30(金) 17:11:04.74 ID:SCV1iGnU.net
- >>899
PDO::PARAM_INTでないのか
- 902 :デフォルトの名無しさん:2015/10/30(金) 17:18:48.85 ID:sATRB+gZ.net
- >>901
すみません
投稿時の書き間違えです
PDO::PARAM_INT
でやってもint型の0が無視されるんです
ちなみにstring型の'0'ならちゃんと変換されます
- 903 :デフォルトの名無しさん:2015/10/30(金) 17:34:24.60 ID:qHOKDsW1.net
- DB側の型がintならデフォルトを0にすっぺ
- 904 :デフォルトの名無しさん:2015/10/30(金) 17:51:06.32 ID:5biB/KHY.net
- >>898
横からスマンがdellって何の略?
- 905 :デフォルトの名無しさん:2015/10/30(金) 18:11:21.25 ID:A2BJ2A1c.net
- >>896
別解として入力バリデーションで既にUTF-8の全角カナ半角カナひらがなと半角記号しかないのが確定してるとかなら
$str = preg_replace('/[\x00-\x73]/', '', $str); などとすれば半角記号だけ除去ができて'/[^ヲ-゚]/u'よりちょっとはやい
ブラックリスト方式も早くて良いと思うんだけどだからまあ状況と要求次第
しかしUTF-8で半角カナは…データサイズの利点が無いから文字幅が狭くなる利点しかないんじゃないのか
- 906 :デフォルトの名無しさん:2015/10/30(金) 18:43:31.80 ID:A2BJ2A1c.net
- >>899
空白になってるのをどう確認したのかよくわかんないけど (int)($value) で引き渡せば
…ってのはおいといてPDO::bindParamじゃなくてPDO::bindValue使ってみたら?
- 907 :デフォルトの名無しさん:2015/10/30(金) 19:30:55.70 ID:j3BSCHnJ.net
- >>904
何だろうね? >>891 に聞いてみて。
↓みたいな関数があれば良いのですけど……
$usernamekana1=mb_convert_kigou_dell($usernamekana1);
- 908 :デフォルトの名無しさん:2015/10/31(土) 02:23:28.65 ID:DFwcARkZ.net
- PhpStormでCtrl+[がDeclarationになっているの外せないのかな?
Keymapで見ても、Command+BしかDeclarationには割り当てられていないんだけど。。
なぜか効いてしまいます。
- 909 :デフォルトの名無しさん:2015/10/31(土) 11:45:31.23 ID:aFSNNsaQ.net
- 【OS名】windows8.1
【PHPのバージョン】5.3.5
【連携ソフトウェア】MySQL
【質問内容】
初心者です。やりたことはチャットに画像アップ機能をつけたくて、画像はmySQLに保存します。
教えていただきたいことはいくつかあるのですが、長くなるので一つずつお願いします。
画像の保存は出来たのですが、表示されません。
が、そもそもほんとに正しく保存されてるのか?が謎なのですが、
テーブル内のフィールドは、
up mediumblob //画像用
ext varchar(5) //拡張子用
で、 upに [BLOB - 3.2KiB]
extに jpg
と書き込まれています。これは正常に保存されているということで良いのでしょうか?
よろしくお願いします。
- 910 :デフォルトの名無しさん:2015/10/31(土) 12:17:55.14 ID:t/jaIjM4.net
- どっちみち取り出さないといけないんでしょ?
取り出してみればわかることを聞くんじゃありません
- 911 :デフォルトの名無しさん:2015/10/31(土) 12:43:10.98 ID:aFSNNsaQ.net
- >>910 さん、 >>909です。
お返事ありがとうございます。 す、すみません!!表示出来ないのはもしかして、 読み込み側のコードではなく、そもそも書き込みが正しく出来てなかったからとか? と思ったものですから。
それでは読み込みのコードでおかしいところがあったら教えてください。
display.php
<?php
if (isset($_GET["id"])) { $id = $_GET["id"]; }
//データベース接続
// up-typeテーブル
$up_type = array( 'jpg' => 'image/jpeg', 'jpeg' => 'image/jpeg', 'png' => 'image/png', 'gif' => 'image/gif');
$sql = sprintf(" SELECT up,ext FROM chat_tbl WHERE id=:id ORDER BY datetime DESC ");
$str = $dbh->prepare($sql);
$str->bindParam(':id', $id);
$str->execute();
if($str)
{
while($result = $str->fetch(PDO::FETCH_ASSOC)){ header('Content-type:'. $up_type[$result->ext]);
echo $result['up'];
} }
?>
エラーメッセージ等は後からでもいいかと思って入れてません。あと、ここに一度書き込みしたのですが、改行が多すぎるてエラーが出たのでデータベース接続は省いてあとも詰めて書いてます。読みにくかったらすみません。
よろしくお願いいたします。
- 912 :デフォルトの名無しさん:2015/10/31(土) 13:01:23.77 ID:6kMgLpUU.net
- 改行が多すぎるエラーなんかはじめてきいたな
- 913 :デフォルトの名無しさん:2015/10/31(土) 13:04:25.92 ID:eolGIlKB.net
- PHPじゃなく、2chの表示だろ
- 914 :デフォルトの名無しさん:2015/10/31(土) 13:55:27.24 ID:iQz1e3kF.net
- >>911
もしかしてだけど、imgタグのsrcにechoしないとイケないんじゃないの
- 915 :デフォルトの名無しさん:2015/10/31(土) 15:14:45.88 ID:OlIi4vyD.net
- ワードプレス専用スレってありませんか?
またないとしたらどこで質問するのがベストですか?
- 916 :デフォルトの名無しさん:2015/10/31(土) 15:25:07.69 ID:cNb0xpTQ.net
- >>909(>>911)です。
書き方がわかりにくくてすみません、>>913さんが書いてくださってるように、2chでのエラー表示えdす。
>>914さん、コメントありがとうございます。
最終的に表示するのは、chat.phpで、
$str= $dbh->query('select * from chat_tbl order by dateTime desc');
if($str){
while($result = $str->fetch(PDO::FETCH_ASSOC)){
echo "{$result['handle']}>\n {$result['message']}:\n {$result['dateTime']}<br>\n";
$up = $result['up'];
if(!$up == "") {
echo "<img src = 'display.php'>\n";
} else{
echo "\n";
}
echo "<hr>\n";
} }
このようにしてますがこれでおかしいところがあったら教えてください。
ページを分けているのは、いろいろ調べたら、 header('Content-type:' がtextとimageと同じページ内に書いてはいけないので、画像用は別に書いてリンクさせるのが良い みたいにあったので、このようにしてみました。
で、これをブラウザで出力すると、画像アップした行には、画像であることを示すアイコンみたいなのが表示されてて、画像そのものは読み取れていません。
display.phpのページをURLをアドレスに入力して表示させると真っ白で何もありません。エラーメッセージ等も出てません。
よろしくお願いいたします。
- 917 :デフォルトの名無しさん:2015/10/31(土) 15:25:46.12 ID:eolGIlKB.net
- WordPress(ワードプレス)でWebProg 質疑応答スレ 01
http://kanae.2ch.net/test/read.cgi/php/1324538866/
こういうスレがあるけど、住民がいるかどうかは分からない
- 918 :デフォルトの名無しさん:2015/10/31(土) 15:33:20.79 ID:eolGIlKB.net
- >>916
>表示させると真っ白で何もありません。
この状態でソースを見るとどうなってるのかな?
ブラウザの機能で「ソースをみる」ってあるでしょ。
IEなら、メニューの「表示」「ソース」
FFなら、右クリック「ページのソース」
- 919 :デフォルトの名無しさん:2015/10/31(土) 16:02:36.82 ID:WDNhA6EE.net
- >>916
とりあえずdisplay.phpで,
while($result = $str->fetch(PDO::FETCH_ASSOC)){ header('Content-type:'. $up_type[$result->ext]);
echo $result['up'];
}
としている部分が理解不能。
画像ファイルのヘッダとか見たことあればレスポンス1件につき1つの画像ファイルしか返せんことは分かると思うが。
あとファイル末尾の ?> はバイナリを吐くときにゴミをつける可能性があるから無くすべき
- 920 :デフォルトの名無しさん:2015/10/31(土) 16:13:55.98 ID:cNb0xpTQ.net
- >>916です。
>>918さん、お返事ありがとうございます!
ソースの方も真っ白というか、行番号を示す1というのが表示されているのみです。
>>919さん。
具体的に書いてくださりありがとうございます!
すみません、画像ファイルのヘッダて見たことないです。1件しか表示できないんですか?では、アップしてるものをすべて表示するのって、どうすれば・・・ 何かヒントなどありましたら教えていただけるとありがたいです
- 921 :デフォルトの名無しさん:2015/10/31(土) 16:24:03.07 ID:x63vysfN.net
- 抽出されたのが0件なんじゃないの。
- 922 :デフォルトの名無しさん:2015/10/31(土) 16:33:53.45 ID:OlIi4vyD.net
- >>917
おーありがとうございます
- 923 :デフォルトの名無しさん:2015/10/31(土) 16:35:12.64 ID:WDNhA6EE.net
- >>920
display.phpにGETでもPATH_INFOでもなんでもいいが, 画像をidentifyするようなパラメータを付けて呼べばいい。
display.phpではidentifyされた画像ひとつだけを返せばよい
<img src="display.php?image_id=5">
- 924 :デフォルトの名無しさん:2015/10/31(土) 16:39:19.32 ID:x63vysfN.net
- if (isset($_GET["id"])) { $id = $_GET["id"]; }
こう書いてるんだから image_id じゃなく id にしてあげなよ。
- 925 :デフォルトの名無しさん:2015/10/31(土) 16:46:46.10 ID:WDNhA6EE.net
- データベース構造が分からんからidがユニークなのか分からんのだよなー, ユニークじゃない前提のコードが書かれてるし
- 926 :デフォルトの名無しさん:2015/10/31(土) 16:53:29.37 ID:79rh8PzW.net
- PHP書いてるとHTML/CSS/JSの絡みに困るんですけど模範的な設計とかデザインとかありますか?
- 927 :デフォルトの名無しさん:2015/10/31(土) 17:03:45.87 ID:eolGIlKB.net
- >>920
>>911のところ
while($result = $str->fetch(PDO::FETCH_ASSOC)){ header('Content-type:'. $up_type[$result->ext]);
$result->ext を $result['ext'] に直してみて
- 928 :デフォルトの名無しさん:2015/10/31(土) 17:10:16.16 ID:x63vysfN.net
- >>925
ユニークじゃなければエラーになるんだからユニーク前提のコードとも取れる
- 929 :デフォルトの名無しさん:2015/10/31(土) 17:15:32.59 ID:mOngkuFS.net
- >>920です。
お答えくださったみなさん、ほんとにどうもありがとうございます!
今は携帯からで、パソコンはまた明日のお昼間じゃないと使えないので、明日になったら書いていただいたことを試してみます!
それと、idがユニークかどうかについてですが、よくわかってないので勘違いだったらすみませんが、unsigned(綴り違ったかも) にしてます。これも、ネットであちこち見て真似てやってて、実際は意味がわかってません。恐縮です。
- 930 :デフォルトの名無しさん:2015/10/31(土) 17:25:11.40 ID:x63vysfN.net
- >>929
つまるところ、一番の問題点は>>923が指摘しているように、display.phpにパラメータを渡せていないところだよ。
- 931 :デフォルトの名無しさん:2015/11/01(日) 02:58:07.77 ID:552PnYcn.net
- wpってこんな脆いのか
- 932 :デフォルトの名無しさん:2015/11/01(日) 13:59:01.46 ID:+r1Q/vRP.net
- >>929です。
みなさん、昨日はほんとにどうもありがとうございました。
ユニークについては私の勘違いでした。すみません。見てみたらプライマリーになってましたが(参考にさせてもらったところのをそのまま真似ました)ユニークの方が良いのでしょうか?
>>927さんがご指摘くださった部分変更しました。ありがとうございました。
で、>>923さん、>>924>>さん、>>930さんが書いてくださってることですが、
<img src="display.php?id=5"> に変えてみましたが、この5というのは何を表しているのでしょうか?
あと、display.phpの方には何か書き加えないといけないのでしょうか?
わかっていなくてすみません。
よろしくお願いいたします。
- 933 :デフォルトの名無しさん:2015/11/01(日) 14:01:17.00 ID:csWYRkSJ.net
- ここはお前専用サポート掲示板
- 934 :デフォルトの名無しさん:2015/11/01(日) 15:19:06.71 ID:gG04aPZk.net
- 自分で適当なphp作って内容を
<?php
var_dump($_GET);
var_dump($_POST);
とかにして
ブラウザのURL欄やformやaタグからそれ指定して
いろいろパラメタ付けて、試してみたらどうよ
あまりにも初歩過ぎて回答するだけで文句言われそうなレベル
- 935 :デフォルトの名無しさん:2015/11/01(日) 15:23:51.34 ID:SDYYiCdp.net
- ここは、「下らねぇ質問」を受け付けるスレだから
- 936 :デフォルトの名無しさん:2015/11/01(日) 16:03:21.95 ID:HuBu2yBp.net
- >>932です。
質問がくだらなすぎてほんとに申し訳ありませんでした。
書いていただいたことを調べながらやってみます。
みなさんほんとにどうもありがとうございました。
- 937 :デフォルトの名無しさん:2015/11/01(日) 16:08:27.01 ID:SDYYiCdp.net
- >>936
気にしなくていいよ。がんばれ。分からないことが出てきたらまたおいで
- 938 :デフォルトの名無しさん:2015/11/01(日) 17:06:51.44 ID:yUX6gb++.net
- まぁ下らねぇ質問はしてよいけどID:SDYYiCdpが実践している通り答えてやる必要はないわけだ
- 939 :デフォルトの名無しさん:2015/11/01(日) 21:41:39.74 ID:+B1USwRt.net
- 質問するのもいいが、評価の高い初心者向けの入門書を数冊読めばいいと思うよ
- 940 :デフォルトの名無しさん:2015/11/01(日) 22:40:11.29 ID:5JJhe8Sb.net
- 下らねぇ質問で恐縮ですが
評価の高い初心者向けの入門者を数冊教えてください
- 941 :デフォルトの名無しさん:2015/11/02(月) 01:22:25.23 ID:xRbtggrb.net
- 市販の入門書はあてにしないのがこのスレのスタイル
良書とよばれたものはPHP4世代のもので古すぎる
PHP習熟者が増えた今現在
初心者向けの良書とよばれるものはおそらくでないだろうな
といっといてなんだが困ったときにはオライリーでおk
- 942 :デフォルトの名無しさん:2015/11/02(月) 01:25:14.89 ID:NvAhCpQZ.net
- php.net読みまくっとけばいいさ
- 943 :デフォルトの名無しさん:2015/11/02(月) 14:20:29.27 ID:jL3WrFnr.net
- >>932 は質問する前にちょっと勉強したほうがいいな・・・
多分入門書程度のレベルでも1冊読めばその程度のことは書いてあると思う・・・
- 944 :デフォルトの名無しさん:2015/11/04(水) 13:54:42.39 ID:MLcKFTKO.net
- 2chの公務員板に書き込みした時、確認画面とか書き込み後に変なコードが出たんだけど大丈夫
- 945 :デフォルトの名無しさん:2015/11/04(水) 14:09:11.79 ID:MLcKFTKO.net
- 不安。
- 946 :デフォルトの名無しさん:2015/11/04(水) 14:12:18.54 ID:QKGer34/.net
- 変なコードでわかると思う?つうか2chはPerlじゃないのか
- 947 :デフォルトの名無しさん:2015/11/04(水) 14:33:14.41 ID:MLcKFTKO.net
- そうか。
calledとか出てた。
さっき書き込んだ時も罠を仕掛けたとかゲームっぽい広告のテロップが出たんだけど。
対策お願いいたします。
iPhoneで書き込みました。
- 948 :デフォルトの名無しさん:2015/11/04(水) 16:12:09.01 ID:+We5XBc9.net
- >>947
>>1
- 949 :デフォルトの名無しさん:2015/11/05(木) 04:05:37.04 ID:kMVTOBKu.net
- >>946
保守、運営を担当してた海外のプログラマらの手によって、
haskellで書き直されたんじゃなかった?
- 950 :デフォルトの名無しさん:2015/11/05(木) 04:11:36.82 ID:TC0aybFH.net
- haskellで書き直したのはread.cgi(read.so)じゃなかったか
書き込みに使われるのはbbs.cgi、bbs.cgiは現状はCだったようなPerlだったような
どっちにしてもphpじゃないとは思うが
- 951 :デフォルトの名無しさん:2015/11/05(木) 15:18:44.52 ID:l9p4qEU8.net
- PHPとは少し関係ない質問かもしれませんが、何処で質問したら良いのか分からず・・・
フォームを作成しmb文字や改行コードを受け付ける時 文字コードや改行コードといった文字コードは何によって決定されるのでしょうか
WindowsやMac、Android等で入力されてきたデータは全て確認し、変換して格納する必要があるのでしょうか
(´・ω・`)変な質問してたらごめんね
- 952 :デフォルトの名無しさん:2015/11/05(木) 15:27:31.67 ID:Xj8bJ8Es.net
- >>951
改行コードはクライアント側が設定します。
- 953 :デフォルトの名無しさん:2015/11/05(木) 20:49:51.33 ID:9YM3Wel+.net
- >>951
>WindowsやMac、Android等で入力されてきたデータは全て確認し、変換して格納する必要があるのでしょうか
文字化け対策として、各ファイルの文字コードを統一しておけば、確認や変換は不要。
最近は、UTF-8で統一しておくのが主流だね。
もっとも、セキュリティの観点で、入力されたデータの文字コードが
不正でないかのチェックはしたほうがいい。
- 954 :デフォルトの名無しさん:2015/11/05(木) 21:21:03.29 ID:TC0aybFH.net
- >文字化け対策として、各ファイルの文字コードを統一しておけば、確認や変換は不要。
えっ
- 955 :デフォルトの名無しさん:2015/11/09(月) 14:53:03.17 ID:J2sa9vnc.net
- 〜(波ダッシュ)ShiftJis↔UTF間の変換、直してくれないかな
- 956 :デフォルトの名無しさん:2015/11/09(月) 15:10:24.40 ID:Bvj183hS.net
- >>955
あれは Windows のが間違ってる
でもそれより Mac の濁点文字をなんとかしてほしい
- 957 :デフォルトの名無しさん:2015/11/09(月) 15:44:17.40 ID:E71YiunB.net
- 濁点文字ってNFDのこと?
- 958 :デフォルトの名無しさん:2015/11/12(木) 20:40:45.13 ID:pgvdnRZv.net
- PHPのvar_dump()を他言語でも使えるように作ろうかと思うだけど、
var_dumpの内部構造どっかで見られない?
最近PHPやってなかったらどこ見ればいいか分かんなくなってしまった
- 959 :デフォルトの名無しさん:2015/11/12(木) 23:14:53.44 ID:6DBAG3QU.net
- 三項演算子をこんな感じでネストさせて使おうと思って
return ( $v === 0 ) ? 'hoge' :
( $v === 1 ) ? 'fuga' :
( $v === 2 ) ? 'foo' : 'default' ;
とりあえずテストしてみたらなんかおかしい、php.netみたらphpではこういう書き方できないのだと知った、今日この頃
おとなしくif分岐使いますわ…
- 960 :デフォルトの名無しさん:2015/11/12(木) 23:29:03.51 ID:NEuWYquR.net
- 可読性が落ちるから、どの言語でも三項演算子のネストはご法度。
- 961 :デフォルトの名無しさん:2015/11/12(木) 23:32:38.68 ID:5T+ZDMx8.net
- >>959
カッコ使えばできるけど、それはお望みじゃないんだよね
- 962 :デフォルトの名無しさん:2015/11/12(木) 23:35:46.92 ID:6DBAG3QU.net
- >>961
うん
書くのが楽で、書き方に気をつければ見た目わかりやすいのが利点だから
それとももしや後ろに行くほどカッコが増えたりしない書き方できたりする?
- 963 :デフォルトの名無しさん:2015/11/12(木) 23:41:21.52 ID:5T+ZDMx8.net
- >>962
いや、カッコが増えていく
でも if を列挙するのもなんだかなって感じだよね
なんで PHP はこれを左結合にしたんだろうね
- 964 :デフォルトの名無しさん:2015/11/12(木) 23:42:35.18 ID:L6COn33V.net
- >>960
少なくともCやJavaScriptの仕様なら>>959は見た目すぐ分かるだろ。一般的に禁止もされてないと思うが。
PHPだけ?がへんてこな仕様な訳で。
GoogleのC++/JavaScriptのコーディング規約なら公開されているが、三項演算子についての言及はない。
http://www.textdrop.net/google-styleguide-ja/cppguide.xml#%E6%9D%A1%E4%BB%B6%E6%96%87
http://cou929.nu/data/google_javascript_style_guide/
- 965 :デフォルトの名無しさん:2015/11/13(金) 01:04:13.38 ID:aSxPYOOa.net
- >>959
switch使え
- 966 :デフォルトの名無しさん:2015/11/13(金) 01:20:05.09 ID:WtbCnw9P.net
- 厳密な比較をしてくれるswitchがあったら問題なかった
switch( true )を使うやつは冷凍豆腐に頭ぶつければいいと思う
phpの三項演算子が左結合なのは、ただ初期の設計ミスを見落としただけらしい
変えること自体はラクにできるけども、既存のソースとの兼ね合いで変えるに変えられないとか
- 967 :デフォルトの名無しさん:2015/11/13(金) 01:26:59.02 ID:99szWd6E.net
- >>966
気になって調べたらそうだったっぽいね。
しかしこの左結合を有効利用してるコードなんてあるんだろうか。
せめてコンフィギュレーションできるようにすりゃいいのに。
あるいは文末に来る閉じカッコを省略できるようにしてもいいかも。
そうすりゃこんな書き方で対応できる。
return ( $v === 0 ) ? 'hoge' :
( ( $v === 1 ) ? 'fuga' :
( ( $v === 2 ) ? 'foo' : 'default' ;
閉じカッコ省略はカシオのポケコンで取り入れられてたけど、結構便利なんだよなぁ
- 968 :デフォルトの名無しさん:2015/11/13(金) 01:34:14.91 ID:Zno4BFZq.net
- ギエピー!!PHP初心者が学べるサイトやツールなど教えてくれピー!!
- 969 :デフォルトの名無しさん:2015/11/13(金) 11:22:00.31 ID:q2jJ+eFR.net
- >>966
switch(true)が害悪な理由がわからんヘタクソなんで
理由を教えて下さい。
- 970 :デフォルトの名無しさん:2015/11/13(金) 11:55:54.61 ID:iyo8Ja05.net
- >>969
ケースを羅列したいのに出来ないから生まれた苦肉の策だから
じゃないかな
- 971 :デフォルトの名無しさん:2015/11/13(金) 11:56:45.39 ID:iyo8Ja05.net
- 【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】なし
【質問内容】
ftp_nlist でエラーになった時に
エラーの詳細な情報を取得したいんだけど
どうしたらいいの?
- 972 :デフォルトの名無しさん:2015/11/13(金) 15:22:33.89 ID:Y891nyvQ.net
- 2chでサーバーエラー出たときにPHPの変なタグ出てきた事あったよ
そして行く末知らないけどひろゆきにソースコードの著作権があるのに
それをJimが勝手に使ってるからなんか色々
- 973 :デフォルトの名無しさん:2015/11/13(金) 17:32:16.20 ID:RUmdr/fe.net
- 三項演算子を "積み重ねて" 使用することは避けましょう。
ひとつの文の中で複数の三項演算子を使用した際の PHP の振る舞いは、少々わかりにくいものです。
http://php.net/manual/ja/language.operators.comparison.php#language.operators.comparison.ternary
公式マニュアルはこう言ってるね。
switchが緩い比較だとしても、事前に $v の型チェックをすればいいんじゃない。
- 974 :デフォルトの名無しさん:2015/11/13(金) 18:00:21.86 ID:99szWd6E.net
- >>973
それはあくまで “PHPでは” だよね。
他言語では true項も false項も対等だし可読性を保った書き方もできるから避ける必要など無い。
まあコンパイルするような言語では switch にしとくと最適化されやすいという考慮点はあるが。
- 975 :デフォルトの名無しさん:2015/11/13(金) 18:26:40.67 ID:a7TZTyJc.net
- PHPの三項演算子-disは超既出です
- 976 :デフォルトの名無しさん:2015/11/13(金) 18:38:00.24 ID:iyo8Ja05.net
- >>974
多言語でも参考演算子は積むなって言われるやろ
お前が天才だから、ではなく、演算子の優先順位が云々、でもなく
読めない・読まないアホが読める形にするために、だよ
- 977 :デフォルトの名無しさん:2015/11/13(金) 18:38:27.02 ID:MH+cSPko.net
- 〜を~に変換するプログラムで7Eに変換したはずなのに 全角のままだった
(´・ω・`) 全角の〜(チルダや波線)を一括で~に変換するプログラムってどうやったらいいんでしょうか
- 978 :デフォルトの名無しさん:2015/11/13(金) 19:26:12.67 ID:D5Uq6av0.net
- >>976
php以外でどこで言われてる?
そういう規約があるなら貼ってみてよ。
- 979 :959:2015/11/13(金) 19:28:47.35 ID:YRkhsUKe.net
- >>976
> 多言語でも参考演算子は積むなって言われるやろ
いやだからそれは言われてないと俺は思うが。少なくともGoogleのC++/JavaScriptでは言及がない。
(PHPのは仕様が変だから禁止で妥当)
最近俺は>>959や>>967の方が見やすいと感じてるよ。
実際if文で書いたら、3つreturnが必要で、すべて読まなければならない。(3つreturnが書いてあるかどうかとかも)
三項演算子で書けば、最初にreturnが確定して、後は値だけになる。
俺は代入の時にもよく使っているが、それは左辺側が同一だと確定するから。
if文で書くと左辺が同じ変数かどうかを確認する必要がある。(タイポとかもあり得る)
if文だとなんでも書ける分、全部読む必要がある。
三項演算子だと最初に動作が確定、値についてはこれこれ、という書き方になる。
読む内容が減る分だけ楽になると思うが。
- 980 :デフォルトの名無しさん:2015/11/13(金) 19:33:19.19 ID:hvMZ1Ugb.net
- >>977
var_dump(mb_ereg_replace( '〜' , '~', '(^〜^)'));
>>973
> switchが緩い比較だとしても、事前に $v の型チェックをすればいいんじゃない。
実際その辺どうなんだろう?
とりあえず今 mt_rand() で取り出した数字を switchで3と比較して結果次第で別の文字を代入、三項演算子でも同様に、
というのを100,000回ほど交互に繰り返してみたら、三項演算子が 0.115sec、switchが 0.183secだった
$array[0]と$array['0']が全く同一だったりとか、php内部の変数の扱いは良くわからん
- 981 :デフォルトの名無しさん:2015/11/13(金) 19:38:25.02 ID:hvMZ1Ugb.net
- >>972
それ確か、サーバの500だかのエラー表示の中のApache Serverのシグニチャにphpが入ってたってやつ
要は当時2chのいずれかのサーバにmod_phpが入っていたというだけの話で、2chがphpで動いているかどうかは関係ない話
- 982 :デフォルトの名無しさん:2015/11/13(金) 19:53:06.21 ID:D5Uq6av0.net
- >>979
コーディング規約持ち出すと、return は関数末尾にひとつだけ、みたいなのに出くわしたことがある。
そういう体制では三項演算子を if で置き換えたら変数で受ける必要まで出てきて面倒だな。
なんにしてもコーディング規約に書いてあるならそうしなさいということんだけど、
php 以外で三項演算子について規定してるのって知らないな。
- 983 :デフォルトの名無しさん:2015/11/13(金) 20:22:08.01 ID:9Z3jJmN8.net
- 規約によって言語の機能を禁止する行為が愚かだという流れから禁止していないだけであって、
問題ない範囲で使えよという行間がある。
分かりやすくいうとgotoは禁止すべきじゃないし、トリプルポインタだって禁止すべきじゃない。
- 984 :デフォルトの名無しさん:2015/11/14(土) 08:24:41.88 ID:LUyUmkqN.net
- >>980のテストは時間取得して代入するコストを減算してなかった、比較が1回だけだった、switch( true )法とifが無かった
2回比較3分岐で、switch, switch( true ), ()つけた二重の三項演算子, if分岐(, 無処理)で50万回ループしたらこの結果
switch: 0.48583 sec switch( true ): 0.47236 sec cond: 0.14173 sec if: 0.13103 sec
結論 switch使えねえ
前処理で型をチェックする前提なら普通のswitchでも予想外のバグはある程度抑制できるけど
やると煩雑になるし別途コストかかるし、switch( true )はそのコストがかからない点と見た目以外変わらない
だったら最初からif使えって話、何より遅い
- 985 :デフォルトの名無しさん:2015/11/14(土) 10:42:48.66 ID:JEd33JqI.net
- 速度を重視するか可読性を重視するかにもよるんじゃない?
要件満たさないほど遅い場合にはボトルネックを見つけてから
そこを改善すればいいんだし。
- 986 :デフォルトの名無しさん:2015/11/14(土) 16:50:40.94 ID:p29z202R.net
- PHPで掲示板を作ろうと思ってるんだが、調べてみたらCGIってのが掲示板の主流みたいじゃないか
サーバー上で動作するプログラムで動的にHTMLを吐き出すって点ではどっちも同じみたいだけど、掲示板作成するならどっちつかった方がいいの?
- 987 :デフォルトの名無しさん:2015/11/14(土) 17:03:18.94 ID:+bixUoUA.net
- >>986
PHPにしとけば
それが完成したら他に手を出してみればいい
- 988 :デフォルトの名無しさん:2015/11/14(土) 17:06:16.05 ID:ASkZSMfE.net
- 掲示板って動的にHTMLはくような事してんの?随分面倒な処理してるんだな負荷軽減?になるのか
- 989 :デフォルトの名無しさん:2015/11/14(土) 17:21:46.99 ID:p29z202R.net
- >>987
サンクス
PHPのやつは一応ある程度まで出来たんだが、ネットでオープンソースのCGI掲示板配布してたからそれを導入してちょくちょく弄ってった方が近いのかなと。。
CGIってのがよくわからんのだけど、プログラム言語?のことなの?
- 990 :デフォルトの名無しさん:2015/11/14(土) 17:33:32.70 ID:uq7iZ3Y9.net
- >>986
俺は余り詳しいわけではないが、多分今時はPHPの方が主流だと思うぞ。
当たり前だがPHPのオープンソース掲示板も配布されている。
てかむしろ、「今時CGIかよ」って馬鹿にされていたと思ったが。
- 991 :デフォルトの名無しさん:2015/11/14(土) 17:44:46.58 ID:+bixUoUA.net
- >>989
CGI ってのは webサーバ下で動く実行ファイルのことだと思えばいい。
webサーバはクライアントからのリクエストを受け、実行ファイルを起動してその出力をクライアントに返す。
だから言語は問わず、perl で書いても C で書いてももちろん PHP を利用しても実行ファイルになってさえいればいい。
いわゆる PHP と言うと、CGI みたいにいちいちプロセスとして起動されるわけじゃなく、webサーバプロセスで PHP が実行される感じで、CGI とは違う形態になってる。
PHP はそれそのものがテンプレートエンジンみたいなもんだから webサーバとの協調に馴染む。
- 992 :デフォルトの名無しさん:2015/11/14(土) 17:48:53.64 ID:qxo7dVQH.net
- >>982
車載系はそんなもんだよ
MISRAはつらい
- 993 :デフォルトの名無しさん:2015/11/14(土) 17:56:10.64 ID:p29z202R.net
- >>990
やっぱそうなんだ。
CGIってあんまり聞いたことなかったからやっぱり…
1から作ったしょっぼいしょっぼい掲示板捨ててオープンソース探してみるわ…
- 994 :デフォルトの名無しさん:2015/11/14(土) 17:57:24.92 ID:p29z202R.net
- >>989
実行ファイルってことは、さっき書いた「HTMLを吐き出す」ってことの意味がPHPと全然違うんだね;
すまんかった。
それなら何も考えずにPHPつかった方がダイレクトでいいってことか。
- 995 :デフォルトの名無しさん:2015/11/14(土) 18:06:58.50 ID:+bixUoUA.net
- >>994
どっちも基本的に HTML(とは限らずクライアントへ返したいものなんでも)を吐き出す処理を書くものだからそう変わらないよ。
CGI は webサーバと統合されるもんじゃないからインタフェースが簡単で、昔から使えたというだけ。
- 996 :デフォルトの名無しさん:2015/11/14(土) 18:09:03.53 ID:bqWycdSK.net
- >>994
PHPだって実行ファイルに出来ますし・・・・・
別に言語としてPHPを使いつつCGIとして実行だって出来る
所謂PHPはサーバソフトにmod_phpというPHPを処理するモジュールを組み込んでおいて, サーバソフトがmod_phpを使ってPHPを実行する。
対してCGIではmod_cgiというモジュールを使って, サーバが別プロセスを立ち上げて実行可能ファイルを実行する。
- 997 :デフォルトの名無しさん:2015/11/14(土) 18:55:31.32 ID:p29z202R.net
- なるほどねー
ガルちゃんみたいなスレッド式掲示板ぐらいならPHPで良さそうだな。
- 998 :デフォルトの名無しさん:2015/11/14(土) 19:00:57.36 ID:AjDQR89s.net
- 次スレ
http://peace.2ch.net/test/read.cgi/tech/1447495088/
総レス数 998
267 KB
掲示板に戻る
全部
前100
次100
最新50
read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★