【PHP】下らねぇ質問はここに 9

PHPに関する質問スレです

前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 8
http://mevius.5ch.net/test/read.cgi/tech/1489506082/

次スレは>>980以降
本文の1行目に以下を追加すること
!extend:on:vvvvv:1000:512
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured

関連リンク
■PHPマニュアル    http://www.php.net/manual/ja/
■日本PHPユーザ会  http://www.php.gr.jp/
■PHPNG        https://wiki.php.net/phpng
■メーリングリスト   http://ml.php.gr.jp/mailman/listinfo/

(以下英語)
■公式リポジトリ     http://git.php.net/
■PHP-RFC       https://wiki.php.net/rfc
■PECL          http://pecl.php.net/
■Composer       https://getcomposer.org/
■Packagist        https://packagist.org/
■Zend Tech. Ltd.    http://www.zend.com/

フレームワーク(一部)
■Zend Framework   https://framework.zend.com/
■Symfony        https://symfony.com/
■Laravel         https://laravel.com/
■CodeIgniter       https://codeigniter.com/
■Yii            http://www.yiiframework.com/
■FuelPHP        https://fuelphp.com/
■CakePHP        https://cakephp.org/

テンプレートエンジン(一部)
■Twig           https://twig.symfony.com/
■Blade          https://laravel.com/docs/5.1/blade

evernoteのENEXファイルをパースする処理を書いていますが

$str = '<?xml version="1.0" encoding="UTF-8"?>
<en-note><div>てすと</div><div>てすと</div></en-note>';


$xml = simplexml_load_string($str);


var_dump($xml);

とすると
object(SimpleXMLElement)#1 (1) {
["div"]=>
array(2) {
[0]=>
string(9) "てすと"
[1]=>
string(9) "てすと"
}
}
となり、en-note要素がどこかにいってしまいます
en-noteを取り出してasXML()したいのですが、
何故かsimplexmlオブジェクトの中にありません
en-noteという名前が悪いのかと思ってdivとかhとかにしてみましたが
それでも一番外側の要素はsimplexmlオブジェクトに入っていません
何故こうなるのでしょうか?

4デフォルトの名無しさん (アウアウウー Sa8f-BQEm)2018/01/08(月) 13:03:30.26ID:4m/0uKGZa
>>3
これ消えているのではなくて、
一番外側のオブジェクトがまさにそれですね?
xmlタグが一番外側の要素で、
その次のタグがその子要素になると思い込んでいました

shell_execなどは、mod_phpから実行した時には
何か制限を受けるのでしょうか?
echo shell_exec('"C:/Program Files (x86)/Evernote/Evernote/ENScript.exe" exportNotes /q "ほにゃらら"');
これでevernoteのノートを出力出来るはずなのですが
mod_phpから呼び出した時には何も表示されません
コマンドラインから呼び出すと普通に表示されます
echo shell_exec('cd')
のように単純なコマンドで試すと、mod_phpでも問題なく実行されています
メモリ制限の問題かと思ってmemory_limitを-1にしても何も変わりません

>>5についてですが
外部実行ファイルはドキュメントルート下に置かないと実行できないみたいな情報があったので
ENScript.exeを呼び出すバッチファイルをドキュメントルートに置いて実行してみましたが駄目でした
mod_phpからwhoamiを実行すると
nt authority\systemという権限で動いていることが分かりました
この権限が制限を実現しているのでしょうか?

また、セーフモードではありません
外部プログラムの制限についてドキュメントに書いていないのが解せません…
Windows版だけの現象なのでしょうか

Evernoteとか使ったことないから知らんけど, その実行者の権限で見える, 見えてよい或いは見えるべきものを扱ってんの?

Evernoteは非常に個人的なものなので、
確かにウェブサーバからデータが見えたらどうなのかっていうのはありますね
自分用アプリを作るためにApacheとブラウザを使っていましたが
本来ウェブサーバはネットに公開するためのものなので
権限が低くされるのも当然といえば当然。
そう考えるとウェブサーバを使ったアプリ構築を脱却して
Electronとかを使って作った方がいいですね
ありがとうございました

10デフォルトの名無しさん (ワッチョイ 1fae-nOrU)2018/01/10(水) 13:35:01.59ID:70pYzGse0
include先での$_POSTの参照について質問です。
index.html(httpd.confいじってhtmlファイルでもphp使えるようにしてる)からfile1.phpをincludeし、file1.phpの中でfile2.phpをincludeしています。(処理の関係上そうしたい)

index.htmlにPOSTがあった場合に、file1.phpでは$_POSTを参照出来るのですが、file2.phpからは何故か出来ません。
index.htmlで直接file2.phpをincludeするとPOSTの参照は出来ます。

そこら辺のルールに詳しい方いましたら解説していただけないでしょうか。よろしくお願いします。

11デフォルトの名無しさん (ワッチョイ 6661-QpsD)2018/01/13(土) 10:49:54.90ID:By98rTnD0
$_POSTに上書きしちゃってる可能性

12デフォルトの名無しさん (ワッチョイ 85c3-3Ttg)2018/01/20(土) 00:15:59.55ID:MzOH7w6y0
ドがつく素人です。
しょーもない質問ですいません。

【困りごと】
ドキュメントルートにphpinfo関数を実行するファイルを作成したが、
ブラウザ上でうまく表示されない。(スクリプトの記述のまま表示されてしまう)

【状況】
ApacheとPHPをインストールしたんですが、
以下URLのようにphpinfoコマンドで記述したphpを、
ドキュメントルートに入れて、http://localhost/phpinfo.php
実行したのですが、

<?php
phpinfo();
?>

と、スクリプトの記述そのまま表示されてしまいます。
何か設定ミスだとは思うのですが、なかなか原因が分からず・・・・

【URL】
https://i-bitzedge.com/php/how-to-use-phpinfo

13デフォルトの名無しさん (ワッチョイ 755d-GP+B)2018/01/20(土) 01:00:58.30ID:6KDbA8qD0
XAMPPじゃなくてApacheとPHPを個別に手でインストールしたのか?
手でインストールするならApache側の設定を修正してPHP用モジュールをロードする必要があるぞ

何か今になってもXAMPPやらApacheやらの導入を最初にやらせるサイト結構あるけど, きちんとしたWebサーバが本当に必要になるまではPHPのビルトインサーバが楽でいいよ

http://php.net/manual/ja/features.commandline.webserver.php

14デフォルトの名無しさん (ワッチョイ 0b80-H9dj)2018/01/20(土) 01:12:47.90ID:6q5j1Hcg0
>>5-9
その書き方で、notepad は、起動できるのか?

もし起動できるのなら、ENScript.exe に与える引数がおかしいのかも

15デフォルトの名無しさん (ワッチョイ 559f-x16F)2018/01/20(土) 01:32:09.29ID:bSTKludV0
>>12
ちな俺はXAMPP/Windowsで使っているけど、最初からPHPは使えた。
(もちろん13の言うとおり、最初から設定してあるという意味で)

一般論になるが、環境の立ち上げはずぶの素人だと辛い。
(はまった場合に回避できない)
だから13の言っていることは正しくて、知らないのならまずはお手軽環境でやったほうがいい。
XAMPPも十分お手軽だし俺はいいと思うけどね。
最初からガチ鯖で、というのも一理あるのだが、それは後付けの意見でしかないことも多い。

16デフォルトの名無しさん (ワッチョイ 0b96-Qbx4)2018/01/20(土) 10:53:53.90ID:bpfiGwqM0
初めてc#でプログラミング始めたんですが、
Visual studioを使ってると頻繁に行末に移動する「end」やカーソルキーを使いたくなるけど、
ショートカットってないんでしょうか?
nemacsとかだとctrl+eとかで行末に移動してくれたようなおぼろげな記憶があるんですけど。

17デフォルトの名無しさん (ワッチョイ 0b96-Qbx4)2018/01/20(土) 10:54:20.52ID:bpfiGwqM0
ほんとくだらない質問ですいません。
ググったけどショートカット見つからなかったもので。

スレタイ読めねぇほどバカなのか

19デフォルトの名無しさん (ワッチョイ 5dd2-k4Q3)2018/01/22(月) 17:07:06.70ID:YXQIUh040
>>12
AddHandler とかFilesMatch とかが
コメントになってるだろう
AddHandlerはファイルを特定する方法が甘いから使い方注意だが

20デフォルトの名無しさん (ワッチョイ 27e9-7ZJK)2018/01/26(金) 16:45:32.90ID:aV9eTo+Y0
よくあるファイルアップロードフォームと受け取り側PHPの構成なんですが、
アップロードされたファイル名がマルチバイトだと文字化け・・・というより、「あ.txt」なら「あ.txt」
となってしまいます。

Windows + XAMPP 環境ですが、

mb_convert_encoding($uploadfile, "SJIS", "auto");

mb_convert_encoding($uploadfile, "CP932", "auto");

を行っても結果は変わりません。
何かチェックすべき項目を見落としていると思うのですが、お助け下さい。

21デフォルトの名無しさん (ワッチョイ 27e9-7ZJK)2018/01/26(金) 16:47:17.43ID:aV9eTo+Y0
おうふ

「あ.txt」が「&#12354;.txt」(半角)となります。

22デフォルトの名無しさん (ワッチョイ 27e9-7ZJK)2018/01/26(金) 17:20:40.16ID:aV9eTo+Y0
自己解決しました。
これでいけますね。
mb_convert_encoding($uploadfile, "SJIS", "HTML-ENTITIES");

ところで、これって環境によって不要だったりするのですか?

23デフォルトの名無しさん (ワッチョイ ef99-fPTX)2018/01/27(土) 15:17:32.64ID:MzrwFkn+0
$a = [
[1, 5],
[9, 1],
[8, 2],
[1, 2],
];

みたいに宣言しているところがあって、これの2個目と3個目を変数で宣言したいわけよ


$a = [
[1, 5],
$b,
[1, 2],
];

