TOP カテ一覧 スレ一覧 100〜終まで 2ch元 削除依頼
【Java標準GUIライブラリ】 JavaFX スレッド
初心者の作ったプログラムにありがちなこと
Visual Studio Code / VSCode Part3
awkについて語るスレ $2
Visual Studio 2013 SP8
Smalltalk総合 Squeak Pharo
php使ってる奴はアホ、これからはRuby on Rails!
【GNU】スクリプト言語 Guile【scheme】
テストを書いてからリファクタリングなんてのは幻想
【PHP】下らねぇ質問はここに書き込みやがれ 10

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


1 :2015/07/09 〜 最終レス :2015/11/14
PHPに関する下らない質問用避難スレです。
まず読むこと【PHPマニュアル】
http://www.php.net/manual/ja/

2 :
◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.5
【連携ソフトウェア】MySQL ImageMagick
【質問内容】

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

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

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

【その他諸注意】
・ SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・ 次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。

3 :
今このスレがダントツで勢い1番ある
これはPHPが死んでない証拠

かぜ…風を感じる
この風はやがで嵐になり世界を覆い尽くすだろう

4 :
荒らしは呼ばないでくださいw

5 :
PHPDocでさ、「この引数は未使用です」 ってのを明示したいんだけど
そういうのをしめすキーワード とかってあるの?

6 :
windowsのphp5.6です。
phpってphpファイルの中に沢山のfunctionを記述しておいて、クライアントサイドのJSから特定のfunctionを実行するっていう事は出来ますか?
今はやり方が分からないので、どんなに短いfunctionでもphpファイルに分けているので、数行のファイルが沢山出来て混乱してます。
これを一つのphpファイルに纏めたいんですが。

7 :
今は
http://localhost/[function名].php
ってことだと思うけど、
http://localhost/test.php?func=[function名]
みたいな感じのアクセスでfunctionが実行できるようにまずは目指すといいよ。

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

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

とか。

8 :
>>7
サンキュー、うまく行ったよ。
感謝するよ。

9 :
>>6
>これを一つのphpファイルに纏めたいんですが。

関連する関数を特定のクラスにまとめてメソッド化する。
そうしてからそのオブジェクトのメソッドを呼び出せばいいと思う。

10 :
>>9
php初心者なんですが、関数をわざわざclass化するメリットが分かりません。
よく使う自分用のライブラリ関数なんですが、そういう場合でもclass化が良いのでしょうか?

11 :
>>10
>よく使う自分用のライブラリ関数なんですが、そういう場合でもclass化が良いのでしょうか?
自分の好きにするといいよ。

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

クラスにするメリットは関数を整理できて、カプセル化、再利用性、多態性の活用などがよく挙げられる。
ただし、まとめるにしても関連のあるものを上手くまとめて凝集度をあげないとメリットにはならない。

12 :
オブジェクト指向だし使った方がいいと思うけど

13 :
フレームワーク使えば大抵はurlでメソッド指定する形じゃないかえ?

14 :
クラス化するとき悩むのが
なにをメンバ変数で持ってどこからを引数で取るか
線引きがめんどくさい

構造に機能を持たせる
というOOの基本にたびたび戻らないと道に迷う

15 :
ループしない1回だけのループ

ってどうやって書いてる?
とちゅうでbreakするためだけに使うループ

16 :
>>15
do {
...
} while (0);

17 :
新たなるオライリー本か?
http://www.amazon.co.jp/dp/B00TN97BE2

18 :
オブジェクトが実体として何で出来ているかをイメージしてから組まないと自分含め使いにくいものができないか?

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

あとは成り行きというか使いやすいように追加してけばいいんじゃね

19 :
>>15
わざわざループにしなくてもifで良いだろ?

20 :
>>19
たまには breakしましょ! って気分にもなる。


ところで、staticなプロパティには $this->hoge みたいなアクセスできないけど
これってどうしてこういう仕様になったん? $this ってつけるのがおこがましいから?

21 :
教えてほしいことがあります。

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

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

