PHPに関する質問スレです
前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 9
http://mevius.5ch.net/test/read.cgi/tech/1513760420/
次スレは>>980以降
本文の1行目に以下を追加すること
!extend:on:vvvvv:1000:512
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
【PHP】下らねぇ質問はここに書き込みやがれ 10
レス数が1000を超えています。これ以上書き込みはできません。
1デフォルトの名無しさん (ワッチョイ cfe8-+65u)
2018/11/28(水) 17:08:46.02ID:Nb5yTkdM02デフォルトの名無しさん (ワッチョイ cfe8-+65u)
2018/11/28(水) 17:09:08.08ID:Nb5yTkdM0 関連リンク
■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
■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
2018/11/28(水) 23:49:26.47ID:9Jzc2TOo0
下痢が出そうで出ないのですがどうすればよいでしょうか?
お腹が下らないんです
お腹が下らないんです
4デフォルトの名無しさん (ワッチョイ 9ad2-TWbZ)
2018/11/29(木) 01:17:40.41ID:fezToc6/0 >>3
本屋に行け
本屋に行け
2018/11/30(金) 07:00:27.66ID:EXc3g5vT0
class FriendList implements IteratorAggregate{
private $list=[];
public function getIterator():Traversable
private $list=[];
public function getIterator():Traversable
2018/11/30(金) 07:14:24.64ID:EXc3g5vT0
↑誤爆すみません。↓よろしくお願いします。
---Friendlist.php---
<?php
class FriendList implements IteratorAggregate{
private $list=[];
public function getIterator():Traversable{
return new ArrayIterator($this->list);
}
public function add($p){
$this->list[]=$p;
}
これを他のクラスでインスタンス化して、foreachで反復処理する場合、
$friendl=new Friendlist();
foreach($friendl as $value){
}
どの部分でFriendlist.phpのgetIterator()が読み込まれるのでしょうか?
foreact部ですか?
---Friendlist.php---
<?php
class FriendList implements IteratorAggregate{
private $list=[];
public function getIterator():Traversable{
return new ArrayIterator($this->list);
}
public function add($p){
$this->list[]=$p;
}
これを他のクラスでインスタンス化して、foreachで反復処理する場合、
$friendl=new Friendlist();
foreach($friendl as $value){
}
どの部分でFriendlist.phpのgetIterator()が読み込まれるのでしょうか?
foreact部ですか?
2018/12/02(日) 15:51:21.58ID:JoV96n8f0
>>6
foreachでインスタンスを使うと、getIteratorが呼び出され、ArrayIteratorのコンストラクタにlist配列が引き渡され、ArrayIteratorインスタンスとしてiteratorが戻されます。
foreachでインスタンスを使うと、getIteratorが呼び出され、ArrayIteratorのコンストラクタにlist配列が引き渡され、ArrayIteratorインスタンスとしてiteratorが戻されます。
8デフォルトの名無しさん (ワッチョイ db08-yEox)
2018/12/02(日) 17:45:47.71ID:LBfjyA1g0 アクセスカウンターを自分のサイトに
付けたんだけど、シンプルにこれにしようかと思うんのだが、
やっぱ、30分~1時間の同じipは弾くとかの改造すべきなのだろうか?
なんか漠然と意識高い系のアクセスカウンターにしたい気もする
アドバイスお願いします。
https://www.php-factory.net/counter/01.php
付けたんだけど、シンプルにこれにしようかと思うんのだが、
やっぱ、30分~1時間の同じipは弾くとかの改造すべきなのだろうか?
なんか漠然と意識高い系のアクセスカウンターにしたい気もする
アドバイスお願いします。
https://www.php-factory.net/counter/01.php
2018/12/04(火) 13:06:18.62ID:lEYKJ99g0
>>8
そんなの自分次第なんだし好きにすれば?
コード読んでみたけど
同じIPが連続した時のみカウントしないようにはなってるが
あんま意味ないなこれw
クッキー食わせて指定時間以内ならカウントしないとかなら
ちょっとした改造でできるんだしやってみれば?
そんなの自分次第なんだし好きにすれば?
コード読んでみたけど
同じIPが連続した時のみカウントしないようにはなってるが
あんま意味ないなこれw
クッキー食わせて指定時間以内ならカウントしないとかなら
ちょっとした改造でできるんだしやってみれば?
10デフォルトの名無しさん (ワッチョイ d3ab-ineF)
2018/12/06(木) 12:15:37.67ID:m4YfQK1J0 Symfony2に関しての質問です。
EC-CUBEのプラグインを開発しているのですが、
例えば、管理画面の会員登録にradioを置きたいのですが、
どうやってフックすればいいのか、よく理解できていません。
というか、Hello Worldに到達できていません。
何かいい解説サイトとかないでしょうか?
EC-CUBEのプラグインを開発しているのですが、
例えば、管理画面の会員登録にradioを置きたいのですが、
どうやってフックすればいいのか、よく理解できていません。
というか、Hello Worldに到達できていません。
何かいい解説サイトとかないでしょうか?
2018/12/06(木) 23:33:16.69ID:O2YT1bAS0
鼻の穴に入れたらそのまま頭の上まで通すんだよ
2018/12/08(土) 07:24:27.43ID:LXRFdUog0
unsetについて教えてください
<?php
$x=10;
function fc(){
global $x;
unset($x);
return ++$x;
}
print $x;// 結果10
print fc();//結果 1
となるのですが、関数内で$xをグローバルにしても、
unset($x)すると、ローカルな$xを作ってしまう、ということなのでしょうか?
<?php
$x=10;
function fc(){
global $x;
unset($x);
return ++$x;
}
print $x;// 結果10
print fc();//結果 1
となるのですが、関数内で$xをグローバルにしても、
unset($x)すると、ローカルな$xを作ってしまう、ということなのでしょうか?
2018/12/08(土) 07:56:43.69ID:fWle4nJW0
unsetしたら無くなる
returnの行で
$x=0;$x=$x+1;
をしてる
return ++$y;
ならどうなんだろうね
returnの行で
$x=0;$x=$x+1;
をしてる
return ++$y;
ならどうなんだろうね
2018/12/08(土) 10:05:40.16ID:yelb6oUt0
>>12
最後にもう一度 print $x; をやってごらんよ
最後にもう一度 print $x; をやってごらんよ
2018/12/08(土) 10:13:33.95ID:RDjv1fsh0
>>12
http://php.net/manual/ja/function.unset.php
unset($x)の時の$xはローカル変数の$xになってます。
関数内でグローバル変数としての$xを破棄したいのなら
unset($GLOBALS[]);を使います。
そもそもグローバル変数とローカル変数のスコープが異なるのは、
関数内の変数の取り扱いで、グローバル変数に影響させない為
関数の外でunsetせず、関数内で安易にグローバル変数をunsetさせず、
特別な取り扱いをさせている、ということなのですね
http://php.net/manual/ja/function.unset.php
unset($x)の時の$xはローカル変数の$xになってます。
関数内でグローバル変数としての$xを破棄したいのなら
unset($GLOBALS[]);を使います。
そもそもグローバル変数とローカル変数のスコープが異なるのは、
関数内の変数の取り扱いで、グローバル変数に影響させない為
関数の外でunsetせず、関数内で安易にグローバル変数をunsetさせず、
特別な取り扱いをさせている、ということなのですね
2018/12/08(土) 12:13:49.89ID:iKq5+OXH0
>> 12
これ、notice 発生するでしょ。
学習時は、そういうの気にしたほうが良いですよ。
グローバルに使うケースなんてあまりないから、マニュアル見る良いきっかけにはなったけどw
これ、notice 発生するでしょ。
学習時は、そういうの気にしたほうが良いですよ。
グローバルに使うケースなんてあまりないから、マニュアル見る良いきっかけにはなったけどw
2018/12/08(土) 22:24:20.62ID:LXRFdUog0
2018/12/10(月) 12:14:54.37ID:5+iaWJW90
2018/12/10(月) 21:59:19.28ID:C/CCdKQw0
2018/12/11(火) 18:35:27.17ID:RBYf2Nxf0
>>19
学習・開発環境では
error_reporting = E_ALL
display_errors = On
log_errors = On
error_log = /path/to/error
で、本番(ネット上に公開する)環境では
log_errors = Off
として、エラーは出力せずログに記録するのみとする
(エラーを出力する事はセキュリティ的な穴になり得るから)
/path/to/error ってのはエラーを記録したいファイルへのパスってことね
書き込み権限与える事を忘れないよう
これやるとやらないとでは上達速度に相当差がつく
※本番環境では error_reporting のレベルを下げると書いてるものがたまにあるが
※大間違いなので真似しないよう
学習・開発環境では
error_reporting = E_ALL
display_errors = On
log_errors = On
error_log = /path/to/error
で、本番(ネット上に公開する)環境では
log_errors = Off
として、エラーは出力せずログに記録するのみとする
(エラーを出力する事はセキュリティ的な穴になり得るから)
/path/to/error ってのはエラーを記録したいファイルへのパスってことね
書き込み権限与える事を忘れないよう
これやるとやらないとでは上達速度に相当差がつく
※本番環境では error_reporting のレベルを下げると書いてるものがたまにあるが
※大間違いなので真似しないよう
2018/12/15(土) 17:50:00.18ID:jezVqobh0
小数点8桁を含むjsonをjson_decodeすると6桁に丸められて出力されるわこれ
どうしたらいいんだ。。
どうしたらいいんだ。。
2018/12/16(日) 00:15:00.03ID:QyRtehwq0
23デフォルトの名無しさん (ガックシ 06ff-ppkv)
2018/12/17(月) 10:59:38.41ID:S8NIVwif6 Laravelwwwwwwwww
2018/12/19(水) 00:15:29.67ID:kru7p0rZ0
・我慢する
・妥協する
好きな方を選んでいいぞ
・妥協する
好きな方を選んでいいぞ
25デフォルトの名無しさん (ワッチョイ 6d9b-1vVt)
2018/12/22(土) 23:51:36.73ID:uVsSh1bK0 age
2018/12/23(日) 09:55:59.13ID:imRge5LT0
laravelに関する質問って、どこですればいいですか?
2018/12/23(日) 11:05:13.96ID:1KLFWUpKr
Web板にある
2018/12/23(日) 11:08:44.03ID:I9bN9e1Bd
symfony2は?
2018/12/23(日) 12:02:07.91ID:1KLFWUpKr
同じくWebProg板にある
2018/12/23(日) 18:02:34.43ID:zMRMmtKp0
webprogのphpスレは初心者お断りみたいだから
このスレで質問したほうがいいけど
初心者お断りスレじゃなければwebprogの該当スレでいいんじゃね
age
このスレで質問したほうがいいけど
初心者お断りスレじゃなければwebprogの該当スレでいいんじゃね
age
2018/12/23(日) 19:28:28.95ID:dJkVsi530
エディタの配色テーマによっては、下記のようなスラッシュで囲んだ文字列がエラーっぽい色で表示されるんですが
書き方が間違っているんでしょうか?
$var = '/string/';
書き方が間違っているんでしょうか?
$var = '/string/';
2018/12/23(日) 20:41:01.87ID:erEBm9IL0
preg_matchとかの正規表現だと判断されてるとかかな?
2018/12/23(日) 21:28:49.02ID:dJkVsi530
2018/12/23(日) 22:14:03.14ID:C6NZW+q00
EC-CUBE3の質問って、ここでいいの?
2018/12/24(月) 14:10:57.93ID:233xwMnJ0
>>30
ありがとうございます。
@slot と @includeの違いについてなのですが、
@slotは、@endslopまでの範囲の記載内容をテンプレの変数に割り当て
@includeでは、連想配列をつかって、テンプレ側でキーに対応する値を表示させる、ということのようですが、
結果的に同じような役割のように思えます。
決定的な違いって何なのでしょうか?
ありがとうございます。
@slot と @includeの違いについてなのですが、
@slotは、@endslopまでの範囲の記載内容をテンプレの変数に割り当て
@includeでは、連想配列をつかって、テンプレ側でキーに対応する値を表示させる、ということのようですが、
結果的に同じような役割のように思えます。
決定的な違いって何なのでしょうか?
2018/12/25(火) 01:56:48.71ID:NrxUWHxX0
機能的な違いはない
htmlタグを含む場合はslotのほうが見やすい(書きやすい)
と誰かが言ってた
htmlタグを含む場合はslotのほうが見やすい(書きやすい)
と誰かが言ってた
2018/12/25(火) 06:51:17.65ID:+RHRyNBd0
ありがとうございました!スッキリしました!
2018/12/29(土) 02:00:22.36ID:qNy1dmrU0
larabelを使ってます。
その機能でオートローダーのスタティックを利用してます。
useしてnewするのは不要にってます
一方、larabelにはdi機能というのもあるようです。
どちらもnew不要ですがどちらの使い分けとかパターンわけなど何か使い分けるヒントをお願いします
その機能でオートローダーのスタティックを利用してます。
useしてnewするのは不要にってます
一方、larabelにはdi機能というのもあるようです。
どちらもnew不要ですがどちらの使い分けとかパターンわけなど何か使い分けるヒントをお願いします
2018/12/29(土) 17:02:58.05ID:CFGewoy6r
class作るとき必ずinterfaceって作るものなの?
2019/01/08(火) 18:59:06.54ID:odmObNXY0
おめでとうございます。今年もよろしくお願いします。
laravelの質問なのですが、ご教授くださいましたら幸いです。
class HelloController extends Controller{
public function index(Request $request,Response $response){
$html =<<<EOF
<html>
<body>
<h1>request</h1>
<p>{$request}</p>
<h1>response</h1>
<p>{$response}</p>
</body>
</html>
EOF;
$response->setContent($html);
return $response;
}
}
この最終行から3行目の,return $responseを、return $htmlとしても、ブラウザに表示される内容は同じです。
return $htmlで表示させないで、responseのcontentにhtmlコードを追加してreturnしている理由は、何かあるのでしょうか?
laravelの質問なのですが、ご教授くださいましたら幸いです。
class HelloController extends Controller{
public function index(Request $request,Response $response){
$html =<<<EOF
<html>
<body>
<h1>request</h1>
<p>{$request}</p>
<h1>response</h1>
<p>{$response}</p>
</body>
</html>
EOF;
$response->setContent($html);
return $response;
}
}
この最終行から3行目の,return $responseを、return $htmlとしても、ブラウザに表示される内容は同じです。
return $htmlで表示させないで、responseのcontentにhtmlコードを追加してreturnしている理由は、何かあるのでしょうか?
2019/01/08(火) 21:29:14.91ID:IOloucApr
>>40
ララベルの仕様をみてsetContentはなんと書いてあるの?
ララベルの仕様をみてsetContentはなんと書いてあるの?
2019/01/09(水) 11:51:40.20ID:rfEx/2+M0
>>41
ありがとうございます。
setContentは、Responseでクライアントに戻すHTMLソースが格納されてます。
HTMLソースを返すのなら、return $htmlを返しても同じなのかな、と思いまして質問しました。
ありがとうございます。
setContentは、Responseでクライアントに戻すHTMLソースが格納されてます。
HTMLソースを返すのなら、return $htmlを返しても同じなのかな、と思いまして質問しました。
43デフォルトの名無しさん (ワッチョイ fb8c-6SQQ)
2019/01/09(水) 18:55:24.82ID:MSH+15Q+0 掲示板作ってるんだけど、更新すると連投しちゃうのを防ぎたいんだけどどうすればいい?
POSTの中身を消して分岐させるとかイメージでいいの?
POSTの中身を消して分岐させるとかイメージでいいの?
2019/01/09(水) 19:52:02.31ID:4rDfBKqR0
>>43
登録後にブラウザの更新ボタンが押されると送信済みのPOSTデータが再送信され結果2重登録してしまうって事だよね?
なら↓のやり方でどうか
画面アクセス毎にセッションにランダム文字列を保存&出力htmlに<INPUT type="hidden">で保存した文字列を埋め込む
登録処理時、セッションに文字列が無い場合やPOSTされた文字列とセッションに保存された文字列が一致しない場合はNGとする
登録後にブラウザの更新ボタンが押されると送信済みのPOSTデータが再送信され結果2重登録してしまうって事だよね?
なら↓のやり方でどうか
画面アクセス毎にセッションにランダム文字列を保存&出力htmlに<INPUT type="hidden">で保存した文字列を埋め込む
登録処理時、セッションに文字列が無い場合やPOSTされた文字列とセッションに保存された文字列が一致しない場合はNGとする
2019/01/10(木) 12:14:58.77ID:DtkiUTJR0
戻って更新なら連投の可能性もわかるけど
ただの更新でなんでそんな状況になるのか
ただの更新でなんでそんな状況になるのか
2019/01/10(木) 21:45:56.88ID:W9NULntl0
投稿内容をどこに保存しているかによるけれど
Requestに保存されてるんだからって言えばいい?
Requestに保存されてるんだからって言えばいい?
2019/01/11(金) 00:52:34.47ID:Tbw1O8r40
indexから同じindexにpostしてindexで更新してるってことかな?
普通はpost用のコントローラに渡して実行後にindexにリダイレクトするから
戻るおさん限りは更新しても問題にはならんと思うのだけど
チャットほどじゃないにせよリロードが出来ない掲示板なんて…
まあ手動じゃなくて更新データはスクリプトで非同期でとってくりゃいいけど
サーバでどうにかなればプッシュすれば利便性もUP
普通はpost用のコントローラに渡して実行後にindexにリダイレクトするから
戻るおさん限りは更新しても問題にはならんと思うのだけど
チャットほどじゃないにせよリロードが出来ない掲示板なんて…
まあ手動じゃなくて更新データはスクリプトで非同期でとってくりゃいいけど
サーバでどうにかなればプッシュすれば利便性もUP
2019/01/11(金) 09:10:05.09ID:5Sr7Z6Dc0
ディベロッパーツールで確認してごらんよ
POSTつかってリロードするとブラウザ内でPOST情報がどうなっているか
POSTつかってリロードするとブラウザ内でPOST情報がどうなっているか
49デフォルトの名無しさん (ワッチョイ ce8c-1FXn)
2019/01/11(金) 18:16:54.21ID:0MVnI2bb0 >>43
同じ掲示板にジャンプして書き込まれたPOSTの中身を確認してテキストに保存してって感じで作ってる
でもtime変数使ってページ読み込んだ時とボタン押されたときの変数で一致したら書き込むって感じでやってみるわ
同じ掲示板にジャンプして書き込まれたPOSTの中身を確認してテキストに保存してって感じで作ってる
でもtime変数使ってページ読み込んだ時とボタン押されたときの変数で一致したら書き込むって感じでやってみるわ
2019/01/11(金) 18:35:21.28ID:5tFH3fBo0
POST後はLocationでリダイレクトしちゃうな
2019/01/11(金) 22:43:36.05ID:4vkkoNusM
2019/01/12(土) 00:51:32.95ID:IAz54C400
Rails など、普通のフレームワークの作り方では、
Post したら別の画面、一覧画面などに移動する
ルーティング(routes.rb)に、CRUD が定義されている。
追加(C)・更新(U)されたら、一覧(R)に戻る
一覧に戻ると、追加・更新されたのを見れる
Post したら別の画面、一覧画面などに移動する
ルーティング(routes.rb)に、CRUD が定義されている。
追加(C)・更新(U)されたら、一覧(R)に戻る
一覧に戻ると、追加・更新されたのを見れる
2019/01/12(土) 08:15:39.30ID:9TmqbdMf0
戻るに対応するなら
セッションでトランザクション処理のようなことをやればいいだけだけど
更新するだけで連投されるなんていうミラクル仕様に突っ込んでるだけで
それとこれは話が別よ
セッションでトランザクション処理のようなことをやればいいだけだけど
更新するだけで連投されるなんていうミラクル仕様に突っ込んでるだけで
それとこれは話が別よ
54デフォルトの名無しさん (ワッチョイ 16da-aYY/)
2019/01/12(土) 11:26:47.84ID:dtC7PwsV02019/01/12(土) 11:47:59.75ID:JRnnmwIl0
他人のファイルに書き込みたいのですが、うまくいきません。
<?php
$file = 'https://mevius.5ch.net/test/read.cgi/tech/1543392526/l50';
file_put_contents($file, 'shine');
?>
なぜでしょうか?
<?php
$file = 'https://mevius.5ch.net/test/read.cgi/tech/1543392526/l50';
file_put_contents($file, 'shine');
?>
なぜでしょうか?
2019/01/12(土) 11:55:12.21ID:wHUCWNv00
phpの質問をお願いします
class HelloRequest extends FormRequest
class HelloRequest extends FormRequest
2019/01/12(土) 11:58:58.16ID:wHUCWNv00
すみません、誤射でした><
class HelloRequest extends FormRequest{
public function authorize(){
if($this->path() =='hello'){
return true;
}}}
if文にあるthis->path()は、validationメソッドですが
スーパークラスのFormRequestはControllerを継承してるのでしょうか?
また、laravelのクラスの継承図のようなものってどこかにありますか?
class HelloRequest extends FormRequest{
public function authorize(){
if($this->path() =='hello'){
return true;
}}}
if文にあるthis->path()は、validationメソッドですが
スーパークラスのFormRequestはControllerを継承してるのでしょうか?
また、laravelのクラスの継承図のようなものってどこかにありますか?
2019/01/12(土) 13:04:51.50ID:9TmqbdMf0
>>55
file_put_contentsは使わないけどそれ以前にPOSTする為のパラメーターが足りてない
どういうことか理解できるならstream_context_createのページ見てみればいい
それ踏まえて方法はいくつかあるがcURLが一般的なので「PHP cURL POST」でググればいいよ
file_put_contentsは使わないけどそれ以前にPOSTする為のパラメーターが足りてない
どういうことか理解できるならstream_context_createのページ見てみればいい
それ踏まえて方法はいくつかあるがcURLが一般的なので「PHP cURL POST」でググればいいよ
2019/01/12(土) 16:57:28.50ID:9TmqbdMf0
>>57
Laravelは使わないから知らないがLaravel APIでググったらこんなん出てきたけども
https://laravel.com/api/5.7/Illuminate/Foundation/Http/FormRequest.html
あとは頑張れ
https://github.com/laravel/framework/blob/5.7/src/Illuminate/Foundation/Http/FormRequest.php
Laravelは使わないから知らないがLaravel APIでググったらこんなん出てきたけども
https://laravel.com/api/5.7/Illuminate/Foundation/Http/FormRequest.html
あとは頑張れ
https://github.com/laravel/framework/blob/5.7/src/Illuminate/Foundation/Http/FormRequest.php
2019/01/12(土) 21:14:39.18ID:zfAqW2URx
cakephp 2
find x3回
を
(unbind, find) x3回
にしたら8倍速くなった
やってること合ってる?
find x3回
を
(unbind, find) x3回
にしたら8倍速くなった
やってること合ってる?
2019/01/13(日) 01:34:59.40ID:mcoRrcQP0
超くだらない質問なんですが
PHPにパスワードを保存しようと思うのですが
PHPのソースコードが読まれないか心配です
いちおうブラウザからはソースを選択しても表示されないのですが
もしかしたら何らかの方法で読まれる可能性もありそうで
心配で寝れません
教えて下さい
お願いします
PHPにパスワードを保存しようと思うのですが
PHPのソースコードが読まれないか心配です
いちおうブラウザからはソースを選択しても表示されないのですが
もしかしたら何らかの方法で読まれる可能性もありそうで
心配で寝れません
教えて下さい
お願いします
2019/01/13(日) 04:56:00.12ID:5HRwOXUS0
環境変数で入れるかせめてハッシュ化する
2019/01/13(日) 07:19:52.26ID:vFHHKg450
パスワードをスクリプトから分離して
phpからは参照出来るが外から直接参照できないとこ(ドキュメントルートの上とかDBとか)に置く
ファイルに保存するならファイル名は.htを先頭につけるといい
パスワードはハッシュ化しておく
これらが有効なのは放置してサーバの仕様変更に気づかなかったり(php廃止とか)
設定ミスってphpをtxtとして配信してしまうようなケースのみ
そのへんに問題なくてphpのソースコードが見られてしまうような場合は
もう何もかもがだめなことが多いので心配するだけ無駄だわ
phpからは参照出来るが外から直接参照できないとこ(ドキュメントルートの上とかDBとか)に置く
ファイルに保存するならファイル名は.htを先頭につけるといい
パスワードはハッシュ化しておく
これらが有効なのは放置してサーバの仕様変更に気づかなかったり(php廃止とか)
設定ミスってphpをtxtとして配信してしまうようなケースのみ
そのへんに問題なくてphpのソースコードが見られてしまうような場合は
もう何もかもがだめなことが多いので心配するだけ無駄だわ
2019/01/13(日) 10:01:59.70ID:c0Flhv7n0
2019/01/13(日) 12:25:48.51ID:e78RN+cdr
Laravel使いたいのに絶対にcakePHP!!と言われて仕方なくそっちでやってる
2019/01/14(月) 07:36:31.79ID:qdlB9M7a0
すみません、助けてください
Vagrantが警告出てインストール出来ない環境って
何が問題なんでしょうか?
インストールが強制終了されます
バージョンは最新です
何が邪魔してるのでしょうか?
https://i.imgur.com/3jCEdpw.png
Vagrantが警告出てインストール出来ない環境って
何が問題なんでしょうか?
インストールが強制終了されます
バージョンは最新です
何が邪魔してるのでしょうか?
https://i.imgur.com/3jCEdpw.png
2019/01/14(月) 11:20:16.98ID:WRAeIDjcr
知らん
てか普通は作ったサポートに聞くだろ
なんで関係ない他人に聞くんだよ?
てか普通は作ったサポートに聞くだろ
なんで関係ない他人に聞くんだよ?
2019/01/14(月) 12:39:08.03ID:Wx7rBQ7H0
PHPの質問でもないしなぁ
2019/01/14(月) 21:58:11.38ID:mB9ZyxQs0
2019/01/17(木) 02:54:30.64ID:PVRvfBHL0
今でも使えるリファレンス本って何があるのでしょうか?
出版されてるものって古いですけど使えます?
出版されてるものって古いですけど使えます?
2019/01/17(木) 11:02:45.61ID:oOFYk3pkr
phpはほぼ変わってないからよほど古くない限りどれでもいいからさっさとやれ
2019/01/22(火) 15:38:00.61ID:+epunpvy0
laravel マイグレーション、シーディング処理について教えてください
現象:マイグレーションは作成できた。シーディングの実行で、columnが無い、というエラーが出る
----- migration --------
class CreatePeopleTable extends Migration{
pubulic function up(){
Schema::create('people',function(Blueprint $table){
$table->increments('id');
$table->string('name');
$table->timestamps();
現象:マイグレーションは作成できた。シーディングの実行で、columnが無い、というエラーが出る
----- migration --------
class CreatePeopleTable extends Migration{
pubulic function up(){
Schema::create('people',function(Blueprint $table){
$table->increments('id');
$table->string('name');
$table->timestamps();
2019/01/22(火) 15:54:41.18ID:+epunpvy0
laravelついて教えてください。現象:マイグレーションでテーブルは作成できた。シーディングの実行で、columnが無い、というエラーが出る
//----- migration --------
class CreatePeopleTable extends Migration{
pubulic function up(){
Schema::create('people',function(Blueprint $table){
$table->increments('id');
$table->string('name');
$table->integer('age');
$table->timestamps();
});}
//----- Seeder -----
publid function run(){
$param=['name'=>'suzu','age'=>20,]:
DB::table('people')->insert($param);
$param=['name'=>'mizu','age'=>24];
DB::table('peope')->insert($param);}
//----- Seeding実行 -----
php artisan db:seed
//----- エラー -----
General error:table people has no column named name(SQL:insert into "people"("name","age") value(suzu,20))
catch(Exception $e){//・・・
$query,$this->prepareBindings($bindings),$e
マイグレーションで作成したテーブルにデータが登録できないのはなぜなのでしょうか?よろしくお願いします。
//----- migration --------
class CreatePeopleTable extends Migration{
pubulic function up(){
Schema::create('people',function(Blueprint $table){
$table->increments('id');
$table->string('name');
$table->integer('age');
$table->timestamps();
});}
//----- Seeder -----
publid function run(){
$param=['name'=>'suzu','age'=>20,]:
DB::table('people')->insert($param);
$param=['name'=>'mizu','age'=>24];
DB::table('peope')->insert($param);}
//----- Seeding実行 -----
php artisan db:seed
//----- エラー -----
General error:table people has no column named name(SQL:insert into "people"("name","age") value(suzu,20))
catch(Exception $e){//・・・
$query,$this->prepareBindings($bindings),$e
マイグレーションで作成したテーブルにデータが登録できないのはなぜなのでしょうか?よろしくお願いします。
2019/01/22(火) 16:28:02.93ID:+epunpvy0
すみません、なんだか分かりませんでしたが自己解決しました。
お騒がせしました。
お騒がせしました。
75デフォルトの名無しさん (ワッチョイ 9375-qnWR)
2019/01/23(水) 08:11:47.51ID:3lDydxt30 練習兼ねて小規模&少機能で簡単なネットショップを作ろうとしてるのですが、設計段階でファイルがごちゃごちゃになってしまいそうです
フォルダの作り方やファイルの分け方はどんな感じでやればスッキリ分かりやすくなりますかね?
フォルダの作り方やファイルの分け方はどんな感じでやればスッキリ分かりやすくなりますかね?
2019/01/23(水) 08:31:27.16ID:Kmczp3SP0
>>75
小規模でもフレームワーク使うのがいいよ
小規模でもフレームワーク使うのがいいよ
2019/01/23(水) 09:34:11.34ID:PjIYOotT0
フレームワーク自体のメンテが厄介だから入れずに済むのであれば入れない方がいいよ
2019/01/23(水) 11:27:05.16ID:aXKStg7n0
rep2という2chビューアのうち、DB連携部分のみうまく動かずデバッグしています。
■環境
php7.2で、phpinfo()には mysqli,mysqlnd,pdo_mysql
いずれもバージョン情報が表示されてて、必要な環境は準備できていると思っています。
■現象
$db = \DB::connect($dsn);
を実行すると、"DB Error: no database selected"というエラーになります。実際やりたいこと(imagecache2の利用)もできません。
■調べたこと
$this->comment('dsn=' . var_export($dsn, true));
の結果、以下の通り$dsnは正しいように見えます。
dsn='mysqli://rep2:password@localhost:3306/rep2'
しかし、以下のようにすると…
$db = \DB::connect($dsn);
$this->comment('db=' . var_export($db, true));
配列にusernameやpasswordが代入されていないようです。
'dsn' =>
array (
'phptype' => 'mysqli',
'dbsyntax' => 'mysqli',
'username' => false,
'password' => false,
'protocol' => false,
'hostspec' => false,
'port' => false,
'socket' => false,
'database' => false,
ではなぜ代入されないのか、がわからず。教えていただけないでしょうか。
■環境
php7.2で、phpinfo()には mysqli,mysqlnd,pdo_mysql
いずれもバージョン情報が表示されてて、必要な環境は準備できていると思っています。
■現象
$db = \DB::connect($dsn);
を実行すると、"DB Error: no database selected"というエラーになります。実際やりたいこと(imagecache2の利用)もできません。
■調べたこと
$this->comment('dsn=' . var_export($dsn, true));
の結果、以下の通り$dsnは正しいように見えます。
dsn='mysqli://rep2:password@localhost:3306/rep2'
しかし、以下のようにすると…
$db = \DB::connect($dsn);
$this->comment('db=' . var_export($db, true));
配列にusernameやpasswordが代入されていないようです。
'dsn' =>
array (
'phptype' => 'mysqli',
'dbsyntax' => 'mysqli',
'username' => false,
'password' => false,
'protocol' => false,
'hostspec' => false,
'port' => false,
'socket' => false,
'database' => false,
ではなぜ代入されないのか、がわからず。教えていただけないでしょうか。
2019/01/23(水) 11:46:36.90ID:tAarVqiS0
よく知らないけど、
connect は、データソースへつなぐだけじゃないの?
SQL のselect みたいなものは無いの?
CRUD も検索して
connect は、データソースへつなぐだけじゃないの?
SQL のselect みたいなものは無いの?
CRUD も検索して
80デフォルトの名無しさん (ワッチョイ 49ba-L3L3)
2019/01/24(木) 00:24:18.63ID:cPFOMtSZ02019/01/24(木) 19:50:20.26ID:kFfuye3h0
標準関数にズバリのものはないと思うけど探せば誰かコード書いてるはず
簡単なのでよければsubstr使うとか
parse_urlしたのを組み直すかそのあたりで
./../とかも考慮するならちょっと面倒になってくるが
簡単なのでよければsubstr使うとか
parse_urlしたのを組み直すかそのあたりで
./../とかも考慮するならちょっと面倒になってくるが
2019/01/24(木) 23:16:07.50ID:TFfQdKfR0
2019/01/24(木) 23:50:15.43ID:1L/prd7r0
/ の2個以上の連続を一つに置換する操作する処理を見かけたことあるなぁ。。。
あんまりきれいじゃない気がするけどw
あんまりきれいじゃない気がするけどw
2019/01/24(木) 23:57:10.70ID:+WsHUVaQ0
ちょっと乱暴かも知れませんが、スラッシュが二重になっても
パスとしてはエラーにはならないと思います(見た目汚いですが)
パスとしてはエラーにはならないと思います(見た目汚いですが)
85デフォルトの名無しさん (ワッチョイ 49ba-L3L3)
2019/01/25(金) 23:38:05.77ID:H/r4QqDk0 echo 'aaa';
echo('aaa');
include_once 'path/file.php';
include_once( 'path/file.php');
のようにカッコが有っても無くても良い関数がありますが、
php上級者の人はどっちを使うのでしょうか?
理由も教えてけろ
echo('aaa');
include_once 'path/file.php';
include_once( 'path/file.php');
のようにカッコが有っても無くても良い関数がありますが、
php上級者の人はどっちを使うのでしょうか?
理由も教えてけろ
2019/01/26(土) 17:25:33.44ID:y5VTPiFL0
関数・・・・・カッコを付ける
言語構造・・・カッコを付けない
echo も include も言語構造。
迷ったらマニュアルの例文をコピペ。
言語構造・・・カッコを付けない
echo も include も言語構造。
迷ったらマニュアルの例文をコピペ。
87デフォルトの名無しさん (オッペケ Srf1-ZdbU)
2019/01/26(土) 17:57:25.92ID:WSFNrCYQr phpの関数の戻り値って望む型の他にfalseも返ることがあるよね
そんで7からは戻り値の型宣言いれて戻り値の型が違ったらTypeError出す
もうごちゃごちゃだね
そんで7からは戻り値の型宣言いれて戻り値の型が違ったらTypeError出す
もうごちゃごちゃだね
2019/01/26(土) 18:18:29.92ID:HzZF0HWM0
言っていることがごちゃごちゃだってことは分かった
2019/01/26(土) 18:58:01.87ID:exLOU4gz0
2019/01/28(月) 07:17:11.62ID:X4/3tVW10
laravelに関して質問させてください。
Eloqentのモデルに関してです。
<?php
namespace ---
use ---\Model
class Person extends Model{
public function scopeAgeGreaterThan($query,$n){
return $query->where('age',$n);
}
コード中の$queryは、$thisとしても同じ結果が得られます。
$thisではなく、引数$queryを利用する意味は、何かあるのでしょうか?
もしあるのなら、その意味、意義を教えていただけないでしょうか?
よろしくお願いします。
Eloqentのモデルに関してです。
<?php
namespace ---
use ---\Model
class Person extends Model{
public function scopeAgeGreaterThan($query,$n){
return $query->where('age',$n);
}
コード中の$queryは、$thisとしても同じ結果が得られます。
$thisではなく、引数$queryを利用する意味は、何かあるのでしょうか?
もしあるのなら、その意味、意義を教えていただけないでしょうか?
よろしくお願いします。
2019/01/29(火) 09:22:43.65ID:YbHXkxp70
$thisは自分自身のインスタンスからテーブル情報を取得
$queryはクエリビルダーを使ってテーブル情報を取得
$queryはクエリビルダーを使ってテーブル情報を取得
92デフォルトの名無しさん (ワッチョイ 49ba-L3L3)
2019/01/29(火) 21:20:14.58ID:KhUtNVBn0 ttps://stackoverflow.com/questions/4366730/how-do-i-check-if-a-string-contains-a-specific-word
の5831の回答で、
if (\strpos($a, 'are') !== false) {
の部分ですが、if( の次のスラッシュは何ですか?
の5831の回答で、
if (\strpos($a, 'are') !== false) {
の部分ですが、if( の次のスラッシュは何ですか?
2019/01/29(火) 21:54:10.57ID:AnpnZGSz0
そのサイトの下の方では、\ は付いていないから、気にしなくてよいのでは?
<?php
$haystack = 'how are you';
$needle = 'are';
if (strpos($haystack,$needle) !== false) {
echo "$haystack contains $needle";
}
?>
<?php
$haystack = 'how are you';
$needle = 'are';
if (strpos($haystack,$needle) !== false) {
echo "$haystack contains $needle";
}
?>
94デフォルトの名無しさん (ワッチョイ 49ba-L3L3)
2019/01/29(火) 22:00:03.73ID:KhUtNVBn02019/01/30(水) 00:01:17.63ID:T9WgAkKs0
Ruby には、偽がnil, false の2つしかないけど、
JavaScript, Python, PHP には、偽が10個ぐらいある
0, 0文字列、空配列とか、様々な可能性が排除できない。
少しでも表現を変えると、バグる
例えば、それをtrue に変えると、様々な偽の条件が存在してしまう。
0 の時とか、空配列とか
他の言語は、Rubyに比べて、バグる確率が高い
JavaScript, Python, PHP には、偽が10個ぐらいある
0, 0文字列、空配列とか、様々な可能性が排除できない。
少しでも表現を変えると、バグる
例えば、それをtrue に変えると、様々な偽の条件が存在してしまう。
0 の時とか、空配列とか
他の言語は、Rubyに比べて、バグる確率が高い
2019/01/30(水) 00:31:11.46ID:Xc33HHDg0
>>94
strposは0を返しうるから if (!strpos(...)) だと false が返ってきた(見つからなかった)のか 0 が返ってきた(先頭に見つかった)のか判別出来ない
http://php.net/manual/ja/function.strpos.php
の返り値の警告の部分
strposは0を返しうるから if (!strpos(...)) だと false が返ってきた(見つからなかった)のか 0 が返ってきた(先頭に見つかった)のか判別出来ない
http://php.net/manual/ja/function.strpos.php
の返り値の警告の部分
2019/01/30(水) 00:54:29.54ID:T9WgAkKs0
Ruby 以外の言語では、
!= など、普通の比較演算子では、偽が10個ぐらいあるから危険!
!== などの厳密比較演算子を使うべし!
!= など、普通の比較演算子では、偽が10個ぐらいあるから危険!
!== などの厳密比較演算子を使うべし!
2019/01/30(水) 06:04:31.07ID:Bo5lehOR0
2019/01/30(水) 06:22:12.32ID:Bo5lehOR0
>>92のサイト見てなかったけどおそらく別の名前空間内で使うこと想定して
回答したんだろうね
でも例えばこんなコードでも書かない限りは不要
namespace my;
function strpos(string $haystack, string $needle, int $offset = 0)
{
$retval = \strpos($haystack, $needle, $offset);
if ($retval === false) {
return false;
} else {
return $retval + 1;
}
}
var_dump(\strpos('abcde', 'c'));
var_dump(strpos('abcde', 'c'));
回答したんだろうね
でも例えばこんなコードでも書かない限りは不要
namespace my;
function strpos(string $haystack, string $needle, int $offset = 0)
{
$retval = \strpos($haystack, $needle, $offset);
if ($retval === false) {
return false;
} else {
return $retval + 1;
}
}
var_dump(\strpos('abcde', 'c'));
var_dump(strpos('abcde', 'c'));
100デフォルトの名無しさん (ワッチョイ 6eba-L3L3)
2019/01/30(水) 16:29:27.79ID:/IyzrTjj0 >>95
良く分かりました。
良く分かりました。
101デフォルトの名無しさん (ワッチョイ 6eba-L3L3)
2019/01/30(水) 16:32:02.78ID:/IyzrTjj0 >>99
$retval = \strpos($haystack, $needle, $offset);
これだと、どこかよその名前空間で定義されているstrposと言う意味ですか?
$retval = \MY_NameSpace\strpos($haystack, $needle, $offset);
と書くと、特定の名前空間を絶対パスで指定出来るという理解で良いですか?
$retval = \strpos($haystack, $needle, $offset);
これだと、どこかよその名前空間で定義されているstrposと言う意味ですか?
$retval = \MY_NameSpace\strpos($haystack, $needle, $offset);
と書くと、特定の名前空間を絶対パスで指定出来るという理解で良いですか?
2019/01/30(水) 22:13:35.19ID:Bo5lehOR0
>>101
>どこかよその名前空間で定義されているstrposと言う意味ですか?
どこかっていうか標準関数のstrposことなんだけど
これはnamespace myで定義しなおした標準関数strposのラッパー関数
もしここで
>$retval = \strpos($haystack, $needle, $offset);
に\をつけないと自身のstrposをさしてしまうので
この関数自体は標準関数のラッパーに過ぎず実装を持たないので正しく動かない
へたしたら再帰処理でループに陥るのと同じ感じになってしまう
>どこかよその名前空間で定義されているstrposと言う意味ですか?
どこかっていうか標準関数のstrposことなんだけど
これはnamespace myで定義しなおした標準関数strposのラッパー関数
もしここで
>$retval = \strpos($haystack, $needle, $offset);
に\をつけないと自身のstrposをさしてしまうので
この関数自体は標準関数のラッパーに過ぎず実装を持たないので正しく動かない
へたしたら再帰処理でループに陥るのと同じ感じになってしまう
2019/01/30(水) 22:22:17.50ID:Bo5lehOR0
もう1つの質問に答えてなかった
>$retval = \MY_NameSpace\strpos($haystack, $needle, $offset);
>と書くと、特定の名前空間を絶対パスで指定出来るという理解で良いですか?
まあそんな理解で大丈夫かと
>$retval = \MY_NameSpace\strpos($haystack, $needle, $offset);
>と書くと、特定の名前空間を絶対パスで指定出来るという理解で良いですか?
まあそんな理解で大丈夫かと
104デフォルトの名無しさん (ワッチョイ ffba-zj6v)
2019/01/31(木) 13:36:09.97ID:8UUA+SfH0 >>103
ありがとうございます。
もう一つ教えて下さい。
自分で作ったライブラリ関数群は、自分用の名前空間を定義して
例えば、こんな感じで
namespace MyLib{
function myfunc1(){
・・・
};
function myfunc2(){
・・・
};
}
のように、名前空間に入れておくべきですか?
それとも名前空間無しにしておくほうが使い易いですか?
ありがとうございます。
もう一つ教えて下さい。
自分で作ったライブラリ関数群は、自分用の名前空間を定義して
例えば、こんな感じで
namespace MyLib{
function myfunc1(){
・・・
};
function myfunc2(){
・・・
};
}
のように、名前空間に入れておくべきですか?
それとも名前空間無しにしておくほうが使い易いですか?
2019/01/31(木) 14:50:10.17ID:87rKAAGWa
ユーザー定義関数の引数を変数にした時、渡された変数名も同じでいいんですよね?下の様に
でもいろんな説明みると変更してることが多いけどなんで?
function func($hoge){
・・・
}
func($hoge);
でもいろんな説明みると変更してることが多いけどなんで?
function func($hoge){
・・・
}
func($hoge);
2019/01/31(木) 15:28:08.69ID:hjN211+T0
分けて考えてはいけないという誤解を与えないため
2019/01/31(木) 15:28:24.41ID:rgWv2NOA0
>>104
名前空間を指定しないということは
標準関数や内部クラスと同じグローバルの名前空間(\)に属することになるので
もちろんコーディングする上での利便性はいい
名前空間がPHP5.3から導入されたように昔はなかったわけだし「やりよう」によっては問題にならない
例えば被ってしまってエラー出たら関数名を変えるとか
被る可能性がかぎりなくないような風変わりな関数名をつけるとか
先人がその「やりよう」が面倒だったから導入したんだけど
実際にはよほど巨大なプロジェクトでもない限り問題は起きないと思う
あとは名前空間の概要見て決めたらいいんじゃないかな
http://php.net/manual/ja/language.namespaces.rationale.php
他人に使ってもらうことを考慮するならつけるべきだけどね
名前空間を指定しないということは
標準関数や内部クラスと同じグローバルの名前空間(\)に属することになるので
もちろんコーディングする上での利便性はいい
名前空間がPHP5.3から導入されたように昔はなかったわけだし「やりよう」によっては問題にならない
例えば被ってしまってエラー出たら関数名を変えるとか
被る可能性がかぎりなくないような風変わりな関数名をつけるとか
先人がその「やりよう」が面倒だったから導入したんだけど
実際にはよほど巨大なプロジェクトでもない限り問題は起きないと思う
あとは名前空間の概要見て決めたらいいんじゃないかな
http://php.net/manual/ja/language.namespaces.rationale.php
他人に使ってもらうことを考慮するならつけるべきだけどね
108デフォルトの名無しさん (ワッチョイ ffba-zj6v)
2019/01/31(木) 19:50:03.57ID:8UUA+SfH0 >>107
解説ありがとうございました。
ところで関数にprivateやpublicを付けられるのはclassの中だけですか?
namespaceの中でprivateな関数を定義することは出来ませんか?
つまり、そのnamespaceの中だけで作業する為の関数で、
外部に公開したくない関数です。
解説ありがとうございました。
ところで関数にprivateやpublicを付けられるのはclassの中だけですか?
namespaceの中でprivateな関数を定義することは出来ませんか?
つまり、そのnamespaceの中だけで作業する為の関数で、
外部に公開したくない関数です。
109デフォルトの名無しさん (ワッチョイ 7f89-SDwV)
2019/02/06(水) 14:06:21.85ID:7EDRIJEy0 質問させてください。
配列で「りんご・バナナ・みかん・りんご・みかん・りんご」とあった場合、
これを「りんご1・バナナ1・みかん1・りんご2・みかん2・りんご3」
みたいに同じものが何個目かを書き加えたいのです。
どうやるといいしょうか?
配列で「りんご・バナナ・みかん・りんご・みかん・りんご」とあった場合、
これを「りんご1・バナナ1・みかん1・りんご2・みかん2・りんご3」
みたいに同じものが何個目かを書き加えたいのです。
どうやるといいしょうか?
2019/02/06(水) 22:56:42.64ID:7o71stsH0
$data=array('りんご','バナナ','みかん','りんご','みかん','りんご');
$result=$count=array();
foreach( $data as $key => $value ){
if( isset($count[$value]) ){
++$count[$value];
}else{
$count[$value]=1;
}
$result[$key]=$value.$count[$value];
}
var_dump($result);
$result=$count=array();
foreach( $data as $key => $value ){
if( isset($count[$value]) ){
++$count[$value];
}else{
$count[$value]=1;
}
$result[$key]=$value.$count[$value];
}
var_dump($result);
2019/02/07(木) 09:46:48.28ID:zNwO6Ncy0
print_r(array_count_values($data));
でよくないすか?
でよくないすか?
2019/02/07(木) 09:47:44.44ID:zNwO6Ncy0
よく質問読んでなかったw
2019/02/07(木) 11:09:21.09ID:YOzllYWE0
なんで宿題をやってあげちゃうの
2019/02/07(木) 12:36:05.22ID:2KroeUTW0
暇だったからでは
2019/02/07(木) 21:45:05.72ID:EixwHHP40
array_multisort()の配列が多次元だった場合はどこを比較してるの?
$ar[] = array(1);
$ar[] = array(1);
$ar[] = array(2);
$ar[] = array(2);
$ar2 = array(1,2,3,4);
array_multisort($ar, SORT_DESC, $ar2);
Array
(
[0] => 3
[1] => 4
[2] => 1
[3] => 2
)
----
$ar[] = array(1, 1);
$ar[] = array(1, 2);
$ar[] = array(2, 3);
$ar[] = array(2, 4);
$ar2 = array(1,2,3,4);
array_multisort($ar, SORT_DESC, $ar2);
Array
(
[0] => 4
[1] => 3
[2] => 2
[3] => 1
)
$ar[] = array(1);
$ar[] = array(1);
$ar[] = array(2);
$ar[] = array(2);
$ar2 = array(1,2,3,4);
array_multisort($ar, SORT_DESC, $ar2);
Array
(
[0] => 3
[1] => 4
[2] => 1
[3] => 2
)
----
$ar[] = array(1, 1);
$ar[] = array(1, 2);
$ar[] = array(2, 3);
$ar[] = array(2, 4);
$ar2 = array(1,2,3,4);
array_multisort($ar, SORT_DESC, $ar2);
Array
(
[0] => 4
[1] => 3
[2] => 2
[3] => 1
)
116デフォルトの名無しさん (ワッチョイ 0289-fard)
2019/02/08(金) 00:54:59.90ID:DKnzBuB20117デフォルトの名無しさん (ワッチョイ e101-95g7)
2019/02/08(金) 01:23:31.06ID:1Q4bQ8+M0 phpでスクレイピングした文字列をmysqlのデータベースにInsertしたいのですが、ざっくりどういう風にやればよいでしょうか?
スクレイピング自体は出来ていて、ここからDBに挿入する方法が知りたいです。
よろしくおねがいします。
スクレイピング自体は出来ていて、ここからDBに挿入する方法が知りたいです。
よろしくおねがいします。
118デフォルトの名無しさん (オッペケ Srd1-da9w)
2019/02/08(金) 08:16:42.39ID:Waqd0NNdr ざっくりいうとINSERTのSQL文を書けばいいんだよ
2019/02/08(金) 11:07:14.81ID:VEywR5okr
120デフォルトの名無しさん (ワッチョイ a275-Ctdi)
2019/02/08(金) 16:27:15.56ID:k5rPGxdZ0 サーバー側に数万枚の画像を保存する場合、数万枚を1つのフォルダに入れるのと、10000台、20000台のようにフォルダ分けしたほうがいいですか?
2019/02/08(金) 16:38:40.38ID:j4lUPneda
保存して何するかによるのでは?
122デフォルトの名無しさん (ワッチョイ a275-Ctdi)
2019/02/08(金) 16:57:55.31ID:k5rPGxdZ0 1ページに20件~50件くらいサムネ表示したり、1ページに数枚表示したり
ネットショップのようなイメージ
ネットショップのようなイメージ
2019/02/08(金) 18:04:35.54ID:1w1isakW0
フォルダ分けするとアクセス時間が短くなる場合が多い
2019/02/08(金) 21:42:22.40ID:jEGlmC9W0
laravel関連の質問をお願いします。4日間前進できてません(汗
laravelのデフォルトのモデルUserと、テーブルusersを使い、ログイン(sign in)認証を行いたいのです。
----- form -------
<form action="***" method="post">
<input type="email" name="email>
<input type="password" name="password">
</form>
---- controller -------
public function post***(Requeat $request){
if(Auth::attempt(['email'=>$request->emai,'password'=>$request->password])
{
XXXXX;
}
ここで、if文のtrueにならず、すべてfalseになります。
Auth::attemptが、usersテーブルを読み込んでないような気がするのですが、
どうしてtrueにならないのか、教えていただけないでしょうか><
どうか、よろしくお願いします。
laravelのデフォルトのモデルUserと、テーブルusersを使い、ログイン(sign in)認証を行いたいのです。
----- form -------
<form action="***" method="post">
<input type="email" name="email>
<input type="password" name="password">
</form>
---- controller -------
public function post***(Requeat $request){
if(Auth::attempt(['email'=>$request->emai,'password'=>$request->password])
{
XXXXX;
}
ここで、if文のtrueにならず、すべてfalseになります。
Auth::attemptが、usersテーブルを読み込んでないような気がするのですが、
どうしてtrueにならないのか、教えていただけないでしょうか><
どうか、よろしくお願いします。
2019/02/08(金) 22:44:50.24ID:SnO1YjyT0
$request->emaiにlが足りて無いとか?
2019/02/09(土) 06:31:09.14ID:3JjKiGqr0
すみません。$request->emailです。
タイプミスはなくても、falseになります。
よろしくお願いします。
タイプミスはなくても、falseになります。
よろしくお願いします。
2019/02/09(土) 10:15:38.13ID:lpNDR5cs0
他人のホームページを書き換えたいんでつけど
PHP使えば狩野でつか?
PHP使えば狩野でつか?
2019/02/09(土) 10:38:25.62ID:LiyCmRY90
その他人が許諾しているなら、その他人に聞け
その他人が許諾していないなら、警察が聞いてくれる
その他人が許諾していないなら、警察が聞いてくれる
2019/02/09(土) 17:11:10.81ID:kXc/Z+zP0
何を書き換えたいんだろう?
HTML CSS JAVASCRIPT、それともフレームワークに依存?
PHP,CAKE,いろいろあるから、一概になんとも・・・
HTML CSS JAVASCRIPT、それともフレームワークに依存?
PHP,CAKE,いろいろあるから、一概になんとも・・・
2019/02/09(土) 18:20:17.39ID:koH3JFsI0
pearのサイトが死んでるんたがなんかあった?
2019/02/09(土) 18:23:52.81ID:LiyCmRY90
>>130
PEAR server is down
「PEAR公式サイトのウェブサーバー上で改変された『tainted go-pear.phar』と
セキュリティ侵害が発見されました。PEARのウェブサイト自体は無害なクリー
ンサイトを再構築するまで使用不能とします。より詳細な情報はPEARの公式
ブログでチェックしてください」
PEAR server is down
「PEAR公式サイトのウェブサーバー上で改変された『tainted go-pear.phar』と
セキュリティ侵害が発見されました。PEARのウェブサイト自体は無害なクリー
ンサイトを再構築するまで使用不能とします。より詳細な情報はPEARの公式
ブログでチェックしてください」
132デフォルトの名無しさん (ワッチョイ 924b-Ctdi)
2019/02/10(日) 04:09:45.41ID:jBesuRSj0 Python勉強してるの
リストから”取り出す”っていう日本語ってなんか違和感ある
リストから取り出して要素を付け加えると元のリストにも反映されてる
これって取り出すっていう日本語だとイメージ変だよね
なんていうかリストのいち部分をズームアップしてそこだけ見えるようにしたようなイメージのほうがいいきがするの
だって取り出したんだったらいつ元に戻したの?っていうことになるよね?
イメージ的に
たぶん想像だけど元々のリストのメモリ上の位置は全く変わっていなくてずーっとそこにあるから取り出したっていう日本語が変なんだと思うの
リストから”取り出す”っていう日本語ってなんか違和感ある
リストから取り出して要素を付け加えると元のリストにも反映されてる
これって取り出すっていう日本語だとイメージ変だよね
なんていうかリストのいち部分をズームアップしてそこだけ見えるようにしたようなイメージのほうがいいきがするの
だって取り出したんだったらいつ元に戻したの?っていうことになるよね?
イメージ的に
たぶん想像だけど元々のリストのメモリ上の位置は全く変わっていなくてずーっとそこにあるから取り出したっていう日本語が変なんだと思うの
133デフォルトの名無しさん (ワッチョイ 924b-Ctdi)
2019/02/10(日) 04:13:15.33ID:jBesuRSj0 これはリスト=辞書a、辞書b
みたいになってて辞書aをとりだしてそこになにかを付け加えた場合に
元のリストに変更がそのまま反映されることを言ってます
取り出すっていう日本語の操作だといつ元に戻したのっておもうよね?
みたいになってて辞書aをとりだしてそこになにかを付け加えた場合に
元のリストに変更がそのまま反映されることを言ってます
取り出すっていう日本語の操作だといつ元に戻したのっておもうよね?
2019/02/10(日) 08:09:11.07ID:4xhMpHOb0
なんかぶっ飛んでる人がいますね
2019/02/10(日) 08:55:31.07ID:t3zAhvOs0
laravelに関する質問お願いします
Auth;;attemptで参照されるテーブルが、どこで定義されているか分かりますか?
Auth;;attemptで参照されるテーブルが、どこで定義されているか分かりますか?
136デフォルトの名無しさん (ワッチョイ e101-iwoU)
2019/02/10(日) 20:03:25.52ID:Bb8eA8KO0 laravelの質問です
コントローラーの関数にフォームリクエストを入れるとPOSTからGETになるんですけど何でですかね?
use App\Http\Requests\fivechRequest;
class fivechContoroller extends Controller
{
public function write_ready() {
return view('write_ready');
}
public function write(fivechRequest $reqest) {
return "helllo world!";
}
}
fivechRequest $reqest
これ入れた途端にGETになってしまう
Route::get('test/bbs.cgi', 'fivechContoroller@write_ready');
Route::post('test/bbs.cgi', 'fivechContoroller@write')
->middleware(fivechMiddleware::class);
コントローラーの関数にフォームリクエストを入れるとPOSTからGETになるんですけど何でですかね?
use App\Http\Requests\fivechRequest;
class fivechContoroller extends Controller
{
public function write_ready() {
return view('write_ready');
}
public function write(fivechRequest $reqest) {
return "helllo world!";
}
}
fivechRequest $reqest
これ入れた途端にGETになってしまう
Route::get('test/bbs.cgi', 'fivechContoroller@write_ready');
Route::post('test/bbs.cgi', 'fivechContoroller@write')
->middleware(fivechMiddleware::class);
137デフォルトの名無しさん (ワッチョイ e101-iwoU)
2019/02/10(日) 20:26:08.90ID:Bb8eA8KO0 public function rules()
{
return [
//'bbs' => 'string|alpha|max:8|required',
//'key' => 'integer|digits:10',
//'subject' => 'string|max:64|required',
//'from' => 'string|max:32',
//'mail' => 'string|max:16',
//'message' => 'string|max:4096|required'
];
}
}
に変更したらPOSTになりました… なんででしょうか?
{
return [
//'bbs' => 'string|alpha|max:8|required',
//'key' => 'integer|digits:10',
//'subject' => 'string|max:64|required',
//'from' => 'string|max:32',
//'mail' => 'string|max:16',
//'message' => 'string|max:4096|required'
];
}
}
に変更したらPOSTになりました… なんででしょうか?
138デフォルトの名無しさん (ワッチョイ e101-feI+)
2019/02/10(日) 22:44:52.33ID:Bb8eA8KO0 勝手にリダイレクトされるのとめる方法ないですかね
2019/02/12(火) 06:18:45.22ID:4rvCbmwy0
ソースをたどっていけば
2019/02/13(水) 15:56:50.06ID:qcwaRdjDa
cronで実行しているPHPで不具合が出て調べているのですが、
php.iniでエラーログを指定していない場合、
コマンドラインからPHPを実行した時のエラーログってどこに出るのでしょうか?
apacheで実行した場合はapacheのエラーログに出るようですが
php.iniでエラーログを指定していない場合、
コマンドラインからPHPを実行した時のエラーログってどこに出るのでしょうか?
apacheで実行した場合はapacheのエラーログに出るようですが
2019/02/13(水) 17:21:57.25ID:6eI6oeOB0
2019/02/16(土) 03:56:24.05ID:p8v5qaF40
質問させていただきます
データベースにセッション保存するようにsessionhandlerinterfaceを作りました
session_set_save_handlerで該当のハンドラを指定したらちゃんとデータベースにも書き込めているのですが
あるサイト上の複数ページで統一的にこのデータベース利用のセッションを使うには
各ページでsession_startの前に毎回ハンドラ指定をする必要があるのでしょうか?
(テストしてみると指定しないとデフォルトのファイル利用のセッションが作られているようでした)
php.iniか何かの編集でそもそもデフォルトをデータベース利用のセッションにするということなしに
上手いやり方があるのであればお教えいただければ幸いです
どうぞよろしくお願いいたします
データベースにセッション保存するようにsessionhandlerinterfaceを作りました
session_set_save_handlerで該当のハンドラを指定したらちゃんとデータベースにも書き込めているのですが
あるサイト上の複数ページで統一的にこのデータベース利用のセッションを使うには
各ページでsession_startの前に毎回ハンドラ指定をする必要があるのでしょうか?
(テストしてみると指定しないとデフォルトのファイル利用のセッションが作られているようでした)
php.iniか何かの編集でそもそもデフォルトをデータベース利用のセッションにするということなしに
上手いやり方があるのであればお教えいただければ幸いです
どうぞよろしくお願いいたします
143デフォルトの名無しさん (ワッチョイ a761-8zyB)
2019/02/17(日) 12:12:25.21ID:vpvr2f070 >>140
cronから実行したプロセスは端末と結びついていないから、リダイレクト指定しなければただ閉じてる。
cronから実行したプロセスは端末と結びついていないから、リダイレクト指定しなければただ閉じてる。
2019/02/17(日) 12:22:30.41ID:wSo27DN5a
2019/02/17(日) 12:23:37.36ID:wSo27DN5a
2019/02/18(月) 18:19:22.08ID:yhtTsT3P0
laravelに関する質問を受け付けていただけますと幸いです><
今まで使っていたcontroller(app/http/controllers/)が、突然使えなくなりました。
<現象>
上記パスのcontrollerを変更しても反映されない。
上記パスのcontrollerを削除しても、古いcontrollerの設定が生きてて、プログラム自体は従来どおり動く
なにか、他のパスに古いcontrollerが保存されていて、そっちを読んでいるような感じがする
という感じなのですが、何か改善する方法を教えてくださるかた、いらっしゃいませんでしょうか?
今まで使っていたcontroller(app/http/controllers/)が、突然使えなくなりました。
<現象>
上記パスのcontrollerを変更しても反映されない。
上記パスのcontrollerを削除しても、古いcontrollerの設定が生きてて、プログラム自体は従来どおり動く
なにか、他のパスに古いcontrollerが保存されていて、そっちを読んでいるような感じがする
という感じなのですが、何か改善する方法を教えてくださるかた、いらっしゃいませんでしょうか?
2019/02/18(月) 23:59:28.75ID:s6PjmKn40
PHPをFastCGIやmod_phpで常駐させて動作させるとき、最初に一回だけ実行されるコードとリクエストの度に実行されるコードはどうやって区別しますか
CGIモードの時は毎回全てのコードをロードして実行することになると思うんですが、
FastCGIやmod_phpだと予めロード済みの状態のプロセスを待機させてプロセスの起動やコンパイルの実行を省いて高速化していると思っています
例えばpythonのWSGIだと起動時にアプリケーション関数の外側に書いたコードが実行され、その後はリクエストのたびにアプリケーション関数の内部だけ実行されます
--------------------
do_something()
def application(environ, start_response):
start_response('200 OK', [('Content-type', 'text/plain')])
return 'Hello, world'
--------------------
これと同じようなことはどのように実現しますか
CGIモードの時は毎回全てのコードをロードして実行することになると思うんですが、
FastCGIやmod_phpだと予めロード済みの状態のプロセスを待機させてプロセスの起動やコンパイルの実行を省いて高速化していると思っています
例えばpythonのWSGIだと起動時にアプリケーション関数の外側に書いたコードが実行され、その後はリクエストのたびにアプリケーション関数の内部だけ実行されます
--------------------
do_something()
def application(environ, start_response):
start_response('200 OK', [('Content-type', 'text/plain')])
return 'Hello, world'
--------------------
これと同じようなことはどのように実現しますか
2019/02/19(火) 17:39:51.40ID:z2WxkWjZ0
親クラスのprotectedプロパティに値を代入する時、
子クラス側にもプロパティを定義するものですか?
コーディングの一般的な作法や、可読性的な話です。
子クラス側にもプロパティを定義するものですか?
コーディングの一般的な作法や、可読性的な話です。
2019/02/20(水) 03:09:15.11ID:FK1AOD6X0
>>148
そういうのはドキュメントに出力すればいいと思うけど
PHPDocが面倒なら個人開発程度なら簡易的なものとして
trait ClassInfo {
public static function getClass() {
return Reflection::export(new ReflectionClass(get_called_class()), true);
}
}
親クラスにこんなん入れて必要なときに参照すれば
少しはましになるんではないかと
そういうのはドキュメントに出力すればいいと思うけど
PHPDocが面倒なら個人開発程度なら簡易的なものとして
trait ClassInfo {
public static function getClass() {
return Reflection::export(new ReflectionClass(get_called_class()), true);
}
}
親クラスにこんなん入れて必要なときに参照すれば
少しはましになるんではないかと
2019/02/24(日) 02:45:30.45ID:yLdhIKyP0
151デフォルトの名無しさん (ワッチョイ d79f-SKB1)
2019/03/05(火) 17:57:17.69ID:J7utTfUg0 "SELECT name FROM table WHERE name = 'hoge'"
これはしっかり結果帰ってくるのに
事前に$hoge = 'hoge'してから
"SELECT name FROM table WHERE name = $hoge"
これだと空になるのなんで
"SELECT name FROM table WHERE name = '$hoge'"
"SELECT name FROM table WHERE name = ".$hoge
とか試したけどダメだったわ;
これはしっかり結果帰ってくるのに
事前に$hoge = 'hoge'してから
"SELECT name FROM table WHERE name = $hoge"
これだと空になるのなんで
"SELECT name FROM table WHERE name = '$hoge'"
"SELECT name FROM table WHERE name = ".$hoge
とか試したけどダメだったわ;
2019/03/05(火) 18:12:06.81ID:/9vlYliD0
2019/03/05(火) 18:18:55.25ID:J7utTfUg0
>>152
ダメだった
ダメだった
2019/03/05(火) 18:23:39.10ID:J7utTfUg0
すまん環境の問題だった
2019/03/05(火) 18:24:11.90ID:/9vlYliD0
2019/03/05(火) 18:55:38.74ID:/9vlYliD0
解決したようですね、良かったです
2019/03/06(水) 13:44:29.53ID:kk7tfKyga
>>154
環境とは?
環境とは?
158デフォルトの名無しさん (ワッチョイ ffda-2g28)
2019/03/06(水) 16:10:50.95ID:tl9V0B/R0 PHP: nl2br - Manual
http://www.php.net/manual/ja/function.nl2br.php
string に含まれるすべての改行文字 (\r\n、 \n\r、\n および \r) の前に <br /> あるいは <br> を挿入して返します。
とありますが
\r\nはWindowsのCR+LFだとして、\n\rという改行コードは存在するのでしょうか?
よろしくお願いします
http://www.php.net/manual/ja/function.nl2br.php
string に含まれるすべての改行文字 (\r\n、 \n\r、\n および \r) の前に <br /> あるいは <br> を挿入して返します。
とありますが
\r\nはWindowsのCR+LFだとして、\n\rという改行コードは存在するのでしょうか?
よろしくお願いします
2019/03/07(木) 03:55:06.79ID:wQ6Vu2No0
改行を\n\rで保存したり取り扱うエディタが存在するかもしれないし
\r\nと勘違いして\n\rとか渡しちゃうかもしれないし
そんな人にも<br><br>と2つにはせずに<br>1つにしてくれる親切設計ってだけでは
\r\nと勘違いして\n\rとか渡しちゃうかもしれないし
そんな人にも<br><br>と2つにはせずに<br>1つにしてくれる親切設計ってだけでは
160デフォルトの名無しさん (ワッチョイ d6da-DZHv)
2019/03/07(木) 08:24:12.22ID:2g7ZW4ya0 めんどくさい
CR絶滅してLFだけで統一してくれればいい
ありがとうございました
CR絶滅してLFだけで統一してくれればいい
ありがとうございました
2019/03/08(金) 15:30:59.07ID:yu/ETmP20
昔はCRとLFで機能使い分けてたみたいだけど、当時からほぼCR+LFの使い方が主流だったよね?
CRだけ使うなんて、同一行書き換え以外に使い道が思い浮かばない
CRだけ使うなんて、同一行書き換え以外に使い道が思い浮かばない
2019/03/08(金) 16:47:11.41ID:2GMb9sQS0
laravelの質問なのですが、よろしかったらご教授くださいませ
DBに登録されている性別情報を取得して
view画面のラジオボタンの初期値として、該当する性別をチェック状態にしたいと考えてます。
コントローラー側で、
$profile=['u_sex'=>$xxx->u_sex,***];
$param=['user'=>$user,'profile'=>$profile];
view側のhtmlを
<input type="radio" name="u_sex" value=1 @php ($profile->u_sex) ? 'checked':''>
としたいのですが、
htmlの「@php ($profile->
の > で、<input を閉じてしまってうまく動かせません。
なにか良い方法はありませんか?
DBに登録されている性別情報を取得して
view画面のラジオボタンの初期値として、該当する性別をチェック状態にしたいと考えてます。
コントローラー側で、
$profile=['u_sex'=>$xxx->u_sex,***];
$param=['user'=>$user,'profile'=>$profile];
view側のhtmlを
<input type="radio" name="u_sex" value=1 @php ($profile->u_sex) ? 'checked':''>
としたいのですが、
htmlの「@php ($profile->
の > で、<input を閉じてしまってうまく動かせません。
なにか良い方法はありませんか?
2019/03/08(金) 16:49:42.82ID:Ee+Y4rJr6
>>161
つMacintosh
つMacintosh
2019/03/08(金) 18:05:06.32ID:aqheESZi0
2019/03/08(金) 18:15:43.51ID:yu/ETmP20
>>163
言葉足らずだったね。スマン。
OSによっての解釈の話ではなくて、本来のCR、LFの意味での話。
CRはキャリッジリターン(行頭復帰)、LFはラインフィード(行送り)。
元々タイプライター(テレタイプ)から来てると思うけど、PCにおいてそれぞれ片方だけ
使う事あったのかな?って話。
結局使わないからOSによって都合のいい解釈になったんだろうけど。
まあどうでもいいや。スレチスマン。
言葉足らずだったね。スマン。
OSによっての解釈の話ではなくて、本来のCR、LFの意味での話。
CRはキャリッジリターン(行頭復帰)、LFはラインフィード(行送り)。
元々タイプライター(テレタイプ)から来てると思うけど、PCにおいてそれぞれ片方だけ
使う事あったのかな?って話。
結局使わないからOSによって都合のいい解釈になったんだろうけど。
まあどうでもいいや。スレチスマン。
2019/03/08(金) 18:32:37.31ID:4NSKE0Lh0
ダウンロードしたソースをapacheで動かしたところ
PHP Strict Standards: Declaration of defaultAuth::useredit() should be compatible with authBase::useredit($user)
このようなエラーが出て該当する部分を見ると
function useredit(&$user,$pwd = false) {
if ($pwd) {
$user['password']=crypt($user['password']);
}
$this->db->update('users',$user,array('id' => $user['id']),$this->userfields);
}
1行目の function useredit(&$user,$pwd = false)
に「&」があるのですが、それを取り除くとエラーが出なくなりますが、
関数の引数の前に & はつけることがあるのでしょうか?
PHP Strict Standards: Declaration of defaultAuth::useredit() should be compatible with authBase::useredit($user)
このようなエラーが出て該当する部分を見ると
function useredit(&$user,$pwd = false) {
if ($pwd) {
$user['password']=crypt($user['password']);
}
$this->db->update('users',$user,array('id' => $user['id']),$this->userfields);
}
1行目の function useredit(&$user,$pwd = false)
に「&」があるのですが、それを取り除くとエラーが出なくなりますが、
関数の引数の前に & はつけることがあるのでしょうか?
2019/03/08(金) 18:52:21.46ID:b/Kbk3X80
あります
2019/03/08(金) 18:59:00.84ID:aqheESZi0
2019/03/08(金) 19:42:19.86ID:4NSKE0Lh0
>>167-168
ありがとうございます、参照渡しというのがあるのですね。
php 5.4で、参照渡しが無くなったので、エラーが出ていることがわかりました。
&を取っても動いている感じなのですが、とりあえずそれで様子を見たいと思います。
ありがとうございます、参照渡しというのがあるのですね。
php 5.4で、参照渡しが無くなったので、エラーが出ていることがわかりました。
&を取っても動いている感じなのですが、とりあえずそれで様子を見たいと思います。
2019/03/08(金) 21:14:39.94ID:aqheESZi0
>>169
エラーになるのは呼び出し側で&を使った場合
https://ideone.com/qo7ccI
親子でfunctionの定義が異なる場合にDeclaration of...って出る
https://ideone.com/9aCPU1
親子両方で&をつけるか&を取るか一致させればいいんだろうけど、多分&をつけるほうが正解なんじゃないかな?
エラーになるのは呼び出し側で&を使った場合
https://ideone.com/qo7ccI
親子でfunctionの定義が異なる場合にDeclaration of...って出る
https://ideone.com/9aCPU1
親子両方で&をつけるか&を取るか一致させればいいんだろうけど、多分&をつけるほうが正解なんじゃないかな?
2019/03/09(土) 02:21:59.24ID:BXeyfCeA0
>>170
>多分&をつけるほうが正解なんじゃないかな?
クラスのことは勉強不足でわからないのですが、
class hoge
function useredit($user) {}
を
function useredit(&$user) {}
に変更するとエラーが出なくなりました、
確かに両方で無しか有りにするとエラーが出ないので、どちらが良いかわかりませんが、
これで様子を見たいと思います、ありがとうございました。
>多分&をつけるほうが正解なんじゃないかな?
クラスのことは勉強不足でわからないのですが、
class hoge
function useredit($user) {}
を
function useredit(&$user) {}
に変更するとエラーが出なくなりました、
確かに両方で無しか有りにするとエラーが出ないので、どちらが良いかわかりませんが、
これで様子を見たいと思います、ありがとうございました。
2019/03/09(土) 07:23:29.43ID:4+hj1jJB0
>>164
ありがとうございます
そのコードでも、->の'>'が、<input タグの閉じる>と認識されてしまいます。
どうやってエスケープしていいか、方法が見つからないので、多重配列を避けて記述するようにします。
ありがとうございます
そのコードでも、->の'>'が、<input タグの閉じる>と認識されてしまいます。
どうやってエスケープしていいか、方法が見つからないので、多重配列を避けて記述するようにします。
2019/03/09(土) 19:56:15.94ID:0WxXuN2u0
自分もbladeは知らないが
> htmlの「@php ($profile->
> の > で、<input を閉じてしまってうまく動かせません。
これはどうやって判断したの?
出力されるコードが
<input type="radio" name="u_sex" value=1 @php ($profile->
あるいはコードが変換されずにそのまんま
<input type="radio" name="u_sex" value=1 @php ($profile->u_sex) ? 'checked':''>
になってるの?
それともそこでエラーが出てて自分でそこが原因だと思ってるってこと?
> htmlの「@php ($profile->
> の > で、<input を閉じてしまってうまく動かせません。
これはどうやって判断したの?
出力されるコードが
<input type="radio" name="u_sex" value=1 @php ($profile->
あるいはコードが変換されずにそのまんま
<input type="radio" name="u_sex" value=1 @php ($profile->u_sex) ? 'checked':''>
になってるの?
それともそこでエラーが出てて自分でそこが原因だと思ってるってこと?
2019/03/09(土) 22:30:58.51ID:4+hj1jJB0
予期せぬ > というエラーです
タグ内で@phpを使い、変数で判定することは避けて
タグの外で判定するようにしました。
色々ご指導ありがとうございました。
タグ内で@phpを使い、変数で判定することは避けて
タグの外で判定するようにしました。
色々ご指導ありがとうございました。
2019/03/10(日) 05:33:43.02ID:y6AdK4wp0
syntaxエラーかね
コード見る限りobjectにキャストしてない連想配列を
アロー演算子使って参照してるから
エラー起きてるのかと思ったけどそういうわけではなさそうか
よくよく見ると>>162はどこまでがPHPか判定できなさそうだな
普通のPHPだと下のようになるが
<input type="radio" name="u_sex" value=1 <?= ($profile->u_sex) ? 'checked':''>>
最後にいれるべき>が1つかけてる感じ
調べてみたら@endphpがあるようだからそれ使えば良さそう?
説明見る限りプレーンなPHP実行でechoしない感じがするから
<input type="radio" name="u_sex" value=1 @php echo ($profile->u_sex) ? 'checked' : '' @endphp>
これで一応>>162の閉じてなさそう問題は解決するけど
明白にとじてる>>164が動かないとなると
@php-@endphpや@if-@endifは1行じゃ無理とか
行頭に書かないといけないとかあるのかもしれない
コード見る限りobjectにキャストしてない連想配列を
アロー演算子使って参照してるから
エラー起きてるのかと思ったけどそういうわけではなさそうか
よくよく見ると>>162はどこまでがPHPか判定できなさそうだな
普通のPHPだと下のようになるが
<input type="radio" name="u_sex" value=1 <?= ($profile->u_sex) ? 'checked':''>>
最後にいれるべき>が1つかけてる感じ
調べてみたら@endphpがあるようだからそれ使えば良さそう?
説明見る限りプレーンなPHP実行でechoしない感じがするから
<input type="radio" name="u_sex" value=1 @php echo ($profile->u_sex) ? 'checked' : '' @endphp>
これで一応>>162の閉じてなさそう問題は解決するけど
明白にとじてる>>164が動かないとなると
@php-@endphpや@if-@endifは1行じゃ無理とか
行頭に書かないといけないとかあるのかもしれない
176175 (ワッチョイ 16a7-3PTc)
2019/03/10(日) 05:35:39.36ID:y6AdK4wp0 ちょっとミス
> 普通のPHPだと下のようになるが
> <input type="radio" name="u_sex" value=1 <?= ($profile->u_sex) ? 'checked':''>>
↓
<input type="radio" name="u_sex" value=1 <?= ($profile->u_sex) ? 'checked':''?>>
> 普通のPHPだと下のようになるが
> <input type="radio" name="u_sex" value=1 <?= ($profile->u_sex) ? 'checked':''>>
↓
<input type="radio" name="u_sex" value=1 <?= ($profile->u_sex) ? 'checked':''?>>
2019/03/10(日) 08:21:41.87ID:dKY2ENzw0
>>175
先生、本当にありがとうございます。
@endphpは記載忘れですが、実際には記載してます。
<input type="radio" name="u_sex" value=1 <?= ($profile->u_sex) ? 'checked':''?>>
でも同じエラーが出てましたので、他の解決策が必要のようです。
コード的には
<?php
if($profile->u_sex==1){
echo '<input type="radio" name="u_sex" value=1 checked="checked">';
}
と修正したものを使うようにしました。
コードが1行で綺麗に書けないのが残念でした。
本当ありがとうございました!
先生、本当にありがとうございます。
@endphpは記載忘れですが、実際には記載してます。
<input type="radio" name="u_sex" value=1 <?= ($profile->u_sex) ? 'checked':''?>>
でも同じエラーが出てましたので、他の解決策が必要のようです。
コード的には
<?php
if($profile->u_sex==1){
echo '<input type="radio" name="u_sex" value=1 checked="checked">';
}
と修正したものを使うようにしました。
コードが1行で綺麗に書けないのが残念でした。
本当ありがとうございました!
2019/03/12(火) 21:16:05.10ID:fInyw+wI0
phpからローカルのexeとかシェル叩けますか?
2019/03/12(火) 21:17:44.08ID:fInyw+wI0
あ、apacheのWebサーバで動くphpのことです
2019/03/13(水) 10:25:19.40ID:AVj94jZX0
exec()
2019/03/13(水) 13:06:28.48ID:AVj94jZX0
WEBサーバに数十ミリ秒ごとにアクセスして、命令が出てる時はブラウザがスクリプトを実行する仕組みが今風らしい
2019/03/13(水) 17:39:55.13ID:2dJ2nxIw0
これだけ解釈に幅があるんだなw
2019/03/15(金) 10:45:15.54ID:+YXguzLt0
質問させてください
ファイルを開く
処理1
ファイルを閉じる
ファイルを開く
処理2
ファイルを閉じる
というようなコードを書いたんですが、
ファイルを開く
処理1
処理2
ファイルを閉じる
に変えた方がいいですか?
懸念としてはファイルを開くという処理そのものが処理速度的に重いのであまり繰り返すのはよくないかな?と
1と2を分けた理由は一つにまとめると処理が複雑になって可読性が低くなってしまったからです
お力添えよろしくお願いします
ファイルを開く
処理1
ファイルを閉じる
ファイルを開く
処理2
ファイルを閉じる
というようなコードを書いたんですが、
ファイルを開く
処理1
処理2
ファイルを閉じる
に変えた方がいいですか?
懸念としてはファイルを開くという処理そのものが処理速度的に重いのであまり繰り返すのはよくないかな?と
1と2を分けた理由は一つにまとめると処理が複雑になって可読性が低くなってしまったからです
お力添えよろしくお願いします
184デフォルトの名無しさん (ワッチョイ 6f8c-B7Il)
2019/03/15(金) 16:36:34.12ID:9yz/tpkK0 >>183
素人的な考えだけど、ファイルを開くとファイルを閉じるを二回もしてるから
一回で済ますことができるならまとめたほうがいいかもだしなんで開くと閉じるを2回もしてるの?理由があるの?とかいわれるだろうし
素人的な考えだけど、ファイルを開くとファイルを閉じるを二回もしてるから
一回で済ますことができるならまとめたほうがいいかもだしなんで開くと閉じるを2回もしてるの?理由があるの?とかいわれるだろうし
2019/03/15(金) 16:52:05.57ID:t0fouEo60
ファイルに対する操作が追記なのか、それともランダムアクセスによる更新なのか
ファイルのサイズがどの位なのか、
処理1と処理2は独立した内容なのか、それとも順序性があり、処理1が完了する前提が必要なのか
などなど色々条件がありそうだけど、
乱暴に言ってしまうけど、ファイル操作なんて大して重たい処理ではないと思う
ファイルのサイズがどの位なのか、
処理1と処理2は独立した内容なのか、それとも順序性があり、処理1が完了する前提が必要なのか
などなど色々条件がありそうだけど、
乱暴に言ってしまうけど、ファイル操作なんて大して重たい処理ではないと思う
2019/03/15(金) 17:11:16.81ID:+YXguzLt0
2019/03/15(金) 17:18:10.78ID:t0fouEo60
正確に言えば、PHPが動作している環境次第
ストレージの性能が良いなら殆ど気にする必要が無いだろうし
扱うファイルがとても大きいならファイル操作はそれなりの時間が掛かる
示された条件だと、この程度の一般的な見解しか出てこないと思う
ストレージの性能が良いなら殆ど気にする必要が無いだろうし
扱うファイルがとても大きいならファイル操作はそれなりの時間が掛かる
示された条件だと、この程度の一般的な見解しか出てこないと思う
2019/03/15(金) 17:23:40.16ID:t0fouEo60
処理の開始時間と終了時間を記録し、
処理の違いでどの程度変わるかを見てみれば良いと思う
自分の予測だと、殆ど誤差でしかないと思う
処理の違いでどの程度変わるかを見てみれば良いと思う
自分の予測だと、殆ど誤差でしかないと思う
2019/03/15(金) 17:54:38.04ID:+YXguzLt0
190デフォルトの名無しさん (ワッチョイ 6f8c-B7Il)
2019/03/15(金) 18:02:24.87ID:9yz/tpkK0 phpのセッションとかでセッションの中身が1の時はAのページ成型、セッションの中身が2の時はBのページの成型、セッションの中身が3の時なら中身を1にしてAのページにって作られてた時に
ブラウザのクロームとかの履歴では全部同一のページと認識されて上書きされるの?前のページ内で書かれてたものも全部上書きされるのか?
ブラウザのクロームとかの履歴では全部同一のページと認識されて上書きされるの?前のページ内で書かれてたものも全部上書きされるのか?
2019/03/15(金) 21:21:03.69ID:L+hp7qbL0
Ruby では、小さいサイズで、読み込みだけなら、
File.read, readlines で、一気に全部読み込んで閉じる
処理は、その後に行う
読み込んで書き戻すのなら、処理中もファイルを開いておくかも知れないけど、
そうするとその間、排他制御で、そのファイルはロックされる
File.read, readlines で、一気に全部読み込んで閉じる
処理は、その後に行う
読み込んで書き戻すのなら、処理中もファイルを開いておくかも知れないけど、
そうするとその間、排他制御で、そのファイルはロックされる
2019/03/19(火) 12:27:22.14ID:DBfAR41T0
laravelなのですが、よろしかったら教えてください。
ローカルに作成したサイトのindex.に接続すると、
geolocationで位置情報を取得するようにしたいのですが
アクセス先がlocalhost:8000/indexの場合には位置情報が取得できるのですが
実機を使うために、IPアドレスでアクセスできるように
php artisan serve --host 192.166.13.102と設定すると
開発しているPCや、実機でアクセスしても、geolocationが使えなくなります。
実機でローカルサイトにアクセスして、geolocationが使えるようにするには
どうしたらいいのでしょうか?
ローカルに作成したサイトのindex.に接続すると、
geolocationで位置情報を取得するようにしたいのですが
アクセス先がlocalhost:8000/indexの場合には位置情報が取得できるのですが
実機を使うために、IPアドレスでアクセスできるように
php artisan serve --host 192.166.13.102と設定すると
開発しているPCや、実機でアクセスしても、geolocationが使えなくなります。
実機でローカルサイトにアクセスして、geolocationが使えるようにするには
どうしたらいいのでしょうか?
193デフォルトの名無しさん (ワッチョイ 6f8c-B7Il)
2019/03/19(火) 13:20:28.75ID:rDiaexLE0 エスケープ処理のために$clean[$key] = htmlspecialchars( $value, ENT_QUOTES);でしてるんだけど
<や>が変換されないでそのまま表示されちゃってるんだけどちゃんと変換できてないの?それとも書き方が悪い?誰か教えて
<や>が変換されないでそのまま表示されちゃってるんだけどちゃんと変換できてないの?それとも書き方が悪い?誰か教えて
2019/03/19(火) 15:46:05.54ID:70wn5si7a
>>193
そのまま表示されるのが正しい動作じゃないの?
そのまま表示されるのが正しい動作じゃないの?
195デフォルトの名無しさん (ワッチョイ 6f8c-B7Il)
2019/03/19(火) 15:46:13.95ID:rDiaexLE0 >>193
$valueの中身を忘れてた
$value = <script type='text/javascript'> location.href='http://www.yahoo.co.jp'; </script>;
これで
$valueの中身を忘れてた
$value = <script type='text/javascript'> location.href='http://www.yahoo.co.jp'; </script>;
これで
2019/03/19(火) 18:54:10.34ID:mQ/pmFPua
魔改造感半端ないな
2019/03/19(火) 21:37:27.82ID:uCH5q9Xf0
何でVisualStudioみたいにGUIで開発できないんですか?
198デフォルトの名無しさん (ワッチョイ 6f8c-B7Il)
2019/03/19(火) 23:59:06.58ID:rDiaexLE0 >>194
でもサニタイズしたはずなのにphpでフォームにJavascriptの$valueの中身入れるて飛ぶとYahooに飛んじゃってるんだよなIEで確認したから間違いないけど
でもサニタイズしたはずなのにphpでフォームにJavascriptの$valueの中身入れるて飛ぶとYahooに飛んじゃってるんだよなIEで確認したから間違いないけど
2019/03/20(水) 00:02:34.03ID:UM8alzkY0
どうせブラウザのソース表示してみたら&lt;&gt;になってるとかいうオチだろ
2019/03/20(水) 00:56:07.42ID:RdYQnT9u0
それは、タグ内の属性じゃん!
そこは、要素内の内容部分じゃないよ!
そこは、要素内の内容部分じゃないよ!
201デフォルトの名無しさん (ワッチョイ cfda-h1+v)
2019/03/20(水) 18:33:53.86ID:DvYG4dOj0 PHPやたったことないんだけど、どういう風に起動してるのか俺に簡単に説明してくれない?
cgi(まあperlとしよう)だと、ブラウザがhttpdにリクエストして、cgi(perl)を起動する。
httpdは標準出力(まあたぶんhtml)を受け取り、それを必要なら加工/整形(主にヘッダー) してブラウザに出力する。
phpはどこで誰からリクエストを受けてどうやって動いて、誰に何を出力してんの?
そしてcgiとは何が違うの?
とりあえず、cgi(perl)と違うのは、常駐して起動してるから速いんだよ、ってのは聞いたけど、それ以上は分からない。
そのへんを分かりやすく俺に教えてやってくれ
お願いします
cgi(まあperlとしよう)だと、ブラウザがhttpdにリクエストして、cgi(perl)を起動する。
httpdは標準出力(まあたぶんhtml)を受け取り、それを必要なら加工/整形(主にヘッダー) してブラウザに出力する。
phpはどこで誰からリクエストを受けてどうやって動いて、誰に何を出力してんの?
そしてcgiとは何が違うの?
とりあえず、cgi(perl)と違うのは、常駐して起動してるから速いんだよ、ってのは聞いたけど、それ以上は分からない。
そのへんを分かりやすく俺に教えてやってくれ
お願いします
2019/03/20(水) 20:16:45.35ID:G66GdUMN0
phpはcgiモードとmoduleモードがあって
cgiは呼び出し式
moduleモードは常駐式
受け取ったデータの処理の流れは一般的なcgiと同じでhttpd経由
常駐だから早いのも確かにそうだけど、標準機能のみで色々できるから、機能を都度importしない事も速さの主因
まあそれはちょっとhttpdとの関連性からは離れている話ですね
cgiは呼び出し式
moduleモードは常駐式
受け取ったデータの処理の流れは一般的なcgiと同じでhttpd経由
常駐だから早いのも確かにそうだけど、標準機能のみで色々できるから、機能を都度importしない事も速さの主因
まあそれはちょっとhttpdとの関連性からは離れている話ですね
203デフォルトの名無しさん (ワッチョイ cfda-h1+v)
2019/03/20(水) 21:25:54.44ID:DvYG4dOj0 >>202
わかったありがとう!
cgiモードとmoduleモードの選択ってのは、どこで誰(どのプログラム)が判断して決めるの?
php自身がmoduleモードで動いていて、httpdがmoduleモードで動いてるphpに対してのアクセス方法を知っているってこと?
わかったありがとう!
cgiモードとmoduleモードの選択ってのは、どこで誰(どのプログラム)が判断して決めるの?
php自身がmoduleモードで動いていて、httpdがmoduleモードで動いてるphpに対してのアクセス方法を知っているってこと?
2019/03/20(水) 21:57:05.35ID:RdYQnT9u0
.exe, .dll の違い。
例えば、sqlite3.exe, sqlite3.dll の違い
CGI は、.exe と同じ。
別プロセスを起動するから、その起動時間が掛かる
.dll は、そのプログラム(プロセス)内にライブラリを読み込むだけ。
別プロセスを起動していない
例えば、sqlite3.exe, sqlite3.dll の違い
CGI は、.exe と同じ。
別プロセスを起動するから、その起動時間が掛かる
.dll は、そのプログラム(プロセス)内にライブラリを読み込むだけ。
別プロセスを起動していない
2019/03/20(水) 22:02:24.68ID:RdYQnT9u0
Ruby, PHP, Perl などのCGI では、
httpd が別プロセスを起動して、結果を取得して、プロセスを終了させる
毎回この起動・終了に、時間が掛かるから、
起動しっ放しというモードもある
httpd が別プロセスを起動して、結果を取得して、プロセスを終了させる
毎回この起動・終了に、時間が掛かるから、
起動しっ放しというモードもある
206デフォルトの名無しさん (ワッチョイ cfda-h1+v)
2019/03/20(水) 22:07:48.21ID:DvYG4dOj0207デフォルトの名無しさん (ワッチョイ b301-dgXV)
2019/03/21(木) 09:03:31.33ID:PB8+T8io0 https://i.imgur.com/QB190U9.jpg
このプログラム実行して、43行目にphp Array to string conversion inっていうエラーが出る。ググッて見たけど分からん。
このプログラム実行して、43行目にphp Array to string conversion inっていうエラーが出る。ググッて見たけど分からん。
2019/03/21(木) 11:43:04.25ID:5nRGGgZs0
ループ足りないような
30行目のarray_chunkで$imagesは配列の配列になる
http://php.net/manual/ja/function.array-chunk.php
42行目で$imgは配列
43行目で配列($img)をechoしようとしてる
foreachを追加して2重ループにすればいいんじゃないか
30行目のarray_chunkで$imagesは配列の配列になる
http://php.net/manual/ja/function.array-chunk.php
42行目で$imgは配列
43行目で配列($img)をechoしようとしてる
foreachを追加して2重ループにすればいいんじゃないか
2019/03/21(木) 14:43:45.53ID:lAqh1JQYM
$images が文字列の配列の配列なんだから$images[$page]が文字列の配列
$imgは文字列だろ
$imgは文字列だろ
2019/03/21(木) 15:03:48.50ID:mQ6nyU1M0
>>207
とりあえず43行目あたりで print_r($img); とかやってみたら
とりあえず43行目あたりで print_r($img); とかやってみたら
211デフォルトの名無しさん (ワッチョイ b301-dgXV)
2019/03/21(木) 15:36:27.39ID:PB8+T8io0 解決しました!ありがとうございます
2019/03/21(木) 16:30:56.90ID:5nRGGgZs0
213デフォルトの名無しさん (ワッチョイ c68c-SbEy)
2019/03/21(木) 18:32:18.31ID:QCgCURXL02019/03/21(木) 19:26:17.36ID:iAqXNI0+0
質問です。
htmlソースをinclude等で読み込む際、そのソースの途中に追記する事ってできますでしょうか?
読み込むソース
<div>1行目</div>
<div>2行目</div>
<div>3行目</div>
↓
includeする時にこうしたい
<div>1行目</div>
<p>追記</p>
<div>2行目</div>
<div>3行目</div>
htmlソースをinclude等で読み込む際、そのソースの途中に追記する事ってできますでしょうか?
読み込むソース
<div>1行目</div>
<div>2行目</div>
<div>3行目</div>
↓
includeする時にこうしたい
<div>1行目</div>
<p>追記</p>
<div>2行目</div>
<div>3行目</div>
2019/03/21(木) 21:00:02.45ID:QKEEZEuZ0
$text = "<p>追記</p>";
<div>1行目</div>
<?php echo $text."\n" ?>
<div>2行目</div>
<div>3行目</div>
とか
<div>1行目</div>
<?= $text ?>
<div>2行目</div>
<div>3行目</div>
とか
<div>1行目</div>
<?php echo $text."\n" ?>
<div>2行目</div>
<div>3行目</div>
とか
<div>1行目</div>
<?= $text ?>
<div>2行目</div>
<div>3行目</div>
とか
2019/03/21(木) 21:19:06.65ID:ZeSQsBE10
Ruby, JavaScript にもある、部分テンプレートを読み込む、partial file の機能だろ。
PHP のフレームワークにもあるはず
一般的には、header, footer などの各部分は、別ファイルにして読み込んで使う
PHP のフレームワークにもあるはず
一般的には、header, footer などの各部分は、別ファイルにして読み込んで使う
2019/03/22(金) 00:15:37.10ID:j6KcVv1w0
>>215
すいません質問の仕方が悪かったです。
読み込む側のページでのみ関数みたいに個別で追記をしたいんです。
読み込まれる側のファイルにURL判別とかの細工でもしないと無理ですかね・・?
jQueryでいう、.loadしたソースにコールバックで.insertAfter();を走らせるイメージです。
すいません質問の仕方が悪かったです。
読み込む側のページでのみ関数みたいに個別で追記をしたいんです。
読み込まれる側のファイルにURL判別とかの細工でもしないと無理ですかね・・?
jQueryでいう、.loadしたソースにコールバックで.insertAfter();を走らせるイメージです。
2019/03/22(金) 00:18:51.61ID:j6KcVv1w0
2019/03/24(日) 03:24:20.66ID:u71/GScf0
include/requireは関数じゃないので返り値としてソースを受け取れないから
そのinclude/requireしたファイル内で追記してどうこうってのは無理
file_get_contentsみたいの使ってメモリにロードすれば可能
そこでロードしたソースをいじればいい
PHP標準のDOMパーサーは非常に使いづらいので正規表現がお手軽
細かい関数の使い方は調べてもらうにして
#tmpl.inc
<div>1行目</div>
<div>2行目</div>
<div>3行目</div>
#a.php
<?php
$src = file_get_contents('tmpl.inc');
~
a.phpでどうしてもinclude/requireしたものをとっておきたいならラップして
#a.php
<?php
require 'tmpl.inc';
#b.php
<?php
$src = file_get_contents('a.php');
~
そのinclude/requireしたファイル内で追記してどうこうってのは無理
file_get_contentsみたいの使ってメモリにロードすれば可能
そこでロードしたソースをいじればいい
PHP標準のDOMパーサーは非常に使いづらいので正規表現がお手軽
細かい関数の使い方は調べてもらうにして
#tmpl.inc
<div>1行目</div>
<div>2行目</div>
<div>3行目</div>
#a.php
<?php
$src = file_get_contents('tmpl.inc');
~
a.phpでどうしてもinclude/requireしたものをとっておきたいならラップして
#a.php
<?php
require 'tmpl.inc';
#b.php
<?php
$src = file_get_contents('a.php');
~
2019/03/24(日) 12:20:19.94ID:cA6CskBI0
>>219
a.php や b.php のくだりがよく分からんが、
ob_start();
include 'tmpl.inc';
$contents = ob_get_contents();
ob_end_clean();
とやる方が手っ取り早いんじゃね。
a.php や b.php のくだりがよく分からんが、
ob_start();
include 'tmpl.inc';
$contents = ob_get_contents();
ob_end_clean();
とやる方が手っ取り早いんじゃね。
2019/03/24(日) 13:02:43.00ID:3sTzwWJg0
ちゃんとやるならTwigとかを使うべきやな
2019/03/24(日) 17:37:53.78ID:VT2RwePW0
2019/03/24(日) 18:04:06.12ID:cA6CskBI0
>>222
http経由の file_get_contents なら >>219 の b.php は tmpl.inc の内容(が require で処理されたもの)が得られるけど、多分そのままやってもローカルの a.php のソース自体が得られるだけだと思うからきちんと実験した方がいいよ。
>>220 のやり方は例えばメールの文面なんかを別ファイル化したりといろいろ使い道があるよ。
mail.inc を
お問い合わせありがとうございます
<?=$date;?>に<?=$name;?>からのお問い合わせを受け付けました。
受付番号は <?=$no;?> です。
みたいに書いておいて >>220 のやり方で mail.inc を include すると、変数が当て込まれた形で $contents として得られる。
これを
list($subject, $body) = explode("¥n", $contents, 2);
とやってタイトルと本文に分離してメールを送るとかね。
$date とか $name なんかの変数は include してるスコープから見えるように設定しておく。
http経由の file_get_contents なら >>219 の b.php は tmpl.inc の内容(が require で処理されたもの)が得られるけど、多分そのままやってもローカルの a.php のソース自体が得られるだけだと思うからきちんと実験した方がいいよ。
>>220 のやり方は例えばメールの文面なんかを別ファイル化したりといろいろ使い道があるよ。
mail.inc を
お問い合わせありがとうございます
<?=$date;?>に<?=$name;?>からのお問い合わせを受け付けました。
受付番号は <?=$no;?> です。
みたいに書いておいて >>220 のやり方で mail.inc を include すると、変数が当て込まれた形で $contents として得られる。
これを
list($subject, $body) = explode("¥n", $contents, 2);
とやってタイトルと本文に分離してメールを送るとかね。
$date とか $name なんかの変数は include してるスコープから見えるように設定しておく。
2019/03/24(日) 22:28:41.20ID:VT2RwePW0
2019/03/25(月) 17:56:02.49ID:IkNYQuI20
$paramに連想配列を格納して、foreachで取り出そうとしてるんですけど
先頭要素のキーが取り出せず、先頭要素の値から取り出し始めてしまうのですが
そういう挙動に詳しい人いらっしゃいますか?
先頭要素のキーが取り出せず、先頭要素の値から取り出し始めてしまうのですが
そういう挙動に詳しい人いらっしゃいますか?
2019/03/25(月) 19:54:37.41ID:oLRasqjYM
foreach ($array as $key => $value)
にして、$keyにアクセスしてる?
にして、$keyにアクセスしてる?
2019/03/26(火) 06:30:51.59ID:3VVyorUw0
してます
var_dumpで配列を吐き出すと、しっかり吐き出せるんですけどね
こんなんで時間かかってしまって泣きですわ
var_dumpで配列を吐き出すと、しっかり吐き出せるんですけどね
こんなんで時間かかってしまって泣きですわ
2019/03/26(火) 08:52:30.14ID:rW+qOQwv0
>>227
array_keys を使うとどうなる?
array_keys を使うとどうなる?
2019/03/26(火) 11:55:41.39ID:muIRcyXB0
ありがとう
コード丸まる書き換えました
コード丸まる書き換えました
2019/03/27(水) 06:16:05.76ID:935VNAcgM
いいの?それでw
気になるわぁ
再現コードあれば欲しい
気になるわぁ
再現コードあれば欲しい
2019/03/27(水) 07:02:12.26ID:LqjZ6KSp0
初めて聞く症状だけれど
var_dumpで確認できている配列データなら
foreachで取り出せないわけないので
見間違いとか、スクリプトやタグのせいで消えてしまっているとか別の要因なんでしょ
var_dumpで確認できている配列データなら
foreachで取り出せないわけないので
見間違いとか、スクリプトやタグのせいで消えてしまっているとか別の要因なんでしょ
2019/03/27(水) 07:22:24.12ID:yj3g7joz0
だなぁ
>>226 のコードで最初のキーが取り出せず値から取れちゃうというのが、$key と $value に具体的に何が入ってるということなのか分からんな。
言葉通りに捉えれば $key に最初の要素の値が入ってるんだろうが、んじゃ $value には何が入ってるの?みたいな。
>>226 のコードで最初のキーが取り出せず値から取れちゃうというのが、$key と $value に具体的に何が入ってるということなのか分からんな。
言葉通りに捉えれば $key に最初の要素の値が入ってるんだろうが、んじゃ $value には何が入ってるの?みたいな。
2019/03/29(金) 19:38:19.41ID:DzAWjPl30
centos7でphp72をremiで入れた場合、
# php
-bash: php: コマンドが見つかりません
を解消するための、正しいシンボリックリンクの張り方ってどこに作ってどこへ向けるのが正解?
/usr/binに作るのか、
パスが通っていればどこでも良いのか、迷ってます。
インストールしたときは
# cd /bin/ ; ll | grep php
php72 -> /opt/remi/php72/root/usr/bin/php
となっています。
# php
-bash: php: コマンドが見つかりません
を解消するための、正しいシンボリックリンクの張り方ってどこに作ってどこへ向けるのが正解?
/usr/binに作るのか、
パスが通っていればどこでも良いのか、迷ってます。
インストールしたときは
# cd /bin/ ; ll | grep php
php72 -> /opt/remi/php72/root/usr/bin/php
となっています。
2019/03/30(土) 01:29:36.74ID:Ae//lPdG0
>>233
ちゃんとphp-cli入れてるか?
ちゃんとphp-cli入れてるか?
2019/03/30(土) 01:45:18.36ID:3vDAxa540
>>234
はい、入ってますが、phpは宙ぶらりんな状態になっていますので、毎回シンボリックは張る物だと思っていました。
# yum list | grep php72 | grep cli
php72-php-cli.x86_64 7.2.16-1.el7.remi @remi-safe
# which php
/usr/bin/which: no php in (/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin)
# which php72
/bin/php72
はい、入ってますが、phpは宙ぶらりんな状態になっていますので、毎回シンボリックは張る物だと思っていました。
# yum list | grep php72 | grep cli
php72-php-cli.x86_64 7.2.16-1.el7.remi @remi-safe
# which php
/usr/bin/which: no php in (/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin)
# which php72
/bin/php72
2019/03/30(土) 02:01:04.87ID:Ae//lPdG0
237デフォルトの名無しさん (ワッチョイ efad-zf8N)
2019/04/01(月) 02:47:56.82ID:6Qmf1LuG0 lineボット作ろうとしてるけど
curl_initが使えない
curl_initが使えない
2019/04/01(月) 09:14:31.30ID:ymg/4x830
参考までに、Windows 10・WSL・Ubuntu 16.04 で、python の、symbolic link は、
/usr/bin$ file python
python: symbolic link to python2.7
/usr/bin$ file python3
python3: symbolic link to python3.5
/usr/bin$ file python
python: symbolic link to python2.7
/usr/bin$ file python3
python3: symbolic link to python3.5
2019/04/01(月) 12:30:46.03ID:vaN0OZHPM
まったく参考になりませんでした。
2019/04/02(火) 07:05:50.55ID:d+tMH0Y20
241デフォルトの名無しさん (ワッチョイ ef8c-2SEu)
2019/04/03(水) 00:39:50.63ID:GW0S4nvD0 https://paiza.io/projects/Y3C9zPiRd6JDBPMpQLZx2w?language=php
こういう連想配列の中に配列入れてた時に特定の取得したいときはどうすればいい?
こういう連想配列の中に配列入れてた時に特定の取得したいときはどうすればいい?
2019/04/03(水) 01:37:44.24ID:4XO/CSdW0
Windows 10では、バージョン1803(Windows 10 April 2018 Update)で、
curlコマンドが、標準コマンドとして追加された。
ただし、Linux のcurl とは挙動が異なるかも知れない??
コマンドプロンプトで、where curl とすると、
C:\Windows\System32\curl.exe
PowerShell にも、curl というalias がある。
こちらの実体は、Invoke-WebRequest。
こちらよりも、curl.exe を使った方がよいかも
PowerShellで、gal -name curl とすると、
curl -> Invoke-WebRequest
curlコマンドが、標準コマンドとして追加された。
ただし、Linux のcurl とは挙動が異なるかも知れない??
コマンドプロンプトで、where curl とすると、
C:\Windows\System32\curl.exe
PowerShell にも、curl というalias がある。
こちらの実体は、Invoke-WebRequest。
こちらよりも、curl.exe を使った方がよいかも
PowerShellで、gal -name curl とすると、
curl -> Invoke-WebRequest
243デフォルトの名無しさん (スフッ Sdbf-zf8N)
2019/04/03(水) 13:15:08.75ID:H4sG9A7Rd2019/04/03(水) 14:20:29.53ID:zicRLWLY0
質問させてください。よろしくお願いします。
DBはsqliteというのを使っています。
DBは、user_name : 都道府県 :というカラムがあります。DB件数は1000件で、ランダムで生成しています。
formページで、都道府県を入力すると、$form_prefという変数に入力値を格納し、
DBへは、where('都道府県','$form_pref)で検索すると、検索結果は0になります。
また、where('都道府県','東京')で検索すると、検索結果は正しく検索されます。
where句で、変数によって検索をかけると、正しく検索されないのはなぜなのでしょうか?
DBはsqliteというのを使っています。
DBは、user_name : 都道府県 :というカラムがあります。DB件数は1000件で、ランダムで生成しています。
formページで、都道府県を入力すると、$form_prefという変数に入力値を格納し、
DBへは、where('都道府県','$form_pref)で検索すると、検索結果は0になります。
また、where('都道府県','東京')で検索すると、検索結果は正しく検索されます。
where句で、変数によって検索をかけると、正しく検索されないのはなぜなのでしょうか?
245デフォルトの名無しさん (オッペケ Sr4f-Xesi)
2019/04/03(水) 14:46:17.53ID:57e5+lwMr2019/04/03(水) 17:15:35.24ID:CuyxcMNZa
PHP8でJIT
2019/04/03(水) 17:16:53.55ID:r4klkqBe0
'
2019/04/03(水) 17:46:29.42ID:zicRLWLY0
2019/04/03(水) 17:52:22.54ID:ZmtTnpp/0
2019/04/03(水) 22:39:33.33ID:qlQFDRbn0
特定のフォルダ内にjpgファイルが1枚でもあるか確認する良い方法なにかありますか?
2019/04/03(水) 23:10:33.79ID:cKVyKni5a
direcoryiteratoriteratorでリスト取得してforeach
2019/04/04(木) 01:25:57.77ID:hUbHMIpd0
glob
2019/04/04(木) 07:19:16.27ID:2Mcvpa6R0
2019/04/04(木) 10:06:27.24ID:AiNrhaZA0
リストを全部取得するのではなく、jpgがあった時点でtrueを返す方法ってありますか?
数が多いファイルが含まれると遅くなってしまいました。
数が多いファイルが含まれると遅くなってしまいました。
2019/04/04(木) 10:22:52.98ID:F6RY7aLA0
dbでファイル情報管理すりゃいい
index化みたいな
index化みたいな
256デフォルトの名無しさん (ワッチョイ c6ad-I1WO)
2019/04/04(木) 10:30:53.37ID:kJslP6Nd0257デフォルトの名無しさん (ワッチョイ c6ad-I1WO)
2019/04/04(木) 10:36:26.67ID:kJslP6Nd0 個人的にはjsonが好き
258デフォルトの名無しさん (ワッチョイ 7d02-w1lf)
2019/04/04(木) 10:41:50.32ID:l5IgkZnr02019/04/04(木) 11:20:51.83ID:AiNrhaZA0
全取得してからしか調べられないようなのでglobを使っていきます。
ありがとうございました。
ありがとうございました。
2019/04/04(木) 11:24:22.32ID:8cxX9aNp0
ls *.jpg 2>/dev/null | wc -l
2019/04/04(木) 12:56:58.43ID:Rdj6YsTrM
>>254
jpgかどうかに関係なくファイルの多いディレクトリというだけで遅くなるからあきらめろ。
jpgかどうかに関係なくファイルの多いディレクトリというだけで遅くなるからあきらめろ。
2019/04/04(木) 15:38:52.96ID:j78mKFJX0
PHP始めるけどどんな環境がいいの?
IDEは多分vscode使いたい
Pythonだとインポートサジェストがvscodeにはまだないけどphpは大丈夫?
それとPythonで言うanacondaみたいなものはあるの?
鉄板とかあるの?
IDEは多分vscode使いたい
Pythonだとインポートサジェストがvscodeにはまだないけどphpは大丈夫?
それとPythonで言うanacondaみたいなものはあるの?
鉄板とかあるの?
2019/04/04(木) 21:26:26.31ID:OS5/cJ9r0
xampp
2019/04/04(木) 21:28:02.75ID:c7BBV/ypM
>>262
マルチ死ね
マルチ死ね
2019/04/05(金) 10:24:35.32ID:0lUjLeBK0
色々と調べてみるとザンプにしますか?Dockerにしますか?って感じなんだな
やっぱりLinux上でやらないと駄目かな?出来るだけ仕事現場でそのまま使えるテクノロジーで学びたいんだけど
やっぱりLinux上でやらないと駄目かな?出来るだけ仕事現場でそのまま使えるテクノロジーで学びたいんだけど
2019/04/05(金) 12:02:19.00ID:0lUjLeBK0
2019/04/05(金) 12:29:53.49ID:TOzxK/5gd
今どきサーバの知識とかいらなくね?
LaravelとかRailsは内蔵されてるし
Xamppとかいらんわ
LaravelとかRailsは内蔵されてるし
Xamppとかいらんわ
2019/04/05(金) 12:47:45.34ID:x0YMrYHD0
このスレはXAMPP派が多いらしい
開発環境ならビルトインサーバで十分だしCI環境ならDockerだろうと思うのだがねぇ
開発環境ならビルトインサーバで十分だしCI環境ならDockerだろうと思うのだがねぇ
2019/04/05(金) 12:52:11.17ID:0lUjLeBK0
>>267
違う板で未経験から働きたいならlpicとってサーバーをある程度理解してる事をアピールしたほうが良いとアドバイスされたんだよね
まぁ取ってなくても早いうちに転職活動したほうがいいとも言われたけど
違う板で未経験から働きたいならlpicとってサーバーをある程度理解してる事をアピールしたほうが良いとアドバイスされたんだよね
まぁ取ってなくても早いうちに転職活動したほうがいいとも言われたけど
2019/04/05(金) 13:06:58.84ID:RkNgF4tA0
Pythonが出来る風な口調だけど
なんでわざわざ就職考えるのにPHPなんて始めるんだっちゅう
なんでわざわざ就職考えるのにPHPなんて始めるんだっちゅう
2019/04/05(金) 13:47:55.69ID:0lUjLeBK0
Pythonの求人って全然ないよ?
2019/04/05(金) 14:33:47.22ID:RkNgF4tA0
なんでそうやってしれーっと嘘つくんだよ
indeedで東京エリアでPHPで検索して15000件
Pythonで検索して10000件だぞ
indeedで東京エリアでPHPで検索して15000件
Pythonで検索して10000件だぞ
2019/04/05(金) 15:31:48.12ID:Lpo8mNdId
それSES会社がテキトーに検索ワード盛ってるだけだろ
求人量ならJava、PHPの足元にも及ばんぞPythonとかRubyって
質は高いと思うけど
求人量ならJava、PHPの足元にも及ばんぞPythonとかRubyって
質は高いと思うけど
2019/04/05(金) 16:34:16.70ID:0lUjLeBK0
ついでに言うと東京に行く気はないわ
275デフォルトの名無しさん (ワッチョイ b901-7+iI)
2019/04/05(金) 21:01:42.24ID:8A68roIQ0 PHPのエディタ、今までAtomを使ってて、VScodeも気になるんだけどどう?
2019/04/05(金) 21:02:27.86ID:RkNgF4tA0
いやいや
今スタートアップはほとんどPythonだから
今スタートアップはほとんどPythonだから
2019/04/05(金) 21:12:50.65ID:RkNgF4tA0
Atomよりはだいぶ軽いし動作は軽快
使い勝手もほぼ一緒
まあしょせんエディタだけども
使い勝手もほぼ一緒
まあしょせんエディタだけども
2019/04/05(金) 21:54:48.30ID:OvXPdzic0
Atom重い。VScodeがいいぞ。
2019/04/05(金) 22:15:14.08ID:72+SeKx30
だよなVSだよな
280デフォルトの名無しさん (オッペケ Sr91-Raum)
2019/04/05(金) 23:37:00.69ID:PMv6rz9+r マカーはVSコードなど使わないからな
もちろんGithubも使わねえ
もちろんGithubも使わねえ
2019/04/05(金) 23:44:48.07ID:xPcsbeSU0
PHP は多いけど、低価格っぽい。
多さの順は、COBOL > Ruby > Python
Ruby は、Vagrant, Chef など、サーバー管理構築運用の仕事もあるから、
OS をよく知っている印象が強い
多さの順は、COBOL > Ruby > Python
Ruby は、Vagrant, Chef など、サーバー管理構築運用の仕事もあるから、
OS をよく知っている印象が強い
2019/04/05(金) 23:56:13.53ID:FzdQrB750
Perlは?(震え声)
2019/04/05(金) 23:58:38.98ID:xPcsbeSU0
>>266
今はLPIC じゃなくて、LinuC。
OS の機能やサーバー管理構築運用なら、Vagrant, Chef などで使われている、Ruby がお勧め。
こういうシェルスクリプトの代替機能を、面倒なPython で学ぶ必要はない!
先に、Rails よりも、Sinatra をいじくりまわせ!
YouTube に、雑食系エンジニアのKENTA の動画がある。
転職者は、見ておくべき。
PHP は、転職での評価が低い
KENTA 自身は、Ruby にそっくりな関数型言語、
Elixir のフレームワークで、ポートフォリオを作ったらしい。
ここまで行くと、年収1千万超!
今はLPIC じゃなくて、LinuC。
OS の機能やサーバー管理構築運用なら、Vagrant, Chef などで使われている、Ruby がお勧め。
こういうシェルスクリプトの代替機能を、面倒なPython で学ぶ必要はない!
先に、Rails よりも、Sinatra をいじくりまわせ!
YouTube に、雑食系エンジニアのKENTA の動画がある。
転職者は、見ておくべき。
PHP は、転職での評価が低い
KENTA 自身は、Ruby にそっくりな関数型言語、
Elixir のフレームワークで、ポートフォリオを作ったらしい。
ここまで行くと、年収1千万超!
284デフォルトの名無しさん (オッペケ Sr91-Raum)
2019/04/06(土) 00:24:48.26ID:uCKV04Asr phpで年収1800万の俺にくらべたら下じゃん
2019/04/06(土) 01:23:26.51ID:f7FNE/du0
Rails は、年収3千万円超のハーバード大学でも、教えているほど!
プログラマーなんて、年収が1/5 ぐらいになるのに、なぜ教えるのか、わからないw
プログラマーなんて、年収が1/5 ぐらいになるのに、なぜ教えるのか、わからないw
2019/04/06(土) 05:01:41.65ID:22mucI93r
OSのコマンドアプリやシェルをラップする事務員向けWebGUIみたいなのできますか?
2019/04/06(土) 05:09:54.95ID:tnKohzU7d
KENTAって人の動画をマジで信じてる人いてビビったわ
技術を煽って自分のオンラインサロンに入らせる典型的な不安ビジネスやってる人じゃん
あとあの人のポートフォリオ見たらわかるけどHelloWorldレベルのことしかやってないぞ
技術を煽って自分のオンラインサロンに入らせる典型的な不安ビジネスやってる人じゃん
あとあの人のポートフォリオ見たらわかるけどHelloWorldレベルのことしかやってないぞ
2019/04/06(土) 06:20:24.71ID:n41jBgHa0
Ruby推しにろくな人間はおらんのや
2019/04/06(土) 08:22:38.32ID:f7FNE/du0
KENTA の言ってる事は、おおむね正しい。
また、Ruby から、Elixir までやっているから、てっきりトップ・エンジニアだと思っていた
>>286
Ruby なら、`~` で囲むと、コマンドも実行できる。
puts `ls | wc -l`
1-liner なら、
ruby -e 'puts `ls | wc -l`'
だから、OS の機能や、サーバー管理構築運用のVagrant, Chef などで、Rubyが使われている
PowerShell コマンドも呼べる。
例えば、クリップボードを取得する
puts `powershell Get-Clipboard`
1-liner なら、
ruby -e 'puts `powershell Get-Clipboard`'
また、Ruby から、Elixir までやっているから、てっきりトップ・エンジニアだと思っていた
>>286
Ruby なら、`~` で囲むと、コマンドも実行できる。
puts `ls | wc -l`
1-liner なら、
ruby -e 'puts `ls | wc -l`'
だから、OS の機能や、サーバー管理構築運用のVagrant, Chef などで、Rubyが使われている
PowerShell コマンドも呼べる。
例えば、クリップボードを取得する
puts `powershell Get-Clipboard`
1-liner なら、
ruby -e 'puts `powershell Get-Clipboard`'
290デフォルトの名無しさん (ワッチョイ b901-7+iI)
2019/04/06(土) 12:01:46.77ID:I7rc3KX60 >>287
kwsk
kwsk
2019/04/06(土) 18:25:21.69ID:weoUXr5W0
ターミナルで
ruby -e 'puts `ls | wc -l`'
なんて打ってる奴いたらクビにするわw
ruby -e 'puts `ls | wc -l`'
なんて打ってる奴いたらクビにするわw
2019/04/06(土) 20:44:27.91ID:luFKN00U0
このスレなら 「PukiWikiから○○に移行したよ」って人もいそうなのでお聞きします。
いま時の 小規模向けWiki でオススメのがあったら教えてください。 PHPベースでなくても構いません。
昔 PukiWiki で個人的なメモを管理してたんですが もう何年もご無沙汰しています。
いま時の 小規模向けWiki でオススメのがあったら教えてください。 PHPベースでなくても構いません。
昔 PukiWiki で個人的なメモを管理してたんですが もう何年もご無沙汰しています。
293デフォルトの名無しさん (ワッチョイ 4901-Fply)
2019/04/11(木) 04:36:20.03ID:yaNFrze20 ローカルでしかPHP触ったことないんだけどネットに繋ぐ場合ってどんな方法ある?サーバーを借りるの以外で
2019/04/11(木) 04:50:28.27ID:Dck3yL7h0
?
2019/04/11(木) 04:55:24.76ID:FfVS6eCx0
>>293
ローカルのPCをインターネット側からアクセス可能なサーバにするとか。
ローカルのPCをインターネット側からアクセス可能なサーバにするとか。
296デフォルトの名無しさん (ワッチョイ 4901-Fply)
2019/04/11(木) 09:55:10.52ID:w1EtGven02019/04/11(木) 10:27:24.01ID:GF1IL3KP0
そのPCだけではなくルーターの設定も変えないと
2019/04/11(木) 10:42:29.96ID:GR4ezT/uM
そういう開発ニーズに応えたソフトあった気がする…
2019/04/11(木) 11:16:41.08ID:GR4ezT/uM
思い…出した!ngrokだ。flywheelでも採用されてたツール。
300デフォルトの名無しさん (ワッチョイ 4901-Fply)
2019/04/11(木) 13:36:11.50ID:vSJqsCex0 面接のポートフォリオで動いてるとこ見せたい場合1番簡単な方法って何がある?
GitHubとかに上げても動いてるとこは見れないよね
GitHubとかに上げても動いてるとこは見れないよね
2019/04/11(木) 14:00:08.37ID:8je0Y1Lmd
>>300
動画なら通信環境があれば見せられるんじゃね?
動画なら通信環境があれば見せられるんじゃね?
302デフォルトの名無しさん (ワッチョイ 4901-Fply)
2019/04/11(木) 14:36:54.31ID:1s3wCd4l0303デフォルトの名無しさん (ワッチョイ 0b82-3VJR)
2019/04/11(木) 18:37:47.44ID:ucvbVgLJ0 ファイルアップロードフォームを作って、
iPhoneから写真や動画をアップロードして、
$_Filesからファイル名を取り出すと、
6CCC151C-DF3B-486F-8C97-AA06485047BD.jpeg
こんな感じの文字列になってしまいます。
元はIMG_0000.jpgのような名称だと思います。
iPhoneからの場合はどうすれば、正しい名称になるんでしょうか?
iPhoneから写真や動画をアップロードして、
$_Filesからファイル名を取り出すと、
6CCC151C-DF3B-486F-8C97-AA06485047BD.jpeg
こんな感じの文字列になってしまいます。
元はIMG_0000.jpgのような名称だと思います。
iPhoneからの場合はどうすれば、正しい名称になるんでしょうか?
2019/04/11(木) 19:07:45.95ID:ZpA9hK1A0
phpはフロント専任だな…
305デフォルトの名無しさん (ワッチョイ b3bd-0Hjf)
2019/04/11(木) 22:38:53.56ID:ScFKV4yk0 phpでデータベースのカラムに寿命付けるのってどうすれば出来る?
takashiが一時ログインしたらタカシのデータを24時間で削除したいんやけど…
セッションやクッキーに保存するのは何か駄目な気がして。。
takashiが一時ログインしたらタカシのデータを24時間で削除したいんやけど…
セッションやクッキーに保存するのは何か駄目な気がして。。
2019/04/11(木) 22:45:31.86ID:GF1IL3KP0
cron使って定期的にアップデートかけるってのは
307デフォルトの名無しさん (ワッチョイ b3bd-0Hjf)
2019/04/11(木) 22:57:43.87ID:ScFKV4yk0 >>306
登録した時間によって削除の時間が変わったりせんかな…
なんつーか個別にイベントを発行する感じにしたいんや。
一時的に登録して登録から24時間立ったら削除するみたいな。cron使う頭いいやり方があるなら知りてえ
登録した時間によって削除の時間が変わったりせんかな…
なんつーか個別にイベントを発行する感じにしたいんや。
一時的に登録して登録から24時間立ったら削除するみたいな。cron使う頭いいやり方があるなら知りてえ
308デフォルトの名無しさん (ワッチョイ b3bd-0Hjf)
2019/04/11(木) 23:00:29.30ID:ScFKV4yk0 >>307
あっそうか。それをcronで判定すればいいのか。アホやな俺
あっそうか。それをcronで判定すればいいのか。アホやな俺
309デフォルトの名無しさん (ワッチョイ b3bd-0Hjf)
2019/04/11(木) 23:03:22.14ID:ScFKV4yk0 >>306
ありがとう😊
ありがとう😊
2019/04/12(金) 04:28:30.68ID:WO5SLys30
2019/04/12(金) 04:53:44.93ID:cg9pp3DB0
バッチ処理ですな
2019/04/12(金) 09:30:52.80ID:43Lr2rro0
>>311
手動でもバッチ処理と言うよ。
手動でもバッチ処理と言うよ。
313デフォルトの名無しさん (ワッチョイ 0b07-2loy)
2019/04/12(金) 15:57:53.38ID:DpwHJL1Z0 $array = ['name'=>'ななし','age'=>'20','sex=>'男']
という配列があるとして、
$array = ['member_name'=>'ななし','member_age'=>'20','member_sex=>'男']
と、キーにmember_を追加する方法を模索しています。
foreachで代入し直す以外に、簡単な方法はありますでしょうか?
という配列があるとして、
$array = ['member_name'=>'ななし','member_age'=>'20','member_sex=>'男']
と、キーにmember_を追加する方法を模索しています。
foreachで代入し直す以外に、簡単な方法はありますでしょうか?
2019/04/12(金) 18:10:06.99ID:zC61PQSSa
>>313
PHPの配列は原則的にハッシュマップだからそういう操作は想定してない
PHPの配列は原則的にハッシュマップだからそういう操作は想定してない
2019/04/12(金) 23:41:15.74ID:8ZS6XE5Oa
$array = [
member_name => $array[name],
...
];
member_name => $array[name],
...
];
2019/04/13(土) 00:00:28.74ID:ukoM+IiZa
$array = array_combine(array_map(function($v){
return 'member_'.$v;
} ,array_keys($array)), $array);
テストしてないけどforeachのが早そう
return 'member_'.$v;
} ,array_keys($array)), $array);
テストしてないけどforeachのが早そう
2019/04/13(土) 07:55:50.84ID:s3ds+7dN0
$array = (function($old){
foreach ($old as $k => $v) $new['member_'.$k] = $v;
return $new;
})($array);
foreachつかってかーさい
foreach ($old as $k => $v) $new['member_'.$k] = $v;
return $new;
})($array);
foreachつかってかーさい
318デフォルトの名無しさん (ワッチョイ 0bda-pBLJ)
2019/04/13(土) 08:13:54.42ID:07mRS5hZ0 正規表現で、\w と [0-9A-Za-z] とで、どちらが早いとかありますか?
小文字アルファベットだけでいい時に、[a-z] と \w のどちらも指定できるとしたら、どちらが早いでしょうか?
小文字アルファベットだけでいい時に、[a-z] と \w のどちらも指定できるとしたら、どちらが早いでしょうか?
2019/04/13(土) 08:22:34.83ID:blG/UTRx0
単に1つずつ、動的に辞書に追加してるだけだろ
結局、1つずつ、すべてを追加するだけの処理
結局、1つずつ、すべてを追加するだけの処理
2019/04/13(土) 14:50:04.75ID:CAZxfgWw0
2019/04/13(土) 15:52:33.56ID:eJqYG1GJ0
>>318
やってみればいいじゃん
やってみればいいじゃん
2019/04/13(土) 20:00:30.39ID:PdzG1dGCd
PHP実務で最低限知ってればいいことって何かありますか?
2019/04/13(土) 21:44:34.11ID:ZDNzNkLB0
なにゆえ変数の頭に必ず$がつくのでしょうか
2019/04/13(土) 22:29:04.70ID:6xQqtfoW0
$付けるのは、昔からのしきたり
2019/04/14(日) 00:12:51.92ID:fjVzHTTb0
Perlの遺伝子の名残
2019/04/14(日) 15:04:49.97ID:fAGeAUaU0
@とか%も付けよう
2019/04/14(日) 21:06:14.97ID:Y/6wcZ7O0
@(0%0)←なぜかエラーが出る
なんつって
なんつって
328デフォルトの名無しさん (ワッチョイ fbda-XGqV)
2019/04/15(月) 22:27:24.57ID:SVQji9la0 $はshiftを押さないと書けないから書きにくい
2019/04/17(水) 16:08:37.78ID:NJiBcQWA0
GETとかPOSTではfilter_inputを使えという話ですが、$_SERVERを扱うときは例外で旧来通り
直接アクセスが基本ですか?
さくらサーバーでは云々という情報が引っかかるのですが。
直接アクセスが基本ですか?
さくらサーバーでは云々という情報が引っかかるのですが。
2019/04/17(水) 16:15:23.17ID:mg3EeLZxM
filter_inputにこだわる必要なんて無いよ。
2019/04/17(水) 16:51:05.27ID:NJiBcQWA0
分かりました。ありがとうございます。
2019/04/18(木) 00:00:01.59ID:cnp/FoA8a
誰かが途中でいじってない保証はないけどな
2019/04/18(木) 00:26:01.11ID:6IoWj+aJ0
環境変数が改ざんされてたら
もうfilter_inputどうこうの次元じゃないけどな
もうfilter_inputどうこうの次元じゃないけどな
2019/04/18(木) 22:54:48.32ID:Q7jAWv/D0
例えばCで以下のようなdefineをPHPで実現するにはどうすればいいでしょうか?
#define errlog(msg) ErrorLog(__FILE__, __LINE__, msg)
初歩的ですみません。
#define errlog(msg) ErrorLog(__FILE__, __LINE__, msg)
初歩的ですみません。
2019/04/19(金) 00:46:34.22ID:lWnHrGLea
get_error_last()
2019/04/19(金) 00:49:22.10ID:S92APKW+0
phpさらっと勉強したのですが
具体的にphpで作られてるウェブサイトで、phpを公開してる奴ってありませんかね?
勉強のために見てみたいです
具体的にphpで作られてるウェブサイトで、phpを公開してる奴ってありませんかね?
勉強のために見てみたいです
2019/04/19(金) 01:06:16.70ID:bzbXvXi80
wordpress
2019/04/19(金) 06:12:27.66ID:CQvpYnEX0
WebDBアプリでソース公開されているものないですか?
デザインパターンとかも学びたいです
デザインパターンとかも学びたいです
339デフォルトの名無しさん (ササクッテロル Sp79-Br+Y)
2019/04/19(金) 13:16:13.03ID:Rb5u/z0hp 学校の課題でHTMLでHP作ってるんだけどwin10のパソコンで書いたやつを学校PC(win7)で開くと文字化けするんだがどうすればいいのか教えてくれ
340デフォルトの名無しさん (ササクッテロル Sp79-Br+Y)
2019/04/19(金) 13:19:25.89ID:Rb5u/z0hp https://i.imgur.com/8QFDaAE.jpg
こんな感じで書いた
こんな感じで書いた
341デフォルトの名無しさん (オッペケ Sr79-kqL6)
2019/04/19(金) 13:41:03.84ID:7RHvbYhAr Windows7はサポート外だからすてろ
2019/04/19(金) 14:42:39.28ID:KhPbBDNPd
>>340
SJISとかUTF-8などの文字コードを勉強して、UTF-8が使えるテキストエディタ使え。和解の
SJISとかUTF-8などの文字コードを勉強して、UTF-8が使えるテキストエディタ使え。和解の
2019/04/19(金) 15:47:12.43ID:ih/g4VJWM
URLですが.../と打ち込んだ場合
...というファイルにアクセスするのですか?
...というファイルにアクセスするのですか?
2019/04/19(金) 16:35:39.59ID:Y4E9vn3W0
>>343
ディレクトリ名で「..」は一つ上のフォルダという意味がある。点二つね。
ディレクトリ名で「..」は一つ上のフォルダという意味がある。点二つね。
2019/04/19(金) 17:59:38.21ID:er92Du55M
一つ上の男はどのように書き表しますか?
2019/04/20(土) 09:38:04.02ID:EzpoiD680
ガイアが俺にもっと輝けと囁いている
2019/04/20(土) 13:44:38.61ID:EzpoiD680
>>339
Dreamweaverで修正できるぞ
Dreamweaverで修正できるぞ
2019/04/20(土) 17:06:43.02ID:nmBhveLxa
>>339
PHPなのか?
PHPなのか?
2019/04/20(土) 17:10:50.63ID:46SaaHhXd
2019/04/21(日) 00:22:00.24ID:Aeq/r6ow0
小学生のプログラム教材見たけど、
ロボを前へ3歩右へ2歩動かす命令をみたいなやつとか
PHPの教科書と同じレベルだわ
算数で足し算とか習ってるレベルの子供にほんとに理解できるのかな?
ロボを前へ3歩右へ2歩動かす命令をみたいなやつとか
PHPの教科書と同じレベルだわ
算数で足し算とか習ってるレベルの子供にほんとに理解できるのかな?
351デフォルトの名無しさん (ワッチョイ f6ad-Eh39)
2019/04/21(日) 06:43:46.32ID:i48F5tCc0352デフォルトの名無しさん (ワッチョイ f6ad-Eh39)
2019/04/21(日) 06:46:56.90ID:i48F5tCc0 >>350
アングリーバードのプログラミング教材は面白かった
でも、プログラミングってよりブロックタイプのやつだから
アルゴリズムを考える作業が殆だよね
micro:bitのブロックで書いたコードをJSやPythonなどに変換できる機能は良いなと思った
アングリーバードのプログラミング教材は面白かった
でも、プログラミングってよりブロックタイプのやつだから
アルゴリズムを考える作業が殆だよね
micro:bitのブロックで書いたコードをJSやPythonなどに変換できる機能は良いなと思った
2019/04/21(日) 08:13:48.42ID:Aeq/r6ow0
>>352
俺見た本はぱっと見は絵が多くて小学生用なんだが普通に
条件分岐if文、ループfor文とか説明されてて
英語も算数も絡んでくるけど、今後の小中学生が脅威にかんじたわ
小さいうちから当たり前になじんでれば抵抗ないんだろうな
俺見た本はぱっと見は絵が多くて小学生用なんだが普通に
条件分岐if文、ループfor文とか説明されてて
英語も算数も絡んでくるけど、今後の小中学生が脅威にかんじたわ
小さいうちから当たり前になじんでれば抵抗ないんだろうな
2019/04/21(日) 12:58:09.77ID:g2z5hubB0
まあphpとか仕事にしてるような奴らは仕事なくなるだろな
2019/04/21(日) 19:56:01.27ID:0JlZuQqp0
>>349
...というファイル名を参照したよ
...というファイル名を参照したよ
2019/04/21(日) 22:05:37.01ID:jRd0U4G2d
357デフォルトの名無しさん (ワッチョイ 9eff-nFeC)
2019/04/24(水) 18:35:41.45ID:AdJPrH9y0 PHPでradioにチェックマークを付けたい場合、下記は間違ってますか?
<input type="radio" name="AAA" value="OK" <?php if($HEN['AAA'] === 'OK' ){ echo 'checked'; } ?> required>OK
$HEN['AAA']は確実に'ON'です。
入力フォームで入力確認画面からsubmitで最初の画面に戻すやり方です。
戻ってきてON状態にしたいのですが、なってくれません。
<input type="radio" name="AAA" value="OK" <?php if($HEN['AAA'] === 'OK' ){ echo 'checked'; } ?> required>OK
$HEN['AAA']は確実に'ON'です。
入力フォームで入力確認画面からsubmitで最初の画面に戻すやり方です。
戻ってきてON状態にしたいのですが、なってくれません。
2019/04/24(水) 19:07:44.04ID:wb+dbNkk0
2019/04/24(水) 19:12:31.45ID:AdJPrH9y0
2019/04/24(水) 19:13:17.51ID:17biHAgbd
ONとOK
2019/04/24(水) 19:13:54.31ID:gP7Kc+nL0
checkedとrequiredがつながってる可能性
2019/04/24(水) 19:15:38.78ID:gP7Kc+nL0
つーか、HTMLソース見れば一目瞭然
2019/04/24(水) 19:20:56.00ID:AdJPrH9y0
ソースをみると、
<input type="radio" name="AAA" value="OK" required>
こうなります。
OKのあとに半角2つスペースでrequired
<input type="radio" name="AAA" value="OK" required>
こうなります。
OKのあとに半角2つスペースでrequired
2019/04/24(水) 19:28:05.74ID:gP7Kc+nL0
ONとOKを間違えてるか、型が違うか。
2019/04/24(水) 19:31:32.04ID:17biHAgbd
全角と半角。
2019/04/24(水) 19:56:23.89ID:wb+dbNkk0
>>363
提案
radioをcheckboxに変えてみる
=== を == に変えてみる
if($HEN['AAA'] === 'OK' ){ echo 'checked'; } を echo 'checked'; だけにしてみる
いずれかで何か変わりませんか?
どこかに間違いがあると思うけど、提示された範囲では分からないです
提案
radioをcheckboxに変えてみる
=== を == に変えてみる
if($HEN['AAA'] === 'OK' ){ echo 'checked'; } を echo 'checked'; だけにしてみる
いずれかで何か変わりませんか?
どこかに間違いがあると思うけど、提示された範囲では分からないです
2019/04/24(水) 21:46:15.30ID:kFXKi6KY0
>>357
><input type="radio" name="AAA" value="OK" <?php if($HEN['AAA'] === 'OK' ){ echo 'checked'; } ?> required>OK
例えば、Ruby のERB なら、
<p>
Name: <%=h name %>
</p>
h は、<, > などの特殊文字を、HTML Escape する。
でも、君のはコンテンツじゃなく、属性だから、HTML Escape してはいけない
一旦、php 文を変数に入れて、その変数をそこに書けば?
ERB では、<% ~ %> は、Ruby式を実行するだけで、出力しない。
<%= ~ %> は、式を実行して、そこへ出力する
同様に、phpにも、出力する記法があるのでは?
そんな、echo などを、わざわざ使うかな?
><input type="radio" name="AAA" value="OK" <?php if($HEN['AAA'] === 'OK' ){ echo 'checked'; } ?> required>OK
例えば、Ruby のERB なら、
<p>
Name: <%=h name %>
</p>
h は、<, > などの特殊文字を、HTML Escape する。
でも、君のはコンテンツじゃなく、属性だから、HTML Escape してはいけない
一旦、php 文を変数に入れて、その変数をそこに書けば?
ERB では、<% ~ %> は、Ruby式を実行するだけで、出力しない。
<%= ~ %> は、式を実行して、そこへ出力する
同様に、phpにも、出力する記法があるのでは?
そんな、echo などを、わざわざ使うかな?
2019/04/24(水) 21:52:45.02ID:wb+dbNkk0
見た感じでは構文的な間違いはなさそうなんだよな
ただ全体を晒しているわけではないので、間違い部分が分からない
ただ全体を晒しているわけではないので、間違い部分が分からない
2019/04/24(水) 22:53:46.57ID:S39z++Og0
if($HEN['AAA'] !== 'OK' ) に試しにしてみる
2019/04/25(木) 00:24:58.08ID:sHpBR2uH0
OKっていうyvalueはちゃんと入れてるのか?
入れてないならチェックつけたらonって入ると思うけど
それは大文字ではなくて小文字のonになる
$HEN['AAA']って名前の変数は定義されてるのか?
普通に考えるとそこに入るのは$_GET['AAA']もしくは$_POST['AAA']
テンプレートエンジン使ったほうがいいと思うけど
バカ正直に書くとこんな感じになるはず
<input type="radio" name="AAA" value="OK" <?php if (isset($_POST['AAA']) && $_POST['AAA'] === 'OK') { echo 'checked '; } ?>required>
読みにくくなるが三項演算子を使えばもうちょいスッキリ書ける
もうちょい読みやすく書くと
<?php if (isset($_POST['AAA']) && $_POST['AAA'] === 'OK'): ?>
<input type="radio" name="AAA" value="OK" checked required>
<?php else: ?>
<input type="radio" name="AAA" value="OK" required>
<?php endif; ?>
>>367も言ってるけど
この条件文の前に$HENなんていう変数を本当に用意してるのであれば
その$HENの中身を'checked 'か''にするところまでやって
<input type="radio" name="AAA" value="OK" <?= $HEN ?>required>
にすりゃいいだけ
入れてないならチェックつけたらonって入ると思うけど
それは大文字ではなくて小文字のonになる
$HEN['AAA']って名前の変数は定義されてるのか?
普通に考えるとそこに入るのは$_GET['AAA']もしくは$_POST['AAA']
テンプレートエンジン使ったほうがいいと思うけど
バカ正直に書くとこんな感じになるはず
<input type="radio" name="AAA" value="OK" <?php if (isset($_POST['AAA']) && $_POST['AAA'] === 'OK') { echo 'checked '; } ?>required>
読みにくくなるが三項演算子を使えばもうちょいスッキリ書ける
もうちょい読みやすく書くと
<?php if (isset($_POST['AAA']) && $_POST['AAA'] === 'OK'): ?>
<input type="radio" name="AAA" value="OK" checked required>
<?php else: ?>
<input type="radio" name="AAA" value="OK" required>
<?php endif; ?>
>>367も言ってるけど
この条件文の前に$HENなんていう変数を本当に用意してるのであれば
その$HENの中身を'checked 'か''にするところまでやって
<input type="radio" name="AAA" value="OK" <?= $HEN ?>required>
にすりゃいいだけ
371デフォルトの名無しさん (ワッチョイ 232c-vaK/)
2019/04/26(金) 13:58:13.68ID:A/WNBxWE0 ><?= $HEN ?>required
ああ!
前後に、空白が無いから、
checkedrequired みたいに、文字列がつながって、HTML の構文エラーになるのだろう!
必ず、前後に空白を入れるべし!
ああ!
前後に、空白が無いから、
checkedrequired みたいに、文字列がつながって、HTML の構文エラーになるのだろう!
必ず、前後に空白を入れるべし!
2019/04/29(月) 12:04:33.45ID:vct+Ltv00
phpで、画像にアクセスしてきたIPを保存することってできますか?
2019/04/29(月) 12:29:23.82ID:EyyZk+++0
ダイレクトに画像アクセスされたら分からないだろう
Webサーバーのログ見るしかない
Webサーバーのログ見るしかない
2019/04/29(月) 12:48:02.00ID:vct+Ltv00
そういうものなんですね
ありがとうございます
ありがとうございます
2019/04/29(月) 17:43:20.49ID:loz4DS5aa
apacheでやっていることをphpでやるようにしたらできるぞ
2019/04/29(月) 22:11:30.94ID:iMBvrM8u0
画像は非公開領域に置いて、PHP経由で画像を出力するとかできたような
2019/04/29(月) 22:39:29.73ID:vct+Ltv00
ありがとうございます、もうちょっとphpを勉強してから
また考えてみます
また考えてみます
378デフォルトの名無しさん (ワッチョイ ff61-5AMV)
2019/05/09(木) 00:45:39.61ID:RU31sPhL02019/05/13(月) 18:40:53.35ID:roML+UDma
呼んだ関数の返り値がfalse相当でなければ、その値を返す
そうでなければ、次の関数を呼んで、その値を返す
というのをスマートに書くにはどうしたらいいですか?
return func0() || func1()
と書けばいい気がしたのですが、func0の返り値が文字列の場合、うまくいきません
そうでなければ、次の関数を呼んで、その値を返す
というのをスマートに書くにはどうしたらいいですか?
return func0() || func1()
と書けばいい気がしたのですが、func0の返り値が文字列の場合、うまくいきません
2019/05/13(月) 22:24:51.96ID:tr/4p/4f0
if (func0() !== false) {
return func0();
}
return func1();
return func0();
}
return func1();
2019/05/13(月) 23:37:45.04ID:xlLeel7b0
2回実行しやらんか
2019/05/13(月) 23:46:55.40ID:NT7m3BJtM
2019/05/14(火) 00:21:30.17ID:C/lwgk7za
??
2019/05/14(火) 00:52:38.99ID:+1EhYDa60
>>379
イマイチ何がしたいのかわからないが、↓は駄目なんだよね?
http://codepad.org/Pmd52Nk7
↓みたいに、falseで無い文字列の場合はその文字列を返したいの?
https://ideone.com/HjePmQ
イマイチ何がしたいのかわからないが、↓は駄目なんだよね?
http://codepad.org/Pmd52Nk7
↓みたいに、falseで無い文字列の場合はその文字列を返したいの?
https://ideone.com/HjePmQ
2019/05/15(水) 05:58:37.58ID:vAqxpv060
2019/05/15(水) 07:21:00.71ID:WsD3jNK80
スマートってのがばく然とし過ぎてるよ。
何を叶えたくてそういう書き方をしたいのか。
それ用の構文が用意されてるか聞いてるのかな。
COALESCE みたいなのを探してるならPHP7で ??(null合体演算子)が追加されたけど、false や 0 にも適用させたいなら合わないだろうね。
if文で書くのが見やすいしメンテもしやすくてスマートなんじゃね。
何を叶えたくてそういう書き方をしたいのか。
それ用の構文が用意されてるか聞いてるのかな。
COALESCE みたいなのを探してるならPHP7で ??(null合体演算子)が追加されたけど、false や 0 にも適用させたいなら合わないだろうね。
if文で書くのが見やすいしメンテもしやすくてスマートなんじゃね。
2019/05/15(水) 09:10:52.73ID:TijlUNhYa
戻り値がboolじゃない時点でクソなんだがな
2019/05/15(水) 16:10:31.93ID:vAqxpv060
動的言語じゃ短絡評価の型がboolじゃないのは普通だよ
2019/05/15(水) 20:27:21.35ID:+XInXPJh0
C「せやで、intやで
2019/05/16(木) 03:25:20.50ID:neNHVSKA0
CakePHPって人気無いのか?(´・ω・`)
今、参考書読み始めたばかりなんだが
今、参考書読み始めたばかりなんだが
2019/05/16(木) 15:45:22.32ID:fgD0r/Q+0
成熟したFWって感じだと思う。今から学んでも良いと思うよ
2019/05/16(木) 17:28:06.18ID:neNHVSKA0
ほうほう(´・ω・`)
2019/05/25(土) 13:44:57.44ID:BtUlhHLe0
twitterのBotを作りたいと思っています
指定ワードに引っかかったらブロックするという動作を入れたいのでアプリだと対応できなさそうです
と言うか PHP でもそもそもそんな仕様で作れるのかも分からないので参考になりそうな資料があったら教えてください
指定ワードに引っかかったらブロックするという動作を入れたいのでアプリだと対応できなさそうです
と言うか PHP でもそもそもそんな仕様で作れるのかも分からないので参考になりそうな資料があったら教えてください
2019/05/25(土) 14:07:06.16ID:ro0ZuUFGd
2019/05/25(土) 20:12:23.16ID:LACToUkl0
勉強中の身であり、変数の名前に気になるところがあるのですが、
$productName
$productColorとか、単語を並べてわかりやすくする時、2単語目は1文字目は大文字なのに、
先頭の単語は大文字にならないのをよく見受けるのですがなぜでしょうか?
$productName
$productColorとか、単語を並べてわかりやすくする時、2単語目は1文字目は大文字なのに、
先頭の単語は大文字にならないのをよく見受けるのですがなぜでしょうか?
2019/05/26(日) 01:01:52.69ID:R35t2Hzta
テキトーでええねん
2019/05/26(日) 01:15:23.48ID:mCW+tIqA0
世の中にはいろんな宗教があって、それぞれが信じる神に従ってる
何故その宗教なのか、人によって違うrだろうけど
好きなのを選べ
何故その宗教なのか、人によって違うrだろうけど
好きなのを選べ
2019/05/26(日) 01:17:46.53ID:H/eCV4+Ur
2019/05/26(日) 13:54:59.26ID:QXjH/q9Q0
phpの変数の場合は先頭に$がつくから大文字開始でもいいわなと適当に無責任に思ったりする
アンダーバー使いからでした
アンダーバー使いからでした
2019/05/26(日) 19:42:15.61ID:l16JnEYu0
レスどうもです、色々見てみました。
たしかに組織の中でルールを統一しないと色々不便があると思うので、こういうのがあるのですね。
for文のどこに半角スペースを入れるか入れないかでも悩んで居るので
できるだけ「ベタ」なやり方に沿っていたほうが良いとは思うのですが、標準化というのかわかりませんが、
そういう心構えを案内しているサイトは、何でググればいいでしょうか?
たしかに組織の中でルールを統一しないと色々不便があると思うので、こういうのがあるのですね。
for文のどこに半角スペースを入れるか入れないかでも悩んで居るので
できるだけ「ベタ」なやり方に沿っていたほうが良いとは思うのですが、標準化というのかわかりませんが、
そういう心構えを案内しているサイトは、何でググればいいでしょうか?
2019/05/26(日) 19:44:56.69ID:kz8BVyYaa
psr
2019/05/26(日) 19:46:34.19ID:zbyp88Owd
PHP コーディング規約
2019/05/26(日) 19:55:20.42ID:4NUXcUki0
glassfishは使えますか?
また、類似のものはありますか?
また、類似のものはありますか?
2019/05/28(火) 07:44:27.33ID:qfX7VqbU0
2019/06/02(日) 05:20:27.00ID:+gCp7rkB0
ファイルの読み書きの練習でカウンターを始めたのですが、とりあえずロック無しやエラー分岐無しでも上手く動かず
var_dumpなる便利なものがあるので使ったところ、
string(3) "1 " string(3) "1 " あなたは1 人目のお客様です、 と出るようで
文字列で読んでいるため ++が効かないようです。
ただ、$count = $count = 1;とすると
string(3) "1 "
Notice: A non well formed numeric value encountered in c:\********\counter\index.php on line 7
int(2) あなたは2人目のお客様です
とファイルには1を足されて書き込めるのですが、$count++; を使って動くようにするためにはどうすればいいでしょうか。
<?php
$counter_file = "count.dat";
$counter_length = 5;
$fp = fopen($counter_file, "r+" );
$count = fgets($fp, $counter_length);
var_dump($count);
$count++;
var_dump($count);
rewind($fp);
fputs($fp, $count);
fclose($fp);
echo 'あなたは'.$count.'人目のお客様です';
?>
var_dumpなる便利なものがあるので使ったところ、
string(3) "1 " string(3) "1 " あなたは1 人目のお客様です、 と出るようで
文字列で読んでいるため ++が効かないようです。
ただ、$count = $count = 1;とすると
string(3) "1 "
Notice: A non well formed numeric value encountered in c:\********\counter\index.php on line 7
int(2) あなたは2人目のお客様です
とファイルには1を足されて書き込めるのですが、$count++; を使って動くようにするためにはどうすればいいでしょうか。
<?php
$counter_file = "count.dat";
$counter_length = 5;
$fp = fopen($counter_file, "r+" );
$count = fgets($fp, $counter_length);
var_dump($count);
$count++;
var_dump($count);
rewind($fp);
fputs($fp, $count);
fclose($fp);
echo 'あなたは'.$count.'人目のお客様です';
?>
2019/06/02(日) 06:57:52.85ID:+gCp7rkB0
×:ただ、$count = $count = 1;とすると
○:ただ、$count = $count + 1;とすると
です、すいません。
○:ただ、$count = $count + 1;とすると
です、すいません。
2019/06/02(日) 11:07:27.99ID:mXZMYbpt0
$count = intval(trim(fgets($fp, $counter_length)));
2019/06/02(日) 22:38:21.40ID:8A/taE5v0
>>405
string(3) ってのは長さ 3 の文字列ということを示してるから、カウンタファイルにカウント値に続いてスペースとか改行コードがくっついてるんだろうね。
fgets した値を trim すればいいんじゃないかな。
文字列変数を数値としてそのまま計算することは可能だから、intval は必須ではない。
あと fgets や fputs じゃなく fread と fwrite を使ってはいかが。
string(3) ってのは長さ 3 の文字列ということを示してるから、カウンタファイルにカウント値に続いてスペースとか改行コードがくっついてるんだろうね。
fgets した値を trim すればいいんじゃないかな。
文字列変数を数値としてそのまま計算することは可能だから、intval は必須ではない。
あと fgets や fputs じゃなく fread と fwrite を使ってはいかが。
409デフォルトの名無しさん (ワッチョイ 731a-yJVk)
2019/06/03(月) 00:23:29.48ID:6fgKmexV0 PHPにおける連想配列はキーが文字列の場合を指すのでしょうか?
$yasai = [1 => 'キャベツ', 'にんじん', 'レタス', 'トマト'];
これはキーが1から始まる整数ですが、
プログラマが指定しているので連想配列ですか?
$yasai = [1 => 'キャベツ', 'にんじん', 'レタス', 'トマト'];
これはキーが1から始まる整数ですが、
プログラマが指定しているので連想配列ですか?
2019/06/03(月) 01:48:26.16ID:AHqJ7vTG0
>>408
なんとなく使い出したatomの仕様でした。
datファイルを1バイトの文字だけ書いて上書き保存すると0A0Dの文字コードが足されていました・・・
string(3)というのが不思議だったのですが、自分で1バイトなのになぜ?と思い込みが強く気付くのが遅れてしまいました。
fread, fwriteというのがあるのですね。
検索すると色々出てきたりするのですが、どれも正しいものと思っていたのですが、
時代的に推奨されない関数などがあるようで、そのあたりの見極めが良くなりたいです。
>>407
excelの関数でたくさん入れ子になったものを見たことがあります、こんな感じでまとめられるのですね。
なんとなく使い出したatomの仕様でした。
datファイルを1バイトの文字だけ書いて上書き保存すると0A0Dの文字コードが足されていました・・・
string(3)というのが不思議だったのですが、自分で1バイトなのになぜ?と思い込みが強く気付くのが遅れてしまいました。
fread, fwriteというのがあるのですね。
検索すると色々出てきたりするのですが、どれも正しいものと思っていたのですが、
時代的に推奨されない関数などがあるようで、そのあたりの見極めが良くなりたいです。
>>407
excelの関数でたくさん入れ子になったものを見たことがあります、こんな感じでまとめられるのですね。
2019/06/03(月) 09:41:17.43ID:3s7VSFTB0
>>410
php では fputs と fwrite は全く一緒。
C なんかだと文字列長をサイズなり終端文字なりで示す必要があるので、その示し方の違いで関数が別れてる。
php の変数は文字列の長さを変数自体が知っているから、fputs と fwrite に違いを付けようがない。
fgets については、改行かファイル終端まで、または指定サイズに達するまで読み込むが、fread は改行で読み取りをやめない点が違う。
対象のファイルが改行区切りのテキストファイルを読む場合は fgets が便利に使えることも多い。
でも今回のカウンタファイルはカウント値がひとつ書いてあるだけのファイルだから fgets でも fread でも表向きの結果は一緒だけど、
それでも fgets は改行を探しながら読み取る分少し遅いことが予想される。
そもそも fgets を使う場面では、そのファイルが改行で区切られていることを暗に示しているので、今回の使用を表すコードとしては適切と言えない。
php では fputs と fwrite は全く一緒。
C なんかだと文字列長をサイズなり終端文字なりで示す必要があるので、その示し方の違いで関数が別れてる。
php の変数は文字列の長さを変数自体が知っているから、fputs と fwrite に違いを付けようがない。
fgets については、改行かファイル終端まで、または指定サイズに達するまで読み込むが、fread は改行で読み取りをやめない点が違う。
対象のファイルが改行区切りのテキストファイルを読む場合は fgets が便利に使えることも多い。
でも今回のカウンタファイルはカウント値がひとつ書いてあるだけのファイルだから fgets でも fread でも表向きの結果は一緒だけど、
それでも fgets は改行を探しながら読み取る分少し遅いことが予想される。
そもそも fgets を使う場面では、そのファイルが改行で区切られていることを暗に示しているので、今回の使用を表すコードとしては適切と言えない。
2019/06/03(月) 09:43:52.91ID:3s7VSFTB0
2019/06/03(月) 18:57:23.86ID:lAZ+x+Rt0
行というのは改行で終わるものだからね
2019/06/05(水) 02:56:36.81ID:a7gcDC7N0
遅くなってすいません。
カウンターのデータとしてあるべき姿ではありませんが、複数行に数字を書いたファイルを
fgetとfreadを使って読むと、fgetは改行付きの1行、freadはすべての数字と改行を読みましたが、
意外と後者でも1つ目の数字だけをインクリメントして書き戻しました。
最終的にはLAMP環境でDBとの読み書きを行いたいのですが、
やはりアプリケーションのログとかをディレクトリ内で追記することを考えると
ファイルの読み書きコマンドは必須ですよね。
カウンターのデータとしてあるべき姿ではありませんが、複数行に数字を書いたファイルを
fgetとfreadを使って読むと、fgetは改行付きの1行、freadはすべての数字と改行を読みましたが、
意外と後者でも1つ目の数字だけをインクリメントして書き戻しました。
最終的にはLAMP環境でDBとの読み書きを行いたいのですが、
やはりアプリケーションのログとかをディレクトリ内で追記することを考えると
ファイルの読み書きコマンドは必須ですよね。
415デフォルトの名無しさん (スプッッ Sddb-Gzfa)
2019/06/09(日) 12:58:24.47ID:FDYkpc7vd オススメな本ある?
416デフォルトの名無しさん (ワッチョイ 768c-EjMK)
2019/06/15(土) 23:50:27.88ID:6CnMECf20 データベースに書き込みコードを作ったんだけどどうしてもカラムがカラムとして認識されなくてエラーになるんだけどなぜか教えてくれ
$sql = "INSERT INTO comments(
number, name, time, comment←ここ
) VALUES (
'', '$myname', '$time', '$comment'
)";
$sql = "INSERT INTO comments(
number, name, time, comment←ここ
) VALUES (
'', '$myname', '$time', '$comment'
)";
2019/06/15(土) 23:59:21.35ID:sjL7iEiN0
>>409
型が不定型なら連想配列なんじゃね
型が不定型なら連想配列なんじゃね
2019/06/16(日) 00:00:24.76ID:RqGVrKm70
>>416
desc comments か show create table comments の結果を見せて
desc comments か show create table comments の結果を見せて
419デフォルトの名無しさん (ワッチョイ 768c-EjMK)
2019/06/16(日) 00:46:03.82ID:mnCyhttK0 `number`
`name`
`time`
`comment`
`name`
`time`
`comment`
2019/06/16(日) 00:53:30.95ID:QegIZpn+d
BUCK-TICK
2019/06/16(日) 00:54:21.78ID:iLpQBBTE0
エラーの内容くらい貼れよ
422デフォルトの名無しさん (ワッチョイ 768c-EjMK)
2019/06/16(日) 01:16:21.26ID:mnCyhttK0 >>416
解決しました、このコードの前の変数代入のスペルミスでした、お騒がせしました
解決しました、このコードの前の変数代入のスペルミスでした、お騒がせしました
2019/06/16(日) 01:35:18.28ID:nxr18ojea
sqlインジェクション
2019/06/16(日) 01:43:15.14ID:z9IiVZ7F0
自分で、SQL 文を組み立てて送信するのは、
SQLインジェクションもあり、お勧めできない!
フレームワークには、O/R マッパーが付いている
Ruby on Rails を知っているなら、CakePHP も出来る。
CakePHPは、Rails のコピーだから!
掌田津耶乃が、CakePHPの本も書いてる。
彼は、ほとんどのフレームワーク・ゲームエンジンの本も書いてる
SQLインジェクションもあり、お勧めできない!
フレームワークには、O/R マッパーが付いている
Ruby on Rails を知っているなら、CakePHP も出来る。
CakePHPは、Rails のコピーだから!
掌田津耶乃が、CakePHPの本も書いてる。
彼は、ほとんどのフレームワーク・ゲームエンジンの本も書いてる
2019/06/17(月) 04:24:41.50ID:uk/AI0sh0
in とか like とか動的な条件式を構成する程度のありふれたことをやるにもおかしなラッパやライブラリを作るハメになるから、
SQLインジェクション対策ごときで有りもののフレームワークに拘る必要なんて全く無い。
SQLインジェクション対策ごときで有りもののフレームワークに拘る必要なんて全く無い。
2019/06/17(月) 08:29:41.28ID:1fS1Pgsf0
プレースホルダ使えばいいじゃん
2019/06/17(月) 08:48:58.25ID:uk/AI0sh0
>>426
だからPDOで充分じゃん。
でもPDOの名前つきプレースホルダは、値を入れる連想配列に余剰な項目があるとエラーになっちゃうのがイケてないんだよな。
いくつかSQLを続けて発行しようと思っても、同じ連想配列の使い回しがやりづらい、というか実質できない。
なんでこんな余計なお世話の仕様にした。
だからPDOで充分じゃん。
でもPDOの名前つきプレースホルダは、値を入れる連想配列に余剰な項目があるとエラーになっちゃうのがイケてないんだよな。
いくつかSQLを続けて発行しようと思っても、同じ連想配列の使い回しがやりづらい、というか実質できない。
なんでこんな余計なお世話の仕様にした。
2019/06/17(月) 09:16:38.19ID:1fS1Pgsf0
そのつもりで言ったんだけどね
2019/06/18(火) 00:39:27.92ID:90gU7PyPa
PHP7.2をインストールしたサーバから外部サイトを取得しているfile_get_contentsで
SSL routines:ssl3_get_server_certificate:certificate verify failed
というエラーが出たので
ググったところ、サーバのSSL証明書ファイルが古かったりうまく設定できていない時に出るエラーのようでした
ググった先の情報に従って、
opensslをアップデートしてから、php.iniで
openssl.cafile=/etc/ssl/certs/ca-bundle.crt
と設定したのですが現象は変わらず(phpinfoで設定の反映は確認済み)
http://curl.haxx.se/ca/cacert.pem
を取得してそれをopenssl.cafileに設定しても、やはり現象に変化なしでした
しかたなくfile_get_contentsのオプションでverify_peerとverify_peer_nameをfalseにして、
証明書のチェック自体をしないようにしたらエラーは消えましたが、
なぜ証明書ファイルを設定してもエラーになったのかが気になります
どんな原因が考えられるでしょうか?
SSL routines:ssl3_get_server_certificate:certificate verify failed
というエラーが出たので
ググったところ、サーバのSSL証明書ファイルが古かったりうまく設定できていない時に出るエラーのようでした
ググった先の情報に従って、
opensslをアップデートしてから、php.iniで
openssl.cafile=/etc/ssl/certs/ca-bundle.crt
と設定したのですが現象は変わらず(phpinfoで設定の反映は確認済み)
http://curl.haxx.se/ca/cacert.pem
を取得してそれをopenssl.cafileに設定しても、やはり現象に変化なしでした
しかたなくfile_get_contentsのオプションでverify_peerとverify_peer_nameをfalseにして、
証明書のチェック自体をしないようにしたらエラーは消えましたが、
なぜ証明書ファイルを設定してもエラーになったのかが気になります
どんな原因が考えられるでしょうか?
2019/06/18(火) 01:05:53.87ID:90gU7PyPa
>>429
もしかして読み込み先のサーバに問題があるのでは?
と思ってhttps://yahoo.co.jp/をfile_get_contentsで取得してみたら、
エラーは出ませんでした
そこで読み込み先のサイトをブラウザで表示して、証明書を確認したところ、
有効期間が2019/6/14~になっていました
つまり、最近証明書を更新したようです
file_get_contentsでは古い証明書を取得しまっている、ということだと思いますが
何故そんなことが起きるのでしょうか?
どうすれば解決できますか?
もしかして読み込み先のサーバに問題があるのでは?
と思ってhttps://yahoo.co.jp/をfile_get_contentsで取得してみたら、
エラーは出ませんでした
そこで読み込み先のサイトをブラウザで表示して、証明書を確認したところ、
有効期間が2019/6/14~になっていました
つまり、最近証明書を更新したようです
file_get_contentsでは古い証明書を取得しまっている、ということだと思いますが
何故そんなことが起きるのでしょうか?
どうすれば解決できますか?
431デフォルトの名無しさん (ワッチョイ 1ab0-bbbA)
2019/06/18(火) 06:22:32.87ID:3nOE2mBA0 プログラム板にキチガイ降臨中!botに一晩も反応する異常さ
一般人(学校恩師)に殺害予告をしているのでスレ建て通報してください。
https://mevius.5ch.net/test/read.cgi/tech/1559872586/
142 名前:a4 ◆700L1Efzuv 投稿日:2019/06/18(火) 05:29:55 ID://qVkzO
>>141
名古屋の人な 俺ね、君の問題を大橋先生と混ぜないことにする。つまりね、
片桐孝洋のことをボコろうと思う。普通に顎の骨を折る。これくらいで警察来るか?
一般市民とかさ、普通にさ、俺らの秘密なんだけどさ、日本人なんて復活ねーから。
一般人(学校恩師)に殺害予告をしているのでスレ建て通報してください。
https://mevius.5ch.net/test/read.cgi/tech/1559872586/
142 名前:a4 ◆700L1Efzuv 投稿日:2019/06/18(火) 05:29:55 ID://qVkzO
>>141
名古屋の人な 俺ね、君の問題を大橋先生と混ぜないことにする。つまりね、
片桐孝洋のことをボコろうと思う。普通に顎の骨を折る。これくらいで警察来るか?
一般市民とかさ、普通にさ、俺らの秘密なんだけどさ、日本人なんて復活ねーから。
2019/06/18(火) 17:22:41.03ID:HA3mKCJN0
ファイルの書き出し処理で分からないことがあったので質問します
Windowsでファイル名に使えない文字がありますよね
日本語だと、全角文字に置き換えるということができますが
海外だと、どんな方法で対処してるのでしょうか?
英語というか、1バイト文字でどう回避してるのか、よく分からないです
全部 _(アンダースコア)で置き換えとか?
Windowsでファイル名に使えない文字がありますよね
日本語だと、全角文字に置き換えるということができますが
海外だと、どんな方法で対処してるのでしょうか?
英語というか、1バイト文字でどう回避してるのか、よく分からないです
全部 _(アンダースコア)で置き換えとか?
2019/06/24(月) 20:15:24.96ID:m1x6Lozf0
音楽ファイルなんかでよく見るけど予約文字は大体アンダースコアになってるね
アポストロフィや?は省略されてることが多い
アポストロフィや?は省略されてることが多い
2019/06/24(月) 20:38:24.35ID:OkN3wkON0
XML文字参照とかコードポイントとか
2019/07/03(水) 08:09:50.05ID:NH/ScEyz0
単一のphpで、1つのinput textからポストしてデータベースに接続してselectしてレコードを
input textの下に表示する、というコードを書いて動いたのは嬉しいのですが、
functionは使っていません。
いずれclassの中にfunctionを入れたいのですが、私のphp部分なら30行ぐらいのコードでもそういう
ことができるのでしょうか?
人のコードで、functionばかりあって、最後に
main();
みたいなのがありますが、それが行き着く先の形なのでしょうか。
input textの下に表示する、というコードを書いて動いたのは嬉しいのですが、
functionは使っていません。
いずれclassの中にfunctionを入れたいのですが、私のphp部分なら30行ぐらいのコードでもそういう
ことができるのでしょうか?
人のコードで、functionばかりあって、最後に
main();
みたいなのがありますが、それが行き着く先の形なのでしょうか。
2019/07/03(水) 08:11:47.66ID:NH/ScEyz0
補足です。
sqlインジェクションとかXSSとかの対策も知らないのでそのままではダメですが、
自分なりの堅牢なfunctionを作って、それを組み合わせるというのがphpプログラマーなのでしょうか。
sqlインジェクションとかXSSとかの対策も知らないのでそのままではダメですが、
自分なりの堅牢なfunctionを作って、それを組み合わせるというのがphpプログラマーなのでしょうか。
2019/07/03(水) 11:15:42.58ID:XrINKmpg0
>>435
「PHP デザインパターン」で検索
「PHP デザインパターン」で検索
2019/07/03(水) 18:55:14.56ID:NH/ScEyz0
>>437
ありとうございます。デザインパターンで検索するとちょっと内容が濃すぎました。
オンラインの学習でclassやextendを使った内容は一通りやってみたのですが、
既存のfunction無しのコードを、classやfunctionありのコードに直すのではなくて、
始めから書き直すことになりそうですね。
ありとうございます。デザインパターンで検索するとちょっと内容が濃すぎました。
オンラインの学習でclassやextendを使った内容は一通りやってみたのですが、
既存のfunction無しのコードを、classやfunctionありのコードに直すのではなくて、
始めから書き直すことになりそうですね。
2019/07/03(水) 19:37:45.44ID:G8Yh9hPC0
>>438
「PHP リファクタリング」で検索
リファクタリングして、デザインパターンに寄せるのがいい設計のひとつ。
30行ぐらいのコードでも機能が3つあれば、10行ずつ3つに分けてfunctionにしてもいい。
そして、それをまとめて1つのclassにしてもいい。
試しにfunction化して動かしてみて、それが出来たら更にclass化して動かしてみればいいよ。
思ったより簡単に動くから。
「PHP リファクタリング」で検索
リファクタリングして、デザインパターンに寄せるのがいい設計のひとつ。
30行ぐらいのコードでも機能が3つあれば、10行ずつ3つに分けてfunctionにしてもいい。
そして、それをまとめて1つのclassにしてもいい。
試しにfunction化して動かしてみて、それが出来たら更にclass化して動かしてみればいいよ。
思ったより簡単に動くから。
2019/07/03(水) 19:50:35.07ID:NH/ScEyz0
>>439
>試しにfunction化して動かしてみて
そうですね、恐らく自分の書いているのはifとメソッドと呼ばれるものを上から書いているだけなので、
function化をやってみたいと思います。
リファクタリングの単語ありがとうございます、今ではデザインパターンよりこっちのほうが
合っていると思います。
>試しにfunction化して動かしてみて
そうですね、恐らく自分の書いているのはifとメソッドと呼ばれるものを上から書いているだけなので、
function化をやってみたいと思います。
リファクタリングの単語ありがとうございます、今ではデザインパターンよりこっちのほうが
合っていると思います。
441デフォルトの名無しさん (ワッチョイ 2d23-hmOa)
2019/07/03(水) 19:54:06.45ID:5B/jgT3f0 PhpOffice¥PhpSpreadsheetの質問です
$sheet->getCell()->getValue()メソッドでセルの値をとっているのですが
エクセル側でセルの内容が装飾されているとき
プレーンテキストではなく
object(PhpOffice¥PhpSpreadsheet¥RichText¥RichText)
として返ってきます
これをサラっとプレーンテキストにするにはどうしたらよいでしょか?
$sheet->getCell()->getValue()メソッドでセルの値をとっているのですが
エクセル側でセルの内容が装飾されているとき
プレーンテキストではなく
object(PhpOffice¥PhpSpreadsheet¥RichText¥RichText)
として返ってきます
これをサラっとプレーンテキストにするにはどうしたらよいでしょか?
2019/07/03(水) 22:29:59.38ID:/WAsDrGXa
443デフォルトの名無しさん (アウアウカー Sac7-Fupf)
2019/07/04(木) 12:55:34.62ID:MdrCWp24a ありがとー
2019/07/05(金) 22:39:00.25ID:tMJYpT0L0
いいってことよ
2019/07/08(月) 08:03:24.67ID:lXAN+HQL0
DB板が過疎化しているので、こちらで聞きたいのですが、
phpのページにアクセスするとカウンターの値をデータベースから取得して、
1足して表示して、その値をupdateしたいのですが、
DBのcounterテーブルにはcountカラムだけあり、値を入れています。
MariaDB [web]> select * from web.counter;
+-------+
| count |
+-------+
| 1 |
+-------+
カウンターを上げようとするとエラーが出るのですが、
MariaDB [web]> updete web.counter set count=2;
ERROR 1064 (42000): You have an error in your SQL syntax;
2カラムにして、name=count, value=1みたいなテーブルを作って
whereを使ってupdateするのが正しいやり方なのでしょうか?
1カラムではそもそも無理があるのでしょうか。
phpのページにアクセスするとカウンターの値をデータベースから取得して、
1足して表示して、その値をupdateしたいのですが、
DBのcounterテーブルにはcountカラムだけあり、値を入れています。
MariaDB [web]> select * from web.counter;
+-------+
| count |
+-------+
| 1 |
+-------+
カウンターを上げようとするとエラーが出るのですが、
MariaDB [web]> updete web.counter set count=2;
ERROR 1064 (42000): You have an error in your SQL syntax;
2カラムにして、name=count, value=1みたいなテーブルを作って
whereを使ってupdateするのが正しいやり方なのでしょうか?
1カラムではそもそも無理があるのでしょうか。
2019/07/08(月) 08:17:27.48ID:lXAN+HQL0
すみません、自決しました。
コマンドのスペルミスでした。
コマンドのスペルミスでした。
2019/07/08(月) 09:21:34.11ID:QKT/WDgRM
じゃあ昔DB板にいた人たちは今どこにいるんだろ?まさかTwitterとか?w
2019/07/08(月) 09:27:15.95ID:lXAN+HQL0
DB板の1-3番目はoracleですが、
3番目のスレッドは2003年のスレ立てから16年経っても250スレしかないぐらいですね・・・
3番目のスレッドは2003年のスレ立てから16年経っても250スレしかないぐらいですね・・・
2019/07/08(月) 12:07:56.39ID:0IJIq/+j0
DB板は比較的過疎だけど、
マイナーなDBMSでなければ
質問すれば回答してくれるよ
MariaならMySQLスレで聞けば良い
マイナーなDBMSでなければ
質問すれば回答してくれるよ
MariaならMySQLスレで聞けば良い
2019/07/08(月) 17:33:13.10ID:6c0OwKHja
>>446
自決したか
自決したか
2019/07/09(火) 00:40:05.87ID:U2Ej2IFy0
unixタイムスタンプで
mktime(0,0,0,1,2,1970);
1970年1月2日0時0分0秒(1日後)
を実行すると82800秒と1日の秒数より1時間少ない結果が出るので
次に1970年1月3日0時0分0秒(2日後)を試し
169200と23時間+1日という結果が出ました
これはどういう仕様なのでしょうか?
何か見落としてますか?
mktime(0,0,0,1,2,1970);
1970年1月2日0時0分0秒(1日後)
を実行すると82800秒と1日の秒数より1時間少ない結果が出るので
次に1970年1月3日0時0分0秒(2日後)を試し
169200と23時間+1日という結果が出ました
これはどういう仕様なのでしょうか?
何か見落としてますか?
2019/07/09(火) 00:55:35.31ID:lRtOoeh80
タイムゾーンがGMT+1の所になってるんじゃね?
2019/07/09(火) 01:04:45.72ID:U2Ej2IFy0
454デフォルトの名無しさん (ササクッテロル Sp87-TcNW)
2019/07/09(火) 10:23:45.55ID:JD/7/fU5p セミコロンを文字列としてechoしようとするとエラーが出るので、エスケープしようと思うのですがバックスラッシュが効きません
どうしたらいいでしょうか?
どうしたらいいでしょうか?
455デフォルトの名無しさん (ワッチョイ 2301-TcNW)
2019/07/09(火) 19:14:00.22ID:EvaqxK5+0 >>454ですがくだらなすぎました
phpのバージョン上げたら解決しました
phpのバージョン上げたら解決しました
2019/07/09(火) 21:07:19.77ID:U2Ej2IFy0
php.iniファイルのdate.timezoneをasia/tokyoに変更したらうまくいきました
ありがとうございました。
ありがとうございました。
2019/07/10(水) 02:09:59.48ID:DphKO2vD0
mb_send_mailでメール送信すると、特定のアドレスに送信するとuser unkownになって送れない
これってsmtpの設定をしなくて直接受信サーバーを叩きにいってしまうからダメなのかな
phpmailerとかにすれば解決すると思う?
これってsmtpの設定をしなくて直接受信サーバーを叩きにいってしまうからダメなのかな
phpmailerとかにすれば解決すると思う?
458デフォルトの名無しさん (ワッチョイ b6ba-YtL5)
2019/07/11(木) 17:07:45.46ID:Jm+T6ApQ0 ウインドウズ10で
include_once "C:/folder1/folder2/mytest.php";
みたいな絶対パス指定してphpファイルを読み込んで実行する事は出来ないの?
include_once "C:/folder1/folder2/mytest.php";
みたいな絶対パス指定してphpファイルを読み込んで実行する事は出来ないの?
2019/07/11(木) 19:21:54.84ID:xCkJ5LaR0
ローカルにあるHTML ファイルを、ブラウザで読み込める
file:///C:/Users/Owner/Documents/index.html
ローカルにあるHTML ファイル内で、ローカルの相対パスを読み込める
<script type="text/javascript" src="../jQuery/jquery-3.1.0.js"></script>
<script src="test.js"></script>
ローカルにあるHTML ファイル内で、ローカルにある画像も読み込める
<img src="C:/Users/Owner/Pictures/a.png">
<img src="C:/Users/Owner/Pictures/b.jpg">
ローカルにあるRuby ファイル内で、ローカルの相対パスを読み込める
require_relative "../my_utility.rb"
file:///C:/Users/Owner/Documents/index.html
ローカルにあるHTML ファイル内で、ローカルの相対パスを読み込める
<script type="text/javascript" src="../jQuery/jquery-3.1.0.js"></script>
<script src="test.js"></script>
ローカルにあるHTML ファイル内で、ローカルにある画像も読み込める
<img src="C:/Users/Owner/Pictures/a.png">
<img src="C:/Users/Owner/Pictures/b.jpg">
ローカルにあるRuby ファイル内で、ローカルの相対パスを読み込める
require_relative "../my_utility.rb"
2019/07/11(木) 19:25:03.65ID:BpuSRQy60
今php.exeが配布してるか知らないが
php.exe -filename.php
的なことができるかも
php.exe -filename.php
的なことができるかも
2019/07/11(木) 19:26:02.93ID:At9Pc1xnM
Rubyファイルは読み込めないな。
そんなゴミ入れてないからwww
そんなゴミ入れてないからwww
2019/07/11(木) 20:28:52.35ID:dVCZh9+R0
XAMPP使えば、phpをコマンドラインから実行できるぞ。
463デフォルトの名無しさん (ワッチョイ b6ba-YtL5)
2019/07/11(木) 20:36:27.66ID:Jm+T6ApQ0 >>459
458の答えを教エロ下さい。
458の答えを教エロ下さい。
2019/07/11(木) 20:53:35.20ID:dVCZh9+R0
465デフォルトの名無しさん (ワッチョイ b6ba-YtL5)
2019/07/11(木) 21:07:42.46ID:Jm+T6ApQ0 >>464
include_onceで使えますか?
include_onceで使えますか?
2019/07/11(木) 21:13:16.43ID:dVCZh9+R0
467デフォルトの名無しさん (ワッチョイ b6ba-YtL5)
2019/07/11(木) 21:16:19.19ID:Jm+T6ApQ0 >>466
試したが出来ないんだよね。
試したが出来ないんだよね。
2019/07/11(木) 21:18:05.78ID:dVCZh9+R0
>>467
じゃあ、エラーメッセージを確認して。phpはローカルにあるの?
じゃあ、エラーメッセージを確認して。phpはローカルにあるの?
469デフォルトの名無しさん (ワッチョイ b6ba-YtL5)
2019/07/11(木) 21:24:45.41ID:Jm+T6ApQ0 分からん
2019/07/11(木) 21:26:20.82ID:dVCZh9+R0
PHPがローカルにないなら、サーバー側のPHPからローカルファイルにはアクセスできない。アップロードするかなんかしないといけないよ。
471デフォルトの名無しさん (ワッチョイ b6ba-YtL5)
2019/07/11(木) 21:27:35.31ID:Jm+T6ApQ0 >>470
PHPはローカルにある
PHPはローカルにある
2019/07/11(木) 21:32:33.57ID:dVCZh9+R0
初心者は、最初に警告やエラーが見えるようにPHPを設定した方がいいよ。
2019/07/11(木) 21:34:41.35ID:dVCZh9+R0
パスに一字でも間違いはない? 全角・半角が間違ってない?
2019/07/11(木) 22:44:38.90ID:Tg5RlGHB0
そもそもphpだからって、
Webサーバでしか動かしてはいけない、
なんてルールはないと思うが
シェルスクリプトとかpythonみたいに使ったら良いと思うの
Webサーバでしか動かしてはいけない、
なんてルールはないと思うが
シェルスクリプトとかpythonみたいに使ったら良いと思うの
475デフォルトの名無しさん (ワッチョイ b6ba-YtL5)
2019/07/12(金) 03:54:57.52ID:B1okfPjL02019/07/12(金) 19:38:28.33ID:XTqC7rHb0
phpを始めて、50行程度で色々作ったりしているのですが、
それが合っているかどうか、無駄や脆弱性があったりと心配になるので、
webサービスでコードを貼り付けて、相談してもらうようなサービスはあるのでしょうか。
数行であればスレの皆さんにご指摘を受けるのは嬉しいのですが
多い行を貼り付けることもスレ汚しにもなるので、何か良い方法はありませんか?
それが合っているかどうか、無駄や脆弱性があったりと心配になるので、
webサービスでコードを貼り付けて、相談してもらうようなサービスはあるのでしょうか。
数行であればスレの皆さんにご指摘を受けるのは嬉しいのですが
多い行を貼り付けることもスレ汚しにもなるので、何か良い方法はありませんか?
2019/07/12(金) 19:44:27.25ID:rA9WmwUa0
2019/07/12(金) 20:15:43.69ID:XTqC7rHb0
2019/07/15(月) 19:56:58.11ID:rFkphOJd0
ファイル名にUnicode制御文字らしきものが入ってしまったのですが
それを削除する方法を教えてください
具体的に何が入っているのかを調べる方法もあれば教えて欲しいです
https://i.imgur.com/V7xutMK.png
twitter のツイートをコピペしたものをファイル名にする処理をしたときに
そうなりました
上の画像で言うと、@の前にある文字です
おそらく、[RLO]だと思いますが、これを取り除く方法が分かりません
それを削除する方法を教えてください
具体的に何が入っているのかを調べる方法もあれば教えて欲しいです
https://i.imgur.com/V7xutMK.png
twitter のツイートをコピペしたものをファイル名にする処理をしたときに
そうなりました
上の画像で言うと、@の前にある文字です
おそらく、[RLO]だと思いますが、これを取り除く方法が分かりません
2019/07/15(月) 20:00:19.90ID:38cZE3Hm0
>>479
エイサスって読んでたわw
エイサスって読んでたわw
2019/07/15(月) 20:17:25.90ID:rFkphOJd0
>>480
今はエイスースw
https://www.asus.com/jp/About_ASUS/about_asus_history_name
> 2012年10月よりASUSは「エイスース」と発音が統一されました。
今はエイスースw
https://www.asus.com/jp/About_ASUS/about_asus_history_name
> 2012年10月よりASUSは「エイスース」と発音が統一されました。
2019/07/15(月) 21:55:18.87ID:rFkphOJd0
>>479
自己解決
とりあえず、これでなんとかなりました
$str = preg_replace('/[\p{Cc}\p{Cf}\p{Zs}]/u', '', $str);
このへん、参考にしました
U+001DなどUnicode(ASCII,C0)制御文字がHeaderに含まれるとaborting requestするので除去する - Qiita
https://qiita.com/khsk/items/3c98174bc6cb9b596e61
PHP: Unicode 文字プロパティ - Manual
https://www.php.net/manual/ja/regexp.reference.unicode.php
自己解決
とりあえず、これでなんとかなりました
$str = preg_replace('/[\p{Cc}\p{Cf}\p{Zs}]/u', '', $str);
このへん、参考にしました
U+001DなどUnicode(ASCII,C0)制御文字がHeaderに含まれるとaborting requestするので除去する - Qiita
https://qiita.com/khsk/items/3c98174bc6cb9b596e61
PHP: Unicode 文字プロパティ - Manual
https://www.php.net/manual/ja/regexp.reference.unicode.php
483デフォルトの名無しさん (ワッチョイ 237c-XeHW)
2019/07/16(火) 23:25:57.59ID:6A7bTSc60 メーラーを作ってる人が集まってるスレはありますか?
484デフォルトの名無しさん (ワッチョイ 75f1-xVkp)
2019/08/05(月) 15:18:25.28ID:RvbOnux20 ものすごく基本的な質問かもしれません。
本物のサーバで実験したいのですが
PHPが使えるレンタルサーバで安いところはどこですか?
将来的にはなんらかの形でネット商売するかもしれません。
本物のサーバで実験したいのですが
PHPが使えるレンタルサーバで安いところはどこですか?
将来的にはなんらかの形でネット商売するかもしれません。
2019/08/05(月) 16:46:02.19ID:v6lP0LVw0
「PHPが使えるレンタルサーバで安いところ」で検索するだけなのにマジで商売するの?
2019/08/05(月) 18:04:13.97ID:9k1HrfSt0
まず目の前にあるPCに仮想環境を入れて
適当なLinuxをインストールしてサーバーにしてみ
それなら好き勝手にいじれるし誰にも迷惑かけないしタダだ
そっから始めてみたらどう?
適当なLinuxをインストールしてサーバーにしてみ
それなら好き勝手にいじれるし誰にも迷惑かけないしタダだ
そっから始めてみたらどう?
2019/08/05(月) 18:06:59.08ID:9dGEiJ4q0
無料のレンタルサーバもあるんだとか
2019/08/06(火) 01:08:26.13ID:O5zLVi3Ca
xreaな
2019/08/06(火) 05:39:37.94ID:3mWsX+4/0
CentOS6 + Remi php 5.6 で動いているphpは
CentOS7 + Remi php 5.6 でも動くのでしょうか?
DBはOSのリポジトリに登録されているmysqlを使います。
CentOS7 + Remi php 5.6 でも動くのでしょうか?
DBはOSのリポジトリに登録されているmysqlを使います。
2019/08/09(金) 14:28:42.09ID:NFhVNRcF0
プラットフォームによっては使えない機能や関数もあるけど
使う(必要な)パッケージが揃ってればOSによる差はだいたい設定でどうにかなる
意図的にプログラム側でOSに依存するコードやOSを制限するコード書いてなければ
CentOSのバージョンアップぐらいならそのまま使えるんじゃないの
使う(必要な)パッケージが揃ってればOSによる差はだいたい設定でどうにかなる
意図的にプログラム側でOSに依存するコードやOSを制限するコード書いてなければ
CentOSのバージョンアップぐらいならそのまま使えるんじゃないの
2019/08/22(木) 21:17:14.37ID:A5RZDSc30
php内でexecを使って外部コマンドを実行させたいです
ローカルでは成功しますが、
webブラウザだとexecでエラー126(コマンド実行不可能)が返ってきます
やはりサーバー側の問題なのでしょうか?
Xサーバーを使っているんですが、どこをいじればいいのか分からなくて・・
ローカルでは成功しますが、
webブラウザだとexecでエラー126(コマンド実行不可能)が返ってきます
やはりサーバー側の問題なのでしょうか?
Xサーバーを使っているんですが、どこをいじればいいのか分からなくて・・
492デフォルトの名無しさん (ワッチョイ 7aad-HwVO)
2019/08/22(木) 23:13:57.14ID:erkZnaOI02019/08/22(木) 23:31:59.91ID:A5RZDSc30
2019/08/22(木) 23:47:20.75ID:9/SBo+Lw0
>>493
exeファイルって何?サーバーの既存のコマンド?
exeファイルって何?サーバーの既存のコマンド?
2019/08/22(木) 23:47:49.02ID:cTorNwQs0
Xサーバって X window のじゃなくてレンタルサーバのことなのか。
それは置いといて、exec エラー126 で検索すると答えっぽい情報があるよ。
実行ファイル名をフルパスで書けばいいとか。
試してないけど。
それは置いといて、exec エラー126 で検索すると答えっぽい情報があるよ。
実行ファイル名をフルパスで書けばいいとか。
試してないけど。
2019/08/22(木) 23:55:42.57ID:9/SBo+Lw0
XサーバーってUnix環境だと思うから、その環境で動かせるって事がまず必要だよ
もしかしてWindowsで動作するファイルをアップロードしてない?
もしかしてWindowsで動作するファイルをアップロードしてない?
2019/08/22(木) 23:59:05.94ID:A5RZDSc30
2019/08/23(金) 00:08:16.03ID:R6Gtd6JR0
2019/08/23(金) 00:14:11.54ID:qfZoy6uT0
コマンド叩いて動くかまず確認しなさい
2019/08/23(金) 00:29:11.19ID:g5amacC60
2019/08/23(金) 00:40:04.55ID:R6Gtd6JR0
皆さんありがとうございます
根本的に無理ぽな感じですね
一人で煮詰まっていましたが、いろいろ指摘をもらってまた頑張ろうと思います
根本的に無理ぽな感じですね
一人で煮詰まっていましたが、いろいろ指摘をもらってまた頑張ろうと思います
2019/08/23(金) 01:41:01.56ID:TB/5V8Dm0
ちなみに何をする実行ファイルなの?
2019/08/23(金) 11:24:49.44ID:yZ+ijObJ0
一般的に、鯖側でexec可能になると悪意のないプログラムでもミスで鯖全体を殺してしまうリスクがあるので
鯖屋ではexecは認められない
はずよ
今時は知らんけど
鯖屋ではexecは認められない
はずよ
今時は知らんけど
2019/08/23(金) 14:13:06.13ID:R6Gtd6JR0
2019/08/23(金) 14:40:43.57ID:yZ+ijObJ0
506デフォルトの名無しさん (ササクッテロラ Sp5d-x+Pl)
2019/08/29(木) 08:48:42.39ID:3m6UWwTfp phpとかプログラム言語じゃない、ど素人向け
2019/08/29(木) 09:33:06.07ID:eAc9JexPp
ど素人がよくそう言ってるの聞くけどプログラミング言語だよ
508デフォルトの名無しさん (ワッチョイ 9b93-PkBi)
2019/08/31(土) 00:15:45.15ID:OzmC0qXX0 って玄人気取った素人が言ってるけど実際プログラミング言語だよ
2019/08/31(土) 00:40:29.28ID:I1GVoNnD0
それで飯を食っているなら玄人ってことにしてあげて
2019/08/31(土) 01:43:38.02ID:xrNrB7Pcp
ランク2多相もGADTもない言語はプログラミング言語じゃない、ど素人向け
2019/08/31(土) 10:51:06.08ID:8OUIM1e40
アセンブリ言語はどうなる
2019/08/31(土) 11:22:22.84ID:I1GVoNnD0
アセンブリはど素人向けなんだろうな
2019/08/31(土) 17:26:18.88ID:y90kZfvt0
煽りが低レベルすぎて
HTMLがプログラム言語じゃないとか言ってるやつと同レベルだな
俺の考えたプログラム言語の定義なんてどうでもいいっす
HTMLがプログラム言語じゃないとか言ってるやつと同レベルだな
俺の考えたプログラム言語の定義なんてどうでもいいっす
2019/08/31(土) 20:12:36.71ID:xrNrB7Pcp
いやそんなのよりも、PHPなんてプログラミング言語じゃないって言ってるありがちな初級者と同レベルの煽りなんだと思うけど
2019/08/31(土) 20:47:12.99ID:rDlgaGGg0
HTMLはプログラミング言語ではないけどPHPはプログラミング言語です
2019/09/01(日) 01:42:35.50ID:oQ9sDP4c0
重要なのはそこじゃない
ドヤ顔でしょうもない主張するところ
ドヤ顔でしょうもない主張するところ
2019/09/01(日) 18:47:04.65ID:pi8n90ik0
2019/09/01(日) 18:56:01.44ID:be8Xi7zB0
FORTHに変数ってあったっけ?
2019/09/01(日) 19:24:54.50ID:L/37ZEtD0
HTMLはWEB屋がプログラマーを自称するための鉄板ネタやぞ
2019/09/01(日) 19:26:15.32ID:dY+gxW9G0
HTMLは演算をされない大きな変数だ
2019/09/01(日) 20:03:49.25ID:2ExHr6mca
phpできない俺からすれば、if使えてる時点で立派なプログラム言語だと思うけどなぁ。
2019/09/02(月) 02:35:19.10ID:bVR0oMnG0
>>519
HTMLというよりJS(中身はjqueryみたいなのを使ったコピペ)じゃなくて?
HTMLというよりJS(中身はjqueryみたいなのを使ったコピペ)じゃなくて?
2019/09/03(火) 08:37:44.27ID:+M/fA+P50
HTMLはチューリング完全じゃないからプログラミング言語じゃないな
HTML+CSSはチューリング完全だとか
HTML+CSSはチューリング完全だとか
2019/09/04(水) 02:23:04.72ID:9ku/gwG+p
プログラミングのために作られてればルログラミング言語だよ
2019/09/04(水) 02:48:53.01ID:tMaJNHAd0
プログラミングのために作られてればエログラミング言語だよ
2019/09/04(水) 21:58:33.15ID:8xuaC0PC0
初学者です
たとえば「ブログ」ページの「php」カテゴリーの「2」ページ目を表示したい場合、
URL(略~index.php? content=blog &category=php &page=2)
のように、GETメソッドでリンクから送った変数を取得していく方法でよいのでしょうか?
一応表示は出来るのですが、条件をつけるたびにどんどんURLが長くなっていくのが気になって
何か他にもっとスマートな方法があったりします……?
たとえば「ブログ」ページの「php」カテゴリーの「2」ページ目を表示したい場合、
URL(略~index.php? content=blog &category=php &page=2)
のように、GETメソッドでリンクから送った変数を取得していく方法でよいのでしょうか?
一応表示は出来るのですが、条件をつけるたびにどんどんURLが長くなっていくのが気になって
何か他にもっとスマートな方法があったりします……?
2019/09/04(水) 23:00:10.33ID:LjVvm2Gp0
クエリじゃなくてパス(例: /blog/php/2)にすればいいんじゃない
あと普通はblogは独立したアプリになると思うから、/index.php?content=blog よりは /blog.php or /blog/index.php の方が自然
あと普通はblogは独立したアプリになると思うから、/index.php?content=blog よりは /blog.php or /blog/index.php の方が自然
2019/09/05(木) 21:12:53.07ID:NNGkGktH0
ありがとうございます
むむむ、WordPress的にコンテンツブロックを入れ替えられるようにするべきなのかと思ったのですが、
やっぱりblog.phpで作る方が自然なんですね
実は独立したアプリという意味がよく分かっていないので、調べてみます
むむむ、WordPress的にコンテンツブロックを入れ替えられるようにするべきなのかと思ったのですが、
やっぱりblog.phpで作る方が自然なんですね
実は独立したアプリという意味がよく分かっていないので、調べてみます
2019/09/06(金) 18:31:00.60ID:HnthDg8s0
2019/09/09(月) 04:10:30.20ID:CJs/c5Zv0
絶対にやるなと書いてあったのですが
unset関数でグローバル変数のSESSION自体を消してしまうとどうなるんですか?unset($_SESSION←こんな感じで
そのサーバー上では二度とセッションを使えなくなるとか?取り返しのつかないことになるのですか?
unset関数でグローバル変数のSESSION自体を消してしまうとどうなるんですか?unset($_SESSION←こんな感じで
そのサーバー上では二度とセッションを使えなくなるとか?取り返しのつかないことになるのですか?
2019/09/09(月) 07:32:29.32ID:T88U5mPK0
上島竜兵へのフリなんで気にしないでいいよ
2019/09/09(月) 14:19:05.34ID:+lHTuL5H0
>>530
少なくとも自分の環境じゃなにもおきない
$_SESSION自体をunsetしたあとも普通に登録できるし
別セッションで変数登録したあとunsetしても別セッションには影響ないし
最悪おかしくなってもサーバ再起動すれば問題ないだろう
まあやるなって言われてることはやらないほうがいいんじゃね
ソースコード読めば何が問題なのかわかるかもしれんが大変だしね
少なくとも自分の環境じゃなにもおきない
$_SESSION自体をunsetしたあとも普通に登録できるし
別セッションで変数登録したあとunsetしても別セッションには影響ないし
最悪おかしくなってもサーバ再起動すれば問題ないだろう
まあやるなって言われてることはやらないほうがいいんじゃね
ソースコード読めば何が問題なのかわかるかもしれんが大変だしね
2019/09/09(月) 19:26:46.12ID:TVbaw9og0
>>530
unset($_SESSION)とか全部消そうとするとセッション変数自体が消えて使えなくなるからダメで unset($_SESSION['hope'])とかやるのはok
セッション全部消すならsession_destroyを使う
ログオフする処理に使っているよ
unset($_SESSION)とか全部消そうとするとセッション変数自体が消えて使えなくなるからダメで unset($_SESSION['hope'])とかやるのはok
セッション全部消すならsession_destroyを使う
ログオフする処理に使っているよ
2019/09/09(月) 21:54:18.14ID:CJs/c5Zv0
2019/09/09(月) 23:48:15.95ID:FC2yYF8l0
PHP7で脆弱性見つかる
7.1.32よりも前
7.2.22よりも前
7.3.9よりも前
それぞれアップデートしてくれって
7.1.32よりも前
7.2.22よりも前
7.3.9よりも前
それぞれアップデートしてくれって
2019/09/10(火) 22:14:03.52ID:uk11iNHw0
javascriptの力を借りずに非同期でサーバーサイドに処理投げてサクサク動かすことは可能ですか?
2019/09/10(火) 22:24:54.71ID:KbtshmUG0
2019/09/10(火) 22:59:10.53ID:bRYQFbtI0
出来たとしてもやるべきではない
2019/09/10(火) 23:12:41.69ID:KbtshmUG0
なんで?
2019/09/12(木) 01:45:24.47ID:fy3hyy0Da
「なんで?」に返答するコストが高い問題定期
2019/09/12(木) 08:43:07.82ID:s3ehzYuzp
それに近い考えでサーバーサイドレンダリングってのがある
流行るかどうかは不明
流行るかどうかは不明
2019/09/12(木) 09:37:33.95ID:qG3+qr6E0
あー質問の意味を取り違えてた
今ブラウザ上で行ってる処理をサーバサイドでやらせるってことか。
例えばオセロのコンピュータ側の処理をブラウザ上のJSじゃなくてサーバサイドでやるみたいな?
今ブラウザ上で行ってる処理をサーバサイドでやらせるってことか。
例えばオセロのコンピュータ側の処理をブラウザ上のJSじゃなくてサーバサイドでやるみたいな?
2019/09/13(金) 14:29:05.39ID:b/fh3Egg0
そもそも非同期処理するのにJavaScriptが必要じゃね
544デフォルトの名無しさん (ワッチョイ ff8c-3oQN)
2019/09/17(火) 13:48:19.74ID:NULA/kfp0 laravelとDBが分かれてる時ってどうやってアクセスしてるの?URL設定なんかあって接続してるのか?
2019/09/17(火) 14:56:43.70ID:aFTX7+W50
Ruby on Rails のデータベース設定ファイルには、host という項目があって、そこでホスト名を指定する
host: localhost
host: localhost
2019/10/08(火) 06:33:05.95ID:M4B81Xan0
$name="山田";
変数$nameに山田と入れ
PDOでデーターベースに接続し
dbh->query('SELECT * FROM table名 WHERE name="$name"');
このようなSQL文を書いたところ変数の$nameがそのまま文字列として扱われて何度やってもデータを取り出せなかったので、
なんとなくダブルクオテーションとシングルクオテーションを入れ替えて
dbh->query("SELECT * FROM table名 WHERE name='$name'");
このようにしたところ上手くいったのですがどういう事なのか分からず、この現象を調べるのに、どう検索していいのか分からなかったので質問させてください
本にはコードを書くときはシングルでもダブルでも好きな方を使ってもいいと書いてあったのですが
SQL文の中では何か決まりがあるのでしょうか?
よろしくお願いします
変数$nameに山田と入れ
PDOでデーターベースに接続し
dbh->query('SELECT * FROM table名 WHERE name="$name"');
このようなSQL文を書いたところ変数の$nameがそのまま文字列として扱われて何度やってもデータを取り出せなかったので、
なんとなくダブルクオテーションとシングルクオテーションを入れ替えて
dbh->query("SELECT * FROM table名 WHERE name='$name'");
このようにしたところ上手くいったのですがどういう事なのか分からず、この現象を調べるのに、どう検索していいのか分からなかったので質問させてください
本にはコードを書くときはシングルでもダブルでも好きな方を使ってもいいと書いてあったのですが
SQL文の中では何か決まりがあるのでしょうか?
よろしくお願いします
2019/10/08(火) 09:23:10.71ID:ICRAu8JP0
PHPとSQLが混ざってるからごっちゃなんだろう
どっちでもいいってのはSQLの方に対して言ってるんでしょ
変数展開後に
WHERE name='山田'
WHERE name="山田"
となってる状態のことをどっちでもいいって言ってるだけだと思う
んでPHPの変数が展開されるのはダブルのほう
echo "$name"; //変数が展開されるので山田が表示される
echo '$name'; //変数は展開されないので$nameが表示される
シングルで同じことをする場合
"略 WHERE name='" . $name . "'";
のように一回抜けて$nameを連結しないといけない
だいたいPHPの本の最初のほうに書いてることだと思うがね
忘れちまったのかい
どっちでもいいってのはSQLの方に対して言ってるんでしょ
変数展開後に
WHERE name='山田'
WHERE name="山田"
となってる状態のことをどっちでもいいって言ってるだけだと思う
んでPHPの変数が展開されるのはダブルのほう
echo "$name"; //変数が展開されるので山田が表示される
echo '$name'; //変数は展開されないので$nameが表示される
シングルで同じことをする場合
"略 WHERE name='" . $name . "'";
のように一回抜けて$nameを連結しないといけない
だいたいPHPの本の最初のほうに書いてることだと思うがね
忘れちまったのかい
2019/10/08(火) 09:24:39.62ID:ICRAu8JP0
↑訂正
"略 WHERE name='" . $name . "'";
↓
'略 WHERE name="' . $name . '"';
ね
"略 WHERE name='" . $name . "'";
↓
'略 WHERE name="' . $name . '"';
ね
2019/10/08(火) 13:37:44.62ID:Xix6Aq9n0
文字列に変数を展開や連結してqueryはSQLインジェクションのおそれもあるのでprepareとexecute使え
$sth = $dbh->prepare('SELECT * FROM table WHERE name=:name');
$sth->execute([':name' => $name]);
$sth = $dbh->prepare('SELECT * FROM table WHERE name=:name');
$sth->execute([':name' => $name]);
2019/10/08(火) 14:00:48.65ID:ICRAu8JP0
それはたぶん5ページぐらいあとに書いてると思うからあえて言わんかったけど
2019/10/08(火) 20:15:02.70ID:M4B81Xan0
2019/10/12(土) 23:40:21.29ID:TjciH4iB0
親クラスのメソッド内で、protectedコンストラクタを持つサブクラスを生成する場合、
new static()ではなく、クラス名を直接指定してnew SubClass()でも生成出来るのは正常な仕様ですか?
この辺調べても、なかなか出てこないので・・
new static()ではなく、クラス名を直接指定してnew SubClass()でも生成出来るのは正常な仕様ですか?
この辺調べても、なかなか出てこないので・・
2019/10/13(日) 17:24:19.33ID:54KD8QD50
2019/10/16(水) 21:27:10.98ID:3M2x+3910
素朴な疑問、PHPファイルをダウンロードしてきて、コピペでサーバーディレクトリに貼り付けると500エラーになるのってどういう原理?
仮想サーバーで動かしてる方にコピペは動くんだが、ネットのサーバーってFTPとか挟まないともしかしてアップロード出来ない仕組み?
レンタルサーバーで借りてる方はFTP通してアップロードしてて、そんな事起きた事ないから分からん
仮想サーバーで動かしてる方にコピペは動くんだが、ネットのサーバーってFTPとか挟まないともしかしてアップロード出来ない仕組み?
レンタルサーバーで借りてる方はFTP通してアップロードしてて、そんな事起きた事ないから分からん
2019/10/16(水) 21:50:13.55ID:VikEwu130
2019/10/16(水) 22:57:49.93ID:S66UuMjo0
パーミッション
2019/10/16(水) 23:00:50.37ID:N6aKGsVs0
改行コードかも
2019/10/16(水) 23:24:41.77ID:3M2x+3910
2019/10/16(水) 23:33:52.64ID:m+bghU330
>>558
viが使えるならそれでソースを開く
行末に ^M って出るかも
DOSの改行はCRLFだが
Unix系はLFだけでいい
取り除きたいなら開いているvi上で
:%s/^M//
と打ち、リターンキー
viが使えるならそれでソースを開く
行末に ^M って出るかも
DOSの改行はCRLFだが
Unix系はLFだけでいい
取り除きたいなら開いているvi上で
:%s/^M//
と打ち、リターンキー
2019/10/16(水) 23:37:26.54ID:m+bghU330
ちょっと不親切だったな
^Mは制御文字なので、CTRL+Vと打ってから続けてCTRL+Mと入力
:%s/^M$//
念のため、$も入れておこう
^Mは制御文字なので、CTRL+Vと打ってから続けてCTRL+Mと入力
:%s/^M$//
念のため、$も入れておこう
2019/10/17(木) 22:47:52.05ID:ScmICnbXa
それは 行頭のMだけを削除するという意味?
改行コードが違う時ってどんなふうにviで見えるんだろう
改行コードが違う時ってどんなふうにviで見えるんだろう
2019/10/17(木) 23:11:28.85ID:J+0mBkyh0
掲示板だと区別付かないんだけど
^Mで一文字の制御文字を意味する
vi(vim)の画面で見るとカラー表示するので区別できる
設定次第だけども
^Mで一文字の制御文字を意味する
vi(vim)の画面で見るとカラー表示するので区別できる
設定次第だけども
2019/10/18(金) 01:08:35.01ID:kVATbc+M0
改行コードでエラーになるのか
どっちでもエラーに遭遇したことなかったから勉強になった・・・ような
どうせ忘れてしまう可能性が高杉
どっちでもエラーに遭遇したことなかったから勉強になった・・・ような
どうせ忘れてしまう可能性が高杉
2019/11/03(日) 21:12:04.91ID:A7Digd0J0
PHPってインタプリタですか?
2019/11/07(木) 18:25:52.30ID:pG3Lscph0
なんでだれも答えてくれないんですか!プンプン!
もういいです自分で調べます!
もういいです自分で調べます!
2019/11/12(火) 23:24:53.56ID:53ocb9qja
オレンジクインという葉が黄色い白菜は緑黄色野菜になるのでしょうか?
567デフォルトの名無しさん (オッペケ Sr11-wiCk)
2019/11/14(木) 11:52:42.61ID:UbsUbcmDr PHPを勉強しますが、いわゆる駄目なコード(メンテ不能とか他人が読めないとか)を書かないようにするための方法がまとめられた書籍とかWebサイトってありますか?
ググって見ましたが、Githubの他人のコードを読むとかとにかくググるとかで、お手本が一箇所にまとめてあるような事例が見つかりません
そもそもプログラミング初心者なのでどういうコードが良くて駄目なのか根拠が無いと理解できないので、Webサイトで調べるのはちょっとハードル高いです
ググって見ましたが、Githubの他人のコードを読むとかとにかくググるとかで、お手本が一箇所にまとめてあるような事例が見つかりません
そもそもプログラミング初心者なのでどういうコードが良くて駄目なのか根拠が無いと理解できないので、Webサイトで調べるのはちょっとハードル高いです
2019/11/14(木) 12:34:11.76ID:yaNNoKNo0
最初から完璧を目指してると前に進まない上に身にも付かないんで
気にせずガンガン組んで経験値上げた方がいいよ
経験値上げる=ダメコードが分かってくる
気にせずガンガン組んで経験値上げた方がいいよ
経験値上げる=ダメコードが分かってくる
2019/11/14(木) 12:34:45.58ID:4neB2vdG0
リーダブルコードとかじゃね
読んだこと無いけど
読んだこと無いけど
2019/11/14(木) 12:49:12.10ID:lyAVwglk0
読みやすいコード手法やアルゴリズムを勉強したいなら、
もっとシンプルな、例えばC言語や、Javaで勉強しtが方が良いと思う
PHPはどちらかと言うと実用本位で動けば何でもありの書き方してしまうから
人によって書き方も違うし、手本にして学ぶというのには向かない気がする
もっとシンプルな、例えばC言語や、Javaで勉強しtが方が良いと思う
PHPはどちらかと言うと実用本位で動けば何でもありの書き方してしまうから
人によって書き方も違うし、手本にして学ぶというのには向かない気がする
2019/11/14(木) 14:29:48.81ID:YV+wn0qT0
>>567
初心者にあれこれ言っても仕方ないと思うので
Beauty Is in Simplicity code
という言葉を送る
日本語訳は「美はシンプルさに宿る」や「プログラマが知るべき97のこと」でググるといい
初心者にあれこれ言っても仕方ないと思うので
Beauty Is in Simplicity code
という言葉を送る
日本語訳は「美はシンプルさに宿る」や「プログラマが知るべき97のこと」でググるといい
2019/11/14(木) 14:38:58.41ID:j9FdlXq90
キモ
2019/11/14(木) 18:46:20.22ID:dCzlDN8+0
2019/11/15(金) 17:40:16.12ID:3geqpL2yr
>>568-573
初心者のうちから変な癖をつけないようにしたと思いましたが
あれこれ手を広げないほうがいいかなとも思っていました
PHP自体が可読性より生産性を重視してるのなら
初心者のうちは経験値を積んで生産性をあげて
次のステップとしてリーダブルコードで読みやすさなどを学ぶことにします
みなさん回答ありがとうございました
初心者のうちから変な癖をつけないようにしたと思いましたが
あれこれ手を広げないほうがいいかなとも思っていました
PHP自体が可読性より生産性を重視してるのなら
初心者のうちは経験値を積んで生産性をあげて
次のステップとしてリーダブルコードで読みやすさなどを学ぶことにします
みなさん回答ありがとうございました
575デフォルトの名無しさん (ブーイモ MM76-Xz/Q)
2019/11/15(金) 17:49:19.08ID:oPXVgqk1M 実際に動いているPHPって
HTMLのソースみたいにソースコードを見ることは、できないのですか?
HTMLのソースみたいにソースコードを見ることは、できないのですか?
2019/11/15(金) 17:54:31.71ID:NeivSIGq0
観客席からは見れない
舞台裏に回れば見れる
舞台裏に回れば見れる
577デフォルトの名無しさん (ブーイモ MM76-Xz/Q)
2019/11/15(金) 18:01:55.55ID:oPXVgqk1M PHPのソースは見れるかと聞いておるのだ。
誰か分かる者はいないのか?
この馬鹿モンが!
誰か分かる者はいないのか?
この馬鹿モンが!
2019/11/15(金) 18:36:29.53ID:kIm7g0zF0
厳密に言えば見れるよ、ハック的な手段で
たまにソースコード流出とかって騒ぎになってるじゃん、あれやれば見れる
頑張って勉強しろ
たまにソースコード流出とかって騒ぎになってるじゃん、あれやれば見れる
頑張って勉強しろ
2019/11/15(金) 18:47:26.76ID:NeivSIGq0
念のため書いておくけど、
サイト側の設定ミスだとしても、
サイト側が公開を意図していないものの取得は
不正アクセスとなります
サイト側の設定ミスだとしても、
サイト側が公開を意図していないものの取得は
不正アクセスとなります
580デフォルトの名無しさん (ブーイモ MMb2-+PZ0)
2019/12/02(月) 18:02:15.74ID:uWhstvBwM 初心者です。
PHP7.2にてfile_get_contentsにてHTMLを
全取得するテストをしているのですが、
youtube、yahoo.co.jpのトップページは
全取得できますが、
Tver.jpなどの一部サイトでは、HTMLの一部が取得できないのですが、
この違いが何なのか分からず。。
コンテキストオプションはchromeのデベロッパーツールと同内容をいずれも使用しています。
一部しか取得できないだけで、errorが返ってきているわけではありません。
このようなケースで想定される原因は何か、
お教え下さい。
PHP7.2にてfile_get_contentsにてHTMLを
全取得するテストをしているのですが、
youtube、yahoo.co.jpのトップページは
全取得できますが、
Tver.jpなどの一部サイトでは、HTMLの一部が取得できないのですが、
この違いが何なのか分からず。。
コンテキストオプションはchromeのデベロッパーツールと同内容をいずれも使用しています。
一部しか取得できないだけで、errorが返ってきているわけではありません。
このようなケースで想定される原因は何か、
お教え下さい。
2019/12/02(月) 18:12:49.06ID:OjDe9qis0
その関数フロントで生成されるコードは取得できなかった筈なんでそれじゃね
仮想端末挟んで生成してもらってからソース取得の処理作るかで悩んだ覚えある
結局pythonとかJavaScriptにクローラー向きのAPI一杯あるからそっちで操作した方がラクって結論に落ち着いたけど
仮想端末挟んで生成してもらってからソース取得の処理作るかで悩んだ覚えある
結局pythonとかJavaScriptにクローラー向きのAPI一杯あるからそっちで操作した方がラクって結論に落ち着いたけど
2019/12/02(月) 19:19:41.96ID:VMZvMN3R0
解決したから原因までは特定しなかったけど
fsockopenだとうまくいくけど
file_get_contentsじゃうまくいかない
ということはあったな
同じcontext使ってるんだけどね
cURL使うと多分うまくいくよ
fsockopenだとうまくいくけど
file_get_contentsじゃうまくいかない
ということはあったな
同じcontext使ってるんだけどね
cURL使うと多分うまくいくよ
583デフォルトの名無しさん (ワッチョイ d9c9-+PZ0)
2019/12/03(火) 23:22:42.46ID:8Kx0IsVg02019/12/04(水) 01:38:24.44ID:9qyS2PwK0
例えば、5ch みたいに最初に、空のHTML を送ってきてから、
その後、Ajax で内容をサーバーから取得するようなページでは、
普通のクローラーでは、確実に取得できない
そういう場合は、Ruby などで、Selenium WebDriver を使って、
人がやるのと同じように、ブラウザを操作すれば取得できる
その後、Ajax で内容をサーバーから取得するようなページでは、
普通のクローラーでは、確実に取得できない
そういう場合は、Ruby などで、Selenium WebDriver を使って、
人がやるのと同じように、ブラウザを操作すれば取得できる
2019/12/04(水) 07:43:35.40ID:xeP1zjgo0
JS挟んだあとのコードがほしいって話なのか
ソースの表示のソースが取れればいいものかと
そりゃ普通にやってちゃ無理だわな
ソースの表示のソースが取れればいいものかと
そりゃ普通にやってちゃ無理だわな
2019/12/04(水) 10:39:16.66ID:ynT0rzJO0
まぁ今どきPHPでスクレイピングなんてやらないしな
Python使えPython
Python使えPython
2019/12/04(水) 11:38:04.31ID:HJOtve5N0
ここはPHPのスレ
2019/12/04(水) 11:52:57.07ID:M0bOyCLn0
だからどうした
そもそも向いてねンだから無理矢理処理作ったってしゃーねーだろ
何でもかんでも手作業で作ってたらキリねーぞラクな方行けラクな方
そもそも向いてねンだから無理矢理処理作ったってしゃーねーだろ
何でもかんでも手作業で作ってたらキリねーぞラクな方行けラクな方
2019/12/04(水) 12:51:22.94ID:uy3yV12YM
pythonはスクレイピングしやすいの?
ちょっと興味出てきた
ちょっと興味出てきた
2019/12/04(水) 12:56:11.50ID:kZk+LcEC0
へんなやつにからまれているね
2019/12/04(水) 13:46:24.53ID:I65RuVdL0
python自体がjavascript動かしてスクレイピングできるわけじゃないよ
たいていwebdriverでheadless chrome動かしてそれを取るだけ
phpにもwebdriverはあるので同様のことはできる
たいていwebdriverでheadless chrome動かしてそれを取るだけ
phpにもwebdriverはあるので同様のことはできる
2019/12/04(水) 16:23:36.96ID:ynT0rzJO0
2019/12/04(水) 16:56:56.54ID:M0bOyCLn0
>>592
能無しっていうか
まぁこだわりがあるなら別にそれでもいいとは思うよ
内部動作のよく分からん機械に依存するのが不安だって気持ちも分かるし
彫刻刀一本であらゆるものを作りたいって人を否定する気は無い
電ノコやドリルが入った工具箱が横に置いてあるなら俺はそっち使うけど
能無しっていうか
まぁこだわりがあるなら別にそれでもいいとは思うよ
内部動作のよく分からん機械に依存するのが不安だって気持ちも分かるし
彫刻刀一本であらゆるものを作りたいって人を否定する気は無い
電ノコやドリルが入った工具箱が横に置いてあるなら俺はそっち使うけど
2019/12/04(水) 17:22:33.33ID:HJOtve5N0
職場で叱られたのかな?
595デフォルトの名無しさん (ワッチョイ 4b5f-q31q)
2019/12/12(木) 00:04:39.58ID:8N8BhmJA0 phpStormでアロー演算子使って無名関数宣言すると警告出るのどうしてる?
2019/12/16(月) 00:10:56.73ID:eA/7D1/t0
古い環境から新しい環境に、古いプログラムを移行したいのですが、
古い環境でphpinfoでtimezoneがAsia/Tokyoになっているのに
php.iniや、php.d/*にはその項目がありません。
# php -i | grep timezone
Default timezone => Asia/Tokyo
date.timezone => no value => no value
# grep Tokyo /etc/php.ini
#
# grep Tokyo /etc/php.d/*
#
あと、ログにエラーが出ないので調べると
# php -i | grep error_report
error_reporting => 0 => 0
# grep error_report /etc/php.ini
error_reporting = E_ALL & E_STRICT
と矛盾した感じになっていますが、どこにその設定が書かれているか探す方法はあるのでしょうか?
古い環境でphpinfoでtimezoneがAsia/Tokyoになっているのに
php.iniや、php.d/*にはその項目がありません。
# php -i | grep timezone
Default timezone => Asia/Tokyo
date.timezone => no value => no value
# grep Tokyo /etc/php.ini
#
# grep Tokyo /etc/php.d/*
#
あと、ログにエラーが出ないので調べると
# php -i | grep error_report
error_reporting => 0 => 0
# grep error_report /etc/php.ini
error_reporting = E_ALL & E_STRICT
と矛盾した感じになっていますが、どこにその設定が書かれているか探す方法はあるのでしょうか?
2019/12/16(月) 00:12:25.13ID:9m9cmyeR0
>>596
せめて古い環境、新しい環境のバージョンくらいは教えてくれないと
せめて古い環境、新しい環境のバージョンくらいは教えてくれないと
2019/12/16(月) 00:23:45.45ID:eA/7D1/t0
申し訳無いです。
CentOS5 の PHP 5.1.6 (cli)です。
新しい環境はCentoOS7のbaseにある5.4にて動くか試しているのですが、たくさんnoticeやwarningが出ていますが、
とりあえずこの古い環境でTokyoがどこから来ているか不思議な感じです。
CentOS5 の PHP 5.1.6 (cli)です。
新しい環境はCentoOS7のbaseにある5.4にて動くか試しているのですが、たくさんnoticeやwarningが出ていますが、
とりあえずこの古い環境でTokyoがどこから来ているか不思議な感じです。
2019/12/16(月) 00:30:59.80ID:+KWK+mzK0
2019/12/16(月) 00:42:43.65ID:9m9cmyeR0
2019/12/16(月) 00:49:25.28ID:9m9cmyeR0
>>600は、CentoOS7のPH5.4での話ね
2019/12/16(月) 01:07:00.48ID:eA/7D1/t0
>>599
なんと環境変数から取っていたのですか・・・ありがとうございます。
5.1.6@CentOS5で
# grep Tokyo /etc/*/*
/etc/sysconfig/clock:ZONE="Asia/Tokyo"
となるとここから取っていたことになりそうです。
つまりは、この古い環境を作った人は、timezoneの項目をコメントアウトして編集していなかったのですね。
あと、ここがわからないのですが、
5.1.6における php.iniのerror_reporting のデフォルト値は コメントアウトして
error_reporting = E_ALL & E_STRICT とあるのですが、
あるプログラムで、新環境5.4では出てくるPHP Notice: Undefined variable:が、この5.1.6で出ないのは
# php -i | grep error_report
error_reporting => 0 => 0
この「0」が効いているからでしょうか? php.iniの設定がどこかで無効に上書きされていると考えればいいのでしょうか?
>>600-601
はい、新しい環境ではphp.iniに記載します
なんと環境変数から取っていたのですか・・・ありがとうございます。
5.1.6@CentOS5で
# grep Tokyo /etc/*/*
/etc/sysconfig/clock:ZONE="Asia/Tokyo"
となるとここから取っていたことになりそうです。
つまりは、この古い環境を作った人は、timezoneの項目をコメントアウトして編集していなかったのですね。
あと、ここがわからないのですが、
5.1.6における php.iniのerror_reporting のデフォルト値は コメントアウトして
error_reporting = E_ALL & E_STRICT とあるのですが、
あるプログラムで、新環境5.4では出てくるPHP Notice: Undefined variable:が、この5.1.6で出ないのは
# php -i | grep error_report
error_reporting => 0 => 0
この「0」が効いているからでしょうか? php.iniの設定がどこかで無効に上書きされていると考えればいいのでしょうか?
>>600-601
はい、新しい環境ではphp.iniに記載します
603デフォルトの名無しさん (ワッチョイ e2da-6dnz)
2019/12/16(月) 10:08:56.19ID:ATUYW4cO0 date()よりgmdate()+9*60*60の方が速い
2019/12/16(月) 13:14:39.22ID:49FYnnWe0
JavaScript でも、サーバー側のNode.js では、UTC。
一方、クライアント側のブラウザでは、Local Time
たぶん、Ruby, PHP もサーバー側だから、UTC にしたいのだろう
一方、クライアント側のブラウザでは、Local Time
たぶん、Ruby, PHP もサーバー側だから、UTC にしたいのだろう
2019/12/16(月) 13:57:00.03ID:+KWK+mzK0
>>602
>この「0」が効いているからでしょうか? php.iniの設定がどこかで無効に上書きされていると考えればいいのでしょうか?
デフォルトはNULLなのでどっかで設定してるんじゃないのかな
$ php -i | grep '¥.ini'
で他に読み込んでる設定がないか確認するといいと思う
>この「0」が効いているからでしょうか? php.iniの設定がどこかで無効に上書きされていると考えればいいのでしょうか?
デフォルトはNULLなのでどっかで設定してるんじゃないのかな
$ php -i | grep '¥.ini'
で他に読み込んでる設定がないか確認するといいと思う
2019/12/17(火) 08:18:32.19ID:gtJVJ+Ck0
>>605
/etc/php.ini, /etc/php.d/*.iniが対象でしたが、
php.iniのerror_reporting = E_ALL & E_STRICTだけでした。
不思議な感じですが新しい環境へ移していこうと思います。
/etc/php.ini, /etc/php.d/*.iniが対象でしたが、
php.iniのerror_reporting = E_ALL & E_STRICTだけでした。
不思議な感じですが新しい環境へ移していこうと思います。
2019/12/17(火) 17:27:08.07ID:0aBJN6Tz0
E_ALL & E_STRICT
って設定懐かしいな。何年前のPHPだw
って設定懐かしいな。何年前のPHPだw
608デフォルトの名無しさん (スプッッ Sd22-q31q)
2019/12/18(水) 01:07:49.35ID:qvYpa8W8d 74のpreloadとffiめっちゃいいな。
いいんだけど、ffi現場で使ってる人いる?
いいんだけど、ffi現場で使ってる人いる?
2019/12/18(水) 14:51:51.17ID:lrTyYwVn0
現場投入はまだだな
Preloadingは素敵すぎるが、
Foreign Function InterfaceってPHPに要るかね?
Preloadingは素敵すぎるが、
Foreign Function InterfaceってPHPに要るかね?
2019/12/18(水) 14:54:39.35ID:lrTyYwVn0
FFIのRFC調べたら
賛成24の反対15で切り可決か
これ昔PECLにあったやつだよな
まぁそうだろうなw
賛成24の反対15で切り可決か
これ昔PECLにあったやつだよな
まぁそうだろうなw
611デフォルトの名無しさん (ワッチョイ 775f-B9Tc)
2019/12/19(木) 00:22:50.43ID:F9c8Ivhx0 >>609
ffi、とても便利だけど、phpの現場でなんでphpかって、その言語で書く事が求められているからであってffi使うならphp使わないよねーっていうそもそも論もあると思う
preloadはプロセス再起動しないといけないからコンテナ向きだよね
ffi、とても便利だけど、phpの現場でなんでphpかって、その言語で書く事が求められているからであってffi使うならphp使わないよねーっていうそもそも論もあると思う
preloadはプロセス再起動しないといけないからコンテナ向きだよね
612デフォルトの名無しさん (ワッチョイ ff02-lgca)
2019/12/19(木) 13:14:56.57ID:FXNFzpmL0 <button class="bubbly-button">
<a href="http://coonelnel.net/"; target="_blank" rel="nofollow noopener">素人</a>
</a>に
<a href="http://coonelnel.net/"; target="_blank" rel="nofollow noopener">素人</a>
</a>に
613デフォルトの名無しさん (ワッチョイ ff02-lgca)
2019/12/19(木) 13:16:43.14ID:FXNFzpmL0 https://stackoverflow.com/questions/41801228/made-image-click-counter-which-is-buggy
を配置する場合どこに記載すればよいでしょうか?
を配置する場合どこに記載すればよいでしょうか?
2019/12/19(木) 14:16:57.37ID:hMraMf9D0
exec系関数にあわせて外部プログラム作ってたから
ffiはだいぶ楽が出来るようになるな
まあ肝心のCを知らないんだけどw
ffiはだいぶ楽が出来るようになるな
まあ肝心のCを知らないんだけどw
2019/12/19(木) 14:29:44.98ID:dMnFAlGo0
そりゃ、Ruby だって、C をほとんど知らない人が、FFI を使っているのは、PHP と同じw
616デフォルトの名無しさん (スプッッ Sd3f-B9Tc)
2019/12/19(木) 20:19:58.91ID:e3NBcS5sd >>613
これをwebページのどこ家に埋め込みたいんだけど、どのファイルに書けばいいのかってこと?
これをwebページのどこ家に埋め込みたいんだけど、どのファイルに書けばいいのかってこと?
617デフォルトの名無しさん (ワッチョイ 5701-uI9Z)
2019/12/19(木) 20:31:21.94ID:25wRxCsd02019/12/19(木) 21:42:57.77ID:4pMiKlwl0
PHP要素どこだよ
619デフォルトの名無しさん (ワッチョイ 775f-B9Tc)
2019/12/19(木) 23:07:07.63ID:F9c8Ivhx0 >>617
まず君の環境でphoは動くの?
まず君の環境でphoは動くの?
620デフォルトの名無しさん (ワッチョイ 775f-B9Tc)
2019/12/19(木) 23:08:20.16ID:F9c8Ivhx0 php
621デフォルトの名無しさん (ワッチョイ 5701-uI9Z)
2019/12/20(金) 03:02:34.89ID:IBAvNOD/0 >>619
サーバーを借りるので動くと思います
サーバーを借りるので動くと思います
2019/12/20(金) 18:43:33.55ID:Xr6FOCXd0
>>611
> っていうそもそも論もあると思う
そそ
これRFCで賛成24の反対15だから、今のRFCルール(要2/3の賛成)だと否決されてた代物だ
https://externals.io/message/103613
で議論されてるが、俺はJefferson Gonzalezの意見に賛成だな
今更いっても仕方ないけどw
> っていうそもそも論もあると思う
そそ
これRFCで賛成24の反対15だから、今のRFCルール(要2/3の賛成)だと否決されてた代物だ
https://externals.io/message/103613
で議論されてるが、俺はJefferson Gonzalezの意見に賛成だな
今更いっても仕方ないけどw
623デフォルトの名無しさん (ワッチョイ 775f-B9Tc)
2019/12/21(土) 01:48:26.48ID:BiuKyk5n0624デフォルトの名無しさん (ワッチョイ 775f-B9Tc)
2019/12/21(土) 01:50:43.85ID:BiuKyk5n02019/12/21(土) 17:17:00.28ID:IDzKgSWy0
Jefferson Gonzalezの意見って明らかにFFI導入に賛成なんだけど
626デフォルトの名無しさん (ワッチョイ 775f-B9Tc)
2019/12/22(日) 01:04:31.99ID:ngrj6zpx0 >>625
c書けるスキルがあるのにphpの現場にいる人間が幸せになるよってとこなのかな
c書けるスキルがあるのにphpの現場にいる人間が幸せになるよってとこなのかな
2019/12/22(日) 01:24:13.80ID:buP4BnNs0
GoやRustやC#でもFFI書けるよ
628デフォルトの名無しさん (ワッチョイ 775f-B9Tc)
2019/12/23(月) 00:53:27.33ID:2qWBTAwK0629デフォルトの名無しさん (ワッチョイ 9f07-Rp4x)
2019/12/24(火) 17:13:26.50ID:oJYJsXMm0 exec関数でサーバのコマンドを実行できますが、
ソフトウェアをインストールするときなどに表示される
「キーボードのyを押してインストールを進める」
みたいな処理もexecで行うことができるのでしょうか?
もしできる場合、どのように書けばいいか教えて下さい
ソフトウェアをインストールするときなどに表示される
「キーボードのyを押してインストールを進める」
みたいな処理もexecで行うことができるのでしょうか?
もしできる場合、どのように書けばいいか教えて下さい
2019/12/24(火) 17:23:02.72ID:4UlhXCkA0
>>629
バッチで動かすことを想定しているプログラムには
例えば起動オプションに "-y" が用意されてあって
キーボード応答全てにyが打たれたとして動作するものもある
動かしたいプログラム次第だと思うが
こういうものなら動かせるかもしれない
そうで無い場合は、プログラムからの応答を判断しながら
動かさないと、想定出来ない問題が起きかねないのでは
バッチで動かすことを想定しているプログラムには
例えば起動オプションに "-y" が用意されてあって
キーボード応答全てにyが打たれたとして動作するものもある
動かしたいプログラム次第だと思うが
こういうものなら動かせるかもしれない
そうで無い場合は、プログラムからの応答を判断しながら
動かさないと、想定出来ない問題が起きかねないのでは
2019/12/24(火) 17:57:31.74ID:SDqv4krt0
>>629
yes
yes
632デフォルトの名無しさん (ワッチョイ 775f-B9Tc)
2019/12/25(水) 00:49:42.46ID:oMbV4Iar0 >>629
yesかecho yesをpipeで渡す
yesかecho yesをpipeで渡す
2019/12/25(水) 12:42:04.67ID:ZI663GBY0
漏れは、自分のPC で、
Windows10, WSL, Ubuntu16.04 で、全パッケージの更新をするのに、
Ruby で、sudo のパスワードの入力とか、
apt-get の-y で、yes の入力もやってる
#!/usr/bin/ruby
# frozen_string_literal: true
# 全パッケージの更新
# sudo のパスワードを自動入力する
# echo <your_password> | sudo -S <your_command>
puts `echo パスワード | sudo -S apt-get update`
puts `sudo apt-get upgrade -yV`
Windows10, WSL, Ubuntu16.04 で、全パッケージの更新をするのに、
Ruby で、sudo のパスワードの入力とか、
apt-get の-y で、yes の入力もやってる
#!/usr/bin/ruby
# frozen_string_literal: true
# 全パッケージの更新
# sudo のパスワードを自動入力する
# echo <your_password> | sudo -S <your_command>
puts `echo パスワード | sudo -S apt-get update`
puts `sudo apt-get upgrade -yV`
2019/12/25(水) 23:05:26.90ID:+4x8Vudl0
2019/12/25(水) 23:45:00.44ID:TuXJcfTM0
yesっていうコマンドがあるんだよ
exec('yes | create database hogehoge');
-yオプション的なのををサポートしてるかどうかはそのコマンドのマニュアル読んで
exec('yes | create database hogehoge');
-yオプション的なのををサポートしてるかどうかはそのコマンドのマニュアル読んで
2019/12/26(木) 00:03:12.37ID:QbBK51Lf0
2019/12/26(木) 06:40:21.95ID:kwmHN0pwd
yesはLinuxのコマンド。
2019/12/26(木) 07:36:02.91ID:G8FNklXra
2019/12/27(金) 00:29:11.90ID:TcF0JrOBr
PHPの環境構築ってWindowsの場合どの方法が主流なのかね
検索するとXAMPPの記事ばかり出てくるけど手軽な一方環境を汚すんで微妙な気がするんだが
検索するとXAMPPの記事ばかり出てくるけど手軽な一方環境を汚すんで微妙な気がするんだが
2019/12/27(金) 00:38:09.97ID:Jp3jdKct0
Windows自体が汚れてるんだから気にしないの
2019/12/27(金) 00:44:39.91ID:EEOcwadQ0
自分なら、仮想環境を構築してその中でやりたい
642デフォルトの名無しさん (ワッチョイ a601-LIdJ)
2019/12/27(金) 08:17:09.42ID:4FJgkgoK0 PHPの勉強が目的ならXAMPPやMANPでいいと思うけどな
仮想環境やらの設定や不具合で時間食ってたら元も子もない
仮想環境やらの設定や不具合で時間食ってたら元も子もない
2019/12/27(金) 10:56:24.24ID:EEOcwadQ0
その程度の知識は何れにしろ必要だろう
644デフォルトの名無しさん (ワントンキン MMac-HCDf)
2019/12/27(金) 11:51:48.01ID:54ZzlDGdM 初心者にいきなり全CUI操作を強いるのはどうかと思う
VirtualBoxあたりでUbuntu入れて環境構築させればいいんじゃない
VirtualBoxあたりでUbuntu入れて環境構築させればいいんじゃない
645デフォルトの名無しさん (ワッチョイ 468c-1wr4)
2020/01/02(木) 18:10:26.21ID:NsD5otxd0 PHPを使ったサーバーサイドってどんなことしてるの?
ここはSQLの内部データ表示したいからhtmlの中にdivタグ付けて関数呼び出してってそんな感じでやってるの?
ここはSQLの内部データ表示したいからhtmlの中にdivタグ付けて関数呼び出してってそんな感じでやってるの?
2020/01/03(金) 20:24:16.45ID:9LIAX5hH0
>>645
別にPHPに限ったことじゃないけどサーバサイドでやることはだいたいそんな感じ
別にPHPに限ったことじゃないけどサーバサイドでやることはだいたいそんな感じ
647デフォルトの名無しさん (ワッチョイ 468c-1wr4)
2020/01/04(土) 03:43:48.23ID:5wVpG03+0 やっぱそうなんか、SQLのログイン設定とかばれるからそうやって防いだり動的処理するんか
2020/01/04(土) 05:01:29.27ID:E/0LWI5y0
何言ってんだかわかんない
649デフォルトの名無しさん (ワッチョイ fe89-GYAN)
2020/01/04(土) 23:05:43.91ID:9+8EnAbP0 質問です。
環境はMacでXAMPPを使っています。
エラーが出てググったところgdの「JPG Support」がないからだというところまでわかりました。
ですがサポートのさせ方がわかりません。
どうするといいのでしょうか?
環境はMacでXAMPPを使っています。
エラーが出てググったところgdの「JPG Support」がないからだというところまでわかりました。
ですがサポートのさせ方がわかりません。
どうするといいのでしょうか?
2020/01/04(土) 23:16:35.72ID:9cRomv9Ua
php7環境でpear mailを練習していたところ、
Parse error: syntax error, unexpected 'new' (T_NEW) in /usr/share/pear/Mail/smtp.php on line 349
が出るので調べてみると非対応のようですが、
何に置き換えるのが一般的なのでしょうか?
mail、mb_send_mailでも良いのでしょうか?
これらがあるのにpear mailが利用されていたのでしょうか?
Parse error: syntax error, unexpected 'new' (T_NEW) in /usr/share/pear/Mail/smtp.php on line 349
が出るので調べてみると非対応のようですが、
何に置き換えるのが一般的なのでしょうか?
mail、mb_send_mailでも良いのでしょうか?
これらがあるのにpear mailが利用されていたのでしょうか?
2020/01/04(土) 23:34:51.34ID:9cRomv9Ua
SMTP.phpの該当箇所349行目を見ると
$this->_smtp = &new Net_SMTP($this->host,
とあったので、&new を new に置き換えると
エラーは出なくなりましたが。
さすがにソースを変えるのは良くないと思いますが、
php7用のpear mailがremiから提供されているのでしょうか?
他の方法を検討するべきでしょうか?
$this->_smtp = &new Net_SMTP($this->host,
とあったので、&new を new に置き換えると
エラーは出なくなりましたが。
さすがにソースを変えるのは良くないと思いますが、
php7用のpear mailがremiから提供されているのでしょうか?
他の方法を検討するべきでしょうか?
2020/01/04(土) 23:54:26.28ID:LM3WrULI0
653デフォルトの名無しさん (ワッチョイ fe89-GYAN)
2020/01/05(日) 00:03:45.20ID:ftX4LjxF0 >>652
エラーは
Fatal error: Uncaught Error: Call to undefined function imagecreatefromjpeg() in /Applications/XAMPP/xamppfiles/htdocs/php/sample2.php:5 Stack trace: #0 {main} thrown
です。
ググったところgdの「JPG Support」がないとのことで、phpinfoで調べたところ実際にありませんでした。
extension=php_gd2.dllのコメント化も解除し、再起動しましたがまだエラーになります。
エラーは
Fatal error: Uncaught Error: Call to undefined function imagecreatefromjpeg() in /Applications/XAMPP/xamppfiles/htdocs/php/sample2.php:5 Stack trace: #0 {main} thrown
です。
ググったところgdの「JPG Support」がないとのことで、phpinfoで調べたところ実際にありませんでした。
extension=php_gd2.dllのコメント化も解除し、再起動しましたがまだエラーになります。
654デフォルトの名無しさん (ワッチョイ 468c-1wr4)
2020/01/05(日) 00:08:18.80ID:mNtiIqp60 https://ideone.com/VwTTUI
こういう書き方って良くないん?こういう手があったかって思ったが見た目が悪いことに気付いた
こういう書き方って良くないん?こういう手があったかって思ったが見た目が悪いことに気付いた
2020/01/05(日) 01:17:40.44ID:qDQaoTCH0
>>653
XAMPP7.4x使ってる?
確かにPHP7.4(XAMPP7.4x)でGDのJPEG Supportがないって報告出てるね
7.4からGDのconfigureオプションが変更されてるようだけど
旧オプションのままコンパイルしようとして無視されてるのかも
そのうち対応してくれると思うけど
自力でどうにかできないならPHP7.3(xampp7.3x)以下を使ってみると解決するかも?
>>654
https://ideone.com/ZwhEN8
まあフレームワーク使いましょう
XAMPP7.4x使ってる?
確かにPHP7.4(XAMPP7.4x)でGDのJPEG Supportがないって報告出てるね
7.4からGDのconfigureオプションが変更されてるようだけど
旧オプションのままコンパイルしようとして無視されてるのかも
そのうち対応してくれると思うけど
自力でどうにかできないならPHP7.3(xampp7.3x)以下を使ってみると解決するかも?
>>654
https://ideone.com/ZwhEN8
まあフレームワーク使いましょう
656デフォルトの名無しさん (ワッチョイ 468c-1wr4)
2020/01/05(日) 01:19:29.11ID:mNtiIqp60 >>655
やっぱそれが正しい書き方なんだな、悩んでたがスッキリしたわ
やっぱそれが正しい書き方なんだな、悩んでたがスッキリしたわ
2020/01/05(日) 02:02:10.08ID:sULWpEk60
プログラマー脳は前者、WEB屋は後者って感じ
658デフォルトの名無しさん (ワッチョイ fe89-GYAN)
2020/01/05(日) 09:10:52.06ID:ftX4LjxF02020/01/05(日) 10:23:42.03ID:GvoILGxb0
>>655
foreach のブロックをカッコじゃなく endforeach にするのはなんで?
カッコの対応を取ってくれるテキストエディタは多いのにそういうアシストも受けられなくなるし、タイプ量も増えるし、
あんまりやらんとは思うがループを foreach から for に変更するなんてのも面倒だし、何がよくてそうするのかさっぱり分からん。
foreach のブロックをカッコじゃなく endforeach にするのはなんで?
カッコの対応を取ってくれるテキストエディタは多いのにそういうアシストも受けられなくなるし、タイプ量も増えるし、
あんまりやらんとは思うがループを foreach から for に変更するなんてのも面倒だし、何がよくてそうするのかさっぱり分からん。
2020/01/05(日) 13:29:38.07ID:qDQaoTCH0
>>659
テンプレートエンジンだとだいたいそういう風に書くと思うけど
テンプレートエンジンだとだいたいそういう風に書くと思うけど
2020/01/05(日) 14:35:14.19ID:1zEvaEuJM
2020/01/05(日) 14:39:22.34ID:qDQaoTCH0
そんな下らないとこで噛みつかれるとは思いもしないんで
気の利く答えなんて持ち合わせてないでw
自分にあったスタイルで「好きにしろ」でいいんじゃないの別に
気の利く答えなんて持ち合わせてないでw
自分にあったスタイルで「好きにしろ」でいいんじゃないの別に
2020/01/05(日) 16:55:06.61ID:1zEvaEuJM
あぁ、ごめん
そういうスタイルで書いてるのをしばしば見るので、どんなメリットがあってそうしてるのか気になっただけだ。
単に好みの問題なのね。
そういうスタイルで書いてるのをしばしば見るので、どんなメリットがあってそうしてるのか気になっただけだ。
単に好みの問題なのね。
664デフォルトの名無しさん (ワッチョイ c261-BfT8)
2020/01/05(日) 17:25:59.86ID:HEA2L3oC0 括弧だとわかりにくいから。
htmlが混じるとインデントもややこしくなるし。
htmlが混じるとインデントもややこしくなるし。
665デフォルトの名無しさん (ワッチョイ 468c-1wr4)
2020/01/06(月) 13:02:17.22ID:udFWw96L0 個人的にはhtmlのタグのインテリセンスがかかるからスペルミス閉じミスが起きないから良いなって感じかな
2020/01/06(月) 17:09:39.10ID:RuDbGpDl0
配列なら、$his より $histories の方がしっくりくる
変に略されると読みづらい
変に略されると読みづらい
2020/01/08(水) 02:17:03.00ID:DD+ZGKXm0
新しいサーバへの移行をしているのですが、
とりあえず動かすと「Parse error: Invalid numeric literal 」が出ます。
覚え立ての開発環境ではこんな感じです。
https://i.imgur.com/Jmw3irM.png
配列を空にして、配列が空でないならば、それぞれの「時」に対して「true, false」を入れた連想配列を作って、
現在時の「時」を$hourに入れて、それを比較して連想配列の「時」をキーにして「true」か「false」どちらかを返すということだと思いますが、
Invalid numeric literalは「使えない数字」と考えて良いのでしょうか?
php5では使えていたとは思いますが、php7では厳しくなったということでしょうか?
vscodeを覚えて時を止めてデバッグができる時に感動しました。
変数がコマ送りに変化していくことが見えるのは凄いです。
とりあえず動かすと「Parse error: Invalid numeric literal 」が出ます。
覚え立ての開発環境ではこんな感じです。
https://i.imgur.com/Jmw3irM.png
配列を空にして、配列が空でないならば、それぞれの「時」に対して「true, false」を入れた連想配列を作って、
現在時の「時」を$hourに入れて、それを比較して連想配列の「時」をキーにして「true」か「false」どちらかを返すということだと思いますが、
Invalid numeric literalは「使えない数字」と考えて良いのでしょうか?
php5では使えていたとは思いますが、php7では厳しくなったということでしょうか?
vscodeを覚えて時を止めてデバッグができる時に感動しました。
変数がコマ送りに変化していくことが見えるのは凄いです。
2020/01/08(水) 02:41:05.10ID:kulAlEGT0
0から始まってるのは8進数なのでphp7ではエラー
php5以下で08は0と解釈されてたはず
php5以下で08は0と解釈されてたはず
2020/01/08(水) 08:48:02.53ID:DD+ZGKXm0
ありとうございます。
シングルクォートを使ってキーを文字列として配列にしました。
phpって曖昧とは聞きますが、08 にだけ8進数として反応するのですね。
シングルクォートを使ってキーを文字列として配列にしました。
phpって曖昧とは聞きますが、08 にだけ8進数として反応するのですね。
2020/01/08(水) 10:56:17.40ID:Bxyfcf/k0
そんなばかなー
10進数で言う0から10までを8進数で書いてみるといい(手書きでいい
10進数で言う0から10までを8進数で書いてみるといい(手書きでいい
2020/01/08(水) 18:23:40.37ID:DD+ZGKXm0
>>670
0, 1, 2, 3, 4, 5, 6, 7, 10, 11, 12
ですよね。
シングルクォートで文字列にしてエラーは出なくなりました。
この関数は昔誰かが書いたものですが、時によってフラグを立てる方法としてはまだ改良の余地があるのでしょうか。
0, 1, 2, 3, 4, 5, 6, 7, 10, 11, 12
ですよね。
シングルクォートで文字列にしてエラーは出なくなりました。
この関数は昔誰かが書いたものですが、時によってフラグを立てる方法としてはまだ改良の余地があるのでしょうか。
2020/01/08(水) 18:37:40.91ID:Bxyfcf/k0
08と09は8進表記であり得ないからInvalid numeric literal
素直に頭文字0を削除すればいいのに
素直に頭文字0を削除すればいいのに
2020/01/08(水) 18:47:21.77ID:Z7OGNEnI0
>>671
そもそもなんだけど、関数の引数で $time_array が渡されたとき、その添字はどんな形式になってるの?
$hour は文字列なんだから、元々配列の添字は文字列であるべきだったように見えるけど。
それはそれとして、小さなフラグテーブルなら文字列で書く方法もあるかもね。
$timetbl = '000000000011111111111100';
return $timetbl[(int)$hour] === '1';
みたいな。
その例ではインタフェースを変更しないといけなくなるから適用しづらいだろうけど。
そもそもなんだけど、関数の引数で $time_array が渡されたとき、その添字はどんな形式になってるの?
$hour は文字列なんだから、元々配列の添字は文字列であるべきだったように見えるけど。
それはそれとして、小さなフラグテーブルなら文字列で書く方法もあるかもね。
$timetbl = '000000000011111111111100';
return $timetbl[(int)$hour] === '1';
みたいな。
その例ではインタフェースを変更しないといけなくなるから適用しづらいだろうけど。
2020/01/08(水) 19:49:43.97ID:w19vYwgJ0
>>671
do_check_exec_time関数だけどさ
返却値が不規則ならともかく、10~21の範囲ならtrue、それ以外はfalseで駄目なの?
引数範囲もチェックしたいなら、先頭行で行えば良いと思う
do_check_exec_time関数だけどさ
返却値が不規則ならともかく、10~21の範囲ならtrue、それ以外はfalseで駄目なの?
引数範囲もチェックしたいなら、先頭行で行えば良いと思う
2020/01/08(水) 21:14:25.57ID:DD+ZGKXm0
レスを書くと forbiddenになったので、レスにNGワードが含まれているようです。
何がダメなんだろう・・・
レスは返したかったので画像にしました
https://i.imgur.com/XjOXs1g.jpg
何がダメなんだろう・・・
レスは返したかったので画像にしました
https://i.imgur.com/XjOXs1g.jpg
2020/01/08(水) 22:18:06.43ID:zDxhP1FM0
PHPはJavaScriptなんかと違って文字連結とは演算子が別れてるから
+演算子は加算専用で数字として扱えるというか数値として扱うというのが正しい
>>667のコード見た感想としてはそこで初期値設定するか?って思ったわ
渡すべき$time_arrayの初期値としてならともかく
ちゃんとarrayのみ渡されるよう想定したほうがいいね
+演算子は加算専用で数字として扱えるというか数値として扱うというのが正しい
>>667のコード見た感想としてはそこで初期値設定するか?って思ったわ
渡すべき$time_arrayの初期値としてならともかく
ちゃんとarrayのみ渡されるよう想定したほうがいいね
2020/01/08(水) 22:26:16.06ID:zDxhP1FM0
ちなみに勘違いしてなければいいけど
date関数のreturn値は文字列なんで08は正確には"08"
8進数でも他の数値的な何者かではなくただの文字列
date関数のreturn値は文字列なんで08は正確には"08"
8進数でも他の数値的な何者かではなくただの文字列
678デフォルトの名無しさん (ワッチョイ 7fd4-ErPi)
2020/01/13(月) 21:12:24.20ID:KUUG8Hhj0 質問があります。もしわかる方がいましたらご教授頂きたいです。
htmlを読み込んでbodyタグの中のaタグに書かれている内容を表示させようとしています。
(このサイトを参考:https://blog.katty.in/1400)
$url = 'https://haruoto.com/?page_id=11';
$html = file_get_contents($url);
$html = mb_convert_encoding($html, 'HTML-ENTITIES', 'ASCII, JIS, UTF-8, EUC-JP, SJIS');
$domDocument = new DOMDocument();
$domDocument->loadHTML($html);
$xmlString = $domDocument->saveXML();
$xmlObject = simplexml_load_string($xmlString);
$array = json_decode(json_encode($xmlObject), true);
echo $array['body']['a']; //「コンテンツへスキップ」と表示される
上記のコードは正しく動作するのですが、URLを「https://haruoto.com/?reply=407」に変更すると正しく動作しません。
何が原因なんでしょうか?
htmlを読み込んでbodyタグの中のaタグに書かれている内容を表示させようとしています。
(このサイトを参考:https://blog.katty.in/1400)
$url = 'https://haruoto.com/?page_id=11';
$html = file_get_contents($url);
$html = mb_convert_encoding($html, 'HTML-ENTITIES', 'ASCII, JIS, UTF-8, EUC-JP, SJIS');
$domDocument = new DOMDocument();
$domDocument->loadHTML($html);
$xmlString = $domDocument->saveXML();
$xmlObject = simplexml_load_string($xmlString);
$array = json_decode(json_encode($xmlObject), true);
echo $array['body']['a']; //「コンテンツへスキップ」と表示される
上記のコードは正しく動作するのですが、URLを「https://haruoto.com/?reply=407」に変更すると正しく動作しません。
何が原因なんでしょうか?
2020/01/13(月) 21:17:58.61ID:xgMgrp400
HTMLの構造が違うんじゃねーの?
FirefoxなどのブラウザでHTMLのソースを見てみたら?
FirefoxなどのブラウザでHTMLのソースを見てみたら?
2020/01/13(月) 21:52:49.01ID:DUDFC3XS0
?reply=407の693~697行目がコメントの中に--を含む不正な構造なのでsimplexml_load_stringが失敗してるから
681デフォルトの名無しさん (ワッチョイ 7fd4-ErPi)
2020/01/14(火) 00:49:39.13ID:Pp7kDtDs02020/01/14(火) 01:08:34.22ID:HMRlieOS0
PHPのDOMload周りは@でエラー無視が一般的だと思う
$domDocument->loadHTML($html);
↓
@$domDocument->loadHTML($html);
>>678も自分の環境じゃWarning出まくるけどこれで結果を得られるし
?reply=407へURL書き換えたあともちゃんと結果を得られる
自分はPHPのDOM周りはいまいちなんでJavaScript側でやるかな
$domDocument->loadHTML($html);
↓
@$domDocument->loadHTML($html);
>>678も自分の環境じゃWarning出まくるけどこれで結果を得られるし
?reply=407へURL書き換えたあともちゃんと結果を得られる
自分はPHPのDOM周りはいまいちなんでJavaScript側でやるかな
683デフォルトの名無しさん (ワッチョイ dff1-///2)
2020/01/14(火) 11:21:04.15ID:LsFOQfCc0 自分のサイトを作ることにしました。
目的は主に2つあって、なにか簡単な商売をして副業としてお金をかせぐことと、ブログみたいになにか情報発信しようかと思っています。
PHPも使います。
どこのレンタルサーバを使うのが得策でしょうか?
今後生涯サイトは使おうと思います。
目的は主に2つあって、なにか簡単な商売をして副業としてお金をかせぐことと、ブログみたいになにか情報発信しようかと思っています。
PHPも使います。
どこのレンタルサーバを使うのが得策でしょうか?
今後生涯サイトは使おうと思います。
684デフォルトの名無しさん (ワッチョイ 7f59-alJZ)
2020/01/14(火) 14:36:03.43ID:Yv2y+5Q60 ここはまんさんでもやさしくしてくれるやろか
あのな、画像検索するとある画像が大きさが5504x8256ってなってるんやが開くとちっさいんや大きさが指定してあって。アドレスバーのとこに410x618って書いてあって。しかもこいつ実際は274x410なんやで。
wysiwygとかでダメなんやろかってやってもちっさいんや。大きいのは格納されとるハズなんやろうけど初心者すぎて大きい元画像にたどりつけないんやで。
やさしい人手取り足取り教えてほしいんやでどなたか
あのな、画像検索するとある画像が大きさが5504x8256ってなってるんやが開くとちっさいんや大きさが指定してあって。アドレスバーのとこに410x618って書いてあって。しかもこいつ実際は274x410なんやで。
wysiwygとかでダメなんやろかってやってもちっさいんや。大きいのは格納されとるハズなんやろうけど初心者すぎて大きい元画像にたどりつけないんやで。
やさしい人手取り足取り教えてほしいんやでどなたか
685デフォルトの名無しさん (ワッチョイ 7f59-alJZ)
2020/01/14(火) 14:36:34.20ID:Yv2y+5Q60 スレチやったらごめんなさい
686683 (ワッチョイ dff1-///2)
2020/01/14(火) 16:42:58.46ID:LsFOQfCc0 どうですかね?
いまの時代、無料のレンタルサーバでPHP/SQLも使えるところはあるのでしょうか?
いまの時代、無料のレンタルサーバでPHP/SQLも使えるところはあるのでしょうか?
687デフォルトの名無しさん (ワッチョイ 5fda-woae)
2020/01/14(火) 16:49:46.95ID:HWX79XGs0 >>684
自分のサイトの話じゃなくて、他人のサイトに置いてある画像の元ファイルにどうしたらたどりつけるかって話か
ここは下らねぇ質問のスレだが自分のサイト以外の問題を持ち掛けられてもしょうもないと思います
自分のサイトの話じゃなくて、他人のサイトに置いてある画像の元ファイルにどうしたらたどりつけるかって話か
ここは下らねぇ質問のスレだが自分のサイト以外の問題を持ち掛けられてもしょうもないと思います
2020/01/14(火) 16:57:43.19ID:R0T58PMv0
2020/01/14(火) 20:36:37.48ID:/BEaD92M0
mysql_real_escape_string($string)
を多用している手続き型のphp5環境からphp7へ移行をしていて、
mysqli_real_escape_string($link, $string)
への修正しているのですが、
htmlspecialcharsのように、エスケープ目的で多用しているコードなのですが、
データベースのリンクも引数の強制になったようですが、リンクを使うのはどういう理由なのでしょうか?
また使いどころとしては、多用せずsqlクエリを使う前に1回で済ますという感じでしょうか?
を多用している手続き型のphp5環境からphp7へ移行をしていて、
mysqli_real_escape_string($link, $string)
への修正しているのですが、
htmlspecialcharsのように、エスケープ目的で多用しているコードなのですが、
データベースのリンクも引数の強制になったようですが、リンクを使うのはどういう理由なのでしょうか?
また使いどころとしては、多用せずsqlクエリを使う前に1回で済ますという感じでしょうか?
2020/01/15(水) 00:51:29.73ID:0SK8bZ/o0
>リンクを使うのはどういう理由なのでしょうか?
マニュアルに書いてるけど、
「接続の現在の文字セットを考慮して、SQL 文で使用する文字列の特殊文字をエスケープする」から。
接続が複数あって文字セットが異なる場合なんかを考慮してるのでしょう。
>多用せずsqlクエリを使う前に1回で済ますという感じでしょうか?
プリペアドステートメントで行うのが普通。
mysqliみたいなベンダー固有関数は汎用性がないのであまり使われないよ。
mysqlしか使わないならいいけど、本気で修正するなら手間も同じだしPDOでやったほうがいいと思う。
マニュアルに書いてるけど、
「接続の現在の文字セットを考慮して、SQL 文で使用する文字列の特殊文字をエスケープする」から。
接続が複数あって文字セットが異なる場合なんかを考慮してるのでしょう。
>多用せずsqlクエリを使う前に1回で済ますという感じでしょうか?
プリペアドステートメントで行うのが普通。
mysqliみたいなベンダー固有関数は汎用性がないのであまり使われないよ。
mysqlしか使わないならいいけど、本気で修正するなら手間も同じだしPDOでやったほうがいいと思う。
2020/01/15(水) 01:29:34.93ID:0SK8bZ/o0
>>690の答えはちょっと答えになってなかったから補足しとく
・mysql関数時代も接続(リンク)は必要っちゃ必要だったけど、省略可能な第二引数だった。
省略した場合は、直近に使った接続になる。
・mysqli関数は省略不可能な第一引数になった。(引数の順番が変わった)
mysql関数は、接続を明示しなくていいので、
接続が複数ある場合、意図しないDBを操作するミスがおきる可能性がある。
エスケープする場合も同様、意図しないエスケープ結果になってしまう恐れがある。
そういうミスを減らすためにも、接続を明示しないといけないmysqli関数ってことなんじゃないかな多分。
・mysql関数時代も接続(リンク)は必要っちゃ必要だったけど、省略可能な第二引数だった。
省略した場合は、直近に使った接続になる。
・mysqli関数は省略不可能な第一引数になった。(引数の順番が変わった)
mysql関数は、接続を明示しなくていいので、
接続が複数ある場合、意図しないDBを操作するミスがおきる可能性がある。
エスケープする場合も同様、意図しないエスケープ結果になってしまう恐れがある。
そういうミスを減らすためにも、接続を明示しないといけないmysqli関数ってことなんじゃないかな多分。
2020/01/15(水) 19:33:51.69ID:OZZ+PtiC0
今まで1つの接続しかしたことが無かったので複数を接続するって考えもしなかったです。
たしかにそれだと文字コードが違う場合も想定すると、明示したほうが良いですよね。
古すぎてpdoに書き直すのは難しいので、とりあえず地味に書き換えていきます。
しかしmysqli_real_escape_stringや、mysqli_queryとか
引数の強制が増えたり、引数が入れ替わったり、pdoを使っていない古いコードは修正に振り回されることになりますよね。
プリペアドステートメントは「?」とかコードの行数が一気に増えて難しそうなのですが、
クエリに直接変数を書いて、real_escapeすればと思ってしまうのですがやはりデメリットがあるのでしょうか。
新規で練習するときはプリペアドステートメントを使おうと思っています。
たしかにそれだと文字コードが違う場合も想定すると、明示したほうが良いですよね。
古すぎてpdoに書き直すのは難しいので、とりあえず地味に書き換えていきます。
しかしmysqli_real_escape_stringや、mysqli_queryとか
引数の強制が増えたり、引数が入れ替わったり、pdoを使っていない古いコードは修正に振り回されることになりますよね。
プリペアドステートメントは「?」とかコードの行数が一気に増えて難しそうなのですが、
クエリに直接変数を書いて、real_escapeすればと思ってしまうのですがやはりデメリットがあるのでしょうか。
新規で練習するときはプリペアドステートメントを使おうと思っています。
2020/01/16(木) 04:41:59.97ID:WGM+n45y0
>>692
具体的なコードは書かないけど、
real_escape_stringでは攻撃対策としては不十分だから、プリペアドステートメントは必須。
(PDO使う場合、PDO::ATTR_EMULATE_PREPARESが1で、PDO側でエミュレートする場合、攻撃が成立する場合があるのは注意)
型を調べたり、想定してるフォーマットに沿うものか検証(バリデーション)して、
受け渡された変数が安全なデータであることが保証されてればいいけど、それこそコード長くなるし、
プリペアドステートメントでやったほうが、確実だし簡単だと思う。
具体的なコードは書かないけど、
real_escape_stringでは攻撃対策としては不十分だから、プリペアドステートメントは必須。
(PDO使う場合、PDO::ATTR_EMULATE_PREPARESが1で、PDO側でエミュレートする場合、攻撃が成立する場合があるのは注意)
型を調べたり、想定してるフォーマットに沿うものか検証(バリデーション)して、
受け渡された変数が安全なデータであることが保証されてればいいけど、それこそコード長くなるし、
プリペアドステートメントでやったほうが、確実だし簡単だと思う。
2020/01/16(木) 09:20:07.39ID:yWLTyI800
>>692
あちこちに適用するライブラリでもなくいろんなDBに対応するわけでもないんだろうから、無理して PDO に置き換える必要は無いんじゃね。
プリペアドステートメントのいいところはプレースホルダが使えることもあるけど、プリペア済みのオブジェクトを何度も使い回すことによってSQLのパースを省略してパフォーマンスを上げられるって利点がある。
でも使い回しなんてせず同じSQLでも使う度にプリペアするようなコードが多いだろうし、バッチならともかくwebの1リクエストでどんだけ使い回せるの?って話もある。
それに加えて LIKE とか可変個の IN とか面倒だから、プリペアドステートメントに拘る必要は無いというのが俺の考えだな。
新規じゃないなら特に。
あちこちに適用するライブラリでもなくいろんなDBに対応するわけでもないんだろうから、無理して PDO に置き換える必要は無いんじゃね。
プリペアドステートメントのいいところはプレースホルダが使えることもあるけど、プリペア済みのオブジェクトを何度も使い回すことによってSQLのパースを省略してパフォーマンスを上げられるって利点がある。
でも使い回しなんてせず同じSQLでも使う度にプリペアするようなコードが多いだろうし、バッチならともかくwebの1リクエストでどんだけ使い回せるの?って話もある。
それに加えて LIKE とか可変個の IN とか面倒だから、プリペアドステートメントに拘る必要は無いというのが俺の考えだな。
新規じゃないなら特に。
2020/01/16(木) 14:43:23.92ID:B1/MNbmAM
pdoに置き換えは無理してってほど大袈裟なものじゃないでしょ
手続きが用意されてないからオブジェクトになるけど
オブジェクト型のmysqliと比較してコードは似たりよったりだ
新規はpdoにしたほうがいい
手続きが用意されてないからオブジェクトになるけど
オブジェクト型のmysqliと比較してコードは似たりよったりだ
新規はpdoにしたほうがいい
2020/01/16(木) 14:49:59.78ID:7uXyXPAQ0
どこかの機会で書き替えて行けば良いよ
将来はサポートされなくなる訳だし
将来はサポートされなくなる訳だし
697デフォルトの名無しさん (ワッチョイ 8d07-muX5)
2020/01/16(木) 16:00:44.94ID:NkO/oANm0 クラス内のメソッドについて、
似たような処理を行うもの(少し変更している)のがあるとします。
たとえば「redirect」というメソッドだったとして、
少し変更したのを「_redirect」みたいにして、親クラスに用意しているのですが
こういう書き方・使い方はまずいでしょうか?
beforeRedirectとかcustomRedirectみたいに変えた方がいいでしょうか?
似たような処理を行うもの(少し変更している)のがあるとします。
たとえば「redirect」というメソッドだったとして、
少し変更したのを「_redirect」みたいにして、親クラスに用意しているのですが
こういう書き方・使い方はまずいでしょうか?
beforeRedirectとかcustomRedirectみたいに変えた方がいいでしょうか?
2020/01/16(木) 16:10:34.16ID:QgmPcxAO0
extendsで新しいクラスにすることと比べると
悩みどころですね
悩みどころですね
2020/01/16(木) 16:42:45.37ID:7uXyXPAQ0
将来メンテする人にとって無用な負担をかけない方法を選択しよう
使うユーザーができるだけ負担を感じない道を選んだ方がいい
使うユーザーができるだけ負担を感じない道を選んだ方がいい
2020/01/16(木) 17:54:13.09ID:WGM+n45y0
>>697
どう変更してるのかわからないけど、
引数の数や型が違うならオーバーロードにする手もある。
ただしPHPにはない機能なので、可変引数を使ったり工夫が必要になるけど。
あとは柔軟に引数でモード選ぶとか、言ってるように名前変えるとかでいいと思う。
どう変更してるのかわからないけど、
引数の数や型が違うならオーバーロードにする手もある。
ただしPHPにはない機能なので、可変引数を使ったり工夫が必要になるけど。
あとは柔軟に引数でモード選ぶとか、言ってるように名前変えるとかでいいと思う。
701デフォルトの名無しさん (ワッチョイ 8261-s5Rz)
2020/01/16(木) 18:12:11.14ID:9x78fuLW0 共通部分の処理は親側で全部行うようにして、差分だけを子側に委譲する(abstractメソッド)。
2020/01/16(木) 20:22:40.39ID:HZuE80s1a
>>693-694
今回は古い部分を直すだけで必死なのでreal_escapeを使いますが、
たしかにプリペアドステートメントが
エスケープも兼ねるので新規では使いたいです。
古いコードなので、闇雲に同じクエリを投げているので、そういう意味ではプリペアドステートメントの利点を受けられるかもしれません
今回は古い部分を直すだけで必死なのでreal_escapeを使いますが、
たしかにプリペアドステートメントが
エスケープも兼ねるので新規では使いたいです。
古いコードなので、闇雲に同じクエリを投げているので、そういう意味ではプリペアドステートメントの利点を受けられるかもしれません
2020/01/17(金) 17:10:14.42ID:HDLfgQuO0
>>699-700
できれば他の人が見てもわかる方法にしたいのですが、
親クラス
class Main {
function redirect($url){
header('Location:' . $url);
}
function _redirect($url){
~$urlになにかする処理~
$this->redirect($url);
}
}
みたいなことをしていまして、これだとわかりづらいですよね?
※redirectになにかする処理を書くのは別とします。
なので別のメソッド名にした方がいいのかな?と思うものの、
beforeRedirectとかcustomRedirectとかにするのは変かな?
と感じており、質問した次第です。
できれば他の人が見てもわかる方法にしたいのですが、
親クラス
class Main {
function redirect($url){
header('Location:' . $url);
}
function _redirect($url){
~$urlになにかする処理~
$this->redirect($url);
}
}
みたいなことをしていまして、これだとわかりづらいですよね?
※redirectになにかする処理を書くのは別とします。
なので別のメソッド名にした方がいいのかな?と思うものの、
beforeRedirectとかcustomRedirectとかにするのは変かな?
と感じており、質問した次第です。
2020/01/17(金) 18:45:49.52ID:vvJW2PiAM
コールバックでいいんじゃ
2020/01/17(金) 22:12:48.18ID:9k6vGiaj0
2020/01/20(月) 10:56:16.47ID:UzBq59x80
>>705
通常はredirectの方で、変わったことがしたい(ページ推移を分岐させたい等)時は
_redirectの方を使うというイメージです。
そのため、「このリダイレクトは、カスタマイズしたリダイレクトですよ」
ということを説明するためのメソッドであればと思うのですが、
「_redirect」のような名前は、間違いやすいし、
beforeRedirectの場合はイベントハンドラっぽいので、悩んでいる次第です。
通常はredirectの方で、変わったことがしたい(ページ推移を分岐させたい等)時は
_redirectの方を使うというイメージです。
そのため、「このリダイレクトは、カスタマイズしたリダイレクトですよ」
ということを説明するためのメソッドであればと思うのですが、
「_redirect」のような名前は、間違いやすいし、
beforeRedirectの場合はイベントハンドラっぽいので、悩んでいる次第です。
2020/01/20(月) 11:28:18.41ID:UzBq59x80
すみません、自己レスですがやっぱり変なので
class Main {
function beforeRedirect($url){
~$urlになにかする処理~
return $url;
}
function redirect($url){
$url = $this->beforeRedirect($url);
header('Location:' . $url);
}
}
みたいな設計にし直します。
class Main {
function beforeRedirect($url){
~$urlになにかする処理~
return $url;
}
function redirect($url){
$url = $this->beforeRedirect($url);
header('Location:' . $url);
}
}
みたいな設計にし直します。
2020/01/20(月) 19:21:08.15ID:OvG49n5/0
ネーミングの問題だと思うけど、アンダーバーが付いたのは予約語だったりシステムコールに
見えちゃうので、ちゃんと名前付けた方がいいね
個人的には面倒くさかったら拡張した方はすべて~exで済ませる
見えちゃうので、ちゃんと名前付けた方がいいね
個人的には面倒くさかったら拡張した方はすべて~exで済ませる
2020/01/21(火) 22:14:23.82ID:k/0CqDEqa
editURL/editRedirectURLとか
あとはめっちゃ冗長だけどeditURLBeforeRedirectとかな
そもそもredirectと並列に並べるような処理してないんだから同じ動詞が中心になるような命名はダメ
あとはめっちゃ冗長だけどeditURLBeforeRedirectとかな
そもそもredirectと並列に並べるような処理してないんだから同じ動詞が中心になるような命名はダメ
2020/01/26(日) 21:35:09.22ID:X84CwPm80
formのactionを「action=""」と記述した場合、再帰的に現在のページが呼び出されると
あったのですが、その際は現在のページの記述を全て読み込みなおすってことでしょうか?
あったのですが、その際は現在のページの記述を全て読み込みなおすってことでしょうか?
2020/01/26(日) 22:32:40.52ID:a2Fj97SM0
2020/01/26(日) 22:34:05.94ID:qUKNFCzW0
>>710
遷移先のURLが今と同じになるということ。
submitされる内容はその時のformの中身だから、ページの内容を読み込み直すということではない。
よくあるフォームだと、入力、確認、完了画面を順に遷移していくと思うけど、それら全部を同じ myform.php というひとつの URL で対応する感じ。
今どの画面を表示すべきなのかは submitされるパラメータのどれかに仕込むとかして判別できるようにする。
method が get だと URL自体が変化していくから、その手法をやるなら method は必然的に post になる。
遷移先のURLが今と同じになるということ。
submitされる内容はその時のformの中身だから、ページの内容を読み込み直すということではない。
よくあるフォームだと、入力、確認、完了画面を順に遷移していくと思うけど、それら全部を同じ myform.php というひとつの URL で対応する感じ。
今どの画面を表示すべきなのかは submitされるパラメータのどれかに仕込むとかして判別できるようにする。
method が get だと URL自体が変化していくから、その手法をやるなら method は必然的に post になる。
2020/01/26(日) 23:01:03.81ID:X84CwPm80
2020/01/26(日) 23:24:50.30ID:9P93xbrg0
GETだとブラウザのキャッシュが使われる可能性もあるが
POSTなら確実に再度リクエストが来る
POSTなら確実に再度リクエストが来る
2020/01/26(日) 23:31:40.69ID:qUKNFCzW0
>>713
それは同じURLで get と post の両方に対応してるんだね。
リンク踏んだりURL叩いてページに来たときは get でのアクセスになるから、とりあえず動画閲覧画面でも表示するのでしょう。
でもその画面では動画のアップロードもできるようになってて、post によってアクセスされる場合はアップロードの操作がされたものとして動画を差し換え、改めて閲覧画面を表示するのでしょう。
ページの記述とか何言ってるのかはよくわからないけど、その URL はアクセスされる度に毎回一からページを送り出してるだけだと思うよ。
動画のIDなんかURL自体に含まれてて、閲覧や更新対象を示すキーとして満ち足りてるから、同じURLを使い回すようにしてるんじゃないかな。
ブックマークするときなんかも、リンク踏んで来た場合でもアップロード後でも URL が一緒になるからタイミングを選ばず都合がいいだろうしね。
それは同じURLで get と post の両方に対応してるんだね。
リンク踏んだりURL叩いてページに来たときは get でのアクセスになるから、とりあえず動画閲覧画面でも表示するのでしょう。
でもその画面では動画のアップロードもできるようになってて、post によってアクセスされる場合はアップロードの操作がされたものとして動画を差し換え、改めて閲覧画面を表示するのでしょう。
ページの記述とか何言ってるのかはよくわからないけど、その URL はアクセスされる度に毎回一からページを送り出してるだけだと思うよ。
動画のIDなんかURL自体に含まれてて、閲覧や更新対象を示すキーとして満ち足りてるから、同じURLを使い回すようにしてるんじゃないかな。
ブックマークするときなんかも、リンク踏んで来た場合でもアップロード後でも URL が一緒になるからタイミングを選ばず都合がいいだろうしね。
2020/01/27(月) 19:31:57.14ID:5Ks+WgqK0
なんかHTTPの基礎がわかってなさそう
717デフォルトの名無しさん (ワッチョイ f689-Kz18)
2020/01/30(木) 15:15:02.21ID:H+L/BkWr0 phpでPixivの画像まとめてDLしたいなと思いついて
https://html-css-javascript.com/demo/pixiv/
これ参考にやってるんだけどうまく行かない
Pixivの画像ってphpじゃDLできないの?
https://html-css-javascript.com/demo/pixiv/
これ参考にやってるんだけどうまく行かない
Pixivの画像ってphpじゃDLできないの?
2020/01/30(木) 15:50:27.29ID:smyD86f50
phpじゃ厳しいなあ
rubyなら簡単にできるんだけどね
rubyなら簡単にできるんだけどね
2020/01/30(木) 17:42:05.62ID:vZSmPHC30
>>717
それ少なくともおととしのpixivのUIが糞化する前用のやつだから
それ少なくともおととしのpixivのUIが糞化する前用のやつだから
720デフォルトの名無しさん (ワッチョイ f689-Kz18)
2020/01/30(木) 18:08:28.77ID:H+L/BkWr0 マジか…
Rubyわかんないからphpでやりたかった
Pixivの画像のURL自体は変わってなかったから下記のURLの画像が保存できる方法知ってたら教えて下さい
https://i.pximg.net/img-original/img/2020/01/28/01/28/46/79136582_p0.png
Rubyわかんないからphpでやりたかった
Pixivの画像のURL自体は変わってなかったから下記のURLの画像が保存できる方法知ってたら教えて下さい
https://i.pximg.net/img-original/img/2020/01/28/01/28/46/79136582_p0.png
2020/01/30(木) 20:01:18.05ID:OBUYa7FA0
718にrubyで書いてもらって、PHPに移植すれば良いんでね?
2020/01/30(木) 20:29:52.18ID:N/97jNZ60
>>720
リファラーつければいいだけ
curl 'https://i.pximg.net/img-original/img/2020/01/28/01/28/46/79136582_p[0-16].png' -H 'Referer: https://www.pixiv.net/en/artworks/'
rubyでも簡単だけどajax不要でログイン不要なら
curlとか使ってシェルスクリプト書いたほうが簡単
リファラーつければいいだけ
curl 'https://i.pximg.net/img-original/img/2020/01/28/01/28/46/79136582_p[0-16].png' -H 'Referer: https://www.pixiv.net/en/artworks/'
rubyでも簡単だけどajax不要でログイン不要なら
curlとか使ってシェルスクリプト書いたほうが簡単
2020/01/30(木) 20:52:22.46ID:N/97jNZ60
ranking TOP10のやつ全部ダウンロードするスクリプト
curl, pup, jqが必要
curl -s 'https://www.pixiv.net/ranking.php' ¥
| pup 'a.work' attr{href} ¥
| head -10 ¥
| sed -E 's/¥/artworks¥/([0-9]+)/¥1/' ¥
| xargs -I {} curl -s https://www.pixiv.net/ajax/illust/{}/pages ¥
| jq '.body[].urls.original' ¥
| xargs -I {} curl -# {} -H 'Referer: https://www.pixiv.net/en/artworks/' -O -w "%{url_effective}¥n"
curl, pup, jqが必要
curl -s 'https://www.pixiv.net/ranking.php' ¥
| pup 'a.work' attr{href} ¥
| head -10 ¥
| sed -E 's/¥/artworks¥/([0-9]+)/¥1/' ¥
| xargs -I {} curl -s https://www.pixiv.net/ajax/illust/{}/pages ¥
| jq '.body[].urls.original' ¥
| xargs -I {} curl -# {} -H 'Referer: https://www.pixiv.net/en/artworks/' -O -w "%{url_effective}¥n"
2020/01/30(木) 20:54:05.78ID:N/97jNZ60
円マークはバックスラッシュに変換して
725デフォルトの名無しさん (ワッチョイ a5f1-yzQx)
2020/01/30(木) 20:58:51.80ID:Rpk6h2gy0 >>724
なぜ?
円マークとバックスラッシュは同じじゃないの?日本語のパソコンだと円マークに表示されるだけで。
この辺の仕組みを「文字コード」とてう言葉を使って竹を割ったようなスッキリ解説できるかた、どうかお願いできませんかね?
なぜ?
円マークとバックスラッシュは同じじゃないの?日本語のパソコンだと円マークに表示されるだけで。
この辺の仕組みを「文字コード」とてう言葉を使って竹を割ったようなスッキリ解説できるかた、どうかお願いできませんかね?
726デフォルトの名無しさん (ワッチョイ b501-0Ybi)
2020/01/30(木) 21:01:33.81ID:Z7o7STkD0 フォントデザインが違うだけ。
2020/01/30(木) 21:30:24.16ID:N/97jNZ60
728デフォルトの名無しさん (ワッチョイ f689-Kz18)
2020/01/30(木) 21:56:00.67ID:H+L/BkWr0 N/97jNZ60 様
ありがとうございます。
ですが、素人に毛が生えた程度の私では難しいようです。(Rubyもスクリプトもできません)
phpで無理そうなら諦めます。
ありがとうございます。
ですが、素人に毛が生えた程度の私では難しいようです。(Rubyもスクリプトもできません)
phpで無理そうなら諦めます。
2020/01/30(木) 23:11:34.50ID:N/97jNZ60
>>728
PHPでもシェルスクリプトより少し面倒なだけで普通にできるよ
処理手順だけ書いておくからPHPでトライしてみて
https://www.pixiv.net/en/artworks/79136582の一連の画像を全部ダウンロードしたい場合
https://www.pixiv.net/ajax/illust/79136582/pagesにアクセスすれば
各サイズのURLのリストがJSON形式で取得できる
取得したURLリスト(JSON)から目的のURLだけ抜き出して
そのURLを一つずつアクセスして画像をファイルに保存すればOK
>>723の後半3行が上の手順に相当する部分
PHPでもシェルスクリプトより少し面倒なだけで普通にできるよ
処理手順だけ書いておくからPHPでトライしてみて
https://www.pixiv.net/en/artworks/79136582の一連の画像を全部ダウンロードしたい場合
https://www.pixiv.net/ajax/illust/79136582/pagesにアクセスすれば
各サイズのURLのリストがJSON形式で取得できる
取得したURLリスト(JSON)から目的のURLだけ抜き出して
そのURLを一つずつアクセスして画像をファイルに保存すればOK
>>723の後半3行が上の手順に相当する部分
2020/01/30(木) 23:12:03.35ID:OBUYa7FA0
2020/01/31(金) 04:16:30.86ID:Qzj9ULR80
>>729の仕様がわかれば根こそぎダウンロード出来るな
適当なsleep値挟まないと岡崎図書館になりそうでおそろしいw
適当なsleep値挟まないと岡崎図書館になりそうでおそろしいw
2020/01/31(金) 04:23:23.85ID:1Ft64C3q0
普通にAPI公開してるんだけど
2020/01/31(金) 04:49:35.34ID:/fagGTpB0
>>723
は、Linux コマンド、またはシェルスクリプト
一方、Windows 10 にも、curl が入っている。
コマンドプロンプトで、where curl と打つと、
C:\Windows\System32\curl.exe
このcurl とは別に、PowerShell にもcurl がある
Ruby で、`~` 内に、コマンドを書いて、呼び出すこともできる。
例えば、curl のヘルプの最初の5行を表示する
puts `curl -help`.lines.first( 5 )
同様に、PHP にも、コマンドを呼び出す記法があるはず。
ダウンロードでは、Linux のcurl, wget は、よく使うコマンド
Windows 10 上で, WSL, Ubuntu 18.04 を使っているなら、
Linux側で、Linuxコマンド・シェルスクリプトを書いて、Windows側のフォルダをいじる事もできる
は、Linux コマンド、またはシェルスクリプト
一方、Windows 10 にも、curl が入っている。
コマンドプロンプトで、where curl と打つと、
C:\Windows\System32\curl.exe
このcurl とは別に、PowerShell にもcurl がある
Ruby で、`~` 内に、コマンドを書いて、呼び出すこともできる。
例えば、curl のヘルプの最初の5行を表示する
puts `curl -help`.lines.first( 5 )
同様に、PHP にも、コマンドを呼び出す記法があるはず。
ダウンロードでは、Linux のcurl, wget は、よく使うコマンド
Windows 10 上で, WSL, Ubuntu 18.04 を使っているなら、
Linux側で、Linuxコマンド・シェルスクリプトを書いて、Windows側のフォルダをいじる事もできる
2020/01/31(金) 08:14:28.08ID:/fagGTpB0
Ruby なら、ウェブページをBOMなしUTF-8 で、一旦保存してから、JSON.parse すると、
require 'open-uri'
require 'json'
# json_str = URI( "https://www.pixiv.net/ajax/illust/79136582/pages"; ).read
json_str = File.read( "79136582_pages.json" ) # 保存した、UTF-8 ファイル
json_obj = JSON.parse( json_str )
json_obj[ "body" ].each do |urls|
p urls[ "urls" ]
end
出力。
こういうのが画像の数だけあるけど、この中で、original だけが欲しいの?
{"thumb_mini"=>"https://i.pximg.net/c/128x128/img-master/img/2020/01/28/01/28/46/79136582_p0_square1200.jpg";,
"small"=>"https://i.pximg.net/c/540x540_70/img-master/img/2020/01/28/01/28/46/79136582_p0_master1200.jpg";,
"regular"=>"https://i.pximg.net/img-master/img/2020/01/28/01/28/46/79136582_p0_master1200.jpg";,
"original"=>"https://i.pximg.net/img-original/img/2020/01/28/01/28/46/79136582_p0.png";}
require 'open-uri'
require 'json'
# json_str = URI( "https://www.pixiv.net/ajax/illust/79136582/pages"; ).read
json_str = File.read( "79136582_pages.json" ) # 保存した、UTF-8 ファイル
json_obj = JSON.parse( json_str )
json_obj[ "body" ].each do |urls|
p urls[ "urls" ]
end
出力。
こういうのが画像の数だけあるけど、この中で、original だけが欲しいの?
{"thumb_mini"=>"https://i.pximg.net/c/128x128/img-master/img/2020/01/28/01/28/46/79136582_p0_square1200.jpg";,
"small"=>"https://i.pximg.net/c/540x540_70/img-master/img/2020/01/28/01/28/46/79136582_p0_master1200.jpg";,
"regular"=>"https://i.pximg.net/img-master/img/2020/01/28/01/28/46/79136582_p0_master1200.jpg";,
"original"=>"https://i.pximg.net/img-original/img/2020/01/28/01/28/46/79136582_p0.png";}
2020/01/31(金) 09:07:20.03ID:Qzj9ULR80
PHPで頼む言われてんのにRuby厨また沸いてんのかw
$api = 'https://www.pixiv.net/ajax/illust/79136582/pages';
$json = json_decode(file_get_contents($api));
$ctx = stream_context_create(['http'=>['header'=>"Referer: {$api}\r\n"]]);
foreach ($json->body as $body) {
$url = $body->urls->original;
$fname = basename($url);
file_put_contents($fname, file_get_contents($url, false, $ctx));
sleep(1);
}
保存先やら上書きやら考慮してないからこのままは使うなよ
$api = 'https://www.pixiv.net/ajax/illust/79136582/pages';
$json = json_decode(file_get_contents($api));
$ctx = stream_context_create(['http'=>['header'=>"Referer: {$api}\r\n"]]);
foreach ($json->body as $body) {
$url = $body->urls->original;
$fname = basename($url);
file_put_contents($fname, file_get_contents($url, false, $ctx));
sleep(1);
}
保存先やら上書きやら考慮してないからこのままは使うなよ
736デフォルトの名無しさん (ワッチョイ f689-Kz18)
2020/01/31(金) 10:18:31.72ID:2wi/3AbP02020/01/31(金) 10:29:10.97ID:k4NtdgGW0
頑張れよ!
738デフォルトの名無しさん (ワッチョイ f689-Kz18)
2020/01/31(金) 17:24:53.23ID:2wi/3AbP0 Pixivの質問者です。
画像をタイトル名で保存したかったので、下記のようにしました。
$url = "https://www.pixiv.net/artworks/79152593";;
$html = file_get_contents($url);
preg_match("/この作品 「(.*)」 は 「/", $html, $titlearr);
echo $title = $titlearr[1];
タイトル以外にも投稿日や閲覧数などが取得できたのですが、カテゴリが上手く取得できません。
なにか良い方法はないでしょうか?
もしくは「https://www.pixiv.net/ajax/illust/79152593/pages」のような画像の情報集のようなものがあるのでしょうか?
画像をタイトル名で保存したかったので、下記のようにしました。
$url = "https://www.pixiv.net/artworks/79152593";;
$html = file_get_contents($url);
preg_match("/この作品 「(.*)」 は 「/", $html, $titlearr);
echo $title = $titlearr[1];
タイトル以外にも投稿日や閲覧数などが取得できたのですが、カテゴリが上手く取得できません。
なにか良い方法はないでしょうか?
もしくは「https://www.pixiv.net/ajax/illust/79152593/pages」のような画像の情報集のようなものがあるのでしょうか?
2020/01/31(金) 19:10:54.05ID:Qzj9ULR80
DOMDocumentで$htmlをロードして
getElementById('meta-preload-data')->getAttribute('content')取って
json_decodeすればあとはapiと同じ様につかえるんじゃね?
文字コードまわりの処理がちょっと面倒だと思うが
getElementById('meta-preload-data')->getAttribute('content')取って
json_decodeすればあとはapiと同じ様につかえるんじゃね?
文字コードまわりの処理がちょっと面倒だと思うが
2020/01/31(金) 19:41:52.91ID:sTuegRNa0
作品情報のAPIはこれ
https://www.pixiv.net/ajax/illust/79152593
https://www.pixiv.net/ajax/illust/79152593
741デフォルトの名無しさん (ワッチョイ f689-Kz18)
2020/01/31(金) 20:23:09.76ID:2wi/3AbP0 ありがとうございます。
JSONならなんとかなりそうです。
「/pages」を取るだけだったんですね…
JSONならなんとかなりそうです。
「/pages」を取るだけだったんですね…
2020/01/31(金) 23:34:14.10ID:/fagGTpB0
>>732
に、API を公開してるって、誰かが書いてる
大々的に横断検索のようなスクレイピングしてると、営業妨害で逮捕される!
ちゃんと会社と契約して、API を使ってやるように!
会社のrobots.txt で、スクレイピングを禁止している場合は、有罪にされる!
クローラーの開発者は、robots.txtに従うべき!
従わないと訴えてくる。特に、5ch みたいなサイトは
クローラーのテストも、自分のPC 内に、Rubyのサーバーを立てて、
そこにウェブサイトのコピーを作って、それにアクセスしてテストする
本当のサイトに対して、テストしたりしない!
何回もテストしていると、営業妨害になるから!
クローラー開発者の大原則!
1. 会社と契約して、API を使う
2. robots.txtに従う
3. 自分のPC内に、サーバーを立ててテストする
それと書き込むときは、名前欄に、717 と入れてください!
誰が書き込んでいるか、分からないので
に、API を公開してるって、誰かが書いてる
大々的に横断検索のようなスクレイピングしてると、営業妨害で逮捕される!
ちゃんと会社と契約して、API を使ってやるように!
会社のrobots.txt で、スクレイピングを禁止している場合は、有罪にされる!
クローラーの開発者は、robots.txtに従うべき!
従わないと訴えてくる。特に、5ch みたいなサイトは
クローラーのテストも、自分のPC 内に、Rubyのサーバーを立てて、
そこにウェブサイトのコピーを作って、それにアクセスしてテストする
本当のサイトに対して、テストしたりしない!
何回もテストしていると、営業妨害になるから!
クローラー開発者の大原則!
1. 会社と契約して、API を使う
2. robots.txtに従う
3. 自分のPC内に、サーバーを立ててテストする
それと書き込むときは、名前欄に、717 と入れてください!
誰が書き込んでいるか、分からないので
2020/01/31(金) 23:59:16.23ID:k4NtdgGW0
一般のブラウザと同程度の頻度でアクセスしている分には
サイト側で区別するのは困難だろうし、
訴えられる事も無いんじゃないかな、知らんけど
サイト側で区別するのは困難だろうし、
訴えられる事も無いんじゃないかな、知らんけど
2020/02/01(土) 00:45:19.00ID:EnxAFhi/0
>>742
>大々的に横断検索のようなスクレイピングしてると、営業妨害で逮捕される!
>会社のrobots.txt で、スクレイピングを禁止している場合は、有罪にされる!
>何回もテストしていると、営業妨害になるから!
すべてデマ
一般論としてデマ書くくらいは別にいいけど
それを元に人を犯罪者扱いするとそれこそ罪になるから気をつけてね
>大々的に横断検索のようなスクレイピングしてると、営業妨害で逮捕される!
>会社のrobots.txt で、スクレイピングを禁止している場合は、有罪にされる!
>何回もテストしていると、営業妨害になるから!
すべてデマ
一般論としてデマ書くくらいは別にいいけど
それを元に人を犯罪者扱いするとそれこそ罪になるから気をつけてね
745デフォルトの名無しさん (ワッチョイ b501-/fp1)
2020/02/01(土) 00:47:42.04ID:1yCARK9i0 だからAPI公開されてるんだってば
2020/02/01(土) 00:50:08.53ID:MgOexLzI0
専用ブラウザだろうが一般ブラウザだろうが、使う人間が同じなら同程度のアクセスにしかならんと思う
あと、API使わないWEB通信で専用か一般かを判別するのは無理じゃね?
UAも偽装できるし、そもそも廃止方向だし
あと、API使わないWEB通信で専用か一般かを判別するのは無理じゃね?
UAも偽装できるし、そもそも廃止方向だし
2020/02/01(土) 01:00:56.04ID:4wtj58110
いたずら電話でも、回数が多いと逮捕される!
一杯逮捕されてるし、有罪にもなってる!
会社は、一般的な用法でアクセスできるようにしてるだけで、
常識内の使い方じゃないと、営業妨害になる
クローラー開発者が、robots.txt に従うのは常識だから、従わないと営業妨害になる。
クローラー開発者はそもそも一般人じゃないし、一般的な使い方じゃない
株取引と同じで、プロの取引だから、守るべきハードルが高い。
これほど専門的な開発者は、素人の一般人が作っていましたという弁明ができない。
専門家として扱われるから
一杯逮捕されてるし、有罪にもなってる!
会社は、一般的な用法でアクセスできるようにしてるだけで、
常識内の使い方じゃないと、営業妨害になる
クローラー開発者が、robots.txt に従うのは常識だから、従わないと営業妨害になる。
クローラー開発者はそもそも一般人じゃないし、一般的な使い方じゃない
株取引と同じで、プロの取引だから、守るべきハードルが高い。
これほど専門的な開発者は、素人の一般人が作っていましたという弁明ができない。
専門家として扱われるから
2020/02/01(土) 01:09:26.21ID:MgOexLzI0
>>747
誰にレスしてるのか分からないけど、俺にレスしてるんなら改めて書いとく
俺は良い悪いの話をしていない
API非使用の話
同じ人間がスレ見るような使い方はアクセス頻度も負荷も変わらないだろう
判別するのは技術的に無理じゃねえか
以上
弁明とかそんな次元の話をしているのではないので、そこんとこよろしく
誰にレスしてるのか分からないけど、俺にレスしてるんなら改めて書いとく
俺は良い悪いの話をしていない
API非使用の話
同じ人間がスレ見るような使い方はアクセス頻度も負荷も変わらないだろう
判別するのは技術的に無理じゃねえか
以上
弁明とかそんな次元の話をしているのではないので、そこんとこよろしく
2020/02/01(土) 01:22:55.39ID:yTeildyw0
robots.txtの記述に従わないと行けない法的根拠はないんだが
あくまでも、マナーやエチケットのレベル
あくまでも、マナーやエチケットのレベル
2020/02/01(土) 02:39:22.43ID:4wtj58110
法律では、常識というのが判断基準になる
マナー・エチケットなどは関係ない。
契約していない者同士では、有形力の行使が判断基準
API の契約をした場合は、契約者同士だから、刑事事件にならないけど、
契約をしていない場合は、有形力の行使で判断する
いたずら電話とか、万引き・痴漢・家宅侵入などは、
契約していない者同士での有形力の行使
一般的じゃない使い方は、非常識になる。
プログラミングなど、プロの技術を用いた場合は、一般人と違う扱いになる
一般人が手でクリックした場合と、違う扱いになる
マナー・エチケットも、プロ・素人では、遵守レベルが異なる。
一般人の遵守レベルと、プロの遵守レベルは違う
株取引と同じ。
株はプロの遵守レベルだから、1桁間違って入力しても、勘違いとして撤回できないだろ。
普通の民法なら、錯誤で撤回できるけど
株は一般人の商取引じゃなく、プロの商取引だから、遵守レベルが厳しい
マナー・エチケットなどは関係ない。
契約していない者同士では、有形力の行使が判断基準
API の契約をした場合は、契約者同士だから、刑事事件にならないけど、
契約をしていない場合は、有形力の行使で判断する
いたずら電話とか、万引き・痴漢・家宅侵入などは、
契約していない者同士での有形力の行使
一般的じゃない使い方は、非常識になる。
プログラミングなど、プロの技術を用いた場合は、一般人と違う扱いになる
一般人が手でクリックした場合と、違う扱いになる
マナー・エチケットも、プロ・素人では、遵守レベルが異なる。
一般人の遵守レベルと、プロの遵守レベルは違う
株取引と同じ。
株はプロの遵守レベルだから、1桁間違って入力しても、勘違いとして撤回できないだろ。
普通の民法なら、錯誤で撤回できるけど
株は一般人の商取引じゃなく、プロの商取引だから、遵守レベルが厳しい
2020/02/01(土) 03:15:22.90ID:r8UutYKJa
botガイル
2020/02/01(土) 05:09:00.85ID:IZAG69wa0
それ有名なrubyキチだから相手にするだけ時間の無駄やで
2020/02/01(土) 11:30:39.83ID:ldPcUcvt0
pixivとか大きいところならインフラで帯域制御してるだろうから、IP詐称やら多数の接続元やらで大規模にやらない限り、
スクリプトでのDLは気付かないだろうし看過されるだろうけどね
逆に目立てば注意とか何も言われず制限とかされる
まあ、インターネットがある意味良識で成り立ってるところもあるから、あまり変なことはしない方がいいよ
自分のことばかり考えるなってね
スクリプトでのDLは気付かないだろうし看過されるだろうけどね
逆に目立てば注意とか何も言われず制限とかされる
まあ、インターネットがある意味良識で成り立ってるところもあるから、あまり変なことはしない方がいいよ
自分のことばかり考えるなってね
754デフォルトの名無しさん (ワッチョイ b501-+mJQ)
2020/02/02(日) 11:44:23.24ID:OTJ5GLO00 サイト内検索を設置したいのですがわかりません
どのように作ればよいのでしょうか?
どのように作ればよいのでしょうか?
2020/02/02(日) 11:54:17.96ID:lNG3EL+m0
サイト内の何を検索したいのかを言わないと
2020/02/02(日) 12:50:13.69ID:ceem9FS20
サイト内検索は、Google を使えば?
「site:URL 検索したい文字列」だろ
このコントロールを、はめ込めば良いのでは?
「site:URL 検索したい文字列」だろ
このコントロールを、はめ込めば良いのでは?
757デフォルトの名無しさん (ワッチョイ a602-ZjM+)
2020/02/03(月) 04:24:06.78ID:w78j2Hgc0 サイト内のキーワードを検索したいんです
絞り込み検索など
絞り込み検索など
2020/02/03(月) 04:30:12.91ID:YoBHNt100
多くのサイトが、Google のコントロールを使っているから、
Googleが配布しているのでは?
Googleが配布しているのでは?
759デフォルトの名無しさん (ワッチョイ 3d7c-a4zy)
2020/02/03(月) 21:07:08.59ID:zKdzrXwz0 平面上に座標の判明している点が数百あるとして、全ての点どうしの距離を
計算時間はかかって構わないのでハングしないように計算したいのですが
PHPではどうやったらいいのでしょうか
普通のPHPプログラムと同じように
点の座標情報をリクエストとして受け取って
全ての計算が終わったらブラウザにレスポンスしたいです
計算時間はかかって構わないのでハングしないように計算したいのですが
PHPではどうやったらいいのでしょうか
普通のPHPプログラムと同じように
点の座標情報をリクエストとして受け取って
全ての計算が終わったらブラウザにレスポンスしたいです
2020/02/03(月) 21:21:55.23ID:7cu/pWw8r
普通に2重for文で愚直に計算すればいいんじゃねーの
数百程度なら一瞬でしょ
数百程度なら一瞬でしょ
2020/02/04(火) 09:19:02.42ID:6/2RTZHA0
Ruby なら、標準のwebrick サーバーで、
VSCode の拡張機能、REST Client で、JSON 文字列をPOST すると、同じ配列が返ってくる。
CGI にも出来る
POST http://localhost:8888/ HTTP/1.1
content-type: application/json
[[0,0],[10,20],[10,10]]
以下は、Ruby
require 'webrick'
require 'json'
srv = WEBrick::HTTPServer.new( {
:DocumentRoot => './',
:BindAddress => '127.0.0.1', :Port => 8888 } )
srv.mount_proc( '/' ) do |req, res|
res[ "content-type" ] = "text/plain"
ary = JSON.parse( req.body ) # JSON 文字列から、Ruby のオブジェクトに変換する
# ここで、ary を処理する
result = JSON.generate( ary ) # Ruby のオブジェクトから、JSON 文字列に変換する
res.body = result
end
Signal.trap( :INT ){ srv.shutdown } # Ctrl+C で終了
srv.start
VSCode の拡張機能、REST Client で、JSON 文字列をPOST すると、同じ配列が返ってくる。
CGI にも出来る
POST http://localhost:8888/ HTTP/1.1
content-type: application/json
[[0,0],[10,20],[10,10]]
以下は、Ruby
require 'webrick'
require 'json'
srv = WEBrick::HTTPServer.new( {
:DocumentRoot => './',
:BindAddress => '127.0.0.1', :Port => 8888 } )
srv.mount_proc( '/' ) do |req, res|
res[ "content-type" ] = "text/plain"
ary = JSON.parse( req.body ) # JSON 文字列から、Ruby のオブジェクトに変換する
# ここで、ary を処理する
result = JSON.generate( ary ) # Ruby のオブジェクトから、JSON 文字列に変換する
res.body = result
end
Signal.trap( :INT ){ srv.shutdown } # Ctrl+C で終了
srv.start
2020/02/04(火) 10:26:16.95ID:a9RPAFSb0
>>759
長い計算で問題になるのはタイムアウトと使用人数
色々考慮しないといけないのでケースバイケースになるが
そういう計算はJavaScriptでやったほうがいいと思う
非力な環境考慮やスマホの節電狙ってるならとめはしないが
基本はある程度計算した時点で(タイムアウトする前に)一度レスポンス返して
計算再開するようリクエスト再送して計算終わるまでそれを繰り返すとか
サーバ側でタイムアウトを無効にしてマルチスレッドで計算しながら
Transfer-Encoding: chunked(flush関数)とかでなんかブラウザに送り続けるとかそんなところ
あと設定したことないので確認はしてないがxhr使えばブラウザ側のタイムアウトは無効に出来るはず
大人数で使う&計算が数時間に渡る場合サーバ側タイムアウトを無効にするような計算はしないほうがいい
長い計算で問題になるのはタイムアウトと使用人数
色々考慮しないといけないのでケースバイケースになるが
そういう計算はJavaScriptでやったほうがいいと思う
非力な環境考慮やスマホの節電狙ってるならとめはしないが
基本はある程度計算した時点で(タイムアウトする前に)一度レスポンス返して
計算再開するようリクエスト再送して計算終わるまでそれを繰り返すとか
サーバ側でタイムアウトを無効にしてマルチスレッドで計算しながら
Transfer-Encoding: chunked(flush関数)とかでなんかブラウザに送り続けるとかそんなところ
あと設定したことないので確認はしてないがxhr使えばブラウザ側のタイムアウトは無効に出来るはず
大人数で使う&計算が数時間に渡る場合サーバ側タイムアウトを無効にするような計算はしないほうがいい
2020/02/04(火) 10:59:31.95ID:6/2RTZHA0
確かに、計算のタイムアウトなどを考えたら、
AWS Lambda などを使った方がよい
AWS Lambda などを使った方がよい
764759 (ワッチョイ 3d7c-a4zy)
2020/02/04(火) 14:13:53.25ID:D53RXKif0 >>760
450点あたりで
計算は10万回超えちゃいそうな気がするんですが…
>>762
あざます、そんで説明下手ですみません
アクセス数とか、ユーザビリティ的なことはそれほど考えなくていいんです
説明が難しいんですが、MovableTypeみたいな動き方と言いますか
このプログラムを一度実行することで静的なファイルを生成して
ウェブのユーザにはそのファイルを見てもらうことになるので
なのでとりあえず、10万なら10万回
時間かけていいんで、PHPがハングしないように計算を終えて
その結果が出たら、ブラウザに返したいな、と
昨夜自分で考えて
PHPは1点ずつの計算結果をテキストファイルとして生成して
ブラウザはそのファイルが出来ているか定期的にポーリングする
みたいなことを考えたんですが…
450点あたりで
計算は10万回超えちゃいそうな気がするんですが…
>>762
あざます、そんで説明下手ですみません
アクセス数とか、ユーザビリティ的なことはそれほど考えなくていいんです
説明が難しいんですが、MovableTypeみたいな動き方と言いますか
このプログラムを一度実行することで静的なファイルを生成して
ウェブのユーザにはそのファイルを見てもらうことになるので
なのでとりあえず、10万なら10万回
時間かけていいんで、PHPがハングしないように計算を終えて
その結果が出たら、ブラウザに返したいな、と
昨夜自分で考えて
PHPは1点ずつの計算結果をテキストファイルとして生成して
ブラウザはそのファイルが出来ているか定期的にポーリングする
みたいなことを考えたんですが…
2020/02/04(火) 14:21:15.46ID:gHL4c7Fjr
じゃあ高速フーリエ変換でもすれば
2020/02/04(火) 15:04:39.24ID:lLuVC2X20
それがサーバー上にあって、割と自由にいじれるなら
バッチ処理で結果を出して表示にしたら良いんじゃないかな
バッチ処理で結果を出して表示にしたら良いんじゃないかな
767759 (ワッチョイ 3d7c-a4zy)
2020/02/04(火) 16:28:58.13ID:D53RXKif0 >>766
点の情報は、ブラウザからJSONかCSVかXLSXかでポストさせるので
実行時点で数が不明ですので、クロンを書くのも難しいかなと
たぶんポストされた座標データ群を基に
foreach($datas as $data){
foreach($datas as $data){
// ここで距離を計算
// 計算済みのものは除外
}
}
みたいになるわけですが、$datasの数が多いと止まってしまうので
非同期でいいので止まらない方法はないものかなと
点の情報は、ブラウザからJSONかCSVかXLSXかでポストさせるので
実行時点で数が不明ですので、クロンを書くのも難しいかなと
たぶんポストされた座標データ群を基に
foreach($datas as $data){
foreach($datas as $data){
// ここで距離を計算
// 計算済みのものは除外
}
}
みたいになるわけですが、$datasの数が多いと止まってしまうので
非同期でいいので止まらない方法はないものかなと
2020/02/04(火) 17:30:21.86ID:26FK/H9g0
数百の点同士だから最大1000 x 1000でも100万でしょ
floatだとしても100msもかからないと思うんだけどそれでハングするの?
クライアント側で計算させても一瞬だから
ラウンドトリップさせるのをやめて計算結果だけ非同期で受け取るようにしたほうが
ユーザーにとっても運用してる側にとってもいいと思う
floatだとしても100msもかからないと思うんだけどそれでハングするの?
クライアント側で計算させても一瞬だから
ラウンドトリップさせるのをやめて計算結果だけ非同期で受け取るようにしたほうが
ユーザーにとっても運用してる側にとってもいいと思う
769759 (ワッチョイ 3d7c-a4zy)
2020/02/04(火) 17:37:32.11ID:D53RXKif02020/02/04(火) 23:05:49.06ID:6/2RTZHA0
JSON が普通。
非同期処理なら、Ajax を使う方法もある
C/C++ で計算だけして、ファイルに書き込んでから、
ウェブサーバーで、そのファイルを見れば?
計算速度が遅くてもよいなら、どの言語でも良いし
非同期処理なら、Ajax を使う方法もある
C/C++ で計算だけして、ファイルに書き込んでから、
ウェブサーバーで、そのファイルを見れば?
計算速度が遅くてもよいなら、どの言語でも良いし
2020/02/04(火) 23:14:48.03ID:lLuVC2X20
実際の処理時間次第って気がする
10分程度なら、そのまま終わるのを画面監視して待っていれば良い
数時間以上掛かるなら、結果をメールで送ってもらうなり
夜間バッチで動かしておくのも良いかも
10分程度なら、そのまま終わるのを画面監視して待っていれば良い
数時間以上掛かるなら、結果をメールで送ってもらうなり
夜間バッチで動かしておくのも良いかも
2020/02/05(水) 00:24:15.42ID:NEouxGwD0
クライアント/サーバー間の通信は、JSON で良いけど、
元のデータは、CSV の方が、データベースとの連携でも簡単かも
そして、CSVを計算して、ファイルに書き込む
JSON
[[0,0],[10,20],[10,10]]
CSV
x,y
0,0
10,20
10,10
元のデータは、CSV の方が、データベースとの連携でも簡単かも
そして、CSVを計算して、ファイルに書き込む
JSON
[[0,0],[10,20],[10,10]]
CSV
x,y
0,0
10,20
10,10
773デフォルトの名無しさん (ワッチョイ 7f89-IOUD)
2020/02/05(水) 11:25:21.84ID:2PM+quj20 $url = "https://page.auctions.yahoo.co.jp/jp/auction/u332334293";; //エロ個別ページ
//$url = "https://page.auctions.yahoo.co.jp/jp/auction/n399439358";; //ノーマル個別ページ
$filestr = file_get_contents($url);
echo $filestr = mb_convert_encoding($filestr,'utf8','auto');
こんな感じでヤフオクのページにアクセスしたいんだけど、
通常のページなら問題ないけどアダルトカテゴリの場合ログインしてくださいとなる
この場合ログインなしで対処することはできますか?
//$url = "https://page.auctions.yahoo.co.jp/jp/auction/n399439358";; //ノーマル個別ページ
$filestr = file_get_contents($url);
echo $filestr = mb_convert_encoding($filestr,'utf8','auto');
こんな感じでヤフオクのページにアクセスしたいんだけど、
通常のページなら問題ないけどアダルトカテゴリの場合ログインしてくださいとなる
この場合ログインなしで対処することはできますか?
2020/02/05(水) 11:42:40.50ID:6W4fVUG70
そういやヤフーの文字画像認証って難易度高過ぎだよね。
この間パスワード連続間違いやらかして文字画像認証になったんだけど、まともに読めなかったw
この間パスワード連続間違いやらかして文字画像認証になったんだけど、まともに読めなかったw
2020/02/05(水) 23:01:50.84ID:NEouxGwD0
漏れは、Ruby で、Selenium WebDriver, Nokogiri などで、
Chrome, Edge などのブラウザーを自動操作して、スクレイピングするけど
ここに書いておいた
【VBScript】WSHについて話し合うスレ【JScript】
https://mevius.5ch.net/test/read.cgi/tech/1578522041/24-27
Chrome, Edge などのブラウザーを自動操作して、スクレイピングするけど
ここに書いておいた
【VBScript】WSHについて話し合うスレ【JScript】
https://mevius.5ch.net/test/read.cgi/tech/1578522041/24-27
2020/02/06(木) 00:07:34.22ID:UYgbv9bH0
fopenでファイルに書き込んでいたのですが
突然文字化けするようになったのですが
ファイルも送信もUTF-8なのですが
$str = mb_convert_encoding($str, "UTF-8");
のようにする必要性も感じないのですが
これはサーバー側の問題なのでしょうか
突然文字化けするようになったのですが
ファイルも送信もUTF-8なのですが
$str = mb_convert_encoding($str, "UTF-8");
のようにする必要性も感じないのですが
これはサーバー側の問題なのでしょうか
2020/02/06(木) 04:47:55.73ID:/hIhK6yv0
相手のサーバーか、または自分のプログラムのファイルを保存した際に、
文字コードが異なるとか、BOM 有りUTF-8 になってるとか?
文字コードが異なるとか、BOM 有りUTF-8 になってるとか?
2020/02/06(木) 12:12:05.29ID:NnjjFI0X0
>>773
どういう目的で取得するのかしらんけど
googleのキャッシュならそこそこ取れてるようだから
そこに欲しい情報があれば検討したら?
https://webcache.googleusercontent.com/search?q=cache:https://page.auctions.yahoo.co.jp/jp/auction/u332334293
まあ普通にログインしてやればいいと思うけど
ヤフーにcaptcha認証なんてあったっけ?記憶にないな
しかしなんだねこのいかがわしい人形はw
どういう目的で取得するのかしらんけど
googleのキャッシュならそこそこ取れてるようだから
そこに欲しい情報があれば検討したら?
https://webcache.googleusercontent.com/search?q=cache:https://page.auctions.yahoo.co.jp/jp/auction/u332334293
まあ普通にログインしてやればいいと思うけど
ヤフーにcaptcha認証なんてあったっけ?記憶にないな
しかしなんだねこのいかがわしい人形はw
779デフォルトの名無しさん (ワッチョイ 7f89-IOUD)
2020/02/06(木) 17:18:10.95ID:mIIVuTqX0 >>778
検索かけて出てきた商品情報から希望要項に合うものピックアップし、
その中にある画像をまとめて表示させるて一気に見たいと思って作ってた
そしたら呼び出せない項目があって内容見てたらアダルトカテゴリに該当するものだった
キャッシュ必要だと使うのは難しいな
検索かけて出てきた商品情報から希望要項に合うものピックアップし、
その中にある画像をまとめて表示させるて一気に見たいと思って作ってた
そしたら呼び出せない項目があって内容見てたらアダルトカテゴリに該当するものだった
キャッシュ必要だと使うのは難しいな
780デフォルトの名無しさん (ワッチョイ 9701-YmmE)
2020/02/06(木) 21:08:13.30ID:qcCZ1na20 返り値が空と表示されるのですがどうすれば治るのでしょうか?
781デフォルトの名無しさん (ワッチョイ 9701-L9ne)
2020/02/06(木) 22:00:14.76ID:qcCZ1na20 空だと表示される原因としてmariadbの設定を適当にしてしまった
phpadminを使用している時のユーザー名パスワードとmariadbを作成した時のパスワード又はユーザー名が全く別のものだと考えられるのですが原因はやっぱりこれでしょうか?
phpadminを使用している時のユーザー名パスワードとmariadbを作成した時のパスワード又はユーザー名が全く別のものだと考えられるのですが原因はやっぱりこれでしょうか?
782デフォルトの名無しさん (ワッチョイ 9701-L9ne)
2020/02/06(木) 22:02:13.41ID:qcCZ1na20 コマンドプロンプトで消せと書いてあるんですがデータのみインストールでzipからインストールしなかった場合消せるのでしょうか?
2020/02/07(金) 09:05:50.45ID:qw7QPilU0
0.1を10回足しても1.0にならないのはおかしい
2020/02/07(金) 09:42:40.68ID:IMRBAKuu0
2020/02/07(金) 09:43:31.21ID:IMRBAKuu0
↑の下は>>783宛
2020/02/08(土) 09:15:29.74ID:dJyCpuORr
mysqli関数使ってるんだが、PDOについて質問です。
別のDBMSに乗り換えるときに便利、みたいな記事をよく見ますが、DBMSごとにSQL文の制約が少しずつ違いますよね?
この差はPDO自体は吸収できませんよね?コードで分岐するしかないんですよね?
すると、MySQLしか使わない限りは、PDOを使うメリットって何でしょうか?
別のDBMSに乗り換えるときに便利、みたいな記事をよく見ますが、DBMSごとにSQL文の制約が少しずつ違いますよね?
この差はPDO自体は吸収できませんよね?コードで分岐するしかないんですよね?
すると、MySQLしか使わない限りは、PDOを使うメリットって何でしょうか?
2020/02/08(土) 10:26:28.77ID:zZtEQOJV0
2020/02/08(土) 14:08:52.88ID:iOIJiyGE0
>すると、MySQLしか使わない限りは、PDOを使うメリットって何でしょうか?
自分で使うもので将来的な移行もありえないならメリットは特にない
pdoのほうがよりモダンなコードで書けるぐらいか
パフォーマンスは公式にも書いてるけどどのAPI使ってもほぼ同じで誤差程度
自分で使うもので将来的な移行もありえないならメリットは特にない
pdoのほうがよりモダンなコードで書けるぐらいか
パフォーマンスは公式にも書いてるけどどのAPI使ってもほぼ同じで誤差程度
2020/02/08(土) 14:31:04.68ID:Jjt1u8eP0
2020/02/12(水) 15:56:54.08ID:Q5WPE+fg0
ID:qcCZ1na20
はとりあえず日本語から勉強し直せ
アホー知恵袋より酷いぞ
つかプログラミング向いてないから手遅れになる前に諦めた方がいいんじゃね?
はとりあえず日本語から勉強し直せ
アホー知恵袋より酷いぞ
つかプログラミング向いてないから手遅れになる前に諦めた方がいいんじゃね?
2020/02/12(水) 17:49:58.19ID:qFSwmyrvM
アップロードしたファイル名をDBに書き込んでファイルはtmpディレクトリに保存しておくときって
ファイルの名前はハッシュ値に変えるべきかそのままのファイル名で処理するかどっちがいいの?
ファイルの名前はハッシュ値に変えるべきかそのままのファイル名で処理するかどっちがいいの?
2020/02/13(木) 15:55:19.51ID:ngv8BCkj0
いつ消えるかわからないtmpに保存しとくって解せぬ
ファイル名をハッシュ値に変える意味はわからないけどそこは好きにすればいいのでは
ファイル名をハッシュ値に変える意味はわからないけどそこは好きにすればいいのでは
2020/02/15(土) 18:10:33.43ID:ndNA2Bw/0
下記記述のようにグローバルな場所で $arr を出力することはできたのですが、
関数の中で出力するとエラーになってしまいます。
PHPだと親に位置する変数って参照できないのでしょうか?
$arr = [
'a' => 1,
'b' => 2
];
var_dump($arr);
function test() {
var_dump($arr);
};
test();
関数の中で出力するとエラーになってしまいます。
PHPだと親に位置する変数って参照できないのでしょうか?
$arr = [
'a' => 1,
'b' => 2
];
var_dump($arr);
function test() {
var_dump($arr);
};
test();
2020/02/15(土) 18:16:15.52ID:Y132p/bJ0
2020/02/15(土) 18:30:10.65ID:ndNA2Bw/0
796デフォルトの名無しさん (ワッチョイ 8689-RqZf)
2020/02/15(土) 22:52:13.91ID:wgObr5UE0 質問です。
色の近さを測る方法ってあるでしょうか?
例えば、
A.#4169e1 B.#ff7f50 C.#dc143c
があった場合、Cにより近い色はAとBどちら?
といった感じで使いたいです。
色の近さを測る方法ってあるでしょうか?
例えば、
A.#4169e1 B.#ff7f50 C.#dc143c
があった場合、Cにより近い色はAとBどちら?
といった感じで使いたいです。
2020/02/15(土) 23:32:30.86ID:f7hi9XcW0
色コードといえば、RGBとかHSVとかCYMKとか習うと思うけど、これらは数学的にいうと、(ベクトル空間みたいな)色空間上の位置を持った点を意味する。
色の近さは色空間での2点間の距離の長さ。というわけで、色空間と距離の定義しだい。
色の近さは色空間での2点間の距離の長さ。というわけで、色空間と距離の定義しだい。
2020/02/16(日) 00:01:58.16ID:iNVxJNOu0
799デフォルトの名無しさん (ワッチョイ 8689-RqZf)
2020/02/16(日) 00:14:57.82ID:KR6y1seH0 思った以上に難しそうだな…
16進数だからC-AとC-Bを行い絶対数の小さい方が似てる色くらいに思ってたぜ
16進数だからC-AとC-Bを行い絶対数の小さい方が似てる色くらいに思ってたぜ
2020/02/16(日) 00:30:14.36ID:yQcmKOn30
まずはRGBコードをHSVに変換してみましょう。
2020/02/16(日) 00:32:40.25ID:+ZLQtp1jd
https://github.com/katahiromz/color_value
C言語だけどこれで良ければ
C言語だけどこれで良ければ
2020/02/16(日) 03:32:24.89ID:Tw+Vg2AB0
色の近さの判断基準が分からんとな。
とにかくRGBをHSVなりに変換したとして、
色相(H)が近ければ濃さ(S)や明るさ(V)はどうでもいいのか?
どうでもよくないならそれぞれのパラメータの重みを決める必要があるな。
とにかくRGBをHSVなりに変換したとして、
色相(H)が近ければ濃さ(S)や明るさ(V)はどうでもいいのか?
どうでもよくないならそれぞれのパラメータの重みを決める必要があるな。
2020/02/16(日) 07:16:26.92ID:5EL9p8ON0
SASS のmixin に、そういう機能は無いのか?
2020/02/16(日) 08:37:59.92ID:B0xDVat5r
単純に3次元ベクトルの距離差だけでよいじゃん
RGBなんだし
RGBなんだし
2020/02/16(日) 10:40:08.82ID:e/9Szh9J0
人の目に感じる色の近さは、RGBの数値だけでは判定できないな
色合いと彩度で比較する方が感覚に近い
色合いと彩度で比較する方が感覚に近い
2020/02/21(金) 10:38:09.06ID:uhz6TO4QM
csvをアップロードして中身読み込んで確認画面を出して問題なければDBに登録する仕組み作ってるんですけど
ページ間のデータ渡しって2Mくらいのそれなりに大きいデータでもセッションで大丈夫ですか?
ページ間のデータ渡しって2Mくらいのそれなりに大きいデータでもセッションで大丈夫ですか?
2020/02/21(金) 11:04:55.83ID:KI0NB2iSM
セションの中身はディスクに書いてるんだろうから、2MBくらいなら保存自体の問題は無いんじゃね。
でも不要になったらセッションからさっさと削除しないと、毎回そのデータがメモリにロードされることになる。
セッションとは別に一時ファイルに書き出してそのファイル名をセッションで保持するのがスマートな気がするけど、一時ファイルの掃除の方法を別途考えないといけないのが面倒だな。
でも不要になったらセッションからさっさと削除しないと、毎回そのデータがメモリにロードされることになる。
セッションとは別に一時ファイルに書き出してそのファイル名をセッションで保持するのがスマートな気がするけど、一時ファイルの掃除の方法を別途考えないといけないのが面倒だな。
2020/02/21(金) 11:36:12.22ID:uhz6TO4QM
2020/02/21(金) 12:41:45.52ID:KI0NB2iSM
>>808
一時ファイルの掃除のためにこの辺を読んでおくといいと思う。
https://www.php.net/manual/ja/session.customhandler.php
destroy とか gc で一時ファイルを掃除する必要があるはず。
一時ファイルの掃除のためにこの辺を読んでおくといいと思う。
https://www.php.net/manual/ja/session.customhandler.php
destroy とか gc で一時ファイルを掃除する必要があるはず。
810デフォルトの名無しさん (ワッチョイ 8f89-sS5o)
2020/02/23(日) 17:03:54.18ID:LPteoL8J0 preg_match_allを使ってリンク先が画像のURL取得したいんだけど正規表現がわかりません。
これを↓
<a href="http://img.hoge/001.jpg"; target="_blank">
こうしたい↓
http://img.hoge/001.jpg
作ってみたのがこれ↓
preg_match_all('/href="(.*?)(jpg|jpeg|png)?"/', $html, $imgurllist);
わかる方いらっしゃいました教えて下さい。
これを↓
<a href="http://img.hoge/001.jpg"; target="_blank">
こうしたい↓
http://img.hoge/001.jpg
作ってみたのがこれ↓
preg_match_all('/href="(.*?)(jpg|jpeg|png)?"/', $html, $imgurllist);
わかる方いらっしゃいました教えて下さい。
2020/02/23(日) 17:21:12.17ID:UC/kHLCn0
"の前に\が必要かも?
href=\"(.*?\.png|.*?\.jpeg|.*?\.jpeg)\"
なんてどうでしょう
href=\"(.*?\.png|.*?\.jpeg|.*?\.jpeg)\"
なんてどうでしょう
2020/02/23(日) 17:21:56.35ID:UC/kHLCn0
最後はjpgの間違い
2020/02/23(日) 18:39:43.25ID:p2aTkQco0
なんでもかんでも正規表現でやらんほうがいいよ
ちゃんとしたの書くの難しいし何より自分がわからないのは良くない
多少時間はかかるかもしれないが
getElementsByTagName('a')->getAttribute('href')でa hrefのリストとってきて
1個ずつpathinfo['extension']を見ていく感じ
pathinfo['extenstion']の?以降を除外してstrtolowerで拡張子小文字にした上で
in_arrayあたりで比較すればいいんでは?
ちゃんとしたの書くの難しいし何より自分がわからないのは良くない
多少時間はかかるかもしれないが
getElementsByTagName('a')->getAttribute('href')でa hrefのリストとってきて
1個ずつpathinfo['extension']を見ていく感じ
pathinfo['extenstion']の?以降を除外してstrtolowerで拡張子小文字にした上で
in_arrayあたりで比較すればいいんでは?
2020/02/23(日) 19:13:36.62ID:xNzf67+4a
正規表現なら一行で書けるのにごちゃごちゃ関数かます方が意味分からない
2020/02/23(日) 19:21:02.12ID:S7JwB5qb0
あの呪文のような記述を受け付けない人もいるみたいだ
俺は好きなんだけどな
俺は好きなんだけどな
2020/02/23(日) 19:29:10.11ID:EUelPM9rM
2020/02/23(日) 19:52:51.22ID:xNzf67+4a
新手の教えて君か?
その手には乗らねーよ
その手には乗らねーよ
2020/02/23(日) 20:18:07.28ID:EUelPM9rM
ま、こんなもんだろ
口先だけで自信ないから書けない
正規表現なんて書けた気でいるやつが大半でバグの温床
本当にちゃんと書けるやつだけ使えな
口先だけで自信ないから書けない
正規表現なんて書けた気でいるやつが大半でバグの温床
本当にちゃんと書けるやつだけ使えな
2020/02/23(日) 20:46:46.39ID:xNzf67+4a
頭がバグってるやつに言われてもね
2020/02/23(日) 21:13:29.11ID:0sUq9sLC0
2020/02/23(日) 21:37:24.28ID:rIVuphj20
先輩が書いたコードを見ると $_SERVER などの取得する値に対して
urldecode やら isset やらで本当にその値か正しいものかどうか、セットされてるかどうか
毎度調べてるようなのですが、正しくない場合の事例が書いてあるサイトってありますか?
また、この手のエスケープや存在確認やらがまとめてあるサイトもあれば教えていただけますでしょうか。
自分では追っかけきれず、毎度先輩に迷惑掛けてしまっている状態で申し訳ないっす…
urldecode やら isset やらで本当にその値か正しいものかどうか、セットされてるかどうか
毎度調べてるようなのですが、正しくない場合の事例が書いてあるサイトってありますか?
また、この手のエスケープや存在確認やらがまとめてあるサイトもあれば教えていただけますでしょうか。
自分では追っかけきれず、毎度先輩に迷惑掛けてしまっている状態で申し訳ないっす…
2020/02/23(日) 22:27:34.54ID:jUm6GNGX0
2020/02/24(月) 11:46:26.32ID:/D+Ss1rU0
>>821
$_SERVERで取れるのは環境変数
環境変数って言うぐらいだから、その値が必ずある保証なんてないし、めちゃくちゃな値をセットする事もできる
例えば
$_SERVER['HTTP_USER_AGENT']
とかな。自分でめちゃくちゃな値をセットして自分で実験してみたらいい
isset()なんか使わんけどねw
あるか無いか分からない時は getenv() 使えばいい
urldecode()にいたっては検証用の関数ですらない
URLエンコードされたデータをデコードしてるだけ
なんていうかHTTPの基礎から理解できてない
とりあえずGoogle Chromeのデベロッパツールでも眺めてHTTPの流れから理解した方がいいんじゃね?
$_SERVERで取れるのは環境変数
環境変数って言うぐらいだから、その値が必ずある保証なんてないし、めちゃくちゃな値をセットする事もできる
例えば
$_SERVER['HTTP_USER_AGENT']
とかな。自分でめちゃくちゃな値をセットして自分で実験してみたらいい
isset()なんか使わんけどねw
あるか無いか分からない時は getenv() 使えばいい
urldecode()にいたっては検証用の関数ですらない
URLエンコードされたデータをデコードしてるだけ
なんていうかHTTPの基礎から理解できてない
とりあえずGoogle Chromeのデベロッパツールでも眺めてHTTPの流れから理解した方がいいんじゃね?
2020/02/24(月) 11:58:40.79ID:/D+Ss1rU0
2020/02/24(月) 12:00:32.05ID:/D+Ss1rU0
>>810
くそ適当に書くけど
$html = '<a href="http://img.hoge/001.jpg"; target="_blank">';
preg_match_all('/href\s*=\s*([\'"])(.+?\.(?:jpe?g|png))\\1/i', $html, $match, PREG_SET_ORDER);
print_r($match);
・大文字小文字の考慮
・スペース文字の考慮
・シングルクォートで挟むのかダブルクォートで挟むのかの考慮
正規表現を使うならせめてこれぐらいはしようよw
くそ適当に書くけど
$html = '<a href="http://img.hoge/001.jpg"; target="_blank">';
preg_match_all('/href\s*=\s*([\'"])(.+?\.(?:jpe?g|png))\\1/i', $html, $match, PREG_SET_ORDER);
print_r($match);
・大文字小文字の考慮
・スペース文字の考慮
・シングルクォートで挟むのかダブルクォートで挟むのかの考慮
正規表現を使うならせめてこれぐらいはしようよw
2020/02/24(月) 12:08:32.46ID:/D+Ss1rU0
827デフォルトの名無しさん (ワッチョイ 8f89-sS5o)
2020/02/24(月) 12:27:06.58ID:bCyGnyrg02020/02/24(月) 18:10:06.13ID:rxpR87T30
>>821
毎度?普通はそういう繰り返し使われる処理はライブラリ化すると思うけど
毎度?普通はそういう繰り返し使われる処理はライブラリ化すると思うけど
2020/02/24(月) 18:12:00.24ID:rxpR87T30
正規表現なら1行で書けるといいながらその1行すら書けずに逃げた>>814が恥ずかしすぎる
2020/02/24(月) 18:27:40.24ID:pG7e8gTP0
2020/02/24(月) 19:35:47.79ID:/D+Ss1rU0
>>830
上のタブでNetworkを選んでHeadersのところを見る
Request Headersに書かれてるのが、ウェブサーバに対するHTTPリクエストの内容
例えばそこにAccept-Encoding: gzip とあれば
ウェブサーバがそれを見てコンテンツをgzip圧縮してレスポンスとして返す
そしてウェブブラウザがそれをデコードして元に戻す
User-Agentなんかも書かれてるはず
Accept-EncodingにせよUser-Agentにせよあくまでも自称であり、
そこには嘘でもめちゃくちゃな文字列でもなんでも書けるんだよ
だから値を信用したら駄目ってこと
上のタブでNetworkを選んでHeadersのところを見る
Request Headersに書かれてるのが、ウェブサーバに対するHTTPリクエストの内容
例えばそこにAccept-Encoding: gzip とあれば
ウェブサーバがそれを見てコンテンツをgzip圧縮してレスポンスとして返す
そしてウェブブラウザがそれをデコードして元に戻す
User-Agentなんかも書かれてるはず
Accept-EncodingにせよUser-Agentにせよあくまでも自称であり、
そこには嘘でもめちゃくちゃな文字列でもなんでも書けるんだよ
だから値を信用したら駄目ってこと
2020/02/24(月) 19:42:59.09ID:/D+Ss1rU0
>>830
自分でHTTPクライアントを作ってみるのが一番いい
fsockopen()やstream_socket_client()あたりでサーバに接続して
HTTPの命令を送ってレスポンスを受け取るみたいなコードを書けばHTTPの流れは一発で理解できる
「PHP stream_socket_client HTTP/1.1」とか適当にググったら、たぶんサンプルコードは見つかるはず
自分でHTTPクライアントを作ってみるのが一番いい
fsockopen()やstream_socket_client()あたりでサーバに接続して
HTTPの命令を送ってレスポンスを受け取るみたいなコードを書けばHTTPの流れは一発で理解できる
「PHP stream_socket_client HTTP/1.1」とか適当にググったら、たぶんサンプルコードは見つかるはず
2020/02/24(月) 20:05:32.49ID:ZFXUbFog0
漏れは、5ch の投稿から、画像のリンクだけを取り出すために、
Ruby で、こういうモジュールを作っている
module MyUtility
require 'uri'
@@EXTS = %w(png jpg jpeg gif) # 画像の拡張子
# 画像の拡張子かどうか?
def check_picture_extname? ( picture_url )
return false if picture_url.empty?
begin
uri = URI.parse picture_url
rescue # 半角以外の文字
return false
end
file_name = File.basename(uri.path) # ファイル名
file_extname = File.extname(file_name) # 拡張子
return false if file_extname.empty?
# . を削除して、小文字にする
file_extname.delete!(".").downcase!
@@EXTS.include? file_extname # 含まれている?
end
module_function :check_picture_extname? # 公開
end
Ruby で、こういうモジュールを作っている
module MyUtility
require 'uri'
@@EXTS = %w(png jpg jpeg gif) # 画像の拡張子
# 画像の拡張子かどうか?
def check_picture_extname? ( picture_url )
return false if picture_url.empty?
begin
uri = URI.parse picture_url
rescue # 半角以外の文字
return false
end
file_name = File.basename(uri.path) # ファイル名
file_extname = File.extname(file_name) # 拡張子
return false if file_extname.empty?
# . を削除して、小文字にする
file_extname.delete!(".").downcase!
@@EXTS.include? file_extname # 含まれている?
end
module_function :check_picture_extname? # 公開
end
2020/02/24(月) 20:10:17.32ID:pG7e8gTP0
2020/02/24(月) 20:20:22.27ID:ZFXUbFog0
VSCode の拡張機能の、REST Client を使えばよい
### で区切れば、いくつでも書ける。
カーソルを置いて、右クリックメニューから送信
GET http://localhost:8888/?page=2&;pageSize=10 HTTP/1.1
###
POST http://localhost:8888/ HTTP/1.1
content-type: application/json
{
"name": "sample",
"time": "Wed, 21 Oct 2015 18:27:50 GMT"
}
###
### で区切れば、いくつでも書ける。
カーソルを置いて、右クリックメニューから送信
GET http://localhost:8888/?page=2&;pageSize=10 HTTP/1.1
###
POST http://localhost:8888/ HTTP/1.1
content-type: application/json
{
"name": "sample",
"time": "Wed, 21 Oct 2015 18:27:50 GMT"
}
###
2020/03/04(水) 00:36:08.76ID:4nMHG/7W0
phpファイルにパスワードを記入しているのですが
安全でしょうか?
もしくはもっと安全な方法はありますか?
安全でしょうか?
もしくはもっと安全な方法はありますか?
2020/03/04(水) 01:50:10.45ID:9gBPL9dd0
安全かどうかと聞かれれば、安全ではないと答えるが
838デフォルトの名無しさん (ワッチョイ 4f89-x1Qw)
2020/03/07(土) 21:24:50.43ID:0OcB8lvE0 質問です。
テキストファイルにキーワードが書いてあり、
それを読み込んで一致する文字列があったらtrueを返します。
しかし、たまに一致箇所があるにも関わらずスルーされる場合があります。
なぜでしょうか?
判定は↓のような感じです。
strpos($str,'キーワード') !== false
テキストファイルにキーワードが書いてあり、
それを読み込んで一致する文字列があったらtrueを返します。
しかし、たまに一致箇所があるにも関わらずスルーされる場合があります。
なぜでしょうか?
判定は↓のような感じです。
strpos($str,'キーワード') !== false
839デフォルトの名無しさん (ワッチョイ 9fad-j73r)
2020/03/07(土) 22:30:19.72ID:olnFzWkU02020/03/07(土) 22:38:56.40ID:1MRzagVb0
改行が混ざってるんじゃない?
841デフォルトの名無しさん (ワッチョイ 4f89-x1Qw)
2020/03/07(土) 23:48:46.74ID:0OcB8lvE0 すみません。
解決しました。
原因は、テスト用のフォルダのパスのままになっていたことと
試運転時のデータが一部使われていた事により
一部検出されていないというおかしな状態になっているということでした。
解決しました。
原因は、テスト用のフォルダのパスのままになっていたことと
試運転時のデータが一部使われていた事により
一部検出されていないというおかしな状態になっているということでした。
2020/03/08(日) 01:24:36.29ID:yy8ndPXN0
原子力発電所じゃなくてよかったw
843デフォルトの名無しさん (ワッチョイ 4bda-R/kF)
2020/03/08(日) 16:38:04.82ID:o6nDRKvt0 die();
exit();
exit は言語構造です。 status を指定しない場合は括弧なしでコールできます。
って今知ったわー
exit();
exit は言語構造です。 status を指定しない場合は括弧なしでコールできます。
って今知ったわー
2020/03/13(金) 02:12:30.03ID:iVXMMcFW0
foreach ($this->_db->query($sql) as $v) {...}
query()やprepare()で準備した文はexecute()必須だと思ってましたが
↑の記述ではexecute()なしでSQL文を実行できているようでした
何故でしょうか?
query()やprepare()で準備した文はexecute()必須だと思ってましたが
↑の記述ではexecute()なしでSQL文を実行できているようでした
何故でしょうか?
2020/03/13(金) 02:27:00.67ID:6hF2k6+W0
$sqlの内容が 直接実行可能なSQL文だったらそのままで行けるよ
846デフォルトの名無しさん (ワッチョイ 69f1-ZSAD)
2020/03/13(金) 13:42:16.08ID:3oUhS72l0 ->
=>
がよく混同する。
どれがどの用法かを一発で覚える方法ある?
数ヵ月以上使っていなかったり他言語やってたりすると覚えるのは困難。
=>
がよく混同する。
どれがどの用法かを一発で覚える方法ある?
数ヵ月以上使っていなかったり他言語やってたりすると覚えるのは困難。
2020/03/14(土) 09:55:43.61ID:Vu/3uGwv0
>>845
どうも
$sql のSQL文は下記なのですが、直接実行できるときとできない場合の
見分け方ってありますでしょうか?
$sql = "select answer, count(id) as c from answers group by answer";
bindValue() とかをかましているときに execute() 使っているようなので
プレースホルダの置換しなければおk的な感じなのでしょうか?
どうも
$sql のSQL文は下記なのですが、直接実行できるときとできない場合の
見分け方ってありますでしょうか?
$sql = "select answer, count(id) as c from answers group by answer";
bindValue() とかをかましているときに execute() 使っているようなので
プレースホルダの置換しなければおk的な感じなのでしょうか?
2020/03/14(土) 11:47:05.77ID:Vu/3uGwv0
849デフォルトの名無しさん (ブーイモ MM8d-ZSAD)
2020/03/14(土) 12:06:04.05ID:ftz/XzuIM >>846
いまだ自己解決しません
いまだ自己解決しません
850デフォルトの名無しさん (ワッチョイ 068c-WOeG)
2020/03/14(土) 19:01:35.17ID:B3THKCTN0 >>846
->これはアロー演算子だから
オブジェクトとかクラスとか呼び出したときにメソッドを呼び出すときに使うから
クラス名->メソッドとかで
=>これは普通の演算子以下とか以上とかで使うやつだから
->これはアロー演算子だから
オブジェクトとかクラスとか呼び出したときにメソッドを呼び出すときに使うから
クラス名->メソッドとかで
=>これは普通の演算子以下とか以上とかで使うやつだから
2020/03/14(土) 19:46:32.71ID:DYwfTyBB0
>>=>これは普通の演算子以下とか以上とかで使うやつだから
嘘つき
嘘つき
852デフォルトの名無しさん (ブーイモ MM8d-ZSAD)
2020/03/14(土) 19:58:46.89ID:hEp1GdU0M >>850
このウソつきめ
このウソつきめ
853デフォルトの名無しさん (ワッチョイ 7d02-FfQu)
2020/03/14(土) 20:34:45.23ID:GFwOalat0 >>850
You are a liar!
You are a liar!
854デフォルトの名無しさん (ワッチョイ 068c-WOeG)
2020/03/15(日) 12:42:37.91ID:dxrxQoIU02020/03/15(日) 19:54:07.87ID:NaNFV4Bh0
最近はfnとセットでアロー関数使うときにも使うけどね
856デフォルトの名無しさん (ワッチョイ 69d2-WWFo)
2020/03/16(月) 05:40:39.73ID:3OE3knP80857デフォルトの名無しさん (ワッチョイ 69f1-5Ayy)
2020/03/16(月) 10:12:02.17ID:n/UZHZ/902020/03/16(月) 10:41:57.59ID:88XG2BvL0
なんでこうプログラマとかUNIX使いってめんどくさいのが多いかね
2020/03/16(月) 14:37:23.52ID:UdSTQWc50
先にめんどくさいことを片付けるか、後からめんどくさいことにぶち当たるかの、違い
860デフォルトの名無しさん (ワッチョイ 1389-xsY/)
2020/03/22(日) 17:15:31.58ID:R2yf6A3f0 質問いいでしょうか?
ローカル環境XAMPPで動かしています。
外付けHDDから画像を表示させようとしたところ見つからないというエラーが出ました。
[an error occurred while processing this directive] 要求された URL は本サーバでは見つかりませんでした。 もし手入力で URL を入力した場合は、綴りを確認して再度お試し下さい。 [an error occurred while processing this directive]
リンクをコピーで確認したところURLの前に「http://localhost」が勝手に追加されていました。
これのせいで上手く表示されていないようです。
なんとかして画像を表示させる方法はないでしょうか?
ローカル環境XAMPPで動かしています。
外付けHDDから画像を表示させようとしたところ見つからないというエラーが出ました。
[an error occurred while processing this directive] 要求された URL は本サーバでは見つかりませんでした。 もし手入力で URL を入力した場合は、綴りを確認して再度お試し下さい。 [an error occurred while processing this directive]
リンクをコピーで確認したところURLの前に「http://localhost」が勝手に追加されていました。
これのせいで上手く表示されていないようです。
なんとかして画像を表示させる方法はないでしょうか?
2020/03/22(日) 17:37:50.11ID:95kANOoTr
>>860
諸々の知識が足りて無さすぎるのでサーバーとはなんぞやxamppとはなんぞやってとこから勉強してどうぞ
諸々の知識が足りて無さすぎるのでサーバーとはなんぞやxamppとはなんぞやってとこから勉強してどうぞ
2020/03/22(日) 17:38:33.08ID:StD3gLg7r
urlとファイルのパスは違う
ただそれだけ
ただそれだけ
863デフォルトの名無しさん (ワッチョイ 1389-xsY/)
2020/03/22(日) 18:26:04.76ID:R2yf6A3f0 ウ~ンやっぱ無理か
一時的にコピーくらいしか思いつかんな
データとして貼り付けるにして多いし重すぎる
一時的にコピーくらいしか思いつかんな
データとして貼り付けるにして多いし重すぎる
2020/03/22(日) 19:21:51.54ID:uAP5d0yV0
ドキュメントルート内のどこかからジャンクションやシンボリックリンク張るなり、サーバー設定でaliasすればいいんでね?
2020/03/22(日) 19:38:15.03ID:sN305W7E0
866デフォルトの名無しさん (ワッチョイ 1389-xsY/)
2020/03/22(日) 22:18:36.23ID:R2yf6A3f02020/03/22(日) 22:40:26.52ID:sN305W7E0
2020/03/22(日) 22:54:04.30ID:D4yHaglA0
相乗りで質問させてください。
>>867 のリンク先に書いてあるような設定を済ませて、chromeでは〇〇〇.localhostといった
URLで開けるようになったのですが、それ以外のブラウザではエラーが出てしまい開けません。
改善方法はありますでしょうか?
PHPと関係ないかもしれませんが、該当スレも見当たらず…
どうかご回答よろしくお願いいたします。
>>867 のリンク先に書いてあるような設定を済ませて、chromeでは〇〇〇.localhostといった
URLで開けるようになったのですが、それ以外のブラウザではエラーが出てしまい開けません。
改善方法はありますでしょうか?
PHPと関係ないかもしれませんが、該当スレも見当たらず…
どうかご回答よろしくお願いいたします。
2020/03/22(日) 23:06:53.02ID:UY6UlDJY0
2020/03/22(日) 23:51:04.35ID:z2MML3bn0
virtualhostでもいいけどめんどいしalias追加でいいんじゃねえの
2020/03/23(月) 07:16:27.59ID:jGS2rL5b0
Windows 10, WSL, Ubuntu 18.04 で、Ruby なら、Linux 側で、
1-liner で、Rubyで作られた遅いウェブサーバー、WEBrick が起動する
ruby -run -e httpd . -p 8080
そのフォルダに、index.html があれば、
Windows側から、これでブラウザでアクセスできる
http://localhost:8080
Linux側も、C ドライブ内にあるからかな?
アクセスするサーバーが、どのドライブのどのフォルダ内を、
カレントディレクトリとして起動したか
1-liner で、Rubyで作られた遅いウェブサーバー、WEBrick が起動する
ruby -run -e httpd . -p 8080
そのフォルダに、index.html があれば、
Windows側から、これでブラウザでアクセスできる
http://localhost:8080
Linux側も、C ドライブ内にあるからかな?
アクセスするサーバーが、どのドライブのどのフォルダ内を、
カレントディレクトリとして起動したか
2020/03/23(月) 21:22:44.81ID:w/tA8drNM
2ch風の掲示板を作ってます。
datファイルで一行に名前・メール・メッセージと管理用のIDやらを
記述するやり方で、レスアンカーやurlをループ処理の中で出力時に
aタグで囲む方法が思い付きません。
正規表現でメッセージから有無の判定はできましたが、そこから先で詰まってます。
ヒントをください。
datファイルで一行に名前・メール・メッセージと管理用のIDやらを
記述するやり方で、レスアンカーやurlをループ処理の中で出力時に
aタグで囲む方法が思い付きません。
正規表現でメッセージから有無の判定はできましたが、そこから先で詰まってます。
ヒントをください。
2020/03/23(月) 21:47:23.30ID:QTEdjjlGM
2020/03/23(月) 22:01:36.98ID:4wQQ+VSn0
後方参照がわからんのだろうな
matchじゃなくてreplaceでおk
正規表現でマッチした()の中身を置き換えのとこで$n or \\nで参照できる
例えばこんなん
https://ideone.com/lJv04e
matchじゃなくてreplaceでおk
正規表現でマッチした()の中身を置き換えのとこで$n or \\nで参照できる
例えばこんなん
https://ideone.com/lJv04e
2020/03/24(火) 02:26:45.30ID:84LIBSDP0
2020/03/25(水) 23:42:46.36ID:YJCiq0GG0
>>874
下記記述で行けました。
本当にありがとうございました(涙)
preg_replace('/>>([0-9]{1,3})/', '<a href="#$1">>>$1</a>', $message);
ちなみにセキュリティに対して理解が浅すぎるのですが、渡ってくる文字列に対して警戒していればおkで
置換でa要素を使ったり、HTMLエンティティ対象の文字列をそのまま書いても大丈夫なのでしょうか?
下記記述で行けました。
本当にありがとうございました(涙)
preg_replace('/>>([0-9]{1,3})/', '<a href="#$1">>>$1</a>', $message);
ちなみにセキュリティに対して理解が浅すぎるのですが、渡ってくる文字列に対して警戒していればおkで
置換でa要素を使ったり、HTMLエンティティ対象の文字列をそのまま書いても大丈夫なのでしょうか?
2020/03/26(木) 08:37:27.85ID:uQPl4pkP0
5chはテキストログで1レス1行が都合が良さそうなのと区切り文字が必要になるので
そのへんの改行(<br>)と区切り(<>)考慮するとエスケープ済みのほうが扱いやすい
ただ欠点としてはログサイズが肥大する
もちろん必要最小限のエスケープでもできるけどめんどくさいので完全再現じゃないが
ログ保存時
$message = preg_replace('/\r?\n/', '<br>', htmlspecialchars($_POST['message'], ENT_QUOTES, 'UTF-8'));
出力時
$message = preg_replace(['/>>([0-9]{1,3})/', '%(https?://[^\s&]+)%'], ['<a href="#$1">>>$1</a>', '<a href="$1">$1</a>'], $message);
とかなんじゃないかなと
リンクつける仕様上一旦エスケープしたのを戻す箇所があるので
そこでXSSを成立させないよう注意してコーディングする必要がある
エスケープ済みの文字は<や"のように&がつくので
[^\s&]のとこのように&でぶったぎるのが簡単
ちなみにurlの複数パラメータでも使われる&の扱いは面倒なので適当だけど
>>835のように&でリンク切れてるの見る限り5chも適当なのでおkってことで
そのへんの改行(<br>)と区切り(<>)考慮するとエスケープ済みのほうが扱いやすい
ただ欠点としてはログサイズが肥大する
もちろん必要最小限のエスケープでもできるけどめんどくさいので完全再現じゃないが
ログ保存時
$message = preg_replace('/\r?\n/', '<br>', htmlspecialchars($_POST['message'], ENT_QUOTES, 'UTF-8'));
出力時
$message = preg_replace(['/>>([0-9]{1,3})/', '%(https?://[^\s&]+)%'], ['<a href="#$1">>>$1</a>', '<a href="$1">$1</a>'], $message);
とかなんじゃないかなと
リンクつける仕様上一旦エスケープしたのを戻す箇所があるので
そこでXSSを成立させないよう注意してコーディングする必要がある
エスケープ済みの文字は<や"のように&がつくので
[^\s&]のとこのように&でぶったぎるのが簡単
ちなみにurlの複数パラメータでも使われる&の扱いは面倒なので適当だけど
>>835のように&でリンク切れてるの見る限り5chも適当なのでおkってことで
2020/03/26(木) 22:20:23.54ID:pJp2pNNg0
>>877
詳しくありがとうございます。
5chのログの内容は最初にチェックしてたはずなのに、すっかり忘れてました。
再度確認したところ、エスケープ処理済みな上にタグまで付いてました…
てっきり出力前にエスケープするのがPHPのルールだと思ってたのですが、
まさか事前にエスケープしておくとは…
出力時のpreg_replaceも配列にすれば一回で済むのですね…
レスアンカーとリンクで分けてました
>>835のリンクについては、専ブラで見てたので気づきませんでした。
直リン避けも考慮してhttps://まで見て、後は半角英数なら置換対象に
してしまおう!…って感じで雑に考えてました。
preg_replace('/(h?ttps?:\/\/[-_.!~*\'()a-zA-Z0-9;\/?:@&=+$,%#]+)/', '<a href="$1">$1</a>', $replaceMessage);
凄く参考になりました。
どうもです。
詳しくありがとうございます。
5chのログの内容は最初にチェックしてたはずなのに、すっかり忘れてました。
再度確認したところ、エスケープ処理済みな上にタグまで付いてました…
てっきり出力前にエスケープするのがPHPのルールだと思ってたのですが、
まさか事前にエスケープしておくとは…
出力時のpreg_replaceも配列にすれば一回で済むのですね…
レスアンカーとリンクで分けてました
>>835のリンクについては、専ブラで見てたので気づきませんでした。
直リン避けも考慮してhttps://まで見て、後は半角英数なら置換対象に
してしまおう!…って感じで雑に考えてました。
preg_replace('/(h?ttps?:\/\/[-_.!~*\'()a-zA-Z0-9;\/?:@&=+$,%#]+)/', '<a href="$1">$1</a>', $replaceMessage);
凄く参考になりました。
どうもです。
2020/03/29(日) 10:25:07.65ID:wUzzaaBN0
文字列と多次元配列の値に対して一括で処理できるメソッドで質問です。
下記メソッドで$hogeに多次元配列が渡ってきたと仮定しまして、
値が配列であれば再起処理でメソッドが再度呼び出されるそうです。
私の考えでは、再起処理で多次元配列の中の値が配列ではなかったときは、
②の文字列の方に流れるのではと思っていたのですが、実際は①に流れるようです。
多次元配列の中の文字列にis_array()を掛けてもfalseなのですが、どういった理由で
①に流れるのでしょうか?
function test($hoge) {
// 配列の場合
if (is_array($hoge)) {
foreach ($hoge as $key => $value) {
// 再起処理
if (is_array($value)) {
test($value);
}
// ①配列の中の値が配列でない場合
else {
...
}
}
return;
}
// ②文字列の場合
return;
}
下記メソッドで$hogeに多次元配列が渡ってきたと仮定しまして、
値が配列であれば再起処理でメソッドが再度呼び出されるそうです。
私の考えでは、再起処理で多次元配列の中の値が配列ではなかったときは、
②の文字列の方に流れるのではと思っていたのですが、実際は①に流れるようです。
多次元配列の中の文字列にis_array()を掛けてもfalseなのですが、どういった理由で
①に流れるのでしょうか?
function test($hoge) {
// 配列の場合
if (is_array($hoge)) {
foreach ($hoge as $key => $value) {
// 再起処理
if (is_array($value)) {
test($value);
}
// ①配列の中の値が配列でない場合
else {
...
}
}
return;
}
// ②文字列の場合
return;
}
2020/03/29(日) 12:47:17.78ID:XdbgZgVO0
①は再帰呼び出しで、②は再帰の終了条件だね。
配列の中に配列があったときは①が呼ばれるようになってる。
再帰を一度じっくり勉強したほうがいいよ。誤字も含めて。
配列の中に配列があったときは①が呼ばれるようになってる。
再帰を一度じっくり勉強したほうがいいよ。誤字も含めて。
2020/03/29(日) 14:07:51.77ID:wUzzaaBN0
>>880
誤字失礼しました。
どうにも理解できなくて、再度質問しようと文字に起こしていたところ自己解決できました。
②は文字列専用の終了条件で①は配列専用の終了条件だったようです。
再帰処理の際に値が文字列なのに、何で配列判定で true が出るのだろう?
というところが疑問だったのですが、
本来であれば配列の中の配列である [] で再帰処理されるところを、その中の値③で
再帰処理されていると勘違いしておりました。
ご迷惑おかけしました。
$hoge = [
'piyo1',
'piyo2',
[
// ③
'piyo3'
]
];
誤字失礼しました。
どうにも理解できなくて、再度質問しようと文字に起こしていたところ自己解決できました。
②は文字列専用の終了条件で①は配列専用の終了条件だったようです。
再帰処理の際に値が文字列なのに、何で配列判定で true が出るのだろう?
というところが疑問だったのですが、
本来であれば配列の中の配列である [] で再帰処理されるところを、その中の値③で
再帰処理されていると勘違いしておりました。
ご迷惑おかけしました。
$hoge = [
'piyo1',
'piyo2',
[
// ③
'piyo3'
]
];
2020/03/29(日) 15:05:54.62ID:r8VR5IyJ0
書き方としては終了条件を早期returnして終了するべき(そうじゃないとひどく読みにくい)
一般化するなら
function apply_recursively($target, callable $callback) {
if (!is_array($target)) {
return $callback($target);
}
return array_map(function ($target) use ($callback) { return apply_recursively($target, $callback); }, $target);
// return array_map(fn($target) => apply_recursively($target, $callback), $target); // -> for PHP >= 7.4.0
}
一般化するなら
function apply_recursively($target, callable $callback) {
if (!is_array($target)) {
return $callback($target);
}
return array_map(function ($target) use ($callback) { return apply_recursively($target, $callback); }, $target);
// return array_map(fn($target) => apply_recursively($target, $callback), $target); // -> for PHP >= 7.4.0
}
2020/03/29(日) 19:30:19.50ID:KCykJRwi0
>>879
foreach 直後の if は不要で無条件に test($value) を行い、
②は else にして ① に書いてた処理を書き、
関数の引数は function hoge(&$value) で参照で受けとるようにし、
foreach も foreach($hoge as &$value) にする。
こうしないと動かなくない?
foreach 直後の if は不要で無条件に test($value) を行い、
②は else にして ① に書いてた処理を書き、
関数の引数は function hoge(&$value) で参照で受けとるようにし、
foreach も foreach($hoge as &$value) にする。
こうしないと動かなくない?
2020/03/29(日) 19:31:44.20ID:KCykJRwi0
2020/04/11(土) 19:45:53.72ID:9fxAF0s30
phpのechoを使ってルートフォルダからの絶対パスを指定して
ナビ部分のリンク変更をサイト全体に一括で行えるような書き方を教えてください
3年くらい前にやってたんですが
やり方がわからなくなってしまいました
ナビ部分のリンク変更をサイト全体に一括で行えるような書き方を教えてください
3年くらい前にやってたんですが
やり方がわからなくなってしまいました
2020/04/12(日) 01:01:57.54ID:9sN7iYc+0
>>885
echoにそんな機能ないし、何が聞きたいのか伝わらないと思う。
find(grep)+sedのような、ファイルの中身に特定の文字列があれば、
それを一括で書き換えるようなことをしたいわけでもなさそうだし、
何かナビ用のリンクのリストをincludeしてるなら、
そのリストの中身を書き換えろで終わる話だけど、そんな簡単な話でもなさそうだし。
echoにそんな機能ないし、何が聞きたいのか伝わらないと思う。
find(grep)+sedのような、ファイルの中身に特定の文字列があれば、
それを一括で書き換えるようなことをしたいわけでもなさそうだし、
何かナビ用のリンクのリストをincludeしてるなら、
そのリストの中身を書き換えろで終わる話だけど、そんな簡単な話でもなさそうだし。
2020/04/12(日) 07:18:43.42ID:xGytKmNW0
細かく言いますと
一時期Web製作会社でコーディング業務をしており
html/cssは扱えるのですがphpはヘッダー、ナビ、フッターなど共通部分をincludeフォルダで共通化できる程度しか扱えませんでした
そして自社のドメインのサブドメインでテスト環境を作り、そこでHPを作成して客先の本番サーバにアップロードという工程で納品、保守管理をしていました
その場合、リンク先を絶対パスで書けないので相対パスにする訳ですが
phpで常にルートフォルダを取得して書き出し、それに続けて下層のリンク先を明記するようにしていたんですが
そのやり方を忘れてしまったので教えて欲しいのです
一時期Web製作会社でコーディング業務をしており
html/cssは扱えるのですがphpはヘッダー、ナビ、フッターなど共通部分をincludeフォルダで共通化できる程度しか扱えませんでした
そして自社のドメインのサブドメインでテスト環境を作り、そこでHPを作成して客先の本番サーバにアップロードという工程で納品、保守管理をしていました
その場合、リンク先を絶対パスで書けないので相対パスにする訳ですが
phpで常にルートフォルダを取得して書き出し、それに続けて下層のリンク先を明記するようにしていたんですが
そのやり方を忘れてしまったので教えて欲しいのです
2020/04/12(日) 08:39:06.07ID:3vwO7tAb0
それだけ具体的に説明できるんならググった方が早いぞw
2020/04/12(日) 11:56:55.73ID:+wetVu4e0
2ch風の掲示板を作っており、考え方についてアドバイスをいただきたいです。
ログファイルでレスを記録して、1レス1行で構成されています。
ajaxを用いて遷移なしでの投稿反映と、レスアンカーにホバーすると、該当のレスを引っ張ってくる
ようになっています。
このレスアンカーへのホバーを行うと、当たり前なのかもしれませんが、添付の画像のように
どんどん_ajax.phpのファイルへのアクセス?が増えていってしまい、投稿ならまだしも、
ホバーするだけでPOSTを行うなんて、無駄な処理をさせているのではないか?
と考え出しております。
ログファイルは数百kb程度なので、投稿内容の全てをJS側で配列で保持をしていく方が
無難だったりしますでしょうか?
ttps://f.easyuploader.app/eu-prd/upload/20200412115052_69364c5954346f304857.png
ログファイルでレスを記録して、1レス1行で構成されています。
ajaxを用いて遷移なしでの投稿反映と、レスアンカーにホバーすると、該当のレスを引っ張ってくる
ようになっています。
このレスアンカーへのホバーを行うと、当たり前なのかもしれませんが、添付の画像のように
どんどん_ajax.phpのファイルへのアクセス?が増えていってしまい、投稿ならまだしも、
ホバーするだけでPOSTを行うなんて、無駄な処理をさせているのではないか?
と考え出しております。
ログファイルは数百kb程度なので、投稿内容の全てをJS側で配列で保持をしていく方が
無難だったりしますでしょうか?
ttps://f.easyuploader.app/eu-prd/upload/20200412115052_69364c5954346f304857.png
2020/04/12(日) 13:52:29.72ID:tx1YNXXn0
2020/04/12(日) 14:07:51.14ID:+wetVu4e0
892デフォルトの名無しさん (ワッチョイ 6ff1-Xgk8)
2020/04/12(日) 14:43:40.33ID:1ZMEMPeI0 ->
=>
この使い分けをよく忘れるのですが
覚えておくコツはありますかね?
メインでPHP言語以外をやってるのでたまにPHP書くときよく混乱します。
=>
この使い分けをよく忘れるのですが
覚えておくコツはありますかね?
メインでPHP言語以外をやってるのでたまにPHP書くときよく混乱します。
893デフォルトの名無しさん (ワッチョイ 6ff1-Xgk8)
2020/04/12(日) 14:46:43.20ID:1ZMEMPeI02020/04/12(日) 15:36:12.26ID:ATqenNPh0
2020/04/12(日) 16:48:22.18ID:+wetVu4e0
>>894
ども。
おっしゃる通りかもしれません。
投稿以外でサーバーに負荷掛けるより、クライアント側で処理した方が
良い気がしてきました。
1回投稿での文字数を制限してしまえばサイズも制御できそうですし。
ども。
おっしゃる通りかもしれません。
投稿以外でサーバーに負荷掛けるより、クライアント側で処理した方が
良い気がしてきました。
1回投稿での文字数を制限してしまえばサイズも制御できそうですし。
2020/04/12(日) 22:01:27.62ID:JZPIrIOa0
Ruby なら、0~1,000 までの配列を作っておいて、
読み込んだレス番号だけは、その文字列を設定していく
p posts = Array.new( 1001 )
出力
[ nil, nil, nil, 続く... ]
読み込んだレス番号だけは、その文字列を設定していく
p posts = Array.new( 1001 )
出力
[ nil, nil, nil, 続く... ]
2020/04/13(月) 00:40:29.11ID:DZv8piin0
どうせなら ruby じゃなくて JS で例示してやれよ。
phpのスレでなんなんだけどさ。
phpのスレでなんなんだけどさ。
2020/04/13(月) 00:57:20.05ID:uI4POseh0
何かスレ番が飛んでいるんだけど
2020/04/13(月) 10:11:39.65ID:Hsuo/bvd0
RubyならRubyならってよく布教しに来るけどいい加減場違い空気嫁
>>887
URLの話じゃないでしょ?
内部の話なら別に相対パスにしなくても絶対パスでも問題ないんだけど。
その絶対パスがわからんって話?
自スクリプトから見た自分の絶対パスは__FILE__定数でわかる。
サーバのドキュメントルートが知りたいなら$_SERVER['DOCUMENT_ROOT']
ただしこういう環境変数($_SERVERや$_ENV)はあんまり過信しないほうがいいね。
>>887
URLの話じゃないでしょ?
内部の話なら別に相対パスにしなくても絶対パスでも問題ないんだけど。
その絶対パスがわからんって話?
自スクリプトから見た自分の絶対パスは__FILE__定数でわかる。
サーバのドキュメントルートが知りたいなら$_SERVER['DOCUMENT_ROOT']
ただしこういう環境変数($_SERVERや$_ENV)はあんまり過信しないほうがいいね。
900デフォルトの名無しさん (ワッチョイ 77b0-dkLK)
2020/04/16(木) 13:03:40.61ID:emwZ0tr20 Eclipseで参考書通りに
print “¥n”入れてもコンソールで改行してくれないんだけどなんで?
print “¥n”入れてもコンソールで改行してくれないんだけどなんで?
901デフォルトの名無しさん (ワッチョイ 9fad-9n34)
2020/04/16(木) 17:50:16.15ID:mDx3pHSK02020/04/16(木) 18:32:43.61ID:jzlLoXMF0
Eclipseとかprint ""とかいう表記を見ると
古いか一般のPHP書籍とかかけ離れたもののきがするわ
あんま参考にしないほうがいいかもしれんね
古いか一般のPHP書籍とかかけ離れたもののきがするわ
あんま参考にしないほうがいいかもしれんね
903デフォルトの名無しさん (ワッチョイ 77b0-dkLK)
2020/04/16(木) 22:40:26.71ID:emwZ0tr20 OSはMac
eclipseでphp7
<?php
print “hello”;
print “¥n”;
print “world”;
print “¥n”;
?>
Kindle Unlimitedの参考書によるとこれで
hello
world
と出力されるみたいなんだけど実行すると
hello¥nworld¥n
ってなる
eclipseでphp7
<?php
print “hello”;
print “¥n”;
print “world”;
print “¥n”;
?>
Kindle Unlimitedの参考書によるとこれで
hello
world
と出力されるみたいなんだけど実行すると
hello¥nworld¥n
ってなる
2020/04/16(木) 22:55:55.17ID:Vn4RPyR40
そりゃなるだろな
2020/04/16(木) 23:11:06.27ID:tywb42E30
これを、Ruby で、実行してもエラーになる!
print “\n”;
基本的にプログラミングは、どの言語でも、半角英数字しか使えない。
全角文字のクォーテーション・全角空白なども使えない
\ も、日本語キーボードでは、バックスラッシュキーのこと!
\ という文字を使っちゃいけない!
これなら、Ruby でも改行される。
print "\n" ;
print “\n”;
基本的にプログラミングは、どの言語でも、半角英数字しか使えない。
全角文字のクォーテーション・全角空白なども使えない
\ も、日本語キーボードでは、バックスラッシュキーのこと!
\ という文字を使っちゃいけない!
これなら、Ruby でも改行される。
print "\n" ;
2020/04/16(木) 23:33:15.15ID:H8AaCGjg0
2020/04/17(金) 06:24:31.98ID:9clD5XXx0
半角で書くべきとこを全角で書いてるのは
動いてるようだから書き込んだときのミスとして
文字コードがおかしいんだろう
文字コード変えるか\nやめてPHP_EOLにしとけば
動いてるようだから書き込んだときのミスとして
文字コードがおかしいんだろう
文字コード変えるか\nやめてPHP_EOLにしとけば
2020/04/17(金) 10:18:56.55ID:OO65ehhVM
バチスカってmacの専ブラで書き込むとクウォートが全角に、バックスラッシュが円マークに、自動変換される
2020/04/19(日) 11:58:51.62ID:KKQsn4ZP0
サーバー内で動くプログラミングは可能のことですか?
例えば無限ループで常に動かすプログラムとか
例えば無限ループで常に動かすプログラムとか
2020/04/19(日) 12:58:45.29ID:dTXGqJa40
可能なことアルヨ
911デフォルトの名無しさん (ワッチョイ 1701-QEis)
2020/04/19(日) 14:20:56.44ID:26zoB4wU0 可能アルヨ
2020/04/19(日) 16:17:57.28ID:8HZGCfxQ0
普通はそんな事しないな
913デフォルトの名無しさん (ワッチョイ 1701-QEis)
2020/04/19(日) 23:14:11.96ID:26zoB4wU0 定期実行されるクローラーとかのこと言ってるんじゃないの?
2020/04/21(火) 16:09:14.67ID:DLCfuoS50
個人的にPHPでサーバ書いてるんでそれはよくやってる
ただPHPに限った話じゃないけどその手のバックグラウンド実行は
普通のレンタルサーバだと一定時間でkillされるだろうね
ただPHPに限った話じゃないけどその手のバックグラウンド実行は
普通のレンタルサーバだと一定時間でkillされるだろうね
2020/04/22(水) 08:46:54.32ID:kEPjMBTM0
定数を、成型した変数を代入することで宣言することはできませんか?
外部ファイル(.csv)を読み込み、連想配列$arrayを作成し、
クラス定数CLASS::CONSTをその配列$arrayにしたいのです
グローバル定数としてdefine(CONST, $array)することも試したのですが、いずれも出来ませんでした
外部ファイル(.csv)を読み込み、連想配列$arrayを作成し、
クラス定数CLASS::CONSTをその配列$arrayにしたいのです
グローバル定数としてdefine(CONST, $array)することも試したのですが、いずれも出来ませんでした
916デフォルトの名無しさん (ワッチョイ e2ad-h7Ku)
2020/04/22(水) 11:16:41.91ID:/bKUmTE30 それは定数って言わないのでは
2020/04/22(水) 19:18:42.44ID:KcrgV6Jha
定数にはコンパイル時定数と実行時定数(immutable, readonly)とがあるが, PHPは基本的にコンパイル時定数しかサポートしていない
実現したいのは後者の実行時定数なんだろうが, 「php readonly」とかでググれば分かるように言語としてはサポートしていない
実現したいのは後者の実行時定数なんだろうが, 「php readonly」とかでググれば分かるように言語としてはサポートしていない
2020/04/22(水) 22:18:15.55ID:K1Lxy7X30
2020/04/22(水) 23:55:38.61ID:kEPjMBTM0
すみませんできました
defineだと変数渡しで定数を作れました
単にPHP5.6でdefineで定数に配列を入れられないため正常動作しなかったようです
PHP7.3の環境では動作しました
お手数おかけしました
defineだと変数渡しで定数を作れました
単にPHP5.6でdefineで定数に配列を入れられないため正常動作しなかったようです
PHP7.3の環境では動作しました
お手数おかけしました
920デフォルトの名無しさん (ワッチョイ a601-ZzZR)
2020/04/23(木) 08:33:15.04ID:n33m75pH0 ドットインストールでCakePHP勉強するお
2020/04/23(木) 08:59:23.02ID:C0/pHZNH0
CakePHP, Spring Boot などは、Ruby on Rails のコピーだから、
Rails を学んだ方が速いと思う
Rails を学んだ方が速いと思う
922デフォルトの名無しさん (ブーイモ MMed-enkp)
2020/04/23(木) 09:41:57.79ID:RRYW82KBM x ドットインストールでCakePHP勉強するお
o ドットインストールでCakePHP勉強するよ
正しい日本語。
最近の日本人は気持ち悪い言葉づかいをする。
o ドットインストールでCakePHP勉強するよ
正しい日本語。
最近の日本人は気持ち悪い言葉づかいをする。
923デフォルトの名無しさん (ワッチョイ a601-ZzZR)
2020/04/23(木) 10:24:36.69ID:n33m75pH0 >>921
Webアプリの仕組み(裏でどう動いているか)を理解したくて、LaravelかCakePHPかで迷ってCakePHPを勉強しようと思ったんだけどLaravelはどう?
Webアプリの仕組み(裏でどう動いているか)を理解したくて、LaravelかCakePHPかで迷ってCakePHPを勉強しようと思ったんだけどLaravelはどう?
2020/04/23(木) 13:03:21.20ID:9QHb+xSV0
>>922
体言止めに句点打つのめちゃくちゃ違和感あるんだが
体言止めに句点打つのめちゃくちゃ違和感あるんだが
2020/04/23(木) 23:07:52.02ID:C0/pHZNH0
web アプリの作り方を学ぶのは、Ruby が最適!
本当は、Sinatra が良いけど、web 上の教科書が少ないから、
Rails になるかな?
ただし、Rails は、半年ぐらい掛けて学ぶぐらい高機能。
本は、10冊ぐらい出てる
web サイトでは、日本語版・Rails チュートリアルの1つ古いバージョンなら、無料で読めるけど、
あまりに難しいので、初心者は本から始めるのが良い
本当は、Sinatra が良いけど、web 上の教科書が少ないから、
Rails になるかな?
ただし、Rails は、半年ぐらい掛けて学ぶぐらい高機能。
本は、10冊ぐらい出てる
web サイトでは、日本語版・Rails チュートリアルの1つ古いバージョンなら、無料で読めるけど、
あまりに難しいので、初心者は本から始めるのが良い
2020/04/23(木) 23:15:49.37ID:l5RZFi5J0
RubyをNGワードに入れるのはデフォなんですかね?
927デフォルトの名無しさん (ワッチョイ e2ad-h7Ku)
2020/04/24(金) 02:12:49.04ID:rM9gQYtA0 >>926
次からテンプレに入れよう
次からテンプレに入れよう
2020/04/24(金) 02:24:32.60ID:nHNgt9zS0
単に使い方を学びたいと言ってるだけなら別にフルスタックでもいいけど
ソースコードレベルで仕組みを理解したいならフルスタックは疲れるだけ
slimあたりのマイクロフレームワークのソースコード読むといい
ソースコードレベルで仕組みを理解したいならフルスタックは疲れるだけ
slimあたりのマイクロフレームワークのソースコード読むといい
2020/04/24(金) 05:55:46.89ID:cuZ5QlOgr
なんで荒らしの相手をするんや。
ホントにRubyが優れとるなら、PHPで書かれた有名ソフトがRubyで書かれなかった理由を提示させるべきや。
WordPressもNextCloudもPHPなんや。Facebookも元はPHPで書かれてた。
PHPerは胸を張って堂々としておけ。小バエが顔の前をうろちょろしても気にするな。
ホントにRubyが優れとるなら、PHPで書かれた有名ソフトがRubyで書かれなかった理由を提示させるべきや。
WordPressもNextCloudもPHPなんや。Facebookも元はPHPで書かれてた。
PHPerは胸を張って堂々としておけ。小バエが顔の前をうろちょろしても気にするな。
2020/04/26(日) 16:06:33.45ID:EH1DMWp5r
小さなグループのための連絡帳づくりには便利だな
自分も使って現在5人くらいで使っておおむね合格点しかし
「こういう風になってたらもっといいなあ」多数w
自分も使って現在5人くらいで使っておおむね合格点しかし
「こういう風になってたらもっといいなあ」多数w
2020/04/26(日) 16:37:45.80ID:QChGrgCL0
RubyってPHPと張り合うものだったんだ?
あれはPerlと競合するものだと思ってた
あれはPerlと競合するものだと思ってた
2020/04/26(日) 22:04:15.59ID:NZagGUNV0
PHPはごった煮のテンプレートエンジンってイメージだな。
スクリプトのパースがコードではなくテキスト出力から始まるしな。
そこが他のスクリプトと比べてもweb向きに使い勝手がいいところだと思う。
スクリプトのパースがコードではなくテキスト出力から始まるしな。
そこが他のスクリプトと比べてもweb向きに使い勝手がいいところだと思う。
933デフォルトの名無しさん (ワッチョイ a7f1-trzR)
2020/05/02(土) 15:59:18.74ID:riUeVpMT0 https://www.youtube.com/channel/UCoRxcaATU1N9QdXXgmQLBFQ
このふるちゃんという女の子が超絶にかわいいのだけど
このYoutuberってなにもの?
このふるちゃんという女の子が超絶にかわいいのだけど
このYoutuberってなにもの?
2020/05/02(土) 21:47:33.77ID:ogKtp69S0
慶應法法からWebって…
2020/05/03(日) 11:44:53.69ID:eurrHnV60
下記のような、空以外のstringだけを通し、それ以外はnullを返すメソッドを作りたいんですが、
この処理に最適なメソッド名ってありますか? 暫定のfilterStringは何となく違う気がしてます
function filterString($var): ?string
{
return is_string($var) && $var !== '' ? $var : null;
}
この処理に最適なメソッド名ってありますか? 暫定のfilterStringは何となく違う気がしてます
function filterString($var): ?string
{
return is_string($var) && $var !== '' ? $var : null;
}
2020/05/03(日) 12:32:50.65ID:cPyz4pxla
nullifyInvalidInputとか
2020/05/04(月) 04:41:53.17ID:zTC9x9sUp
nullifyって見たことないけどいい名前だな
2020/05/04(月) 11:40:37.27ID:au6sJ5VU0
GCのためにでかいオブジェクトをnullにするのならわかるけど
エラーハンドリング用途でnullじゃない値をnullにして返すってのはbad practice
エラーハンドリング用途でnullじゃない値をnullにして返すってのはbad practice
2020/05/04(月) 17:10:17.02ID:PenCHXzY0
2020/05/05(火) 02:01:57.19ID:2JXMMGLu0
各ページa,bからcページへの遷移を各ページのボタンa,bからとしたときに、ページbのボタン名をページaのものにブラウザのデバックモードかなんかで変更した場合に、
ページcから見るとisset(ボタンA)がtrueとなると思いますが、こういうパターンを見分ける方法ってありますでしょうか
ページcから見るとisset(ボタンA)がtrueとなると思いますが、こういうパターンを見分ける方法ってありますでしょうか
2020/05/05(火) 03:32:16.49ID:abcVn/0z0
2020/05/05(火) 03:53:04.29ID:abcVn/0z0
と思ったけど、結局リファラも改ざんできちゃうから難しいね
JavaScriptで小細工も出来るけどそれすら改ざんされるのも想定してるなら
まあノーダメならそんな物好きなこと想定する必要はないと思うけど
ダメージあるなら設計変えればいいし
JavaScriptで小細工も出来るけどそれすら改ざんされるのも想定してるなら
まあノーダメならそんな物好きなこと想定する必要はないと思うけど
ダメージあるなら設計変えればいいし
2020/05/05(火) 16:36:02.14ID:2JXMMGLu0
ありがと➰。入力された値の正統性を確かめるのって難しいですね。自分しか使わないやつだから気にしないでおきます
2020/05/05(火) 21:57:50.74ID:ZggaRwfV0
ページを表示する毎にランダム値を埋めて、submitされたページ名とその値とを検証したらどうかな。
945デフォルトの名無しさん (ワッチョイ ea02-7oqX)
2020/05/06(水) 19:48:47.60ID:KQs5P28n0 $a = [1, 2, 3];
と言う配列があったとして、そこから
$b[1][2][3] = '何か入れる';
と言う配列を作る簡単な方法はありませんでしょうか?
と言う配列があったとして、そこから
$b[1][2][3] = '何か入れる';
と言う配列を作る簡単な方法はありませんでしょうか?
2020/05/06(水) 19:53:23.20ID:x/qfttvN0
$b[$a[0]][$a[1]][$a[2]] = '何か入れる';
とか?
とか?
2020/05/06(水) 20:03:27.90ID:KQs5P28n0
ごめんなさい、質問の仕方が悪かったです
元の配列の長さは可変で、出来上がる配列の深さも深くなっていく感じです
$ary = [1,2,3]; //長さは可変
$val = '何か';
$ret = func($ary, $val);
var_dump($ret);
---
array (size=1)
1 =>
array (size=1)
2 =>
array (size=1)
3 => string '何か' (length=3)
元の配列の長さは可変で、出来上がる配列の深さも深くなっていく感じです
$ary = [1,2,3]; //長さは可変
$val = '何か';
$ret = func($ary, $val);
var_dump($ret);
---
array (size=1)
1 =>
array (size=1)
2 =>
array (size=1)
3 => string '何か' (length=3)
2020/05/06(水) 23:50:59.56ID:cMx2hlKH0
そういうあり得ないくらい複雑な何かを実装しようとするときは、
実はやりたいことを実現するもっと簡単な方法があることが多い
配列$bは常に1つの次元に1つの要素しか持たないまま深さだけ深くなってくのは無駄というか意味不明
やりたいこと自体を書いた方がいいと思う
実はやりたいことを実現するもっと簡単な方法があることが多い
配列$bは常に1つの次元に1つの要素しか持たないまま深さだけ深くなってくのは無駄というか意味不明
やりたいこと自体を書いた方がいいと思う
2020/05/07(木) 01:58:37.98ID:T+6y7YdL0
元の配列の値をキーの深さとする配列ができれば、あとはなんとかなるのでその部分だけの質問としたのですが、わかりにくくてすみませんでした
やりたかったことはLaravelのRouteの真似事です
木構造のクラス書いてデータ保持するのも面倒だったので配列でなんとかしようと思いました
ただあまりゴリ押しで書いても見ずらいので既存の関数などで簡潔に書けたらと思い質問した次第です
結局、参照代入をforeahで回すと言う方法で落ち着きました
public static int get($uri, $action)
{
if ($uri == '/') {
$paths[] = '/';
} else {
$paths = explode('/', $uri);
}
$tmp = &static::$routings;
foreach ($paths as $path) {
$tmp = &$tmp[$path];
}
$tmp = $action;
return static::$instance;
}
やりたかったことはLaravelのRouteの真似事です
木構造のクラス書いてデータ保持するのも面倒だったので配列でなんとかしようと思いました
ただあまりゴリ押しで書いても見ずらいので既存の関数などで簡潔に書けたらと思い質問した次第です
結局、参照代入をforeahで回すと言う方法で落ち着きました
public static int get($uri, $action)
{
if ($uri == '/') {
$paths[] = '/';
} else {
$paths = explode('/', $uri);
}
$tmp = &static::$routings;
foreach ($paths as $path) {
$tmp = &$tmp[$path];
}
$tmp = $action;
return static::$instance;
}
2020/05/07(木) 10:33:19.60ID:n2/pzMnbM
>>947
そのコードで言うところの func は一応実現してて、もっとシンプルな方法があるかを確認したいの?
それともまだ func を実現できてないの?
参照と再帰を使えば簡単なはずだけど、参照とループを使ってもできるはずだよ。
そのコードで言うところの func は一応実現してて、もっとシンプルな方法があるかを確認したいの?
それともまだ func を実現できてないの?
参照と再帰を使えば簡単なはずだけど、参照とループを使ってもできるはずだよ。
2020/05/07(木) 10:35:14.85ID:n2/pzMnbM
>>949
もう答え出してたかw
もう答え出してたかw
2020/05/10(日) 13:00:56.09ID:R/KKgKZH0
CORSがさっぱり分からんので教えてください
2020/05/10(日) 16:35:05.72ID:vZKWBupI0
ざっくり
ブラウザがセキュリティのために(あくまでも独自に)設定している、
同一オリジンポリシーというものがある。
同一オリジンってのは同じプロトコル 同じホスト 同じポートのことで、
同一ドメインでもこれらが違ったら別オリジンということになる。
ブラウザはJavaScriptのXMLHttpRequest(XHR)やFetchAPIから、
別オリジンのサイトには意図的にアクセスしないようにしてある。
その制限を超えるのがCORSで、
あるサイトを開いた時、別オリジンのサイトにXHRなどからアクセスしようとしてたら、
ブラウザは追加のOriginヘッダをつけて、その別オリジンに対して確認作業を行う。
そのサイトがAccess-Control-Allow-Originというヘッダを返してこれば、
意図したものと把握し、制限を超えてアクセスすることになる。
Access-Control-Allow-Originは、
よそのサイトのXHRから呼び出し可能なAPIを提供してる時はつけるべきだが、
よくわかってない人が、自サイトの掲示板でつけてしまった場合、
悪意あるサイトにアクセスするだけで、CSRFが成立して、犯罪予告を書いてしまったりする。
ブラウザがセキュリティのために(あくまでも独自に)設定している、
同一オリジンポリシーというものがある。
同一オリジンってのは同じプロトコル 同じホスト 同じポートのことで、
同一ドメインでもこれらが違ったら別オリジンということになる。
ブラウザはJavaScriptのXMLHttpRequest(XHR)やFetchAPIから、
別オリジンのサイトには意図的にアクセスしないようにしてある。
その制限を超えるのがCORSで、
あるサイトを開いた時、別オリジンのサイトにXHRなどからアクセスしようとしてたら、
ブラウザは追加のOriginヘッダをつけて、その別オリジンに対して確認作業を行う。
そのサイトがAccess-Control-Allow-Originというヘッダを返してこれば、
意図したものと把握し、制限を超えてアクセスすることになる。
Access-Control-Allow-Originは、
よそのサイトのXHRから呼び出し可能なAPIを提供してる時はつけるべきだが、
よくわかってない人が、自サイトの掲示板でつけてしまった場合、
悪意あるサイトにアクセスするだけで、CSRFが成立して、犯罪予告を書いてしまったりする。
2020/05/11(月) 04:19:24.53ID:VLhDUqRop
955デフォルトの名無しさん (アウアウエー Sa52-1T3V)
2020/05/21(木) 20:00:19.93ID:yfswt4qEa ファンキーさが足りないね
2020/05/21(木) 20:50:27.91ID:HuNUoNoV0
CORS は、ブラウザでアクセスする人を保護するもの。
サーバー経由にすれば、クロスドメインでもアクセスできる
自分のPC にサーバーを立てて配信する、一番簡単な方法は、
VSCode の拡張機能のLive Server
サーバー経由にすれば、クロスドメインでもアクセスできる
自分のPC にサーバーを立てて配信する、一番簡単な方法は、
VSCode の拡張機能のLive Server
2020/05/22(金) 02:32:27.59ID:1xmyMtu40
肝はあくまでもブラウザの機能ってところだな
それに頼って無策ではいけないよ
実行前最後のプロセスで再ログイン求めるとかやるべき対策はちゃんとやる
それに頼って無策ではいけないよ
実行前最後のプロセスで再ログイン求めるとかやるべき対策はちゃんとやる
958デフォルトの名無しさん (ワッチョイ 5bf1-D4L3)
2020/05/26(火) 12:57:20.59ID:DWJQ5IJN0 <?php
の閉じタグをそれが文末にくるときは省略が奨励されてるのは
どういう理由からですか?
の閉じタグをそれが文末にくるときは省略が奨励されてるのは
どういう理由からですか?
2020/05/26(火) 16:21:28.80ID:aOYHLQ64M
2020/05/26(火) 17:00:18.40ID:Be8LwKLh0
あれそうだったの?
閉じた直後の改行コードもNG?
>[改行]
[改行]
[EOF]
じゃなくて
>[改行]
[EOF]
もダメで、
>[EOF]
じゃないとダメだとか?
閉じた直後の改行コードもNG?
>[改行]
[改行]
[EOF]
じゃなくて
>[改行]
[EOF]
もダメで、
>[EOF]
じゃないとダメだとか?
2020/05/26(火) 19:29:00.77ID:aOYHLQ64M
>>960
閉じた直後の改行はおk
閉じた直後の改行はおk
2020/05/26(火) 19:30:28.09ID:jhkc2VSZ0
閉じタグ直後の改行1つだけは例外だが閉じない方がミスを減らせる
2020/05/26(火) 19:39:01.88ID:J1Rp1kon0
ドハマりしたなあ
2020/05/26(火) 20:04:54.09ID:vo31pS1W0
何故ダメなのかその理由が理解出来ないと
「閉じタグを付けるな」が一人歩きしそう
「閉じタグを付けるな」が一人歩きしそう
2020/05/26(火) 20:40:57.98ID:7EF4fRQa0
マニュアルにも明記されてるんだよなぁ
https://www.php.net/manual/language.basic-syntax.phptags.php
ぶっちゃけ紛らわしいので"PHPだけ書くなら"閉じタグを付けるなでいいじゃろ
https://www.php.net/manual/language.basic-syntax.phptags.php
ぶっちゃけ紛らわしいので"PHPだけ書くなら"閉じタグを付けるなでいいじゃろ
2020/05/26(火) 20:47:29.05ID:aOYHLQ64M
short_open_tag はデフォルト On にしてほしい
2020/05/26(火) 21:01:26.17ID:Be8LwKLh0
>>961
なるほどthx!
なるほどthx!
2020/05/26(火) 22:08:09.51ID:vo31pS1W0
逆に言えば、
"PHPを埋め込みで使うなら"閉じタグは必須ってことだな
いちいちそんな判断するなら、付けておけば安心
"PHPを埋め込みで使うなら"閉じタグは必須ってことだな
いちいちそんな判断するなら、付けておけば安心
2020/05/26(火) 23:31:42.74ID:7EF4fRQa0
捻くれてんなぁ
2020/05/26(火) 23:37:24.18ID:f5esX2180
IDE使ってたらその辺の面倒見てくれるんじゃないの
2020/05/27(水) 00:30:46.50ID:/hEgymZm0
埋め込みで使う時に閉じタグを書かないってのが不可能なわけで。
972デフォルトの名無しさん (ワッチョイ 51f1-Jx8k)
2020/05/28(木) 23:49:50.69ID:rxZlNEYS0 ENT_QUOTESのENTとは何の英単語の略でしょうか?
2020/05/29(金) 00:53:17.52ID:laUVUDFGr
>>972
エンティティ
エンティティ
974デフォルトの名無しさん (アウアウエー Sa23-hNtB)
2020/05/30(土) 19:49:27.83ID:556K1q3ea なんで汎用性のある言語はCでできてPHPではできないの?
2020/05/30(土) 20:00:27.98ID:bnqGe2Mx0
特定言語で出来て、他の言語で出来ない事なんてそんなにない
2020/05/30(土) 20:08:51.95ID:5AFCcPcpd
>>974
PHPからWin32やLinuxのシステムコールを呼び出す方法が面倒だし、コスト最小ではないから、C/C++が優位。
PHPからWin32やLinuxのシステムコールを呼び出す方法が面倒だし、コスト最小ではないから、C/C++が優位。
2020/05/30(土) 20:12:53.11ID:5AFCcPcpd
例え、PHPで汎用言語を作ったとしても、PHPの実行時モジュールが邪魔なコストになる。
2020/05/30(土) 20:22:04.21ID:bnqGe2Mx0
Win32やLinuxのシステムコールを呼び出す方法は
どの言語でも面倒くさいだろう
どの言語でも面倒くさいだろう
2020/05/30(土) 21:18:51.46ID:Ef5WX5UN0
高級言語であればあるほど向いてない
2020/05/31(日) 14:51:06.35ID:DtypBXIf0
「汎用性のある言語」の意味するところが分からんとなぁ
「CでできてPHPではできない」も, 「汎用性のある言語」をCやPHPで実装する話なのか, CやPHP自体の汎用性の話なのか分からん
前者なら別にどっちでも書けるけどコンパイルするなら最終的にセルフホスティングするだろうし仮想マシンやインタプリタで実行するなら処理系の速度が重要だからCが選ばれるだろう
後者ならCだって何でも出来るのは確かだけど, 低レベルプログラミングには向いてても例えばWebアプリケーション開発には向いてない
Cは汎用的な「システムプログラミング言語」で, PHPは(今は)汎用的な「スクリプト言語」だからそもそも目的が違うとしか
「CでできてPHPではできない」も, 「汎用性のある言語」をCやPHPで実装する話なのか, CやPHP自体の汎用性の話なのか分からん
前者なら別にどっちでも書けるけどコンパイルするなら最終的にセルフホスティングするだろうし仮想マシンやインタプリタで実行するなら処理系の速度が重要だからCが選ばれるだろう
後者ならCだって何でも出来るのは確かだけど, 低レベルプログラミングには向いてても例えばWebアプリケーション開発には向いてない
Cは汎用的な「システムプログラミング言語」で, PHPは(今は)汎用的な「スクリプト言語」だからそもそも目的が違うとしか
981デフォルトの名無しさん (ワッチョイ 1689-K9ci)
2020/06/03(水) 09:41:53.03ID:Dz3eZEWL0 質問いいでしょうか?
ローカル環境で動かしています。
昨日macのOSを更新したところ、USBからのデータの取得ができなくなりました。
Warning: file_get_contents(URL): failed to open stream: Operation not permitted
対応方法をご存知の方がいらっしゃいましたら教えていただけると幸いです。
URLの打ちミスやphp.iniの「allow_url_fopen = On」も確認済みです。
macOSはバージョン10.15.5です。
ローカル環境で動かしています。
昨日macのOSを更新したところ、USBからのデータの取得ができなくなりました。
Warning: file_get_contents(URL): failed to open stream: Operation not permitted
対応方法をご存知の方がいらっしゃいましたら教えていただけると幸いです。
URLの打ちミスやphp.iniの「allow_url_fopen = On」も確認済みです。
macOSはバージョン10.15.5です。
982デフォルトの名無しさん (ワッチョイ 15f1-GwrY)
2020/06/03(水) 10:12:12.14ID:/BExPaqE0 >> 981
だめだ
質問の許可を確認してからしたまえ
だめだ
質問の許可を確認してからしたまえ
2020/06/03(水) 10:24:20.75ID:jHJSY4FJ0
どの窓口に並べば良いんでしょうか?
2020/06/03(水) 20:16:47.05ID:HabAm56lr
Htmlタグとphpが混在するとソースコードが
見づらく感じるのですが、なにかいいコツはないものでしょうか
見づらく感じるのですが、なにかいいコツはないものでしょうか
985デフォルトの名無しさん (ワッチョイ 15f1-GwrY)
2020/06/04(木) 01:20:43.78ID:OPvY9Lkv0 >>984
コツコツがんばるんだ
コツコツがんばるんだ
2020/06/04(木) 01:21:34.69ID:II78yWAWd
>>984
WordPress使おうよ
WordPress使おうよ
2020/06/04(木) 01:38:03.72ID:ZQetHFOna
>>984
テンプレートエンジンを使ってみては?
テンプレートエンジンを使ってみては?
2020/06/04(木) 05:17:00.76ID:TkjFvET+0
今思いついたが、<?php ?>の前後に改行2つ入れると、見やすくなる気がする。
2020/06/04(木) 13:31:57.31ID:O8iG8kTh0
2020/06/04(木) 13:39:52.83ID:Rfl/DppQM
PHPそのものがテンプレートエンジンみたいなものじゃん
2020/06/04(木) 18:09:53.35ID:5+4XWaYg0
ありがとうございます。
改修なんで選択の余地はないです。
あと、cakephpというフレームワークは
マイナーなんですか?
改修なんで選択の余地はないです。
あと、cakephpというフレームワークは
マイナーなんですか?
2020/06/04(木) 18:11:07.81ID:ph5uM4S6r
マイナーではないけどLaravelにしといたほうがいい
2020/06/04(木) 19:30:46.27ID:O8iG8kTh0
>>991
日本では一番メジャー(だった)
今はLaravelが強いけど
昔からCake使ってる人はテンプレエンジンを使わない傾向があるかな
Cakeにも載せる事はできるんだけどね
Laravelには始めからBladeっていうテンプレートエンジンがついてる
日本では一番メジャー(だった)
今はLaravelが強いけど
昔からCake使ってる人はテンプレエンジンを使わない傾向があるかな
Cakeにも載せる事はできるんだけどね
Laravelには始めからBladeっていうテンプレートエンジンがついてる
2020/06/05(金) 10:12:29.56ID:DlwrMm/y0
995デフォルトの名無しさん (ワッチョイ 15f1-GwrY)
2020/06/05(金) 13:01:16.90ID:td6kQI8l0 なぜ人はMacBookProをすすめるのですか?
わたしはずっとWindows使いで新たな学習コストを消費したくないのですが。
わたしはずっとWindows使いで新たな学習コストを消費したくないのですが。
2020/06/05(金) 13:04:55.57ID:BhXHxLMP0
・デバイスとして高品質、見た目も良い
・高解像度ディスプレイが標準のモデルが多い
・デュアルブートが可能で環境選択の幅が広がる
こんなとこじゃない?
使いたくないなら使わなきゃいいじゃん。
学習コストが~とか言って無駄な書き込みしてる時間的コストはどうでもいいのかな?
・高解像度ディスプレイが標準のモデルが多い
・デュアルブートが可能で環境選択の幅が広がる
こんなとこじゃない?
使いたくないなら使わなきゃいいじゃん。
学習コストが~とか言って無駄な書き込みしてる時間的コストはどうでもいいのかな?
997デフォルトの名無しさん (ワッチョイ 15f1-GwrY)
2020/06/05(金) 13:10:00.56ID:td6kQI8l0 Windowsでも同じ条件を満たしてるじゃないか。
998デフォルトの名無しさん (ワッチョイ 15f1-GwrY)
2020/06/05(金) 13:11:25.62ID:td6kQI8l0 Macは滅びたほうがいい。
使っている人といない人が混在したら互換性の問題が甚大になる。
使っている人といない人が混在したら互換性の問題が甚大になる。
2020/06/05(金) 13:51:16.73ID:BhXHxLMP0
そうなるといいね。
ただ、実現性の薄い可能性に思いを巡らす想像コストwに配慮しつつ
自分のやりたいことに戻った方がいいよ。
ただ、実現性の薄い可能性に思いを巡らす想像コストwに配慮しつつ
自分のやりたいことに戻った方がいいよ。
1000デフォルトの名無しさん (ワッチョイ 15f1-GwrY)
2020/06/05(金) 14:20:12.90ID:td6kQI8l0 ↑この人ハゲ!
10011001
Over 1000Thread このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 554日 21時間 11分 27秒
新しいスレッドを立ててください。
life time: 554日 21時間 11分 27秒
10021002
Over 1000Thread 5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。
ニュース
- 【文春】《記事予告》国民的女優&人気俳優 不倫スクープ第2弾 ★5 [Ailuropoda melanoleuca★]
- インド軍が係争地のパキスタン側に攻撃 26人犠牲テロへの報復 [七波羅探題★]
- 若年層も注意「人や物の名前が出てこない」もしかしたらスマホ認知症かも…原因は「スマホの使い過ぎ」 [七波羅探題★]
- 米価高騰が日本人のコメ離れに拍車かける 茶わん1杯のごはんは4枚切り食パン1枚より高額の時代 ★4 [首都圏の虎★]
- アイヌに対する差別偏見“見聞きしたことある”回答の1割 政府 [香味焙煎★]
- 【サッカー】UEFA-CL準決勝第2戦 インテル×バルセロナ [久太郎★]
- 大阪万博+57000 [931948549]
- 中国人「日本生活で必須のアプリがこちらです」→ジャップ製が一つもないと話題にwwwwwwwwwwwwwwwww [271912485]
- は!か!た!の!
- 大谷10号同点ホームランwwwwwwwwwwwwww [312375913]
- 「45歳だけど、大学に行って勉強し直そうと思う」 なぜかこれが日本だと笑われる件。おかしくないか?この国 [377388547]
- 財政難で閉鎖直前だった天文台、名探偵コナン効果で来場者激増、寄付金急増 [606757419]