みたいに。

この時 $b にはどういう入れ方すれば最初の形を再現してくれます?

無理じゃね

25デフォルトの名無しさん (ワッチョイ ef99-fPTX)2018/01/27(土) 17:00:21.87ID:MzrwFkn+0
やはりか

$b = [
 [9, 1],
 [8, 2],
];
にしちゃうと形変わっちゃうよな?

26デフォルトの名無しさん (ワッチョイ e365-4wfc)2018/01/27(土) 17:16:07.80ID:mUh+GRjL0
array_merge使うのがいいと思うが

27デフォルトの名無しさん (ワッチョイ 566a-grVD)2018/01/31(水) 21:00:18.89ID:68O1HbzJ0
Docコメントはツール使って書いてますか?
それとも使わず書いてますか?(*´ڡ`●)

28デフォルトの名無しさん (ワッチョイ bf6a-qmJt)2018/02/02(金) 20:59:07.10ID:angTjduf0
忘れてください(`・ω・´)ゞ

29デフォルトの名無しさん (ワッチョイ f72a-CNA0)2018/02/03(土) 19:45:51.02ID:bLLjGwhG0
画像アップロードする時に、1つのフォルダにアップロードするのではなく、
/年/月/ファイル名

とわける方法があります。(WordPressとか)

しかしこの場合、ファイルを編集(入れ替える)時に以下の処理が必要になります。

1:編集するファイルの登録日を取得
2:1のフォルダ内にファイルが存在するか確認
3:存在していたら削除する
4:更新日のフォルダを作成
5:4のフォルダにファイルをアップロード

この処理を行うと「登録日のフォルダにファイルがひとつも存在しない」
と言った可能性があり、空フォルダになります。

空のままにしたくない場合は
{他にファイルが存在しない場合はフォルダごと削除}
と言った処理も必要になります。

ファイルをDBで管理している場合は、何度もクエリーを投げる必要があり、
無駄が多い気がするのですが、いかがでしょうか?

30デフォルトの名無しさん (ワッチョイ 1781-hxSR)2018/02/03(土) 22:08:01.43ID:uf1OevP30
>>29
ファイル操作はDB更新とは別に出来るだろう
PHP単独でファイル存在チェック、削除、DIR操作、アップロードやって
DBは必要な事だけすれば良いんじゃないの?

31デフォルトの名無しさん (ワッチョイ 1774-2GDW)2018/02/03(土) 22:11:48.87ID:w5tgMa2Q0
Readに対してWriteの回数は極めて少ないと思えば大した問題ではないのでは

32デフォルトの名無しさん (ワッチョイ f72a-CNA0)2018/02/04(日) 00:58:09.63ID:e+yYqllI0
>>30-31
ご意見ありがとうございます。
WordPressとか他のCMSを見たのですが、
一度登録した画像を編集(作り直す)のは止めようと思います。
無駄が多いですし、ファイル操作で入れ替えるみたいな処理もおかしい気がして。
入れ替えるなら一旦削除してアップロードし直すのが通常だと思いますし

33デフォルトの名無しさん (ワッチョイ 57b3-ycng)2018/02/07(水) 20:59:50.48ID:MJqvUrQe0
例えば↓みたいなループがあったとして、<br>
error_logがなかったら0.001秒で処理が終わって、
ある場合は5秒くらいかかるんだけど、error_logって結構コストの掛かる処理なん?

for ($i = 0; $i < 100000; $i++) {
error_log("hoge");
}

ちなみに手元の環境はPHP7.2.0

34デフォルトの名無しさん (ワッチョイ 9dd2-7Au1)2018/02/08(木) 12:29:07.56ID:E75692Mg0
ログを実際にコンソールに出してるなら
その分遅くなる、もし出してるならファイルにリダイレクトしてみ

35デフォルトの名無しさん (ワッチョイ 8237-nHV3)2018/02/09(金) 21:42:53.67ID:DI5fWWyV0
すいません。
mysqliで接続されません。
dbサーバーとwebサーバーは同一です。
ワードプレスを導入しているのですが、そちらはインストールされて記事等もdbに入って更新も出来ます。
phpadminも入りました。

ただそれ以外のページからだと接続すらできてないです。(接続を行うとエラーも出ない上、phpが空白で表示される。echo等も死ぬ)

何か考えられる原因等ありますか?phpの権限とかですか?

36デフォルトの名無しさん (ワッチョイ 8237-nHV3)2018/02/10(土) 00:18:04.71ID:Yu/cvnD90
自己解決しました

37デフォルトの名無しさん (スップ Sdc2-nQD2)2018/02/13(火) 11:26:59.19ID:2Q2AHgA2d
質問させてください。
JWTを使いたいです。
HTTPでリクエストして、レスポンスとしてJSON形式のテキストを受け取る際の署名にJWTを用いたいです。
JSONに電子署名をして、URL-safeな文字列にする手順の規約、と言うのは分かりましたが具体的にはどうすればそうなるのか分かりません。
署名する処理は JwtHS256Encodeメソッド でやりたいです。
hash_hmac()は使ったことがあります。
具体的なソースコードなど提示してくれるとありがたいです。
とんちんかんなことを言っていたらすみません。
よろしくお願いします。

38デフォルトの名無しさん (ワッチョイ 3174-jA6l)2018/02/13(火) 12:03:56.31ID:cOH/iFjL0

39デフォルトの名無しさん (スップ Sdc2-nQD2)2018/02/13(火) 12:49:59.79ID:2Q2AHgA2d
>>38
ありがとうございます!
まだ試してないんですが、軽く目を通したところdownloadの文字があるので何かしらのファイルをダウンロードしてどっかのディレクトリに置いておいてその都度呼び出して使う、みたいな感じのものなんですかね?
とりあえず一回色々やってみます!

>>39
とりあえずcomposerでググれ

4137 (ワッチョイ 2205-EuZI)2018/02/14(水) 21:58:29.96ID:TtACcl/J0
簡単ではありますが報告を。
composer使ってphp-jwtインスコして>>38のサンプルにrequire_onceでjwt.php指定して
でecho $jwtしてやったら暗号的な英数字がだだーっと出たので使い方はわかった気がしてます。

42デフォルトの名無しさん (ワッチョイ 3174-jA6l)2018/02/14(水) 22:25:21.84ID:X6WT15xX0
composer使うならvendor/autoload.phpをrequireすればよかろう

43デフォルトの名無しさん (ワッチョイ f7e0-T3WU)2018/02/16(金) 06:19:14.89ID:W1XJdyx10
☆ 日本の、改憲を行いましょう。現在、衆議員と参議院の
両院で、改憲議員が3分の2を超えております。
『憲法改正国民投票法』、でググってみてください。国会の発議は
すでに可能です。平和は勝ち取るものです。お願い致します。☆☆

44デフォルトの名無しさん (ワッチョイ ae3b-x4Or)2018/02/22(木) 22:26:42.20ID:JaCEqDtL0
switch-case文について質問です。
通常こういった条件式は自分で書いていくと思うのですが、このcaseリストを
ここより前に定義して動的にcaseを増やしていくことは可能でしょうか?

switch ($i) {
case "A";
break;
case "B;"
break;

}の
caseを一か所に記述して(A,B,C,D,…)と後から編集したらcaseの部分も動的に記述されたことになる
というのは可能ですか?ということです

なんと表現したらいいかわからないのでわかりにくいと思うのですが、
わかるかたおられましたらご教授ください。

45デフォルトの名無しさん (ワッチョイ 7974-x4Or)2018/02/23(金) 00:16:33.70ID:heeL5/0a0
何でそんなことが可能だと思ったのかご説明頂けるかな?

何がしたいのか分からんけどエスパーするとそういうことはState/Strategyパターン使ったらええんちゃう

46デフォルトの名無しさん (ワッチョイ 0e81-snzV)2018/02/23(金) 00:42:42.74ID:kCRA+Aya0
エディタなり開発するフレームワーク側で補完してくれるかと聞いているのかな

47デフォルトの名無しさん (ワッチョイ 019f-SJjx)2018/02/23(金) 00:46:17.66ID:Hlk4jzyw0
>>45
Java鹿は死ねよ。欠陥言語使っているからそんな発想しか出来なくなる。

>>44
それは関数ポインタをハッシュに入れてcaseのところで引くんだよ。

48デフォルトの名無しさん (ワッチョイ ae3b-x4Or)2018/02/23(金) 21:22:58.57ID:859K0GLT0
>>47
うまいことできましたありがとうございます!
>>45
なんでそんなことが不可能だと思ったのか
ご教授頂けるかな?

49デフォルトの名無しさん (ワッチョイ d49f-GaPa)2018/02/24(土) 15:35:12.76ID:YXQeh0ci0
cakephp3.5を使ってるんですが、
フォルダ名はsrcなのに
namespaceやuseの指定はappなのはなぜですか?

50デフォルトの名無しさん (ワッチョイ 7974-x4Or)2018/02/25(日) 14:13:11.68ID:bGLkxUMu0

51デフォルトの名無しさん (アウーイモ MM2b-RQfV)2018/03/02(金) 12:53:23.46ID:YTlkYdzxM
/zzz/a.php
/xxx/b.php
のように
a.php , b.php を別々のフォルダに用意して
b.phpでrequire (a.php)した時にb.phpのあるフォルダ名xxxを返すには
a.phpになんと記述すればいいですか?

52デフォルトの名無しさん (ワッチョイ 87e9-k3ZN)2018/03/02(金) 13:05:46.96ID:pRJ4HJDk0
>>51
とりあえず
print_r(debug_backtrace());
って書いてみ

>b.phpでrequire (a.php)した時にb.phpのあるフォルダ名xxxを返す
この考え方自体が間違ってる気がするので
もっと前の段階の「結局何がしたいのか?」を書いた方がいいかもな

53デフォルトの名無しさん (ワッチョイ df80-zeCZ)2018/03/02(金) 13:44:06.10ID:mIGjbFX+0
a は、b からrequire されるので、b はa の場所を知っているけど、