しかしバイナリを文字列に変換する方法が分かりません。何かいい方法は無いですか?

22 :
>>21
pack使えばいいんじゃね?

23 :
メアドとパスワードが一致したらログインしてheaderでindexに飛ばすってのでエラってる
ログインボタン一回クリックで真っ白になって、更新するとセッション有りでindexに飛ぶんだけどこれ何事?
XAMPPのローカル環境つかってます

24 :
Locateヘッダちゃんと出てる?

25 :
>>23
日本語しゃべれないの

26 :
aaa.php?
みたいな末尾の?って何を表すんですか?
例えば$ajaxのurl指定する場合など。
?なくても行けるんですが。何ですか?

27 :
>>26
aaa.phpっていうファイルがあるか確認してる。あればtrueが返ってくる。
・・・というのは冗談でURL引数って奴。コマンドライン引数みたいな感じ。

28 :
$a = 6 if($b==3);

みたいな書き方ってある?

29 :
>>28 それはない。

これならある。
if($b==3) $a = 6;

30 :
あと少し違うが3項演算子。

$a = ($b==3) ? 6 : 0;

31 :
>>20
その方法ではインスタンスからは静的定義は参照できない。
$this::hogeを使いなされ

32 :
$a = ($b==3) ?: 6;
これもいけるはず。

33 :
【ワカヤマン】PHP技術者認定試験 Part2
http://hello.2ch.sc/test/read.cgi/lic/1437239772/l50

34 :
>>32
式 expr1 ?: expr3 の結果は、expr1 が TRUE と同等の場合は expr1、 それ以外の場合は expr3 となります。
http://php.net/manual/ja/language.operators.comparison.php#language.operators.comparison.ternary

35 :
$a = isset($_GET['a']) ? $_GET['a'] : null;
とか書かないとエラー出る間抜けな仕様どうにかしてほしいわ

36 :
>>35
けっきょく、それはそういう関数を書いた。
GETとPOST両対応必要とかよくあるし。

まあPHPのことだし、文句言いまくってたら
そのうちそういう関数が標準に作られると思う。

37 :
PHP7以降は??演算子で同じことが実現できるようになるかと

38 :
はーギブアップ。助けてくり。

レジ内のトランザクションファイルがBtrieveで管理されてるんです。そのファイルをlinuxにFTP後、phpで読むのにpervasiveからダウンロードしたodbcでコネクトしようとしてるんだが、どーにも上手くいかない。誰か経験した方おられますかー?

39 :
エラーの内容をここに記せば、助けてやらぬこともないが・・・

40 :
>>39
はうう。明日も早よから仕事でもう寝るでやんす。エラー内容は仕事の合間見てお披露目いたしやすん

41 :
>>31
selfとはなんだったのか

42 :
>>28
後置ifはphpには無い。英語が母語ならまだしも、日本人にとっては後置ifは自然じゃないし、無くてもよくない?

>>38
使ったこともやったことも無いけど、シンプルに転送モードを間違えているとかではないのかな。

43 :
>>42
$a = 6 if($b=="ikemen");

と書いたらとても自然になる。

44 :
vs2013でphpやっている人居ません?
ブレークポイント置いてもデバッガでブレークしない時が有るので困ってます。

45 :
use の使い方がよくわからない
これってどこかが起点になるの?

46 :
あの、こんな質問しても回答得られないかと思うんですが、
自作のPHPプログラムが
PHP5.3.3
で動かない関数か何かの機能があったので
PHP5.5.19
にしたら動いたのですが、それが何の関数あるいは機能だったのか忘れてしまいました。

確か、何か文字列を扱うような処理だったような気がするんですが。
もし何かご存じでしたら教えてください。

47 :
hex2bin

48 :
公式久々に見たが7のβリリースされたのか
誰か試した?

49 :
>>47
レスありがとうございました。
hex2binではなかったのですが、47さんのレス見て、記憶が蘇り

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

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

でした。助かりました。
このdelimiters を使ったんでした。

