2ちゃんねる スマホ用 ■掲示板に戻る■ 全部 1- 最新50    

■ このスレッドは過去ログ倉庫に格納されています

【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.phphttp://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
だれか、このプログラム作ってください
よろしくおねがいします
以下の要件を満たすプログラムを作成せよ
&amp;#61656;課題名:引数・返り値に構造体を使った複素数計算関数
&amp;#61656;
&amp;#8226;要件
&amp;#8211;複素数の足し算を行うcomplex_sum関数と掛け算を行うcomplex_product関数を作成せよ
&amp;#8226;引数:複素数(その1),複素数(その2)の2つ
&amp;#8226;返り値:複素数(計算結果)
&amp;#8226;動作:複素数その1と複素数その2を足してその結果を返り値にする
&amp;#8211;このとき,計算は作成した関数で,出力はmain関数で行うこと
&amp;#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(
&nbsp;&nbsp;"id" => $id_hairetu,
&nbsp;&nbsp;"fruit" => "apple",
&nbsp;&nbsp;"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 ★