aは、どのファイルからrequireされるのか、あらかじめ分からないはずだから、
aからbの場所は、わからないはず

54デフォルトの名無しさん (ワッチョイ 87e9-k3ZN)2018/03/02(金) 14:16:46.22ID:pRJ4HJDk0
debug_backtrace()を勧めてるぐらいだから
さすがそれぐらいは分かってるw

aからbの場所が知りたい時(requireしたファイルのパスが知りたい時)
ってじゃぁどんな時よ?って話を俺はしてる
autoloadとか使えば済む話なんじゃないかと思ったもんでね

55デフォルトの名無しさん (ワッチョイ bf76-m1UI)2018/03/02(金) 14:54:30.21ID:d+rY3YvF0
>>52-54
どんな時というかやりたい操作は、
b.phpがあるフォルダ名をDB名にしていて、
a.phpには接続先のDBに対する処理を書いていたので
b.phpがあるフォルダによって動的にa.phpの処理をする、です。
debug_backtrace()で値が返ってこず
色々試していたら
$watgame = $_SERVER['SCRIPT_NAME'];
$watgame = explode("/",$watgame,-1);
$watgame = $watgame[2];
で取得できました。お騒がせしてすいませんでした。

56デフォルトの名無しさん (ワッチョイ 87e9-k3ZN)2018/03/02(金) 15:47:35.06ID:pRJ4HJDk0
>>55
なるほど
dirname(__FILE__);
をオススメしとく

57デフォルトの名無しさん (アウーイモ MM2b-RQfV)2018/03/04(日) 22:44:50.40ID:85QkEt6wM
配列にしたhtmlを一つつなぎで
出力するのって
$output= implode("", $html);
ってするのが普通ですか?
他にいい方法ありますか?

58デフォルトの名無しさん (ワッチョイ bf71-7ORe)2018/03/04(日) 22:48:34.40ID:NLYmVhvS0
出力したいだけなら普通にforeachでいいんじゃないの

59デフォルトの名無しさん (アウーイモ MM2b-RQfV)2018/03/04(日) 23:25:14.60ID:85QkEt6wM
>>58
ありがとうございます。

とりあえず変数に1つつなぎにしておいとく場合なら
上記のようにimplodeでつなぐという認識で間違いないでしょうか?

自由でいんじゃね

61デフォルトの名無しさん (アウアウカー Sabb-En5O)2018/03/06(火) 09:19:42.58ID:Ejp9PzXia
>>59
どんな感じでhtmlが入ってるかによるけど
出力するときに配列の中にあるやつをエスケープしたりhtmlspecialchars
したり変数を展開したりするんだったらforeachとかあたりの方がいいんじゃね?
テンプレートエンジン使ったほうがいいかもしらんが

62デフォルトの名無しさん (ワッチョイ 27b8-8otX)2018/03/06(火) 13:23:07.10ID:HCeE6DOL0
配列を順に出力するだけならforeach
配列をくっつけて別の変数にしたいならimplode
implodeしたあとに何かをするわけでないなら
おとなしくforeachで出力すべき

63デフォルトの名無しさん (ワッチョイ 7feb-YJwB)2018/03/06(火) 23:15:13.68ID:1vXAI1T90
phpを7から5にインストールしなおして
php.info()を表示させようとしたんですが

PHP Fatal error: Unknown: Failed opening required '/var/www/html/index.php' (include_path='.:/usr/share/php:/usr/share/pear') in Unknown on line 0

というエラーが出ます
どこがまずいんでしょうか?

OSはubuntu16です

64デフォルトの名無しさん (ワッチョイ 87e9-k3ZN)2018/03/07(水) 11:19:38.20ID:DyyIOy9m0
>>63
'var/www/html/index.php'
をrequireしようとしたけど
そんなファイルはないぞというエラー

とりあえず
<php

書いてるまんまなので
これを読んで意味が理解できないようではこの先苦労するかも

65デフォルトの名無しさん (ワッチョイ 87e9-k3ZN)2018/03/07(水) 11:20:30.40ID:DyyIOy9m0
変なタイミングで送信してすまない

とりあえず
<php
phpinfo();

とだけ書いた適当なファイルを1個用意して
それを表示してみればいい

66デフォルトの名無しさん (ワッチョイ 87d2-tbYy)2018/03/07(水) 15:05:17.25ID:nuhunf1G0
<?php

67デフォルトの名無しさん (ワッチョイ 5beb-9gxW)2018/03/08(木) 00:53:30.35ID:Niz7TFw70
>>65
ありがとうございます

やってみたけどブラウザが真っ白なままでした
permissionも755にしてます

68デフォルトの名無しさん (ワッチョイ 23b3-FnNq)2018/03/09(金) 00:42:10.02ID:lzIhgFgZ0
PHP7で関数の戻り値を指定できるようになったので、
function test(int $i) :int {
if ($i != 1) {
return false;
}
return $i;
}
上記のような関数の場合、戻り値の型が複数あるためfalseの際にエラーになるかと思います。

PHP5時代では上記のようなコードを書くことができましたが、
今後(PHP7以降)では推奨されないようになっていくのでしょうか?
また今まではif文で判定してダメならfalseを返すという関数をよく書いていたのですが、
今後上記のようなコードは避けるべきなのでしょうか?

69デフォルトの名無しさん (ワッチョイ 73b8-NCig)2018/03/09(金) 03:00:34.50ID:ciB3VK7a0
mixedを指定できるようにする案は提案されてるけど話し合いの段階に至ってない
ビルトイン関数がmixed返すならしょうがないけど
ユーザ定義関数なら7.1から使える?intでNULL許容してint or NULL返すのも考慮してみては
7.2からはobjectも返せるからオブジェクトで包めばどうにでもなるけど

なんやこの糞コード…

71デフォルトの名無しさん (ワッチョイ 23b3-FnNq)2018/03/09(金) 09:33:46.53ID:lzIhgFgZ0
>>69
ありがとうございます。
?intで実装してみます。

>>70
クソコードというのは返り値がint or booleanになっているからでしょうか?

>>71
>>70ではないがいくら動的型付け言語とはいえ、戻り値の型が違うのはあまりお行儀がよろしくないと思う

73デフォルトの名無しさん (ワッチョイ 0b74-uQtz)2018/03/09(金) 11:21:10.75ID:2KAyapC60
完全に同意するんだけどPHPの標準関数がそうなってるから何も言えねぇ

74デフォルトの名無しさん (ワッチョイ 6676-uQtz)2018/03/10(土) 17:49:48.91ID:g4l3jXG40
phpでcookieみたいにlocalstorage扱うことできますか?

75デフォルトの名無しさん (ワッチョイ 0b74-uQtz)2018/03/10(土) 18:03:05.47ID:zHYllTGn0
localStorageってクライアントサイド実装だと思ってたんだけど俺の理解が間違ってたかな

76デフォルトの名無しさん (ワッチョイ 6676-uQtz)2018/03/10(土) 18:10:47.87ID:g4l3jXG40
cookieもクライアントサイドだから
同じように扱えないかなと思ったのですが
違うのでしょうか?
トンチンカンなこと言ってたらすいません

77デフォルトの名無しさん (ワッチョイ 73b8-NCig)2018/03/10(土) 19:20:34.01ID:NQUwT7o+0
localStorageAPIをPHPで実装すれば可能だろうけど
そのような実装があるかは知らないな
Cookieのように仕様が単純なら簡単に実装できるだろうけど
でもそれをPHPでやる意味は・・・?
DB使ったりJSONやシリアライズ使ったり他の方法をとるべきだと思うね

78デフォルトの名無しさん (ワッチョイ 6676-uQtz)2018/03/10(土) 19:43:13.33ID:g4l3jXG40
jQueryやjavascriptが切り貼りで動かせる程度の知識しかなく
PHPとmySQLなら色々と慣れていてやりやすいので
なんとかならないかなと思った次第です
色々と調べて他の方法探してみます
ありがとうございました

79デフォルトの名無しさん (ワッチョイ 73b8-NCig)2018/03/10(土) 19:49:40.80ID:NQUwT7o+0
あ、Cookie要求ヘッダーを$_COOKIE['key']で扱えるという話かな?
だとすると無理ですね
Cookieのようにヘッダーに含めてやり取りするわけじゃないので
そもそも小細工しなければlocalStorageからのデータかどうかも分からないし
小細工してls_keyとかの名前でpostすれば$_POST['ls_key']で取れるのでは

80デフォルトの名無しさん (ワッチョイ 663b-rkOG)2018/03/13(火) 06:41:43.09ID:3S6NtZAK0
cron.phpを
function Cron ($table) {
require_once("./pdo.php"); //DB接続
$sql = "SELECT `feed` FROM `{$table}`";
$stmt = $pdo->query($sql);
}
として、他のrun.phpから
require_once("./cron.php");
Cron("aclass");
としてもエラーはでないのですが
require_once("./cron.php");
Cron("aclass");
Cron("bclass");
とするとFatal error: Uncaught Error: Call to a member function query() on null
とエラーがでるのですがこれはどのように修正すればよいのでしょうか?

81デフォルトの名無しさん (ワッチョイ 3fc9-0aB1)2018/03/13(火) 10:52:58.55ID:RXShV79h0
cron.phpを

require_once("./pdo.php"); //DB接続
function Cron ($table) {
$sql = "SELECT `feed` FROM `{$table}`";
$stmt = $pdo->query($sql);
}

こうしたらいいんじゃね?

82デフォルトの名無しさん (アウーイモ MM1f-edyV)2018/03/13(火) 19:54:39.54ID:mdBQKmC7M
そのようにしたら
Cron(“aclass”)だけでも
同じエラーがでました

83デフォルトの名無しさん (ワッチョイ 2fe3-eXi2)2018/03/13(火) 20:42:12.63ID:Xu1UKUsw0
$pdoがpdo.phpでグローバルになっていない、とかのヲチでは?