50 :
use って、「この下全部」の指定できない?

51 :
初心者がPHPを学んで、在宅ワークすることはできますか?クラウドワークスとか使って。

52 :
>>51
仕事ふっても損害賠償で追い込まれそう。

53 :
関数内のコードを文字列として取得したいのですが、知恵を貸してください。

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

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

ちなみに、PHP5.4以降です。

54 :
>>53 の続き

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

<?php
$a = function () { ... }; $b = function () { ... };
$function = new ReflectionFunction($b);
$function->getStartLine(); // 2
$function->getEndLine(); // 2

55 :
>>53
自分自身を読めばいいんじゃね?

56 :
>>55 返信ありがとうございます。完璧ではありませんが、自己解決しました。

<?php

// (1)関数名から特定できました。
function bar() { ... } function foo() { ... }
codeDump('foo');

// (2)変数名をたどって特定できました。
$bar = function () { ... }; $foo = function () { ... };
codeDump($foo);

// (3)呼び出し元の行数から特定できました。
codeDump(function () { ... });

// (4)どっちの関数か分からない。
codeDump(function () { ... }); codeDump(function () { ... });

(4)もcodeDump()の実行を記録すれば、何とかいけそうな気もします。
codeDump()のコードは長いので省きます。

57 :
>>51
出来るがやめたほうがいい。
毎日半日以上土日も使って取り組んで1ヶ月で5万円とかになるだろうから、
ニートでもコンビニで働いた方がいい。

58 :
php5.6のwindows版x64ビルドってexperimentalって表示されているけれど、webサーバーに入れるならx86版が無難なのか?
あえてx64版入れたらパフォーマンス上がったりするん?

59 :
今ならx64がおすすめ

60 :
PHP7には 変数名の大文字小文字を無視するオプションはある?

61 :
PHPで作成したプログラムを納品する時に暗号化して納品したいのですが無料で使えるものってありますか?

62 :
>>61
そのコードなら、そのまま納品しても大丈夫だと思うよ

63 :
それを心配しないといけない客の仕事をしたのが運の尽き

64 :
if(count($hoge) < 5)
  $foo = count($hoge);

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

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

みたいにしたほうがいいのかな?

65 :
2回程度なら別に。
ループ終了条件に入れるのは避けるといいよ

66 :
>>64
宗派による。
一つは、関数count()が2回実行されて無駄だよ派。
もう一つは、一時変数$barを無駄に使うな派。

67 :
>>65>>66
サンクス!
一時変数を無駄に使うな派に入信しまぁす

68 :
配列で変数に文字列を代入する場合、
変数名は「ダブルコーテーション」で囲うと参考書には書かれてたのですが
サンプル(↓)にはシングルコーテーションで囲われてました。
シングルとダブルでどう使い方が違うのでしょうか?


$conf = array(

'test1' => "1234"
'test2 => "abcf"
);

69 :
PHPの場合シングルのほうが変数展開が起きない分微々たるもんだが総じて早い
変数を入れたり改行コードなんかの制御入れたりしない場合はシングルのほうがいい
参考書なんてのは作者にあわせたコーディング規約で書かれてるので
その作者好みのコードであってそれが全てではないことは頭に入れておいたほうがいい
特に初心者向けだとシングルよりダブルのほうがトラブルが起きにくいっていう事情もある
"こんにちは{$name}さん\n";
'こんにちは' . $name . 'さん' . "\n";

変数展開ってのは↓のようなコード
$a = 'test1';
$conf = array(
"$a" => 1234
);
echo $conf['test1'];

70 :
>>69
> "こんにちは{$name}さん\n";
これも変数展開ですよ

71 :
>特に初心者向けだとシングルよりダブルのほうがトラブルが起きにくいっていう事情もある
これの説明で書いたけど書く場所が悪かったね

72 :
>>68
「変数名」ではなく「連想配列のキー」をどう囲うかという質問じゃないの?

73 :
>>69
あれほとんど気のせいレベルらしいよ
どっかで速度測ってたけど、むしろ逆なくらい差が無かった

