トップページtech
993コメント333KB

【PHP】下らねぇ質問はここに書き込みやがれ 2©5ch.io

レス数が950を超えています。1000を超えると書き込みができなくなります。
0001デフォルトの名無しさん 転載ダメ©2ch.net2015/07/09(木) 22:41:26.96ID:7gcchy0Q
PHPに関する下らない質問用避難スレです。
まず読むこと【PHPマニュアル】
http://www.php.net/manual/ja/
0002デフォルトの名無しさん2015/07/09(木) 22:44:03.40ID:7gcchy0Q
◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.5
【連携ソフトウェア】MySQL ImageMagick
【質問内容】

◆質問する時の注意
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。

◆質問後の注意
・ 解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)

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

【その他諸注意】
・ SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・ 次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
0003デフォルトの名無しさん2015/07/09(木) 22:52:09.65ID:WzYQ7/UQ
今このスレがダントツで勢い1番ある
これはPHPが死んでない証拠

かぜ…風を感じる
この風はやがで嵐になり世界を覆い尽くすだろう
0004デフォルトの名無しさん2015/07/10(金) 16:26:47.92ID:OIRLXo70
荒らしは呼ばないでくださいw
0005デフォルトの名無しさん2015/07/10(金) 20:22:05.28ID:+n//tbc7
PHPDocでさ、「この引数は未使用です」 ってのを明示したいんだけど
そういうのをしめすキーワード とかってあるの?
0006デフォルトの名無しさん2015/07/10(金) 20:31:11.94ID:I8IKrBJT
windowsのphp5.6です。
phpってphpファイルの中に沢山のfunctionを記述しておいて、クライアントサイドのJSから特定のfunctionを実行するっていう事は出来ますか?
今はやり方が分からないので、どんなに短いfunctionでもphpファイルに分けているので、数行のファイルが沢山出来て混乱してます。
これを一つのphpファイルに纏めたいんですが。
0007デフォルトの名無しさん2015/07/10(金) 21:36:55.80ID:3n0kQAul
今は
http://localhost/[function名].php
ってことだと思うけど、
http://localhost/test.php?func=[function名]
みたいな感じのアクセスでfunctionが実行できるようにまずは目指すといいよ。

/*****/
function aaa() {
print "aaa";
}

if ($_GET["func"]=="aaa"){
aaa();
}
/*****/

とか。
0008デフォルトの名無しさん2015/07/10(金) 22:42:24.51ID:I8IKrBJT
>>7
サンキュー、うまく行ったよ。
感謝するよ。
0009デフォルトの名無しさん2015/07/10(金) 23:42:29.67ID:AQ+t2M5U
>>6
>これを一つのphpファイルに纏めたいんですが。

関連する関数を特定のクラスにまとめてメソッド化する。
そうしてからそのオブジェクトのメソッドを呼び出せばいいと思う。
0010デフォルトの名無しさん2015/07/10(金) 23:48:25.35ID:I8IKrBJT
>>9
php初心者なんですが、関数をわざわざclass化するメリットが分かりません。
よく使う自分用のライブラリ関数なんですが、そういう場合でもclass化が良いのでしょうか?
0011デフォルトの名無しさん2015/07/11(土) 13:22:52.85ID:97s+/3Az
>>10
>よく使う自分用のライブラリ関数なんですが、そういう場合でもclass化が良いのでしょうか?
自分の好きにするといいよ。

関数が100個あって100ファイルにばらけてある場合と
関数が100個あって10個ずつ10ファイルにクラスとしてまとめてある場合と
どちらが使いやすいかのトレードオフになる。

クラスにするメリットは関数を整理できて、カプセル化、再利用性、多態性の活用などがよく挙げられる。
ただし、まとめるにしても関連のあるものを上手くまとめて凝集度をあげないとメリットにはならない。
0012デフォルトの名無しさん2015/07/13(月) 13:28:30.09ID:oX4poPnV
オブジェクト指向だし使った方がいいと思うけど
0013デフォルトの名無しさん2015/07/15(水) 00:53:43.66ID:8rWetXNK
フレームワーク使えば大抵はurlでメソッド指定する形じゃないかえ?
0014デフォルトの名無しさん2015/07/15(水) 11:59:32.47ID:chI1HCyx
クラス化するとき悩むのが
なにをメンバ変数で持ってどこからを引数で取るか
線引きがめんどくさい

構造に機能を持たせる
というOOの基本にたびたび戻らないと道に迷う
0015デフォルトの名無しさん2015/07/15(水) 18:44:26.33ID:chI1HCyx
ループしない1回だけのループ

ってどうやって書いてる?
とちゅうでbreakするためだけに使うループ
0016片山博文MZ ◆T6xkBnTXz7B0 2015/07/15(水) 18:53:14.79ID:OqXQaHQl
>>15
do {
...
} while (0);
0017デフォルトの名無しさん2015/07/15(水) 20:55:04.20ID:70iQnSqB
新たなるオライリー本か?
http://www.amazon.co.jp/dp/B00TN97BE2
0018デフォルトの名無しさん2015/07/15(水) 21:27:10.55ID:R8AN98c6
オブジェクトが実体として何で出来ているかをイメージしてから組まないと自分含め使いにくいものができないか?

例えばカレンダーなら本体は日付をインデックスにしたカレンダーデータの配列とポインタになるDateオブジェクトだろ

あとは成り行きというか使いやすいように追加してけばいいんじゃね
0019デフォルトの名無しさん2015/07/15(水) 23:17:08.37ID:gZn+GrQT
>>15
わざわざループにしなくてもifで良いだろ?
0020デフォルトの名無しさん2015/07/15(水) 23:30:47.77ID:chI1HCyx
>>19
たまには breakしましょ! って気分にもなる。


ところで、staticなプロパティには $this->hoge みたいなアクセスできないけど
これってどうしてこういう仕様になったん? $this ってつけるのがおこがましいから?
0021デフォルトの名無しさん2015/07/17(金) 18:23:52.01ID:+cEtQv4N
教えてほしいことがあります。

16文字の数字(10進数だが16進数と見立てて扱う)をTripleDESで暗号化したいのですが、
暗号化後の文字は同じ文字数にして16進数の文字列として出力したいのです。

PHPでの暗号化のロジックはここを参考にしました。
http://pentan.info/php/sample/mcrypt.html

しかしバイナリを文字列に変換する方法が分かりません。何かいい方法は無いですか?
0022デフォルトの名無しさん2015/07/17(金) 21:17:19.62ID:Es/joK9Z
>>21
pack使えばいいんじゃね?
0023デフォルトの名無しさん2015/07/17(金) 21:56:25.92ID:fqZ49WSE
メアドとパスワードが一致したらログインしてheaderでindexに飛ばすってのでエラってる
ログインボタン一回クリックで真っ白になって、更新するとセッション有りでindexに飛ぶんだけどこれ何事?
XAMPPのローカル環境つかってます
0024デフォルトの名無しさん2015/07/17(金) 22:28:49.31ID:X7JQ6nLK
Locateヘッダちゃんと出てる?
0025デフォルトの名無しさん2015/07/18(土) 00:35:44.93ID:nGHsy5jQ
>>23
日本語しゃべれないの
0026デフォルトの名無しさん2015/07/18(土) 13:11:37.92ID:IZxdPzJ7
aaa.php?
みたいな末尾の?って何を表すんですか?
例えば$ajaxのurl指定する場合など。
?なくても行けるんですが。何ですか?
0027デフォルトの名無しさん2015/07/18(土) 13:21:37.90ID:wSGt/trv
>>26
aaa.phpっていうファイルがあるか確認してる。あればtrueが返ってくる。
・・・というのは冗談でURL引数って奴。コマンドライン引数みたいな感じ。
0028デフォルトの名無しさん2015/07/18(土) 21:04:30.97ID:tiSbDOek
$a = 6 if($b==3);

みたいな書き方ってある?
0029デフォルトの名無しさん2015/07/18(土) 22:57:41.14ID:BcDQum9s
>>28 それはない。

これならある。
if($b==3) $a = 6;
0030デフォルトの名無しさん2015/07/18(土) 23:29:20.25ID:BcDQum9s
あと少し違うが3項演算子。

$a = ($b==3) ? 6 : 0;
0031デフォルトの名無しさん2015/07/18(土) 23:46:57.93ID:vbEi4sCx
>>20
その方法ではインスタンスからは静的定義は参照できない。
$this::hogeを使いなされ
0032デフォルトの名無しさん2015/07/19(日) 00:07:40.45ID:tXAPBBi/
$a = ($b==3) ?: 6;
これもいけるはず。
0033デフォルトの名無しさん2015/07/19(日) 02:23:02.42ID:c+wEV4Gg
【ワカヤマン】PHP技術者認定試験 Part2
http://hello.2ch.net/test/read.cgi/lic/1437239772/l50
0034デフォルトの名無しさん2015/07/19(日) 10:10:22.19ID:0klZrZWn
>>32
式 expr1 ?: expr3 の結果は、expr1 が TRUE と同等の場合は expr1、 それ以外の場合は expr3 となります。
http://php.net/manual/ja/language.operators.comparison.php#language.operators.comparison.ternary
0035デフォルトの名無しさん2015/07/19(日) 13:22:36.56ID:6ediHd5J
$a = isset($_GET['a']) ? $_GET['a'] : null;
とか書かないとエラー出る間抜けな仕様どうにかしてほしいわ
0036デフォルトの名無しさん2015/07/19(日) 15:13:16.72ID:RIeQhCDh
>>35
けっきょく、それはそういう関数を書いた。
GETとPOST両対応必要とかよくあるし。

まあPHPのことだし、文句言いまくってたら
そのうちそういう関数が標準に作られると思う。
0037デフォルトの名無しさん2015/07/19(日) 22:39:27.31ID:WiE9ew2Y
PHP7以降は??演算子で同じことが実現できるようになるかと
0038デフォルトの名無しさん2015/07/20(月) 00:23:03.73ID:jGk3X2/t
はーギブアップ。助けてくり。

レジ内のトランザクションファイルがBtrieveで管理されてるんです。そのファイルをlinuxにFTP後、phpで読むのにpervasiveからダウンロードしたodbcでコネクトしようとしてるんだが、どーにも上手くいかない。誰か経験した方おられますかー?
0039デフォルトの名無しさん2015/07/20(月) 00:41:49.48ID:KxSgKVVh
エラーの内容をここに記せば、助けてやらぬこともないが・・・
0040デフォルトの名無しさん2015/07/20(月) 01:03:24.81ID:jGk3X2/t
>>39
はうう。明日も早よから仕事でもう寝るでやんす。エラー内容は仕事の合間見てお披露目いたしやすん
0041デフォルトの名無しさん2015/07/22(水) 04:21:40.30ID:ekK874Uz
>>31
selfとはなんだったのか
0042デフォルトの名無しさん2015/07/22(水) 04:26:01.66ID:ekK874Uz
>>28
後置ifはphpには無い。英語が母語ならまだしも、日本人にとっては後置ifは自然じゃないし、無くてもよくない?

>>38
使ったこともやったことも無いけど、シンプルに転送モードを間違えているとかではないのかな。
0043デフォルトの名無しさん2015/07/22(水) 13:23:53.96ID:ASUhZOW+
>>42
$a = 6 if($b=="ikemen");

と書いたらとても自然になる。
0044デフォルトの名無しさん2015/07/22(水) 17:06:34.54ID:8TpaOP4G
vs2013でphpやっている人居ません?
ブレークポイント置いてもデバッガでブレークしない時が有るので困ってます。
0045デフォルトの名無しさん2015/07/23(木) 15:49:24.85ID:055pcEAQ
use の使い方がよくわからない
これってどこかが起点になるの?
0046デフォルトの名無しさん2015/07/24(金) 20:15:48.68ID:+CDH8aof
あの、こんな質問しても回答得られないかと思うんですが、
自作のPHPプログラムが
PHP5.3.3
で動かない関数か何かの機能があったので
PHP5.5.19
にしたら動いたのですが、それが何の関数あるいは機能だったのか忘れてしまいました。

確か、何か文字列を扱うような処理だったような気がするんですが。
もし何かご存じでしたら教えてください。
0047デフォルトの名無しさん2015/07/25(土) 00:16:52.68ID:d8tAw0yr
hex2bin
0048デフォルトの名無しさん2015/07/25(土) 00:22:57.00ID:d8tAw0yr
公式久々に見たが7のβリリースされたのか
誰か試した?
0049デフォルトの名無しさん2015/07/25(土) 00:30:00.61ID:bLirGUmg
>>47
レスありがとうございました。
hex2binではなかったのですが、47さんのレス見て、記憶が蘇り

string ucwords ( string $str [, string $delimiters = " \t\r\n\f\v" ] )

バージョン   説明
5.4.32, 5.5.16 delimiters パラメータが追加されました。

でした。助かりました。
このdelimiters を使ったんでした。
0050デフォルトの名無しさん2015/07/25(土) 17:38:12.49ID:UNRH9nX8
use って、「この下全部」の指定できない?
0051デフォルトの名無しさん2015/07/25(土) 18:39:15.22ID:9eb0cRTw
初心者がPHPを学んで、在宅ワークすることはできますか?クラウドワークスとか使って。
0052デフォルトの名無しさん2015/07/25(土) 22:17:10.90ID:UyNvGgTG
>>51
仕事ふっても損害賠償で追い込まれそう。
0053デフォルトの名無しさん2015/07/25(土) 23:49:31.94ID:58G5Vzfx
関数内のコードを文字列として取得したいのですが、知恵を貸してください。

<?php
$closure = function () {
  echo 'ああああ';
};
$function = new ReflectionFunction($closure);
$function->getStartLine(); // 2
$function->getEndLine(); // 4

↑の場合、始点が「2行目12文字目」で、終点が「4行目2文字目」という結果を得られることが理想です。
今のところ、その関数が宣言された行数は取得できますが、何文字目までは分かりません。

ちなみに、PHP5.4以降です。
0054デフォルトの名無しさん2015/07/25(土) 23:56:28.48ID:58G5Vzfx
>>53 の続き

行数だけでも取得できそうですが、↓の場合、行数だけではどちらが対象の関数か判断できません。

<?php
$a = function () { ... }; $b = function () { ... };
$function = new ReflectionFunction($b);
$function->getStartLine(); // 2
$function->getEndLine(); // 2
0055デフォルトの名無しさん2015/07/26(日) 01:19:35.53ID:h4z7MVDb
>>53
自分自身を読めばいいんじゃね?
0056デフォルトの名無しさん2015/07/26(日) 01:49:05.89ID:zHKRpE7w
>>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()のコードは長いので省きます。
0057デフォルトの名無しさん2015/07/26(日) 16:02:52.29ID:ZSlyWYZ/
>>51
出来るがやめたほうがいい。
毎日半日以上土日も使って取り組んで1ヶ月で5万円とかになるだろうから、
ニートでもコンビニで働いた方がいい。
0058デフォルトの名無しさん2015/07/27(月) 17:27:06.21ID:nDok85gM
php5.6のwindows版x64ビルドってexperimentalって表示されているけれど、webサーバーに入れるならx86版が無難なのか?
あえてx64版入れたらパフォーマンス上がったりするん?
0059デフォルトの名無しさん2015/08/01(土) 04:29:29.73ID:VbjGDeVR
今ならx64がおすすめ
0060デフォルトの名無しさん2015/08/01(土) 11:22:12.36ID:Idj4/r/L
PHP7には 変数名の大文字小文字を無視するオプションはある?
0061デフォルトの名無しさん2015/08/02(日) 10:41:08.23ID:6SU53Ow+
PHPで作成したプログラムを納品する時に暗号化して納品したいのですが無料で使えるものってありますか?
0062デフォルトの名無しさん2015/08/02(日) 13:39:57.36ID:5pxTtzkh
>>61
そのコードなら、そのまま納品しても大丈夫だと思うよ
0063デフォルトの名無しさん2015/08/02(日) 13:59:43.94ID:GbrSR7tz
それを心配しないといけない客の仕事をしたのが運の尽き
0064デフォルトの名無しさん2015/08/02(日) 14:57:32.96ID:K/J2HC0o
if(count($hoge) < 5)
  $foo = count($hoge);

こんなコード書くとcount()が2回実行されて無駄だから

$bar = count($hoge);
if($bar < 5)
  $foo = $bar;

みたいにしたほうがいいのかな?
0065デフォルトの名無しさん2015/08/02(日) 17:45:59.09ID:GbrSR7tz
2回程度なら別に。
ループ終了条件に入れるのは避けるといいよ
0066デフォルトの名無しさん2015/08/02(日) 20:01:49.28ID:sk4/2k9I
>>64
宗派による。
一つは、関数count()が2回実行されて無駄だよ派。
もう一つは、一時変数$barを無駄に使うな派。
0067デフォルトの名無しさん2015/08/02(日) 21:13:03.78ID:lE/E+5km
>>65>>66
サンクス!
一時変数を無駄に使うな派に入信しまぁす
0068デフォルトの名無しさん2015/08/03(月) 11:02:06.41ID:ecUSu7IP
配列で変数に文字列を代入する場合、
変数名は「ダブルコーテーション」で囲うと参考書には書かれてたのですが
サンプル(↓)にはシングルコーテーションで囲われてました。
シングルとダブルでどう使い方が違うのでしょうか?


$conf = array(

'test1' => "1234"
'test2 => "abcf"
);
0069デフォルトの名無しさん2015/08/03(月) 11:27:50.73ID:4ImaC/Mz
PHPの場合シングルのほうが変数展開が起きない分微々たるもんだが総じて早い
変数を入れたり改行コードなんかの制御入れたりしない場合はシングルのほうがいい
参考書なんてのは作者にあわせたコーディング規約で書かれてるので
その作者好みのコードであってそれが全てではないことは頭に入れておいたほうがいい
特に初心者向けだとシングルよりダブルのほうがトラブルが起きにくいっていう事情もある
"こんにちは{$name}さん\n";
'こんにちは' . $name . 'さん' . "\n";

変数展開ってのは↓のようなコード
$a = 'test1';
$conf = array(
"$a" => 1234
);
echo $conf['test1'];
0070デフォルトの名無しさん2015/08/03(月) 11:39:25.12ID:0IyVer1H
>>69
> "こんにちは{$name}さん\n";
これも変数展開ですよ
0071デフォルトの名無しさん2015/08/03(月) 11:41:05.12ID:4ImaC/Mz
>特に初心者向けだとシングルよりダブルのほうがトラブルが起きにくいっていう事情もある
これの説明で書いたけど書く場所が悪かったね
0072デフォルトの名無しさん2015/08/03(月) 12:13:37.23ID:93o/VQtA
>>68
「変数名」ではなく「連想配列のキー」をどう囲うかという質問じゃないの?
0073デフォルトの名無しさん2015/08/03(月) 15:57:04.96ID:nTSIXxVa
>>69
あれほとんど気のせいレベルらしいよ
どっかで速度測ってたけど、むしろ逆なくらい差が無かった
0074デフォルトの名無しさん2015/08/03(月) 19:06:22.14ID:kjCv49NU
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みたいで、自分に近い環境のようだけど、
ベンチマークに使ってる機材は別かもしれないし。
0075デフォルトの名無しさん2015/08/03(月) 19:07:47.81ID:kjCv49NU
>Linux 64bit 5.4.16で0.0042と0.00089
Linux 64bit 5.4.16で0.00042と0.00089に訂正
0076デフォルトの名無しさん2015/08/04(火) 01:35:51.66ID:XAt8t1hS
アクセラレータかなんか使ってんじゃね?試してないからなんともいえないけど
0077デフォルトの名無しさん2015/08/04(火) 10:52:31.94ID:3xU88wGi
PHP tools for VS
使っている人いる?
MS純正でこういうの無いの?
0078デフォルトの名無しさん2015/08/05(水) 02:41:24.63ID:2Cq1bTVi
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のように言われてしまいました。
0079782015/08/05(水) 02:46:10.16ID:2Cq1bTVi
すみません。投稿時の文字数の規制のためコードを省略していた際に誤って一緒に削ってしまいましたが、
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;
}
よろしくお願いいたします。
0080デフォルトの名無しさん2015/08/05(水) 03:32:13.43ID:P4ayKmpW
http://d.hatena.ne.jp/gunshot/20090904/p2
0081782015/08/06(木) 03:00:16.86ID:eVr6rnl0
>>80
ありがとうございます。なんとか解決できました!
0082デフォルトの名無しさん2015/08/07(金) 00:32:15.42ID:b6GYbe8Q
社内Lan上でWebサーバ立ち上げると、社外から見られることはあるんですか?
ただし、そういう設定にはしていない前提で御回答ください。
0083デフォルトの名無しさん2015/08/07(金) 00:46:40.61ID:kZ4TYkCP
>>82
あなたやネットワーク管理者が一般的にそういう設定にはしていないとしても、バカがいるとできる
0084デフォルトの名無しさん2015/08/07(金) 01:02:30.35ID:b6GYbe8Q
バカが何するとそうなるのでしょう?
あと、php5.5使ってます
0085デフォルトの名無しさん2015/08/07(金) 01:07:36.80ID:Tkx3sFxb
そういう設定にはしていない事が確実なら、アクセスされる事はないんだろう。
社外から見られる可能性はあるか?という質問なら、見られる可能性はあるんだろう。
0086デフォルトの名無しさん2015/08/07(金) 11:17:33.82ID:VjeH+b7c
>>84
PHPは関係ない。
0087デフォルトの名無しさん2015/08/07(金) 12:06:55.93ID:toqjv3cn
>>82
的確なネットワーク構成なら問題ない
ネットワーク管理者がうんこじゃなければ平気だろう
0088デフォルトの名無しさん2015/08/07(金) 17:20:27.74ID:eN4mur/X
>>82
例えそういう設定にしてなくとも可能性はある
例えば未知の脆弱性を突かれてネットワークに侵入されたり、ウイルスやトロイ等を仕込まれたり・・・例を挙げればキリが無い
0089デフォルトの名無しさん2015/08/07(金) 18:05:42.92ID:o4PrLinW
v6がない理由を50文字以内くらいで教えて
0090デフォルトの名無しさん2015/08/07(金) 18:17:20.61ID:VjeH+b7c
>>89
V8を讃えよ!
0091デフォルトの名無しさん2015/08/07(金) 18:28:40.67ID:oad5u1TR
>>89
V6はTOKIOに負けたから
0092デフォルトの名無しさん2015/08/08(土) 00:09:09.24ID:UAFhNLHx
すみません。ほんとに初心者で申し訳ないのですが教えてください。
以下のif文が実行されないのですが、どこが間違っているのでしょうか?

$text = "[ja]";
if( strpos($text, "\[:ja\]") ){
echo "match";
}

よろしくお願いいたします。
0093デフォルトの名無しさん2015/08/08(土) 00:53:10.84ID:fdExEYFc
if文は実行されてるけど条件に合致していないだけ
あとその条件文でstrposは一致した場合0を返すときがあるからその書き方じゃだめ
if ( strpos($text, "\[:ja\]") !== false )
とか
0094デフォルトの名無しさん2015/08/08(土) 15:28:03.35ID:JK2LUyvo
アスキーコードが入った配列を 文字列にしたいんだけど
すっきり綺麗に書く方法はありますか?

$bins = array(85,78,75,79);
$text = unko($bins);

unko() を作りたい。
0095デフォルトの名無しさん2015/08/08(土) 15:39:44.21ID:cerAE1Gg
>>94
yieldとchr使えば?
0096デフォルトの名無しさん2015/08/08(土) 16:16:50.97ID:JK2LUyvo
>>95
yieldをこれにどう使うのかわかんねー・・・
0097デフォルトの名無しさん2015/08/08(土) 18:50:02.44ID:d7oiKQ0C
すっきり綺麗に書きたい気持ちはわからんでもないけど、関数化するなら別によくない?
0098デフォルトの名無しさん2015/08/09(日) 10:11:38.86ID:Bf9QBgBr
復活〜
0099デフォルトの名無しさん2015/08/09(日) 12:08:35.38ID:bIJ4oByb
packすりゃあいいじゃんと思ったけどPHPのpackは配列渡しても正しく動かないのか・・・・・
そうなると $text = implode('', array_map('chr', $bins)) がコードとしては簡潔かな?
0100デフォルトの名無しさん2015/08/09(日) 20:38:11.87ID:un5fqtRA
>>99
それじゃウンコ()使ってないからダメだな
0101デフォルトの名無しさん2015/08/09(日) 20:42:56.24ID:1cZqWlyS
PHPって画面を遷移させずに画面内に動きを起こすことってできないんですか?
例えば、2つのテキストボックスに数値を入れるタイプの簡単な計算機を作って、
「計算」ボタンを押すと画面遷移させず更新もさせずに結果をその画面に表示するとかです
0102デフォルトの名無しさん2015/08/09(日) 20:52:01.39ID:XO0o9kDB
>>101
無理。javascriptで。
0103デフォルトの名無しさん2015/08/09(日) 21:19:31.24ID:1cZqWlyS
>>102
そうですか
ありがとうございます
0104デフォルトの名無しさん2015/08/11(火) 01:01:18.37ID:vIC4fnIq
phpってxdebug入れると遅くなるのか?
俺に教えやがれ!さあ来い!
0105デフォルトの名無しさん2015/08/11(火) 10:24:08.90ID:TmniTjHd
foreachで十分なんだけど、でもカウンターも欲しい ってときどうしてる?

A: for($i=0; $i<count($list); $i++){ $a=$list[$i]; 処理; }
B: $i=0; foreach($list as $a){ 処理; $i++; }

Bの方が好きなんだけど、$iがループ外にあるのがすげーいや。
0106デフォルトの名無しさん2015/08/12(水) 03:31:05.24ID:uUCq7Pj1
>>105
ループ終了条件にcountを使うなと教わらなかったのか?
よって前者は $cnt = count($list); がループ外に出現することになる。
0107デフォルトの名無しさん2015/08/12(水) 08:11:15.94ID:sFpfPRX7
heredocの中でjson_encodeを使うことは出来ないのですか?
<?php
$hensu = '値';
echo <<<EOM
<script type="text/javascript">
var hensu2 = <?php echo json_encode($hensu) ;?>;
alert( hensu2 );
</script>
EOM;
?>
こういうのが出来ませんでした。
0108デフォルトの名無しさん2015/08/12(水) 10:56:55.76ID:XD0FvRJl
そりゃそうだろ
$json_encode = "json_encode";
しておいて
<?php echo json_encode($hensu) ;?>;

{$json_encode($hensuu)}
にしたらどうなる?
0109デフォルトの名無しさん2015/08/12(水) 10:59:49.91ID:MGGhiGE4
>>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;
?>
0110デフォルトの名無しさん2015/08/12(水) 14:10:09.24ID:sFpfPRX7
>>108>>109
上手く行きました。有難うございます。
この
 { } 