84デフォルトの名無しさん (ワッチョイ be81-uQtz)2018/03/13(火) 21:18:41.23ID:U9FOV+VD0
>>80
function Cronの最後の所で
$pdoと$stmtにnullを代入してみたら?

8580 (アウーイモ MM1f-edyV)2018/03/14(水) 00:06:06.83ID:0ajxFWw5M
どちらをやってもうまく動きませんでした
設計を大幅に変えて他のやり方で試して見ます
ありがとうございました

86デフォルトの名無しさん (ワッチョイ be80-csLy)2018/03/14(水) 00:11:37.24ID:QheYb9tS0
>>74-79
Node.js では、

cookie はクライアントから、
HTTP request headers の、cookie に入れられて、サーバーへ送られる

一方、LocalStorage は、Form のhidden などに自分で詰めて、
サーバーへ送るように書く

87デフォルトの名無しさん (ワッチョイ be80-csLy)2018/03/14(水) 00:26:02.24ID:QheYb9tS0
結局、こういうSQL文になるのだろ。
だから、aclass, bclass のテーブルが無ければ、エラーになる

SELECT feed FROM aclass;
SELECT feed FROM bclass;

88デフォルトの名無しさん (ワッチョイ 0b74-uQtz)2018/03/14(水) 00:46:02.96ID:PZuim+KR0
設計がキモいからアレだけど

require_once("./pdo.php"); //DB接続
function Cron ($table) {
global $pdo;
$sql = "SELECT `feed` FROM `{$table}`";
$stmt = $pdo->query($sql);
}

じゃね

89デフォルトの名無しさん (ワッチョイ 3fe9-hn8E)2018/03/14(水) 10:29:49.46ID:VrVVPjKa0
いや設計からやり直すで正解
requireやらglobalやら何年前の話だw

90デフォルトの名無しさん (ワッチョイ 8f7c-eXi2)2018/03/14(水) 11:04:36.09ID:k2P8bAPR0
それはそうだけど、globalに限らず、PHPの悪いところを知ることはとても重要だ。

91デフォルトの名無しさん (ワッチョイ 7e9e-0aB1)2018/03/14(水) 12:46:27.39ID:nr/g/ZaE0
phpで他のサイトのhtmlを読み込む方法を教えて。

92デフォルトの名無しさん (ワッチョイ 3fe9-hn8E)2018/03/14(水) 12:54:58.15ID:VrVVPjKa0
組み込み関数使う一番簡単な方法は
$html = file_get_contents('http://');

guzzleとかスクレイピングしたいならGouttteとか
何らかのライブラリを使った方がいいとは思うが
たぶんそういうレベルじゃないよね

93デフォルトの名無しさん (ワッチョイ 663b-uQtz)2018/03/14(水) 18:27:19.65ID:0BiLJwj+0
>>89
こういった操作をするにはどう設計するのが
いいんでしょうか?

94デフォルトの名無しさん (ワッチョイ 3fe9-hn8E)2018/03/14(水) 19:43:27.01ID:VrVVPjKa0
>>93
Magento最新版のソース辺りでも見てみれば?
>>80のソースコードはPHP4時代を彷彿とさせるし
10年は古いと思っておいて間違いない

95デフォルトの名無しさん (ワッチョイ 09fb-NGr0)2018/03/15(木) 21:50:22.39ID:Qb1XFtti0
Call to a member function query() on null

これは2回目のquery()を呼びだせていないエラーじゃないの?
require_once("./pdo.php");してるから1回目は呼び出せる。
だけど、2回目は読み込まれないから呼び出せない。
require_onceだから。

96デフォルトの名無しさん (ワッチョイ 6b3b-/kXb)2018/03/16(金) 05:55:28.99ID:Rb17xQxt0
PHP質問スレ無能さ自慢大会開催してるのに
本質ついてくるのやめろ

97デフォルトの名無しさん (ワッチョイ ebe9-hKdO)2018/03/16(金) 06:05:56.53ID:gZCff7dQ0
英語が出来るかどうかってプログラミングの習得効率をだいぶ変えるよな

98デフォルトの名無しさん (ワッチョイ 1be9-MOYc)2018/03/16(金) 10:23:55.97ID:tytL0PIQ0
PHPみたいなスクリプト言語のエラーメッセージって
中学レベルの英語力で理解できると思うけど
英語アレルギーな人はちょっとエラーが出ただけで
もうダメだ〜おしまいだ〜ってなるっぽい
ソースはプログラミング言語の講師経験がある俺

英語力以前に問題解決能力の問題

99デフォルトの名無しさん (ワッチョイ 45ed-CAlO)2018/03/17(土) 13:01:40.05ID:gJ/QHesH0
下らない質問します

PHP でフォルダのファイルを監視することは出来ますか?

初心なので、どういう仕組みにすれば良いのか、よくわかりません。

まず、各種センサーデバイスから、任意のフォルダにデータがUSB やLAN で放り込まれます。
(例log.txt)日時、デバイス番号、温度℃、湿度%
20180316,12:45:32,978456321,18,36
20180316,12:45:32,978456321,18,36

100デフォルトの名無しさん (ワッチョイ 45ed-CAlO)2018/03/17(土) 13:05:39.17ID:gJ/QHesH0
カンマ区切りのログデータを監視して
20180316,12:45:32,978456321,18,36

更新されたら、MySQLにアップデートして
ウェブページを見たら温湿度状態が表示されるようにしたいです。

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

101デフォルトの名無しさん (ワッチョイ ebc9-0FUd)2018/03/17(土) 13:56:59.02ID:RbO0oToK0
PHPのお仕事にも出来るが、単純に、Cronのお仕事にした方が良いと思いマッスル。

102デフォルトの名無しさん (ワッチョイ ebb8-B9xj)2018/03/17(土) 22:08:41.96ID:dntUHK5y0
set_time_limit(0);
$size = filesize("test.log");
while (1) {
 clearstatcache();
 $tmp = filesize("test.log");
 if ($size < $tmp) {
  $fp = fopen("test.log", "r");
  fseek($fp, $size);
  $data = fread($fp, $tmp - $size);
  fclose($fp);
  //$dataを整形してupdate
  $size = $tmp;
 }
 sleep(60); //インターバル
}

ログが追記されることを想定して
ログが0になったり途中に追記されたりおかしくなるのまでは想定してない
まぁ>>101

10399-100 (ワッチョイ 45ed-CAlO)2018/03/18(日) 19:13:17.39ID:8gph5VGe0
>>101
CronというのはLinux でしょうか?
win7proでも出来るのかよくわかりません。
検索してみます。ありがとぉごじゃりまスルメ。

104>>99-100 (ワッチョイ 45ed-CAlO)2018/03/18(日) 19:15:42.94ID:8gph5VGe0
>>102
出来ました。完璧です。誠にありがとうございました。

105デフォルトの名無しさん (ワッチョイ 8781-hKdO)2018/03/18(日) 19:18:04.80ID:CAYOd0hL0
windowsの場合はタスクスケジューラって言うのがあってそれで同等(?)のことが出来る

106デフォルトの名無しさん (ワッチョイ 2de4-B9xj)2018/03/19(月) 16:50:04.15ID:YxMyNHU90
ファイル変更をトリガーとするのはLinuxではincrontabってのがあるみたいだけど
Windowsだと
https://forest.watch.impress.co.jp/library/software/folderkanshi/
こういうの使うといいっぽい
やってることは>>102と大差ないけど

107デフォルトの名無しさん (ワッチョイ 779f-hKdO)2018/03/20(火) 17:14:51.77ID:isVnec710
アップローダーを作りたいのですが作り方を教えてください
プログラミングはC#しかやったことありません
初心者向けのphpの本やサイトなどがあると嬉しいです

108デフォルトの名無しさん (ワッチョイ 43d2-H2VO)2018/03/20(火) 21:09:56.52ID:ZUZCPXH00
C# を 学ぶ時に googleは 使いましたか?
php アップローダー で 検索すると  作り方 を 一通り 
紹介する ページが 出てくる と思います よ

109デフォルトの名無しさん (ワッチョイ dfe4-B9xj)2018/03/20(火) 22:51:05.80ID:iQ0ukGuu0
アップロード処理
http://php.net/manual/ja/features.file-upload.post-method.php

htmlのformからphpにpostする
php側ではグローバル変数(配列)$_FILESにアップロードされたファイルの情報が入るので
それを操作する(デフォルトではテンポラリフォルダに入るので保存フォルダに移動したりリネームする)

あとはアップロードフォルダを読み取って中にあるファイルリストとリンクを表示するなり
投稿者のコメントやら削除やら高度な管理が必要ならデータベースやらに情報入れてそれ使うなりお好きに

110デフォルトの名無しさん (ワッチョイ 779f-hKdO)2018/03/21(水) 14:40:17.92ID:u4wtWd010
ありがとう!
右も左もわからないくらいの超初心者だけど頑張って作ってみる

111デフォルトの名無しさん (ワッチョイ fa6c-mRzn)2018/03/23(金) 17:19:12.88ID:D5VJHy400
スレ違いだったらすみません
ネットの中の情報ってどこかに保存されてて僕はそれを引き出して見てるんですか?もしそうだったらどこに保存されてるんですか?
曖昧な質問すみません

112デフォルトの名無しさん (ワッチョイ c7e9-fzSc)2018/03/23(金) 18:27:48.68ID:R9lXxg8x0
いわゆるサーバー
とりあえず仮想環境でサーバー作ってみて
慣れたらどこか適当なところでVPSでも借りて好きにやってみればいい
サーバーを触れないPHPerなんて話にならん

113デフォルトの名無しさん (ワッチョイ 9aad-fzSc)2018/03/23(金) 21:09:42.83ID:es4801GY0
サーバーを触れるようになるにはlinax系のOSも勉強しないといけませんか?