74 :
http://www.phpbench.com/
http://www.blueshoes.org/en/developer/php_bench/

Quote Typesdouble (") vs. single (') quotes
ここの5番目と6番目。
両サイトじゃ結果が違うけど自分のテスト環境じゃ同様に1000回ループで後者のダブルほうが遅くなる。
Windows 32bit 5.4.12で0.00049と0.00064
Linux 64bit 5.4.16で0.0042と0.00089

phpbench.comでどういう環境で差がでないのか知りたいが環境記述が見当たらないな。
ヘッダ見る限りじゃUnix系のPHP5.4.29みたいで、自分に近い環境のようだけど、
ベンチマークに使ってる機材は別かもしれないし。

75 :
>Linux 64bit 5.4.16で0.0042と0.00089
Linux 64bit 5.4.16で0.00042と0.00089に訂正

76 :
アクセラレータかなんか使ってんじゃね?試してないからなんともいえないけど

77 :
PHP tools for VS
使っている人いる?
MS純正でこういうの無いの?

78 :
Web上でパスワード変更するためのフォームを作成中です。
環境は、OS: Ubuntu 14.04.2 LTS カーネル: Linux 2.6.32 PHPバージョン: 5.5.9です。
以下のようにしてPHP上でexpectとpasswdコマンドを呼び出してパスワードを変更させています。

$cmd = EXPECT_PATH." -c \"\n";
$cmd .= PASSWD_COMMAND."\n";
$cmd .= "expect \\\"(current) UNIX password:\\\"\n";
$cmd .= "send -- \\\"".$old_password."\\n\\\"\n";
$cmd .= "expect \\\"Enter new UNIX password:\\\"\n";
$cmd .= "send -- \\\"".$new_password."\\n\\\"\n";
$cmd .= "expect \\\"Retype new UNIX password:\\\"\n";
$cmd .= "send -- \\\"".$retype_new_password."\\n\\\"\n";
$cmd .= "expect \\\"passwd: all authentication tokens updated successfully.\\\"\n";
$cmd .= "send -- \\\"exit\\n\\\"\n";
$cmd .= "\"";

$stream = ssh2_exec($connection, $cmd);
fclose($stream);

ところがこの方法だと、実行中にシェル上でps -elf | grep passを実行すると
「/usr/bin/expect -c spawn /usr/bin/passwd expect "(current) UNIX password:" send -- "現在のパスワード\n"…send -- "exit\n"」
のようにパスワードが平文で表示されてしまいセキュリティ上問題があると思われます。
そこでphp側でパスワード等の情報を外部シェルスクリプトに渡して外部シェルスクリプト側でパスワードを変更させようと考えてますが、外部シェルスクリプトに変数を渡す方法を教えていただけますでしょうか。
なお、ssh2_execの第4引数に環境変数を設定できそうなので試してみましたがPHP Warning: ssh2_exec(): Failed setting old_password=oldpassword on remote end in /xxx/xxx/test.php on line XXのように言われてしまいました。

79 :
すみません。投稿時の文字数の規制のためコードを省略していた際に誤って一緒に削ってしまいましたが、
define('EXPECT_PATH', '/usr/bin/expect');
define('PASSWD_COMMAND', 'spawn /usr/bin/passwd');
が定義されています。
また、>>78のコードの前段階で以下のようにssh接続を行っています。
$server = "localhost";
$port = 22;

if (!$connection = ssh2_connect($server, $port)) {
echo "Connection failed!\n";
exit;
}

if (!ssh2_auth_password($connection, $username, $old_password)) {
echo "Authentication failure!\n";
exit;
}
よろしくお願いいたします。

80 :
http://d.hatena.ne.jp/gunshot/20090904/p2

81 :
>>80
ありがとうございます。なんとか解決できました!

82 :
社内Lan上でWebサーバ立ち上げると、社外から見られることはあるんですか?
ただし、そういう設定にはしていない前提で御回答ください。

83 :
>>82
あなたやネットワーク管理者が一般的にそういう設定にはしていないとしても、バカがいるとできる

84 :
バカが何するとそうなるのでしょう?
あと、php5.5使ってます

85 :
そういう設定にはしていない事が確実なら、アクセスされる事はないんだろう。
社外から見られる可能性はあるか?という質問なら、見られる可能性はあるんだろう。

86 :
>>84
PHPは関係ない。

87 :
>>82
的確なネットワーク構成なら問題ない
ネットワーク管理者がうんこじゃなければ平気だろう

88 :
>>82
例えそういう設定にしてなくとも可能性はある
例えば未知の脆弱性を突かれてネットワークに侵入されたり、ウイルスやトロイ等を仕込まれたり・・・例を挙げればキリが無い

89 :
v6がない理由を50文字以内くらいで教えて

90 :
>>89
V8を讃えよ!

91 :
>>89
V6はTOKIOに負けたから

92 :
すみません。ほんとに初心者で申し訳ないのですが教えてください。
以下のif文が実行されないのですが、どこが間違っているのでしょうか?

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

よろしくお願いいたします。

93 :
if文は実行されてるけど条件に合致していないだけ
あとその条件文でstrposは一致した場合0を返すときがあるからその書き方じゃだめ
if ( strpos($text, "\[:ja\]") !== false )
とか

94 :
アスキーコードが入った配列を 文字列にしたいんだけど
すっきり綺麗に書く方法はありますか?

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

unko() を作りたい。

95 :
>>94
yieldとchr使えば?

96 :
>>95
yieldをこれにどう使うのかわかんねー・・・

97 :
すっきり綺麗に書きたい気持ちはわからんでもないけど、関数化するなら別によくない?

98 :
復活〜

99 :
packすりゃあいいじゃんと思ったけどPHPのpackは配列渡しても正しく動かないのか・・・・・
そうなると $text = implode('', array_map('chr', $bins)) がコードとしては簡潔かな?

100 :
>>99
それじゃウンコ()使ってないからダメだな


100〜のスレッドの続きを読む
Windows 10 UWPアプリ開発 Part 2
クラス名・変数名に迷ったら書き込むスレ。Part28
任天堂「今後C++は捨てJavaScriptで開発していく」
いまだにVC6から離れられない奴の数→
【コメント】doxygen【コンソメ】
【R】configure大嫌い【RMS】
VBSで便利なプログラムを作れスレ 2
【JavaScript系】 NILScript 【AutoHotkey風】
次世代が造った言語 blawn
ふらっと C#,C♯,C#(初心者用) Part137
--------------------
岩手のラーメン事情 Part50
【ウチ姫】ウチの姫さまがいちばんカワイイ439
サルでも書ける小説講座!【1】
🐰🐯スレ
今後の行方 @way_of_tomorrow
石との会話 part16
【北海道震度7地震】北海道テレビ(テレビ朝日系)のアナらが泥にはまり、救助に6時間 「消防の活動に支障」と謝罪
【ライブレボルト/きんだーてれび】堀内まり菜【ボイたまプロジェクト】
【踏切】ヒトガタCM捜索スレ【トクヤマ】
PENTAX Q/Q10/Q7/Q-S1 Part-89
【GT】北村友一応援スレ【制覇へ】
広島東洋カープ応援スレ
aitendo利用者達のスレ その13 [無断転載禁止]&#169;2ch.net
【DFFOO】DISSIDIA FINAL FANTASY OPERA OMNIA part1239【苦痛周回想定通りジレンマ ディシディアオペラオムニア】
【朗報】ゼノブレイド2 エロゲーだった
スニーカーどれくらいで履き潰す?
【本スレ】HUNTER×HUNTER Part1515
俺的ゲーム 速報JIN FX投資部を語ろう★10
【乃木坂46】中村麗乃応援スレ☆9【れのちゃん】
私の中の偏見★97
TOP カテ一覧 スレ一覧 100〜終まで 2ch元 削除依頼