の意味は何ていうキーワードでくぐれば良いでしょうか?
0111デフォルトの名無しさん2015/08/12(水) 14:31:29.53ID:uUCq7Pj1
>>110
>>109のリンク先に書いてるよ
0112デフォルトの名無しさん2015/08/12(水) 15:49:57.10ID:IssKFxaM
>>106
教わったけど面倒くさいから・・・ それにこういうのは、
いつかそのうちPHPが実行時に最適化するはずなので
その日を信じて今日も生きる
0113デフォルトの名無しさん2015/08/12(水) 16:31:09.47ID:h9xT+Vg3
別にそうしなければならないというわけでもないからな
コンパイラ感覚で書いてる人は多いでそ
0114デフォルトの名無しさん2015/08/12(水) 17:03:02.40ID:sFpfPRX7
>>111
波括弧構文というのですか。難しい。
0115デフォルトの名無しさん2015/08/12(水) 17:15:49.37ID:uUCq7Pj1
>>112
まぁボトルネックになってたら出すでもいいけど。
0116デフォルトの名無しさん2015/08/13(木) 05:07:20.03ID:jvB0Vatl
>>114
意味さえわかればその辺の翻訳者が適当につけた名前なんてどうでもいいわ
別になくても動くけど文字としての$記号があったら意図しない動作をする場合もあるし
変数であるのを明示するのはいいこと
0117デフォルトの名無しさん2015/08/13(木) 09:15:37.50ID:mPByWcg9
値は$varです。
とかやると
“$varです。”という変数の内容を出そうとするからな、{}は常に入れるべきかなあ
0118デフォルトの名無しさん2015/08/14(金) 16:18:46.79ID:4t7qYmCW
質問なのですが、phpとmySQLを使って画像処理をしたいのですが、どんなライブラリを取り入れればよいでしょうか。
0119デフォルトの名無しさん2015/08/14(金) 16:33:11.21ID:tycV63/U
>>118
gdつけてコンパイルしなおせば?
あとmysqlがなぜ必要と思った?
0120デフォルトの名無しさん2015/08/14(金) 16:46:35.57ID:4t7qYmCW
>>119
目的としては特定の色に名前を付けてその名前を表示する、みたいなことをしたいので、
そのためにmySQLを入れようかと思ったのですが、不要ですか??
0121デフォルトの名無しさん2015/08/14(金) 16:51:26.37ID:qC8ZbOuS
色DB
0122デフォルトの名無しさん2015/08/14(金) 16:54:26.91ID:vqGh2HbU
PHPってソース解析される可能性ありますか?
0123デフォルトの名無しさん2015/08/14(金) 16:54:31.89ID:4t7qYmCW
>>121
単語だけ言われましても・・・(´・ω・`)
0124デフォルトの名無しさん2015/08/14(金) 17:07:33.56ID:mMb0xxGG
>>123
環境は?
phpのモジュールは追加するのかビルドしてるのか?
MySQLはインストール済み?
MySQL側の管理はどの程度できる?
SQL書ける?
0125デフォルトの名無しさん2015/08/14(金) 17:10:02.44ID:mMb0xxGG
>>122
無い
でも穴開けられやすいから注意な
0126デフォルトの名無しさん2015/08/14(金) 17:42:14.93ID:4t7qYmCW
>>124
環境はxamppとaptana3を使っています。
phpに関しては初期設定以外特に追加もビルドもしていません。
mySQLはこれから手をつけようか、というところです。
どうでしょうか?
0127デフォルトの名無しさん2015/08/14(金) 17:44:27.96ID:vqGh2HbU
>>125
何に穴が開くんでしょうか?
0128デフォルトの名無しさん2015/08/14(金) 18:34:43.43ID:mMb0xxGG
>>127
パーミッション関係なしに拡張子だけで実行できるじゃんか
アップローダ作ってうっかりphpファイルをコンテンツの場所に置けるようにしただけで
ソース読むphp置けちゃったりするべ。
0129デフォルトの名無しさん2015/08/14(金) 18:40:06.49ID:mMb0xxGG
>>126
これから覚えることが多すぎる
xamppを一つ一つ覚えてからかなあ、特に管理部分

画像処理といえるのかわからんけど、色の名前とパラメタの対応とか
将来的に変わらないデータならDB使うまでもないような気はする
練習にはいいけど
0130デフォルトの名無しさん2015/08/14(金) 20:38:34.17ID:9UnPChAc
>>126
画像処理とMySQLはほとんど関係ない。
まずは、GDとかで四角形なり画像の出力を試すといい。
http://php.net/manual/ja/book.image.php
http://php.net/manual/ja/function.imagerectangle.php

もしGDがはいってないならインストール。
ただGDって直線はいいけど曲線は苦手。ギザギザになる。
0131デフォルトの名無しさん2015/08/15(土) 01:32:47.01ID:+JKpzm6t
クラスの中でDBからひっぱってきたデータを多次元配列で変数に納めてリターンしたいんですけど中では無理なんですかね。外でforeachで回すのも無駄なので方法を教えてほしいです。
0132デフォルトの名無しさん2015/08/15(土) 10:49:18.29ID:Wj7gSpLp
>>131
外でなく中でっていうのはSQLでやるってこと?
0133デフォルトの名無しさん2015/08/15(土) 14:01:37.64ID:iShapREu
>>130
gdってインストールで済むのか。 ほんとだパッケージあるじゃん。
毎回コンパイルしてたわ。 なんだよもー!
0134デフォルトの名無しさん2015/08/15(土) 15:04:43.67ID:+JKpzm6t
>>132
オブジェクトから多次元配列をリターンさせたい
0135デフォルトの名無しさん2015/08/15(土) 17:21:41.60ID:iShapREu
>>134
自作クラスにぶっこめばいいぞ。
fetchallでクラス指定できるじゃん?あれ使う。
0136デフォルトの名無しさん2015/08/15(土) 18:26:16.31ID:+JKpzm6t
>>135
素人なもんであれじゃわからんです。
0137デフォルトの名無しさん2015/08/15(土) 20:43:53.04ID:iShapREu
>>136
もー! 「fetchall クラス あれ」 で検索で出てくるじゃん!

自分でテーブルごとにクラス作ってカラム名でメンバ変数書いて
$sth->fetchAll(PDO::FETCH_CLASS, クラス名);
ってやるやつ。 もういきなりメンバ変数に値入って返るから。
0138デフォルトの名無しさん2015/08/15(土) 21:53:38.11ID:+JKpzm6t
>>137
たぶんあった。ありがとう。
0139デフォルトの名無しさん2015/08/16(日) 00:09:19.03ID:W1BPcUvW
>>137
ヨコヨコからです。こんなのがあるのか知らなかった。モノスンゴイ便利〜
0140デフォルトの名無しさん2015/08/16(日) 04:56:30.22ID:EjNR4Gby
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
0141デフォルトの名無しさん2015/08/16(日) 09:57:03.06ID:z6SsnuJ9
>>137
すまねえ☆ついで質問で申し訳ないですがオブジェクトの中でquery,prepare,executeが使えないんですけどこれってどうすればいいんですかね。
0142デフォルトの名無しさん2015/08/16(日) 10:15:01.34ID:UepVPRcb
>>140
リンク先にPHPからwindows apiを叩けばできるよって書いてあるよ
0143デフォルトの名無しさん2015/08/16(日) 12:18:13.51ID:z6SsnuJ9
>>141 自己解決。PDOにせつぞくできてなかっただけだった。すまねえ☆
0144デフォルトの名無しさん2015/08/16(日) 23:12:07.45ID:ziQJsyKn
PHPでレンサバ(xサーバー)のMySqlに接続ができません。
$link = mysql_connect($url,$user,$pass) or die("MySQLへの接続に失敗しました。");
$urlについてです><
もしご存知の方いたら教えていただけないでしょうか。
初心者ですいません。
0145デフォルトの名無しさん2015/08/16(日) 23:17:18.11ID:ssoeETHe
>>144
localhostでええやん。
0146デフォルトの名無しさん2015/08/16(日) 23:19:43.31ID:ziQJsyKn
レンサバでもlocalhostでいいんですか?
0147デフォルトの名無しさん2015/08/16(日) 23:35:20.00ID:FEBcibKq
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 を使うべきです。
0148デフォルトの名無しさん2015/08/17(月) 00:09:15.04ID:oEBSVNMg
>>147
まだ削除されてないってことだよな
0149デフォルトの名無しさん2015/08/17(月) 00:13:32.65ID:5ktVpXOG
7の予定まで書かれるようになったんだ
0150デフォルトの名無しさん2015/08/17(月) 00:18:17.06ID:roquPsRR
>>146
そのスクリプトを設置してる場所からみてlocalhostにあるmysqlデータベースに接続ってこと

データベースサーバを別サーバに用意してるレンタルサーバもあるが
格安レンタルサーバとか共有サーバはだいたいwebサーバと同じサーバにおいてる
0151デフォルトの名無しさん2015/08/17(月) 00:31:20.09ID:LyqGgPuc
>>150
そんなんやめてsqlite3にしたら?軽いし、早いしいいぞぉ
0152デフォルトの名無しさん2015/08/17(月) 05:34:58.17ID:MZO1YKpV
sqliteは大規模ではほぼ使われてない。
0153デフォルトの名無しさん2015/08/17(月) 06:15:54.39ID:roquPsRR
sqliteは100行単位でデータ増えただけでもベンチに数字として現れるからな
かといって体感出来るほど遅いと感じるまではしばらく余裕がある
個人で使うには十分だがシンプルすぎてsqliteから他のDBに移行したいとき苦戦する
ORマッパー使えばいいが無駄が多いパフォーマンス重視なら使いたくない
0154デフォルトの名無しさん2015/08/17(月) 06:17:21.14ID:roquPsRR
何が言いたいかというとsqlite使うなら
その前にガチムチmysqlさんをある程度触ってからがお勧め
0155デフォルトの名無しさん2015/08/17(月) 09:36:26.92ID:nRo3eKd8
>>153
逆じゃね?
sqliteできちんと仕事できるなら
mysqlでもpostgesqlでもどこでも生きていける
0156デフォルトの名無しさん2015/08/17(月) 10:18:00.15ID:roquPsRR
>>155
その通りだが別に逆ではない
sqliteはシンプルで簡単だと思われがちだが
あれは完全に玄人用
0157デフォルトの名無しさん2015/08/17(月) 16:17:07.93ID:/53UNtSq
PHPって変数の寿命ないのかよ。ループで値おかしくなって焦ったわ。
0158デフォルトの名無しさん2015/08/17(月) 16:26:56.36ID:ZyRhfbbF
使い方が変なんじゃ?
0159デフォルトの名無しさん2015/08/17(月) 17:05:17.24ID:yQK+Nz/F
>>157
foreachで参照でも使ったぁ?
0160デフォルトの名無しさん2015/08/17(月) 17:26:14.35ID:M1oT74qU
foreach内参照は最初はハマるわなー
0161デフォルトの名無しさん2015/08/17(月) 19:46:54.20ID:D8EzW0OH
PHPにはブロックスコープないからね。
0162デフォルトの名無しさん2015/08/17(月) 22:24:07.74ID:LyqGgPuc
>>153
大規模、小規模ふくめてoracle、mssql、mysql postgresqlのシステム組み上げ10年くらいだが、たまたま今年sqlite3でphpのシステム組み上げ機会に恵まれまして。

いやまー信じられない程の取り回し。dbファイルもシステムと別に取り扱いできて楽だし、軽いしこりゃいーわ。今までのdbシステムの面倒くささなんだったのよって事で、俺的オヌヌメ。それまではmysql一択だったんだけどね。
0163デフォルトの名無しさん2015/08/17(月) 23:08:08.70ID:X1R8xEy2
見栄をはらなくてもいいんだよ
0164デフォルトの名無しさん2015/08/17(月) 23:36:59.82ID:LyqGgPuc
>>163
見栄はらせろよ
0165デフォルトの名無しさん2015/08/18(火) 11:19:17.76ID:fW4GU+Ok
sqliteは、今まで使ってたRDBMSの知識そのまま生かせるから
以前からDB触ってた人にとっては楽だよな
しかもGUI含めてファイルを直接覗けるツールは山ほどあるし
0166デフォルトの名無しさん2015/08/18(火) 18:56:35.63ID:x2qVDreM
functionであちこちに自作の関数作るのにハマってるんですけど、これって一個のファイルにまとめた方が良いんですか?
それとも自分で管理できればokですか?
なるべく個別に分けた方が読み込み減って速いですか?
0167デフォルトの名無しさん2015/08/18(火) 19:47:48.16ID:+37xVzyg
function毎にファイル分けるのは阿呆だけど
includeコストかかるし全く関係ないfunctionを適当にまとめてもなぁ
文字列関係の操作や配列関係の操作でわけて必要なものをincludeするとかすればマシだと思う
まぁオブジェクト指向勉強してクラス使い始めればそんなこと考えることもなくなるぜ
0168デフォルトの名無しさん2015/08/18(火) 21:57:49.37ID:NoP1vlWj
144です!無事できました!xxxxxxxxx.cgidbでXサーバーのmysqlに接続できました!
ご回答していただきましてありがとうございました!
0169デフォルトの名無しさん2015/08/18(火) 23:35:47.50ID:vA+EdJDa
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

このようなエラーがでます・・・
0170デフォルトの名無しさん2015/08/19(水) 00:02:13.26ID:P+NUjwVB
>>169
訳して読めないん?
0171デフォルトの名無しさん2015/08/19(水) 00:02:41.20ID:LOHOwjsk
>>170
読んだけどどうすればいいのか分かりませんでした。
0172デフォルトの名無しさん2015/08/19(水) 00:03:49.55ID:LOHOwjsk
何をしたいかと言うと画像に「アドセンスクリックお願いします」
をつけてhttp://iup.2ch-library.com/にうpしたいです。
0173デフォルトの名無しさん2015/08/19(水) 01:09:15.56ID:L3Cv9rI8
forbiddenを日本語で1万回ぐらい唱えろ
0174デフォルトの名無しさん2015/08/19(水) 01:14:11.94ID:LOHOwjsk
POSTの受け取りエラーはできました。
でも画像に文字を入れるとnullが想定されていません警告がでます。
その後jsに画像データを渡してもうpできません。
0175デフォルトの名無しさん2015/08/19(水) 03:12:04.97ID:6ywDLaMX
画像が指定されてないから
0176デフォルトの名無しさん2015/08/19(水) 03:37:05.31ID:Qh+hZUtC
>>174
http://php.net/manual/ja/function.imagecreatefrompng.php
こういうの使ってリソースを作成して渡さないとだめ
0177デフォルトの名無しさん2015/08/19(水) 09:50:35.04ID:LOHOwjsk
jsの参照からPOSTでPHPに送って、それをPHPで編集して、もう一度jsに戻す事はできませんかね?
0178デフォルトの名無しさん2015/08/19(水) 11:01:21.38ID:LOHOwjsk
画像の編集はできるようになりました。
ただ、編集した画像をjsに戻す方法が分かりません。
0179デフォルトの名無しさん2015/08/19(水) 11:06:50.17ID:GbG0htqR
>>178
imgタグのURL書き換えようぜ
0180デフォルトの名無しさん2015/08/19(水) 11:16:29.30ID:LOHOwjsk
一度サーバーに保存してそのURLを渡すという事ですか?
0181デフォルトの名無しさん2015/08/19(水) 11:28:02.44ID:LOHOwjsk
あとテンポラリファイルをjsから使うにはどうすればいいですか?
0182デフォルトの名無しさん2015/08/19(水) 11:32:10.00ID:vCtz9n8J
>画像に「アドセンスクリックお願いします」
クリック誘導しちゃいけない
ちゃんと規約よまないとアボセンスされるぞ
0183デフォルトの名無しさん2015/08/19(水) 11:33:28.90ID:LOHOwjsk
>>182
違います
アフィ対策うpロダを作りたいです。
正確には既にあるうpろだに画像を編集して送信したいです。
0184デフォルトの名無しさん2015/08/19(水) 11:37:24.15ID:LOHOwjsk
ただ他のサーバーとの通信は規約で禁止してある所が多いので
html→phpにポスト送信
phpで画像編集してjsに送信
js→他サーバーのうpろだに送信したいです。
これなら規約的にも大丈夫ですし、もしうpろだの管理人から規制食らってもクライアントから送るので問題ないので。
0185デフォルトの名無しさん2015/08/19(水) 11:44:26.68ID:+Zdd/FzT
臭い質問者だな
0186デフォルトの名無しさん2015/08/19(水) 11:52:58.60ID:6ywDLaMX
アフィ対策うpろだ作るっつってヨソのうpろだ間借りしちゃいかんだろ
0187デフォルトの名無しさん2015/08/19(水) 12:29:23.59ID:GbG0htqR
>>181
使えない
0188デフォルトの名無しさん2015/08/19(水) 12:38:18.71ID:LOHOwjsk
>>186
HTMLの参照からPOST送るのも、PHPで編集してPOST送るのも同じなので大丈夫と思うんですが。
0189デフォルトの名無しさん2015/08/19(水) 13:08:53.68ID:Qh+hZUtC
いい加減うっとうしくなってきた
0190デフォルトの名無しさん2015/08/19(水) 13:10:38.51ID:LOHOwjsk
すみません。
画像の編集はできたので後は何とかします。
ありがとうございました
0191デフォルトの名無しさん2015/08/19(水) 14:52:07.42ID:E7jETczI
$test=new tester();
$data=$test->getDust();

testerとDustを可変にしたいんですけど書き方教えてください。
0192デフォルトの名無しさん2015/08/19(水) 15:31:50.31ID:E7jETczI
自己解決
0193デフォルトの名無しさん2015/08/19(水) 22:19:55.98ID:sb/lS4ZW
画面全体をキャプチャする場合imagegrabscreenが使えますが
特定のアプリケーションをキャプチャしたい場合って何か方法ありますか?
0194デフォルトの名無しさん2015/08/19(水) 22:41:45.97ID:LOHOwjsk
base64でエンデコしたらPHP→jsに渡せた〜
送信もできたー
ただうpできない。。。
ファイル名が送られてないのかな…?
これはjsの話だからjsで聞くけどPスレの方ありがとうございました
0195デフォルトの名無しさん2015/08/20(木) 00:17:48.07ID:z6CxRTbz
英数字の文字列を、大文字を小文字に、小文字を大文字にするにはどうすればいいですか?

たとえば、以下のようの文字列をこう変換したいです

jFw3YG3r2
   ↓
JfW3yg3R2

おねがいします
0196デフォルトの名無しさん2015/08/20(木) 00:26:28.33ID:sgktyw/y
>>195
置き換えればいい。
0197デフォルトの名無しさん2015/08/20(木) 00:30:42.60ID:fJ97YSxG
>>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'))));
}
0198デフォルトの名無しさん2015/08/20(木) 00:33:26.41ID:fJ97YSxG
>>193
windows限定ということもあって使ったことないけど、マニュアルには普通にあるよ
http://php.net/manual/ja/function.imagegrabwindow.php
0199デフォルトの名無しさん2015/08/20(木) 02:13:01.38ID:z6CxRTbz
>>196-197
ありがとうございます!
思ってた通りにできました!
0200デフォルトの名無しさん2015/08/20(木) 10:01:51.88ID:C8zNXNPV
>>198
ありがとうございます
ウィンドウハンドル (COM インスタンスの HWND プロパティ) というのはどうやって取得するのでしょう?
使用例ではIEのがのっていますが、とあるゲームのクライアントなのですが。
0201デフォルトの名無しさん2015/08/20(木) 10:42:50.46ID:H8XW99Sq
そのとあるゲームを識別する材料は何よ。
タイトルかプロセス名になると思うけど、同じプロセスでも
トップレベルウィンドウが複数あるやつもあるので注意
spy++とか触ってみ
0202デフォルトの名無しさん2015/08/20(木) 10:53:43.78ID:C8zNXNPV
>>201
オンラインに接続するマルチプレイゲームなのでチート対策にプロセスは隠されてしまいます
ただキャプ系のソフトだとちゃんと取れるのでやりようはあると思います
そもそもPHPでやるのは難しいんですかね

関数コールすれば現在起動中のソフトウェアのウィンドウハンドルがわかるというのでなければ
難しそうなのでいったん諦めたいと思います

紹介していただいたspy++というのはどんなものか気になるのでいじってみたいと思います
ありがとうございます
0203デフォルトの名無しさん2015/08/20(木) 12:49:26.18ID:H8XW99Sq
>関数コールすれば現在起動中のソフトウェアのウィンドウハンドルがわかる

いやそのままだけど、、、、spy++動かせばわかると思うけど
「現在起動中のソフトウェアのウィンドウ」はものすごく大量にあるので
その中から選択するキーをどうすんのって話ね。
0204デフォルトの名無しさん2015/08/20(木) 19:32:57.07ID:WOs6ZAoH
win32アプリケーションを実行した結果とか取得できたっけ?
0205デフォルトの名無しさん2015/08/20(木) 20:19:30.25ID:H8XW99Sq
コンソールならパイプ経由でいけるべ
あとCOMなら標準でいけるかと
それ以外だと結果っていってもなんのことか
0206デフォルトの名無しさん2015/08/21(金) 14:04:20.29ID:fqRYNQxQ
>>205
結果って出力じゃなくてexitの戻り値系の話じゃね?
0207デフォルトの名無しさん2015/08/21(金) 14:30:01.51ID:S8ndpYq0
そいつは、、、systemだとcmd.exeの戻り値だからちゃんと取れない、という話?
execでいけないかな
0208デフォルトの名無しさん2015/08/22(土) 17:12:21.65ID:/ddVcb/Z
$list=scandir('history/',SCANDIR_SORT_DESCENDING);//ファイル一覧取得
$s=file_get_contents($list[0]);//最新のファイルを読む

このような風にしてディレクトリ内の最新のファイルを読みたいのですが上手く行きません。
何故でしょうか?
0209デフォルトの名無しさん2015/08/22(土) 17:39:53.87ID:/ddVcb/Z
事故解決しました
0210デフォルトの名無しさん2015/08/22(土) 18:05:24.29ID:/yiufrRR
事故ったのか
0211デフォルトの名無しさん2015/08/22(土) 20:19:50.88ID:/ddVcb/Z
ファイル名が
フォルダ/ファイル
で返ってくると思っていたら
ファイル
しか返ってこなかったのが原因でした。
0212デフォルトの名無しさん2015/08/23(日) 02:42:29.78ID:F0J/JaHP
class AClass
{
  private $prop = 1;
}

class BClass
{
  private $prop;

  public function __construct()
  {
    $prop = 1;
  }
}

AClassとBClassは、どちらもプライベート変数$propを持っていますが、2つの違いは何でしょうか?
結果が同じなら、AClassの方が好ましいとか。
AClassよりもBClassの方がパフォーマンスに優れているとか。
私はAClass派ですが、BClass派の方の意見も聞いてみたいです。
0213デフォルトの名無しさん2015/08/23(日) 03:37:33.89ID:MjjZ1bjj
http://php.net/manual/ja/language.oop5.properties.php

C++みたいな初期化子が無いからBが若干気持ち悪いのはどうしようもないな
0214デフォルトの名無しさん2015/08/23(日) 09:55:42.83ID:HMoj5OB/
コンストラクターで何か渡さないならAでいいんじゃないの
0215デフォルトの名無しさん2015/08/23(日) 10:45:25.47ID:vhLXwY7S
Bは、$this->prop = 1;じゃない?
こういう間違いするくらいなら、Aがいいと思う。
AとBではそれほど違いはないだろうし。
0216デフォルトの名無しさん2015/08/23(日) 11:44:14.88ID:F0J/JaHP
>>215
$this->prop = 1;が正しいです。
ふと疑問に思って、適当に書いたので間違えました。

>>213-215
ご意見ありがとうございます。
「俺は、コンストラクタで代入しなきゃ気が済まない。」という方はいないようですね。
0217デフォルトの名無しさん2015/08/23(日) 12:26:03.55ID:dSq5s0nX
コンストラクタには、メンバー変数の単なる初期化より、
オブジェクト生成時に必須で意味ある操作を記述するのが望ましい気がする。
0218デフォルトの名無しさん2015/08/24(月) 19:38:56.86ID:JwKFnUGE
http://d.hatena.ne.jp/cypher256/20121013/p1
こういうのがあるんですが
PDOでも同じような結果(SQLite>MySQL)になりますかね?
0219デフォルトの名無しさん2015/08/24(月) 20:17:08.06ID:X6qu577D
>>218
そりゃなるだろうなぁ

・スケールしない
・構成が単純
・同時アクセス数が少ない

という条件ならSQLiteは無敵でしょ
0220デフォルトの名無しさん2015/08/24(月) 22:23:52.85ID:/ftfGLfA
>>218
お?なんだ?
sqliteの成績いいじゃないのよ。
0221デフォルトの名無しさん2015/08/25(火) 11:38:49.51ID:2QQu0W9L
PHPで作ったフォルダの所有者がWWWになってFFFTPから削除できない。助けて
0222デフォルトの名無しさん2015/08/25(火) 11:46:00.83ID:lyj94kL0
FFFTPをWWWでログインするか、WWWを操作できるアカウントでログインすれば
いいんじゃないかな?(´・ω・`)
0223デフォルトの名無しさん2015/08/25(火) 11:50:12.45ID:9xu5YWLi
phpから消しゃいいじゃん
0224デフォルトの名無しさん2015/08/25(火) 12:04:50.75ID:oTbGWeCq
sqliteはインデックス絡めた集計が遅くてしんどい
kvsみたいなシンプルなテーブル構成じゃないと性能でないし
いろいろ面倒すぎる
0225デフォルトの名無しさん2015/08/25(火) 12:39:56.31ID:N0kKPKqp
>>221
sshまたはPHPからLinuxコマンドでrmすればいい。
0226デフォルトの名無しさん2015/08/25(火) 12:42:08.37ID:2QQu0W9L
>>225
窓なんだけど
0227デフォルトの名無しさん2015/08/25(火) 12:55:27.06ID:N0kKPKqp
>>226
rd (option) [directory name]
rmdir (option) [directory name]
0228デフォルトの名無しさん2015/08/25(火) 13:08:52.73ID:2QQu0W9L
>>227
ありがとう
0229デフォルトの名無しさん2015/08/25(火) 15:36:21.02ID:07X4ZgXk
GDを使いたいのですが、ネットで探してみても具体的に何をすれば使えるようになるのか、よくわかりません。
箇条書きみたいな形でどうすればいいか教えていただけないでしょうか??
0230デフォルトの名無しさん2015/08/25(火) 15:57:06.35ID:9xu5YWLi
どの環境?
それぞれの環境でやり方違うけど、要はGDのライブラリを組みこむだけだよ
GDの下にpngやjpegやzipやfreetypeやらあるけどまあ全部込みでいいだろう
0231デフォルトの名無しさん2015/08/25(火) 17:57:06.12ID:07X4ZgXk
ライブラリの組み込み、って何をすればいいのかがちょっとよくわからない。
どこかのフォルダに入れればいいだけじゃないみたいだし下手にいじって全部パーにはしたくないのですよね。
0232デフォルトの名無しさん2015/08/25(火) 17:59:44.73ID:9xu5YWLi
いやだからWindowsなのかLinuxなのかMacなのかその他なのか
0233デフォルトの名無しさん2015/08/25(火) 18:01:06.85ID:9xu5YWLi
そして現行のものはどうやってインストールしたのか
xamppとか?ソースからビルド?httpdはどれでバージョンは?
0234デフォルトの名無しさん2015/08/25(火) 18:06:33.56ID:07X4ZgXk
winです。xamppを使っています。
httpdとバージョンについては覚えていないのですが、
xamppのインストールは六月頃だったのでその時の最新のものだと思います。
0235デフォルトの名無しさん2015/08/25(火) 18:11:06.98ID:F9GsSPUL
php.iniのextension=php_gd2.dllとか書いてるあたり探して先頭のコロン外せばいいんじゃね
0236デフォルトの名無しさん2015/08/25(火) 18:19:46.72ID:vVSJ44wn
言語としてのPHPはwebサーバーは独立してる。
webサーバー上でPHPを扱うケースは関係ある。
GDを動かすだけならwebサーバーは関係無い。
0237デフォルトの名無しさん2015/08/25(火) 18:47:37.26ID:9xu5YWLi
http://php.net/manual/ja/install.windows.extensions.php
これでいいんじゃね。
書いてある内容から抜粋すると、C:\php5\php.ini を編集して
>>235の通りにすればいいかと、先頭の外す文字はセミコロンのようだけど
0238デフォルトの名無しさん2015/08/25(火) 19:30:29.99ID:0DooLhSC
>>237
ようだけどって、php.ini編集したことないの?
0239デフォルトの名無しさん2015/08/25(火) 22:20:16.92ID:z2POwS4S
とりあえずDevelopmentかProductionかでerror_reportingやらdisplay_errors, error_logの設定ぐらいは触らなきゃ始まらんよなぁ・・・・・
0240デフォルトの名無しさん2015/08/25(火) 22:38:51.17ID:/vS3aNyo
ぶっ壊しながら覚えるんだけどねえ
0241デフォルトの名無しさん2015/08/25(火) 23:02:09.59ID:iOl5eWYF
最初中身みないでdevelopmentなら開発者向けで使えるのは全部使える設定だろと思ってたらひどい目にあったな
あとxamppはxamppの中にPHPのフォルダあるからよくわからずに新たにPHPインストールしちゃってサーバーとコマンドラインで別の設定とバージョンで動かしてたり
0242デフォルトの名無しさん2015/08/26(水) 11:56:14.21ID:1VgT2ip6
>>238
Windowsはやったことないわ
0243デフォルトの名無しさん2015/08/26(水) 11:56:39.99ID:1VgT2ip6
あと、コロンって書いてるからやんわり指摘したんだよ
0244デフォルトの名無しさん2015/08/26(水) 17:36:20.72ID:1UBBn/05
php.iniのフォーマットはプラットフォームに依らない
0245デフォルトの名無しさん2015/08/26(水) 17:50:20.81ID:Rs0R7URv
やんわり指摘する必要もない。びしっと指摘すべき
0246デフォルトの名無しさん2015/08/26(水) 18:47:42.81ID:ravcYZS2
やめちまえ
0247デフォルトの名無しさん2015/08/26(水) 20:32:22.15ID:+yw1sjwq
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"=>"北海道札幌市"));
02482472015/08/26(水) 20:35:14.82ID:+yw1sjwq
いい忘れましたがこの場合同一人物と決定付けるデータ(ユニーク)はnameとaddrになります。
0249デフォルトの名無しさん2015/08/26(水) 20:56:10.01ID:ravcYZS2
仮に25才が26才より後に出てきたら25才にすんの?
一回で1000件超も処理すんの?
DB使ってないの?
0250デフォルトの名無しさん2015/08/26(水) 21:10:31.96ID:+yw1sjwq
>>249
>仮に25才が26才より後に出てきたら25才にすんの?
26歳にします

>一回で1000件超も処理すんの?
IDはまだらでスタートも500ぐらいからなのですが
全部抽出した今現在2000件ぐらいあります

>DB使ってないの?
DBに入れる前に簡易的にデータを視覚化して問題ないか確認したいので
データ整理が終わって問題がなさそうだったらそれからDBに入れたいです
0251デフォルトの名無しさん2015/08/26(水) 23:22:58.87ID:KIJq3Kjz
>>247
foreachとかで重複のチェックおよび削除をするのはダメなの?
0252デフォルトの名無しさん2015/08/26(水) 23:54:16.74ID:7RAfYG22
>>251
言うのは簡単だけどそれ結構むずいぞ
0253デフォルトの名無しさん2015/08/27(木) 01:55:32.38ID:1lLqbxXs
多重ループで回して当たったら年齢低い方を外すだけだろ。
てか個人情報の悪用か?
0254デフォルトの名無しさん2015/08/27(木) 03:48:24.24ID:8ceC1383
みんなO(n^2)大好きなの?

>>247
name+addrをキーとして考えて、それぞれのキーに対してどのIDを使うべきかを抽出しさえすれば解決できるでしょ。
これならO(n)だ。
0255デフォルトの名無しさん2015/08/27(木) 03:56:54.04ID:Qf9+I7qu
2000なら計算量気にするほどの量じゃないしな
name+addrだとこのケースだとキーにマルチバイト入るし問題はないだろうけどあんま好きじゃないわ
0256デフォルトの名無しさん2015/08/27(木) 16:45:05.82ID:yuSy9xY3
>>250
テスト用のDBまたはテーブル作ってそれ使って確認すれば済む話
0257デフォルトの名無しさん2015/08/27(木) 17:07:08.43ID:uKUzATKZ
テスト用にとりあえずゴミを作るというのは断片化の原因でありお行儀が悪い
0258デフォルトの名無しさん2015/08/27(木) 17:23:22.59ID:TAgfx1h3
<?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);
0259デフォルトの名無しさん2015/08/27(木) 20:33:39.94ID:qru52hv5
>>258
素晴らしい!
そのスクリプトなら計算量はO(n)だ。
安易に二重ループにすると計算量がO(n^2) で大変だもんね。
0260デフォルトの名無しさん2015/08/27(木) 20:54:35.90ID:xIJ2Lz80
よくわからん仕様だけど一時的にsqlite使うのが楽そう
使い終わったらファイルごと捨てちゃって
0261デフォルトの名無しさん2015/08/27(木) 20:57:16.97ID:Vyt3jNWq
それは断片化になる
メモリに作るのなら問題ないけどな
sqlite::memory:だっけか

ベンチ測ってないが配列のキーに日本語使った時の速度の影響ってないのかね
0262デフォルトの名無しさん2015/08/27(木) 22:55:51.74ID:Vyt3jNWq
気になって測ったけど爆速だったわ
0263デフォルトの名無しさん2015/08/28(金) 00:08:07.52ID:+cQXDdQR
>>261
コード書ける側の人ならベンチくらい自分でとりなよ
0264デフォルトの名無しさん2015/08/28(金) 00:09:25.52ID:+cQXDdQR
オゥ…なぜdatが261で止まっていたのか。
というわけで、O(n^2)大好きな方は考えを改めていただきたい所存
0265デフォルトの名無しさん2015/08/28(金) 00:56:02.87ID:AoeXeGce
どうせPHP内部では配列は全部ハッシュテーブルだし, 速度は変わりようがない(PHP7では真の配列が入るとかどうとか)
0266デフォルトの名無しさん2015/08/28(金) 01:33:00.87ID:jxZe3mFi
変態言語PHP
0267デフォルトの名無しさん2015/08/28(金) 12:43:42.63ID:DqL8tsCW
ファイルごと捨てちゃうのに断片化って?
vacuumすりゃいいし
0268デフォルトの名無しさん2015/08/28(金) 15:34:05.48ID:jxZe3mFi
知ってるか?
ファイルって復元できるんだぜ!
0269デフォルトの名無しさん2015/08/28(金) 15:54:18.47ID:zPlCh50K
vacuumがやることはsqliteファイル構造内の最適化であってHDDのそれとは違うしなぁ
0270デフォルトの名無しさん2015/08/28(金) 18:03:21.46ID:PakmCYt4
sqliteで、
* テーブル作って
* データロードして
* 削除対象のデータを削除して
* データ取得して
* PHPのデータ構造を再構築