114デフォルトの名無しさん (ワッチョイ 1ad2-QTIh)2018/03/23(金) 23:25:31.14ID:2DgZhzwv0
linux知識は必須だ
せっかくこんなスレにくるくらいだから
LAMPシステムの概要読んだり
apacheでhttpサーバー立ち上げたり
php.ini読むことから始めてみては?

それやった上でのhello world は感慨深いものがあるぞ

115デフォルトの名無しさん (ワッチョイ c7c9-3KaU)2018/03/24(土) 10:28:57.13ID:xLRXLjE70
>php.ini読むことから始めてみては?

ええぇぇぇ…

116デフォルトの名無しさん (ワッチョイ 7671-9mdf)2018/03/24(土) 10:49:10.52ID:g1GPKhFr0
サーバもよくわからんレベルに勧める話かなあそれ

117デフォルトの名無しさん (ワッチョイ f68a-fzSc)2018/03/24(土) 13:25:20.05ID:j9SPmTfd0
>>113
私の場合、WindowsのPCにVirtualBoxで仮想マシンを仕立て、そこにLinuxをインストールしてます。
これに >>114 のようにそれぞれ個別にapache、PostgreSQL、PHPを入れて遊んでますね。

118デフォルトの名無しさん (ワッチョイ 4ee4-NuQV)2018/03/24(土) 16:46:27.21ID:1+DXMJWu0
LinuxっていってもデスクトップはWindowsと変わらないけど
いわゆるガチのサーバ機はデスクトップ環境でやらないので
WindowsならDOSプロンプトで遊ぶところからがいいのでは

119デフォルトの名無しさん (ワッチョイ 4e81-zkh5)2018/03/24(土) 16:53:10.58ID:qYWJwKPe0
>>107が希望しているアップローダーは、どこに置いて実現したいのかな

自分の手元にあるWindowsPCにPHPをインストールし、
PHPのスクリプトをそこに置いて
コマンドラインでPHPを起動してスクリプトを実行する感じ?

それとも、どこかのレンタルサーバーを借りて、そこにPHPスクリプトを置いて
WindowsPCはレンタルサーバーのHTMLを使い、ブラウザでフォームを表示させ、
そのフォームに手元のファイル名を指定し、ボタンを押してアップロードする?

120デフォルトの名無しさん (ワッチョイ dbf7-gBYh)2018/03/27(火) 23:04:42.45ID:yJnfuO2v0
諸事情でララベルしなきゃいけないんだがSQLが俺は全く出来ないていう状態なんだが
ララベルとSQLはそれぞれ並行してやった方がええかな?分担してやった方がええかな?

121デフォルトの名無しさん (ワッチョイ c7e9-fzSc)2018/03/28(水) 10:37:13.14ID:r6P5fkin0
Laravelみたいなフレームワークは
普通はSQL文を直接書かずにクエリビルダーを通すんだが
何らかのフレームワークは使った事あるのかね

その質問レベルで分業できるのか疑問

122デフォルトの名無しさん (ワッチョイ d1f7-f7sf)2018/03/29(木) 00:50:06.39ID:6VZpXAAL0
>>121
mvcとやらはvueでルーターでビュー振り分けたり変数の値を直接表示したりで慣れてるけど
フレームワークにあるテストやらなんやらの沢山の設定ファイルは苦手やな
今前知識活かしてルーター探してララベルでビューの切り替えした辺り

どの道ララベルとMySQLを覚えなきゃいかんのだが、今は最優先でララベルで二、三個モノを作らなきゃいかん
ガチれば一夜漬けでSQLデータの出し入れ位は出来るようなるかな?

123デフォルトの名無しさん (ワッチョイ db14-yiKA)2018/03/29(木) 01:14:54.39ID:Nvn7VfZa0
なる。今からやれよ

124デフォルトの名無しさん (ワッチョイ d1f7-f7sf)2018/03/29(木) 03:24:11.08ID:6VZpXAAL0
>>123
おおありがとうな
本当にやったんだがMySQLのインスコ時に沢山エラー出ただけで
phpから中身吐くの簡単やなぁ

125デフォルトの名無しさん (ワッチョイ 93ad-uaFS)2018/04/02(月) 13:28:31.23ID:1ZK7Ts6x0
SQL周りの質問します
$sql = 'select count(bang) from tbk';
$stmt = $dbh->prepare($sql);
$stmt->execute();
こう書いてcountでデータベースの行数を取得してその値をPHP側で受け取るにはどういうコード書けばいいですか?

$count = $stmt->fetch(PDO::FETCH_ASSOC);
こう書いて$countで受け取ってvar_dumpで調べたら連想配列なんですが$count['bang']としても値を得れません

データベースのカウント後を受け取るにはどう書けばいいんでしょうか?

126デフォルトの名無しさん (ワッチョイ 93ad-uaFS)2018/04/02(月) 14:06:22.32ID:1ZK7Ts6x0
データベースのcountを普通の変数として受け取りたいです。

127デフォルトの名無しさん (ワッチョイ b9d2-d1ON)2018/04/02(月) 15:38:47.00ID:tUzkKP1X0
たぶん名前はcountになってると思うけど
SQLのほうで as つけて好きな名前にしたら確実かと思う

128デフォルトの名無しさん (ワッチョイ d108-bCzG)2018/04/02(月) 20:38:33.73ID:cnm0+0Yi0
>>126
$count = $stmt->fetchColumn();

129デフォルトの名無しさん (ワッチョイ 93ad-uaFS)2018/04/03(火) 09:34:38.07ID:vHkqWM6i0
>>128
ありがとうございます
できました。

130デフォルトの名無しさん (ワッチョイ b9d2-d1ON)2018/04/03(火) 12:25:18.58ID:FsceX5l00
$count['count'] か
$sql = 'select count(bang) as bang from tbk';
でもよかったのよ、ってこれ意味わからなかったのか

131デフォルトの名無しさん (ワッチョイ 93ad-uaFS)2018/04/03(火) 17:32:37.82ID:8BbSY5bZ0
>>130
ありがとうございます
理解できてませんでした
$count['count'] のほうではできませんでしたが
$sql = 'select count(bang) as bang from tbk';のほうでcount['bang']としたら通りました。
難しいですね・・・

132デフォルトの名無しさん (ワッチョイ c69e-6Vn5)2018/04/07(土) 05:27:46.16ID:dDGDds4R0
include_once って読み込むファイルを http://・・・ で指定する方法は
無いの?

133デフォルトの名無しさん (ワッチョイ 4ad2-2KfT)2018/04/07(土) 20:02:10.23ID:MtEcxTjp0
php.iniでallow_url_includeをOnにして
include_onceすればオッケー

134デフォルトの名無しさん (ワッチョイ 4ad2-2KfT)2018/04/07(土) 20:04:48.52ID:MtEcxTjp0
なお

135デフォルトの名無しさん (ワッチョイ 5d74-vJpg)2018/04/07(土) 21:54:01.07ID:wQfk+GMe0
おっけーだけど実際何もおっけーじゃねぇな, HTTPとか正気の沙汰ではない

136デフォルトの名無しさん (ワッチョイ 8681-vJpg)2018/04/07(土) 23:51:41.07ID:xgDbOcv/0
>>131
$sql = 'select count(bang) from tbk';
このままで実行したときは、

$count['count(bang)'] に入っている

137デフォルトの名無しさん (ワッチョイ c69e-6Vn5)2018/04/08(日) 10:00:09.99ID:8Q7B3DS20
>>135
>HTTPとか正気の沙汰ではない
なんでよ?

改竄されたら任意コード実行に直結やぞ
せめてちゃんとした証明書付きのHTTPSは必要
それでも何か嫌だけど

139デフォルトの名無しさん (ワッチョイ c69e-6Vn5)2018/04/08(日) 14:40:24.98ID:8Q7B3DS20
>>138
>改竄されたら任意コード実行に直結やぞ
それは今回の質問の件と関係なく
改竄された時点で危険なんじゃないの?

140デフォルトの名無しさん (ワッチョイ 5d74-ovq6)2018/04/08(日) 14:49:16.99ID:ZJwweAqK0
>>139
中間者攻撃をご存じないか?

141デフォルトの名無しさん (ワッチョイ 4dad-lfby)2018/04/08(日) 22:47:34.68ID:QubCLyU70
>>136
var_dumpで調べたとき確かそうでました。
そのまま括弧もつけて書くとは思いませんでした。
勉強になります。ありがとうございます。

142デフォルトの名無しさん (ワッチョイ a17b-6Vn5)2018/04/09(月) 04:13:29.94ID:/CzDp9JH0
文法を一通り習って、Laravelなるフレームワークが主流と聞いて調べてみたのですが、自分の知ってるPHPとだいぶ違って面食らいました。
これはオブジェクト指向プログラミングなるものを習えばわかるようになるのでしょうか?
公式のドキュメント読むとルーティングとかコントローラーとか解説なしで当然のごとく出てきて激鬱です。
何をすればLaravelが使えるようになるか書籍・ウェブサイト等、指針を示して頂きたいです。

143デフォルトの名無しさん (ワッチョイ 86b8-QncF)2018/04/09(月) 05:52:33.60ID:pdsBUMq90
フレームワークはコーディングにルールや制約を持たせることで
簡単に構築できるようになってるので
自分の知らないことや言葉に惑わされず
とりあえず書かれてる通りに従って真似してみればいいだけだよ
サンプルを何個かやってくうちにどんなもんかわかるだろうし

144デフォルトの名無しさん (ワッチョイ 5d74-vJpg)2018/04/09(月) 05:55:00.05ID:REpY3VRE0
>>142
とりあえずLaravelのチュートリアルでもやったらいいんではないか
あとMVCの基本的な構成は勉強してもいいかもね

145デフォルトの名無しさん (ワッチョイ 4ad2-kuJV)2018/04/09(月) 08:24:42.06ID:xFzcbrnT0
フレームワークまじでわからん
内容や構造を理解、構築しようとするのではなく、ひたすら「手法」を学べ
ってアドバイスされたがそれでもわからん、ってかこのアドバイス本当にあってんの?俺の頭がイカれてるのかと思い始めてきた

146デフォルトの名無しさん (ワッチョイ 3e14-3orc)2018/04/10(火) 00:12:53.40ID:cSkLylsH0
>>145
どれほどやったの?

>>145
フレームワークは構造を理解した上で使うもの。職場でそれ言われたんならすぐ他行ったほうがいい。

148デフォルトの名無しさん (ワッチョイ a17b-6Vn5)2018/04/10(火) 04:47:34.57ID:RNPBEaXU0
>>143-144
ありがとうございます
とりまやってみます

149デフォルトの名無しさん (オッペケ Sred-6wO2)2018/04/11(水) 02:01:00.17ID:mBTJQa8Ur
48都道府県名が格納されてる配列があるとして
例えば東京都が格納されてる配列番号を知りたいときはpreg_grepとprint_rを使った結果を確認すればいいみたいですが
検索して結果の配列番号だけを変数に格納するにはどうすればいいのでしょうか?

150デフォルトの名無しさん (ワッチョイ 86b8-QncF)2018/04/11(水) 05:07:22.04ID:RGen9FXo0
下手にarray系の関数使うよりforeachでやったほうがたいていパフォーマンスはいい

151デフォルトの名無しさん (ワッチョイ 86b8-QncF)2018/04/11(水) 06:16:19.84ID:RGen9FXo0
と書いてみて気になって測ってみたけど
array_searchのほうが早かったな
php5時代の常識はもはや通用せんね

152デフォルトの名無しさん (ワッチョイ b9e9-lfby)2018/04/11(水) 12:26:22.50ID:beJeAwMY0
>>149
$ken = ['東京', '京都', '大阪'];
$kenFlip = array_flip($ken);
var_dump($kenFlip['京都']);

Ruby on Rails 5.2正式版発表。Active Storageによるクラウドストレージ対応、Redisでのキャッシュ対応など
http://www.publickey1.jp/blog/18/ruby_on_rails_52active_storageredis.html
>Active Storageは、Amazon S3やGoogle Cloud Storage、Microsoft Azure Storageのような
>クラウドドストレージに対してファイルをアップロードし、
>それらのファイルのActive Recoredオブジェクトへの添付を容易にする機能です。
>また、ミラーリング機能によって複数のクラウドストレージのあいだでファイルを同期することもできます。
>これによって高い冗長性などを実現可能です。

これは良さそうですがPHPにこういうのありますか?

作りゃいいじゃん

155デフォルトの名無しさん (アウーイモ MMe7-s85b)2018/04/17(火) 16:17:10.16ID:LPB+OBLfM
>>153
Symfony
+
Doctrine
+
VichUploaderBundle
+
Flysystem
FlysystemのAWS S3用アダプタ

でDBへの書き込みと画像のS3へのアップロードなら出来る
冗長化は無いが

サムネイル作成が必要ならLiipImagineBundleで

VichUploaderはPropelやMongoDBにも対応している
FlysystemはSymfony以外も対応している

156デフォルトの名無しさん (ワッチョイ 8aeb-Mp6C)2018/04/20(金) 20:18:51.62ID:JYYXAoL40
グラフ画像を作って保存したいんですけど簡単なライブラリみたいなのってありませんか?
グラフを表示するhtmlやCSSをはくとかはあるみたいなんですけど
グラフ画像を作るのはさがしてもみあたらなくて…

157デフォルトの名無しさん (ワッチョイ 8aeb-Mp6C)2018/04/21(土) 02:18:17.85ID:GJF07GGo0
レンタルサーバーを借りてphpの勉強はじめたんですけど

/ドメイン名/public_html/ 以下に php ファイルをおくとエラーが出たときに
/home/アカウント名/サーバー名/public_html/... 
のファイルでエラーがありましたってでちゃうんですけど
アカウント名をみえなくすることってできませんか?

関数全部に@つけるのも微妙だし
何かの拍子でアカウント名みえちゃうのいやなんですよね

レンタルサバのエラーディスプレイいじれるんならいじる

159デフォルトの名無しさん (ワッチョイ b365-9jjH)2018/04/21(土) 08:51:13.24ID:rs60STnG0
.htaccessか.user.iniでdisplay_errorsをoffにしてerror_logを設定しておくのが普通では

160デフォルトの名無しさん (ワッチョイ 8aeb-Mp6C)2018/04/21(土) 23:07:08.13ID:GJF07GGo0
>>158,159
できましたありがとうございます

Xサーバーなんですけどphp.iniがおいてあったのでそのなかの
display_errors = Off
にしてみました

あとはじめから
log_errors = On
log_errors_max_len = 1024
ってなってるんですけどこれどこに表示されるんでしょうか

エラーがまったく表示されないのもそれはそれで困るかも…

161デフォルトの名無しさん (ワッチョイ b365-9jjH)2018/04/22(日) 00:03:29.49ID:ZgYxHCJE0
>>160
だからerror_logを指定城

162デフォルトの名無しさん (ワッチョイ 8aeb-Mp6C)2018/04/22(日) 02:56:08.02ID:pMZeO9w/0
これは設定ファイルとかじゃなくてphpのなかに書く関数なんですか?
自分で関数も戻り値とかをハンドリングしてエラーをハンドリングして使う感じなんでしょうか?
エラーメッセージも自分で作らないといけないみたいだし…
そもそも構文エラーとかの場合これどうやってハンドリングすればいいんでしょう

デフォルトのエラーメッセージに絶対パスを表示させたくないだけなんですけど結構大変なんですね…

163デフォルトの名無しさん (ワッチョイ 1ae4-OGjV)2018/04/22(日) 06:44:08.35ID:ebslMH0y0
phpで設定を行う方法は主に3つ
・サーバ側の設定ファイル(php.iniやhttpd.conf)に直接書く方法
・phpスクリプトにini_set関数を使って書く方法
・専用の関数が用意されてればphpスクリプトに専用関数を使って書く方法

phpの設定がどこで行えるかは下記の通り
http://php.net/manual/ja/configuration.changes.modes.php

今回のerror_logは
http://php.net/manual/ja/errorfunc.configuration.php

PHP_INI_ALLなのでphp.iniに直接書くことも出来るし

ini_set関数を使ってphpスクリプトに書くことも出来る
http://php.net/manual/ja/function.ini-set.php

また同名の関数が用意されてるのでそれを使ってphpスクリプトに書くことも出来る
http://php.net/manual/ja/function.error-log.php

164デフォルトの名無しさん (ワッチョイ 8aeb-Mp6C)2018/04/22(日) 11:55:07.76ID:pMZeO9w/0
うまくいかない…

エラーも表示されないし
ログファイルに書きこめない
パーミションもあけてるんですけど

せっかく丁寧に回答もらったのに申し訳ないんですがもうパス表示されたままであきらめます
phpのコードの勉強がしたいのにサーバーの設定だけで土日つぶれそう…

165デフォルトの名無しさん (ワッチョイ 8713-9jjH)2018/04/22(日) 12:15:18.27ID:RCbhuHms0
xamppでもいれて自鯖でやれよ
レンサバでやる意味がわからん

166デフォルトの名無しさん (ワッチョイ ff73-fvqh)2018/04/22(日) 22:52:07.39ID:6Gp3Qhv/0
>>164
<?php
ini_set('display_errors', 0);
ini_set('log_errors', 'On');
ini_set('error_log', '/home/アカウント名/サーバー名/errors/error.log');

167デフォルトの名無しさん (ワッチョイ 8aeb-Mp6C)2018/04/23(月) 15:07:39.91ID:jrWtf7ql0
>>16
ありがとうございます

/homeからのパスを設定しないといけなかったんですね…
php.ini に設定すればログがふえるようになりました
本当に感謝です

168デフォルトの名無しさん (ワッチョイ 8aeb-Mp6C)2018/04/23(月) 15:08:09.54ID:jrWtf7ql0
アンカ >>166 さんでした

169デフォルトの名無しさん (ワッチョイ 93ad-c97c)2018/04/26(木) 02:51:42.22ID:4mqP60uz0
c言語から勉強初めてjava→html/css→javascript→php→mysql→jqueryときてwordpressの本読んだけど
ウェブやるならこれだけでいい気がして今までの時間が凄く無駄に思えてきた・・・
phpとかできたほうが有利な点を教えてください・・・
モチベーションが・・・

170デフォルトの名無しさん (ワッチョイ 2be4-iMQz)2018/04/26(木) 11:41:18.07ID:vpKHU58Q0
何かウェブサービスをやりたいとか
スマホでゲームとか作ってユーザのデータを集約させるバックグラウンドが必要とかでなく
ただWebサイトを構築したいってだけなら別にWPでいいんじゃない?
モチベが欲しいならWPなしでサイト構築するためにPHP学ぶでもいいのでは?
PHPerは無駄が好きなのでJava脳で車輪の再発明嫌いな人はPHP向いてないかもね

171デフォルトの名無しさん (ワッチョイ 2be8-HzgJ)2018/04/27(金) 20:59:04.65ID:4+bpK0C+0
同じサーバー内で、自プログラムが置かれているディレクトリとは異なるディレクトリにある
ファイルを読み込みたいのですが、そのディレクトリはBASIC認証をかけています。
この場合、phpプログラムから認証を突破するための手続きはどうすればいいでしょうか?
IDとパスワードはもちろん分かっている状態です。

172デフォルトの名無しさん (ワッチョイ 2165-luqG)2018/04/27(金) 22:21:06.56ID:7/omQtan0
>>171
何か試してから聞いてる?

173デフォルトの名無しさん (ワッチョイ 2be4-iMQz)2018/04/28(土) 00:04:33.20ID:g3LZUwEj0
httpでやる必要がないならbasic認証関係ないんで
ローカルのファイルのパスがちゃんと指定できてれば読める
もしhttp経由で読み込む必要があるのなら
http://php.net/manual/ja/function.file-get-contents.php
ここの例4のとこ参考にして
Authorizationヘッダをつけてリクエスト送ればいい
"Authorization: Basic {$token}\r\n"
$tokenはbase64_encode('id:password');