するより、>>258のコード書いた方がよっぽど早い。
0271デフォルトの名無しさん2015/08/29(土) 00:50:53.57ID:9KBnd+er
で、それをDBに入れて確認するわけだから
最初からDB使ったが効率いい
まさか確認なしでリリースする馬鹿はいないよな?
0272デフォルトの名無しさん2015/08/29(土) 01:13:41.82ID:Ab8Z57Rm
1発で問題ないを前提としたらそれでいいけど
修正前提としてんだからよくないだろ
deleteしたりかえって作業が増えるわ
0273デフォルトの名無しさん2015/08/29(土) 01:18:12.82ID:L/zgq/d+
大した作業量でもないやねー。コマンドラインちゃかちゃかする程度っしょー
0274デフォルトの名無しさん2015/08/29(土) 01:24:37.13ID:Ab8Z57Rm
それアホくさいで・・・
効率がいいとはとてもいえんな
0275デフォルトの名無しさん2015/08/29(土) 01:30:22.26ID:Ab8Z57Rm
ていうか>>271は大きな勘違いをしているな
>で、それをDBに入れて確認するわけだから
この作業要らないようにしてるんでしょ
0276デフォルトの名無しさん2015/08/29(土) 01:43:56.82ID:Ab8Z57Rm
宿題終わらん(´・ω・`)
0277デフォルトの名無しさん2015/08/29(土) 01:49:16.00ID:4/0//Q+P
作業効率でいうなら
悪い:1配列作成→2配列内の重複チェック→修正→チェック完了→3DBつくる→4DBつっこむ→(運用開始)→5新しいデータ来る→6DBの中身との重複チェック→7DBにデータ入れる
良い:1DB作る→2登録するデータ一行ずつ受け取る→3DBの中身で重複チェック→4重複なければDBに登録→(修正があればテーブル作り直し1へ)→(運用開始)→2'データ来る→3重複チェック→4重複なければDBに登録

運用時に必要となる処理も含めて全体の工程を考えればどっちが効率がいいかはわかりきってる。

まあ運用開始後もいちいち全行とってきて配列使って重複チェックするならDB使わなくてもいいけどそんなわけないだろさすがに
0278デフォルトの名無しさん2015/08/29(土) 02:09:31.09ID:Ab8Z57Rm
重複のチェックじゃなくてアップデートなんだがな
まぁいいわ
>>258と同じことをビシっとSQLでかけたら効率がいいということで
0279デフォルトの名無しさん2015/08/29(土) 03:29:07.88ID:ZMuJUzU2
>>278
>>254>>258のどっちの人なの?
0280デフォルトの名無しさん2015/08/29(土) 03:40:57.39ID:Ab8Z57Rm
どっちの人でもないで・・・
ID:Vyt3jNWq ID:jxZe3mFi
はオレだ
0281デフォルトの名無しさん2015/08/29(土) 06:06:52.85ID:/nsMHMAj
以下を満たすようなcsvを読み込んで、データベースにインポートするプログラムを作ってるんだけど、アドバイスください。

・カラムごとにインポート先のテーブル/カラムが異なる。
・csvは複数の種類がある。(csvごとにデータベースとのマッピングが異なる。)

汎用的な処理を作って設定でうまいことやりたいんだけど、良いライブラリやサンプルはないですか?
0282デフォルトの名無しさん2015/08/29(土) 08:13:19.25ID:/nsMHMAj
眠気でどうかしてました。ここよりスレ立てるまでもない質問とかの方が適してそうですね。、あんまりphp関係ないし。。移動します。
0283デフォルトの名無しさん2015/08/29(土) 19:02:08.82ID:STDwRupe
たぶん無理だと思うんだけど、いや絶対無理だと思うんだけど、あえて訊いてみる。
関数の引数の変数名を取得することって出来る?

hoge($a); という関数があって、それを hoge($chinko) と呼び出したときに
そのときの変数名 $chinko を取得する方法。

無理だな。 だって引数が変数とは限らないもんな。
あーでも参照なら変数と限ることができるのか? 参照縛りならいける?
0284デフォルトの名無しさん2015/08/29(土) 19:04:04.38ID:ZMuJUzU2
仮引数ならまだしも実引数はさすがに。
むしろ用途をしりたい
0285デフォルトの名無しさん2015/08/29(土) 19:31:57.61ID:1x+r04Uf
もう一つ引数を追加して、変数名を文字列で渡すというのは?
0286デフォルトの名無しさん2015/08/29(土) 19:56:45.67ID:SKly7+Od
debug_backtrace() で、["file"]["line"]["function"]["args"]等を取得して、
そのファイルを読み込み、正規表現とか使って、変数名を抜き出すとか。
ふと思いついたので、おかしな方法だと思うけど一応参考に。
http://php.net/manual/ja/function.debug-backtrace.php
0287デフォルトの名無しさん2015/08/30(日) 09:22:39.00ID:wgRyWxOv
file_get_contentsで自身のphp読み込んで正規表現で抜き出したら出来るんじゃね
0288デフォルトの名無しさん2015/08/30(日) 15:20:20.12ID:FcrFu/Vp
jsやjqやjq-ui使ってクライアントサイドのユーザーインターフェイス的なものを作っていると<body>の中にいろんな要素が追加されてdomツリーも複雑になり収集が付かなくなって来ました。
こう言う場合、できる限りphpなどのサーバーサイドで処理する様に書き換えるべきですか?
0289デフォルトの名無しさん2015/08/30(日) 15:24:19.97ID:ef9SYKfA
別にphpにしなくても静的な部分はhtmlでいいでしょ
例えば最下層までスクロールするアニメーションを実装するとして
それをphpでやるってのはただの馬鹿だよw
最下層までいくのに何回画面遷移するんだっていう話
0290デフォルトの名無しさん2015/08/31(月) 07:59:11.05ID:sP4JUecY
//フォーム外から変なの投げられてきたらサヨウナラ
$_int = isset($_GET['_int']) ? $_GET['_int'] : null;
if (!ctype_digit($_int)) exit;

//変なのきても0にして処理続けます
$_int = isset($_GET['_int']) ? (int)$_GET['_int'] : 0;

そもそもフォーム外からの入力とか考慮する必要があるのか不明ですがどっちがいいでしょうか?
0291デフォルトの名無しさん2015/08/31(月) 10:15:36.04ID:Ad0sNMCq
>>283
どうしてもそれが必要なら、いわゆる連想配列かJSONを引数にすれば良い。
0292デフォルトの名無しさん2015/08/31(月) 10:22:21.26ID:Ad0sNMCq
>>290
XSS, CSRF, セッションハイジャックについて調べるといいよ。
0293デフォルトの名無しさん2015/08/31(月) 10:41:15.82ID:1S2ZHjxL
>>290
上のように、処理を終了する方がいい。
下の場合、予想しない挙動をする場合もありバグの原因になるから。
0294デフォルトの名無しさん2015/08/31(月) 15:14:59.59ID:nEToo1o2
>>290
フォーム外かどうかをチェックするコードではないよね。
意図しないアクセスをされたときの挙動は別途。
ま、不正な値を吸収して処理を継続できるならそのほうがやさしいとは思う。

>>291
「いわゆる連想配列かJSONを引数にすれば」、「関数の引数の変数名を取得すること」ができるの?
0295デフォルトの名無しさん2015/08/31(月) 15:21:22.24ID:sP4JUecY
>>292
曖昧なこといってすみません
そのへんの対策は当然するとして
例えばcURLなんかを使って2chに書くスクリプトみたいのありますよね?ああいうのを考慮すべきかという話です

>>293
下の場合上のelseに当たり
下が問題なら上も問題になるということになりませんか?
0296デフォルトの名無しさん2015/08/31(月) 15:26:34.27ID:Ad0sNMCq
> >>291
> 「いわゆる連想配列かJSONを引数にすれば」、「関数の引数の変数名を取得すること」ができるの?
あー、連想配列かJSONにして、仮引数名を入れればってこと。
どっちみち呼び出し側から変数名を渡すしかないけど、引数の数を増やすよりいいかなと。
0297デフォルトの名無しさん2015/08/31(月) 15:27:54.14ID:Ad0sNMCq
間違った。
必要なのは実引数名だった。
0298デフォルトの名無しさん2015/08/31(月) 15:32:58.58ID:Ad0sNMCq
>>295
うーん、「ああいうの」がどういうのかわからないんだけど、要件によるとしか言えないんじゃないかなあ。

> //変なのきても0にして処理続けます
> $_int = isset($_GET['_int']) ? (int)$_GET['_int'] : 0;
この方針で行くと、期待するパラメータ全てがなくとも処理が続行しちゃうけど、それでいいかどうかは要件次第。
0299デフォルトの名無しさん2015/08/31(月) 15:35:35.28ID:dCXkMxpH
そう、何でも要件次第
用意したフォームを使わずに飛び込んできたとしても
それでもいい場合と良くない場合があるしね。
2ch互換BBSだって、直接dat見に来るのを許容するシステムもあれば
API経由を共用するシステムもあるし
0300デフォルトの名無しさん2015/08/31(月) 15:59:06.34ID:sP4JUecY
>>294 >>298 >>299
ありがとうございます
難しく考えず柔軟に対応することにします
0301デフォルトの名無しさん2015/08/31(月) 20:41:11.85ID:Ny4CPwsw
前提として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のはずですが
この違いが出る原因はなんでしょうか?
0302デフォルトの名無しさん2015/08/31(月) 21:18:52.81ID:l4mmrlHu
Ajaxがjavascriptだったという認識で、PHPではサーバー処理が終わるまでマチになってブラウザと非同期通信困難だろ?
0303デフォルトの名無しさん2015/08/31(月) 21:22:36.97ID:l4mmrlHu
ajaxはほとんど使わないが、javascriptとブラウザの機能を使って、
クライアント側で非同期、リアルタイム通信してるかのように見せかける技術だろ?
サーバーからすると、見せかけのふつうの通信を頻繁するだけで。
0304デフォルトの名無しさん2015/09/01(火) 00:17:19.81ID:iyNI0UTo
日本語不自由すぎ
0305デフォルトの名無しさん2015/09/01(火) 07:10:09.47ID:PA13f3W/
>>301
普通にどっちもエンコードされてるけど
環境の問題じゃ
0306デフォルトの名無しさん2015/09/01(火) 19:32:37.13ID:GtQLzV5s
>>301
ほとんどスレチだけどXMLHttpRequest使ってPOSTするときは自分でエンコードしてから渡してあげないといけない。
同じ指定云々は
送「こういう感じに解釈してよ」受「おう」
っていうやりとりしてるだけ。「こういうふうに変換しといたわ」じゃない所が違う原因。
フォームでの送信はブラウザが勝手にその辺やってくれてるってだけ。
0307デフォルトの名無しさん2015/09/01(火) 21:38:59.47ID:gnKiZ/P3
PHPの画像リソースってメモリ上にあるのでしょうか?
もしメモリ上でなければ、tmpファイル名を確認する方法を教えて下さい。
もしメモリ上なら画像リソースからtmpファイルを作成する方法を教えて下さい。
0308デフォルトの名無しさん2015/09/01(火) 21:54:01.11ID:SHJ8zf1q
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']
03093012015/09/01(火) 22:20:13.67ID:IcLe/G5W
返信ありがとうございました。
もうhttpリクエストとかの流れを勉強してみます。
0310デフォルトの名無しさん2015/09/01(火) 23:30:20.38ID:gnKiZ/P3
>>308
出来ました。
ただtok2でImageMagickが使えないのでインストールする方法を教えて下さい
0311デフォルトの名無しさん2015/09/01(火) 23:55:50.60ID:iyNI0UTo
>>310
ただ、とつなげる理由が分からん。ImageMagickは別の話でしょ
0312デフォルトの名無しさん2015/09/01(火) 23:57:45.93ID:gnKiZ/P3
>>311
ImageMagickを使う為に>>307が分からなかったのですが>>307をしたけどImageMagickが使えませんでした
0313デフォルトの名無しさん2015/09/01(火) 23:59:44.63ID:iyNI0UTo
>>312
GDではできたけど、GDはいやだってこと?
できましたっていうから解決したのかと。
0314デフォルトの名無しさん2015/09/02(水) 00:01:47.26ID:Ke7ywQgJ
>>313
2つの画像からgifアニメを作りたいのですがGDだと無理みたいなので・・・
0315デフォルトの名無しさん2015/09/02(水) 00:04:28.52ID:w8Kps//0
今入ってないならサポートに問い合わせ。
root持ってるならパッケージインストール。
rootは無いけどhttpdを自由に設定できる権限があるならphpを手元にインストールしてそれを使うようにする。
0316デフォルトの名無しさん2015/09/02(水) 00:06:43.25ID:Ke7ywQgJ
>>315
ImageMagickをDLしてPHPファイルを読み込んで関数を使うみたいな方法はないのでしょうか?
0317デフォルトの名無しさん2015/09/02(水) 00:11:38.74ID:w8Kps//0
>>316
php.iniを編集する権限はあるの?
0318デフォルトの名無しさん2015/09/02(水) 00:14:11.74ID:Ke7ywQgJ
>>317
ないみたいです
0319デフォルトの名無しさん2015/09/02(水) 00:15:35.58ID:w8Kps//0
>>318
>>315
0320デフォルトの名無しさん2015/09/02(水) 00:25:58.98ID:Ke7ywQgJ
>>319
ありがとうございました
0321デフォルトの名無しさん2015/09/02(水) 13:32:51.31ID:mwFjmevD
バイナリプログラミングが出来れば自分でライブラリ作れるでしょ
ttp://blog.wnotes.net/blog/article/php-treats-animated-gif
この人みたいに(ちゃんと使えるかは不明)
0322デフォルトの名無しさん2015/09/02(水) 14:03:56.14ID:opT5h4j/
バイナリプログラミングって何だろう?
直接16進で機械語を打ち込むことかな
0323デフォルトの名無しさん2015/09/02(水) 14:05:33.62ID:opT5h4j/
こういうことか?

http://blog.asial.co.jp/754
> <?php // sample.php
> echo pack('C*', 0x50, 0x48, 0x50, 0x21) . PHP_EOL;
0324デフォルトの名無しさん2015/09/02(水) 17:52:10.67ID:DsnqIILb
セッションの保存をデフォルト(ファイルに書くやつ)でやってたのを、mysqlのようなDBに保存をしようと思う。
セッションハンドラクラスを作るのはいいんだけど、既存のアプリケーションに手を加えたくない。
php.ini の設定だけで自前セッションハンドラを組み込む方法ってある?
0325デフォルトの名無しさん2015/09/02(水) 17:54:49.49ID:P+JlZNhE
わざわざセキュリティ落とすようなことしないほうがいいよ
0326デフォルトの名無しさん2015/09/03(木) 22:57:13.60ID:EZEw+dN3
2chみたいな掲示板を作ろうと思っているのですが、
何か良さそうな本はありませんか?
超初心者でも掲示板が作れるようになる本があれば教えてください。
0327デフォルトの名無しさん2015/09/03(木) 23:01:46.74ID:gfhZ4+hm
既成品で動作させて気になる所を改良
0328デフォルトの名無しさん2015/09/03(木) 23:05:48.07ID:EZEw+dN3
いや、一から自分で作りたいんですよ。
何か良さそうな本があったら教えてください。
0329デフォルトの名無しさん2015/09/03(木) 23:11:31.13ID:gfhZ4+hm
既成品を手本にゼロから作る
0330デフォルトの名無しさん2015/09/03(木) 23:15:14.55ID:gMUwrAz0
1レスだけで作ろうと思えば作れそうだな
0331デフォルトの名無しさん2015/09/03(木) 23:39:38.83ID:sW2CV04d
>>326
コードサンプルをみることなく作るってことかな。
それなら、まずはhttpを理解するところからかなぁ。
少なくともhttp methodを知る必要があるし。
0332デフォルトの名無しさん2015/09/04(金) 19:24:17.94ID:VmPNiXwJ
専ブラ対応しないならファイルの扱い方書いてある入門書ならなんでもいいよ
組み方がわからないなら何度も言われてるけど既製品見た方がはやい
0333デフォルトの名無しさん2015/09/04(金) 19:27:32.12ID:z8YQRmVJ
何でファイルに書き込むこと前提なんですかねぇ
0334デフォルトの名無しさん2015/09/04(金) 22:15:59.80ID:u93h3NNf
ふと気になって夜も眠れない思考実験なんですけど、
もしもPCやサーバーやスパコンのCPUを見破り、そのマシン語を自由に操れる悪魔がいたとして、
その悪魔は世界中のありとあらゆるコンピューターをハッキングすることが出来てしまうのでしょうか?
0335デフォルトの名無しさん2015/09/04(金) 22:18:06.21ID:GXVi17zX
>>334 寝言かな?
0336デフォルトの名無しさん2015/09/04(金) 22:23:11.25ID:u93h3NNf
>>335
いえ、思考実験ではありますが、紛う事なき起き事です。
なんとなく思いついて
それが気になって眠れなくなるってことって
結構ありますよね?

でもどうなんでしょう?
ファイアウォールも根本はマシン語なので、
それが使いこなせてしまえば意味がなくなったりしませんか?
0337デフォルトの名無しさん2015/09/04(金) 22:32:22.09ID:WfcwgdCY
マシン語って言葉を最近覚えたんだろうね
0338デフォルトの名無しさん2015/09/04(金) 22:32:32.46ID:voaTutYw
>>336
それさあ、飛び回っている分子を選別し、振り分けできるような悪魔がいたら、いろんな事できるねって話と同じレベルだよ。
0339デフォルトの名無しさん2015/09/04(金) 22:36:24.64ID:u93h3NNf
>>338
うん。マクスウェルの悪魔やラプラスの悪魔と同レベル。
でも不可能であることだけはなんとなくわかりました。
0340デフォルトの名無しさん2015/09/04(金) 23:29:31.17ID:+AIeW6Wf
関係ないけど、マクスウェルの悪魔は実在するよ
0341デフォルトの名無しさん2015/09/05(土) 00:06:05.84ID:f7B8ro5r
マシン語を自由に操れるのと、実行中のプログラムを改変するのは別の話である。
0342デフォルトの名無しさん2015/09/05(土) 01:14:30.57ID:IONLXn6k
俺はインタプリタしか無理だ。
0343デフォルトの名無しさん2015/09/05(土) 05:08:46.02ID:i6kEld9S
PHPはポインタみたいなのありますか?
たとえば、100メガの文字列があるとしして。
後半の50メガ以降、80メガ以降を既成関数に渡したいとすると
カットして実体を渡すほかないですか?
0344デフォルトの名無しさん2015/09/05(土) 07:02:47.17ID:i6kEld9S
諦めてファイルへ書き出しファイルポインタにします
0345デフォルトの名無しさん2015/09/05(土) 08:02:31.97ID:NiREPU1p
>>341
なるほど。
実行中のプログラムの根本であるファイルを操作することは不可能、
つまりそのような悪魔は存在しないと言うことですね。
ありがとうございます。

>>340
細胞内では第二種永久機関のブラウン・ラチェットが実現していると言うこと?
マクスウェルの悪魔は第一種永久機関の問題だよ。
0346デフォルトの名無しさん2015/09/05(土) 10:01:39.68ID:D0k+6Pch
初スレ失礼します。
学校の課題で生徒の出席システムを作ることになったのですが、上手くいきません
どなたかご教授お願いします
0347デフォルトの名無しさん2015/09/05(土) 10:04:13.94ID:D0k+6Pch
使用しているサーバはazure

ソースがhttps://drive.google.com/file/d/0B8a6OH-vNdAMWUl0aGdRX2VLZU0/view?usp=sharing
にうpしてあります。
初めてなので、めちゃくちゃ汚いらしいですが、よろしくお願いします。
0348デフォルトの名無しさん2015/09/05(土) 17:58:19.61ID:8nbMWQS4
何かエラーが出てるならそのメッセージを
こういうコードでこういう結果がほしかったけどこういう結果になるのはなぜかとか
丸投げじゃなくてどう上手くいかないのかコード抜粋してその説明を
0349デフォルトの名無しさん2015/09/06(日) 04:47:29.17ID:BCfPqjBk
学校の課題なんだから、自分でどうにかしないと学習にならないだろ。
0350デフォルトの名無しさん2015/09/07(月) 21:55:02.02ID:IfyRdfTS
そもそもその出席システムとやらが何だかわからないんだからどうしようもない

出欠二値でいいなら生徒をビットに割り振るのが一番スマートだな
nを生徒の番号としてn番目のビットフラグを立てるにはどうするか
n番目のビットが立ってるかどうかどう検出するか

二進数と論理演算で調べればすぐにわかるけどな
0351デフォルトの名無しさん2015/09/08(火) 00:12:02.60ID:fkrc3pHR
>>350
生徒数が増えた場合のアドバイスも書いてあげなよ。
大学なら学部生100人くらいいることはよくあるだろうし、すぐ必要になるさ。
0352デフォルトの名無しさん2015/09/08(火) 07:10:07.73ID:xGk/4aAi
丸投げソース見てやるとかおまいら優しいな
0353デフォルトの名無しさん2015/09/08(火) 21:23:18.02ID:yqLWsTWb
見てるわけなかろ

>>351
1列16人で区切って表示テーブルを横に伸ばせばいいだけ
16人なら全員出席でも7万以下だから昔のファミコンでもなんとかなるレベル
0354デフォルトの名無しさん2015/09/09(水) 18:51:31.08ID:v1G2BtY+
これをPHPでできますかね?
http://1bit.mobi/20110106215505.html
0355デフォルトの名無しさん2015/09/09(水) 18:58:26.50ID:tGrd6Eqr
できてもジャンプアクションのスクロールないとチープ極まりない
0356デフォルトの名無しさん2015/09/09(水) 19:01:57.65ID:v1G2BtY+
>>355
スクロースは別にjsですればいいですが、最低限js未対応ブラでも目次の表示はしたいので。
どのようにして作ればいいのでしょうか?
0357デフォルトの名無しさん2015/09/09(水) 19:10:13.56ID:+quVusLF
PHPとJSでは動作が異なるし、PHPではブラウザからすると静的なHTMになるだけ。
事前にサーバーでHTMが生成してあっても同じ。
そのときPHPでもJSでもなくてもいい。C言語、BASICでもいい。
0358デフォルトの名無しさん2015/09/09(水) 20:26:23.28ID:v1G2BtY+
>>357
PHPが対応鯖多いのでPHPでしたいです。
ただURLのソースはJQを使っていてどのようなソースを書けばいいか分かりません
0359デフォルトの名無しさん2015/09/09(水) 20:49:32.40ID:JyAhRrTZ
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でやるのは諦めたほうがいいような・・・
0360デフォルトの名無しさん2015/09/09(水) 22:01:43.70ID:cP17XdT8
>>356
>js未対応ブラでも、目次の表示はしたい

目次とリンクは、HTMLファイルに書いておく。
そうすれば、JS機能がオフでも、表示される
0361デフォルトの名無しさん2015/09/09(水) 23:23:02.07ID:v1G2BtY+
"&index;"を目次に置き換えるコードを書いてみましたがしてみましたが出来ません・・・
http://notepad.cc/share/jH5opiyc92

<h1>あ</h1>
<h2>い</h2>
<h3>う</h3>
<h4>え</h4>
<h5>お</h5>
<h6>か</h6>
の目次を作ると






になります
0362デフォルトの名無しさん2015/09/10(木) 00:24:43.96ID:satfoS2b
勝手に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;
0363デフォルトの名無しさん2015/09/10(木) 00:31:14.20ID:satfoS2b
hタグにname勝手につけなくてもいいならpreg_replace_callbackらへんは全部削除してね
というかページ内リンクnameじゃなくてidだった

h2とかh3を入れ子にするのは自分でやってねforの中で$maches[0][$i]にセレクタごと入ってるからなんとかして判定して頑張って
0364デフォルトの名無しさん2015/09/10(木) 00:46:13.08ID:1c9BnOEf
>>362
ありがとうございます。また明日してみます。

あと>>361が上手く行かないのは、何が原因でしょうか?
0365デフォルトの名無しさん2015/09/10(木) 01:10:32.85ID:9M5qBB4N
>>364
何というかコードへの突っ込みどころは多すぎるけど, 何より正規表現がダメ(>>362のを使うべき)

/.*\<h([1-6])\>(.*?)\<\/h\1\>.*/u

という正規表現をしているが, これでは .* は標準で貪欲マッチだから最後のh*タグにしかマッチしない


正規表現使うよりSimpleXMLとかで処理した方が楽だし確実だし賢いと思うけど。
0366デフォルトの名無しさん2015/09/10(木) 04:23:28.45ID:l18x+WdQ
http://www.dmm.co.jp/digital/videoa/-/list/=/sort=saleranking_asc/

たとえばDMMの動画紹介などで、サムネイルがずらっと整列して並んでいるのですが
こういった表示をするにはCSSでするんでしょうか?それともPHPで処理して反映させるんでしょうか?
0367デフォルトの名無しさん2015/09/10(木) 05:16:11.27ID:BZtDa5Me
>>366
調査方法はいろいろあるけれど、結論としてはスタイル。
/*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;
}
0368デフォルトの名無しさん2015/09/10(木) 11:33:11.46ID:+aSujBcM
>>367
おまえ親切だな。
0369デフォルトの名無しさん2015/09/10(木) 22:13:29.23ID:mAu5JtU+
Eclipseが重いねん
オールインワンから何を削ると軽くなるの?
もしくは違うIDE行ったほうがいいのかな
デスクトップはi7でSSDで16GBメモリだから無問題なんだけどノートがi5でHDDで4GBメモリだからヤバイ
どちらも64bit Windows7
0370デフォルトの名無しさん2015/09/10(木) 22:25:26.56ID:/OF3RUxs
phpやる人はasp.netはやらないんですか?
0371デフォルトの名無しさん2015/09/10(木) 22:44:43.06ID:+aSujBcM
Atomつかおうぜ
0372デフォルトの名無しさん2015/09/10(木) 22:53:53.10ID:mAu5JtU+
>>371
Atomいいよな
html(.tpl)とかJSとかcssはAtom使ってるわ
でもずーーーーっとWin畑でVisualStudioだったから実行時にステップ実行で変数見れないの気持ち悪いねん
var_dumpとかダルいねん
0373デフォルトの名無しさん2015/09/11(金) 03:03:42.84ID:0qcobZsx
>>372
AtomだろうがEclipseだろうがステップ実行できるだろ。
無能を棚に上げるな。
0374デフォルトの名無しさん2015/09/11(金) 08:47:28.11ID:k9ZbFTSR
VSに慣れると厳しいわな
あれと比較すると他のIDEはウンコ以下
0375デフォルトの名無しさん2015/09/11(金) 09:50:52.88ID:yoTyzIo0
ネット上でPHPを扱うサーバってどこ使えばいいのかな。
無料なところで、さーっと探してみたら「Rental Orbit Space」が何だか良さそうだったのだけど、
ほかになにかおすすめのところがあるようなら教えてほしい。
0376デフォルトの名無しさん2015/09/11(金) 10:39:11.71ID:t30ynhYx
板チ
http://peace.2ch.net/hosting/
0377デフォルトの名無しさん2015/09/11(金) 14:24:42.27ID:QQGqaHlG
mysqlを利用する場合はどちらがオススメですか?ページ内ではselectを3回ほど使ってます。

1.使用するデータを全部読み込んでからhtmlの出力を始める。

2.使用する直前に必要なデータだけを読み込む。

現在1の方法を使っているのですが、2の方が表示速度が上がるのではないかと。
0378デフォルトの名無しさん2015/09/11(金) 14:27:42.42ID:/k4jExi0
2はajax使うの?

まあ両方やって計測で
0379デフォルトの名無しさん2015/09/11(金) 14:29:02.46ID:r0qleKIN
mysqlの使い方次第
3回使用しているところでどれくらい時間が掛かっているかを調べ
チューニングの方法をまず考えた方が良いかも。
0380デフォルトの名無しさん2015/09/11(金) 14:36:42.85ID:QQGqaHlG
>>378
phpとmysqlだけです。
それ以上の知識が無いので…。
0381デフォルトの名無しさん2015/09/11(金) 14:41:15.72ID:QQGqaHlG
>>379
標準的な方法があるわけではなくその都度良い方を選んだらいいと言う事ですね。
0382デフォルトの名無しさん2015/09/11(金) 20:42:48.90ID:8lckqHAv
$val = "ichigo";
ってのがあったとして
$ichigoって変数にしたいのですがどうしたら良いですか?

具体的にはforeachの中でarrayに("ichigo", "mikan",...)
とあって、$valをキーにしました。
"ichigo"と$ichigoが欲しくて
$val_1 = "$" . "$val";
としたのですが'$ichigo'になってしまいました。
0383デフォルトの名無しさん2015/09/11(金) 20:45:55.94ID:6RIVBYPF
$$val
0384デフォルトの名無しさん2015/09/11(金) 20:56:24.18ID:mSu0XMwg
LAMP環境です
ページAでsetcookie('test',123)してるんですが、ページBでcookieの中を見るとと入っていません

ググったんですがよくわかりません
よろしくお願いします
0385デフォルトの名無しさん2015/09/11(金) 20:57:43.88ID:8lckqHAv
事故解決しました
${"$ichigo"}でした
0386デフォルトの名無しさん2015/09/11(金) 20:58:53.79ID:t30ynhYx
ページBは別ディレクトリなのか?
0387デフォルトの名無しさん2015/09/11(金) 21:20:38.66ID:GJirAVL+
>>384
実際のコードを書け, 特にsetcookie側。
0388デフォルトの名無しさん2015/09/11(金) 21:26:55.46ID:Z45NruML
たぶんpathだな
03893842015/09/11(金) 21:41:13.86ID:mSu0XMwg
答えになってないかもですが、symfonyを使ってます
AとBはcotrollerも違い、viewのディレクトリも違います


ソースは今日は出先なので貼れないですが以下のような感じです

Acontroller.phpの中で、
テーブルにレコードinsertするActionの一番最後に書いてます

function registAction{
 //レコードinsertする処理
 
 setcookie('test',123);

}


Bcontroller.php
ではcookieに関する処理は入れてません

cookieはブラウザ(Chrome)のDeveloperツールで確認してます
0390デフォルトの名無しさん2015/09/11(金) 22:16:36.36ID:GHVwR1ig
entensionでcache関連の奴どれか入れるとレスポンス良くなるますか?
0391デフォルトの名無しさん2015/09/12(土) 09:56:39.53ID:R3r/vRAo
2chのread.cgi/hoge
みたいなphp以下のファイルを処理する事ってできませんかね?
0392デフォルトの名無しさん2015/09/12(土) 11:08:14.49ID:KVS4ZFCE
>>384
symfony使ったことないけどhttpレスポンス管理するオブジェクトあるっぽいからそこで食わせればいいんじゃね
sfWebResponseとsfWebRequestでググれば使い方出てくる

>>391
mod_rewrite
じゃなければもっと詳しく書いてくれないとわからない
0393デフォルトの名無しさん2015/09/12(土) 11:10:06.53ID:K5Xj9mys
普通にファイルを開いて読めば良いだろう
0394デフォルトの名無しさん2015/09/12(土) 15:09:05.41ID:ss/jDHIV
>>391
PATH_INFOのこと?
0395デフォルトの名無しさん2015/09/12(土) 15:55:05.76ID:R3r/vRAo
普通のサーバーじゃ出来そうにないな
0396デフォルトの名無しさん2015/09/12(土) 16:40:00.67ID:v8+tPOvk
普通にPATH_INFO使え
0397デフォルトの名無しさん2015/09/12(土) 16:50:08.17ID:1mS4NSAq
phpってhtmlやjavascriptなんかも混ぜて書ける変態言語に見えるんですが、ちゃいますか?
0398デフォルトの名無しさん2015/09/12(土) 17:07:47.18ID:Lvz/9L2y
>>397
あまり知られてないけど、shも書けるしCも書けるよ
0399デフォルトの名無しさん2015/09/12(土) 21:51:57.35ID:mTeFJ4oV
PHPで童貞捨てたんですが、次に学ぶためにとっつき易い言語って何ですか?
Cが似てるとかJavaが近いとかそんなアドバイスくださいな
0400デフォルトの名無しさん2015/09/12(土) 22:29:39.47ID:gDZ5aTy9
>>399
Cが似てる
0401デフォルトの名無しさん2015/09/12(土) 23:44:50.71ID:TYwAh20p
>>399
JavaやってからCだな
ただその前にJavaScriptは必須
0402デフォルトの名無しさん2015/09/12(土) 23:49:30.21ID:3+0RjRCl
PHPをグニャグニャにしたのがperl
0403デフォルトの名無しさん2015/09/13(日) 00:39:33.65ID:77ddCjlU
どう考えてもC。
PHP7でついに本当の配列を手に入れたとか言ってる意味が分からないならますます。
0404デフォルトの名無しさん2015/09/13(日) 01:10:18.96ID:zE88tHy7
プログラミング初心者でやっとPHPが手になじんできた程度の者です。
レンタル鯖を借りて会員制の自サイトを公開するとなると、どの程度の時間で習得できますか。
最近Mysqlの勉強をしているのですがあまり進捗がないです。
おすすめの本、サイトがあれば教え得頂きたいです。
0405デフォルトの名無しさん2015/09/13(日) 01:15:18.94ID:H6vWVRfH
俺もおすすめのレンサバ教えてほしい
0406デフォルトの名無しさん2015/09/13(日) 01:34:59.27ID:cf7CWKJI
var_dump('鯖板へ');
0407デフォルトの名無しさん2015/09/13(日) 01:39:02.72ID:SU3r4vhu
会員制の自サイトを作るのは難しいことではない
難しいのは会員の情報を守ることだ
0408デフォルトの名無しさん2015/09/13(日) 01:57:14.30ID:cf7CWKJI
さらに会員を集めなくてはならない。
0409デフォルトの名無しさん2015/09/13(日) 10:54:35.22ID:ts9uuw7s
>>404
1年くらい。
PHP+MySQLに半年。セキュリティに半年。
0410デフォルトの名無しさん2015/09/13(日) 14:46:36.91ID:D2q3+sgT
ImagicKかGDのどちらかで、画像処理をしたいのですが、jpg gifどちらでもプログラムを変えることなく組めるのはどちらですか?
0411デフォルトの名無しさん2015/09/13(日) 15:21:48.77ID:SU3r4vhu
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
0412デフォルトの名無しさん2015/09/13(日) 16:53:22.24ID:77ddCjlU
画像リソースを読み込んでしまえばどちらも同じ
0413デフォルトの名無しさん2015/09/13(日) 17:38:28.92ID:iQC47Pyn
さくらのレンタルサーバーを使ってるのですが
Fatal error:Call to undefined function ftp_connect

上記が表示されてアップロードできません。
調べたらconfigureオプションで --enable-ftpを追加すれば可能とのことでしたが

configureにはどうやってアクセスするのでしょうか?
コマンドラインの操作手順等が分かりません。
0414デフォルトの名無しさん2015/09/13(日) 17:40:46.15ID:RKUXc0Tt
さくらのサーバーを使ったこと無いけど基本モジュールはビルド済みで、php.iniの設定だけでは?
0415デフォルトの名無しさん2015/09/13(日) 18:01:08.92ID:iQC47Pyn
iniに記述してみましたが反応なしでした。
0416デフォルトの名無しさん2015/09/13(日) 18:51:05.80ID:77ddCjlU
>>413
> configureオプションで --enable-ftpを追加すれば可能
これはconfigureというコマンドのオプションに追加ってことだよ。
configureはMakefileを作るためのコマンド。その後出来上がったMakefileを使ってmakeする。
つまりphpをソースからコンパイルする人向けの話だよ。
0417デフォルトの名無しさん2015/09/13(日) 18:57:27.34ID:iQC47Pyn
>>416
ややこしそうですね
こちら側で修正できませんでしょうか?
0418デフォルトの名無しさん2015/09/13(日) 19:27:22.03ID:4H3dG/Do
>>417
レンタルサーバーじゃむり
0419デフォルトの名無しさん2015/09/13(日) 19:49:44.44ID:gd0zNYZx
>>417
「FTP関数の使用」は × になってるよ
ユーザーが変更するのは無理でしょ

https://help.sakura.ad.jp/app/answers/detail/a_id/2105
0420デフォルトの名無しさん2015/09/13(日) 23:51:21.17ID:M+tl4tzP
index.php?q=文字列
で受け取った "文字列" をJSの変数
 var variable ="文字列";
に入れておいて、その直後に
index.html
を読み込んでその中で使いたいのですが、やり方が分かりません。
ググルキーワードを教えてください。
0421デフォルトの名無しさん2015/09/14(月) 01:19:08.17ID:btLla6l6
QUERY_STRING もしくはCONTENT_LENGTH js だろ。

php関係ねーだろドサンピン
httpdの事を調べなこのどシロウトが
世話がやけるぜスカンピン
おととい きやがれこのノータリン
0422デフォルトの名無しさん2015/09/14(月) 01:24:45.41ID:BKH9gjXB
GETメソッドは、URLの末尾に「?」をつけ、
「パラメーター名="値"」という形式で、データを送る

一方、POSTメソッドは、フォームの中のコントロールに、
値を入力して、データを送る

詳しくは「get post 違い」で検索して

そして、JSファイルに書き込んだら、
HTMLファイルに、JSファイルのパスを書いておく

<script src="File1.js"></script>
0423デフォルトの名無しさん2015/09/14(月) 01:32:16.31ID:IkwcTGNO
JSファイルに書き出すと、
複数からアクセス合ったとき困ることにならないか?
0424デフォルトの名無しさん2015/09/14(月) 01:52:01.56ID:dwa7hTy+
>>420
> index.html
> を読み込んでその中で使いたい
使うのはhtmlおよびそのJSを読み込み、解釈したクライアントであって、php側が使うものではない。
0425デフォルトの名無しさん2015/09/14(月) 14:23:48.75ID:4n9SKrVI
別にファイルを書き出しておく必要はないね。
PHPでJavaScriptのスクリプトを動的に生成すればいいだけ。
0426デフォルトの名無しさん2015/09/14(月) 15:48:44.95ID:B32AStzW
>>420
http://php.net/manual/ja/reserved.variables.get.php
0427デフォルトの名無しさん2015/09/14(月) 15:50:43.03ID:h9CenDqd
>>425
その方式だと
<script >...</script>がindex.htmlの前に入るんじゃないですか?
問題無いですか?
0428デフォルトの名無しさん2015/09/14(月) 17:04:28.61ID:7eSzmWQT
index.htmlにjs記述してindex.htmlでパラメータ受け取ればいいんじゃないのか?
0429デフォルトの名無しさん2015/09/14(月) 17:20:33.69ID:B32AStzW
そもそも、index.phpで受け取ったものをindex.htmlで使いたいというのはあってるんだろうか?
0430デフォルトの名無しさん2015/09/14(月) 17:58:40.45ID:h9CenDqd
>>429
元々index.htmlで作ったページをbrowserから引数を渡す仕様に変更したい場合などじゃあない?
0431デフォルトの名無しさん2015/09/14(月) 22:51:36.27ID:LFk2qsIS
ググりまくったところ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 )は入れてます
0432デフォルトの名無しさん2015/09/14(月) 22:55:12.35ID:dwa7hTy+
apacheを止めたという文章がないままapacheのスタートを押してるけど、その辺大丈夫なの
0433デフォルトの名無しさん2015/09/14(月) 22:58:43.11ID:LFk2qsIS
>>432
すみません止めてます
止めて尚且つコンパネも終了してます
念のため再起動もしました
0434デフォルトの名無しさん2015/09/14(月) 23:35:21.73ID:dwa7hTy+
>>433
実際ポートがLISTENしてないことも確認した?
0435デフォルトの名無しさん2015/09/14(月) 23:41:48.14ID:LFk2qsIS
>>434
はい
またバックアップしたPHP_bakeup(旧PHPフォルダ)をPHPにリネームすると即座に起動します
0436デフォルトの名無しさん2015/09/14(月) 23:48:32.38ID:dwa7hTy+
なんだろ、とおもってぐぐったら先頭にこんなん出てきたけど、ググりまくったとのことなので別件なのかな。
http://ninnin.in/diary/xampp-error-this-may-be-due-to-a-blocked-port-missing-dependencies/
0437デフォルトの名無しさん2015/09/14(月) 23:51:59.14ID:LFk2qsIS
>>436
このページも見ましたね……
ちょっと解決できそうにないので5.9積んだEclipseの導入を考えてみます
ありがとー!
0438デフォルトの名無しさん2015/09/14(月) 23:53:02.45ID:LFk2qsIS
間違いました 5.6です
0439デフォルトの名無しさん2015/09/14(月) 23:53:39.65ID:dwa7hTy+
いえいえ。お役に立てず。
ちなみに再頒布可能パッケージは64bit版入れてある?
あとはぱっと思いつくものないです。(イベントビューア見てみてとかそういう感じになっちゃう)
0440デフォルトの名無しさん2015/09/14(月) 23:58:33.31ID:LFk2qsIS
再頒布パッケージはx86とx64入れてます
元々Win畑だったのでそこら辺はなんとなく想像がついて色々やってみたのですがXAMPPだけはどうにもならずに今回質問しました
どうもありがとう
0441デフォルトの名無しさん2015/09/14(月) 23:58:57.36ID:dwa7hTy+
そっかぁ。無念。
0442デフォルトの名無しさん2015/09/15(火) 05:26:50.64ID:FdSfZNLJ
php上書きで動くほど単純なもんじゃないだろw
php5.6用のapacheモジュール登録したり
php.iniも前バージョンの参考にして最低限xampp用のパスに書きなおさないとだめだろ
素人はおとなしくパッケージのままつかっとれ
0443デフォルトの名無しさん2015/09/15(火) 08:33:34.00ID:c6kBSd9X
php_mysqli.dll
の有無で何が変わりますか?
入れると検索が速くなりますか?
0444デフォルトの名無しさん2015/09/15(火) 20:11:48.06ID:dFBKAE/q
PHPを使って、別のWEBページの特定のHTMLを引っこ抜いてきて表示することってできますか?
自分のブログのコメント欄のみを見やすく表示する「コメントビューワー」を作りたいのですが…
0445デフォルトの名無しさん2015/09/15(火) 20:15:12.24ID:hBquVAC9
自分のブログならDBあたりに保存されているんだからそこ読めばいいだけ
0446デフォルトの名無しさん2015/09/15(火) 20:17:29.12ID:iJn5Afvq
一度全部のHTMLを読み込んだ上で必要な箇所を抜き出して表示することは可能
php スクレイピング
とかでぐぐるといいんじゃないっすかね
0447デフォルトの名無しさん2015/09/15(火) 20:26:43.08ID:dFBKAE/q
>>445
livedoorブログはデータベースにアクセスできないんですよね…

>>446
ありがとうございます!スクレイピング、聞いたことあります
ちょっと検索してみます!
0448デフォルトの名無しさん2015/09/15(火) 22:49:51.66ID:Zyfo7CCu
ググったけど本当にXAMPPのPHPフォルダ上書きでおkとか書いてるblogそこそこあるな
PHPに限らんけどアホみたいな記事あげてる奴多すぎるからggrksってのも微妙だな
0449デフォルトの名無しさん2015/09/15(火) 22:56:32.01ID:Zyfo7CCu
もう見てないだろうけどオールインワン重いし色々古いし特にPHPオンリーならいいとこないからやめたほうがいい
ttp://sourceforge.net/projects/xampp/files/XAMPP%20Windows/5.6.12/ ポータブルがいいならここのZIP版
IDE必要ならEclipseなりなんなり別に落として使うといいよ
俺はPHPStormだけど軽いし強力なので金があるならオススメ(ステマ)
0450デフォルトの名無しさん2015/09/15(火) 23:52:05.89ID:wfKXWUgu
パッケージにphp.iniというファイル自体は入ってないから上書きで設定引継ぎなんじゃないの。
php.ini.develop っぽいやつじゃない?
今回の話のは旧バージョンのディレクトリリネームしてるからphp.ini行方不明だろうけど。
0451デフォルトの名無しさん2015/09/16(水) 02:27:28.84ID:kmfiaTaj
>>447ですが、調べてもさっぱりわかりません…

うーん、別のサイトで同じことやってたからソース見て参考にしようと思ったんだけどphpって難しいね
0452デフォルトの名無しさん2015/09/16(水) 02:45:23.08ID:zBDmVf67
>>451
file_get_contents('http://〜') で HTML 取ってきて、その中から欲しい部分を取り出せばいい。
HTMLを正確にパースしなくても、うまいこと正規表現書いたりその他ロジックを組み合わせればいい。
例えば、まずコメント部分を探すため特定のクラスが指定された div を見つけ、その後ろをコメント1件ずつを探すため特定のクラスの付いたタグを探すとか。
開始タグと終了タグの対応をきとんと取ろうとすると大変だから、適当に誤魔化して処理するといい。
0453デフォルトの名無しさん2015/09/16(水) 03:19:18.85ID:ieR9FMOp
変なこと教えずにxpath使えでいいじゃん。
0454デフォルトの名無しさん2015/09/16(水) 03:22:50.57ID:zBDmVf67
htmlが厳密だったらそれでもいいんだろうけど
0455デフォルトの名無しさん2015/09/16(水) 04:05:57.10ID:YSsosHmp
DOMDdocument::loadHTML
0456デフォルトの名無しさん2015/09/16(水) 06:47:11.48ID:HSSwq9JZ
質問者はそもそもPHPの扱い方もわからなければ
そもそもプログラム経験もないのではないか?
ヒント与えたところで作れないだろうな
0457デフォルトの名無しさん2015/09/16(水) 14:50:47.08ID:LN3L51MD
file_put_contents('%SystemRoot%\system32\hoge.dll', $dll);
C:\Windowsなどが入る予定の%SystemRoot%が環境変数としてではなく文字列として認識され
そんなフォルダないよと言われるのですが
Windowsの環境変数使う時ってどうしたらいいのでしょうか?
0458デフォルトの名無しさん2015/09/16(水) 14:59:36.61ID:aL/dguIa
一般には外部コマンド実行で、PHPに取得命令があればそっち。
0459デフォルトの名無しさん2015/09/16(水) 15:03:06.05ID:7sbTeZHX
getenv('SystemRoot') してつなぐ
0460デフォルトの名無しさん2015/09/16(水) 15:04:15.17ID:aL/dguIa
これで


<?
$SystemRoot = exec("echo %SystemRoot%");
$dllpath = "{$SystemRoot}\system32\hoge.dll";
print_r([$SystemRoot,$dllpath]);
//file_put_contents($dllpath, $dll);
0461片山博文MZ ◆T6xkBnTXz7B0 2015/09/16(水) 15:08:12.18ID:OezDmTKu
$_ENV['環境変数の名前']
0462デフォルトの名無しさん2015/09/16(水) 15:12:56.40ID:LN3L51MD
レスありがとうございます。
$_ENVではUndefined Indexになったで、>>459さんのgetenv使う方法でとります。
exec使う方法も参考になりました。
どうもありがとうございました。
0463デフォルトの名無しさん2015/09/16(水) 16:10:09.45ID:S9pU6Zcj
$say = $greeting . " ななしさん";
$greeting = "おはよう";
echo $say; //おはよう ななしさん
$greeting = "こんにちは";
echo $say; //こんにちは ななしさん

イメージとしてはこのようにしたいのですがこれは期待どおり動作しません
リファレンスにして
$say =& $greeting . " ななしさん";
に変えると変化して動作するのですが「ななしさん」が表示されません

どうするのが正しいんですか?
0464デフォルトの名無しさん2015/09/16(水) 16:16:09.27ID:ieR9FMOp
正しい方法なんてものはないし、期待通りに動かすことぐらいできそうな気がするけどな。
ただそうするのに何らかの理由をつけて避けてるだけで。
0465デフォルトの名無しさん2015/09/16(水) 16:27:31.20ID:S9pU6Zcj
関数使わないでも変数にリファレンス使うだけでいけそうだったから質問しただけです
エラー出してくれればよかったのですが
あのコードで動いてしまったのでちょっと変えれば動くもんかと
0466デフォルトの名無しさん2015/09/16(水) 16:32:23.17ID:kmfiaTaj
>>452
ありがとうございます。
>>455さんの方法と合わせて、以下のようなコードを書いてみました。

<?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を触るのは初めてで若干混乱していますが、一応うまくいったようです…
ちなみに、「->」という演算子は「右辺の中の左辺のの要素を参照する」っていうことでいいんでしょうか…?
0467デフォルトの名無しさん2015/09/16(水) 16:32:23.54ID:ieR9FMOp
>>465
evalにしてみたら?
0468デフォルトの名無しさん2015/09/16(水) 16:40:19.72ID:zBDmVf67
>>465
これは
$say =& $greeting . " ななしさん";
多分こう評価されるんでしょう。
($say =& $greeting) . " ななしさん";

$say は $greeting のリファレンスになり、それと文字列を繋げた値が作られ、その値は捨てられる。

で、やりたいことは多分クラス化してやるような処理なんじゃないかな。
0469デフォルトの名無しさん2015/09/16(水) 16:40:48.24ID:OCykl+Gn
知り合いが作ったソースを修正しなきゃいけないんだけど、ど初心者なもんでちょっとご教授頂きたい。

*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^)/全部じゃなくてもいいので一部でもいいです!お願いします
0470デフォルトの名無しさん2015/09/16(水) 16:52:29.82ID:ieR9FMOp
>>469
その知り合いに聞けばいいじゃんという回答ではだめなんだろうか。知り合い死んだの?
0471デフォルトの名無しさん2015/09/16(水) 16:59:34.00ID:9fL6Ueyi
PHP マニュアル
ttps://secure.php.net/manual/ja/index.php

クラスの中には、定数や変数("プロパティ" といいます)、
そして関数("メソッド" といいます)を含めることができます

ひとまず検索するか、PHP マニュアルを読んでくれ
0472デフォルトの名無しさん2015/09/16(水) 17:04:11.27ID:ieR9FMOp
というだけではアレか。
最初の質問は、出力したいものがオブジェクトならリフレクション使う。
そうではなく多次元配列の中のオブジェクト以外を出力したいということなら自前でちょっとした関数作る。
最後二つはapacheの話。下から二つ目は何か誤解を含んでいる気配も。

付け焼刃的にやりたいというわけじゃないなら公式マニュアルどんどん読めばいいよ。
0473デフォルトの名無しさん2015/09/16(水) 18:37:59.26ID:GuiiBHkk
>>469
子にオブジェクトって継承なの?
親に直接ついてる子の意味がちょっとよくわからない。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ってどういうもの?
ググったけどようわからん…
0474デフォルトの名無しさん2015/09/16(水) 18:52:44.93ID:ieR9FMOp
>>473
彼のいう「子にオブジェクト」って、メンバに別のクラスのインスタンスを含むってことじゃないかしら
0475デフォルトの名無しさん2015/09/16(水) 20:37:16.81ID:OCykl+Gn
想像以上にレスがきてる!

>>470 もうコンタクトを取ることは不可能臭い
>>471,>>472 急にお腹が・・・
>>473 ありがたや・・・
>>474 親と子って違うのかorz

えっと・・・レスを参考にして質問を修正すると・・・
プリントデバッグ使うと動作が不安定になってオーバーフローしてしまうので
インスタンスのプロパティ表示を小分けにしたり、インスタンスの中のインスタンスの詳細を表示しないように設定できませんか
(´・ω・`)こんな感じですかね
class testA
{

}
0476デフォルトの名無しさん2015/09/16(水) 21:04:25.11ID:ieR9FMOp
>>475
それなりに簡単に自分で作れるから勉強と思って頑張りな。
それかxdebug入れてvar_dumpを強化するか。
0477デフォルトの名無しさん2015/09/16(水) 21:41:01.67ID:OCykl+Gn
(´・ω・`)はい、分かりました。 >>471のマニュアル読んできます
04784472015/09/17(木) 16:29:03.53ID:1rTPpGdU
//リファラーのURLを取得
$referer = $_SERVER["HTTP_REFERER"];

>>447で質問したものですが…

//取得した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部分だけを抜き出すにはどうすれば良いのでしょうか
0479デフォルトの名無しさん2015/09/17(木) 16:43:30.98ID:Z358njol
getElementById じゃないの?
idは1個しかない前提だから、そのまま返ってこないかな
04804472015/09/17(木) 16:52:17.92ID:1rTPpGdU
>>479
あ、すみません;
sが余計でしたね…しかしどうしてもできない…
たとえば、取得したHTMLのID名「blog-footer」を全部引っこ抜きたい場合、
$hoge = getElementById('blog-footer')->item(0);
echo $doc->saveHTML($hoge);

と書いても無理でした…
なんでなんでしょうか…
0481デフォルトの名無しさん2015/09/17(木) 17:05:32.70ID:bU092Fsh
マニュアル読んでないからじゃないかな。
0482デフォルトの名無しさん2015/09/17(木) 17:10:09.39ID:N+2d3iGi
public DOMNodeList DOMDocument::getElementsByTagName (string $name)
public DOMElement DOMDocument::getElementById (string $elementId)
なのだが。
0483デフォルトの名無しさん2015/09/17(木) 17:37:16.77ID:Z358njol
まずIDは1個なので、Listが返るわけでもなし、item(0)なんてやる必要はない。
で、
ちょっとやってみたけどsetIdAttribute呼ばないと駄目な感じ?
一応呼んだら出来たけど、これじゃ使いにくそうな。
0484デフォルトの名無しさん2015/09/17(木) 17:41:57.38ID:N+2d3iGi
頭悪い奴しかいない予感
0485デフォルトの名無しさん2015/09/17(木) 17:42:38.67ID:JaPdUxaK
IDは1個であるはずだけど>>447の中じゃclassのように使ってたりしてなw
0486デフォルトの名無しさん2015/09/17(木) 17:49:19.98ID:Z358njol
ま、PhantomJSとNokogiriばっか使ってるからphpは任すわ
0487デフォルトの名無しさん2015/09/17(木) 18:01:29.12ID:bU092Fsh
>>483
だからマニュアル読みなって
0488デフォルトの名無しさん2015/09/17(木) 18:21:44.45ID:N+2d3iGi
Rubyのことも良くわかってなさそうだな、こいつ
0489デフォルトの名無しさん2015/09/17(木) 18:37:41.50ID:2BhOyj3T
Fatal error: Call to undefined function getElementById()
エラーの意味くらい理解できるようになれよ。

$hoge = $doc->getElementById('blog-footer');
echo $doc->saveHTML($hoge);
0490デフォルトの名無しさん2015/09/17(木) 18:38:42.85ID:2BhOyj3T
ageてしまい大変申し訳ございません
0491デフォルトの名無しさん2015/09/17(木) 18:38:57.46ID:z0CdisW0
( ^ω^)・・・俺477に書いた初心者でそのモジュール知らないけど item(0)いらないんじゃね?getElementsじゃなくてgetElementだし
返り値見てもDOMElementか無ければNULLが返るってあるし
中の値?みたいならtextContent とかinnerTextとか参照すればいいんじゃない?(違ったらごめんね)
0492デフォルトの名無しさん2015/09/17(木) 20:01:18.86ID:JaPdUxaK
つうかSimpleXMLのほうが使いやすいだろうに
0493デフォルトの名無しさん2015/09/17(木) 20:31:11.04ID:hKr4+HsM
SimpleXMLはXMLとして不適切なHTMLはまともに読めないんじゃなかったっけ?
DOMDocumentならloadHTML関数でかなり強力に読める(Warningもオプション付ければ抑制して後から取得も出来る)

DOMNodeからSimpleXMLを作るにしても, 最終的にHTML出力を得るならDOMを使うのがいいんじゃない?
0494デフォルトの名無しさん2015/09/17(木) 20:51:06.20ID:2BhOyj3T
まあDOMはやたらメモリ食うからなあ
>>447の使い方的にlivedoorブログがちゃんとしたソース吐いてるならSimpleXMLでもいいんじゃね
0495デフォルトの名無しさん2015/09/17(木) 21:18:39.96ID:hKr4+HsM
試してみたけど, SimpleXMLで幾つかのlivedoorブログのソースをパースしようとしたらfalseが返ってきた(全てXHTML1.0)
エラーログに大量のパースエラーが記録されてるから, ソースからSimpleXMLでパースするのは困難で, DOMからSimpleXMLに変換するしかなさそう(DOMでは読めた)
04964472015/09/18(金) 15:10:18.11ID:Qyee3ty4
>>489
すみません;無事出来ました…;
ご教授頂きありがとうございました…

>>491さんもありがとうございます
確かにDOMだと読み込みまでの時間が遅くて若干もっさりですね…
0497デフォルトの名無しさん2015/09/18(金) 20:53:13.78ID:+pqm/1Nv
php-fpmの仕組みバッチリ理解してる人いる?
0498デフォルトの名無しさん2015/09/19(土) 15:25:46.90ID:ISETQD0O
index.phpをデフォルトページにしておいて、
IE8,9,10で
来た人には
indexIE8910.html
それ以外の人には
index.html
を開かせるようにするにはどう書けばよいでしょうか?
0499デフォルトの名無しさん2015/09/19(土) 16:08:41.80ID:H93lCnag
UA拾って振る。以上。
0500デフォルトの名無しさん2015/09/19(土) 16:24:22.58ID:ISETQD0O
>>499
もうちょっと詳しく教えてくだしゃいませお奉行様。
0501デフォルトの名無しさん2015/09/19(土) 16:31:57.85ID:H93lCnag
>>500
ゆーざーえーじぇんと php ぐぐる
0502デフォルトの名無しさん2015/09/19(土) 16:35:59.14ID:ISETQD0O
>>501
index.phpのサンプル作ってくだしゃいませ、
お代官様!
0503デフォルトの名無しさん2015/09/19(土) 16:41:10.23ID:UDnFG9E7
IE弾く流れがあるから
IE使ってても見れるのに見れなくしてるサイトとかあるし
IE使いが積極的にUA偽装してるし意味ないで・・・
0504デフォルトの名無しさん2015/09/19(土) 17:46:05.37ID:H93lCnag
ブラウザの分岐つくんのめんどくさいんだぜ。テキトーにどっかの拾って使っとけ。
0505デフォルトの名無しさん2015/09/19(土) 17:59:55.14ID:NWKVhdko
IE9ってまだ現役扱いで対応してる?
切り捨てているサイトが出てきたな
0506デフォルトの名無しさん2015/09/19(土) 19:15:52.32ID:ISETQD0O
>>504
>テキトーにどっかの拾って使っとけ。
それをここに書きなさい。この紋所が目に入らぬか!控えおろー
0507デフォルトの名無しさん2015/09/19(土) 19:27:17.46ID:+Kt9F6BW
BrowserMatch/ReWriteRuleとかwebサーバ側で判断と分岐させるか、
php側で$_SERVER['HTTP_USER_AGENT']見て読ませるcss/js変えたりheader()でLocation吐いて移動させたりしろ
はい終わり
0508デフォルトの名無しさん2015/09/19(土) 19:52:46.47ID:H93lCnag
>>506
アホ
0509デフォルトの名無しさん2015/09/19(土) 21:34:22.18ID:ISETQD0O
>>507
かたじけない。
0510デフォルトの名無しさん2015/09/20(日) 02:47:51.76ID:X3nquW9o
PHPはもう捨てようぜ・・・
0511デフォルトの名無しさん2015/09/20(日) 03:03:07.63ID:RNt2QHn9
ua詐欺ってどこで見分けられんだろjavascriptでそのブラウザ特有の命令投げればわかんのかな
0512デフォルトの名無しさん2015/09/20(日) 07:47:40.74ID:dFW+uZ12
そっちのほうが確実
js切ってるやつ考慮してとかいってphpやhtaccessで分けるのはクレイジー
0513デフォルトの名無しさん2015/09/20(日) 09:34:13.66ID:1JwuQWhK
>>511
tteb?
0514デフォルトの名無しさん2015/09/20(日) 11:19:00.05ID:Ptvv9YCq
UA詐称まで視野に入れてUA判定しなきゃならない状況がそもそもクレイジー
といってもこれまで存在し続けたブラウザの独自仕様がなくなることは無いんだろうな
0515デフォルトの名無しさん2015/09/20(日) 11:20:28.44ID:GyUJ1dZ9
Operaに当たり前のようにUA詐称機能が付いてた頃が懐かしい。
0516デフォルトの名無しさん2015/09/20(日) 13:39:59.27ID:VoXgoN5g
UA詐称されて困るのってどういう時?
0517デフォルトの名無しさん2015/09/20(日) 13:45:51.66ID:f3Nx3+I+
>>516
おれもそれが知りたい
0518デフォルトの名無しさん2015/09/20(日) 17:02:18.73ID:BPPcfRt3
直接困るのは、そのブラウザをはじきたいと思っている場合じゃないか?
背景は宗教的な理由かもしれない。
0519デフォルトの名無しさん2015/09/20(日) 18:50:13.22ID:4L7qLZxU
憎きリンゴ教とかな
0520デフォルトの名無しさん2015/09/20(日) 19:10:09.51ID:Ptvv9YCq
焼きリンゴ教にみえた

もはやphp関係ないが、正確なブラウザ名知りたいってときは、あとはアクセス統計したいとか
ブラウザ依存の機能や独自仕様対策を使いまくってるとか、そんなところかね
それか、ガラケースマホなど機種に応じた処理をしたい一方で
これらを詐称するブラウザを広告のためとかの理由ではじきたいとか
0521デフォルトの名無しさん2015/09/20(日) 19:42:55.60ID:GyUJ1dZ9
クライアントを特定のものに強制するくらいなら、専用アプリにwebviewでも乗っけた方がマシだな。
0522デフォルトの名無しさん2015/09/20(日) 20:20:12.65ID:daw+dtLw
はじきたいからやるんじゃない。このアホンダラ

UAでNPAPIかどうか、WebRTC使えるかどうか、デスクトップかスマホかタブレットかの判定してレイアウトとか挙動を各アプリインターフェイスガイドラインに沿って作り込むんだよ。ドサンピン
言わせんな恥ずかしい。ノータリン

UA詐称っつーのはサーバーサイドの開発者が使うんだよ。どシロウトが

知らんけど
0523デフォルトの名無しさん2015/09/20(日) 20:48:13.17ID:VoXgoN5g
>>522
詐称した人が正しく動かないことまでわざわざフォローする必要ないよねって話。
0524デフォルトの名無しさん2015/09/20(日) 23:52:17.26ID:RNt2QHn9
safari使ってる人面倒い人が多いから対応したくないなりー
0525デフォルトの名無しさん2015/09/21(月) 06:56:58.49ID:mABftDP3
>>523
自己責任だよな
0526デフォルトの名無しさん2015/09/21(月) 10:53:04.85ID:/htKyytw
ど素人の質問です

lampの環境を自分で作ってみたい。
xpが入ってたPCにリナックスをいれて鯖を立てると思う。
すでに簡易のサーバーを立ててHTMLのHPぐらいは表示できたがLAMPではまだです。

CentOSを落としていろいろやると思いますがかなり苦戦するんでしょうか?
何時間ぐらい必要でしょうか?

また一度サーバーを立てると、PHPやJavaのサーブレットで掲示板みたいなのをつくり
そのファイルをサーバーに置くだけで設置になるため
ただの置き場所みたいな状態になるんですか?
簡易サーバーの時はそんな感じでした。
0527デフォルトの名無しさん2015/09/21(月) 14:07:32.14ID:FK25Dm7Z
>>526
https://www.apachefriends.org/download.html
0528デフォルトの名無しさん2015/09/21(月) 14:16:28.52ID:A7EzE/Oa
linux板いけっちゅう話だな
0529デフォルトの名無しさん2015/09/21(月) 15:03:36.58ID:/htKyytw
>>527
サンプはつかったことあります。LAMPです
0530デフォルトの名無しさん2015/09/21(月) 15:10:19.81ID:iVgIunoX
ぶっちゃけかなりの割合でmysqlというかDBいらんよな
0531デフォルトの名無しさん2015/09/21(月) 15:22:15.65ID:eqstY8VZ
何がどうど素人の質問なのか分からないんだけど、人によるとしか言いようがないよそれ。

初めてlinuxインストールするってのならだいぶ時間かかるだろうけど、
とはいってもどこまで理解しながら作業を進めるかでやはり時間は大きく変わる。
0532デフォルトの名無しさん2015/09/21(月) 15:24:15.54ID:/htKyytw
LinuxのCDでは起動したことありますが
自分で特定のlinuxをやいてそこから起動となるでしょうから多分そこで詰まりそう
0533デフォルトの名無しさん2015/09/21(月) 15:44:15.58ID:VEzrvsWB
社名 労基 
でググると過去の2chスレが出てくる会社
and(orではない)
転職会議で2.5点の会社は超絶要注意
and
IT系です

転職する際は注意
0534デフォルトの名無しさん2015/09/22(火) 02:03:17.71ID:O8icbsBo
アンケートのフォーム作ってポストした後にブラウザの更新押すとフォームの再投稿になるのを防ぎたいんだけど、POST処理の後にheader('Location: http://〜');を書いてもリダイレクトされないんだけどどうしてなの?

因みにリダイレクトするとアクセスはGETになるんだよね?
0535デフォルトの名無しさん2015/09/22(火) 03:06:46.32ID:Lx7QSeWZ
コードも書かずにどうしてなの?もクソもねえだろ
header()の手前でなんか出力してねえかerror_reporting(E_ALL);してみろ
0536デフォルトの名無しさん2015/09/22(火) 04:09:53.45ID:7aj0zY2+
クライアントが何を受け取ったか確認するのが手っ取り早いのに
0537デフォルトの名無しさん2015/09/22(火) 04:23:47.61ID:sy60767L
金だ。金を受け取ったんだ。
0538デフォルトの名無しさん2015/09/22(火) 14:00:52.87ID:h5oh6xqR
ajaxでやればいいんじゃね
05395342015/09/22(火) 15:40:53.63ID:O8icbsBo
>>535
すまん…;そっか、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);
?>

こんな感じなんだけど、どのタイミングでリダイレクトさせればいいんでしょうか…
0540デフォルトの名無しさん2015/09/22(火) 15:58:33.01ID:WwQzZTLz
>>539
<form method=・・・

POST受取時に、この部分がすでに書き込まれる
それがまずい
05415402015/09/22(火) 16:21:22.47ID:O8icbsBo
色々試したのですが、htmlタグの一番上に

<?php
//POSTでアクセスしてきた場合はページをリダイレクトしてGETに
if ($_SERVER['REQUEST_METHOD'] == "POST"){
header('location: http://anke.php');
}
?>

と書いたらなんかうまくいきました。
header関数って本当に前後に何も書いちゃいけないんだね;
微妙な空白が入っててもダメだったのか…
0542デフォルトの名無しさん2015/09/22(火) 17:56:31.22ID:7aj0zY2+
PHPサイドから見ればこういう気持ちだよ。

指示に従って本文を途中まで(もちろん空白であっても)出力しているのに、
いまさらヘッダ送れとか何言ってんだ?無理無理。どう考えても手遅れ。
0543デフォルトの名無しさん2015/09/22(火) 19:14:14.17ID:Lx7QSeWZ
いまさらじゃねーよなんでヘッダ先に送ってんだよflushしてねーんだからちょっと溜めといてくれよ
と思う開発者もいるかもしれない
0544デフォルトの名無しさん2015/09/22(火) 19:19:10.92ID:7aj0zY2+
そんな人にも最適。出力バッファリング機構が用意されております。
って、知っててかいてるよね。
05455402015/09/22(火) 19:27:53.94ID:O8icbsBo
そもそもヘッダがなんなのかすらさっきまでわかってなかった;
0546デフォルトの名無しさん2015/09/22(火) 19:44:29.47ID:yEiScBEC
つか, そもそも論だけども, Viewは分離しよう
0547デフォルトの名無しさん2015/09/22(火) 20:08:22.92ID:7aj0zY2+
>>545
分かるようになったってすごいことじゃん。おめでとう。

>>546
PHPの根底思想がhtmlの一部を動的にできたらなぁ。
そうだ、コードを埋め込めるようにしよう(ピコーン)なわけで、
まずそこから始めるというのを無闇に否定できないと思う。

Cでオブジェクト指向の記述ができないわけじゃないけど、
まずは手続き型で記述することを勉強しようねというのと似てるかも。
0548デフォルトの名無しさん2015/09/22(火) 23:13:57.29ID:O8icbsBo
無料ブログサービスしか使ってなかったからサーバーの仕組みとかわかんなかったんだよな

掲示板とかも作れるみたいだけど、データベース使わずにテキストファイルに投稿を保存するやり方でもいいの?
0549デフォルトの名無しさん2015/09/22(火) 23:24:45.80ID:A/BppHMq
>>548
独自フォーマットのテキストファイルを管理する方がめんどくさいと思うけど。
排他ロックとか修正とか独自フォーマットに沿った読み書きとか、全部自分で面倒みないといけないよ?
0550デフォルトの名無しさん2015/09/22(火) 23:33:11.39ID:WwQzZTLz
>>548
自分のPCに仮想環境を作って、そこでサーバー立ててみると良いよ
0551デフォルトの名無しさん2015/09/23(水) 00:02:05.78ID:r+N6ISIe
>>548
×サーバの仕組み
○HTTPの仕組み
0552デフォルトの名無しさん2015/09/23(水) 00:09:41.45ID:5Jki+Gg9
>>550
一応さくらのサーバー借りてるからこれから色々弄ってみる!
0553デフォルトの名無しさん2015/09/23(水) 00:12:41.71ID:LtBCHtUp
>>548
軽量化のためあえてそういう選択をするのは大いにアリだと思う。
ただ泥臭い部分まで面倒見ないといけなくなるから、そこら辺を考えた上での選択だね。
アンケートみたいにただただ追記していき後で集計、みたいなのなら独自データファイルでも十分簡単だと思う。
掲示板だと現在何件書かれているか、リクエストされたページに表示すべきレコードをデータファイルからどう抽出するか etc. 割と面倒くさくなりそうだし、軽量化を狙ってトータルで重くなるなんて何やってんだかわからないことにもなるかも。
0554デフォルトの名無しさん2015/09/23(水) 00:14:19.00ID:6kWxNQrp
プロトコルのお約束、DNSの仕組み、そういうのからは結局逃げられん

>>549
DBはDBでめんどくさいぞ
RDBMSの仕組みや応答、SQL、型、リレーション、テーブル設計すんのだけでも膨大な知識が要る
テーブルごとの連携を必要としないならDBなんていらん。1回勉強しちまえば楽なのはDBもテキストも変わらん
0555デフォルトの名無しさん2015/09/23(水) 00:15:28.51ID:moqzHvv1
一からサーバーを立てて、
アパッチを設定し、PHPを設定し、DBを設定し、
動かしてみる。
エラーが出たらログを見てその原因を特定し、直す。
この繰り返しで大体マスターできる。

レンタルサーバーではなかなかできないよ
許されることが限られるからね。
05565402015/09/23(水) 00:26:54.86ID:5Jki+Gg9
>>553
アンケートぐらいならなんとかなりそうってことか…
ファイルに書き込む時に改行(水平タブ?)みたいなのを入れたりして見やすくしてるんだけど多くなってくると面倒臭そうだな

サーバーはドットインストール見てPHP用にローカルサーバー建てたことならあるけどサイバーダックが使い物にならなくなったから放置してるわ…
0557デフォルトの名無しさん2015/09/23(水) 01:33:07.77ID:98opwncD
自分でテキストファイルを使うのは、排他制御などが難しい。
DBなら皆が同じように使っているから、情報を集めるのも楽

結局、WordPress
0558デフォルトの名無しさん2015/09/23(水) 01:38:44.03ID:sohVsCxT
>>557
なんでそこで結論が飛躍するんだよw
0559デフォルトの名無しさん2015/09/23(水) 03:05:32.03ID:5Jki+Gg9
ワードプレスもインストールして使ってみる
0560デフォルトの名無しさん2015/09/23(水) 03:28:24.02ID:r+N6ISIe
ありものを使うというのはとてもいい選択の一つだよ。
自分でえっちらおっちら作って、そのときに得た知識をあとで使わないって人もよくいるし。
0561デフォルトの名無しさん2015/09/23(水) 04:53:51.01ID:8RODq+xl
くだらねぇ
0562デフォルトの名無しさん2015/09/23(水) 09:21:42.16ID:VaH5eN5d
wpを高速で動かすにはphpが速く動く高性能鯖にするのが一番か?
0563デフォルトの名無しさん2015/09/23(水) 11:33:01.22ID:DXyy1a0Y
phperなんだからwordpressをコードレベルでカスタマイズしていらないコードをごっそり削るのが一番いいんじゃね
勉強にもなるし楽しいぜ
セキュリティ修正があったら該当コード組み込むぐらいで機能的なアップデートはスルー
0564デフォルトの名無しさん2015/09/23(水) 13:05:16.48ID:6385dCY6
手っ取り早く効くのはキャッシュだろう
05655402015/09/23(水) 15:35:35.31ID:5Jki+Gg9
アンケート作ってるんだけど、一回解答したユーザーの二重投稿を防ぐには

・利用者のIPアドレスを検出して変数に格納
・投稿データを保存したテキストファイルを開いて上から下までループ文で検出
・一致するIPがあった場合、エラー文を提示して投稿拒否

ってやり方でいいの?
0566デフォルトの名無しさん2015/09/23(水) 15:45:58.40ID:fiqO6gPv
IPじゃ駄目だろう。変えられたら分からなくなるぞ。
それでも良いという緩いチェックなら構わないけど。
0567デフォルトの名無しさん2015/09/23(水) 15:52:39.38ID:6kWxNQrp
そんな簡単に中の人の同一性チェックができるなら苦労しねーっつの
0568デフォルトの名無しさん2015/09/23(水) 16:24:58.46ID:KUv2kphT
Cookie 渡すという手もあるけど
複数PC使われたり、削除されたら駄目だしな。

アンケートサイトによくあるのは、
メールアカウント+パスワードによる認証だけど、
これだって複数メールアカウント取れるわけだし。
ポイント制だと、最後は特定個人に紐付けられるから、
架空人物だと色々問題が起きる。
その辺でごまかしを抑制するという程度か。
0569デフォルトの名無しさん2015/09/23(水) 16:37:43.26ID:1jqGrEyR
異常な連続ホストを弾けば多少はマシになるかと
後は公開串禁止とか
0570デフォルトの名無しさん2015/09/23(水) 17:08:39.46ID:N4Wzlgzs
oauthでfacebookとかのアカウントでログインさせるというのも手かもな。
ぶっちゃけcookieで管理する程度で十分だろうけど。
0571デフォルトの名無しさん2015/09/23(水) 17:24:23.95ID:ByrCNK4a
ログインなしで個人認証するのをいまから作成する
0572デフォルトの名無しさん2015/09/23(水) 17:50:33.97ID:RaRZfipQ
うまいやり方あれば教えてください

renderにとある処理(セッションを削除する処理)を入れてるんですが、
同ページ内で2回renderを呼び出す時、1度目の呼び出しでセッションが消えてしまいます(当たり前なんですが)が2回目の呼び出し時にセッションを削除したいです

↑補足ですが何故こんな事になったかというと、
同じようなことをしてる処理を共通化する為元々1つだったControllerを分けたら、そのページのrenderと共通化した部分のrenderが2回呼ばれてしまいました
0573デフォルトの名無しさん2015/09/23(水) 18:06:30.00ID:r+N6ISIe
セッションを削除する処理がレンダリングと関係あるとは思えない
0574デフォルトの名無しさん2015/09/23(水) 18:20:43.59ID:6kWxNQrp
コードも環境もなしに問うなと 標準関数の話しかすんなとは言わんが
renderにoptionalな引数入れてそれ確認させれば?うまいやり方かどうかは知らんけど
0575デフォルトの名無しさん2015/09/23(水) 19:20:27.52ID:KGKC2S3B
クッキーとIPともう一つなんか足せば大丈夫だろーって話題変わってた
0576デフォルトの名無しさん2015/09/24(木) 02:21:46.55ID:KIwTvfAf
>>565
IPアドレスでは、同じネットカフェの、異なるPCでも、
同一人物に判定されてしまうので、友達同士で投稿できない

2chでも、同じネットカフェなら、どのPCからアクセスしても、
IDが同じになってしまうのよ
0577デフォルトの名無しさん2015/09/24(木) 02:38:55.16ID:IK2Xge5y
>>576
マジかよ…
スタバとかのwifeでもそうなるってことか

ってか2ちゃんでたまに何もしてないのに規制かかって書き込みできなくなるのも同じiPの奴が規制されたのに巻き込まれてるってことなの?
0578デフォルトの名無しさん2015/09/24(木) 02:57:43.66ID:biV9B2V5
>>577
お前の奥さんのことなんて知らんよ
0579デフォルトの名無しさん2015/09/24(木) 03:20:31.89ID:nbO+sd/Q
>>578
違うぞ。スタバにいる人妻のことだぞ。
0580デフォルトの名無しさん2015/09/24(木) 07:51:16.78ID:n2zeSQ7H
スタバの現地妻か、裏山
0581デフォルトの名無しさん2015/09/25(金) 19:41:28.66ID:trjxrUIW
>>572
普通に片方のセッション削除する処理消せばいいだけじゃないの
0582デフォルトの名無しさん2015/09/25(金) 21:39:08.32ID:f2COha4U
file get contentsでとあるサイトをスクレイピングしてるんだけど、1~3回ほどページ更新すると内容が表示されなくなる
これってそのサイトがスクレイピング対策をしてるってこと?
0583デフォルトの名無しさん2015/09/25(金) 21:51:43.85ID:+5sW3GLu
>>582
そのサイトに聞けよ!
0584デフォルトの名無しさん2015/09/25(金) 22:09:07.55ID:f2COha4U
>>583
いや、その前にphpの問題なのかなと思って。
それにブロックするなら最初からスクレイピングさせないもんなんじゃないの?
暫く時間たった後にまた更新すると今度はちゃんと取得できてるんだよね…
なんなの?これ
0585デフォルトの名無しさん2015/09/25(金) 22:14:25.58ID:S9QW43Ts
>>584
どうやってスクレイピング判定するの?
0586デフォルトの名無しさん2015/09/25(金) 22:19:10.09ID:6j3mg6Uy
負荷対策してるだけなんじゃない
0587デフォルトの名無しさん2015/09/25(金) 22:26:49.35ID:f2COha4U
>>585
それもわからん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時間ほど経過〜

四回目:表示


ってなる。どうしてなんや
0588デフォルトの名無しさん2015/09/25(金) 22:33:11.74ID:suy8B6gV
ステータスが何を返しているか見ている?
初回とその後で変わっていない?
0589デフォルトの名無しさん2015/09/25(金) 23:13:50.38ID:trjxrUIW
>>587
スクレイピングと同じようにブラウザからアクセスするとちゃんと表示される?
0590デフォルトの名無しさん2015/09/25(金) 23:17:54.47ID:f2COha4U
>>588
変わってないと思う…

>>589
ブラウザからのアクセスだといつも通りちゃんと表示される。
0591デフォルトの名無しさん2015/09/26(土) 00:20:22.23ID:F1OYRTCW
>>590
HTTPレスポンスコード見てみ
0592デフォルトの名無しさん2015/09/26(土) 00:25:44.55ID:xWCYZ6+4
>>590
statusに304が返ってきてないか?
0593デフォルトの名無しさん2015/09/26(土) 00:27:45.19ID:VnXY6/gA
他のサイトでもやってみるとか、
自分でもっと単純なサイトを作って、試してみるとか、

ソースコードのあちこちに、Print文をばらまいて、
デバッグしてみるとか

何か、saveHTML()というのが、やばそうな気がする。
それを実行すると、バグを引き起こすとか、
ロックされたりするとか
0594デフォルトの名無しさん2015/09/26(土) 01:09:23.12ID:7dfhRWtS
クローラー判定は別に難しくないしそういう制限をサーバでするのは可能
ブラウザと同じヘッダ送出して同じ手順を踏んで公開サーバー経由でなければいけるだろう
0595デフォルトの名無しさん2015/09/26(土) 01:27:35.85ID:UIDpKSqR
エラー検出してみたら、「このIPは制限されています」って返ってきた\(^o^)/
やっぱり対策してるんだね
ぶっちゃけ2ちゃんの過去ログサイトなんだけどさ…
そりゃ誰もがスクレイピングしようとするもんなぁ
0596デフォルトの名無しさん2015/09/26(土) 02:34:06.16ID:gDkHrrbc
>>595
エラー検出って難ですか?
0597デフォルトの名無しさん2015/09/26(土) 09:55:12.02ID:piyEqEap
スクレイピングして何に使うのかは知らないけど 一時期やらおんだかの捏造記事で訴えるとか訴えねーとかやってた気がしたのどうなったんだろ
0598デフォルトの名無しさん2015/09/26(土) 21:13:16.16ID:v7fSGmLa
クライアント側のJSを公開したくないので、サーバーのPHPなどでそのJSを実行したいんですが、
可能ですか?まったく同じ動作結果になるようにするにはどういうやり方をするんでしょうか?
ググルキーワードを教えてください。
0599デフォルトの名無しさん2015/09/26(土) 21:22:54.61ID:LSY/VAID
>>598
JSによる
とりあえずどんなJSなのか見せて
0600デフォルトの名無しさん2015/09/26(土) 21:46:46.75ID:ey0zQ6i9
>>598
Ajax
0601デフォルトの名無しさん2015/09/27(日) 01:48:51.82ID:IWmq2jg0
>>598
ブラウザの機能を叩くクライアントサイドスクリプトと完全互換にはなり得ない

つかクライアントサイドスクリプトを公開したくないってどういう状況よ?
0602デフォルトの名無しさん2015/09/27(日) 02:44:15.81ID:9FNu5D9+
お前のパソコンで処理させろ!
でもなにしてるかは聞くな!
0603デフォルトの名無しさん2015/09/27(日) 04:12:00.87ID:gZb7XvC3
echo`x=hoge;echo $x`;
ってしたいんだけど、
PHP側で勝手に変数展開されて
bashに渡る文字列が"x=hoge;echo "になっちゃう。
変数展開してほしくないときのシングルクオートみたいなのはないの?
0604デフォルトの名無しさん2015/09/27(日) 05:27:35.19ID:QHSPW0OV
>>599
そんな特殊な処理ではないので、
どりあえず、どういう手法があるか
ググルためのキーワードを教えてください。
0605デフォルトの名無しさん2015/09/27(日) 08:10:30.50ID:Ek3Ll/Tz
「この記事を見た人はこんな記事も見てます。」
ってよくあるけど、あれってどういうアルゴリズムというかロジックで実現してるんでしょうか?
やはりDBに何らかの情報を記録する必要がありますよね?ではどういうテーブルにどういう項目を?そしてどういう計算を?
どのページからどのページに行ったかという遷移ですかね?
うーーーーん難しい。誰かご教授いただけますと嬉しいです。
0606デフォルトの名無しさん2015/09/27(日) 08:37:47.68ID:Q5TaQhUz
同じ分類のPV多い記事並べただけちゃいますのん?
0607デフォルトの名無しさん2015/09/27(日) 08:45:57.94ID:hy9T85ay
この記事を見た人は→この記事を見た人"達"とは言っていない
0608デフォルトの名無しさん2015/09/27(日) 11:28:08.11ID:KXvZe9oE
レコメンド アルゴリズムで検索
0609デフォルトの名無しさん2015/09/27(日) 12:09:27.06ID:w5aIV8MQ
>>603
echo`x=hoge;echo $x`;
これはこうじゃないの?
echo`$x="hoge";echo $x`;

あと、シングルクオート「'」でなくて、
バッククオート(実行コマンド)「`」でいいのか?
bashの文法も確認した方がいい。
0610デフォルトの名無しさん2015/09/27(日) 14:52:00.62ID:Ek3Ll/Tz
>>606
え?そんな簡単!?

>>608
名称のご教示ありがとうございます。
検索してみるとやっとまともな情報にありつけました。名称知ることは大事ですね。
勉強します。
0611デフォルトの名無しさん2015/09/27(日) 16:16:41.77ID:Q5TaQhUz
セッションか何かでアクションおっかけてデータにしてそれをマイニングするとか骨が折れちゃうぜ。
0612デフォルトの名無しさん2015/09/27(日) 23:26:33.11ID:UYzM99J3
簡単なものなら

1 ページA → ページB
2 ページA → ページC
3 ページA → ページC

こうやってデータをため込んで、 この3データだったら
ページAを見た人はページCも見てますって表示するだけでしょ
0613デフォルトの名無しさん2015/09/27(日) 23:34:00.29ID:VOKvc2Zg
>>606がアイテムベースで>>607がユーザーベースだろ
0614デフォルトの名無しさん2015/09/27(日) 23:34:43.72ID:hvy9lckk
>>612
ページID、IPアドレス、タイムスタンプを履歴として取っておき、
特定ページにアクセスがあったときに、
そのページにアクセスがあり、現在のアクセスと異なるIPアドレス群を取得し、
そのIPアドレス群がアクセスしたページIDを
アクセス数順に必要な数だけ表示すればいいんじゃない?
0615デフォルトの名無しさん2015/09/28(月) 00:54:18.84ID:s97i3FEf
>>609
bashは変数代入時に$は不要、参照は必要
変数値を""で囲む必要もない(囲んでもいい)
だからコマンド自体は間違ってない

> x=hoge
> echo $x
0616デフォルトの名無しさん2015/09/28(月) 02:23:19.63ID:mTZVEwhb
>>603
" " で囲めば、変数展開される
' ' で囲めば、変数展開されない

それと、ヒアドキュメント
0617デフォルトの名無しさん2015/09/28(月) 13:25:40.62ID:ewoIlnRc
>>603
shell_execをつかう。
0618デフォルトの名無しさん2015/09/28(月) 14:35:52.57ID:yBwbnPi+
php初心者でうまく説明出来ないんだけど・・・
***.phpのURLリクエストが来て、その処理をするときに 外部のDBを使って確認したい時とかありますよね!
そういう情報ってアドオンとかにあるライブヘッダーとかで覗かれたりしないんですか?
(´・ω・`)作り方による場合、どういった作り方をすればいいんでしょうか
0619デフォルトの名無しさん2015/09/28(月) 14:52:20.96ID:ruFObRnM
phpソースがおかれたDirのアクセス権限を設定すればなんとか
0620デフォルトの名無しさん2015/09/28(月) 16:17:02.52ID:3Q9ZQIvE
>>618
アドオンが何のアドオンでライブヘッダーとは如何なるものか示さなければ何言ってるのかわからん
0621デフォルトの名無しさん2015/09/28(月) 17:21:04.08ID:ewoIlnRc
>>618
phpと外部のDBとの通信と、クライアントとphpの通信は互いに疎。
0622デフォルトの名無しさん2015/09/29(火) 16:56:38.87ID:ifZ4QSeP
上の質問が終わってからで構わない

phpのヒアドキュメントでhtmlを書いて、それを他のサイトでJSみたいに呼び出す事って出来る?
他のサイトは無料ブログサービスだからサーバーサイド弄れない前提で
0623デフォルトの名無しさん2015/09/29(火) 17:29:33.15ID:ux+ZVrLF
phpでjavascriptのコード出力すればいいだけ
そんでscript srcにそのphp指定すりゃいい
0624デフォルトの名無しさん2015/09/29(火) 17:36:47.96ID:ifZ4QSeP
>>623
それだとヒアドキュメントを使う旨味がなくない?
JSだと文字列リテラルとかいうので’’の間を改行したりできないじゃん
ヒアドキュメントならHTMLをそのまんま貼り付けて出力できるじゃん?
0625デフォルトの名無しさん2015/09/29(火) 17:53:47.32ID:DjqaY7BG
>>622
> phpのヒアドキュメントでhtmlを書いて、
ヒアドキュメントである必要性はないよね。
iframeでも使えば?
0626デフォルトの名無しさん2015/09/29(火) 18:06:03.49ID:ux+ZVrLF
>>624
だいたいそんな仕組みがあるわけないじゃない
JSで呼びたいならJSのスタイルにしなきゃいけないわけで
そもそも改行とかhtmlはbrで判断してんだからどうでもいいでしょ
0627デフォルトの名無しさん2015/09/29(火) 18:14:09.43ID:ux+ZVrLF
ああ、+をつけたくないってことか
0628デフォルトの名無しさん2015/09/29(火) 18:27:20.11ID:ux+ZVrLF
$html = <<<EOF
<p>hello world</p>
<p>hoge
hoge<br>hoge</p>
EOF;

$html = preg_replace('/'.PHP_EOL.'/', '', $html);
echo "document.write('{$html}')";

これなら少しは可読性あがるんでない
0629デフォルトの名無しさん2015/09/29(火) 19:13:43.83ID:DjqaY7BG
>>628
その用途でPHP_EOL使う人って何をどうこじらせてるのか興味がある。
0630デフォルトの名無しさん2015/09/29(火) 19:24:15.21ID:rgPn5SeK
むしろPHP_EOLはどういうとこで使うべき定数なんだ?
0631デフォルトの名無しさん2015/09/29(火) 19:58:07.18ID:ux+ZVrLF
その用途ってなんだよw
改行コードさしてんだから問題ないでしょ
0632デフォルトの名無しさん2015/09/29(火) 20:08:13.16ID:twisClEL
>>629
何が正解?
0633デフォルトの名無しさん2015/09/29(火) 20:12:38.85ID:twisClEL
\r\n|\r|\nじゃなくてたんに\r|\nでいいよね?
\r\nも指定しないとマズイケースってある?
0634デフォルトの名無しさん2015/09/29(火) 20:29:36.44ID:DjqaY7BG
>>633
今回の場合、単に削るのが目的だから\r\nはいらないね。
あとpreg_replaceなんて超絶高機能なものを使う必要もないのでstr_replaceでやる。
0635デフォルトの名無しさん2015/09/29(火) 21:38:10.80ID:ifZ4QSeP
>>628
うお、それは思いつかなかった…あたまいいな
記事にウィジェットっていうか、最新記事とかおすすめ記事とか広告とか全部まとめて1セットで表示したいときってあるじゃん?
それを一々貼り付けるんじゃなくて外部化できたらメンテナンス上楽かなと思って。

JSでやってもいいんだけど、可読性が悪いし変更もし辛いんだよね
0636デフォルトの名無しさん2015/09/29(火) 21:38:46.96ID:1MZ0DxPh
str_replace何回までならpreg_replaceより早いかを試すベンチマークを書いてくれ!
0637デフォルトの名無しさん2015/09/29(火) 21:55:16.30ID:rgPn5SeK
マルチバイトを含む文字列の検索・タグ付け処理で、検索文字列1500セットを、
トライ木構造な1個のパターンでpreg_replace1回で済ます方法、
strposとstr_replaceで置換して溜めていって最後に引数に配列入れたstr_replaceで一括置換する方法、

この2パターンでどっちが早いか試したらphp5.3とphp5.6で結果が逆転した経験がある
5.6だとstrpos/str_replaceのほうが早かった
0638デフォルトの名無しさん2015/09/29(火) 22:15:08.01ID:1MZ0DxPh
1500とか大勝利ですやん
0639デフォルトの名無しさん2015/09/29(火) 22:57:48.33ID:ssY7AIaz
>>632
個人的には /\x0D\x0A|[\x0A\x0D]/ とASCIIコード指定で書くのが趣味
0640デフォルトの名無しさん2015/09/30(水) 01:29:57.79ID:MFXzG0RB
PHPで自分専用の日記帳&思いつきメモ&金銭管理&タスク管理ツールつくって自己管理するの楽しすぎワロタ
0641デフォルトの名無しさん2015/09/30(水) 02:41:45.95ID:EyIEkC/I
単純な文字列の複数置き換えでも、
str_replace("c", "", str_replace("b", "", str_replace("a", "", $str)));
とか見づらいからpreg_replace使ってしまう。
ラッパークラス書けばいいけどなんかあほくさいし、標準実装してほしいわ。
$s = new String($str);
$s->replace("a","")->replace("b","")->replace("c","");
0642デフォルトの名無しさん2015/09/30(水) 02:45:08.64ID:Eb56OawZ
str_replace( ["a", "b", "c",], "", $str); か
str_replace( ["a", "b", "c",], ["", "", "",], $str); 
でできるはずだし
こっちのほうが速い
0643デフォルトの名無しさん2015/09/30(水) 02:58:18.28ID:5VICgqtC
>>641
だからあほだといわれるんだよ。
マニュアルは読めよ。何度でも読めよ。
0644デフォルトの名無しさん2015/09/30(水) 03:03:20.43ID:EyIEkC/I
arrayでしょ?
知ってるけど、それはもっと嫌。
0645デフォルトの名無しさん2015/09/30(水) 03:06:27.35ID:5VICgqtC
1行目で笑わざるを得ないけれど、何がいやなの?
0646デフォルトの名無しさん2015/09/30(水) 03:09:06.72ID:Eb56OawZ
好き嫌いは別にしてこれらは内部動作的に無駄が多い。
PHP文字列と内部のC言語文字列の変換を繰り返す事と正規表現を使う事で。
ここへ処理が集中するケースだと時間とCPUリソースを使う。



str_replace("c", "", str_replace("b", "", str_replace("a", "", $str)));
$s->replace("a","")->replace("b","")->replace("c","");
0647デフォルトの名無しさん2015/09/30(水) 03:23:47.66ID:Eb56OawZ
ほとんど差が出なかった。


$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";
0648デフォルトの名無しさん2015/09/30(水) 03:34:17.75ID:EyIEkC/I
>>645
mixedっていう概念が。
0649デフォルトの名無しさん2015/09/30(水) 03:39:56.66ID:EyIEkC/I
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でしかない。
0650デフォルトの名無しさん2015/09/30(水) 03:59:00.83ID:Eb56OawZ
関数呼び出しが、複数回か一回かで比較してるわけだが。
0651デフォルトの名無しさん2015/09/30(水) 04:03:22.73ID:EyIEkC/I
あ、いや、別に無視するつもりはなかったんだけどあんま見てないw
あほって言われたからかっちーんってきて、>>643 >>645にレスをしてる。
0652デフォルトの名無しさん2015/09/30(水) 04:11:08.53ID:6yKygfp8
>>647 と同じようなことして時間計ってみた結果。
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 で使うより入れ子にした方が速いってのは意外に感じた。
文字の出現率に偏りがあるなら入れ子の順序で最適化もできそうだね。
0653デフォルトの名無しさん2015/09/30(水) 04:16:21.14ID:Eb56OawZ
a-zまでの複数個置換だったら配列のほうが速いはずとおもうがやってはいない
0654デフォルトの名無しさん2015/09/30(水) 04:24:19.04ID:GOPPmiIs
個人的には array() でなく [] を使うのが違和感
5.4から使えるようになった、わかるよ
内部的に速度差がない文字数少ない書きやすい慣れれば見やすい、わかるよ でもそういうんじゃねーんだ
0655デフォルトの名無しさん2015/09/30(水) 04:24:56.40ID:5VICgqtC
>>652
そのstrtrには何かウェイトでも?
http://ideone.com/01biJO
0656デフォルトの名無しさん2015/09/30(水) 04:35:32.91ID:GOPPmiIs
>>655
5.4.12以前の使ってたり書き方次第でstrtrは遅くなる
が、お前さんの書き方、なんだそれ
引数3個入れるときは長さ揃えないと無視される結果、それだと置換されないぞ早くて当然
実際動かして結果確認してから時間計りなさい
0657デフォルトの名無しさん2015/09/30(水) 04:37:18.26ID:5VICgqtC
こりゃあすまんかった
0658デフォルトの名無しさん2015/09/30(水) 04:39:56.74ID:5VICgqtC
なおした。遅いな。
0659デフォルトの名無しさん2015/09/30(水) 04:56:24.38ID:O5d+GXPE
配列はPHP7から実装されたものですん!
0660デフォルトの名無しさん2015/09/30(水) 14:48:02.16ID:MFXzG0RB
普通に$kaeru{a,b,c}; $kaeta{d,e,f,};

str_ireplace{$kaeru,$kaeta,$html}じゃあかんの?
メンテしやすいし
0661デフォルトの名無しさん2015/09/30(水) 16:24:43.23ID:JBefBAW1
いったいなんだいその書き方は?
PHP7にしたら動くのかね?
0662ゆうき2015/09/30(水) 20:56:39.13ID:5In1o3Ll
だれか、このプログラム作ってください
よろしくおねがいします
以下の要件を満たすプログラムを作成せよ
&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)=【乗算結果】
0663デフォルトの名無しさん2015/09/30(水) 21:12:13.25ID:JBefBAW1
作って下さいはスレチ
ていうかここC言語スレやないんやで
0664デフォルトの名無しさん2015/09/30(水) 21:30:58.57ID:GOPPmiIs
複素数とか懐かしいなオイ
0665デフォルトの名無しさん2015/09/30(水) 23:00:55.59ID:MFXzG0RB
テキストエリアに書いた文字をそのままの状態で保存することってできる?
更新ボタン押してもそのまま書き込まれてる状態っていうか…

例えて言うならevernoteとかmacのメモみたいな感じで
0666デフォルトの名無しさん2015/09/30(水) 23:12:46.45ID:8HX6e1yX
>更新ボタン押してもそのまま
最近のブラウザならデフォルトでそういうのついてるでしょ

まぁ下書き機能とか普通にあるじゃん
10秒おきにajaxでサーバに保存とか
ログイン状態ならいいけど非ログイン状態ならセッション使うことになるからクッキーでよくね?って話だけど
0667デフォルトの名無しさん2015/09/30(水) 23:26:53.70ID:GOPPmiIs
最近のブラウザでも昔のブラウザでも、
metaのcache-controlやHTTPヘッダのExpires・Last-Modifiedあたりの状況によって
更新ボタン押下時に入力内容がリセットされたりする
あと<form>の構造、逆に言えばこの辺の調整で保存されるようになりうるんだけど……

他の手段だと、cookie、session、サーバ保存、あとlocalstorageも当然だけど全部普通に実装しようとするとjavascript依存だな
0668デフォルトの名無しさん2015/10/01(木) 00:26:51.11ID:Dxsc0OBp
現在のプロジェクトでフルPHPで作成されたWEBアプリケーションのパフォーマンスが出なくなってきたので、
バックエンド部をjavaにしようという話が出ています。
PHP5以降でjavaと連携する方法が今一つまとまらないので質問させて下さい。
フルPHPから緩やかにjavaに移行しようと考えているらしく、PHP/Java Bridgeも使用しにくい状況です。
この場合、PHPからfile_get_contentsでtomcatのサーブレットコンテナへHTTPリクエストし、
json形式などでレスポンスを受け取ってPHPでクライアントレスポンスを出力、
という方法しかないでしょうか。
同一マシン上にPHPとjavaが存在していればループバックと出来るものの、
メモリ、CPUリソースの負担が増えてパフォーマンス的に上がるのかかなり微妙な予感がしています。
0669デフォルトの名無しさん2015/10/01(木) 00:31:04.72ID:LSWhCnNG
ページの beforeUnload かなにかで cookie に保存すればいいんじゃね
0670デフォルトの名無しさん2015/10/01(木) 00:50:27.95ID:z1lAS5eB
話が出ていますっつーならその話を出したやつに考えさせろよ
0671デフォルトの名無しさん2015/10/01(木) 00:53:50.07ID:Dxsc0OBp
>>670
そうなんですよね。
ホントに下らない話だと自分でも思っているからここで質問させて頂いています。
0672デフォルトの名無しさん2015/10/01(木) 00:55:08.88ID:uSsV6wdT
すっげー知り合いの香りがするwww
0673デフォルトの名無しさん2015/10/01(木) 00:59:42.10ID:Dxsc0OBp
>>672
あ、もしかしたら隣の席の・・・。
0674デフォルトの名無しさん2015/10/01(木) 01:30:25.12ID:M2hxjHUk
HHVMでもいいけどまずはPHP7にしてみるとかいう選択肢はないのか
来月に正式版がリリースされるはず
無駄にコストかけるより環境の置き換えと少しのコード修正でテスト出来るならそっちのがいいんじゃない
0675デフォルトの名無しさん2015/10/01(木) 03:53:24.19ID:kBF9/RuM
>>668
パフォーマンスが悪い理由は調査したんだろうか。
してなきゃそんな話にはならないだろうけれど、本当に改善できないんだろうか。
0676デフォルトの名無しさん2015/10/01(木) 06:48:02.39ID:z1lAS5eB
できるわけないじゃん
>>668自身がjavaに移行すれば早いのになと言い出したか
権力強い無能が言い出したか知らんが
別言語で書き直して高速化で解決できるならその前にボトルネック調査して修正してるわ
0677デフォルトの名無しさん2015/10/01(木) 13:07:15.61ID:uSsV6wdT
phpってそんな言うほど遅い?
0678デフォルトの名無しさん2015/10/01(木) 14:48:48.55ID:xUyWxNo6
>>677
毎秒10リクエスト程度だったら全然問題ない
0679デフォルトの名無しさん2015/10/01(木) 18:17:38.74ID:yb6zYl2l
どうせインデックスあたらないSQLでも投げてんだろ
0680デフォルトの名無しさん2015/10/01(木) 18:20:38.73ID:FLynHvaU
遅い部分だけC言語で処理したらいい。レンタルだと不明だが。
0681デフォルトの名無しさん2015/10/01(木) 18:22:30.73ID:xUyWxNo6
つか、逆にJavaって速いのか?
Jenkinsとか糞重いんだが。
06826682015/10/02(金) 01:02:38.04ID:NE1jsZAh
みなさん有難う御座います、>>668です。

>>674
HHVMはエンジニア総とっかえになりそうですし、真っ先にやるとすればやはりPHP7ですよね。
百歩譲っても設計からやり直してJavaに移行だろ、と。
自分もなんでこのタイミングでこんなコストが掛かる話が出て来たのかと思っています。
現状の方針にストップを掛ける方向に材料を提供して行ってみます。

>>675から>>679
ボトルネックはどう考えてもDBなんですよ。
物理設計がまずくて無駄なDB問い合わせとDB更新が頻発してるんだろ、と。
でもそれなりに同時アクセスがあるサービスなので混乱してるのかな、と思います。
設計からやり直しを決定出来る権力が欲しい。。。

>>680
現場にC出来るエンジニアがおらんとです。

>>681
言語のパフォーマンスで言えばC系に次ぐものがありますので、それなりに早いです。
でも設計に大きく依存しますので・・・。

皆さんもやはり違和感を感る話なんだな、と認識出来ました。
自分はストップを掛ける方向に動くことにします。
考え直してくれると良いのですが。
06836752015/10/02(金) 03:15:33.07ID:cle9kUAg
>>682
かわいそうに。
ボトルネックがDBなら、工数かけてJavaに変えても結局パフォーマンス上がらんじゃないかって
上層部が顔を真っ赤にして怒鳴り散らす未来が待ってるね。
俺がその状況ならとっととクエリを改善して、もうパフォーマンス悪くないからその話進めなくていいよね?ってする。
0684デフォルトの名無しさん2015/10/02(金) 03:25:00.54ID:j2xAjxnc
Ruby資格の教科書を見たが、5年前の求人割合では、
Java:Ruby = 10:1 だが、今では、5:1 で、
5年後には、2:1 と予測されている。
JavaからRubyへの流れが、止まらない

こういう情勢で、速度が問題となるのに、
違和感を感じる

DBの全レコードを探索しているのでは?
まさか、インデックスの付いていない項目で、
検索しているのでは?

Where文の左側で、先にインデックスで比較して、
レコード件数を絞らないといけない

バグのほとんどはプログラムにあるのではなく、
設計段階での論理矛盾が原因。
テーブル設計時に、どこが悪いかわかるはず
0685デフォルトの名無しさん2015/10/02(金) 03:36:20.66ID:gMdpYExV
あえてエスパーしてみるが
・全部ウソ
・現場で実際に問題になってることと>>682の頭の中が全然別物で682があらぬ方向に突っ走ってるだけ
どっちかだと思う
0686デフォルトの名無しさん2015/10/02(金) 03:46:44.20ID:MaT1v7mR
>>682
DB を SSD に置いてみたら
0687デフォルトの名無しさん2015/10/02(金) 04:04:24.63ID:j2xAjxnc
最初に振り分けサーバーで、顧客ID・地域などで、
処理するサーバーを変える

HDDからSSDへ、変えれば速い

物理メモリーの量を増やす

リアルタイム性のいらない統計処理などは、閉店後に行う

インデックスを使って検索しているか、チェックする

テーブル全体をロックせず、その行だけをロックする(行ロック)

Stored Procedureを使う
0688デフォルトの名無しさん2015/10/02(金) 05:18:46.84ID:XsCDb17v
10倍速いサーバーを使え
0689デフォルトの名無しさん2015/10/02(金) 05:35:03.08ID:MZbKrQpC
HDDもSASじゃなくてSATAなんだろ
0690デフォルトの名無しさん2015/10/02(金) 09:36:38.78ID:Gd8B7UmP
>>682
以前のジョブでも、現在のジョブでも、
DBアクセスを丹念にチェックして、
一分かかっている処理を1秒以内に終わる様に改造した。
見違える様になったぞ
0691デフォルトの名無しさん2015/10/02(金) 14:03:22.83ID:XsCDb17v
>>690
ジョブズならそのサーバーを水槽に投げ込んでまだ隙間がある。
って言うんだよな
0692デフォルトの名無しさん2015/10/02(金) 17:28:42.44ID:ExAoDKGZ
ジョブズ キチガイかよ
0693デフォルトの名無しさん2015/10/02(金) 18:12:25.67ID:cle9kUAg
キチガイだからこそというのもある
0694デフォルトの名無しさん2015/10/03(土) 08:23:38.91ID:oanQRH4z
Webアプリに詳しい人が多いと思うので質問

JavaのServletなんかをいまさらやっても求人はほとんどないんですよね?
Javaの練習としては意味あるのかな?JSPはいらないと思うから極力JSPを使わず
HTMLJQueryのみと最小限のServletつかってHPなんかを作る

って意味ありますか?
プログラム2年目の初心者です。そのごPHPやろうかなと
0695デフォルトの名無しさん2015/10/03(土) 08:24:14.85ID:oanQRH4z
1個言語極めたほうがいいと聞いてるので
PHP後なんです。PHPの言語の本は読んでますが
0696デフォルトの名無しさん2015/10/03(土) 08:28:42.45ID:kqQdpap+
この臭さ
0697デフォルトの名無しさん2015/10/03(土) 09:24:17.96ID:ajbLAT8w
JavaでAndroid開発頑張れよ
いくらでも仕事あるぜ
0698デフォルトの名無しさん2015/10/03(土) 09:28:31.33ID:oanQRH4z
クラウドなど使ってるのでWEBの知識もつけたいんです
0699デフォルトの名無しさん2015/10/03(土) 09:39:58.17ID:Ah57aA4b
Web技術はプログラミング言語とは独立な話だけど
0700デフォルトの名無しさん2015/10/03(土) 09:42:54.06ID:oanQRH4z
そうなですか。JSONを送る練習したほうがいいとききました
0701デフォルトの名無しさん2015/10/03(土) 16:04:31.13ID:giCn6CLq
送る練習ってなんだ ただ仕様調べてその通り書くだけだろ
0702デフォルトの名無しさん2015/10/03(土) 17:37:45.34ID:K3yeuoy4
ジェイソン来られても困るわ
0703デフォルトの名無しさん2015/10/03(土) 21:35:32.27ID:B7qJf8Bu
以前アンケート作成について質問させてもらった者ですが、今二重投稿を防ぐための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重複やで';
}}


これ何が間違ってる?
0704デフォルトの名無しさん2015/10/03(土) 21:40:51.97ID:1PQVSqiN
>>703
10番目のアイテムは$item[9]じゃね?
0705デフォルトの名無しさん2015/10/03(土) 22:17:47.22ID:g7xKsIu0
wpってもっさりして動きがのろいんだがphpが遅いのが原因だろ?
速いphpって無いのか?
0706デフォルトの名無しさん2015/10/03(土) 22:31:29.81ID:ajbLAT8w
phpが遅いのが主原因ではない
php以外でのサーバの最適化とソフトウェア(wp)自体の最適化を行わないことには一緒
そういうのを全部やってるサーバ借りるのが一番
0707デフォルトの名無しさん2015/10/03(土) 22:44:12.21ID:K3yeuoy4
サーバーのスペックのがでかいわ
0708デフォルトの名無しさん2015/10/03(土) 23:39:19.95ID:DW7EPY85
>>700
将来的にも食っていきたいならJavaの前にCどうぞ。
0709デフォルトの名無しさん2015/10/03(土) 23:40:00.07ID:DW7EPY85
>>705
php7
0710デフォルトの名無しさん2015/10/03(土) 23:41:16.36ID:tV482q2K
>>703
大筋間違ってないと思うが、世の中固定のグローバルIPアドレスを一人で専有するユーザーなんてほぼいないんだから、せめて「一定時間内の」同一IPを弾くとか工夫した方がいいと思う。
あと、重複チェック用にチェック項目だけを書いたファイルを用意しておくといいと思う。
IPアドレスとタイムスタンプ、あと UA あたりとか。

つか、受け付け時はノーチェックで受け付けて集計時に重複排除すればよくね?
リアルタイムに集計結果をページに反映させたいなた無理だろうが、受け付ける時はなるべく余計なことしない方がいいと思う。
0711デフォルトの名無しさん2015/10/04(日) 05:08:32.61ID:FsLwYc7A
>>709
7って本当に速いのか?
0712デフォルトの名無しさん2015/10/04(日) 06:24:37.92ID:6bPbjGVx
wordpressを早くしたいならまずはサーバをapacheから変えることだな
0713デフォルトの名無しさん2015/10/04(日) 07:04:55.55ID:JXiMzRO3
fpmって付随効果はいろいろありがたいけど
phpの実行速度そのものはmodule版とあんま変わらないよね
0714デフォルトの名無しさん2015/10/04(日) 10:13:44.72ID:J4whK/1Y
>>703
ネットカフェだと、異なる人が、
異なるPCから投稿しても、
同じIPアドレスになってしまう

ネットカフェ内の誰かが、2chに書き込むと、
連続投稿となり、他の人が書き込めなくなった
0715デフォルトの名無しさん2015/10/04(日) 11:30:31.54ID:FsLwYc7A
>>712
何に変えるのか言ってくれよ
0716デフォルトの名無しさん2015/10/04(日) 14:30:47.56ID:NaI5stH8
>>708
Cはほんの軽くやってます。きちんとやったほうがいいんでしょうか。やるとなると何がいいですか?MAC持ってませんがiphone?
0717デフォルトの名無しさん2015/10/04(日) 15:44:38.57ID:DWkf6ASR
触ったことあるのと理解してるのは別の話、そこを分かってるとおいそれと「やってる」なんて言わないからな。
黙々とやってみるわけでもなく、何をやったらいいかとぐだぐだこんなところで聞いてくるなら別の職を検討する方がいいと思うよ。
コンサルとか案外向いてるかも。
0718デフォルトの名無しさん2015/10/04(日) 15:50:26.92ID:/KIHQ6WK
>>716
iphone?objective-cやりたいの?
というか、きちんとやったほうがいいのかどうかからずいぶん飛躍したところに着地してるよそれ。
言語をきちんと学ぶかどうかだよね。とりあえずK&Rを隅から隅まで読むこと。
0719デフォルトの名無しさん2015/10/04(日) 16:44:58.93ID:3q2CjWiD
今時K&Rは流石に古い
0720デフォルトの名無しさん2015/10/04(日) 16:46:56.71ID:/KIHQ6WK
確かに今じゃもう古いってのはあるけど、しかし代わりになるものがないのも事実じゃないかな。
0721デフォルトの名無しさん2015/10/04(日) 16:54:09.77ID:3q2CjWiD
まぁC言語のスレじゃないから掘り下げる気はないよ
0722デフォルトの名無しさん2015/10/04(日) 18:18:46.23ID:NaI5stH8
>>717
ヘルプデスクのことですか?
あれって60歳まで仕事ないからだめかな

組み込みで簡単なゲームウォッチ
作ったかな
0723デフォルトの名無しさん2015/10/04(日) 19:48:30.72ID:EdfN5JOs
>>722はたぶん学び続ける職全般に向いてないからやっぱりコンサル向きだ
0724デフォルトの名無しさん2015/10/04(日) 19:58:02.00ID:NaI5stH8
>>723
ヘルプデスクのこと?本を読んで覚えるのはできるけど
家でPC開いて一人で土日つぶす式の勉強は無理かな
0725デフォルトの名無しさん2015/10/04(日) 20:00:27.76ID:NaI5stH8
通勤時間に勉強できるようならできるだろうけど
0726デフォルトの名無しさん2015/10/04(日) 20:08:57.70ID:JXiMzRO3
楽しそうだな君たち
0727デフォルトの名無しさん2015/10/04(日) 21:44:32.70ID:DWkf6ASR
>>723
いやコンサルはむしろ新しいことを取り入れ続ける人間が向いてると思うよ。
聞きかじった新しいことをさも分かってる風に堂々と並べ立てられるスキルが求められる。
エンジニアはなかなかあのニオイを出せないけど、それをぷんぷん漂わせてるんだから天職だと思うよ。
0728デフォルトの名無しさん2015/10/04(日) 21:52:59.61ID:/KIHQ6WK
なんでコンサルからヘルプデスクにつながるんだろう
0729デフォルトの名無しさん2015/10/05(月) 02:32:17.82ID:pXkN35Nh
プログラミングヤる前に色々勉強した法が良さそう・・・
0730デフォルトの名無しさん2015/10/05(月) 15:12:10.76ID:2wXr8eiu
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;

【期待する結果】
ああああ
いいいい
うううう
ええええ

【実行結果】
ああああ
うううう
ええええ
いいいい

なぜなんでしょうか?(*_*)
0731デフォルトの名無しさん2015/10/05(月) 15:15:52.17ID:kPKq1OVt
>>730
PHPの配列とはそういうものです。
マニュアルを読みましょう。
0732デフォルトの名無しさん2015/10/05(月) 15:31:04.63ID:2gaTZTqA
あうえい、それぞれ一個増える仕様です
0733デフォルトの名無しさん2015/10/05(月) 15:47:13.43ID:IPku5sGT
>$hoge = implode("\n",$hoge_arr);
ここの前で
ksort($hoge_arr);
すりゃいい
0734デフォルトの名無しさん2015/10/05(月) 22:47:07.89ID:hKC6CL9o
>>730
PHP7でなら期待する結果が得られると思われる
0735デフォルトの名無しさん2015/10/05(月) 23:44:57.99ID:0vUoyrfn
>>734
1 2 3 0の順で格納した場合に、配列だと判断してくれる(=内部でデータ変更してくれる)かどうかが気になるところだよね。
0736デフォルトの名無しさん2015/10/06(火) 00:51:13.38ID:1MaEKRz1
PHP7でそんな変更があるとはどこにも書いてないな。
基本的な文法は後方互換持たせてるっぽいし。
0737デフォルトの名無しさん2015/10/06(火) 02:14:13.60ID:7bWwpFop
RCで試してみればよいか, 俺は正式リリース後にするが
07387352015/10/06(火) 03:09:20.30ID:wqvPEXhX
>>736
https://nikic.github.io/2014/12/22/PHPs-new-hashtable-implementation.html
めっちゃ分かりやすく書いてくれてたのでオヌヌメ
0739デフォルトの名無しさん2015/10/06(火) 10:58:33.53ID:8pBv5L1n
>>737
そろそろ俺も7.0使ってみるかと思ってインストールしたら、7.1.0-devがインストールされてしまった。
7.0インストールするのめんどいのでこのまま>>730を実行してみる。

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

実行結果:
あああ
ううう
えええ
いいい

結論:
互換性は保たれている。
0740デフォルトの名無しさん2015/10/06(火) 11:39:11.92ID:O9Pn11VB
そこの挙動が変わったらいろいろ大変そうだもんな
既存システムの検証なんて気が遠くなる
0741デフォルトの名無しさん2015/10/06(火) 11:44:44.60ID:8pBv5L1n
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
0742デフォルトの名無しさん2015/10/06(火) 11:47:49.68ID:8pBv5L1n
あ、RC 5じゃなくて、RC 4+αなのか。
NEWSファイルに
> 15 Oct 2015, PHP 7.0.0 RC 5
って書かれてたから、RC 5は10/15リリース予定なのかな。
0743デフォルトの名無しさん2015/10/06(火) 15:40:51.94ID:MPuxCYgs
print_rとかvar_dump使うとフリーズしたり真っ白画面になったりするんだけど、どうしたらいいんだろうか
0744デフォルトの名無しさん2015/10/06(火) 15:49:24.74ID:SmWERlUR
>>743
内容が膨大で出力に時間がかかってるかタイムアウトしてるんじゃね。
オブジェクトの必要な部分だけをダンプしたら。
0745デフォルトの名無しさん2015/10/06(火) 17:13:58.45ID:MPuxCYgs
>>744
レスありがとうございます。個別にした所表示されました。
内容的には 連想配列5セット?分程度なんですが
渡し方が悪いのか妙にいろんなのがくっついてきてて・・・OTL
0746デフォルトの名無しさん2015/10/06(火) 23:36:29.98ID:7bWwpFop
>>743
さぁprint_rやvar_dumpを使う代わりにテストを書くんだ
0747デフォルトの名無しさん2015/10/07(水) 12:02:18.61ID:qdqRCjiZ
受ける会社大丈夫?
下記の条件が全て当てはまる会社にご注意下さい。

・IT系 in tokyo
・「社名 労基」でググると過去の2chスレが出てくる
・転職会議で2.5点
07487032015/10/07(水) 20:44:42.98ID:8dqqBgV+
>>710

IPアドレスで制限はやめた方が良さそうなんだね

とりあえず「一定時間内の同一IPを弾く」でやろうと思うんだけど、タイムスタンプ?っていうのはどうやればいいの?

検索して調べる際のキーワードというか‥ヒントでもいいから教えてくれないだろうか‥
0749デフォルトの名無しさん2015/10/07(水) 22:10:07.06ID:G4XQLQ5p
>>748
タイムスタンプって、ある事象が起きた時刻のことだよ。
ここで言えば回答を受け付けた時刻で、たとえば time() で取れる。
time の値は一見時刻に見えないただの数値で、この数値のまま記録して経過時間を判別することもできるけど、
処理系への依存性を減らしたりデータファイルの視認性を上げるためにおれなら日時形式にフォーマッティングして記録する。
2015-10-07 21:57:15 みたいな。

アンケートを受け付けた時、重複検索用に次のようなレコードを出力にしておき、
<タイムスタンプ>¥<IPアドレス>¥<UA>

チェック時には 現在時刻-判定時間 の「判定時刻」を求め、その判定時刻より大きいタイムスタンプを持つ行を検索し、IPアドレスとかUAをチェックする。
重複検索用のファイルはたまに判定時間を過ぎた古いレコードを削除してやるといい。
0750デフォルトの名無しさん2015/10/07(水) 22:17:36.43ID:OQQ44hBw
セッション使えばよくね
0751デフォルトの名無しさん2015/10/07(水) 22:18:22.91ID:G4XQLQ5p
レコード形式書き直し

<タイムスタンプ>¥t<IPアドレス>¥t<UA>

¥t はタブね。
カンマでもいいけど UA に使われそうにない ¥t がいい。
が、どっちにしても UA に区切り文字が含まれることを想定して、文字列は置換かけて利用して。
フィールド区切りを ¥t、レコード区切り(改行)を ¥n にするなら、UA は必ず ¥t や ¥n、ついでに ¥r をスペースに置換したものを利用する。
これやらないとセキュリティホールになりえるから抜け目なく。
0752デフォルトの名無しさん2015/10/07(水) 22:47:03.23ID:WJBWsnfN
fgetcsv(), str_getcsv()あんだからさあ・・・
0753デフォルトの名無しさん2015/10/07(水) 22:56:56.86ID:0iwSPjqO
>>750
セッションだと同じ人が、
いったんブラウザを閉じてから、
また接続して投票するかも
0754デフォルトの名無しさん2015/10/07(水) 23:08:21.36ID:07QWenOi
>>750
セッションもキーのやり取りがCookieですしおすし
意図しない2重投稿の拒否には効果的だと思うけど, 能動的に多重投稿しようとする場合にはなー

>>749,751
態々TSVでそんな処理を実装するなんて馬鹿げてると思うんだ
初めからSQLiteでも使って適当なテーブル設計にしておけばSQL文ひとつで済む処理だぜ, それ

ついでに言っとくと, 日時形式はタイムゾーン(UTC, JST, &c...)まで書かないとロケール依存だし, そもそもUNIX時間に処理系/環境依存性なんてない
0755デフォルトの名無しさん2015/10/07(水) 23:55:06.06ID:G4XQLQ5p
>>754
大元がdb使う話じゃないからそれに合わせたまでだよ。
今時 db 使えない環境も無いだろうが、順を追って覚えていく上でもファイルベースの処理はやって損はないでしょう。
環境についても、別に既存データを別環境に引っ越すことを狙ってるわけじゃないからロケールは不要だし、そこら辺まで意識したいなら UTC にでもすればいい話。
環境依存性の話は、どちらかと言えば時刻の取り扱いが異なる言語やOSへ引っ越す場合についての話。
その処理系で返される値がintじゃなかったら?時刻の新旧と値の大小の対応が不連続な処理系だったら?という話だよ。
2038年問題にどう対処されるか、負のタイムスタンプが何を表すか、そこら辺に違いが出る可能性があるでしょ。
日付と時刻でフォーマッティングしとけば、そこら辺の違いを吸収しやすくなりポータビリティが上がるでしょ。
0756デフォルトの名無しさん2015/10/08(木) 00:09:08.13ID:+wLyjalJ
うむ、ヘルプデスク君
0757デフォルトの名無しさん2015/10/08(木) 00:25:30.51ID:pWF1/z0v
db使った方が日付のポータビリティ高そう
0758デフォルトの名無しさん2015/10/08(木) 00:27:44.19ID:EtqyyL8e
>>757
そりゃそうだ
0759デフォルトの名無しさん2015/10/08(木) 01:42:25.19ID:fFP80ZXX
>>755
まぁ, 日付時刻フォーマットにするならISO8601とかあるし, 理由もなくオレオレフォーマットにするぐらいならそっち使った方がいいよ
0760デフォルトの名無しさん2015/10/08(木) 02:25:14.02ID:EtqyyL8e
>>759
目的を考えろよ。
別システムと情報交換するわけでもなく、自分ローカルの値なんだぞ?
簡単な文字列比較で時刻の新旧が比較できることが要件であり、それを満たしさえすればオレオレで充分だろ。
もちろん標準に添うことに反対するわけではないが、基本を勉強する段階で従うべきルールを不必要に増やすこともないでしょ。
0761デフォルトの名無しさん2015/10/08(木) 03:01:17.15ID:fFP80ZXX
>>760
目的考えればUNIXタイムが最適じゃない?
0762デフォルトの名無しさん2015/10/08(木) 03:07:36.73ID:zAcCECc5
いいや。おれの腹時計だ。
0763デフォルトの名無しさん2015/10/08(木) 03:11:49.64ID:EtqyyL8e
>>761
通常はそれで充分だと思うよ。
当面は unixタイムスタンプが扱える環境であれば同じように動作するだろうし。
おれが言ってるのは unixタイムスタンプを直接取れない処理系、及び unixタイムスタンプの溢れに対する対処に差がある処理系の考慮の話で、
少なくとも php に限定すれば気にするような話じゃないからね。
んまあこのコードを 2038年以降の 32bit版PHP で動かせるか、そこは気になるけどね。
負数に回り込んだりしてうまく比較できなくなるのであれば、その対応コードが必要になっちゃうよね。
0764デフォルトの名無しさん2015/10/08(木) 03:26:34.08ID:9a4rvECp
>>755
> その処理系で返される値がintじゃなかったら?
それはつまり、time がリファレンス通りの動作をしない実装の PHP を想定してのレスだよね。
その状況で、他の処理等々がリファレンス通りの動作をすると信じていいのかい?
0765デフォルトの名無しさん2015/10/08(木) 03:28:25.76ID:fFP80ZXX
>>763
意図は分かったけど, それ自分で言ってる基本とか目的云々とは対極の立場だよ
0766デフォルトの名無しさん2015/10/08(木) 04:15:37.76ID:EtqyyL8e
>>764
そこで言ってる処理系って他言語も含めての話だよ。
例えば同じことを windows api で書かなくちゃいけなくなった場合、得られるタイムスタンプの型は何種類かあるけど、まずどれを使うかという選択をしなくちゃならないし、そしてネイティブにはunixタイムスタンプを得られる api が無いという事情もある。
でもどんな処理系でも何らかの形で日付時刻として対応の取れる値を取得する手段はあるから、その形で値を管理すれば処理そのものは元のインタフェースの事情から解放されるでしょ。
そして、そう作るのに大きな手間がかかるというわけでもなく、PHP なら
date('Ymdhis')
とやるだけで要件を満たす値が得られるし、ついでに
date('Y-m-d h:i:s')
とやって視認性を高めてもいいでしょって話だよ。

>>765
環境と処理の本質を疎にするため値を目的に応じた表現にして管理するってのは基本でしょ。
ラッピングと同じように。
0767デフォルトの名無しさん2015/10/08(木) 07:28:26.01ID:JPpo1zNY
if文の評価式で、変数に値が入っているかどうかを聞く場合、
$hoge = 'hogehoge';

if($hoge)

if($hoge != '')

どっちが正解?
0768デフォルトの名無しさん2015/10/08(木) 12:31:05.75ID:9a4rvECp
>>766
ああ、その層の話をしてたのね。はあくした。
0769デフォルトの名無しさん2015/10/08(木) 12:32:39.24ID:9a4rvECp
>>767
空文字列であるかどうを知りたいなら if ($hoge !== '') が正解
0770デフォルトの名無しさん2015/10/08(木) 17:56:58.28ID:vrJgyY4U
>>769
ありがとう
他人の書いたソースで、文字列でも数値でも
if($hoge)でやってるから、どうなのかと思って
0771デフォルトの名無しさん2015/10/08(木) 19:38:15.41ID:DbNAUAeX
0とかfalse、null等の扱いを厳密にするならきっちり分けるべき。
!==でなく!=を使ってる時点で、曖昧でも問題がない設計なんだろう。
厳密な型の比較には注意が必要。
http://php.net/manual/ja/types.comparisons.php
0772デフォルトの名無しさん2015/10/08(木) 20:26:28.64ID:9yien46K
Javascriptスレで聞いたら
>PHP等の手を借りないと
>Javascriptだけでは不可能です
と言われたのでここに来ました。
index.htmlを表示している状態で、どこかの任意のWEBサイト
(例:www.yahoo.co.jp)を非表示の状態で読み込んで、そのサイトの
文章などの文字列を取得してindex.htmlの中で利用したいのですが、
どういう手順になるのか見当も付きません。
おおまかな流れを教えてください。
0773デフォルトの名無しさん2015/10/08(木) 21:46:10.43ID:bUX/DeaC
>>772
javascriptのajax( )でやれば?
phpのファイル呼び出して特定のdivコンテナにぶち込めばいいさ
0774デフォルトの名無しさん2015/10/08(木) 21:53:46.65ID:9yien46K
>>773
レス有難うございました。
おおまかな流れは分かりました。
クライアントサイドだけでは出来ないんですね。
0775デフォルトの名無しさん2015/10/08(木) 22:17:06.23ID:+wLyjalJ
クロスドメインのクの字も出てきてないのに何を納得したんだろうか
0776デフォルトの名無しさん2015/10/08(木) 22:24:14.36ID:9yien46K
>>775
ajaxを使うこと
0777デフォルトの名無しさん2015/10/08(木) 22:49:04.38ID:6F5A76Bc
JavaScriptにはクロスドメインの制約あるけど、AjaxでPHPを呼んで、
そのPHPでスクレイピングして結果を戻す場合にも制約にかかるの?
0778デフォルトの名無しさん2015/10/08(木) 23:00:47.02ID:+wLyjalJ
当然ながら、呼ぶ.phpの場所が読んでるhtmlと同じ場所なら、かからん
ただ、読み込むWebサイトを動的に変化させたい、php呼び出し時の引数で外部WebサイトのURLを指定して…とかになると
同時にセキュリティホールを生み出しかねないのはCORSと同じだが
0779デフォルトの名無しさん2015/10/08(木) 23:28:47.77ID:6F5A76Bc
>>778
>当然ながら、呼ぶ.phpの場所が読んでるhtmlと同じ場所なら、かからん
疑問が晴れた。ありがとう。
PHPで動的な処理をする場合、セキュリティが必須なのも同意。
0780デフォルトの名無しさん2015/10/09(金) 00:46:12.68ID:D2kqon1E
Googleのrecaptchaを突破する方法知りませんか?
0781デフォルトの名無しさん2015/10/09(金) 00:52:39.32ID:+sCz9Yei
おそらく答えるのは不正アクセス禁止法違反幇助に該当するので
0782デフォルトの名無しさん2015/10/09(金) 00:58:07.71ID:l3A42VSr
画像に書いてある英数字を読んで入力するだけじゃん
0783デフォルトの名無しさん2015/10/09(金) 02:57:28.21ID:a9mGxvsP
みんなphp以外だとどんな言語使ってる?
使えるじゃなくて普段使ってるもので良かったら利点等々聞けると・・・
0784デフォルトの名無しさん2015/10/09(金) 09:42:04.02ID:DHEVIjM9
>>777
PHPはこの場合proxyに過ぎないわけでかかるかどうかは相手サーバ次第が正解
0785デフォルトの名無しさん2015/10/09(金) 09:55:44.27ID:SYQG11wT
>>784
じゃあ同一生成元ポリシーに引っかかるかどうかが
相手サーバに依存する具体例よろ
0786デフォルトの名無しさん2015/10/09(金) 17:37:39.50ID:DHEVIjM9
かかるってのはアクセス出来ないという話で
同一生成元ポリシーとかそういう話じゃない
どういうケースかというと相手方がproxyであるかチェックを行うサイト
0787デフォルトの名無しさん2015/10/09(金) 19:12:36.00ID:BO+xHSp1
>>786
Q「(クロスドメインの)制約にかかるの?」
A「かかるかどうかは相手サーバ次第」←アクセスできるかどうかという話だ。

というやり取りをしていることについてどう思う?
0788デフォルトの名無しさん2015/10/09(金) 22:49:18.72ID:D2kqon1E
>>782
画像を選ぶ方式に変わったんです
0789デフォルトの名無しさん2015/10/09(金) 23:18:45.07ID:FgkOUotZ
現在地取得(今いる住所取得)は
geolocation APIとグーグルマップAPIを使い算出してました。

PHP側で同じようなパッケージなどありますでしょうか?
0790デフォルトの名無しさん2015/10/10(土) 00:11:17.08ID:YSjtdWRL
>>787
そもそも質問がおかしいだろ
0791デフォルトの名無しさん2015/10/10(土) 00:48:54.21ID:g8ZQ4q1/
>>790
そう思うならそこを指摘するべきであり、支離滅裂なレスをすることの理由にはならんだろ
0792デフォルトの名無しさん2015/10/10(土) 01:27:12.60ID:/QYhRBFu
globalは避けたい、staticプロパティやsingletonもglobal量産みたくなりかねないから避けたい
定数乱発もできるだけ回避したい
でも呼び出し側の設定によって関数・classの動作を変えるなど柔軟に作りたい
0793デフォルトの名無しさん2015/10/10(土) 02:13:33.85ID:+26wGx+X
>>792
スクリプトを実行して終了するまでの間はずっと同じ設定値なの?
実行中に設定値が一定なら define が妥当じゃね。
define のスコープの広さが気にくわないのであれば、設定値クラスみたいのを作ってスクリプト実行時に好きに初期化して、
設定値を利用したい方のクラスではコンストラクタに設定値クラスオブジェクトを渡しておくとか?
実行中に設定値が一定なら設定値クラスと処理クラスを一緒にしてしまえということになりそうだけど、static の乱発したくないというならこうなるのかね。
んまあ設定値クラスが持つ値の元はやっぱり define かなにかで定義することになりそうだけど。

つか、設定値で動作を変えるという内容にもよると思うけど、処理の差が出る部分を派生クラスで実装変更するというのはどうなの。
0794デフォルトの名無しさん2015/10/10(土) 03:38:04.85ID:YSjtdWRL
>>791
同一生成元ポリシーってのはJavaScriptでの話であってPHPは関係ない
>>785があのようなレスで返したこと自体が謎
0795デフォルトの名無しさん2015/10/10(土) 03:45:58.97ID:YSjtdWRL
あ、質問がおかしいではなく>>785がおかしいだな
0796デフォルトの名無しさん2015/10/10(土) 03:50:35.79ID:g8ZQ4q1/
>>794
>>790の「質問」って>>785のことを言ってる?
>>784がすでにおかしなレスなんだからそこが問題だろ。
0797デフォルトの名無しさん2015/10/10(土) 03:51:54.13ID:wKf2WBeU
>>796
このスレには割とガチで頭の可笑しいのが一人いる, そう思っておくとスルー出来てよい
0798デフォルトの名無しさん2015/10/10(土) 04:14:26.37ID:QDr2SJN2
AサイトからBサイトのAPIをajaxで呼び出す→クロスドメイン制約により不可能
AサイトからajaxでAサイトのPHPを呼び出しPHP経由でBサイトのAPIを呼び出す→ここに当てはまる答えを書きなさい
0799デフォルトの名無しさん2015/10/10(土) 04:56:27.45ID:NbY3/Ke0
なんでそんな面倒なことすんの?
0800デフォルトの名無しさん2015/10/10(土) 05:00:54.49ID:DKs1l9pU
そらパクリサイトやろ
0801デフォルトの名無しさん2015/10/10(土) 09:27:43.87ID:NaWvx4mT
外部からDBに接続させたくないから、PHP本体がレン鯖にある場合にやってる
0802デフォルトの名無しさん2015/10/10(土) 15:54:35.25ID:onaXIcy1
連想配列に代入する値に変数を使うことはできますでしょうか?

値を代入した変数を連想配列に代入したいのです。

具体的には多次元の連想配列の値に変数を使いたいと思ってます。


$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",
)

のようにしたいのですが、うまく行きません。わかりづらくてすみません
どなたかご指導のほどお願い致します。
0803デフォルトの名無しさん2015/10/10(土) 16:01:10.54ID:wKf2WBeU
>>802
それは, 代入後に$id_hairetuの値を変えた場合に$paramsの値も連動して変わるようにしたいということなのか, 或いは単に代入時の$id_hairetuの値をコピーしたいだけなのか
0804デフォルトの名無しさん2015/10/10(土) 16:11:20.89ID:onaXIcy1
>>803
後者です。
代入時に$id_hairetuの値をコピーしたいのです。。
0805デフォルトの名無しさん2015/10/10(土) 16:14:28.69ID:wKf2WBeU
>>804
そんなんだったら

$id_hairetu = array("aaa", "bbb","ccc");

$params =array(
&nbsp;&nbsp;"id" => $id_hairetu,
&nbsp;&nbsp;"fruit" => "apple",
&nbsp;&nbsp;"cooking" => "rice",
);

でいいじゃん
08068052015/10/10(土) 16:15:19.31ID:wKf2WBeU
今は&もエスケープされるのか

$id_hairetu = array("aaa", "bbb","ccc");

$params = array(
"id" => $id_hairetu,
"fruit" => "apple",
"cooking" => "rice",
);
0807デフォルトの名無しさん2015/10/10(土) 16:53:54.22ID:onaXIcy1
>,805>806
ありがとうございます。

そのまま配列(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

のようにしたいわけです。。
0808デフォルトの名無しさん2015/10/10(土) 17:12:22.95ID:wKf2WBeU
foreachでも書けるけど

$params = array_map(function($i){return array('id' => $i, 'fruit' => 'apple', 'cooking' => 'rice');}, $id_hairetu);
0809デフォルトの名無しさん2015/10/10(土) 17:56:56.30ID:NbY3/Ke0
>>807 みたいな事よく起こるけどこれってなんでなんだろう?
0810デフォルトの名無しさん2015/10/10(土) 17:59:48.94ID:onaXIcy1
>>808
解決できました
ありがとうございます!
0811デフォルトの名無しさん2015/10/10(土) 21:38:47.37ID:LXdnro1p
visualstudioでphpを使えるの?
0812デフォルトの名無しさん2015/10/11(日) 00:44:08.76ID:Fm9fNPIx
>>811
はい使えます
0813デフォルトの名無しさん2015/10/11(日) 01:19:29.32ID:KbfkRHMw
>>812
デバッグは出来るの?
0814デフォルトの名無しさん2015/10/11(日) 01:45:44.46ID:Fm9fNPIx
>>813
はい出来ます
0815デフォルトの名無しさん2015/10/11(日) 03:45:07.97ID:c+Go0B7k
VSでphp使う意味は?
0816デフォルトの名無しさん2015/10/11(日) 05:56:49.44ID:CC31UwIt
VSの話題なんて全然なかったのに同一人物がずっときいてんの?
板を移動した弊害?
0817デフォルトの名無しさん2015/10/11(日) 07:05:41.91ID:KbfkRHMw
>>815
普通は何を使うの?
0818デフォルトの名無しさん2015/10/11(日) 08:37:01.75ID:c+Go0B7k
>>817
質問を質問で返さないでもらえますか?
0819デフォルトの名無しさん2015/10/11(日) 08:55:57.42ID:HRXjUTC6
>>818
PHPの開発にVSを使う意味を聞きたいのではなく、
VSでPHPを使う意味を知りたいって不思議な気もするよ
0820デフォルトの名無しさん2015/10/11(日) 09:48:17.70ID:KbfkRHMw
>>818
なぜですか?
0821デフォルトの名無しさん2015/10/11(日) 10:51:19.50ID:LbFd/0K7
VSスレで聞いて
0822デフォルトの名無しさん2015/10/12(月) 07:03:36.46ID:0McaFoKh
IDEなんて第三者が拡張できるようにしてることが多いんだから
何が出来るかなんてプラグイン次第だろ
デバッグなんてIDEの中核機能の1つとして当たり前に搭載されてるものであって
使うような仕組みそのものが用意されてないならただのエディタだ
0823デフォルトの名無しさん2015/10/13(火) 07:32:40.90ID:QMMb6qGP
クロージャーについてうまく理解していないんですが、phpにおいて、クロージャーを使用するメリットってなんですか?
いろいろ見てたのですが javascriptではかなりメリットがありそうですが、privateやクラスが実装されているphpでは使う意味が無いようにすら感じられます・・・
(´・ω・`)なんでこんなの使うの?
0824デフォルトの名無しさん2015/10/13(火) 08:34:08.54ID:IKf0MrqG
スコープがどこであれ名あり関数定義は少ないほうがいい

普通の関数・クラスと違ってuseが使えるからcallback関数で使うのに便利
preg_replace_callbackの第二引数とかには、普通の関数じゃ自動で渡される$match以外は、値を引き渡せない
だから定数、global、singletonを使わざるを得ないように見えるけど無名関数ならいける
0825デフォルトの名無しさん2015/10/13(火) 11:22:13.69ID:K3Va9rOK
>>824
無名関数とクロージャは違う。 たぶん違うと思う。
0826デフォルトの名無しさん2015/10/13(火) 12:20:21.40ID:DtUJdHVx
便乗だけど

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

閉じ込めてるってこういうことじゃなくて?
0827デフォルトの名無しさん2015/10/13(火) 12:28:37.88ID:MwC2t3jo
>>826
それだとその関数のインスタンス(というのか分からんが)がひとつしか取れないじゃん。
変数の実体が隠蔽されてるというだけでグローバル変数と変わらない。
0828デフォルトの名無しさん2015/10/13(火) 12:49:09.93ID:7qM/SX9p
【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を使ってみたらすべての一致部分が置換されてしまいました。
マルチバイト文字を含む文字列の一部分置換を実現したい場合はどのようにすれば良いでしょうか?
0829デフォルトの名無しさん2015/10/13(火) 12:57:31.02ID:N777J+eM
preg_replace
ereg系は非推奨だからできれば使わない
0830デフォルトの名無しさん2015/10/13(火) 13:01:34.65ID:jBFoqp2r
>>826
> 複数のカウンター生成はそうなんだけど、カウンターを保持する変数を関数内に閉じ込めることができって、
> 別にstaticでも閉じ込められるよね?

staticだと初期化できない(再び0からスタートすることができない)。
0831デフォルトの名無しさん2015/10/13(火) 13:16:22.68ID:7qM/SX9p
>>829
それで出来ました。ありがとうございます。
0832デフォルトの名無しさん2015/10/13(火) 13:32:15.97ID:IKf0MrqG
そりゃ関数引っ張ってくるたび、その時useで引き渡した変数を保持してくれるけど
状態を持つインスタンスかインスタンスのような何かが欲しいだけだったら
単にcounterクラスを作って適宜newして作ってくれ、複数欲しけりゃ複数newしてくれ、初期化したかったら->init()作ったから使ってくれ、でもいいわけさ

だから>>823はいろいろ見た結果、classがありゃ別に良くね?と思ったんだろうと考えた
他の言語ともそうだけどjavascriptのクロージャとphpのクロージャとは違うし
となるとあとはクロージャの元々の「親のスコープの変数を(呼び出し時に引数で渡されなくても)持ってこれる」点かなと
なんかヘンだろうか

>>829
どうでもいいけどmb_ereg_replaceって非推奨なってないんじゃね?POSIXなeregと違ってバイナリセーフだから
0833デフォルトの名無しさん2015/10/13(火) 19:41:25.42ID:DtUJdHVx
>>827 >>830
ありがとう。イメージつかめた。
変数を閉じ込めるだの変数の初期化だのってのは文字通りの意味ではなくて、
カウンターを別インスタンスにするってことか。
0834デフォルトの名無しさん2015/10/13(火) 19:55:55.24ID:lKovNds8
>>833
それならクラスでもいいんだけど、大事なのは、、まぁやってりゃそのうち気づくと思うのでどうぞクロージャを。
0835デフォルトの名無しさん2015/10/13(火) 20:54:24.39ID:2Lm5yRxi
ガールズちゃんねるみたいな掲示板って、phpで作れる?
0836デフォルトの名無しさん2015/10/14(水) 02:01:02.42ID:QSQe/OJj
そんな質問してるようじゃ無理
0837デフォルトの名無しさん2015/10/14(水) 05:35:18.09ID:FCUQuge3
ファミコンゲームの開発に
PC-9801とか使ってたのは
どういう理屈で可能だったの?
(´・ω・`)
0838デフォルトの名無しさん2015/10/14(水) 10:26:53.35ID:vwkn6oKu
>>834
つまりクロージャーのメリットはないんですね
0839デフォルトの名無しさん2015/10/14(水) 17:31:47.32ID:yK3lkgWZ
聞き出せなかったね
0840デフォルトの名無しさん2015/10/16(金) 00:34:09.28ID:3nqUFkcM
PHPにおいてクロージャのメリットはほぼ無いと思う。
PHPでは無名関数とか無名クラスとしてしか使い道ないよ。
0841デフォルトの名無しさん2015/10/16(金) 01:24:59.58ID:Z14D5oxv
>>840
無名クラスはともかく無名関数とは比較にならないだろう
0842デフォルトの名無しさん2015/10/17(土) 11:15:26.58ID:CvIjhw+d
クロージャ言ってるけど公式的には無名関数なんだけどね

その公式からして
定義された時のスコープは参照できないけど
スコープにある変数は参照できるからクロージャとも名乗ってよくね?
なんてこまけぇこたぁいいんだよ理論で
クロージャと自称してるから仕方ないけど
0843デフォルトの名無しさん2015/10/17(土) 17:09:50.67ID:44Ma41Lx
文字列のうちマルチバイト文字だけurlencodeするにはどうすればいいですか?
0844デフォルトの名無しさん2015/10/17(土) 17:26:07.13ID:VIGRJF+u
>>843
マルチバイト文字だけにマッチする正規表現で preg_replace_callback とか?
0845デフォルトの名無しさん2015/10/17(土) 22:48:49.43ID:44Ma41Lx
>>844
マルチバイトだけ抜き出す肝心の方法がわからないんです
と思ったけどよく考えたらASCII除外とほぼ同じなんだからこれで大丈夫…なんですかね
preg_replace_callback(
  '/[^ -~]+/',
  function($matches){return urlencode($matches[0]);},
  mb_convert_encoding($string, 'UTF-8', 'auto')
);
0846デフォルトの名無しさん2015/10/18(日) 06:04:12.45ID:F4Gg11pg
>>845のコード書く時どうやって書く?

自分的には

preg_replace_callback('/[^ -~]+/', function($matches){
  return urlencode($matches[0];
}, mb_convert_encoding($string, 'UTF-8', 'auto'));

なんだが
0847デフォルトの名無しさん2015/10/18(日) 18:05:17.75ID:H4W8oY2a
マルチバイト文字だけにマッチする正規表現かよ!
0848デフォルトの名無しさん2015/10/18(日) 19:17:40.63ID:wjDoFuRU
>>845
mb_substrで一文字ずつ切り出してstrlenでバイト数 > 1の場合にurlencodeするとかどうでしょう
0849デフォルトの名無しさん2015/10/18(日) 20:14:14.10ID:5Pr0yIMd
1<strlen($string)よりisset($string{1})のほうが早くないか
と思って試したけど5%も違わなかった
0850デフォルトの名無しさん2015/10/18(日) 22:47:05.25ID:X/2nKuj7
>>846
構文エラー埋め込んだだけにしか見えないけど、改行の話?
0851デフォルトの名無しさん2015/10/19(月) 08:47:23.06ID:teI61ugJ
書き方なんて文脈とコーディング規約と売り方に合わせりゃいいんだよ
0852デフォルトの名無しさん2015/10/20(火) 03:21:23.42ID:1/bgAIX6
file get contentsでスクレイピングする時、クローラーじゃなくてブラウザと同じヘッダを送りたいんだけどどうすればいいの?
0853デフォルトの名無しさん2015/10/20(火) 03:34:12.36ID:+JqN1HNW
>>852
http://php.net/manual/ja/function.file-get-contents.php
context参照
0854デフォルトの名無しさん2015/10/20(火) 16:59:27.06ID:5+o2HAea
ブースター飛距離が足りないとお嘆きのアナタに!!
0855デフォルトの名無しさん2015/10/20(火) 17:01:12.18ID:5+o2HAea
ごばくごめん
0856デフォルトの名無しさん2015/10/21(水) 19:42:02.24ID:g4C44bEN
起動するとウインドウが次々出てくるプログラムって作れたよね?
それを開くとウイルスみたいにクラッシュかフリーズするまで止まらないやつ
テキストファイルで作った記憶があるんだけど作り方知ってる人いませんか?
0857デフォルトの名無しさん2015/10/21(水) 19:43:44.64ID:g4C44bEN
↑オフラインのPCでも起動できるからブラクラとはちょっと違ったはずなんだ
0858デフォルトの名無しさん2015/10/22(木) 10:22:28.49ID:CeSwqlxw
javascriptだろ、今はpopup禁止の設定多いから
自分で試すならそれ切ってな
0859デフォルトの名無しさん2015/10/22(木) 16:54:44.29ID:RFoUDNFf
>オフラインのPC
ブラクラの意味がわかってないようだなw
0860デフォルトの名無しさん2015/10/22(木) 18:02:07.88ID:/aknw9nT
スレチ
0861デフォルトの名無しさん2015/10/23(金) 12:53:16.53ID:pBHgjBfA
ちょっと前にphpの無名関数の話が出てたけど

useで持ってこれる親の変数はあくまで無名関数が定義されたときの変数の中身で
そんで親の変数に対しての参照を持ってるわけじゃないから
例えば $counter=0; $func = function()use($counter){ ... ++$counter; ... }; とかしても
func();で呼ばれたときに$counterはfunc()内では常に0で始まり、
親側の$counterもfunc()によって増減しないしfunc()定義後に親の$counterが動いてもfunc()内では常に0で始まる

親の変数を持ってくるだけならいいけど、親と共有したいなら静的変数やグローバルを使うかcallbackと無名関数を使わないでwhileで直接まわしたりする
こういう挙動は、こういうものなの?、それともphpのコンパイラの都合?
0862デフォルトの名無しさん2015/10/23(金) 14:26:29.65ID:9JJo3sM8
>>861
$func = function() use(&$counter) {}
0863デフォルトの名無しさん2015/10/23(金) 15:25:14.49ID:pBHgjBfA
>>862
悪い参照渡し頭からすっぽ抜けてた
0864デフォルトの名無しさん2015/10/27(火) 18:08:57.59ID:kr0AuHv9
どうでもいいけどシコった後って眠くなるよな
俺?今まさにその状態
0865デフォルトの名無しさん2015/10/27(火) 23:44:48.24ID:B8WGR4ja
$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だとエラーになりました
0866デフォルトの名無しさん2015/10/27(火) 23:51:35.09ID:lR1b6/iE
【OS名】CentOS
【PHPのバージョン】5.5
【連携ソフトウェア】なし

【質問内容】
__get()や__set() はどうして遅いの?
0867デフォルトの名無しさん2015/10/27(火) 23:58:28.62ID:jZAx/6LC
>>865
getTimezoneメソッドやgetTimestamp, formatメソッド
0868デフォルトの名無しさん2015/10/28(水) 00:00:10.40ID:EtBJvyZs
>>866
ドライブがSSD
もしくはリードオンリー
ライブラリのオモフク
require多発
DNS周りの設定の時もある

いろいろあるで
まず切り分けせなあかんな
0869デフォルトの名無しさん2015/10/28(水) 00:39:29.83ID:i3wzfLRw
>>865
echo $dt->date;
自分の環境ではこれで普通に表示されたよ。
何か別のエラーじゃないの?つーかそのエラーを書くべき。
まあformatメソッドを使うべきだけど。

$dt = new DateTime();
var_dump($dt);
echo '<br><br>';
echo $dt->date;
0870デフォルトの名無しさん2015/10/28(水) 00:44:20.20ID:i3wzfLRw
class DateTime#2 (3) {
ってなってるからこれならどう?
echo $dt::date;
0871デフォルトの名無しさん2015/10/28(水) 02:11:40.12ID:Gr82QenC
>>865
iniファイルちゃいますの
0872デフォルトの名無しさん2015/10/28(水) 02:15:59.71ID:tfmfu5HE
あれ
$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な変数に->でアクセスできるはずなので
0873デフォルトの名無しさん2015/10/28(水) 02:16:57.61ID:tfmfu5HE
PHP 5.6.8
0874デフォルトの名無しさん2015/10/28(水) 03:03:50.24ID:Li6zvEko
>>865
http://codepad.org/wjxI4fDr
0875デフォルトの名無しさん2015/10/28(水) 04:21:08.56ID:cCNG5eR4
>>872
DateTimeはプロパティを列挙するタイミングでそれらのプロパティをセットする
かと言って読み書きする事を前提にした実装にはなっていない
互換性のためか何か理由があるんだろうけど
ぶっちゃけ不具合みたいなものだから使ってはいけない
0876デフォルトの名無しさん2015/10/28(水) 09:26:04.92ID:fdp+6Zs/
>>872
マニュアルに書いてないものは存在しないものとみなすべき
0877デフォルトの名無しさん2015/10/28(水) 11:45:24.49ID:KIgU+Tc4
POSTされたデータを$_POSTや$_REQUESTじゃなくて生のまま受け取る方法ってある?
GETはわかる$_SERVER["QUERY_STRING"]がある
0878デフォルトの名無しさん2015/10/28(水) 11:56:41.36ID:KIgU+Tc4
悪いphp://input使えばいいだけだった
すまんこ
しかしphpのmultipleなselectの扱いは意味がわからん
0879デフォルトの名無しさん2015/10/28(水) 12:57:25.30ID:WdTv92Vj
んんんんっwwwwwwwwww

んんwwwwwwwwwwwwwwwwwwwwwww

んんんんんんんんんっwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
0880デフォルトの名無しさん2015/10/28(水) 20:35:52.72ID:obxDMXos
usernamekana1を半角カナオンリーにしたいので
↓のようにやっていますが

$usernamekana1=str_replace(array(" ", " ",'.','-',"\t","\r\n","\r",
"\n",'<','>'), "", $firstname_kana);
//↑半角カナ以外
$usernamekana1=mb_convert_kana($usernamekana1,hks);//なので

我ながら不恰好ですので良い表現方法ありませんでしょうか?

ご教授頂けますようよろしくお願いしますm(_ _)m
0881デフォルトの名無しさん2015/10/28(水) 21:24:10.99ID:KIgU+Tc4
>>880
文字コードと$usernamekana1に入りうる文字によるが
preg_*で文字コードから正規表現で範囲指定して全角かな全角半角カナだけ取ってきて処理する手法がある
どっちが早いかは状況次第
0882デフォルトの名無しさん2015/10/29(木) 20:34:13.57ID:b5qdY+6i
($time=time()).','.date('Y/m/d H:i:s', $time)

とか

$pos = 0;
while( ($pos=strpos($string, $needle, $pos+1)) !== false ){ ... }

みたいな評価順序を利用した書き方って使わないほうがいい?
可読性とコーディング規約が許すなら別に問題ない?
0883デフォルトの名無しさん2015/10/29(木) 21:35:18.33ID:bUytiJ2C
その条件なら問題ないよ
0884デフォルトの名無しさん2015/10/29(木) 21:45:42.46ID:GhGzx96S
>>884
直観的でないな。読みづらい。
0885デフォルトの名無しさん2015/10/29(木) 21:56:39.13ID:mJa4MfsR
>>884
自虐かよ
08868802015/10/29(木) 22:10:07.61ID:wwuM8Qzg
>881さん
コメントありがとうございます。

すいません。
ググったのですがサンプルが見つからないので
半角カナ以外すべて$usernamekana1から消す方法は

$usernamekana1=mb_convert_kana($usernamekana1,hks);

↓みたいな関数があれば良いのですけど……
$usernamekana1=mb_convert_kigou_dell($usernamekana1);

遅くても良いので良い方法をご助力頂けないでしょうか?
0887デフォルトの名無しさん2015/10/29(木) 22:40:27.23ID:bUytiJ2C
>>886
ぐぐったけどサンプルが見つからないっていうのが、
>>881の方法をやらなかった理由?
0888デフォルトの名無しさん2015/10/29(木) 23:53:04.60ID:ZblI1NQd
>>886
記号を削除するんじゃなくて、半角カナになる文字だけ取り出す操作の方がいい。
0889デフォルトの名無しさん2015/10/29(木) 23:54:40.39ID:zirA75NK
>>882
前者はコードゴルフが目的でなければ止めた方が良い
whileの書き方は定石なので問題ない
0890デフォルトの名無しさん2015/10/30(金) 00:00:30.08ID:A2BJ2A1c
>>888
対象だけ取り出すって面倒じゃない?preg_replaceで対象以外取り除けば1回で済むけど
0891デフォルトの名無しさん2015/10/30(金) 12:34:45.32ID:+QhXPTHH
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;
}
0892デフォルトの名無しさん2015/10/30(金) 12:38:57.11ID:AKFcUkih
変な関数名つけてくると思ったらやっぱ英語怪しい人かよ
0893デフォルトの名無しさん2015/10/30(金) 13:00:11.17ID:+QhXPTHH
>>892
ごめんなさい。
お手本のコードをぜひ見せてください。
0894デフォルトの名無しさん2015/10/30(金) 15:22:31.89ID:sATRB+gZ
PDOのプレースホルダで、bindParamの値に(int)0で渡すと空白で置き換えてくれちゃうんですけど、回避方法ありますか?

$value = 0;
bindParam(':name', $value, PARAM_INT);

こんな感じです
0895デフォルトの名無しさん2015/10/30(金) 15:46:55.75ID:RESFqDek
kigou_dell
んんん???
0896デフォルトの名無しさん2015/10/30(金) 17:11:04.74ID:SCV1iGnU
>>894
PDO::PARAM_INTでないのか
0897デフォルトの名無しさん2015/10/30(金) 17:18:48.85ID:sATRB+gZ
>>896
すみません
投稿時の書き間違えです
PDO::PARAM_INT
でやってもint型の0が無視されるんです

ちなみにstring型の'0'ならちゃんと変換されます
0898デフォルトの名無しさん2015/10/30(金) 17:34:24.60ID:qHOKDsW1
DB側の型がintならデフォルトを0にすっぺ
0899デフォルトの名無しさん2015/10/30(金) 17:51:06.32ID:5biB/KHY
>>893
横からスマンがdellって何の略?
0900デフォルトの名無しさん2015/10/30(金) 18:11:21.25ID:A2BJ2A1c
>>891
別解として入力バリデーションで既にUTF-8の全角カナ半角カナひらがなと半角記号しかないのが確定してるとかなら
$str = preg_replace('/[\x00-\x73]/', '', $str); などとすれば半角記号だけ除去ができて'/[^ヲ-゚]/u'よりちょっとはやい
ブラックリスト方式も早くて良いと思うんだけどだからまあ状況と要求次第

しかしUTF-8で半角カナは…データサイズの利点が無いから文字幅が狭くなる利点しかないんじゃないのか
0901デフォルトの名無しさん2015/10/30(金) 18:43:31.80ID:A2BJ2A1c
>>894
空白になってるのをどう確認したのかよくわかんないけど (int)($value) で引き渡せば
…ってのはおいといてPDO::bindParamじゃなくてPDO::bindValue使ってみたら?
0902デフォルトの名無しさん2015/10/30(金) 19:30:55.70ID:j3BSCHnJ
>>899
何だろうね? >>886 に聞いてみて。

↓みたいな関数があれば良いのですけど……
$usernamekana1=mb_convert_kigou_dell($usernamekana1);
0903デフォルトの名無しさん2015/10/31(土) 02:23:28.65ID:DFwcARkZ
PhpStormでCtrl+[がDeclarationになっているの外せないのかな?
Keymapで見ても、Command+BしかDeclarationには割り当てられていないんだけど。。
なぜか効いてしまいます。
0904デフォルトの名無しさん2015/10/31(土) 11:45:31.23ID:aFSNNsaQ
【OS名】windows8.1
【PHPのバージョン】5.3.5
【連携ソフトウェア】MySQL
【質問内容】
初心者です。やりたことはチャットに画像アップ機能をつけたくて、画像はmySQLに保存します。
教えていただきたいことはいくつかあるのですが、長くなるので一つずつお願いします。

画像の保存は出来たのですが、表示されません。
が、そもそもほんとに正しく保存されてるのか?が謎なのですが、

テーブル内のフィールドは、
up mediumblob //画像用
ext varchar(5) //拡張子用

で、 upに [BLOB - 3.2KiB]
   extに jpg
   
と書き込まれています。これは正常に保存されているということで良いのでしょうか?
よろしくお願いします。
0905デフォルトの名無しさん2015/10/31(土) 12:17:55.14ID:t/jaIjM4
どっちみち取り出さないといけないんでしょ?
取り出してみればわかることを聞くんじゃありません
0906デフォルトの名無しさん2015/10/31(土) 12:43:10.98ID:aFSNNsaQ
>>905 さん、 >>904です。
お返事ありがとうございます。 す、すみません!!表示出来ないのはもしかして、 読み込み側のコードではなく、そもそも書き込みが正しく出来てなかったからとか? と思ったものですから。

それでは読み込みのコードでおかしいところがあったら教えてください。

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'];
} }
?>

エラーメッセージ等は後からでもいいかと思って入れてません。あと、ここに一度書き込みしたのですが、改行が多すぎるてエラーが出たのでデータベース接続は省いてあとも詰めて書いてます。読みにくかったらすみません。
よろしくお願いいたします。
0907デフォルトの名無しさん2015/10/31(土) 13:01:23.77ID:6kMgLpUU
改行が多すぎるエラーなんかはじめてきいたな
0908デフォルトの名無しさん2015/10/31(土) 13:04:25.92ID:eolGIlKB
PHPじゃなく、2chの表示だろ
0909デフォルトの名無しさん2015/10/31(土) 13:55:27.24ID:iQz1e3kF
>>906
もしかしてだけど、imgタグのsrcにechoしないとイケないんじゃないの
0910デフォルトの名無しさん2015/10/31(土) 15:14:45.88ID:OlIi4vyD
ワードプレス専用スレってありませんか?
またないとしたらどこで質問するのがベストですか?
0911デフォルトの名無しさん2015/10/31(土) 15:25:07.69ID:cNb0xpTQ
>>904(>>906)です。
書き方がわかりにくくてすみません、>>908さんが書いてくださってるように、2chでのエラー表示えdす。

>>909さん、コメントありがとうございます。

最終的に表示するのは、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をアドレスに入力して表示させると真っ白で何もありません。エラーメッセージ等も出てません。

よろしくお願いいたします。
0912デフォルトの名無しさん2015/10/31(土) 15:25:46.12ID:eolGIlKB
WordPress(ワードプレス)でWebProg 質疑応答スレ 01
http://kanae.2ch.net/test/read.cgi/php/1324538866/

こういうスレがあるけど、住民がいるかどうかは分からない
0913デフォルトの名無しさん2015/10/31(土) 15:33:20.79ID:eolGIlKB
>>911
>表示させると真っ白で何もありません。

この状態でソースを見るとどうなってるのかな?
ブラウザの機能で「ソースをみる」ってあるでしょ。
IEなら、メニューの「表示」「ソース」
FFなら、右クリック「ページのソース」
0914デフォルトの名無しさん2015/10/31(土) 16:02:36.82ID:WDNhA6EE
>>911
とりあえずdisplay.phpで,

while($result = $str->fetch(PDO::FETCH_ASSOC)){ header('Content-type:'. $up_type[$result->ext]);
echo $result['up'];
}

としている部分が理解不能。
画像ファイルのヘッダとか見たことあればレスポンス1件につき1つの画像ファイルしか返せんことは分かると思うが。

あとファイル末尾の ?> はバイナリを吐くときにゴミをつける可能性があるから無くすべき
0915デフォルトの名無しさん2015/10/31(土) 16:13:55.98ID:cNb0xpTQ
>>911です。
>>913さん、お返事ありがとうございます!
ソースの方も真っ白というか、行番号を示す1というのが表示されているのみです。

>>914さん。
具体的に書いてくださりありがとうございます!
すみません、画像ファイルのヘッダて見たことないです。1件しか表示できないんですか?では、アップしてるものをすべて表示するのって、どうすれば・・・ 何かヒントなどありましたら教えていただけるとありがたいです
0916デフォルトの名無しさん2015/10/31(土) 16:24:03.07ID:x63vysfN
抽出されたのが0件なんじゃないの。
0917デフォルトの名無しさん2015/10/31(土) 16:33:53.45ID:OlIi4vyD
>>912
おーありがとうございます
0918デフォルトの名無しさん2015/10/31(土) 16:35:12.64ID:WDNhA6EE
>>915
display.phpにGETでもPATH_INFOでもなんでもいいが, 画像をidentifyするようなパラメータを付けて呼べばいい。
display.phpではidentifyされた画像ひとつだけを返せばよい

<img src="display.php?image_id=5">
0919デフォルトの名無しさん2015/10/31(土) 16:39:19.32ID:x63vysfN
if (isset($_GET["id"])) { $id = $_GET["id"]; }
こう書いてるんだから image_id じゃなく id にしてあげなよ。
0920デフォルトの名無しさん2015/10/31(土) 16:46:46.10ID:WDNhA6EE
データベース構造が分からんからidがユニークなのか分からんのだよなー, ユニークじゃない前提のコードが書かれてるし
0921デフォルトの名無しさん2015/10/31(土) 16:53:29.37ID:79rh8PzW
PHP書いてるとHTML/CSS/JSの絡みに困るんですけど模範的な設計とかデザインとかありますか?
0922デフォルトの名無しさん2015/10/31(土) 17:03:45.87ID:eolGIlKB
>>915
>>906のところ

while($result = $str->fetch(PDO::FETCH_ASSOC)){ header('Content-type:'. $up_type[$result->ext]);

$result->ext を $result['ext'] に直してみて
0923デフォルトの名無しさん2015/10/31(土) 17:10:16.16ID:x63vysfN
>>920
ユニークじゃなければエラーになるんだからユニーク前提のコードとも取れる
0924デフォルトの名無しさん2015/10/31(土) 17:15:32.59ID:mOngkuFS
>>915です。
お答えくださったみなさん、ほんとにどうもありがとうございます!

今は携帯からで、パソコンはまた明日のお昼間じゃないと使えないので、明日になったら書いていただいたことを試してみます!

それと、idがユニークかどうかについてですが、よくわかってないので勘違いだったらすみませんが、unsigned(綴り違ったかも) にしてます。これも、ネットであちこち見て真似てやってて、実際は意味がわかってません。恐縮です。
0925デフォルトの名無しさん2015/10/31(土) 17:25:11.40ID:x63vysfN
>>924
つまるところ、一番の問題点は>>918が指摘しているように、display.phpにパラメータを渡せていないところだよ。
0926デフォルトの名無しさん2015/11/01(日) 02:58:07.77ID:552PnYcn
wpってこんな脆いのか
0927デフォルトの名無しさん2015/11/01(日) 13:59:01.46ID:+r1Q/vRP
>>924です。
みなさん、昨日はほんとにどうもありがとうございました。
ユニークについては私の勘違いでした。すみません。見てみたらプライマリーになってましたが(参考にさせてもらったところのをそのまま真似ました)ユニークの方が良いのでしょうか?

>>922さんがご指摘くださった部分変更しました。ありがとうございました。

で、>>918さん、>>919>>さん、>>925さんが書いてくださってることですが、

<img src="display.php?id=5"> に変えてみましたが、この5というのは何を表しているのでしょうか?
あと、display.phpの方には何か書き加えないといけないのでしょうか?
わかっていなくてすみません。
よろしくお願いいたします。
0928デフォルトの名無しさん2015/11/01(日) 14:01:17.00ID:csWYRkSJ
ここはお前専用サポート掲示板
0929デフォルトの名無しさん2015/11/01(日) 15:19:06.71ID:gG04aPZk
自分で適当なphp作って内容を
<?php
var_dump($_GET);
var_dump($_POST);
とかにして
ブラウザのURL欄やformやaタグからそれ指定して
いろいろパラメタ付けて、試してみたらどうよ

あまりにも初歩過ぎて回答するだけで文句言われそうなレベル
0930デフォルトの名無しさん2015/11/01(日) 15:23:51.34ID:SDYYiCdp
ここは、「下らねぇ質問」を受け付けるスレだから
0931デフォルトの名無しさん2015/11/01(日) 16:03:21.95ID:HuBu2yBp
>>927です。
質問がくだらなすぎてほんとに申し訳ありませんでした。
書いていただいたことを調べながらやってみます。

みなさんほんとにどうもありがとうございました。
0932デフォルトの名無しさん2015/11/01(日) 16:08:27.01ID:SDYYiCdp
>>931
気にしなくていいよ。がんばれ。分からないことが出てきたらまたおいで
0933デフォルトの名無しさん2015/11/01(日) 17:06:51.44ID:yUX6gb++
まぁ下らねぇ質問はしてよいけどID:SDYYiCdpが実践している通り答えてやる必要はないわけだ
0934デフォルトの名無しさん2015/11/01(日) 21:41:39.74ID:+B1USwRt
質問するのもいいが、評価の高い初心者向けの入門書を数冊読めばいいと思うよ
0935デフォルトの名無しさん2015/11/01(日) 22:40:11.29ID:5JJhe8Sb
下らねぇ質問で恐縮ですが
評価の高い初心者向けの入門者を数冊教えてください
0936デフォルトの名無しさん2015/11/02(月) 01:22:25.23ID:xRbtggrb
市販の入門書はあてにしないのがこのスレのスタイル
良書とよばれたものはPHP4世代のもので古すぎる
PHP習熟者が増えた今現在
初心者向けの良書とよばれるものはおそらくでないだろうな
といっといてなんだが困ったときにはオライリーでおk
0937デフォルトの名無しさん2015/11/02(月) 01:25:14.89ID:NvAhCpQZ
php.net読みまくっとけばいいさ
0938デフォルトの名無しさん2015/11/02(月) 14:20:29.27ID:jL3WrFnr
>>927 は質問する前にちょっと勉強したほうがいいな・・・
多分入門書程度のレベルでも1冊読めばその程度のことは書いてあると思う・・・
0939デフォルトの名無しさん2015/11/04(水) 13:54:42.39ID:MLcKFTKO
2chの公務員板に書き込みした時、確認画面とか書き込み後に変なコードが出たんだけど大丈夫
0940デフォルトの名無しさん2015/11/04(水) 14:09:11.79ID:MLcKFTKO
不安。
0941デフォルトの名無しさん2015/11/04(水) 14:12:18.54ID:QKGer34/
変なコードでわかると思う?つうか2chはPerlじゃないのか
0942デフォルトの名無しさん2015/11/04(水) 14:33:14.41ID:MLcKFTKO
そうか。
calledとか出てた。
さっき書き込んだ時も罠を仕掛けたとかゲームっぽい広告のテロップが出たんだけど。
対策お願いいたします。
iPhoneで書き込みました。
0943デフォルトの名無しさん2015/11/04(水) 16:12:09.01ID:+We5XBc9
>>942
>>1
0944デフォルトの名無しさん2015/11/05(木) 04:05:37.04ID:kMVTOBKu
>>941
保守、運営を担当してた海外のプログラマらの手によって、
haskellで書き直されたんじゃなかった?
0945デフォルトの名無しさん2015/11/05(木) 04:11:36.82ID:TC0aybFH
haskellで書き直したのはread.cgi(read.so)じゃなかったか
書き込みに使われるのはbbs.cgi、bbs.cgiは現状はCだったようなPerlだったような

どっちにしてもphpじゃないとは思うが
0946デフォルトの名無しさん2015/11/05(木) 15:18:44.52ID:l9p4qEU8
PHPとは少し関係ない質問かもしれませんが、何処で質問したら良いのか分からず・・・
フォームを作成しmb文字や改行コードを受け付ける時 文字コードや改行コードといった文字コードは何によって決定されるのでしょうか
WindowsやMac、Android等で入力されてきたデータは全て確認し、変換して格納する必要があるのでしょうか
(´・ω・`)変な質問してたらごめんね
0947デフォルトの名無しさん2015/11/05(木) 15:27:31.67ID:Xj8bJ8Es
>>946
改行コードはクライアント側が設定します。
0948デフォルトの名無しさん2015/11/05(木) 20:49:51.33ID:9YM3Wel+
>>946
>WindowsやMac、Android等で入力されてきたデータは全て確認し、変換して格納する必要があるのでしょうか

文字化け対策として、各ファイルの文字コードを統一しておけば、確認や変換は不要。
最近は、UTF-8で統一しておくのが主流だね。
もっとも、セキュリティの観点で、入力されたデータの文字コードが
不正でないかのチェックはしたほうがいい。
0949デフォルトの名無しさん2015/11/05(木) 21:21:03.29ID:TC0aybFH
>文字化け対策として、各ファイルの文字コードを統一しておけば、確認や変換は不要。

えっ
0950デフォルトの名無しさん2015/11/09(月) 14:53:03.17ID:J2sa9vnc
〜(波ダッシュ)ShiftJis↔UTF間の変換、直してくれないかな
0951デフォルトの名無しさん2015/11/09(月) 15:10:24.40ID:Bvj183hS
>>950
あれは Windows のが間違ってる
でもそれより Mac の濁点文字をなんとかしてほしい
0952デフォルトの名無しさん2015/11/09(月) 15:44:17.40ID:E71YiunB
濁点文字ってNFDのこと?
0953デフォルトの名無しさん2015/11/12(木) 20:40:45.13ID:pgvdnRZv
PHPのvar_dump()を他言語でも使えるように作ろうかと思うだけど、
var_dumpの内部構造どっかで見られない?
最近PHPやってなかったらどこ見ればいいか分かんなくなってしまった
0954デフォルトの名無しさん2015/11/12(木) 23:14:53.44ID:6DBAG3QU
三項演算子をこんな感じでネストさせて使おうと思って

return ( $v === 0 ) ? 'hoge' :
     ( $v === 1 ) ? 'fuga' :
     ( $v === 2 ) ? 'foo' : 'default' ;

とりあえずテストしてみたらなんかおかしい、php.netみたらphpではこういう書き方できないのだと知った、今日この頃
おとなしくif分岐使いますわ…
0955デフォルトの名無しさん2015/11/12(木) 23:29:03.51ID:NEuWYquR
可読性が落ちるから、どの言語でも三項演算子のネストはご法度。
0956デフォルトの名無しさん2015/11/12(木) 23:32:38.68ID:5T+ZDMx8
>>954
カッコ使えばできるけど、それはお望みじゃないんだよね
0957デフォルトの名無しさん2015/11/12(木) 23:35:46.92ID:6DBAG3QU
>>956
うん
書くのが楽で、書き方に気をつければ見た目わかりやすいのが利点だから
それとももしや後ろに行くほどカッコが増えたりしない書き方できたりする?
0958デフォルトの名無しさん2015/11/12(木) 23:41:21.52ID:5T+ZDMx8
>>957
いや、カッコが増えていく
でも if を列挙するのもなんだかなって感じだよね
なんで PHP はこれを左結合にしたんだろうね
0959デフォルトの名無しさん2015/11/12(木) 23:42:35.18ID:L6COn33V
>>955
少なくともCやJavaScriptの仕様なら>>954は見た目すぐ分かるだろ。一般的に禁止もされてないと思うが。
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/
0960デフォルトの名無しさん2015/11/13(金) 01:04:13.38ID:aSxPYOOa
>>954
switch使え
0961デフォルトの名無しさん2015/11/13(金) 01:20:05.09ID:WtbCnw9P
厳密な比較をしてくれるswitchがあったら問題なかった
switch( true )を使うやつは冷凍豆腐に頭ぶつければいいと思う

phpの三項演算子が左結合なのは、ただ初期の設計ミスを見落としただけらしい
変えること自体はラクにできるけども、既存のソースとの兼ね合いで変えるに変えられないとか
0962デフォルトの名無しさん2015/11/13(金) 01:26:59.02ID:99szWd6E
>>961
気になって調べたらそうだったっぽいね。
しかしこの左結合を有効利用してるコードなんてあるんだろうか。
せめてコンフィギュレーションできるようにすりゃいいのに。
あるいは文末に来る閉じカッコを省略できるようにしてもいいかも。
そうすりゃこんな書き方で対応できる。

return ( $v === 0 ) ? 'hoge' :
     ( ( $v === 1 ) ? 'fuga' :
     ( ( $v === 2 ) ? 'foo' : 'default' ;

閉じカッコ省略はカシオのポケコンで取り入れられてたけど、結構便利なんだよなぁ
0963デフォルトの名無しさん2015/11/13(金) 01:34:14.91ID:Zno4BFZq
ギエピー!!PHP初心者が学べるサイトやツールなど教えてくれピー!!
0964デフォルトの名無しさん2015/11/13(金) 11:22:00.31ID:q2jJ+eFR
>>961
switch(true)が害悪な理由がわからんヘタクソなんで
理由を教えて下さい。
0965デフォルトの名無しさん2015/11/13(金) 11:55:54.61ID:iyo8Ja05
>>964
ケースを羅列したいのに出来ないから生まれた苦肉の策だから
じゃないかな
0966デフォルトの名無しさん2015/11/13(金) 11:56:45.39ID:iyo8Ja05
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】なし
【質問内容】

ftp_nlist でエラーになった時に
エラーの詳細な情報を取得したいんだけど
どうしたらいいの?
0967デフォルトの名無しさん2015/11/13(金) 15:22:33.89ID:Y891nyvQ
2chでサーバーエラー出たときにPHPの変なタグ出てきた事あったよ
そして行く末知らないけどひろゆきにソースコードの著作権があるのに
それをJimが勝手に使ってるからなんか色々
0968デフォルトの名無しさん2015/11/13(金) 17:32:16.20ID:RUmdr/fe
三項演算子を "積み重ねて" 使用することは避けましょう。
ひとつの文の中で複数の三項演算子を使用した際の PHP の振る舞いは、少々わかりにくいものです。
http://php.net/manual/ja/language.operators.comparison.php#language.operators.comparison.ternary

公式マニュアルはこう言ってるね。
switchが緩い比較だとしても、事前に $v の型チェックをすればいいんじゃない。
0969デフォルトの名無しさん2015/11/13(金) 18:00:21.86ID:99szWd6E
>>968
それはあくまで “PHPでは” だよね。
他言語では true項も false項も対等だし可読性を保った書き方もできるから避ける必要など無い。
まあコンパイルするような言語では switch にしとくと最適化されやすいという考慮点はあるが。
0970デフォルトの名無しさん2015/11/13(金) 18:26:40.67ID:a7TZTyJc
PHPの三項演算子-disは超既出です
0971デフォルトの名無しさん2015/11/13(金) 18:38:00.24ID:iyo8Ja05
>>969
多言語でも参考演算子は積むなって言われるやろ

お前が天才だから、ではなく、演算子の優先順位が云々、でもなく
読めない・読まないアホが読める形にするために、だよ
0972デフォルトの名無しさん2015/11/13(金) 18:38:27.02ID:MH+cSPko
〜を~に変換するプログラムで7Eに変換したはずなのに 全角のままだった
(´・ω・`) 全角の〜(チルダや波線)を一括で~に変換するプログラムってどうやったらいいんでしょうか
0973デフォルトの名無しさん2015/11/13(金) 19:26:12.67ID:D5Uq6av0
>>971
php以外でどこで言われてる?
そういう規約があるなら貼ってみてよ。
09749592015/11/13(金) 19:28:47.35ID:YRkhsUKe
>>971
> 多言語でも参考演算子は積むなって言われるやろ
いやだからそれは言われてないと俺は思うが。少なくともGoogleのC++/JavaScriptでは言及がない。
(PHPのは仕様が変だから禁止で妥当)

最近俺は>>954>>962の方が見やすいと感じてるよ。
実際if文で書いたら、3つreturnが必要で、すべて読まなければならない。(3つreturnが書いてあるかどうかとかも)
三項演算子で書けば、最初にreturnが確定して、後は値だけになる。
俺は代入の時にもよく使っているが、それは左辺側が同一だと確定するから。
if文で書くと左辺が同じ変数かどうかを確認する必要がある。(タイポとかもあり得る)

if文だとなんでも書ける分、全部読む必要がある。
三項演算子だと最初に動作が確定、値についてはこれこれ、という書き方になる。
読む内容が減る分だけ楽になると思うが。
0975デフォルトの名無しさん2015/11/13(金) 19:33:19.19ID:hvMZ1Ugb
>>972
var_dump(mb_ereg_replace( '〜' , '~', '(^〜^)'));

>>968
> switchが緩い比較だとしても、事前に $v の型チェックをすればいいんじゃない。
実際その辺どうなんだろう?
とりあえず今 mt_rand() で取り出した数字を switchで3と比較して結果次第で別の文字を代入、三項演算子でも同様に、
というのを100,000回ほど交互に繰り返してみたら、三項演算子が 0.115sec、switchが 0.183secだった

$array[0]と$array['0']が全く同一だったりとか、php内部の変数の扱いは良くわからん
0976デフォルトの名無しさん2015/11/13(金) 19:38:25.02ID:hvMZ1Ugb
>>967
それ確か、サーバの500だかのエラー表示の中のApache Serverのシグニチャにphpが入ってたってやつ
要は当時2chのいずれかのサーバにmod_phpが入っていたというだけの話で、2chがphpで動いているかどうかは関係ない話
0977デフォルトの名無しさん2015/11/13(金) 19:53:06.21ID:D5Uq6av0
>>974
コーディング規約持ち出すと、return は関数末尾にひとつだけ、みたいなのに出くわしたことがある。
そういう体制では三項演算子を if で置き換えたら変数で受ける必要まで出てきて面倒だな。
なんにしてもコーディング規約に書いてあるならそうしなさいということんだけど、
php 以外で三項演算子について規定してるのって知らないな。
0978デフォルトの名無しさん2015/11/13(金) 20:22:08.01ID:9Z3jJmN8
規約によって言語の機能を禁止する行為が愚かだという流れから禁止していないだけであって、
問題ない範囲で使えよという行間がある。
分かりやすくいうとgotoは禁止すべきじゃないし、トリプルポインタだって禁止すべきじゃない。
0979デフォルトの名無しさん2015/11/14(土) 08:24:41.88ID:LUyUmkqN
>>975のテストは時間取得して代入するコストを減算してなかった、比較が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使えって話、何より遅い
0980デフォルトの名無しさん2015/11/14(土) 10:42:48.66ID:JEd33JqI
速度を重視するか可読性を重視するかにもよるんじゃない?
要件満たさないほど遅い場合にはボトルネックを見つけてから
そこを改善すればいいんだし。
0981デフォルトの名無しさん2015/11/14(土) 16:50:40.94ID:p29z202R
PHPで掲示板を作ろうと思ってるんだが、調べてみたらCGIってのが掲示板の主流みたいじゃないか

サーバー上で動作するプログラムで動的にHTMLを吐き出すって点ではどっちも同じみたいだけど、掲示板作成するならどっちつかった方がいいの?
0982デフォルトの名無しさん2015/11/14(土) 17:03:18.94ID:+bixUoUA
>>981
PHPにしとけば
それが完成したら他に手を出してみればいい
0983デフォルトの名無しさん2015/11/14(土) 17:06:16.05ID:ASkZSMfE
掲示板って動的にHTMLはくような事してんの?随分面倒な処理してるんだな負荷軽減?になるのか
0984デフォルトの名無しさん2015/11/14(土) 17:21:46.99ID:p29z202R
>>982
サンクス

PHPのやつは一応ある程度まで出来たんだが、ネットでオープンソースのCGI掲示板配布してたからそれを導入してちょくちょく弄ってった方が近いのかなと。。

CGIってのがよくわからんのだけど、プログラム言語?のことなの?
0985デフォルトの名無しさん2015/11/14(土) 17:33:32.70ID:uq7iZ3Y9
>>981
俺は余り詳しいわけではないが、多分今時はPHPの方が主流だと思うぞ。
当たり前だがPHPのオープンソース掲示板も配布されている。
てかむしろ、「今時CGIかよ」って馬鹿にされていたと思ったが。
0986デフォルトの名無しさん2015/11/14(土) 17:44:46.58ID:+bixUoUA
>>984
CGI ってのは webサーバ下で動く実行ファイルのことだと思えばいい。
webサーバはクライアントからのリクエストを受け、実行ファイルを起動してその出力をクライアントに返す。
だから言語は問わず、perl で書いても C で書いてももちろん PHP を利用しても実行ファイルになってさえいればいい。

いわゆる PHP と言うと、CGI みたいにいちいちプロセスとして起動されるわけじゃなく、webサーバプロセスで PHP が実行される感じで、CGI とは違う形態になってる。
PHP はそれそのものがテンプレートエンジンみたいなもんだから webサーバとの協調に馴染む。
0987デフォルトの名無しさん2015/11/14(土) 17:48:53.64ID:qxo7dVQH
>>977
車載系はそんなもんだよ
MISRAはつらい
0988デフォルトの名無しさん2015/11/14(土) 17:56:10.64ID:p29z202R
>>985
やっぱそうなんだ。
CGIってあんまり聞いたことなかったからやっぱり…

1から作ったしょっぼいしょっぼい掲示板捨ててオープンソース探してみるわ…
0989デフォルトの名無しさん2015/11/14(土) 17:57:24.92ID:p29z202R
>>984

実行ファイルってことは、さっき書いた「HTMLを吐き出す」ってことの意味がPHPと全然違うんだね;
すまんかった。

それなら何も考えずにPHPつかった方がダイレクトでいいってことか。
0990デフォルトの名無しさん2015/11/14(土) 18:06:58.50ID:+bixUoUA
>>989
どっちも基本的に HTML(とは限らずクライアントへ返したいものなんでも)を吐き出す処理を書くものだからそう変わらないよ。
CGI は webサーバと統合されるもんじゃないからインタフェースが簡単で、昔から使えたというだけ。
0991デフォルトの名無しさん2015/11/14(土) 18:09:03.53ID:bqWycdSK
>>989
PHPだって実行ファイルに出来ますし・・・・・
別に言語としてPHPを使いつつCGIとして実行だって出来る

所謂PHPはサーバソフトにmod_phpというPHPを処理するモジュールを組み込んでおいて, サーバソフトがmod_phpを使ってPHPを実行する。
対してCGIではmod_cgiというモジュールを使って, サーバが別プロセスを立ち上げて実行可能ファイルを実行する。
0992デフォルトの名無しさん2015/11/14(土) 18:55:31.32ID:p29z202R
なるほどねー
ガルちゃんみたいなスレッド式掲示板ぐらいならPHPで良さそうだな。
0993デフォルトの名無しさん2015/11/14(土) 19:00:57.36ID:AjDQR89s
次スレ
http://peace.2ch.net/test/read.cgi/tech/1447495088/
レス数が950を超えています。1000を超えると書き込みができなくなります。