174デフォルトの名無しさん (ワッチョイ 2be8-HzgJ)2018/04/28(土) 02:34:18.68ID:PnxQ5sIY0
>>172-173
思い違いと動作確認でもミスがあり、何か処理が必要と思い込んでいました。
すっぱり整理してやり直しをし、無事動作することが確認できました。

どうもありがとうございました。

175デフォルトの名無しさん (ワッチョイ 89f7-c97c)2018/04/30(月) 08:30:19.19ID:HJ8JxjLj0
ここで聞いていいのかわからないんですが、フレームワークの利用に関する質問です
5年以上前に誰かが作ったWebサイトを運用していく必要があるのですが、フレームワークはEthnaを利用しています
当時サイトを作った人や、その後追加改修を行った人は、もういない状態です。

Ethnaの使用感としては5年以上前に開発が止まっていて、ドキュメントも未完成。
これに学習コストを払うのは嫌だなあというのが本音です。人不足で新しい人も入ってきているのですが、覚えてもらうのが申し訳ないレベルです。

ただ、フレームワークを変えて書き直すとなると、ほぼサイトをリニューアルすることになります。
そもそもフレームワーク関係なく、設計書もなく、中身がブラックボックス化しているサイトなので、リニューアルは何度か検討しています。
が、やはり時間がかかってしまうので、なおしたいことがあればその都度プログラムを読んで、修正しています。

なので、「現状のままであるリスク」を「リニューアルするコスト」がこえないと、なかなか上を説得することが難しいという状態です。
このWebサイトは、年数億円を売り上げており、何かの拍子に動かないというのは許されない状況です。


前提としてはここまでで、ここからが質問なのですが
5年以上前に作ったサイトの、5年以上前のフレームワークをそのまま扱っていくリスクというのは、どう見積もれば良いものでしょうか?
古いシステムをそのまま使い続けてる現場に入ったなら、どのように考えますか?
一応進言すれば、現状は変えられる可能性が高いのですが、判断に悩んでいます。

176デフォルトの名無しさん (ワッチョイ 2be4-iMQz)2018/04/30(月) 15:33:03.01ID:jgwIHR0D0
動かなくなったらまずいといいつつ、
よくわからないものをいじって、なんとなく動いてるってことだよね?
その現状に危機感を抱くべきでは?
個人がフォークしたEthnamという後継プロジェクトはあるみたいだけど、
5.4で動くなんてのをウリにしてるあたり、
オリジナルはサポート切れのPHPバージョンを使ってるのだろうけど、
それだけで十分置き換え理由になるのでは?

177デフォルトの名無しさん (ワッチョイ 2165-luqG)2018/04/30(月) 16:33:45.75ID:xsz5GBeT0
>>175
コスト面では定量してTCOで比較すればよい
リスク評価も定量して算入するならリスクを分類した上でリスク発生率と予想損失額の積で損失見積もりとする

178デフォルトの名無しさん (ワッチョイ 81eb-NYJU)2018/04/30(月) 17:17:04.35ID:jhlqCVp+0
サイトの仕様を解析して理解する所から始める。
仕様さえ分かれば、フレームワークなんて大したことないって気づきそう

179デフォルトの名無しさん (ワッチョイ 19e9-Zmkj)2018/04/30(月) 17:20:23.74ID:Fr6QpWrH0
よく知らないけど、5年以上前のフレームワークってセキュリティ的にどうなの

180デフォルトの名無しさん (ワッチョイ 2141-nMkC)2018/05/01(火) 05:57:16.67ID:YFbi6kAs0
使い道あるの?

181デフォルトの名無しさん (ワッチョイ 272b-XJxX)2018/05/04(金) 18:08:52.10ID:ZORKHZxp0
FastCGIで動かす時にアプリケーション初期化のコードは最初の1回だけ実行したい
というより予め実行済みの状態でリクエストを待機させたいんだけど、どうすればいいの?

182デフォルトの名無しさん (ワッチョイ 0beb-pRpi)2018/05/05(土) 02:10:31.22ID:i6PqpWH90
ファイルを file_get_contens() や file_pet_contents で読み書きしたいんですが
ロックってどうすればいいんでしょうか
flockにファイルディスクリプタが必要みたいなんですけど
それを使って与密会するわけじゃないのでRD_ONLYで開いてもいいんでしょうか

$fp = fopen($filename, 'r');
if (flock($fp, LOCK_EX)) {
file_get_contents($filename);

file_putt_contents($filename);
flock($fp, LOCK_UN)
}

でうごきますか?

ロックファイルはわける必要がありますか?
ロックがぶつかるケースをデバッグできないので大丈夫なのかどうかがよくわかりません

183デフォルトの名無しさん (ワッチョイ bfad-pRpi)2018/05/05(土) 02:45:58.52ID:r2NCQwWJ0
てす

184デフォルトの名無しさん (ワッチョイ 1ee4-jSIs)2018/05/05(土) 05:47:07.80ID:ai+BlqsN0
$fp = fopen($filename, 'c+');
if (flock($fp, LOCK_EX)) {
$buf = '';
while ($tmp = fread($fp, 1024)) {
$buf .= $tmp;
}
rewind($fp);
ftruncate($fp, 0);
fwrite($fp, $buf.$buf);
flock($fp, LOCK_UN)
}

185デフォルトの名無しさん (ワッチョイ 1fe9-bmQX)2018/05/05(土) 15:07:11.64ID:XYMHadsA0
スマホ向けに下記をhtmlのheadに書いた場合は、スマホの横サイズいっぱいで折り返し表示されますが、
<meta name="viewport" content="width=device-width,initial-scale=1" />

php埋め込みhtml(拡張子はphp)に上記を書いても折り返してくれません。

他に何かお作法が必要でしょうか?

186デフォルトの名無しさん (ワッチョイ 1ee4-jSIs)2018/05/05(土) 17:46:10.93ID:ai+BlqsN0
文字コード周りに問題がなければ
PHPで出力したHTMLのソースを表示してみてオリジナルのHTMLと対比してみては?
エスケープミスでタグが閉じられてない状態で出力されてるとかそんなレベルかもしれない
サーバ側で関連ヘッダーを出力しちゃってる可能性もあるので
理解出来るならブラウザの開発者ツール使ってHTTPヘッダの中身チェックするといい

なんにせよ再現できる全体ソースが出ないことには答えようがない

187デフォルトの名無しさん (ワッチョイ 1fe9-bmQX)2018/05/05(土) 18:17:23.60ID:XYMHadsA0
>>186
原因が分かりました。
変数に改行(\n)付きの長いメッセージを入れてあり、それを表示するのにpreタグ
で囲っていたのが原因でした。

preタグを使わずに改行付きの長いメッセージを表示する方法を考えてみたいと思います。

どうもありがとうございました。

188デフォルトの名無しさん (ワッチョイ 1fe9-bmQX)2018/05/05(土) 18:24:56.30ID:XYMHadsA0
連投すみません。
nl2brを使えばすぐでしたね。
初歩的なことですみませんでした。

189デフォルトの名無しさん (ワッチョイ 0beb-pRpi)2018/05/05(土) 21:35:48.44ID:i6PqpWH90
>>184
やっぱりロックとる場合はロックをとったファイルディスクリプタに
fread, fwriteで読み書きする必要があるんですね
コード参考にさせていただきます
ありがとうございました

190デフォルトの名無しさん (ワッチョイ 277f-U8nf)2018/05/06(日) 01:38:07.25ID:qVg6wQW80
プログラムの基本を教えてください。

一つのphpファイルが300行をオーバーしてしまったから、汎用性はないけど一まとまりの機能があって、色んな所から呼び出す処理を別のphpファイルにしてインクルードで呼び出す、
という形で小分けにしていこうと思ってますが、そんな風にバラバラにしてしまってもいいんでしょうか?

191デフォルトの名無しさん (ワッチョイ 1ee4-jSIs)2018/05/06(日) 06:09:15.48ID:P7v+SOn20
その考えの行きつく先にオブジェクト指向があるのでオブジェクト指向入門するといいかな
方向性としてはあってるのでとりあえずは思った通りにやってみては?
あと行数に関していえば1万行クラスのソースコードはざらなので(半分はコメントだったりするけど)
長い行数になったときのソースコードの管理の仕方をIDE使って覚えていくといいよ

192デフォルトの名無しさん (ワッチョイ 277f-U8nf)2018/05/06(日) 06:33:20.08ID:qVg6wQW80
>>191
返信ありがとうございます。1万行はぞっとします。とりあえずはこの方向性で行きたいと思います。

193デフォルトの名無しさん (ワッチョイ 2fe9-pRpi)2018/05/07(月) 18:56:32.81ID:VgAGErm20
>>189
ファイルロックについてはその通り
stream_get_contents()を使うと>>184よりはもう少しスッキリ書けるかと

194デフォルトの名無しさん (JP 0Hb6-a7mP)2018/05/08(火) 19:09:31.56ID:GHttMtN9H
関数の呼び出しがあっているのかわかりません

ボタンでCreateとLikesの処理をわけたいんですが、うまく実行できません

(ボタンの処理は別のPHPファイルに書いてます)

create_qaとUpdate_likes_whenbuttonClickは、単体であれば実行ができているのはわかっているのですが、振り分けるためのbutton_Click関数に入れた途端動かなくなります
returnで、振り分けそのものができていることは確認しました(IDを表示することができたので、問題がないかと思っています)
何か間違っていそうか分かる人教えて下さい



public function button_click(Request $request,$session_id){
if(isset($_POST["create"])){
$this->create_qa($request,$session_id);
}
else if(isset($_POST["likes"])){
//return $session_id; これはできてる
$this->update_likes_whenbuttonClick($request,$session_id);
}
}

エラーログは読んだの?
超能力者じゃない限りソースだけ貼られても分からんよ

196デフォルトの名無しさん (ササクッテロラ Sp23-a7mP)2018/05/08(火) 21:06:53.22ID:XEaTgBIDp
>>195

errorが全くでなくて、むしろ真っ白なページが表示されます・・・
関数単体だときちんとreturn viewしたページに飛んで、処理もできているのに、こっちだとできないです

197デフォルトの名無しさん (ワッチョイ 27ff-NrvC)2018/05/08(火) 21:11:07.16ID:r4cHd3Kx0
>>194
elseまで流れてるとか

198デフォルトの名無しさん (ササクッテロラ Sp23-a7mP)2018/05/08(火) 21:22:37.44ID:XEaTgBIDp
>>197
return でelse以降に入ると数値が表示させるようにして確認しましたが、今のところ流れてはなさそうです
分岐を一切作らずに
$this->create_qa($request,$session_id);
だけ入れてもおかしなことになるので、
$this->〜〜〜っていう表記が間違っているような気がするのですが何がおかしいのか全く分からず・・・

199デフォルトの名無しさん (ワッチョイ 27ff-NrvC)2018/05/08(火) 21:33:50.33ID:r4cHd3Kx0
>>198
簡単な別のメソッドを作って呼び出せるか試してみたら

200デフォルトの名無しさん (ワッチョイ 46d2-a7mP)2018/05/08(火) 21:46:05.47ID:ZabFV5ph0
>>199

引数なし、return0をするだけの別の関数を作って、同じように呼び出しをしてみましたがだめでした、
やっぱりthis〜の行が何かしら影響を及ぼしてるようです・・・

201デフォルトの名無しさん (ワッチョイ bb65-y/Bc)2018/05/08(火) 22:12:48.09ID:Wxx1HImu0
error_logでファイルにエラー吐いてないのか?
画面出力はエラー出力でHTTPヘッダとか壊れてまともにならんことも多いぞ

202デフォルトの名無しさん (ワッチョイ 46d2-a7mP)2018/05/08(火) 22:27:49.92ID:ZabFV5ph0
>>201
ためしにエラー出力してみましたが、全く何もでてないようで・・・

203デフォルトの名無しさん (ワッチョイ 46d2-a7mP)2018/05/08(火) 22:40:25.33ID:ZabFV5ph0
>>194
ですが解決しました!
分岐文の内部でreturn viewができてないのが原因でした
すみませんお騒がせしました

204デフォルトの名無しさん (ワッチョイ 6bb3-G8ur)2018/05/09(水) 00:23:01.03ID:SCT1xJRf0
変数の$〜〜の$ってなんて読むの??
ドルなんとかって読んでるんだけど間違い?

205デフォルトの名無しさん (ワッチョイ c5eb-bFqk)2018/05/16(水) 06:54:52.26ID:U06fQouG0
文字列全体を正規表現判定するのってどうすればいいんですか?

入力に不正文字がないかチェックしたいんですけど

pregmatch('/[0-9a-zA-Z]+/', $input)

だと一部にマッチしてもtrueになっちゃうので
文字列全体で数字アルファベットしか使われてないことを確認したいです

206デフォルトの名無しさん (ワッチョイ cbb8-mmKM)2018/05/16(水) 07:46:14.68ID:kggTFXx50
^[0-9a-zA-Z]+$
そういう単純なものは正規表現使うまでもなく
他の関数が用意されてると思ったほうがいい
http://php.net/manual/ja/ref.ctype.php

207デフォルトの名無しさん (ワッチョイ c5eb-bFqk)2018/05/16(水) 07:53:08.47ID:U06fQouG0
ctype_alnumを使えばいいんですね
ありがとうございました!

208デフォルトの名無しさん (ワッチョイ c5eb-bFqk)2018/05/16(水) 08:02:56.78ID:U06fQouG0
あとPHPの配列についてききたいんですけど

a[] = 2;
a[] = 4;

や array(2,4) でつくった場合Cやjavaの配列と同じくメモリ上にvalueだけがならんで
a[1] でアクセスした場合アドレス計算でアクセスされるんでしょうか?

それとも自動的に連想配列になって '1' っていう key を検索するんでしょうか?

メモリにははいるけどキャッシュにははいらないそこそこ大きなテーブルデータを扱ってるので気になりました

209デフォルトの名無しさん (ワッチョイ 89fa-9WOx)2018/05/23(水) 19:27:20.90ID:Au5e7VGg0
僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』

Q3682

210デフォルトの名無しさん (ワッチョイ 29f7-KY9h)2018/05/24(木) 10:46:13.86ID:cPlRxlDn0
Q3682

211デフォルトの名無しさん (ワッチョイ 398a-EdLk)2018/05/24(木) 16:05:36.14ID:6FiN0bsr0
114.149.223.252

212デフォルトの名無しさん (アウアウカー Sa5d-2Zx2)2018/05/31(木) 15:22:43.39ID:TDljpn4Za
参考書を1ページずつjpgに自炊スキャンしましたが
今あるjpgの奇数ページと偶数ページをくっつけて見開きページの画像にして保存したいと考えました、phpの画像処理ライブラリは
GD
DmImage
ImageMagick
等があるみたいですが
手軽にできるのはどれですか?

そんなのどれ使っても手軽だろw
こんなところに書いて待ってる間に処理一つくらい書けるし、
まずは分かりやすそうなのどれか一つ使って書いてみればいい

214デフォルトの名無しさん (ワッチョイ b1d2-u72h)2018/06/04(月) 11:58:13.68ID:xotzaECi0
どれもベースがGD
GDに皮をかぶせて使いやすくしたものだが皮の厚さが違う

215デフォルトの名無しさん (ワッチョイ 3315-WL+L)2018/06/07(木) 16:51:32.87ID:XK0BD38x0
初心者です。。

Class hoge {
public static function aaa (){
echo __CLASS__;
}
public function __construct (){
static::aaa();
}
}
Class piyo extends hoge {}
$var = new piyo();
//hoge
みたいなコンストラクタの中でstaticつけて関数呼び出すのってどういう意味が有るのですか…

static::hogehoge($this);みたいなのがコンストラクタのなかにあるのって
どういうふうに動いてるのかわからないです。

216デフォルトの名無しさん (ワッチョイ b15d-ROyu)2018/06/07(木) 17:08:53.75ID:GEMO2qjs0

217デフォルトの名無しさん (ワッチョイ 3315-WL+L)2018/06/07(木) 17:37:17.26ID:XK0BD38x0
>>216
遅延的束縛がわからんのです。
コンストラクタの中でやってるからpiyoにならないのかな
static $piyo;
public function __construct(){
static::hoge($this);
}
public static function hoge($this){
return static::piyo = $this;
}

みたいなのときとかもうわけわからん

218デフォルトの名無しさん (ワッチョイ 3315-WL+L)2018/06/07(木) 17:38:09.15ID:XK0BD38x0
static::$piyoですね

219デフォルトの名無しさん (ワッチョイ b15d-ROyu)2018/06/07(木) 18:19:33.09ID:GEMO2qjs0
>>217
まんま>>216のマニュアルに書いてあるんだけど読んだの?

220デフォルトの名無しさん (ワッチョイ 3315-psTc)2018/06/07(木) 19:00:51.08ID:XK0BD38x0
>>219
書いてある?
あんまりインスタンス化して使ってるような例ないぽいけど

221デフォルトの名無しさん (ワッチョイ 3315-psTc)2018/06/07(木) 23:45:31.41ID:XK0BD38x0
>>217はClass Hogeとして
$aho = new Hoge()とするとインスタンス化した時にHogeの静的プロパティも初期化されるってことだよね。staticとparentがチェーンしてると訳わからんくなる

222デフォルトの名無しさん (ワッチョイ 3315-psTc)2018/06/07(木) 23:53:42.93ID:XK0BD38x0
Hogeを継承したpooクラスがあったらpooクラスのstaticプロパティも初期化されるけどselfとどう違うのかわからん。。

223デフォルトの名無しさん (ワッチョイ eb96-LHz9)2018/06/10(日) 00:33:54.58ID:4f+KYqKd0
トランプゲームみたいな感じで写真の入ってるカードを並べ替えさせるゲームを作ろうと思っています。

カードはドラッグして移動可能。
所定の□の近くにくるとカードは□に収まる

こういったことを簡単に実現できるおすすめの言語があったら教えてください。
使ったことのある言語はCとC#だけです。

224デフォルトの名無しさん (ワッチョイ 2176-QX4S)2018/06/10(日) 01:34:40.62ID:EYgmWGdc0
なぜPHPのスレで聞くのか?
てか、ハブリッシュするプラットフォームに依存する話しだから
それを言わないとだれも答えられない
ロジックだけ実装するならどんな言語でも作れる

225デフォルトの名無しさん (ワッチョイ eb96-LHz9)2018/06/10(日) 06:39:55.08ID:4f+KYqKd0
>>224
すいません。
スレタイ読み違えて誤爆しました・・・。

226デフォルトの名無しさん (ワッチョイ 92eb-m0US)2018/06/20(水) 05:45:13.05ID:gdouP6aq0
フォームで受け取ったデータをそのままディレクトリ名にしたいんですけど
ディレクトリ名に使われて危険な文字をはじく関数みたいなのってないですか?
. と / だけはじけば大丈夫なのかな

227デフォルトの名無しさん (ワッチョイ e976-81tK)2018/06/20(水) 08:36:32.28ID:CZWJJc7y0
入力できる文字を絞った方がいいよ
アルファベット数字のみとかにすれば一番無難
それ以外の文字が一文字でも入ってたらエラーで返す

228デフォルトの名無しさん (ワッチョイ 92eb-m0US)2018/06/20(水) 17:19:49.17ID:gdouP6aq0
なるほどー
ありがとうございます

ctype_alnumのおでましか

新着レスの表示
レスを投稿する