◎正当な理由による書き込みの削除について:      生島英之とみられる方へ:

【PHP】下らねぇ質問はここに書き込みやがれ 10 ->画像>16枚


動画、画像抽出 || この掲示板へ 類似スレ 掲示板一覧 人気スレ 動画人気順

このスレへの固定リンク: http://5chb.net/r/tech/1543392526/
ヒント:5chスレのurlに http://xxxx.5chb.net/xxxx のようにbを入れるだけでここでスレ保存、閲覧できます。

1デフォルトの名無しさん (ワッチョイ cfe8-+65u)
2018/11/28(水) 17:08:46.02ID:Nb5yTkdM0
PHPに関する質問スレです

前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 9
http://2chb.net/r/tech/1513760420/

次スレは>>980以降
本文の1行目に以下を追加すること
!extend:on:vvvvv:1000:512
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
2デフォルトの名無しさん (ワッチョイ 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
3デフォルトの名無しさん (ワッチョイ ff9f-zhOP)
2018/11/28(水) 23:49:26.47ID:9Jzc2TOo0
下痢が出そうで出ないのですがどうすればよいでしょうか?
お腹が下らないんです
4デフォルトの名無しさん (ワッチョイ 9ad2-TWbZ)
2018/11/29(木) 01:17:40.41ID:fezToc6/0
>>3
本屋に行け
5デフォルトの名無しさん (ワッチョイ 76ef-C0zt)
2018/11/30(金) 07:00:27.66ID:EXc3g5vT0
class FriendList implements IteratorAggregate{
private $list=[];
public function getIterator():Traversable
6デフォルトの名無しさん (ワッチョイ 76ef-C0zt)
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部ですか?
7デフォルトの名無しさん (ワッチョイ 76ef-C0zt)
2018/12/02(日) 15:51:21.58ID:JoV96n8f0
>>6
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
9デフォルトの名無しさん (ワッチョイ 47e9-o5Pc)
2018/12/04(火) 13:06:18.62ID:lEYKJ99g0
>>8
そんなの自分次第なんだし好きにすれば?

コード読んでみたけど
同じIPが連続した時のみカウントしないようにはなってるが
あんま意味ないなこれw

クッキー食わせて指定時間以内ならカウントしないとかなら
ちょっとした改造でできるんだしやってみれば?
10デフォルトの名無しさん (ワッチョイ d3ab-ineF)
2018/12/06(木) 12:15:37.67ID:m4YfQK1J0
Symfony2に関しての質問です。
EC-CUBEのプラグインを開発しているのですが、
例えば、管理画面の会員登録にradioを置きたいのですが、
どうやってフックすればいいのか、よく理解できていません。
というか、Hello Worldに到達できていません。

何かいい解説サイトとかないでしょうか?
11デフォルトの名無しさん (ワッチョイ 939f-n9Ol)
2018/12/06(木) 23:33:16.69ID:O2YT1bAS0
鼻の穴に入れたらそのまま頭の上まで通すんだよ
12デフォルトの名無しさん (ワッチョイ dbef-n9Ol)
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を作ってしまう、ということなのでしょうか?
13デフォルトの名無しさん (ワッチョイ 4b9f-fJDm)
2018/12/08(土) 07:56:43.69ID:fWle4nJW0
unsetしたら無くなる
returnの行で
$x=0;$x=$x+1;
をしてる
return ++$y;
ならどうなんだろうね
14デフォルトの名無しさん (ワッチョイ 5bd5-rcbP)
2018/12/08(土) 10:05:40.16ID:yelb6oUt0
>>12
最後にもう一度 print $x; をやってごらんよ
15デフォルトの名無しさん (ワッチョイ 01ab-n9Ol)
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させず、
特別な取り扱いをさせている、ということなのですね
16デフォルトの名無しさん (ワッチョイ 81b3-xqdQ)
2018/12/08(土) 12:13:49.89ID:iKq5+OXH0
>> 12
これ、notice 発生するでしょ。
学習時は、そういうの気にしたほうが良いですよ。

グローバルに使うケースなんてあまりないから、マニュアル見る良いきっかけにはなったけどw
17デフォルトの名無しさん (ワッチョイ dbef-n9Ol)
2018/12/08(土) 22:24:20.62ID:LXRFdUog0
>>13
>>14
>>15
>>16

皆様ありがとうございました。
最後にprint $xをすると、結果10になります。
関数内の$xと外の$xは別の値を参照してるのですね。
noticの部分も見逃さずに調べる癖を付けようと思います。
どうもありがとうございました。
18デフォルトの名無しさん (ワッチョイ b9e9-xqdQ)
2018/12/10(月) 12:14:54.37ID:5+iaWJW90
>>17
>>16も書いている通り
return ++$x; の行で
Notice: Undefined variable
というエラーが発生するので、そもそもコードとしておかしい

php.iniの設定で
error_reporting = E_ALL
display_errors = On
を指定してエラーを全部見る癖をつけよう

どうしてもphp.iniの設定を変えられないならスクリプトの先頭で
error_reporting(E_ALL);
ini_set('display_errors', 1);
を宣言

これやらずに勉強しても意味ないと思え
それぐらい重要
19デフォルトの名無しさん (ワッチョイ dbef-n9Ol)
2018/12/10(月) 21:59:19.28ID:C/CCdKQw0
>>18
何冊かテキスト買って読んでいるのですが
初めて教えてもらえました。
今後、是非、そのコードを入れて
エラーに慣れていこうと思います。
ありがとうございました。
20デフォルトの名無しさん (ワッチョイ b9e9-xqdQ)
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 のレベルを下げると書いてるものがたまにあるが
※大間違いなので真似しないよう
21デフォルトの名無しさん (ワッチョイ 3b5f-JWqu)
2018/12/15(土) 17:50:00.18ID:jezVqobh0
小数点8桁を含むjsonをjson_decodeすると6桁に丸められて出力されるわこれ

どうしたらいいんだ。。
22デフォルトの名無しさん (ワッチョイ 1aa5-UKyl)
2018/12/16(日) 00:15:00.03ID:QyRtehwq0
http://codepad.org/L6rRjLC4
23デフォルトの名無しさん (ガックシ 06ff-ppkv)
2018/12/17(月) 10:59:38.41ID:S8NIVwif6
Laravelwwwwwwwww
24デフォルトの名無しさん (ワッチョイ 8a9f-UKyl)
2018/12/19(水) 00:15:29.67ID:kru7p0rZ0
・我慢する
・妥協する

好きな方を選んでいいぞ
25デフォルトの名無しさん (ワッチョイ 6d9b-1vVt)
2018/12/22(土) 23:51:36.73ID:uVsSh1bK0
age
26デフォルトの名無しさん (ワッチョイ 9bef-q1e7)
2018/12/23(日) 09:55:59.13ID:imRge5LT0
laravelに関する質問って、どこですればいいですか?
27デフォルトの名無しさん (オッペケ Sr61-2x0a)
2018/12/23(日) 11:05:13.96ID:1KLFWUpKr
Web板にある
28デフォルトの名無しさん (スププ Sd43-hgre)
2018/12/23(日) 11:08:44.03ID:I9bN9e1Bd
symfony2は?
29デフォルトの名無しさん (オッペケ Sr61-2x0a)
2018/12/23(日) 12:02:07.91ID:1KLFWUpKr
同じくWebProg板にある
30デフォルトの名無しさん (ワッチョイ 6d9b-1vVt)
2018/12/23(日) 18:02:34.43ID:zMRMmtKp0
webprogのphpスレは初心者お断りみたいだから
このスレで質問したほうがいいけど
初心者お断りスレじゃなければwebprogの該当スレでいいんじゃね

age
31デフォルトの名無しさん (ワッチョイ 3598-E+HT)
2018/12/23(日) 19:28:28.95ID:dJkVsi530
エディタの配色テーマによっては、下記のようなスラッシュで囲んだ文字列がエラーっぽい色で表示されるんですが
書き方が間違っているんでしょうか?

$var = '/string/';
32デフォルトの名無しさん (ワッチョイ 43a5-q1e7)
2018/12/23(日) 20:41:01.87ID:erEBm9IL0
preg_matchとかの正規表現だと判断されてるとかかな?
33デフォルトの名無しさん (ワッチョイ 3598-E+HT)
2018/12/23(日) 21:28:49.02ID:dJkVsi530
>>32
正規表現も値によっては色が変わったので、それかもしれません。
ありがとうございました
34デフォルトの名無しさん (ワッチョイ e3ab-hgre)
2018/12/23(日) 22:14:03.14ID:C6NZW+q00
EC-CUBE3の質問って、ここでいいの?
35デフォルトの名無しさん (ワッチョイ 9bef-q1e7)
2018/12/24(月) 14:10:57.93ID:233xwMnJ0
>>30
ありがとうございます。
@slot と @includeの違いについてなのですが、
@slotは、@endslopまでの範囲の記載内容をテンプレの変数に割り当て
@includeでは、連想配列をつかって、テンプレ側でキーに対応する値を表示させる、ということのようですが、
結果的に同じような役割のように思えます。
決定的な違いって何なのでしょうか?
36デフォルトの名無しさん (ワッチョイ 6d9b-KoXC)
2018/12/25(火) 01:56:48.71ID:NrxUWHxX0
機能的な違いはない
htmlタグを含む場合はslotのほうが見やすい(書きやすい)


と誰かが言ってた
37デフォルトの名無しさん (ワッチョイ 9bef-q1e7)
2018/12/25(火) 06:51:17.65ID:+RHRyNBd0
ありがとうございました!スッキリしました!
38デフォルトの名無しさん (ワッチョイ 8998-sNPY)
2018/12/29(土) 02:00:22.36ID:qNy1dmrU0
larabelを使ってます。
その機能でオートローダーのスタティックを利用してます。
useしてnewするのは不要にってます

一方、larabelにはdi機能というのもあるようです。
どちらもnew不要ですがどちらの使い分けとかパターンわけなど何か使い分けるヒントをお願いします
39デフォルトの名無しさん (オッペケ Sr75-ledV)
2018/12/29(土) 17:02:58.05ID:CFGewoy6r
class作るとき必ずinterfaceって作るものなの?
40デフォルトの名無しさん (ワッチョイ 99f0-xhm2)
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している理由は、何かあるのでしょうか?
41デフォルトの名無しさん (オッペケ Src5-IAsy)
2019/01/08(火) 21:29:14.91ID:IOloucApr
>>40
ララベルの仕様をみてsetContentはなんと書いてあるの?
42デフォルトの名無しさん (ワッチョイ 99f0-xhm2)
2019/01/09(水) 11:51:40.20ID:rfEx/2+M0
>>41
ありがとうございます。
setContentは、Responseでクライアントに戻すHTMLソースが格納されてます。
HTMLソースを返すのなら、return $htmlを返しても同じなのかな、と思いまして質問しました。
43デフォルトの名無しさん (ワッチョイ fb8c-6SQQ)
2019/01/09(水) 18:55:24.82ID:MSH+15Q+0
掲示板作ってるんだけど、更新すると連投しちゃうのを防ぎたいんだけどどうすればいい?
POSTの中身を消して分岐させるとかイメージでいいの?
44デフォルトの名無しさん (ワッチョイ 734d-xhm2)
2019/01/09(水) 19:52:02.31ID:4rDfBKqR0
>>43
登録後にブラウザの更新ボタンが押されると送信済みのPOSTデータが再送信され結果2重登録してしまうって事だよね?

なら↓のやり方でどうか
 画面アクセス毎にセッションにランダム文字列を保存&出力htmlに<INPUT type="hidden">で保存した文字列を埋め込む
 登録処理時、セッションに文字列が無い場合やPOSTされた文字列とセッションに保存された文字列が一致しない場合はNGとする
45デフォルトの名無しさん (ワッチョイ d6a7-ae4N)
2019/01/10(木) 12:14:58.77ID:DtkiUTJR0
戻って更新なら連投の可能性もわかるけど
ただの更新でなんでそんな状況になるのか
46デフォルトの名無しさん (ワッチョイ ce46-VK1S)
2019/01/10(木) 21:45:56.88ID:W9NULntl0
投稿内容をどこに保存しているかによるけれど
Requestに保存されてるんだからって言えばいい?
47デフォルトの名無しさん (ワッチョイ d6a7-ae4N)
2019/01/11(金) 00:52:34.47ID:Tbw1O8r40
indexから同じindexにpostしてindexで更新してるってことかな?
普通はpost用のコントローラに渡して実行後にindexにリダイレクトするから
戻るおさん限りは更新しても問題にはならんと思うのだけど
チャットほどじゃないにせよリロードが出来ない掲示板なんて…
まあ手動じゃなくて更新データはスクリプトで非同期でとってくりゃいいけど
サーバでどうにかなればプッシュすれば利便性もUP
48デフォルトの名無しさん (ワッチョイ a5f0-VK1S)
2019/01/11(金) 09:10:05.09ID:5Sr7Z6Dc0
ディベロッパーツールで確認してごらんよ
POSTつかってリロードするとブラウザ内でPOST情報がどうなっているか
49デフォルトの名無しさん (ワッチョイ ce8c-1FXn)
2019/01/11(金) 18:16:54.21ID:0MVnI2bb0
>>43
同じ掲示板にジャンプして書き込まれたPOSTの中身を確認してテキストに保存してって感じで作ってる
でもtime変数使ってページ読み込んだ時とボタン押されたときの変数で一致したら書き込むって感じでやってみるわ
50デフォルトの名無しさん (ワッチョイ 5594-O5RA)
2019/01/11(金) 18:35:21.28ID:5tFH3fBo0
POST後はLocationでリダイレクトしちゃうな
51デフォルトの名無しさん (オイコラミネオ MM3d-P9+q)
2019/01/11(金) 22:43:36.05ID:4vkkoNusM
>>50
それよりは「戻る」にも対応できる >>49 の方法の方が利点があるんじゃね
52デフォルトの名無しさん (ワッチョイ d62c-NvUN)
2019/01/12(土) 00:51:32.95ID:IAz54C400
Rails など、普通のフレームワークの作り方では、
Post したら別の画面、一覧画面などに移動する

ルーティング(routes.rb)に、CRUD が定義されている。
追加(C)・更新(U)されたら、一覧(R)に戻る

一覧に戻ると、追加・更新されたのを見れる
53デフォルトの名無しさん (ワッチョイ d6a7-ae4N)
2019/01/12(土) 08:15:39.30ID:9TmqbdMf0
戻るに対応するなら
セッションでトランザクション処理のようなことをやればいいだけだけど
更新するだけで連投されるなんていうミラクル仕様に突っ込んでるだけで
それとこれは話が別よ
54デフォルトの名無しさん (ワッチョイ 16da-aYY/)
2019/01/12(土) 11:26:47.84ID:dtC7PwsV0
>>49
俺が作った掲示板は、if($投稿された文章==='保存したテキスト')die('二重投稿です')ってやってる
要するに重複チェック
55デフォルトの名無しさん (ワッチョイ 715f-RNo8)
2019/01/12(土) 11:47:59.75ID:JRnnmwIl0
他人のファイルに書き込みたいのですが、うまくいきません。

<?php
$file = 'http://2chb.net/r/tech/1543392526/l50';
file_put_contents($file, 'shine');
?>

なぜでしょうか?
56デフォルトの名無しさん (ワッチョイ a5f0-VK1S)
2019/01/12(土) 11:55:12.21ID:wHUCWNv00
phpの質問をお願いします

class HelloRequest extends FormRequest
57デフォルトの名無しさん (ワッチョイ a5f0-VK1S)
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のクラスの継承図のようなものってどこかにありますか?
58デフォルトの名無しさん (ワッチョイ d6a7-ae4N)
2019/01/12(土) 13:04:51.50ID:9TmqbdMf0
>>55
file_put_contentsは使わないけどそれ以前にPOSTする為のパラメーターが足りてない
どういうことか理解できるならstream_context_createのページ見てみればいい
それ踏まえて方法はいくつかあるがcURLが一般的なので「PHP cURL POST」でググればいいよ
59デフォルトの名無しさん (ワッチョイ d6a7-ae4N)
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
60デフォルトの名無しさん (アークセー Sx85-d2bj)
2019/01/12(土) 21:14:39.18ID:zfAqW2URx
cakephp 2

find x3回

(unbind, find) x3回
にしたら8倍速くなった

やってること合ってる?
61デフォルトの名無しさん (ワッチョイ 715f-RNo8)
2019/01/13(日) 01:34:59.40ID:mcoRrcQP0
超くだらない質問なんですが
PHPにパスワードを保存しようと思うのですが
PHPのソースコードが読まれないか心配です
いちおうブラウザからはソースを選択しても表示されないのですが
もしかしたら何らかの方法で読まれる可能性もありそうで
心配で寝れません
教えて下さい
お願いします
62デフォルトの名無しさん (ワッチョイ 5594-VK1S)
2019/01/13(日) 04:56:00.12ID:5HRwOXUS0
環境変数で入れるかせめてハッシュ化する
63デフォルトの名無しさん (ワッチョイ d6a7-ae4N)
2019/01/13(日) 07:19:52.26ID:vFHHKg450
パスワードをスクリプトから分離して
phpからは参照出来るが外から直接参照できないとこ(ドキュメントルートの上とかDBとか)に置く
ファイルに保存するならファイル名は.htを先頭につけるといい
パスワードはハッシュ化しておく
これらが有効なのは放置してサーバの仕様変更に気づかなかったり(php廃止とか)
設定ミスってphpをtxtとして配信してしまうようなケースのみ
そのへんに問題なくてphpのソースコードが見られてしまうような場合は
もう何もかもがだめなことが多いので心配するだけ無駄だわ
64デフォルトの名無しさん (ワッチョイ ce46-VK1S)
2019/01/13(日) 10:01:59.70ID:c0Flhv7n0
>>59
わざわざありがとう
今日は時間が取れそうなのでちょっとしらべてみます

みなさんはどんなフレームワーク使ってますか?
65デフォルトの名無しさん (オッペケ Sr85-DIji)
2019/01/13(日) 12:25:48.51ID:e78RN+cdr
Laravel使いたいのに絶対にcakePHP!!と言われて仕方なくそっちでやってる
66デフォルトの名無しさん (ワッチョイ 0a4b-VK1S)
2019/01/14(月) 07:36:31.79ID:qdlB9M7a0
すみません、助けてください

Vagrantが警告出てインストール出来ない環境って
何が問題なんでしょうか?
インストールが強制終了されます

バージョンは最新です
何が邪魔してるのでしょうか?

【PHP】下らねぇ質問はここに書き込みやがれ 10 	->画像>16枚
67デフォルトの名無しさん (オッペケ Sr85-DIji)
2019/01/14(月) 11:20:16.98ID:WRAeIDjcr
知らん
てか普通は作ったサポートに聞くだろ
なんで関係ない他人に聞くんだよ?
68デフォルトの名無しさん (ワッチョイ 5594-O5RA)
2019/01/14(月) 12:39:08.03ID:Wx7rBQ7H0
PHPの質問でもないしなぁ
69デフォルトの名無しさん (ワッチョイ ce46-VK1S)
2019/01/14(月) 21:58:11.38ID:mB9ZyxQs0
>>65
ありがとうございます!

cakePHPもフレームワークで優れていると
買った教材に書いてありました
今後とも、色々ご指導お願いします!
70デフォルトの名無しさん (ワッチョイ b34b-fAiL)
2019/01/17(木) 02:54:30.64ID:PVRvfBHL0
今でも使えるリファレンス本って何があるのでしょうか?
出版されてるものって古いですけど使えます?
71デフォルトの名無しさん (オッペケ Sr1d-M666)
2019/01/17(木) 11:02:45.61ID:oOFYk3pkr
phpはほぼ変わってないからよほど古くない限りどれでもいいからさっさとやれ
72デフォルトの名無しさん (ワッチョイ 11f0-fAiL)
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();
7372 誤爆すみません (ワッチョイ 11f0-fAiL)
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
マイグレーションで作成したテーブルにデータが登録できないのはなぜなのでしょうか?よろしくお願いします。
7473 (ワッチョイ 11f0-fAiL)
2019/01/22(火) 16:28:02.93ID:+epunpvy0
すみません、なんだか分かりませんでしたが自己解決しました。
お騒がせしました。
75デフォルトの名無しさん (ワッチョイ 9375-qnWR)
2019/01/23(水) 08:11:47.51ID:3lDydxt30
練習兼ねて小規模&少機能で簡単なネットショップを作ろうとしてるのですが、設計段階でファイルがごちゃごちゃになってしまいそうです
フォルダの作り方やファイルの分け方はどんな感じでやればスッキリ分かりやすくなりますかね?
76デフォルトの名無しさん (ワッチョイ 9101-F2Ks)
2019/01/23(水) 08:31:27.16ID:Kmczp3SP0
>>75
小規模でもフレームワーク使うのがいいよ
77デフォルトの名無しさん (ワッチョイ 9bca-xX+4)
2019/01/23(水) 09:34:11.34ID:PjIYOotT0
フレームワーク自体のメンテが厄介だから入れずに済むのであれば入れない方がいいよ
78デフォルトの名無しさん (ワッチョイ 9bbb-2w1z)
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,

ではなぜ代入されないのか、がわからず。教えていただけないでしょうか。
79デフォルトの名無しさん (ワッチョイ eb2c-AZji)
2019/01/23(水) 11:46:36.90ID:tAarVqiS0
よく知らないけど、
connect は、データソースへつなぐだけじゃないの?

SQL のselect みたいなものは無いの?
CRUD も検索して
80デフォルトの名無しさん (ワッチョイ 49ba-L3L3)
2019/01/24(木) 00:24:18.63ID:cPFOMtSZ0
$url = 'http://example.com/'+'/path/';
だと、途中に余分なスラッシュが入りますよね。
それを綺麗に整形してくれる関数や手法などはありますか?
81デフォルトの名無しさん (ワッチョイ 2ea7-iVxn)
2019/01/24(木) 19:50:20.26ID:kFfuye3h0
標準関数にズバリのものはないと思うけど探せば誰かコード書いてるはず
簡単なのでよければsubstr使うとか
parse_urlしたのを組み直すかそのあたりで
./../とかも考慮するならちょっと面倒になってくるが
82デフォルトの名無しさん (ワッチョイ 06ca-hLzx)
2019/01/24(木) 23:16:07.50ID:TFfQdKfR0
>>80
自分でパスを連結する関数を書いちゃうとかどうだろう?
その中では rtrim($path1, '/') . '/' . ltrim($path2, '/') を繰り返す感じ?
83デフォルトの名無しさん (ワッチョイ 8101-h/iE)
2019/01/24(木) 23:50:15.43ID:1L/prd7r0
/ の2個以上の連続を一つに置換する操作する処理を見かけたことあるなぁ。。。
あんまりきれいじゃない気がするけどw
84デフォルトの名無しさん (ワッチョイ 2e63-uJAn)
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上級者の人はどっちを使うのでしょうか?
理由も教えてけろ
86デフォルトの名無しさん (ワッチョイ 45f3-kHYM)
2019/01/26(土) 17:25:33.44ID:y5VTPiFL0
関数・・・・・カッコを付ける
言語構造・・・カッコを付けない

echo も include も言語構造。
迷ったらマニュアルの例文をコピペ。
87デフォルトの名無しさん (オッペケ Srf1-ZdbU)
2019/01/26(土) 17:57:25.92ID:WSFNrCYQr
phpの関数の戻り値って望む型の他にfalseも返ることがあるよね
そんで7からは戻り値の型宣言いれて戻り値の型が違ったらTypeError出す

もうごちゃごちゃだね
88デフォルトの名無しさん (ワッチョイ 2e63-uJAn)
2019/01/26(土) 18:18:29.92ID:HzZF0HWM0
言っていることがごちゃごちゃだってことは分かった
89デフォルトの名無しさん (ワッチョイ 2e2c-/4Fh)
2019/01/26(土) 18:58:01.87ID:exLOU4gz0
Ruby では、これだけで正常につながる

File.join 'http://example.com/', '/path/'
90デフォルトの名無しさん (ワッチョイ 4646-uJAn)
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を利用する意味は、何かあるのでしょうか?
もしあるのなら、その意味、意義を教えていただけないでしょうか?
よろしくお願いします。
91デフォルトの名無しさん (ワッチョイ 41f0-uJAn)
2019/01/29(火) 09:22:43.65ID:YbHXkxp70
$thisは自分自身のインスタンスからテーブル情報を取得
$queryはクエリビルダーを使ってテーブル情報を取得
92デフォルトの名無しさん (ワッチョイ 49ba-L3L3)
2019/01/29(火) 21:20:14.58ID:KhUtNVBn0
https://stackoverflow.com/questions/4366730/how-do-i-check-if-a-string-contains-a-specific-word
の5831の回答で、
if (\strpos($a, 'are') !== false) {
の部分ですが、if( の次のスラッシュは何ですか?
93デフォルトの名無しさん (ワッチョイ 2e2c-/4Fh)
2019/01/29(火) 21:54:10.57ID:AnpnZGSz0
そのサイトの下の方では、\ は付いていないから、気にしなくてよいのでは?

<?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:KhUtNVBn0
>>93
了解です、気にしません。
ところで、わざわざ !==falseで判定する理由は何ですか?
95デフォルトの名無しさん (ワッチョイ 2e2c-/4Fh)
2019/01/30(水) 00:01:17.63ID:T9WgAkKs0
Ruby には、偽がnil, false の2つしかないけど、
JavaScript, Python, PHP には、偽が10個ぐらいある

0, 0文字列、空配列とか、様々な可能性が排除できない。
少しでも表現を変えると、バグる

例えば、それをtrue に変えると、様々な偽の条件が存在してしまう。
0 の時とか、空配列とか

他の言語は、Rubyに比べて、バグる確率が高い
96デフォルトの名無しさん (ワッチョイ 311a-wD8z)
2019/01/30(水) 00:31:11.46ID:Xc33HHDg0
>>94
strposは0を返しうるから if (!strpos(...)) だと false が返ってきた(見つからなかった)のか 0 が返ってきた(先頭に見つかった)のか判別出来ない

http://php.net/manual/ja/function.strpos.php
の返り値の警告の部分
9795 (ワッチョイ 2e2c-/4Fh)
2019/01/30(水) 00:54:29.54ID:T9WgAkKs0
Ruby 以外の言語では、
!= など、普通の比較演算子では、偽が10個ぐらいあるから危険!

!== などの厳密比較演算子を使うべし!
98デフォルトの名無しさん (ワッチョイ 2ea7-UldQ)
2019/01/30(水) 06:04:31.07ID:Bo5lehOR0
>>92-93
名前空間指定してるだけ
phpの標準関数や内部クラスはすべて\の名前空間に属している
普通はわざわざ書かない
9998 (ワッチョイ 2ea7-UldQ)
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'));
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);
と書くと、特定の名前空間を絶対パスで指定出来るという理解で良いですか?
102デフォルトの名無しさん (ワッチョイ 2ea7-UldQ)
2019/01/30(水) 22:13:35.19ID:Bo5lehOR0
>>101
>どこかよその名前空間で定義されているstrposと言う意味ですか?
どこかっていうか標準関数のstrposことなんだけど
これはnamespace myで定義しなおした標準関数strposのラッパー関数
もしここで
>$retval = \strpos($haystack, $needle, $offset);
に\をつけないと自身のstrposをさしてしまうので
この関数自体は標準関数のラッパーに過ぎず実装を持たないので正しく動かない
へたしたら再帰処理でループに陥るのと同じ感じになってしまう
103デフォルトの名無しさん (ワッチョイ 2ea7-UldQ)
2019/01/30(水) 22:22:17.50ID:Bo5lehOR0
もう1つの質問に答えてなかった
>$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(){
   ・・・
  };
}
のように、名前空間に入れておくべきですか?
それとも名前空間無しにしておくほうが使い易いですか?
105デフォルトの名無しさん (アウアウエー Sa7f-Du1s)
2019/01/31(木) 14:50:10.17ID:87rKAAGWa
ユーザー定義関数の引数を変数にした時、渡された変数名も同じでいいんですよね?下の様に
でもいろんな説明みると変更してることが多いけどなんで?

function func($hoge){
・・・
}

func($hoge);
106デフォルトの名無しさん (ワッチョイ ff02-zZHK)
2019/01/31(木) 15:28:08.69ID:hjN211+T0
分けて考えてはいけないという誤解を与えないため
107デフォルトの名無しさん (ワッチョイ ffa7-BT/j)
2019/01/31(木) 15:28:24.41ID:rgWv2NOA0
>>104
名前空間を指定しないということは
標準関数や内部クラスと同じグローバルの名前空間(\)に属することになるので
もちろんコーディングする上での利便性はいい
名前空間が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の中だけで作業する為の関数で、
外部に公開したくない関数です。
109デフォルトの名無しさん (ワッチョイ 7f89-SDwV)
2019/02/06(水) 14:06:21.85ID:7EDRIJEy0
質問させてください。
配列で「りんご・バナナ・みかん・りんご・みかん・りんご」とあった場合、
これを「りんご1・バナナ1・みかん1・りんご2・みかん2・りんご3」
みたいに同じものが何個目かを書き加えたいのです。
どうやるといいしょうか?
110デフォルトの名無しさん (ワッチョイ 7f4d-S1Ul)
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);
111デフォルトの名無しさん (ワッチョイ 6ea7-FtKs)
2019/02/07(木) 09:46:48.28ID:zNwO6Ncy0
print_r(array_count_values($data));
でよくないすか?
112デフォルトの名無しさん (ワッチョイ 6ea7-FtKs)
2019/02/07(木) 09:47:44.44ID:zNwO6Ncy0
よく質問読んでなかったw
113デフォルトの名無しさん (ワッチョイ 46ca-mZWF)
2019/02/07(木) 11:09:21.09ID:YOzllYWE0
なんで宿題をやってあげちゃうの
114デフォルトの名無しさん (ワッチョイ 6e63-OF6d)
2019/02/07(木) 12:36:05.22ID:2KroeUTW0
暇だったからでは
115デフォルトの名無しさん (ワッチョイ 2de3-sQyl)
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
)
116デフォルトの名無しさん (ワッチョイ 0289-fard)
2019/02/08(金) 00:54:59.90ID:DKnzBuB20
>>110
返信が遅くなってしまいすみません。
うまくできました。
本当にありがとうございます。
117デフォルトの名無しさん (ワッチョイ e101-95g7)
2019/02/08(金) 01:23:31.06ID:1Q4bQ8+M0
phpでスクレイピングした文字列をmysqlのデータベースにInsertしたいのですが、ざっくりどういう風にやればよいでしょうか?
スクレイピング自体は出来ていて、ここからDBに挿入する方法が知りたいです。
よろしくおねがいします。
118デフォルトの名無しさん (オッペケ Srd1-da9w)
2019/02/08(金) 08:16:42.39ID:Waqd0NNdr
ざっくりいうとINSERTのSQL文を書けばいいんだよ
119デフォルトの名無しさん (オッペケ Srd1-NyVJ)
2019/02/08(金) 11:07:14.81ID:VEywR5okr

【PHP】下らねぇ質問はここに書き込みやがれ 10 	->画像>16枚
120デフォルトの名無しさん (ワッチョイ a275-Ctdi)
2019/02/08(金) 16:27:15.56ID:k5rPGxdZ0
サーバー側に数万枚の画像を保存する場合、数万枚を1つのフォルダに入れるのと、10000台、20000台のようにフォルダ分けしたほうがいいですか?
121デフォルトの名無しさん (アウアウカー Sa49-Se4R)
2019/02/08(金) 16:38:40.38ID:j4lUPneda
保存して何するかによるのでは?
122デフォルトの名無しさん (ワッチョイ a275-Ctdi)
2019/02/08(金) 16:57:55.31ID:k5rPGxdZ0
1ページに20件〜50件くらいサムネ表示したり、1ページに数枚表示したり
ネットショップのようなイメージ
123デフォルトの名無しさん (ワッチョイ fe02-q2E1)
2019/02/08(金) 18:04:35.54ID:1w1isakW0
フォルダ分けするとアクセス時間が短くなる場合が多い
124デフォルトの名無しさん (ワッチョイ 8646-OF6d)
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にならないのか、教えていただけないでしょうか><
どうか、よろしくお願いします。
125デフォルトの名無しさん (ワッチョイ 724d-OF6d)
2019/02/08(金) 22:44:50.24ID:SnO1YjyT0
$request->emaiにlが足りて無いとか?
126124 (ワッチョイ 8646-OF6d)
2019/02/09(土) 06:31:09.14ID:3JjKiGqr0
すみません。$request->emailです。
タイプミスはなくても、falseになります。
よろしくお願いします。
127デフォルトの名無しさん (ワッチョイ bd5f-DOJB)
2019/02/09(土) 10:15:38.13ID:lpNDR5cs0
他人のホームページを書き換えたいんでつけど
PHP使えば狩野でつか?
128デフォルトの名無しさん (ワッチョイ 6e63-OF6d)
2019/02/09(土) 10:38:25.62ID:LiyCmRY90
その他人が許諾しているなら、その他人に聞け
その他人が許諾していないなら、警察が聞いてくれる
129デフォルトの名無しさん (ワッチョイ 02f0-OF6d)
2019/02/09(土) 17:11:10.81ID:kXc/Z+zP0
何を書き換えたいんだろう?
HTML CSS JAVASCRIPT、それともフレームワークに依存?
PHP,CAKE,いろいろあるから、一概になんとも・・・
130デフォルトの名無しさん (ワッチョイ f988-pY/U)
2019/02/09(土) 18:20:17.39ID:koH3JFsI0
pearのサイトが死んでるんたがなんかあった?
131デフォルトの名無しさん (ワッチョイ 6e63-OF6d)
2019/02/09(土) 18:23:52.81ID:LiyCmRY90
>>130
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をとりだしてそこになにかを付け加えた場合に
元のリストに変更がそのまま反映されることを言ってます
取り出すっていう日本語の操作だといつ元に戻したのっておもうよね?
134デフォルトの名無しさん (ワッチョイ 6ea7-FtKs)
2019/02/10(日) 08:09:11.07ID:4xhMpHOb0
なんかぶっ飛んでる人がいますね
135デフォルトの名無しさん (ワッチョイ 8646-OF6d)
2019/02/10(日) 08:55:31.07ID:t3zAhvOs0
laravelに関する質問お願いします
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);
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になりました… なんででしょうか?
138デフォルトの名無しさん (ワッチョイ e101-feI+)
2019/02/10(日) 22:44:52.33ID:Bb8eA8KO0
勝手にリダイレクトされるのとめる方法ないですかね
139デフォルトの名無しさん (ワッチョイ 8646-OF6d)
2019/02/12(火) 06:18:45.22ID:4rvCbmwy0
ソースをたどっていけば
140デフォルトの名無しさん (アウアウウー Sa05-OF6d)
2019/02/13(水) 15:56:50.06ID:qcwaRdjDa
cronで実行しているPHPで不具合が出て調べているのですが、
php.iniでエラーログを指定していない場合、
コマンドラインからPHPを実行した時のエラーログってどこに出るのでしょうか?
apacheで実行した場合はapacheのエラーログに出るようですが
141デフォルトの名無しさん (ワッチョイ 9177-feI+)
2019/02/13(水) 17:21:57.25ID:6eI6oeOB0
http://php.net/manual/ja/errorfunc.configuration.php#ini.display-errors
142デフォルトの名無しさん (ワッチョイ 2702-wP4P)
2019/02/16(土) 03:56:24.05ID:p8v5qaF40
質問させていただきます

データベースにセッション保存するようにsessionhandlerinterfaceを作りました
session_set_save_handlerで該当のハンドラを指定したらちゃんとデータベースにも書き込めているのですが
あるサイト上の複数ページで統一的にこのデータベース利用のセッションを使うには
各ページでsession_startの前に毎回ハンドラ指定をする必要があるのでしょうか?
(テストしてみると指定しないとデフォルトのファイル利用のセッションが作られているようでした)

php.iniか何かの編集でそもそもデフォルトをデータベース利用のセッションにするということなしに
上手いやり方があるのであればお教えいただければ幸いです
どうぞよろしくお願いいたします
143デフォルトの名無しさん (ワッチョイ a761-8zyB)
2019/02/17(日) 12:12:25.21ID:vpvr2f070
>>140
cronから実行したプロセスは端末と結びついていないから、リダイレクト指定しなければただ閉じてる。
144デフォルトの名無しさん (アウアウウー Sa4b-yQ/S)
2019/02/17(日) 12:22:30.41ID:wSo27DN5a
>>141
ありがとうございます
デフォルトの設定だと標準エラー出力に出るんですね
log_errorsを使ってサーバ側のエラーログを出力先に指定することもできると
145デフォルトの名無しさん (アウアウウー Sa4b-yQ/S)
2019/02/17(日) 12:23:37.36ID:wSo27DN5a
>>143
なるほど
エラー出力をリダイレクトすればいいんですね
ありがとうございました
146デフォルトの名無しさん (ワッチョイ 5ff0-cT+3)
2019/02/18(月) 18:19:22.08ID:yhtTsT3P0
laravelに関する質問を受け付けていただけますと幸いです><

今まで使っていたcontroller(app/http/controllers/)が、突然使えなくなりました。
<現象>
上記パスのcontrollerを変更しても反映されない。
上記パスのcontrollerを削除しても、古いcontrollerの設定が生きてて、プログラム自体は従来どおり動く
なにか、他のパスに古いcontrollerが保存されていて、そっちを読んでいるような感じがする

という感じなのですが、何か改善する方法を教えてくださるかた、いらっしゃいませんでしょうか?
147デフォルトの名無しさん (ワッチョイ e73c-cT+3)
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'
--------------------
これと同じようなことはどのように実現しますか
148デフォルトの名無しさん (ワッチョイ 4714-XSOg)
2019/02/19(火) 17:39:51.40ID:z2WxkWjZ0
親クラスのprotectedプロパティに値を代入する時、
子クラス側にもプロパティを定義するものですか?
コーディングの一般的な作法や、可読性的な話です。
149デフォルトの名無しさん (ワッチョイ 7fa7-8zyB)
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);
 }
}
親クラスにこんなん入れて必要なときに参照すれば
少しはましになるんではないかと
150148 (ワッチョイ a514-8eq+)
2019/02/24(日) 02:45:30.45ID:yLdhIKyP0
>>149
遅くなりましたがレスありがとうございます
わざわざ子クラスにまで書く必要はなさそうですね
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
とか試したけどダメだったわ;
152デフォルトの名無しさん (ワッチョイ ff63-3oSp)
2019/03/05(火) 18:12:06.81ID:/9vlYliD0
>>151
"SELECT name FROM table WHERE name = '" . $hoge . "'"

これだと?
153デフォルトの名無しさん (ワッチョイ d79f-SKB1)
2019/03/05(火) 18:18:55.25ID:J7utTfUg0
>>152
ダメだった
154デフォルトの名無しさん (ワッチョイ d79f-SKB1)
2019/03/05(火) 18:23:39.10ID:J7utTfUg0
すまん環境の問題だった
155デフォルトの名無しさん (ワッチョイ ff63-3oSp)
2019/03/05(火) 18:24:11.90ID:/9vlYliD0
>>153
編集したSQLをファイルか画面に出力してみて
意図した編集ができてないとしか思えないな
156デフォルトの名無しさん (ワッチョイ ff63-3oSp)
2019/03/05(火) 18:55:38.74ID:/9vlYliD0
解決したようですね、良かったです
157デフォルトの名無しさん (アウアウウー Sa9b-Rc0K)
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という改行コードは存在するのでしょうか?
よろしくお願いします
159デフォルトの名無しさん (ワッチョイ 16a7-3PTc)
2019/03/07(木) 03:55:06.79ID:wQ6Vu2No0
改行を\n\rで保存したり取り扱うエディタが存在するかもしれないし
\r\nと勘違いして\n\rとか渡しちゃうかもしれないし
そんな人にも<br><br>と2つにはせずに<br>1つにしてくれる親切設計ってだけでは
160デフォルトの名無しさん (ワッチョイ d6da-DZHv)
2019/03/07(木) 08:24:12.22ID:2g7ZW4ya0
めんどくさい
CR絶滅してLFだけで統一してくれればいい
ありがとうございました
161デフォルトの名無しさん (ワッチョイ b7ba-/kwh)
2019/03/08(金) 15:30:59.07ID:yu/ETmP20
昔はCRとLFで機能使い分けてたみたいだけど、当時からほぼCR+LFの使い方が主流だったよね?
CRだけ使うなんて、同一行書き換え以外に使い道が思い浮かばない
162デフォルトの名無しさん (ワッチョイ 12f0-/kwh)
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 を閉じてしまってうまく動かせません。
なにか良い方法はありませんか?
163デフォルトの名無しさん (ガックシ 06de-McIj)
2019/03/08(金) 16:49:42.82ID:Ee+Y4rJr6
>>161
つMacintosh
164デフォルトの名無しさん (ワッチョイ 624d-/kwh)
2019/03/08(金) 18:05:06.32ID:aqheESZi0
>>162
laravel知らんけど↓でどう?
@if ($profile->u_sex) checked @endif
165デフォルトの名無しさん (ワッチョイ b7ba-/kwh)
2019/03/08(金) 18:15:43.51ID:yu/ETmP20
>>163
言葉足らずだったね。スマン。
OSによっての解釈の話ではなくて、本来のCR、LFの意味での話。

CRはキャリッジリターン(行頭復帰)、LFはラインフィード(行送り)。
元々タイプライター(テレタイプ)から来てると思うけど、PCにおいてそれぞれ片方だけ
使う事あったのかな?って話。

結局使わないからOSによって都合のいい解釈になったんだろうけど。
まあどうでもいいや。スレチスマン。
166デフォルトの名無しさん (ワッチョイ 12a9-ouaW)
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)
に「&」があるのですが、それを取り除くとエラーが出なくなりますが、
関数の引数の前に & はつけることがあるのでしょうか?
167デフォルトの名無しさん (ワッチョイ d2b6-c8k2)
2019/03/08(金) 18:52:21.46ID:b/Kbk3X80
あります
168デフォルトの名無しさん (ワッチョイ 624d-/kwh)
2019/03/08(金) 18:59:00.84ID:aqheESZi0
>>166
http://php.net/manual/ja/language.references.pass.php
https://ideone.com/A141Py
169デフォルトの名無しさん (ワッチョイ 12a9-ouaW)
2019/03/08(金) 19:42:19.86ID:4NSKE0Lh0
>>167-168
ありがとうございます、参照渡しというのがあるのですね。
php 5.4で、参照渡しが無くなったので、エラーが出ていることがわかりました。
&を取っても動いている感じなのですが、とりあえずそれで様子を見たいと思います。
170デフォルトの名無しさん (ワッチョイ 624d-/kwh)
2019/03/08(金) 21:14:39.94ID:aqheESZi0
>>169
エラーになるのは呼び出し側で&を使った場合
https://ideone.com/qo7ccI

親子でfunctionの定義が異なる場合にDeclaration of...って出る
https://ideone.com/9aCPU1
親子両方で&をつけるか&を取るか一致させればいいんだろうけど、多分&をつけるほうが正解なんじゃないかな?
171デフォルトの名無しさん (ワッチョイ 12a9-ouaW)
2019/03/09(土) 02:21:59.24ID:BXeyfCeA0
>>170
>多分&をつけるほうが正解なんじゃないかな?
クラスのことは勉強不足でわからないのですが、
class hoge
function useredit($user) {}

function useredit(&$user) {}
に変更するとエラーが出なくなりました、
確かに両方で無しか有りにするとエラーが出ないので、どちらが良いかわかりませんが、
これで様子を見たいと思います、ありがとうございました。
172デフォルトの名無しさん (ワッチョイ de46-/kwh)
2019/03/09(土) 07:23:29.43ID:4+hj1jJB0
>>164
ありがとうございます

そのコードでも、−>の'>'が、<input タグの閉じる>と認識されてしまいます。
どうやってエスケープしていいか、方法が見つからないので、多重配列を避けて記述するようにします。
173デフォルトの名無しさん (ワッチョイ 16a7-3PTc)
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':''>
になってるの?
それともそこでエラーが出てて自分でそこが原因だと思ってるってこと?
174デフォルトの名無しさん (ワッチョイ de46-/kwh)
2019/03/09(土) 22:30:58.51ID:4+hj1jJB0
予期せぬ > というエラーです

タグ内で@phpを使い、変数で判定することは避けて
タグの外で判定するようにしました。

色々ご指導ありがとうございました。
175デフォルトの名無しさん (ワッチョイ 16a7-3PTc)
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行じゃ無理とか
行頭に書かないといけないとかあるのかもしれない
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':''?>>
177デフォルトの名無しさん (ワッチョイ de46-/kwh)
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行で綺麗に書けないのが残念でした。

本当ありがとうございました!
178デフォルトの名無しさん (ワッチョイ ef1f-FfYY)
2019/03/12(火) 21:16:05.10ID:fInyw+wI0
phpからローカルのexeとかシェル叩けますか?
179デフォルトの名無しさん (ワッチョイ ef1f-FfYY)
2019/03/12(火) 21:17:44.08ID:fInyw+wI0
あ、apacheのWebサーバで動くphpのことです
180デフォルトの名無しさん (ワッチョイ c602-aMwB)
2019/03/13(水) 10:25:19.40ID:AVj94jZX0
exec()
181デフォルトの名無しさん (ワッチョイ c602-aMwB)
2019/03/13(水) 13:06:28.48ID:AVj94jZX0
WEBサーバに数十ミリ秒ごとにアクセスして、命令が出てる時はブラウザがスクリプトを実行する仕組みが今風らしい
182デフォルトの名無しさん (ワッチョイ 1663-/kwh)
2019/03/13(水) 17:39:55.13ID:2dJ2nxIw0
これだけ解釈に幅があるんだなw
183デフォルトの名無しさん (ワッチョイ 137d-td6u)
2019/03/15(金) 10:45:15.54ID:+YXguzLt0
質問させてください

ファイルを開く
処理1
ファイルを閉じる

ファイルを開く
処理2
ファイルを閉じる

というようなコードを書いたんですが、
ファイルを開く
処理1
処理2
ファイルを閉じる

に変えた方がいいですか?
懸念としてはファイルを開くという処理そのものが処理速度的に重いのであまり繰り返すのはよくないかな?と
1と2を分けた理由は一つにまとめると処理が複雑になって可読性が低くなってしまったからです
お力添えよろしくお願いします
184デフォルトの名無しさん (ワッチョイ 6f8c-B7Il)
2019/03/15(金) 16:36:34.12ID:9yz/tpkK0
>>183
素人的な考えだけど、ファイルを開くとファイルを閉じるを二回もしてるから
一回で済ますことができるならまとめたほうがいいかもだしなんで開くと閉じるを2回もしてるの?理由があるの?とかいわれるだろうし
185デフォルトの名無しさん (ワッチョイ cf63-kdx8)
2019/03/15(金) 16:52:05.57ID:t0fouEo60
ファイルに対する操作が追記なのか、それともランダムアクセスによる更新なのか
ファイルのサイズがどの位なのか、
処理1と処理2は独立した内容なのか、それとも順序性があり、処理1が完了する前提が必要なのか
などなど色々条件がありそうだけど、
乱暴に言ってしまうけど、ファイル操作なんて大して重たい処理ではないと思う
186デフォルトの名無しさん (ワッチョイ 137d-td6u)
2019/03/15(金) 17:11:16.81ID:+YXguzLt0
>>184 >>185
PC上でフォルダを覗いてファイルを開くと動作がもさっとしてる(スペックによる)けど、サーバー側ではそういった見た目(GUI)を伴わないから実際はサクサクサクッ!と動いてると考えていいですか?

どうしても自分のPC上での動きを参考に「ファイル操作」を捉えてるから、「開いて閉じて開いて閉じて」は動作が遅いかもと感じます。間違った考え方とは薄々思ってますけど
187デフォルトの名無しさん (ワッチョイ cf63-kdx8)
2019/03/15(金) 17:18:10.78ID:t0fouEo60
正確に言えば、PHPが動作している環境次第
ストレージの性能が良いなら殆ど気にする必要が無いだろうし
扱うファイルがとても大きいならファイル操作はそれなりの時間が掛かる
示された条件だと、この程度の一般的な見解しか出てこないと思う
188デフォルトの名無しさん (ワッチョイ cf63-kdx8)
2019/03/15(金) 17:23:40.16ID:t0fouEo60
処理の開始時間と終了時間を記録し、
処理の違いでどの程度変わるかを見てみれば良いと思う
自分の予測だと、殆ど誤差でしかないと思う
189デフォルトの名無しさん (ワッチョイ 137d-td6u)
2019/03/15(金) 17:54:38.04ID:+YXguzLt0
>>188
処理速度の計測方法調べてやってみたいと思います
参考になります。ありがとうございました
190デフォルトの名無しさん (ワッチョイ 6f8c-B7Il)
2019/03/15(金) 18:02:24.87ID:9yz/tpkK0
phpのセッションとかでセッションの中身が1の時はAのページ成型、セッションの中身が2の時はBのページの成型、セッションの中身が3の時なら中身を1にしてAのページにって作られてた時に
ブラウザのクロームとかの履歴では全部同一のページと認識されて上書きされるの?前のページ内で書かれてたものも全部上書きされるのか?
191デフォルトの名無しさん (ワッチョイ cf2c-Of+3)
2019/03/15(金) 21:21:03.69ID:L+hp7qbL0
Ruby では、小さいサイズで、読み込みだけなら、
File.read, readlines で、一気に全部読み込んで閉じる

処理は、その後に行う

読み込んで書き戻すのなら、処理中もファイルを開いておくかも知れないけど、
そうするとその間、排他制御で、そのファイルはロックされる
192デフォルトの名無しさん (ワッチョイ fff0-kdx8)
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が使えるようにするには
どうしたらいいのでしょうか?
193デフォルトの名無しさん (ワッチョイ 6f8c-B7Il)
2019/03/19(火) 13:20:28.75ID:rDiaexLE0
エスケープ処理のために$clean[$key] = htmlspecialchars( $value, ENT_QUOTES);でしてるんだけど
<や>が変換されないでそのまま表示されちゃってるんだけどちゃんと変換できてないの?それとも書き方が悪い?誰か教えて
194デフォルトの名無しさん (アウアウカー Sa47-linS)
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>;
これで
196デフォルトの名無しさん (アウアウエー Sadf-NXHq)
2019/03/19(火) 18:54:10.34ID:mQ/pmFPua
魔改造感半端ないな
197デフォルトの名無しさん (ワッチョイ e31f-pUlw)
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で確認したから間違いないけど
199デフォルトの名無しさん (ワッチョイ cfa7-YxN5)
2019/03/20(水) 00:02:34.03ID:UM8alzkY0
どうせブラウザのソース表示してみたら&lt;&gt;になってるとかいうオチだろ
200デフォルトの名無しさん (ワッチョイ cf2c-Of+3)
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)と違うのは、常駐して起動してるから速いんだよ、ってのは聞いたけど、それ以上は分からない。

そのへんを分かりやすく俺に教えてやってくれ
お願いします
202デフォルトの名無しさん (ワッチョイ 8f02-MWYG)
2019/03/20(水) 20:16:45.35ID:G66GdUMN0
phpはcgiモードとmoduleモードがあって
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に対してのアクセス方法を知っているってこと?
204デフォルトの名無しさん (ワッチョイ cf2c-Of+3)
2019/03/20(水) 21:57:05.35ID:RdYQnT9u0
.exe, .dll の違い。
例えば、sqlite3.exe, sqlite3.dll の違い

CGI は、.exe と同じ。
別プロセスを起動するから、その起動時間が掛かる

.dll は、そのプログラム(プロセス)内にライブラリを読み込むだけ。
別プロセスを起動していない
205204 (ワッチョイ cf2c-Of+3)
2019/03/20(水) 22:02:24.68ID:RdYQnT9u0
Ruby, PHP, Perl などのCGI では、
httpd が別プロセスを起動して、結果を取得して、プロセスを終了させる

毎回この起動・終了に、時間が掛かるから、
起動しっ放しというモードもある
206デフォルトの名無しさん (ワッチョイ cfda-h1+v)
2019/03/20(水) 22:07:48.21ID:DvYG4dOj0
>>204
かなり分かった!
httpdが自分のプロセスにdllを取り込むってことかな?
207デフォルトの名無しさん (ワッチョイ b301-dgXV)
2019/03/21(木) 09:03:31.33ID:PB8+T8io0
【PHP】下らねぇ質問はここに書き込みやがれ 10 	->画像>16枚
このプログラム実行して、43行目にphp Array to string conversion inっていうエラーが出る。ググッて見たけど分からん。
208デフォルトの名無しさん (ワッチョイ 5a4d-0zLl)
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重ループにすればいいんじゃないか
209デフォルトの名無しさん (ブーイモ MM4f-SFJA)
2019/03/21(木) 14:43:45.53ID:lAqh1JQYM
$images が文字列の配列の配列なんだから$images[$page]が文字列の配列
$imgは文字列だろ
210デフォルトの名無しさん (ワッチョイ 06ca-qfZi)
2019/03/21(木) 15:03:48.50ID:mQ6nyU1M0
>>207
とりあえず43行目あたりで print_r($img); とかやってみたら
211デフォルトの名無しさん (ワッチョイ b301-dgXV)
2019/03/21(木) 15:36:27.39ID:PB8+T8io0
解決しました!ありがとうございます
212208 (ワッチョイ 5a4d-0zLl)
2019/03/21(木) 16:30:56.90ID:5nRGGgZs0
>>209
確かにそうだ >>208は間違い

>>211
どう解決したのか書いてくれると有り難い
213デフォルトの名無しさん (ワッチョイ c68c-SbEy)
2019/03/21(木) 18:32:18.31ID:QCgCURXL0
>>193
原因がわかったわ、その前にページが止まるからなぜなんだろうと思ったらChromeが制御してたわ
コードのscriptタグを検知して連続遷移しないようにしてたみたいだ、余計なことを・・・
214デフォルトの名無しさん (ワッチョイ b301-JcKA)
2019/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>
215デフォルトの名無しさん (ワッチョイ de63-0zLl)
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>

とか
216デフォルトの名無しさん (ワッチョイ de2c-ZSTg)
2019/03/21(木) 21:19:06.65ID:ZeSQsBE10
Ruby, JavaScript にもある、部分テンプレートを読み込む、partial file の機能だろ。
PHP のフレームワークにもあるはず

一般的には、header, footer などの各部分は、別ファイルにして読み込んで使う
217デフォルトの名無しさん (ワッチョイ b301-JcKA)
2019/03/22(金) 00:15:37.10ID:j6KcVv1w0
>>215
すいません質問の仕方が悪かったです。 
読み込む側のページでのみ関数みたいに個別で追記をしたいんです。
読み込まれる側のファイルにURL判別とかの細工でもしないと無理ですかね・・?


jQueryでいう、.loadしたソースにコールバックで.insertAfter();を走らせるイメージです。
218デフォルトの名無しさん (ワッチョイ b301-JcKA)
2019/03/22(金) 00:18:51.61ID:j6KcVv1w0
>>216
そうです。ありがとうございます。
フレームワークなどで行うのですね。
219デフォルトの名無しさん (ワッチョイ dea7-9VoM)
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');
220デフォルトの名無しさん (ワッチョイ 06ca-qfZi)
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();

とやる方が手っ取り早いんじゃね。
221デフォルトの名無しさん (ワッチョイ 1b77-rXtv)
2019/03/24(日) 13:02:43.00ID:3sTzwWJg0
ちゃんとやるならTwigとかを使うべきやな
222デフォルトの名無しさん (ワッチョイ b301-DTGA)
2019/03/24(日) 17:37:53.78ID:VT2RwePW0
>>219
>include/requireは関数じゃないので返り値としてソースを受け取れない
理解しました。ありがとうございます!
file_get_contentsはスクレイピング時に使った事あるのですぐ理解できました
ありがとうございます〜

>>220,>>221
ありがとうございます
一番知りたかったのはinclude/requireでは無理と言う事でした
方法論、参考にさせていただきます
223デフォルトの名無しさん (ワッチョイ 06ca-qfZi)
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 してるスコープから見えるように設定しておく。
224デフォルトの名無しさん (ワッチョイ b301-DTGA)
2019/03/24(日) 22:28:41.20ID:VT2RwePW0
>>223
ご親切にありがとうございます。
とてもスマートな印象ですね。
今後の参考にさせていただきます。
225デフォルトの名無しさん (ワッチョイ caf0-0zLl)
2019/03/25(月) 17:56:02.49ID:IkNYQuI20
$paramに連想配列を格納して、foreachで取り出そうとしてるんですけど
先頭要素のキーが取り出せず、先頭要素の値から取り出し始めてしまうのですが
そういう挙動に詳しい人いらっしゃいますか?
226デフォルトの名無しさん (ワントンキン MM3a-eSm3)
2019/03/25(月) 19:54:37.41ID:oLRasqjYM
foreach ($array as $key => $value)
にして、$keyにアクセスしてる?
227デフォルトの名無しさん (ワッチョイ c646-0zLl)
2019/03/26(火) 06:30:51.59ID:3VVyorUw0
してます
var_dumpで配列を吐き出すと、しっかり吐き出せるんですけどね
こんなんで時間かかってしまって泣きですわ
228デフォルトの名無しさん (ワッチョイ 06ca-qfZi)
2019/03/26(火) 08:52:30.14ID:rW+qOQwv0
>>227
array_keys を使うとどうなる?
229デフォルトの名無しさん (ワッチョイ caf0-0zLl)
2019/03/26(火) 11:55:41.39ID:muIRcyXB0
ありがとう
コード丸まる書き換えました
230デフォルトの名無しさん (ワンミングク MM3a-6IZb)
2019/03/27(水) 06:16:05.76ID:935VNAcgM
いいの?それでw
気になるわぁ
再現コードあれば欲しい
231デフォルトの名無しさん (ワッチョイ c646-0zLl)
2019/03/27(水) 07:02:12.26ID:LqjZ6KSp0
初めて聞く症状だけれど
var_dumpで確認できている配列データなら
foreachで取り出せないわけないので
見間違いとか、スクリプトやタグのせいで消えてしまっているとか別の要因なんでしょ
232デフォルトの名無しさん (ワッチョイ 06ca-qfZi)
2019/03/27(水) 07:22:24.12ID:yj3g7joz0
だなぁ
>>226 のコードで最初のキーが取り出せず値から取れちゃうというのが、$key と $value に具体的に何が入ってるということなのか分からんな。
言葉通りに捉えれば $key に最初の要素の値が入ってるんだろうが、んじゃ $value には何が入ってるの?みたいな。
233デフォルトの名無しさん (ワッチョイ 9fa9-ZTi4)
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
となっています。
234デフォルトの名無しさん (ワッチョイ 8b77-9gjM)
2019/03/30(土) 01:29:36.74ID:Ae//lPdG0
>>233
ちゃんとphp-cli入れてるか?
235デフォルトの名無しさん (ワッチョイ 9fa9-ZTi4)
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
236デフォルトの名無しさん (ワッチョイ 8b77-9gjM)
2019/03/30(土) 02:01:04.87ID:Ae//lPdG0
>>235
https://blog.remirepo.net/pages/English-FAQ#safe
237デフォルトの名無しさん (ワッチョイ efad-zf8N)
2019/04/01(月) 02:47:56.82ID:6Qmf1LuG0
lineボット作ろうとしてるけど
curl_initが使えない
238デフォルトの名無しさん (ワッチョイ 0f2c-injD)
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
239デフォルトの名無しさん (アメ MM8f-Dmdl)
2019/04/01(月) 12:30:46.03ID:vaN0OZHPM
まったく参考になりませんでした。
240デフォルトの名無しさん (ワッチョイ 0fa7-ycr5)
2019/04/02(火) 07:05:50.55ID:d+tMH0Y20
>>237
1. 使えるようにする
2. curlの実装を探してくる
3. curlを自分で実装する

好きなのえらべ
241デフォルトの名無しさん (ワッチョイ ef8c-2SEu)
2019/04/03(水) 00:39:50.63ID:GW0S4nvD0
https://paiza.io/projects/Y3C9zPiRd6JDBPMpQLZx2w?language=php
こういう連想配列の中に配列入れてた時に特定の取得したいときはどうすればいい?
242デフォルトの名無しさん (ワッチョイ 0f2c-injD)
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
243デフォルトの名無しさん (スフッ Sdbf-zf8N)
2019/04/03(水) 13:15:08.75ID:H4sG9A7Rd
>>242
ubuntu18でやってるんよね
webシステム作ってて
244デフォルトの名無しさん (ワッチョイ 9ff0-r4m/)
2019/04/03(水) 14:20:29.53ID:zicRLWLY0
質問させてください。よろしくお願いします。
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+lwMr
>>244
なんのライブラリ使ってるかしらんが、そもそもお前のそのソースよくみろ
余計なものが入ってるだろ
246デフォルトの名無しさん (アウアウエー Sa3f-RkGr)
2019/04/03(水) 17:15:35.24ID:CuyxcMNZa
PHP8でJIT
247デフォルトの名無しさん (ワッチョイ 4f02-KqOg)
2019/04/03(水) 17:16:53.55ID:r4klkqBe0
'
248デフォルトの名無しさん (ワッチョイ 9ff0-r4m/)
2019/04/03(水) 17:46:29.42ID:zicRLWLY0
>>245
ありがとうございます
where('都道府県',$form_pref)で検索しても検索できないです。
クオーテーションがないことが問題なのでしょうか?
249デフォルトの名無しさん (ワッチョイ 0f63-r4m/)
2019/04/03(水) 17:52:22.54ID:ZmtTnpp/0
>>248
DBに渡っているはずのSQL文を一度画面に表示させてみ
多分、それで解決するよ
250デフォルトの名無しさん (ワッチョイ 4f89-ZTi4)
2019/04/03(水) 22:39:33.33ID:qlQFDRbn0
特定のフォルダ内にjpgファイルが1枚でもあるか確認する良い方法なにかありますか?
251デフォルトの名無しさん (アウアウエー Sa3f-RkGr)
2019/04/03(水) 23:10:33.79ID:cKVyKni5a
direcoryiteratoriteratorでリスト取得してforeach
252デフォルトの名無しさん (ワッチョイ c6ca-YOD9)
2019/04/04(木) 01:25:57.77ID:hUbHMIpd0
glob
253デフォルトの名無しさん (ワッチョイ 0646-k8NZ)
2019/04/04(木) 07:19:16.27ID:2Mcvpa6R0
>>248
エラーが出てるならエラーの内容を教えて
プログラムエラーでなくて論理エラーなら
単に検索に使ってる値と、対象となる値が違うとか、そんなもんでしょ
254デフォルトの名無しさん (ワッチョイ be89-BZhk)
2019/04/04(木) 10:06:27.24ID:AiNrhaZA0
リストを全部取得するのではなく、jpgがあった時点でtrueを返す方法ってありますか?
数が多いファイルが含まれると遅くなってしまいました。
255デフォルトの名無しさん (ワッチョイ eea7-iE/E)
2019/04/04(木) 10:22:52.98ID:F6RY7aLA0
dbでファイル情報管理すりゃいい
index化みたいな
256デフォルトの名無しさん (ワッチョイ c6ad-I1WO)
2019/04/04(木) 10:30:53.37ID:kJslP6Nd0
>>254
ファイル数が万単位とかであるならば
255も言ってるようにDBで拡張子ごとにファイル名を管理したり
jsonでデータ管理してみたら
257デフォルトの名無しさん (ワッチョイ c6ad-I1WO)
2019/04/04(木) 10:36:26.67ID:kJslP6Nd0
個人的にはjsonが好き
258デフォルトの名無しさん (ワッチョイ 7d02-w1lf)
2019/04/04(木) 10:41:50.32ID:l5IgkZnr0
>>254
まんま、したい事すりゃ良い。
jpgか調べて見つけた時点でreturn true。
259デフォルトの名無しさん (ワッチョイ be89-BZhk)
2019/04/04(木) 11:20:51.83ID:AiNrhaZA0
全取得してからしか調べられないようなのでglobを使っていきます。
ありがとうございました。
260デフォルトの名無しさん (ワッチョイ ee63-k8NZ)
2019/04/04(木) 11:24:22.32ID:8cxX9aNp0
ls *.jpg 2>/dev/null | wc -l
261デフォルトの名無しさん (オイコラミネオ MMe9-YOD9)
2019/04/04(木) 12:56:58.43ID:Rdj6YsTrM
>>254
jpgかどうかに関係なくファイルの多いディレクトリというだけで遅くなるからあきらめろ。
262デフォルトの名無しさん (ワッチョイ b901-7xOg)
2019/04/04(木) 15:38:52.96ID:j78mKFJX0
PHP始めるけどどんな環境がいいの?
IDEは多分vscode使いたい
Pythonだとインポートサジェストがvscodeにはまだないけどphpは大丈夫?
それとPythonで言うanacondaみたいなものはあるの?
鉄板とかあるの?
263デフォルトの名無しさん (ワッチョイ 8d42-BZhk)
2019/04/04(木) 21:26:26.31ID:OS5/cJ9r0
xampp
264デフォルトの名無しさん (アメ MM8d-3NqX)
2019/04/04(木) 21:28:02.75ID:c7BBV/ypM
>>262
マルチ死ね
265デフォルトの名無しさん (ワッチョイ b901-7xOg)
2019/04/05(金) 10:24:35.32ID:0lUjLeBK0
色々と調べてみるとザンプにしますか?Dockerにしますか?って感じなんだな
やっぱりLinux上でやらないと駄目かな?出来るだけ仕事現場でそのまま使えるテクノロジーで学びたいんだけど
266デフォルトの名無しさん (ワッチョイ b901-7xOg)
2019/04/05(金) 12:02:19.00ID:0lUjLeBK0
色々と調べてみた結果Lpicの資格も欲しいのでVMwareにCentOS入れてDockerでやっていこうと決めました。普通にPHP学ぶだけなら>>263が最適解だと思います。>>263氏ありがとう
267デフォルトの名無しさん (スップ Sd02-TtNY)
2019/04/05(金) 12:29:53.49ID:TOzxK/5gd
今どきサーバの知識とかいらなくね?
LaravelとかRailsは内蔵されてるし
Xamppとかいらんわ
268デフォルトの名無しさん (ワッチョイ eeb0-f5Ac)
2019/04/05(金) 12:47:45.34ID:x0YMrYHD0
このスレはXAMPP派が多いらしい
開発環境ならビルトインサーバで十分だしCI環境ならDockerだろうと思うのだがねぇ
269デフォルトの名無しさん (ワッチョイ b901-7xOg)
2019/04/05(金) 12:52:11.17ID:0lUjLeBK0
>>267
違う板で未経験から働きたいならlpicとってサーバーをある程度理解してる事をアピールしたほうが良いとアドバイスされたんだよね
まぁ取ってなくても早いうちに転職活動したほうがいいとも言われたけど
270デフォルトの名無しさん (ワッチョイ eea7-iE/E)
2019/04/05(金) 13:06:58.84ID:RkNgF4tA0
Pythonが出来る風な口調だけど
なんでわざわざ就職考えるのにPHPなんて始めるんだっちゅう
271デフォルトの名無しさん (ワッチョイ b901-7xOg)
2019/04/05(金) 13:47:55.69ID:0lUjLeBK0
Pythonの求人って全然ないよ?
272デフォルトの名無しさん (ワッチョイ eea7-iE/E)
2019/04/05(金) 14:33:47.22ID:RkNgF4tA0
なんでそうやってしれーっと嘘つくんだよ
indeedで東京エリアでPHPで検索して15000件
Pythonで検索して10000件だぞ
273デフォルトの名無しさん (スップ Sd02-TtNY)
2019/04/05(金) 15:31:48.12ID:Lpo8mNdId
それSES会社がテキトーに検索ワード盛ってるだけだろ
求人量ならJava、PHPの足元にも及ばんぞPythonとかRubyって
質は高いと思うけど
274デフォルトの名無しさん (ワッチョイ b901-7xOg)
2019/04/05(金) 16:34:16.70ID:0lUjLeBK0
ついでに言うと東京に行く気はないわ
275デフォルトの名無しさん (ワッチョイ b901-7+iI)
2019/04/05(金) 21:01:42.24ID:8A68roIQ0
PHPのエディタ、今までAtomを使ってて、VScodeも気になるんだけどどう?
276デフォルトの名無しさん (ワッチョイ eea7-iE/E)
2019/04/05(金) 21:02:27.86ID:RkNgF4tA0
いやいや
今スタートアップはほとんどPythonだから
277デフォルトの名無しさん (ワッチョイ eea7-iE/E)
2019/04/05(金) 21:12:50.65ID:RkNgF4tA0
Atomよりはだいぶ軽いし動作は軽快
使い勝手もほぼ一緒
まあしょせんエディタだけども
278デフォルトの名無しさん (ワッチョイ e50b-TIc0)
2019/04/05(金) 21:54:48.30ID:OvXPdzic0
Atom重い。VScodeがいいぞ。
279デフォルトの名無しさん (ワッチョイ 511f-YqGz)
2019/04/05(金) 22:15:14.08ID:72+SeKx30
だよなVSだよな
280デフォルトの名無しさん (オッペケ Sr91-Raum)
2019/04/05(金) 23:37:00.69ID:PMv6rz9+r
マカーはVSコードなど使わないからな
もちろんGithubも使わねえ
281デフォルトの名無しさん (ワッチョイ ee2c-f03p)
2019/04/05(金) 23:44:48.07ID:xPcsbeSU0
PHP は多いけど、低価格っぽい。
多さの順は、COBOL > Ruby > Python

Ruby は、Vagrant, Chef など、サーバー管理構築運用の仕事もあるから、
OS をよく知っている印象が強い
282デフォルトの名無しさん (ワッチョイ ee63-k8NZ)
2019/04/05(金) 23:56:13.53ID:FzdQrB750
Perlは?(震え声)
283デフォルトの名無しさん (ワッチョイ ee2c-f03p)
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千万超!
284デフォルトの名無しさん (オッペケ Sr91-Raum)
2019/04/06(土) 00:24:48.26ID:uCKV04Asr
phpで年収1800万の俺にくらべたら下じゃん
285283 (ワッチョイ ee2c-f03p)
2019/04/06(土) 01:23:26.51ID:f7FNE/du0
Rails は、年収3千万円超のハーバード大学でも、教えているほど!

プログラマーなんて、年収が1/5 ぐらいになるのに、なぜ教えるのか、わからないw
286デフォルトの名無しさん (オッペケ Sr91-YqGz)
2019/04/06(土) 05:01:41.65ID:22mucI93r
OSのコマンドアプリやシェルをラップする事務員向けWebGUIみたいなのできますか?
287デフォルトの名無しさん (スップ Sd02-TtNY)
2019/04/06(土) 05:09:54.95ID:tnKohzU7d
KENTAって人の動画をマジで信じてる人いてビビったわ
技術を煽って自分のオンラインサロンに入らせる典型的な不安ビジネスやってる人じゃん

あとあの人のポートフォリオ見たらわかるけどHelloWorldレベルのことしかやってないぞ
288デフォルトの名無しさん (ワッチョイ eea7-iE/E)
2019/04/06(土) 06:20:24.71ID:n41jBgHa0
Ruby推しにろくな人間はおらんのや
289283 (ワッチョイ ee2c-f03p)
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`'
290デフォルトの名無しさん (ワッチョイ b901-7+iI)
2019/04/06(土) 12:01:46.77ID:I7rc3KX60
>>287
kwsk
291デフォルトの名無しさん (ワッチョイ e54e-3NqX)
2019/04/06(土) 18:25:21.69ID:weoUXr5W0
ターミナルで
ruby -e 'puts `ls | wc -l`'
なんて打ってる奴いたらクビにするわw
292デフォルトの名無しさん (ワッチョイ 85da-KJrz)
2019/04/06(土) 20:44:27.91ID:luFKN00U0
このスレなら 「PukiWikiから○○に移行したよ」って人もいそうなのでお聞きします。
いま時の 小規模向けWiki でオススメのがあったら教えてください。 PHPベースでなくても構いません。
昔 PukiWiki で個人的なメモを管理してたんですが もう何年もご無沙汰しています。
293デフォルトの名無しさん (ワッチョイ 4901-Fply)
2019/04/11(木) 04:36:20.03ID:yaNFrze20
ローカルでしかPHP触ったことないんだけどネットに繋ぐ場合ってどんな方法ある?サーバーを借りるの以外で
294デフォルトの名無しさん (ワッチョイ b91f-deI0)
2019/04/11(木) 04:50:28.27ID:Dck3yL7h0
295デフォルトの名無しさん (ワッチョイ 1301-81T8)
2019/04/11(木) 04:55:24.76ID:FfVS6eCx0
>>293
ローカルのPCをインターネット側からアクセス可能なサーバにするとか。
296デフォルトの名無しさん (ワッチョイ 4901-Fply)
2019/04/11(木) 09:55:10.52ID:w1EtGven0
>>295
いまアパッチ使ってローカルでやってるんだけど設定変えて繋げたらセキュリティとかの対策必要なの?
仮想環境でやってないからちょい怖い
297デフォルトの名無しさん (ワッチョイ 8b63-clLQ)
2019/04/11(木) 10:27:24.01ID:GF1IL3KP0
そのPCだけではなくルーターの設定も変えないと
298デフォルトの名無しさん (アメ MM4d-nfNM)
2019/04/11(木) 10:42:29.96ID:GR4ezT/uM
そういう開発ニーズに応えたソフトあった気がする…
299デフォルトの名無しさん (アメ MM4d-nfNM)
2019/04/11(木) 11:16:41.08ID:GR4ezT/uM
思い…出した!ngrokだ。flywheelでも採用されてたツール。
300デフォルトの名無しさん (ワッチョイ 4901-Fply)
2019/04/11(木) 13:36:11.50ID:vSJqsCex0
面接のポートフォリオで動いてるとこ見せたい場合1番簡単な方法って何がある?
GitHubとかに上げても動いてるとこは見れないよね
301さまよえる蟻人間 ◆T6xkBnTXz7B0 (スププ Sd33-8Mjg)
2019/04/11(木) 14:00:08.37ID:8je0Y1Lmd
>>300
動画なら通信環境があれば見せられるんじゃね?
302デフォルトの名無しさん (ワッチョイ 4901-Fply)
2019/04/11(木) 14:36:54.31ID:1s3wCd4l0
>>301
やっぱ相手側が触ることは出来んよね
awsとか使えば相手が動かせる事も出来るよね
303デフォルトの名無しさん (ワッチョイ 0b82-3VJR)
2019/04/11(木) 18:37:47.44ID:ucvbVgLJ0
ファイルアップロードフォームを作って、
iPhoneから写真や動画をアップロードして、
$_Filesからファイル名を取り出すと、
6CCC151C-DF3B-486F-8C97-AA06485047BD.jpeg
こんな感じの文字列になってしまいます。
元はIMG_0000.jpgのような名称だと思います。

iPhoneからの場合はどうすれば、正しい名称になるんでしょうか?
304デフォルトの名無しさん (ワッチョイ 41b4-deI0)
2019/04/11(木) 19:07:45.95ID:ZpA9hK1A0
phpはフロント専任だな…
305デフォルトの名無しさん (ワッチョイ b3bd-0Hjf)
2019/04/11(木) 22:38:53.56ID:ScFKV4yk0
phpでデータベースのカラムに寿命付けるのってどうすれば出来る?
takashiが一時ログインしたらタカシのデータを24時間で削除したいんやけど…
セッションやクッキーに保存するのは何か駄目な気がして。。
306デフォルトの名無しさん (ワッチョイ 8b63-clLQ)
2019/04/11(木) 22:45:31.86ID:GF1IL3KP0
cron使って定期的にアップデートかけるってのは
307デフォルトの名無しさん (ワッチョイ b3bd-0Hjf)
2019/04/11(木) 22:57:43.87ID:ScFKV4yk0
>>306
登録した時間によって削除の時間が変わったりせんかな…
なんつーか個別にイベントを発行する感じにしたいんや。
一時的に登録して登録から24時間立ったら削除するみたいな。cron使う頭いいやり方があるなら知りてえ
308デフォルトの名無しさん (ワッチョイ b3bd-0Hjf)
2019/04/11(木) 23:00:29.30ID:ScFKV4yk0
>>307
あっそうか。それをcronで判定すればいいのか。アホやな俺
309デフォルトの名無しさん (ワッチョイ b3bd-0Hjf)
2019/04/11(木) 23:03:22.14ID:ScFKV4yk0
>>306
ありがとう😊
310デフォルトの名無しさん (ワッチョイ 8b2c-9RpW)
2019/04/12(金) 04:28:30.68ID:WO5SLys30
そういうのを銀行などの運用業務では、日次処理と言う。
他にも、週次・月次処理もある

>>300-302
PC 内でサーバーを構築しておいて、PC を持っていって、ブラウザで動かせば?
311デフォルトの名無しさん (ワッチョイ b91f-deI0)
2019/04/12(金) 04:53:44.93ID:cg9pp3DB0
バッチ処理ですな
312デフォルトの名無しさん (ワッチョイ 1301-81T8)
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で代入し直す以外に、簡単な方法はありますでしょうか?
314デフォルトの名無しさん (アウアウウー Sa5d-hh84)
2019/04/12(金) 18:10:06.99ID:zC61PQSSa
>>313
PHPの配列は原則的にハッシュマップだからそういう操作は想定してない
315デフォルトの名無しさん (アウアウエー Sae3-6TAD)
2019/04/12(金) 23:41:15.74ID:8ZS6XE5Oa
$array = [
member_name => $array[name],
...
];
316デフォルトの名無しさん (アウアウエー Sae3-6TAD)
2019/04/13(土) 00:00:28.74ID:ukoM+IiZa
$array = array_combine(array_map(function($v){
return 'member_'.$v;
} ,array_keys($array)), $array);
テストしてないけどforeachのが早そう
317デフォルトの名無しさん (ワッチョイ 8ba7-La48)
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つかってかーさい
318デフォルトの名無しさん (ワッチョイ 0bda-pBLJ)
2019/04/13(土) 08:13:54.42ID:07mRS5hZ0
正規表現で、\w と [0-9A-Za-z] とで、どちらが早いとかありますか?
小文字アルファベットだけでいい時に、[a-z] と \w のどちらも指定できるとしたら、どちらが早いでしょうか?
319デフォルトの名無しさん (ワッチョイ 8b2c-9RpW)
2019/04/13(土) 08:22:34.83ID:blG/UTRx0
単に1つずつ、動的に辞書に追加してるだけだろ

結局、1つずつ、すべてを追加するだけの処理
320313 (ワッチョイ 0b07-2loy)
2019/04/13(土) 14:50:04.75ID:CAZxfgWw0
>>314-317
色々とご意見ありがとうございます。
素直にforeach使って対応します。
321デフォルトの名無しさん (ワッチョイ 7bca-wDUi)
2019/04/13(土) 15:52:33.56ID:eJqYG1GJ0
>>318
やってみればいいじゃん
322デフォルトの名無しさん (スップ Sd73-elAG)
2019/04/13(土) 20:00:30.39ID:PdzG1dGCd
PHP実務で最低限知ってればいいことって何かありますか?
323デフォルトの名無しさん (ワッチョイ d91f-DImV)
2019/04/13(土) 21:44:34.11ID:ZDNzNkLB0
なにゆえ変数の頭に必ず$がつくのでしょうか
324デフォルトの名無しさん (ワッチョイ 8b63-clLQ)
2019/04/13(土) 22:29:04.70ID:6xQqtfoW0
$付けるのは、昔からのしきたり
325デフォルトの名無しさん (ワッチョイ 8bb0-hh84)
2019/04/14(日) 00:12:51.92ID:fjVzHTTb0
Perlの遺伝子の名残
326デフォルトの名無しさん (ワッチョイ 413c-clLQ)
2019/04/14(日) 15:04:49.97ID:fAGeAUaU0
@とか%も付けよう
327デフォルトの名無しさん (ワッチョイ 8ba7-La48)
2019/04/14(日) 21:06:14.97ID:Y/6wcZ7O0
@(0%0)←なぜかエラーが出る

なんつって
328デフォルトの名無しさん (ワッチョイ fbda-XGqV)
2019/04/15(月) 22:27:24.57ID:SVQji9la0
$はshiftを押さないと書けないから書きにくい
329デフォルトの名無しさん (ワッチョイ 29ba-clLQ)
2019/04/17(水) 16:08:37.78ID:NJiBcQWA0
GETとかPOSTではfilter_inputを使えという話ですが、$_SERVERを扱うときは例外で旧来通り
直接アクセスが基本ですか?
さくらサーバーでは云々という情報が引っかかるのですが。
330デフォルトの名無しさん (オイコラミネオ MM55-wDUi)
2019/04/17(水) 16:15:23.17ID:mg3EeLZxM
filter_inputにこだわる必要なんて無いよ。
331デフォルトの名無しさん (ワッチョイ 29ba-clLQ)
2019/04/17(水) 16:51:05.27ID:NJiBcQWA0
分かりました。ありがとうございます。
332デフォルトの名無しさん (アウアウエー Sada-mRez)
2019/04/18(木) 00:00:01.59ID:cnp/FoA8a
誰かが途中でいじってない保証はないけどな
333デフォルトの名無しさん (ワッチョイ 5ea7-8I1V)
2019/04/18(木) 00:26:01.11ID:6IoWj+aJ0
環境変数が改ざんされてたら
もうfilter_inputどうこうの次元じゃないけどな
334デフォルトの名無しさん (ワッチョイ b1ba-JNgg)
2019/04/18(木) 22:54:48.32ID:Q7jAWv/D0
例えばCで以下のようなdefineをPHPで実現するにはどうすればいいでしょうか?
#define errlog(msg)  ErrorLog(__FILE__, __LINE__, msg)

初歩的ですみません。
335デフォルトの名無しさん (アウアウエー Sada-mRez)
2019/04/19(金) 00:46:34.22ID:lWnHrGLea
get_error_last()
336デフォルトの名無しさん (ワッチョイ a91f-Cj9k)
2019/04/19(金) 00:49:22.10ID:S92APKW+0
phpさらっと勉強したのですが
具体的にphpで作られてるウェブサイトで、phpを公開してる奴ってありませんかね?
勉強のために見てみたいです
337デフォルトの名無しさん (ワッチョイ f6ca-olrf)
2019/04/19(金) 01:06:16.70ID:bzbXvXi80
wordpress
338デフォルトの名無しさん (ワッチョイ 0db4-gS4L)
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
【PHP】下らねぇ質問はここに書き込みやがれ 10 	->画像>16枚
こんな感じで書いた
341デフォルトの名無しさん (オッペケ Sr79-kqL6)
2019/04/19(金) 13:41:03.84ID:7RHvbYhAr
Windows7はサポート外だからすてろ
342さまよえる蟻人間 ◆T6xkBnTXz7B0 (スププ Sdb2-9jZb)
2019/04/19(金) 14:42:39.28ID:KhPbBDNPd
>>340
SJISとかUTF-8などの文字コードを勉強して、UTF-8が使えるテキストエディタ使え。和解の
343デフォルトの名無しさん (ブーイモ MMd5-wZci)
2019/04/19(金) 15:47:12.43ID:ih/g4VJWM
URLですが.../と打ち込んだ場合
...というファイルにアクセスするのですか?
344さまよえる蟻人間 ◆T6xkBnTXz7B0 (ワッチョイ 8101-9jZb)
2019/04/19(金) 16:35:39.59ID:Y4E9vn3W0
>>343
ディレクトリ名で「..」は一つ上のフォルダという意味がある。点二つね。
345デフォルトの名無しさん (アメ MMd5-DUFY)
2019/04/19(金) 17:59:38.21ID:er92Du55M
一つ上の男はどのように書き表しますか?
346デフォルトの名無しさん (ワッチョイ 8101-hooH)
2019/04/20(土) 09:38:04.02ID:EzpoiD680
ガイアが俺にもっと輝けと囁いている
347デフォルトの名無しさん (ワッチョイ 8101-hooH)
2019/04/20(土) 13:44:38.61ID:EzpoiD680
>>339
Dreamweaverで修正できるぞ
348デフォルトの名無しさん (アウアウカー Sab1-v9Kr)
2019/04/20(土) 17:06:43.02ID:nmBhveLxa
>>339
PHPなのか?
349デフォルトの名無しさん (スププ Sdb2-XV4o)
2019/04/20(土) 17:10:50.63ID:46SaaHhXd
>>344
. 今いる所
.. ひとつ上

...  二つ上?
350デフォルトの名無しさん (ワッチョイ 8101-hooH)
2019/04/21(日) 00:22:00.24ID:Aeq/r6ow0
小学生のプログラム教材見たけど、
ロボを前へ3歩右へ2歩動かす命令をみたいなやつとか
PHPの教科書と同じレベルだわ
算数で足し算とか習ってるレベルの子供にほんとに理解できるのかな?
351デフォルトの名無しさん (ワッチョイ f6ad-Eh39)
2019/04/21(日) 06:43:46.32ID:i48F5tCc0
>>336
オラは個人でポータルサイト作って公開してるが
PHPはサーバサイドの言語だから
サイト見たところで勉強にはならんと思うぞ
非遷移をやりたければAjax使わんといかんし
352デフォルトの名無しさん (ワッチョイ f6ad-Eh39)
2019/04/21(日) 06:46:56.90ID:i48F5tCc0
>>350
アングリーバードのプログラミング教材は面白かった
でも、プログラミングってよりブロックタイプのやつだから
アルゴリズムを考える作業が殆だよね

micro:bitのブロックで書いたコードをJSやPythonなどに変換できる機能は良いなと思った
353デフォルトの名無しさん (ワッチョイ 8101-hooH)
2019/04/21(日) 08:13:48.42ID:Aeq/r6ow0
>>352
俺見た本はぱっと見は絵が多くて小学生用なんだが普通に
条件分岐if文、ループfor文とか説明されてて
英語も算数も絡んでくるけど、今後の小中学生が脅威にかんじたわ
小さいうちから当たり前になじんでれば抵抗ないんだろうな
354デフォルトの名無しさん (ワッチョイ d91f-gS4L)
2019/04/21(日) 12:58:09.77ID:g2z5hubB0
まあphpとか仕事にしてるような奴らは仕事なくなるだろな
355デフォルトの名無しさん (ワッチョイ b6da-wZci)
2019/04/21(日) 19:56:01.27ID:0JlZuQqp0
>>349
...というファイル名を参照したよ
356デフォルトの名無しさん (スフッ Sdb2-XV4o)
2019/04/21(日) 22:05:37.01ID:jRd0U4G2d
>>350
ロボットに正三角形を書かせて出発地に戻るとか、具体的だから小学生にも分かり易い。
Turtle LOGOの流れですね。
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状態にしたいのですが、なってくれません。
358デフォルトの名無しさん (ワッチョイ 5e63-JNgg)
2019/04/24(水) 19:07:44.04ID:wb+dbNkk0
>>357
>if($HEN['AAA'] === 'OK' ){
>$HEN['AAA']は確実に'ON'です。
359357 (ワッチョイ 9eff-nFeC)
2019/04/24(水) 19:12:31.45ID:AdJPrH9y0
>>358
すいませんif($HEN['AAA']の内容は「OK」です。
print_rなどで変数の内容を見ても、ちゃんと入ってます。
360さまよえる蟻人間 ◆T6xkBnTXz7B0 (スププ Sdb2-9jZb)
2019/04/24(水) 19:13:17.51ID:17biHAgbd
ONとOK
361さまよえる蟻人間 ◆T6xkBnTXz7B0 (ワッチョイ 8101-9jZb)
2019/04/24(水) 19:13:54.31ID:gP7Kc+nL0
checkedとrequiredがつながってる可能性
362さまよえる蟻人間 ◆T6xkBnTXz7B0 (ワッチョイ 8101-9jZb)
2019/04/24(水) 19:15:38.78ID:gP7Kc+nL0
つーか、HTMLソース見れば一目瞭然
363デフォルトの名無しさん (ワッチョイ 9eff-nFeC)
2019/04/24(水) 19:20:56.00ID:AdJPrH9y0
ソースをみると、
<input type="radio" name="AAA" value="OK" required>
こうなります。
OKのあとに半角2つスペースでrequired
364さまよえる蟻人間 ◆T6xkBnTXz7B0 (ワッチョイ 8101-9jZb)
2019/04/24(水) 19:28:05.74ID:gP7Kc+nL0
ONとOKを間違えてるか、型が違うか。
365さまよえる蟻人間 ◆T6xkBnTXz7B0 (スププ Sdb2-9jZb)
2019/04/24(水) 19:31:32.04ID:17biHAgbd
全角と半角。
366デフォルトの名無しさん (ワッチョイ 5e63-JNgg)
2019/04/24(水) 19:56:23.89ID:wb+dbNkk0
>>363
提案
radioをcheckboxに変えてみる
=== を == に変えてみる
if($HEN['AAA'] === 'OK' ){ echo 'checked'; } を echo 'checked'; だけにしてみる

いずれかで何か変わりませんか?
どこかに間違いがあると思うけど、提示された範囲では分からないです
367デフォルトの名無しさん (ワッチョイ 922c-61/s)
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 などを、わざわざ使うかな?
368デフォルトの名無しさん (ワッチョイ 5e63-JNgg)
2019/04/24(水) 21:52:45.02ID:wb+dbNkk0
見た感じでは構文的な間違いはなさそうなんだよな
ただ全体を晒しているわけではないので、間違い部分が分からない
369デフォルトの名無しさん (ワッチョイ 0dff-AoSc)
2019/04/24(水) 22:53:46.57ID:S39z++Og0
if($HEN['AAA'] !== 'OK' ) に試しにしてみる
370デフォルトの名無しさん (ワッチョイ 4ba7-KI0z)
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>
にすりゃいいだけ
371デフォルトの名無しさん (ワッチョイ 232c-vaK/)
2019/04/26(金) 13:58:13.68ID:A/WNBxWE0
><?= $HEN ?>required

ああ!
前後に、空白が無いから、
checkedrequired みたいに、文字列がつながって、HTML の構文エラーになるのだろう!

必ず、前後に空白を入れるべし!
372デフォルトの名無しさん (ワッチョイ e51f-K1VX)
2019/04/29(月) 12:04:33.45ID:vct+Ltv00
phpで、画像にアクセスしてきたIPを保存することってできますか?
373デフォルトの名無しさん (ワッチョイ 4b63-MRXB)
2019/04/29(月) 12:29:23.82ID:EyyZk+++0
ダイレクトに画像アクセスされたら分からないだろう
Webサーバーのログ見るしかない
374デフォルトの名無しさん (ワッチョイ e51f-K1VX)
2019/04/29(月) 12:48:02.00ID:vct+Ltv00
そういうものなんですね
ありがとうございます
375デフォルトの名無しさん (アウアウエー Sa13-3nb/)
2019/04/29(月) 17:43:20.49ID:loz4DS5aa
apacheでやっていることをphpでやるようにしたらできるぞ
376デフォルトの名無しさん (ワッチョイ 5d0b-qYff)
2019/04/29(月) 22:11:30.94ID:iMBvrM8u0
画像は非公開領域に置いて、PHP経由で画像を出力するとかできたような
377デフォルトの名無しさん (ワッチョイ e51f-K1VX)
2019/04/29(月) 22:39:29.73ID:vct+Ltv00
ありがとうございます、もうちょっとphpを勉強してから
また考えてみます
378デフォルトの名無しさん (ワッチョイ ff61-5AMV)
2019/05/09(木) 00:45:39.61ID:RU31sPhL0
phpについて役立つ情報とか
http://2chb.net/r/tech/1557329831/l50

DWE
379デフォルトの名無しさん (アウアウウー Sa1b-y0Vo)
2019/05/13(月) 18:40:53.35ID:roML+UDma
呼んだ関数の返り値がfalse相当でなければ、その値を返す
そうでなければ、次の関数を呼んで、その値を返す
というのをスマートに書くにはどうしたらいいですか?

return func0() || func1()

と書けばいい気がしたのですが、func0の返り値が文字列の場合、うまくいきません
380デフォルトの名無しさん (ワッチョイ 77f3-3bTL)
2019/05/13(月) 22:24:51.96ID:tr/4p/4f0
if (func0() !== false) {
return func0();
}
return func1();
381デフォルトの名無しさん (ワッチョイ 97ba-gMth)
2019/05/13(月) 23:37:45.04ID:xlLeel7b0
2回実行しやらんか
382デフォルトの名無しさん (オイコラミネオ MM6b-fR1T)
2019/05/13(月) 23:46:55.40ID:NT7m3BJtM
>>379
スマートにする目的はなに?
可読性?実行速度?タイプ量?
383デフォルトの名無しさん (アウアウエー Sadf-FgmB)
2019/05/14(火) 00:21:30.17ID:C/lwgk7za
??
384デフォルトの名無しさん (ワッチョイ 1f4d-gMth)
2019/05/14(火) 00:52:38.99ID:+1EhYDa60
>>379
イマイチ何がしたいのかわからないが、↓は駄目なんだよね?
http://codepad.org/Pmd52Nk7

↓みたいに、falseで無い文字列の場合はその文字列を返したいの?
https://ideone.com/HjePmQ
385デフォルトの名無しさん (ワッチョイ ffa7-BD3m)
2019/05/15(水) 05:58:37.58ID:vAqxpv060
>>379
三項演算子で
return func0() ? func0() : func1();
ただこれだとfunc0()を2回呼び出して無駄なので
return ($a = func0()) ? $a : func1();
かな

>>379のはJavaScriptで使うけどPHPじゃ使わない
386デフォルトの名無しさん (ワッチョイ bfca-fR1T)
2019/05/15(水) 07:21:00.71ID:WsD3jNK80
スマートってのがばく然とし過ぎてるよ。
何を叶えたくてそういう書き方をしたいのか。
それ用の構文が用意されてるか聞いてるのかな。
COALESCE みたいなのを探してるならPHP7で ??(null合体演算子)が追加されたけど、false や 0 にも適用させたいなら合わないだろうね。
if文で書くのが見やすいしメンテもしやすくてスマートなんじゃね。
387デフォルトの名無しさん (アウアウエー Sadf-FgmB)
2019/05/15(水) 09:10:52.73ID:TijlUNhYa
戻り値がboolじゃない時点でクソなんだがな
388デフォルトの名無しさん (ワッチョイ ffa7-BD3m)
2019/05/15(水) 16:10:31.93ID:vAqxpv060
動的言語じゃ短絡評価の型がboolじゃないのは普通だよ
389デフォルトの名無しさん (ワッチョイ 97ba-gMth)
2019/05/15(水) 20:27:21.35ID:+XInXPJh0
C「せやで、intやで
390デフォルトの名無しさん (ワッチョイ 0aad-+M87)
2019/05/16(木) 03:25:20.50ID:neNHVSKA0
CakePHPって人気無いのか?(´・ω・`)
今、参考書読み始めたばかりなんだが
391デフォルトの名無しさん (ワッチョイ 7c07-wkih)
2019/05/16(木) 15:45:22.32ID:fgD0r/Q+0
成熟したFWって感じだと思う。今から学んでも良いと思うよ
392デフォルトの名無しさん (ワッチョイ 0aad-+M87)
2019/05/16(木) 17:28:06.18ID:neNHVSKA0
ほうほう(´・ω・`)
393デフォルトの名無しさん (ワッチョイ dfad-u4A8)
2019/05/25(土) 13:44:57.44ID:BtUlhHLe0
twitterのBotを作りたいと思っています
指定ワードに引っかかったらブロックするという動作を入れたいのでアプリだと対応できなさそうです
と言うか PHP でもそもそもそんな仕様で作れるのかも分からないので参考になりそうな資料があったら教えてください
394蟻人間 ◆T6xkBnTXz7B0 (スフッ Sdff-uiLC)
2019/05/25(土) 14:07:06.16ID:ro0ZuUFGd
「Twitter API PHP」でウェブ検索。

https://qiita.com/yokoh9/items/760e432ebd39040d5a0f
困難出ましたけど。
395デフォルトの名無しさん (ワッチョイ dfa9-Fpyl)
2019/05/25(土) 20:12:23.16ID:LACToUkl0
勉強中の身であり、変数の名前に気になるところがあるのですが、
$productName
$productColorとか、単語を並べてわかりやすくする時、2単語目は1文字目は大文字なのに、
先頭の単語は大文字にならないのをよく見受けるのですがなぜでしょうか?
396デフォルトの名無しさん (アウアウエー Sa9f-AYWk)
2019/05/26(日) 01:01:52.69ID:R35t2Hzta
テキトーでええねん
397デフォルトの名無しさん (ワッチョイ 7f63-+klA)
2019/05/26(日) 01:15:23.48ID:mCW+tIqA0
世の中にはいろんな宗教があって、それぞれが信じる神に従ってる
何故その宗教なのか、人によって違うrだろうけど
好きなのを選べ
398デフォルトの名無しさん (オッペケ Sr5b-rvs9)
2019/05/26(日) 01:17:46.53ID:H/eCV4+Ur
>>395
そういうもんだから、としか
ローワーキャメルケースでググって
399デフォルトの名無しさん (ワッチョイ a7ba-buEI)
2019/05/26(日) 13:54:59.26ID:QXjH/q9Q0
phpの変数の場合は先頭に$がつくから大文字開始でもいいわなと適当に無責任に思ったりする
アンダーバー使いからでした
400デフォルトの名無しさん (ワッチョイ dfa9-Fpyl)
2019/05/26(日) 19:42:15.61ID:l16JnEYu0
レスどうもです、色々見てみました。
たしかに組織の中でルールを統一しないと色々不便があると思うので、こういうのがあるのですね。
for文のどこに半角スペースを入れるか入れないかでも悩んで居るので
できるだけ「ベタ」なやり方に沿っていたほうが良いとは思うのですが、標準化というのかわかりませんが、
そういう心構えを案内しているサイトは、何でググればいいでしょうか?
401デフォルトの名無しさん (アウアウエー Sa9f-g/Ks)
2019/05/26(日) 19:44:56.69ID:kz8BVyYaa
psr
402蟻人間 ◆T6xkBnTXz7B0 (スフッ Sdff-uiLC)
2019/05/26(日) 19:46:34.19ID:zbyp88Owd
PHP コーディング規約
403デフォルトの名無しさん (ワッチョイ 671f-3Zqm)
2019/05/26(日) 19:55:20.42ID:4NUXcUki0
glassfishは使えますか?
また、類似のものはありますか?
404デフォルトの名無しさん (ワッチョイ dfa9-Fpyl)
2019/05/28(火) 07:44:27.33ID:qfX7VqbU0
>>401-402
ありがとうございます。
たしかに「〜しなければならない」と書かれると守らないより、守った方が色々トラブルなどにならないかもしれないので、
できるだけ遵守したいと思います。
405デフォルトの名無しさん (ワッチョイ 6aa9-yed5)
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.'人目のお客様です';
?>
406405 (ワッチョイ 6aa9-yed5)
2019/06/02(日) 06:57:52.85ID:+gCp7rkB0
×:ただ、$count = $count = 1;とすると
○:ただ、$count = $count + 1;とすると

です、すいません。
407デフォルトの名無しさん (ワッチョイ f384-Trtn)
2019/06/02(日) 11:07:27.99ID:mXZMYbpt0
$count = intval(trim(fgets($fp, $counter_length)));
408デフォルトの名無しさん (ワッチョイ 66ca-4mik)
2019/06/02(日) 22:38:21.40ID:8A/taE5v0
>>405
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から始まる整数ですが、
プログラマが指定しているので連想配列ですか?
410デフォルトの名無しさん (ワッチョイ 6aa9-yed5)
2019/06/03(月) 01:48:26.16ID:AHqJ7vTG0
>>408
なんとなく使い出したatomの仕様でした。
datファイルを1バイトの文字だけ書いて上書き保存すると0A0Dの文字コードが足されていました・・・
string(3)というのが不思議だったのですが、自分で1バイトなのになぜ?と思い込みが強く気付くのが遅れてしまいました。

fread, fwriteというのがあるのですね。
検索すると色々出てきたりするのですが、どれも正しいものと思っていたのですが、
時代的に推奨されない関数などがあるようで、そのあたりの見極めが良くなりたいです。

>>407
excelの関数でたくさん入れ子になったものを見たことがあります、こんな感じでまとめられるのですね。
411デフォルトの名無しさん (ワッチョイ 66ca-4mik)
2019/06/03(月) 09:41:17.43ID:3s7VSFTB0
>>410
php では fputs と fwrite は全く一緒。
C なんかだと文字列長をサイズなり終端文字なりで示す必要があるので、その示し方の違いで関数が別れてる。
php の変数は文字列の長さを変数自体が知っているから、fputs と fwrite に違いを付けようがない。

fgets については、改行かファイル終端まで、または指定サイズに達するまで読み込むが、fread は改行で読み取りをやめない点が違う。
対象のファイルが改行区切りのテキストファイルを読む場合は fgets が便利に使えることも多い。
でも今回のカウンタファイルはカウント値がひとつ書いてあるだけのファイルだから fgets でも fread でも表向きの結果は一緒だけど、
それでも fgets は改行を探しながら読み取る分少し遅いことが予想される。
そもそも fgets を使う場面では、そのファイルが改行で区切られていることを暗に示しているので、今回の使用を表すコードとしては適切と言えない。
412デフォルトの名無しさん (ワッチョイ 66ca-4mik)
2019/06/03(月) 09:43:52.91ID:3s7VSFTB0
>>411
正 今回の仕様を表すコード
誤 今回の使用を表すコード
413デフォルトの名無しさん (ワッチョイ 4aa7-Trtn)
2019/06/03(月) 18:57:23.86ID:lAZ+x+Rt0
行というのは改行で終わるものだからね
414デフォルトの名無しさん (ワッチョイ 6aa9-yed5)
2019/06/05(水) 02:56:36.81ID:a7gcDC7N0
遅くなってすいません。
カウンターのデータとしてあるべき姿ではありませんが、複数行に数字を書いたファイルを
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'
)";
417デフォルトの名無しさん (ワッチョイ 275f-xU2V)
2019/06/15(土) 23:59:21.35ID:sjL7iEiN0
>>409
型が不定型なら連想配列なんじゃね
418デフォルトの名無しさん (ワッチョイ 4e63-9ye8)
2019/06/16(日) 00:00:24.76ID:RqGVrKm70
>>416
desc comments か show create table comments の結果を見せて
419デフォルトの名無しさん (ワッチョイ 768c-EjMK)
2019/06/16(日) 00:46:03.82ID:mnCyhttK0
`number`
`name`
`time`
`comment`
420蟻人間 ◆T6xkBnTXz7B0 (スフッ Sdba-1i7F)
2019/06/16(日) 00:53:30.95ID:QegIZpn+d
BUCK-TICK
421デフォルトの名無しさん (ワッチョイ 5ab6-aDQK)
2019/06/16(日) 00:54:21.78ID:iLpQBBTE0
エラーの内容くらい貼れよ
422デフォルトの名無しさん (ワッチョイ 768c-EjMK)
2019/06/16(日) 01:16:21.26ID:mnCyhttK0
>>416
解決しました、このコードの前の変数代入のスペルミスでした、お騒がせしました
423デフォルトの名無しさん (アウアウエー Sa52-T4Zx)
2019/06/16(日) 01:35:18.28ID:nxr18ojea
sqlインジェクション
424デフォルトの名無しさん (ワッチョイ 9a2c-oZrO)
2019/06/16(日) 01:43:15.14ID:z9IiVZ7F0
自分で、SQL 文を組み立てて送信するのは、
SQLインジェクションもあり、お勧めできない!

フレームワークには、O/R マッパーが付いている

Ruby on Rails を知っているなら、CakePHP も出来る。
CakePHPは、Rails のコピーだから!

掌田津耶乃が、CakePHPの本も書いてる。
彼は、ほとんどのフレームワーク・ゲームエンジンの本も書いてる
425デフォルトの名無しさん (ワッチョイ b6ca-JHSl)
2019/06/17(月) 04:24:41.50ID:uk/AI0sh0
in とか like とか動的な条件式を構成する程度のありふれたことをやるにもおかしなラッパやライブラリを作るハメになるから、
SQLインジェクション対策ごときで有りもののフレームワークに拘る必要なんて全く無い。
426デフォルトの名無しさん (ワッチョイ fa5c-2qry)
2019/06/17(月) 08:29:41.28ID:1fS1Pgsf0
プレースホルダ使えばいいじゃん
427デフォルトの名無しさん (ワッチョイ b6ca-JHSl)
2019/06/17(月) 08:48:58.25ID:uk/AI0sh0
>>426
だからPDOで充分じゃん。
でもPDOの名前つきプレースホルダは、値を入れる連想配列に余剰な項目があるとエラーになっちゃうのがイケてないんだよな。
いくつかSQLを続けて発行しようと思っても、同じ連想配列の使い回しがやりづらい、というか実質できない。
なんでこんな余計なお世話の仕様にした。
428デフォルトの名無しさん (ワッチョイ fa5c-2qry)
2019/06/17(月) 09:16:38.19ID:1fS1Pgsf0
そのつもりで言ったんだけどね
429デフォルトの名無しさん (アウアウウー Sac7-2qry)
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にして、
証明書のチェック自体をしないようにしたらエラーは消えましたが、
なぜ証明書ファイルを設定してもエラーになったのかが気になります
どんな原因が考えられるでしょうか?
430デフォルトの名無しさん (アウアウウー Sac7-2qry)
2019/06/18(火) 01:05:53.87ID:90gU7PyPa
>>429
もしかして読み込み先のサーバに問題があるのでは?
と思って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に一晩も反応する異常さ
一般人(学校恩師)に殺害予告をしているのでスレ建て通報してください。
http://2chb.net/r/tech/1559872586/

142 名前:a4 ◆700L1Efzuv 投稿日:2019/06/18(火) 05:29:55 ID://qVkzO
>>141
名古屋の人な 俺ね、君の問題を大橋先生と混ぜないことにする。つまりね、
片桐孝洋のことをボコろうと思う。普通に顎の骨を折る。これくらいで警察来るか?
一般市民とかさ、普通にさ、俺らの秘密なんだけどさ、日本人なんて復活ねーから。
432デフォルトの名無しさん (ワッチョイ 5b0f-hwLH)
2019/06/18(火) 17:22:41.03ID:HA3mKCJN0
ファイルの書き出し処理で分からないことがあったので質問します

Windowsでファイル名に使えない文字がありますよね
日本語だと、全角文字に置き換えるということができますが
海外だと、どんな方法で対処してるのでしょうか?

英語というか、1バイト文字でどう回避してるのか、よく分からないです
全部 _(アンダースコア)で置き換えとか?
433デフォルトの名無しさん (ワッチョイ 9961-f3ih)
2019/06/24(月) 20:15:24.96ID:m1x6Lozf0
音楽ファイルなんかでよく見るけど予約文字は大体アンダースコアになってるね
アポストロフィや?は省略されてることが多い
434デフォルトの名無しさん (ワッチョイ d35c-Im5L)
2019/06/24(月) 20:38:24.35ID:OkN3wkON0
XML文字参照とかコードポイントとか
435デフォルトの名無しさん (ワッチョイ caa9-Eaty)
2019/07/03(水) 08:09:50.05ID:NH/ScEyz0
単一のphpで、1つのinput textからポストしてデータベースに接続してselectしてレコードを
input textの下に表示する、というコードを書いて動いたのは嬉しいのですが、

functionは使っていません。
いずれclassの中にfunctionを入れたいのですが、私のphp部分なら30行ぐらいのコードでもそういう
ことができるのでしょうか?

人のコードで、functionばかりあって、最後に
main();

みたいなのがありますが、それが行き着く先の形なのでしょうか。
436デフォルトの名無しさん (ワッチョイ caa9-Eaty)
2019/07/03(水) 08:11:47.66ID:NH/ScEyz0
補足です。
sqlインジェクションとかXSSとかの対策も知らないのでそのままではダメですが、
自分なりの堅牢なfunctionを作って、それを組み合わせるというのがphpプログラマーなのでしょうか。
437デフォルトの名無しさん (ワッチョイ 9565-NNfO)
2019/07/03(水) 11:15:42.58ID:XrINKmpg0
>>435
「PHP デザインパターン」で検索
438デフォルトの名無しさん (ワッチョイ caa9-Eaty)
2019/07/03(水) 18:55:14.56ID:NH/ScEyz0
>>437
ありとうございます。デザインパターンで検索するとちょっと内容が濃すぎました。
オンラインの学習でclassやextendを使った内容は一通りやってみたのですが、

既存のfunction無しのコードを、classやfunctionありのコードに直すのではなくて、
始めから書き直すことになりそうですね。
439デフォルトの名無しさん (ワッチョイ 6aa7-NNfO)
2019/07/03(水) 19:37:45.44ID:G8Yh9hPC0
>>438
「PHP リファクタリング」で検索
リファクタリングして、デザインパターンに寄せるのがいい設計のひとつ。

30行ぐらいのコードでも機能が3つあれば、10行ずつ3つに分けてfunctionにしてもいい。
そして、それをまとめて1つのclassにしてもいい。
試しにfunction化して動かしてみて、それが出来たら更にclass化して動かしてみればいいよ。
思ったより簡単に動くから。
440デフォルトの名無しさん (ワッチョイ caa9-Eaty)
2019/07/03(水) 19:50:35.07ID:NH/ScEyz0
>>439
>試しに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)
として返ってきます

これをサラっとプレーンテキストにするにはどうしたらよいでしょか?
442デフォルトの名無しさん (アウアウエー Sab2-drJG)
2019/07/03(水) 22:29:59.38ID:/WAsDrGXa
>>441
getPlainText()
https://github.com/PHPOffice/PhpSpreadsheet/blob/master/src/PhpSpreadsheet/RichText/RichText.php
443デフォルトの名無しさん (アウアウカー Sac7-Fupf)
2019/07/04(木) 12:55:34.62ID:MdrCWp24a
ありがとー
444デフォルトの名無しさん (ワッチョイ 8f61-26dl)
2019/07/05(金) 22:39:00.25ID:tMJYpT0L0
いいってことよ
445デフォルトの名無しさん (ワッチョイ ffa9-mVFY)
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カラムではそもそも無理があるのでしょうか。
446デフォルトの名無しさん (ワッチョイ ffa9-mVFY)
2019/07/08(月) 08:17:27.48ID:lXAN+HQL0
すみません、自決しました。
コマンドのスペルミスでした。
447デフォルトの名無しさん (アメ MM27-tLYs)
2019/07/08(月) 09:21:34.11ID:QKT/WDgRM
じゃあ昔DB板にいた人たちは今どこにいるんだろ?まさかTwitterとか?w
448デフォルトの名無しさん (ワッチョイ ffa9-mVFY)
2019/07/08(月) 09:27:15.95ID:lXAN+HQL0
DB板の1-3番目はoracleですが、
3番目のスレッドは2003年のスレ立てから16年経っても250スレしかないぐらいですね・・・
449デフォルトの名無しさん (ワッチョイ cf63-mE9d)
2019/07/08(月) 12:07:56.39ID:0IJIq/+j0
DB板は比較的過疎だけど、
マイナーなDBMSでなければ
質問すれば回答してくれるよ
MariaならMySQLスレで聞けば良い
450デフォルトの名無しさん (アウアウエー Sadf-RycQ)
2019/07/08(月) 17:33:13.10ID:6c0OwKHja
>>446
自決したか
451デフォルトの名無しさん (ワッチョイ 335f-4hHn)
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日という結果が出ました
これはどういう仕様なのでしょうか?
何か見落としてますか?
452デフォルトの名無しさん (ワッチョイ 0361-mVFY)
2019/07/09(火) 00:55:35.31ID:lRtOoeh80
タイムゾーンがGMT+1の所になってるんじゃね?
453デフォルトの名無しさん (ワッチョイ 335f-4hHn)
2019/07/09(火) 01:04:45.72ID:U2Ej2IFy0
>>452
ありがとうございます
タイムゾーンを調べる方法があれば教えてもらえますか?
初心者でlocalサーバーで勉強中なのですがそれは関係ないですかね?
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のバージョン上げたら解決しました
456デフォルトの名無しさん (ワッチョイ 335f-4hHn)
2019/07/09(火) 21:07:19.77ID:U2Ej2IFy0
php.iniファイルのdate.timezoneをasia/tokyoに変更したらうまくいきました

ありがとうございました。
457デフォルトの名無しさん (ワッチョイ 6fde-R/Fd)
2019/07/10(水) 02:09:59.48ID:DphKO2vD0
mb_send_mailでメール送信すると、特定のアドレスに送信するとuser unkownになって送れない
これってsmtpの設定をしなくて直接受信サーバーを叩きにいってしまうからダメなのかな
phpmailerとかにすれば解決すると思う?
458デフォルトの名無しさん (ワッチョイ b6ba-YtL5)
2019/07/11(木) 17:07:45.46ID:Jm+T6ApQ0
ウインドウズ10で
include_once "C:/folder1/folder2/mytest.php";
みたいな絶対パス指定してphpファイルを読み込んで実行する事は出来ないの?
459デフォルトの名無しさん (ワッチョイ 9a2c-i8Xk)
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"
460デフォルトの名無しさん (ワッチョイ 3e02-boPz)
2019/07/11(木) 19:25:03.65ID:BpuSRQy60
今php.exeが配布してるか知らないが
php.exe -filename.php
的なことができるかも
461デフォルトの名無しさん (アメ MMff-9Lv1)
2019/07/11(木) 19:26:02.93ID:At9Pc1xnM
Rubyファイルは読み込めないな。
そんなゴミ入れてないからwww
462蟻人間 ◆T6xkBnTXz7B0 (ワッチョイ 0b01-KxfX)
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の答えを教エロ下さい。
464蟻人間 ◆T6xkBnTXz7B0 (ワッチョイ 0b01-KxfX)
2019/07/11(木) 20:53:35.20ID:dVCZh9+R0
>>458 >>463
https://www.php.net/manual/ja/wrappers.file.php
465デフォルトの名無しさん (ワッチョイ b6ba-YtL5)
2019/07/11(木) 21:07:42.46ID:Jm+T6ApQ0
>>464
include_onceで使えますか?
466蟻人間 ◆T6xkBnTXz7B0 (ワッチョイ 0b01-Frt+)
2019/07/11(木) 21:13:16.43ID:dVCZh9+R0
>>465
試してみなさい。危険なコードでなければ簡単には壊れないから。

危険なコードというのはファイルを削除したりシステム設定などを書き換えたりするコード。
467デフォルトの名無しさん (ワッチョイ b6ba-YtL5)
2019/07/11(木) 21:16:19.19ID:Jm+T6ApQ0
>>466
試したが出来ないんだよね。
468蟻人間 ◆T6xkBnTXz7B0 (ワッチョイ 0b01-Frt+)
2019/07/11(木) 21:18:05.78ID:dVCZh9+R0
>>467
じゃあ、エラーメッセージを確認して。phpはローカルにあるの?
469デフォルトの名無しさん (ワッチョイ b6ba-YtL5)
2019/07/11(木) 21:24:45.41ID:Jm+T6ApQ0
分からん
470蟻人間 ◆T6xkBnTXz7B0 (ワッチョイ 0b01-Frt+)
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はローカルにある
472蟻人間 ◆T6xkBnTXz7B0 (ワッチョイ 0b01-Frt+)
2019/07/11(木) 21:32:33.57ID:dVCZh9+R0
初心者は、最初に警告やエラーが見えるようにPHPを設定した方がいいよ。
473蟻人間 ◆T6xkBnTXz7B0 (ワッチョイ 0b01-Frt+)
2019/07/11(木) 21:34:41.35ID:dVCZh9+R0
パスに一字でも間違いはない? 全角・半角が間違ってない?
474デフォルトの名無しさん (ワッチョイ b31f-FfMm)
2019/07/11(木) 22:44:38.90ID:Tg5RlGHB0
そもそもphpだからって、
Webサーバでしか動かしてはいけない、
なんてルールはないと思うが
シェルスクリプトとかpythonみたいに使ったら良いと思うの
475デフォルトの名無しさん (ワッチョイ b6ba-YtL5)
2019/07/12(金) 03:54:57.52ID:B1okfPjL0
>>473
Win10にインストールしたFlywheelのPHPなんだけど、
それが絶対パスでファイルが読めない原因かな?
476デフォルトの名無しさん (ワッチョイ 9aa9-TPoM)
2019/07/12(金) 19:38:28.33ID:XTqC7rHb0
phpを始めて、50行程度で色々作ったりしているのですが、
それが合っているかどうか、無駄や脆弱性があったりと心配になるので、
webサービスでコードを貼り付けて、相談してもらうようなサービスはあるのでしょうか。

数行であればスレの皆さんにご指摘を受けるのは嬉しいのですが
多い行を貼り付けることもスレ汚しにもなるので、何か良い方法はありませんか?
477デフォルトの名無しさん (ワッチョイ 4e63-P44A)
2019/07/12(金) 19:44:27.25ID:rA9WmwUa0
>>476
長いソースなら、こういう所を利用して公開すればいい

http://codepad.org/
478デフォルトの名無しさん (ワッチョイ 9aa9-TPoM)
2019/07/12(金) 20:15:43.69ID:XTqC7rHb0
>>477
ありがとうございます。
適当にechoとか書くとシンタックスハイライトもしたので、便利ですね。
479デフォルトの名無しさん (ワッチョイ db0f-7P2I)
2019/07/15(月) 19:56:58.11ID:rFkphOJd0
ファイル名にUnicode制御文字らしきものが入ってしまったのですが
それを削除する方法を教えてください

具体的に何が入っているのかを調べる方法もあれば教えて欲しいです

【PHP】下らねぇ質問はここに書き込みやがれ 10 	->画像>16枚

twitter のツイートをコピペしたものをファイル名にする処理をしたときに
そうなりました
上の画像で言うと、@の前にある文字です
おそらく、[RLO]だと思いますが、これを取り除く方法が分かりません
480デフォルトの名無しさん (ワッチョイ ff4e-9Lv1)
2019/07/15(月) 20:00:19.90ID:38cZE3Hm0
>>479
エイサスって読んでたわw
481デフォルトの名無しさん (ワッチョイ db0f-7P2I)
2019/07/15(月) 20:17:25.90ID:rFkphOJd0
>>480
今はエイスースw

https://www.asus.com/jp/About_ASUS/about_asus_history_name

> 2012年10月よりASUSは「エイスース」と発音が統一されました。
482デフォルトの名無しさん (ワッチョイ db0f-7P2I)
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
483デフォルトの名無しさん (ワッチョイ 237c-XeHW)
2019/07/16(火) 23:25:57.59ID:6A7bTSc60
メーラーを作ってる人が集まってるスレはありますか?
484デフォルトの名無しさん (ワッチョイ 75f1-xVkp)
2019/08/05(月) 15:18:25.28ID:RvbOnux20
ものすごく基本的な質問かもしれません。

本物のサーバで実験したいのですが
PHPが使えるレンタルサーバで安いところはどこですか?
将来的にはなんらかの形でネット商売するかもしれません。
485デフォルトの名無しさん (ワッチョイ 75ba-7p+E)
2019/08/05(月) 16:46:02.19ID:v6lP0LVw0
「PHPが使えるレンタルサーバで安いところ」で検索するだけなのにマジで商売するの?
486デフォルトの名無しさん (ワッチョイ cb63-0ks1)
2019/08/05(月) 18:04:13.97ID:9k1HrfSt0
まず目の前にあるPCに仮想環境を入れて
適当なLinuxをインストールしてサーバーにしてみ
それなら好き勝手にいじれるし誰にも迷惑かけないしタダだ
そっから始めてみたらどう?
487デフォルトの名無しさん (ワッチョイ ab02-Jy+i)
2019/08/05(月) 18:06:59.08ID:9dGEiJ4q0
無料のレンタルサーバもあるんだとか
488デフォルトの名無しさん (アウアウエー Sa13-I1uE)
2019/08/06(火) 01:08:26.13ID:O5zLVi3Ca
xreaな
489デフォルトの名無しさん (ワッチョイ 23a9-dfB4)
2019/08/06(火) 05:39:37.94ID:3mWsX+4/0
CentOS6 + Remi php 5.6 で動いているphpは
CentOS7 + Remi php 5.6 でも動くのでしょうか?
DBはOSのリポジトリに登録されているmysqlを使います。
490デフォルトの名無しさん (ワッチョイ 7da7-aqzO)
2019/08/09(金) 14:28:42.09ID:NFhVNRcF0
プラットフォームによっては使えない機能や関数もあるけど
使う(必要な)パッケージが揃ってればOSによる差はだいたい設定でどうにかなる
意図的にプログラム側でOSに依存するコードやOSを制限するコード書いてなければ
CentOSのバージョンアップぐらいならそのまま使えるんじゃないの
491デフォルトの名無しさん (ワッチョイ cdba-atfx)
2019/08/22(木) 21:17:14.37ID:A5RZDSc30
php内でexecを使って外部コマンドを実行させたいです

ローカルでは成功しますが、
webブラウザだとexecでエラー126(コマンド実行不可能)が返ってきます
やはりサーバー側の問題なのでしょうか?
Xサーバーを使っているんですが、どこをいじればいいのか分からなくて・・
492デフォルトの名無しさん (ワッチョイ 7aad-HwVO)
2019/08/22(木) 23:13:57.14ID:erkZnaOI0
>>491
せめてなにを実行してるくらい書かないと誰にも伝わらんぞ
パーミッション関係だと思うけども
493デフォルトの名無しさん (ワッチョイ cdba-atfx)
2019/08/22(木) 23:31:59.91ID:A5RZDSc30
>>492
exeファイルを実行しています
パーミッションを疑って、Xサーバー側にアップしたものを全部777に書き換えたんですが動きませんでした
494デフォルトの名無しさん (ワッチョイ d663-P0k6)
2019/08/22(木) 23:47:20.75ID:9/SBo+Lw0
>>493
exeファイルって何?サーバーの既存のコマンド?
495デフォルトの名無しさん (ワッチョイ 65ca-ak5c)
2019/08/22(木) 23:47:49.02ID:cTorNwQs0
Xサーバって X window のじゃなくてレンタルサーバのことなのか。
それは置いといて、exec エラー126 で検索すると答えっぽい情報があるよ。
実行ファイル名をフルパスで書けばいいとか。
試してないけど。
496デフォルトの名無しさん (ワッチョイ d663-P0k6)
2019/08/22(木) 23:55:42.57ID:9/SBo+Lw0
XサーバーってUnix環境だと思うから、その環境で動かせるって事がまず必要だよ
もしかしてWindowsで動作するファイルをアップロードしてない?
497デフォルトの名無しさん (ワッチョイ cdba-atfx)
2019/08/22(木) 23:59:05.94ID:A5RZDSc30
>>494
いえ個人が作ったexeファイルです

>>495
それも
echo __FILE__ ;
でフルパス確認して、フルパス表記で実行したんですがエラー126のままで・・・

フルパスって
exec ("/home/hogehoge/xxxxx.com/public_html/hogehoge2/xxx.exe", $output, $error);
var_dump($output);
var_dump($error);
こういう表記でいいんですよね?
498デフォルトの名無しさん (ワッチョイ cdba-atfx)
2019/08/23(金) 00:08:16.03ID:R6Gtd6JR0
>>496
してました・・
フリーの実行プログラムを使ってるのですが、
一応Unix用のファイルも配布元が配布していて
そっちを使ってもエラー126になります・・・
499デフォルトの名無しさん (ワッチョイ 16da-P0k6)
2019/08/23(金) 00:14:11.54ID:qfZoy6uT0
コマンド叩いて動くかまず確認しなさい
500デフォルトの名無しさん (ワッチョイ d663-P0k6)
2019/08/23(金) 00:29:11.19ID:g5amacC60
>>498
ユーザーがアップロードした実行プログラムは動かせないと思う
phpやperlのスクリプトなら動作するようなので
そういうものを用意するしかないと思う
501デフォルトの名無しさん (ワッチョイ cdba-atfx)
2019/08/23(金) 00:40:04.55ID:R6Gtd6JR0
皆さんありがとうございます
根本的に無理ぽな感じですね
一人で煮詰まっていましたが、いろいろ指摘をもらってまた頑張ろうと思います
502デフォルトの名無しさん (ワッチョイ 65ca-ak5c)
2019/08/23(金) 01:41:01.56ID:TB/5V8Dm0
ちなみに何をする実行ファイルなの?
503デフォルトの名無しさん (ワッチョイ cdba-sMv4)
2019/08/23(金) 11:24:49.44ID:yZ+ijObJ0
一般的に、鯖側でexec可能になると悪意のないプログラムでもミスで鯖全体を殺してしまうリスクがあるので
鯖屋ではexecは認められない

はずよ
今時は知らんけど
504デフォルトの名無しさん (ワッチョイ cdba-atfx)
2019/08/23(金) 14:13:06.13ID:R6Gtd6JR0
最後に
Unixで実行可能なファイルで、フルパスで、パーミッションの実行権限付与したら
いけました!
4日間悩んでたのでとても嬉しいです
どうもありがとうございました!!

>>502
複雑な数値計算をするプログラムです

>>503
そうなんですね今後使えなくなったら困るな〜
505デフォルトの名無しさん (ワッチョイ cdba-sMv4)
2019/08/23(金) 14:40:43.57ID:yZ+ijObJ0
>>504
xserverでは一応、負荷かかったら制限するかもと書いてるので
その辺注意しとけば大丈夫そう
506デフォルトの名無しさん (ササクッテロラ Sp5d-x+Pl)
2019/08/29(木) 08:48:42.39ID:3m6UWwTfp
phpとかプログラム言語じゃない、ど素人向け
507デフォルトの名無しさん (ササクッテロル Sp5d-H6Z7)
2019/08/29(木) 09:33:06.07ID:eAc9JexPp
ど素人がよくそう言ってるの聞くけどプログラミング言語だよ
508デフォルトの名無しさん (ワッチョイ 9b93-PkBi)
2019/08/31(土) 00:15:45.15ID:OzmC0qXX0
って玄人気取った素人が言ってるけど実際プログラミング言語だよ
509デフォルトの名無しさん (ワッチョイ eb63-cRT5)
2019/08/31(土) 00:40:29.28ID:I1GVoNnD0
それで飯を食っているなら玄人ってことにしてあげて
510デフォルトの名無しさん (ササクッテロル Sp5d-H6Z7)
2019/08/31(土) 01:43:38.02ID:xrNrB7Pcp
ランク2多相もGADTもない言語はプログラミング言語じゃない、ど素人向け
511デフォルトの名無しさん (ワッチョイ d1ca-Uik7)
2019/08/31(土) 10:51:06.08ID:8OUIM1e40
アセンブリ言語はどうなる
512デフォルトの名無しさん (ワッチョイ eb63-cRT5)
2019/08/31(土) 11:22:22.84ID:I1GVoNnD0
アセンブリはど素人向けなんだろうな
513デフォルトの名無しさん (ワッチョイ eba7-rkig)
2019/08/31(土) 17:26:18.88ID:y90kZfvt0
煽りが低レベルすぎて
HTMLがプログラム言語じゃないとか言ってるやつと同レベルだな
俺の考えたプログラム言語の定義なんてどうでもいいっす
514デフォルトの名無しさん (ササクッテロル Sp5d-H6Z7)
2019/08/31(土) 20:12:36.71ID:xrNrB7Pcp
いやそんなのよりも、PHPなんてプログラミング言語じゃないって言ってるありがちな初級者と同レベルの煽りなんだと思うけど
515デフォルトの名無しさん (ワッチョイ 593c-cRT5)
2019/08/31(土) 20:47:12.99ID:rDlgaGGg0
HTMLはプログラミング言語ではないけどPHPはプログラミング言語です
516デフォルトの名無しさん (ワッチョイ eba7-rkig)
2019/09/01(日) 01:42:35.50ID:oQ9sDP4c0
重要なのはそこじゃない
ドヤ顔でしょうもない主張するところ
517デフォルトの名無しさん (ワッチョイ 1301-6s2Y)
2019/09/01(日) 18:47:04.65ID:pi8n90ik0
>>513>>515
プログラム言語には変数という概念が必要。
この定義に従うと、PHPはプログラム言語だが、HTMLはプログラム言語ではなくマークアップ言語。
518デフォルトの名無しさん (ワッチョイ eb63-cRT5)
2019/09/01(日) 18:56:01.44ID:be8Xi7zB0
FORTHに変数ってあったっけ?
519デフォルトの名無しさん (ワッチョイ 61ba-kL5O)
2019/09/01(日) 19:24:54.50ID:L/37ZEtD0
HTMLはWEB屋がプログラマーを自称するための鉄板ネタやぞ
520デフォルトの名無しさん (ワッチョイ 0b02-jO9F)
2019/09/01(日) 19:26:15.32ID:dY+gxW9G0
HTMLは演算をされない大きな変数だ
521デフォルトの名無しさん (アウアウウー Sa55-B4Sw)
2019/09/01(日) 20:03:49.25ID:2ExHr6mca
phpできない俺からすれば、if使えてる時点で立派なプログラム言語だと思うけどなぁ。
522デフォルトの名無しさん (ワッチョイ d1ca-Uik7)
2019/09/02(月) 02:35:19.10ID:bVR0oMnG0
>>519
HTMLというよりJS(中身はjqueryみたいなのを使ったコピペ)じゃなくて?
523デフォルトの名無しさん (ワッチョイ ebd2-cRT5)
2019/09/03(火) 08:37:44.27ID:+M/fA+P50
HTMLはチューリング完全じゃないからプログラミング言語じゃないな
HTML+CSSはチューリング完全だとか
524デフォルトの名無しさん (ササクッテロル Sp5d-H6Z7)
2019/09/04(水) 02:23:04.72ID:9ku/gwG+p
プログラミングのために作られてればルログラミング言語だよ
525デフォルトの名無しさん (ワッチョイ d101-cRT5)
2019/09/04(水) 02:48:53.01ID:tMaJNHAd0
プログラミングのために作られてればエログラミング言語だよ
526デフォルトの名無しさん (ワッチョイ 9b38-cRT5)
2019/09/04(水) 21:58:33.15ID:8xuaC0PC0
初学者です
たとえば「ブログ」ページの「php」カテゴリーの「2」ページ目を表示したい場合、
URL(略~index.php? content=blog &category=php &page=2)
のように、GETメソッドでリンクから送った変数を取得していく方法でよいのでしょうか?
一応表示は出来るのですが、条件をつけるたびにどんどんURLが長くなっていくのが気になって
何か他にもっとスマートな方法があったりします……?
527デフォルトの名無しさん (ワッチョイ 593c-cRT5)
2019/09/04(水) 23:00:10.33ID:LjVvm2Gp0
クエリじゃなくてパス(例: /blog/php/2)にすればいいんじゃない
あと普通はblogは独立したアプリになると思うから、/index.php?content=blog よりは /blog.php or /blog/index.php の方が自然
528デフォルトの名無しさん (ワッチョイ 8638-kyym)
2019/09/05(木) 21:12:53.07ID:NNGkGktH0
ありがとうございます
むむむ、WordPress的にコンテンツブロックを入れ替えられるようにするべきなのかと思ったのですが、
やっぱりblog.phpで作る方が自然なんですね
実は独立したアプリという意味がよく分かっていないので、調べてみます
529デフォルトの名無しさん (ワッチョイ 2ea7-OrRa)
2019/09/06(金) 18:31:00.60ID:HnthDg8s0
>>526
googleさんdisってんですか?

content=blogをAとして
category=phpをBとして
page=2をCとすれば
ABCで表現できる
530デフォルトの名無しさん (ワッチョイ dd5f-AFg9)
2019/09/09(月) 04:10:30.20ID:CJs/c5Zv0
絶対にやるなと書いてあったのですが

unset関数でグローバル変数のSESSION自体を消してしまうとどうなるんですか?unset($_SESSION←こんな感じで

そのサーバー上では二度とセッションを使えなくなるとか?取り返しのつかないことになるのですか?
531デフォルトの名無しさん (ワッチョイ 2ef2-iQvV)
2019/09/09(月) 07:32:29.32ID:T88U5mPK0
上島竜兵へのフリなんで気にしないでいいよ
532デフォルトの名無しさん (ワッチョイ 2ea7-OrRa)
2019/09/09(月) 14:19:05.34ID:+lHTuL5H0
>>530
少なくとも自分の環境じゃなにもおきない
$_SESSION自体をunsetしたあとも普通に登録できるし
別セッションで変数登録したあとunsetしても別セッションには影響ないし
最悪おかしくなってもサーバ再起動すれば問題ないだろう
まあやるなって言われてることはやらないほうがいいんじゃね
ソースコード読めば何が問題なのかわかるかもしれんが大変だしね
533デフォルトの名無しさん (ワッチョイ 2ea7-BGeg)
2019/09/09(月) 19:26:46.12ID:TVbaw9og0
>>530
unset($_SESSION)とか全部消そうとするとセッション変数自体が消えて使えなくなるからダメで unset($_SESSION['hope'])とかやるのはok
セッション全部消すならsession_destroyを使う
ログオフする処理に使っているよ
534デフォルトの名無しさん (ワッチョイ dd5f-AFg9)
2019/09/09(月) 21:54:18.14ID:CJs/c5Zv0
>>532
>>533
ありがとうございました

何かあったら対処できないと思うので使わないようにします(^^;
535デフォルトの名無しさん (ワッチョイ 2e63-kyym)
2019/09/09(月) 23:48:15.95ID:FC2yYF8l0
PHP7で脆弱性見つかる
7.1.32よりも前
7.2.22よりも前
7.3.9よりも前
それぞれアップデートしてくれって
536デフォルトの名無しさん (ワッチョイ 311f-qnD4)
2019/09/10(火) 22:14:03.52ID:uk11iNHw0
javascriptの力を借りずに非同期でサーバーサイドに処理投げてサクサク動かすことは可能ですか?
537デフォルトの名無しさん (ワッチョイ 81ca-l2z0)
2019/09/10(火) 22:24:54.71ID:KbtshmUG0
>>536
フレーム使ってやる感じになるのかな?
ajaxなんてのが確立されてなかった頃に似たようなことをフレーム使ってやったことがあるけど、javascriptは使った。
538デフォルトの名無しさん (ワッチョイ 453c-kyym)
2019/09/10(火) 22:59:10.53ID:bRYQFbtI0
出来たとしてもやるべきではない
539デフォルトの名無しさん (ワッチョイ 81ca-l2z0)
2019/09/10(火) 23:12:41.69ID:KbtshmUG0
なんで?
540デフォルトの名無しさん (アウアウウー Sa63-pvBM)
2019/09/12(木) 01:45:24.47ID:fy3hyy0Da
「なんで?」に返答するコストが高い問題定期
541デフォルトの名無しさん (ササクッテロラ Sp73-J3NS)
2019/09/12(木) 08:43:07.82ID:s3ehzYuzp
それに近い考えでサーバーサイドレンダリングってのがある
流行るかどうかは不明
542537 (ワッチョイ 9fca-wSIV)
2019/09/12(木) 09:37:33.95ID:qG3+qr6E0
あー質問の意味を取り違えてた
今ブラウザ上で行ってる処理をサーバサイドでやらせるってことか。
例えばオセロのコンピュータ側の処理をブラウザ上のJSじゃなくてサーバサイドでやるみたいな?
543デフォルトの名無しさん (ワッチョイ 7fa7-+fUR)
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設定なんかあって接続してるのか?
545デフォルトの名無しさん (ワッチョイ 7f2c-HuMN)
2019/09/17(火) 14:56:43.70ID:aFTX7+W50
Ruby on Rails のデータベース設定ファイルには、host という項目があって、そこでホスト名を指定する

host: localhost
546デフォルトの名無しさん (ワッチョイ a95f-e9fJ)
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文の中では何か決まりがあるのでしょうか?

よろしくお願いします
547デフォルトの名無しさん (ワッチョイ eaa7-0RA9)
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の本の最初のほうに書いてることだと思うがね
忘れちまったのかい
548デフォルトの名無しさん (ワッチョイ eaa7-0RA9)
2019/10/08(火) 09:24:39.62ID:ICRAu8JP0
↑訂正
"略 WHERE name='" . $name . "'";

'略 WHERE name="' . $name . '"';
549デフォルトの名無しさん (ワッチョイ 6661-uMLw)
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]);
550デフォルトの名無しさん (ワッチョイ eaa7-0RA9)
2019/10/08(火) 14:00:48.65ID:ICRAu8JP0
それはたぶん5ページぐらいあとに書いてると思うからあえて言わんかったけど
551デフォルトの名無しさん (ワッチョイ a95f-e9fJ)
2019/10/08(火) 20:15:02.70ID:M4B81Xan0
>>547
ありがとうございました。
やはり持ってる本には説明がないので別の本を買いました
こんな重要な事が書いてないとは

>>549
了解です
ありがとうございました。
552デフォルトの名無しさん (ワッチョイ 5701-0MPl)
2019/10/12(土) 23:40:21.29ID:TjciH4iB0
親クラスのメソッド内で、protectedコンストラクタを持つサブクラスを生成する場合、
new static()ではなく、クラス名を直接指定してnew SubClass()でも生成出来るのは正常な仕様ですか?
この辺調べても、なかなか出てこないので・・
553デフォルトの名無しさん (ワッチョイ d7a7-P4H7)
2019/10/13(日) 17:24:19.33ID:54KD8QD50
https://www.php.net/manual/ja/language.oop5.visibility.php
554デフォルトの名無しさん (ワッチョイ 7705-4AsH)
2019/10/16(水) 21:27:10.98ID:3M2x+3910
素朴な疑問、PHPファイルをダウンロードしてきて、コピペでサーバーディレクトリに貼り付けると500エラーになるのってどういう原理?

仮想サーバーで動かしてる方にコピペは動くんだが、ネットのサーバーってFTPとか挟まないともしかしてアップロード出来ない仕組み?
レンタルサーバーで借りてる方はFTP通してアップロードしてて、そんな事起きた事ないから分からん
555デフォルトの名無しさん (ワッチョイ 9f01-osc9)
2019/10/16(水) 21:50:13.55ID:VikEwu130
>>554
.htaccess
が怪しそう。それぞれ、どうなってますか?
556デフォルトの名無しさん (ワッチョイ b73c-NJTS)
2019/10/16(水) 22:57:49.93ID:S66UuMjo0
パーミッション
557デフォルトの名無しさん (ワッチョイ ff61-eTHQ)
2019/10/16(水) 23:00:50.37ID:N6aKGsVs0
改行コードかも
558デフォルトの名無しさん (ワッチョイ 7705-4AsH)
2019/10/16(水) 23:24:41.77ID:3M2x+3910
>>555-557
意外と心当たりあるもんだな
改行コードは盲点だったわ
そんな事あるのか
559デフォルトの名無しさん (ワッチョイ ff63-NJTS)
2019/10/16(水) 23:33:52.64ID:m+bghU330
>>558
viが使えるならそれでソースを開く
行末に ^M って出るかも
DOSの改行はCRLFだが
Unix系はLFだけでいい

取り除きたいなら開いているvi上で
:%s/^M//
と打ち、リターンキー
560デフォルトの名無しさん (ワッチョイ ff63-NJTS)
2019/10/16(水) 23:37:26.54ID:m+bghU330
ちょっと不親切だったな

^Mは制御文字なので、CTRL+Vと打ってから続けてCTRL+Mと入力

:%s/^M$//

念のため、$も入れておこう
561デフォルトの名無しさん (アウアウウー Sa43-P0mv)
2019/10/17(木) 22:47:52.05ID:ScmICnbXa
それは 行頭のMだけを削除するという意味?
改行コードが違う時ってどんなふうにviで見えるんだろう
562デフォルトの名無しさん (ワッチョイ e363-S3Tg)
2019/10/17(木) 23:11:28.85ID:J+0mBkyh0
掲示板だと区別付かないんだけど
^Mで一文字の制御文字を意味する
vi(vim)の画面で見るとカラー表示するので区別できる
設定次第だけども
563デフォルトの名無しさん (ワッチョイ 3702-BV4E)
2019/10/18(金) 01:08:35.01ID:kVATbc+M0
改行コードでエラーになるのか
どっちでもエラーに遭遇したことなかったから勉強になった・・・ような
どうせ忘れてしまう可能性が高杉
564デフォルトの名無しさん (ワッチョイ 8ac5-qV4/)
2019/11/03(日) 21:12:04.91ID:A7Digd0J0
PHPってインタプリタですか?
565デフォルトの名無しさん (ワッチョイ 9fc5-DaD1)
2019/11/07(木) 18:25:52.30ID:pG3Lscph0
なんでだれも答えてくれないんですか!プンプン!
もういいです自分で調べます!
566デフォルトの名無しさん (アウアウエー Sa3f-AXNO)
2019/11/12(火) 23:24:53.56ID:53ocb9qja
オレンジクインという葉が黄色い白菜は緑黄色野菜になるのでしょうか?
567デフォルトの名無しさん (オッペケ Sr11-wiCk)
2019/11/14(木) 11:52:42.61ID:UbsUbcmDr
PHPを勉強しますが、いわゆる駄目なコード(メンテ不能とか他人が読めないとか)を書かないようにするための方法がまとめられた書籍とかWebサイトってありますか?
ググって見ましたが、Githubの他人のコードを読むとかとにかくググるとかで、お手本が一箇所にまとめてあるような事例が見つかりません
そもそもプログラミング初心者なのでどういうコードが良くて駄目なのか根拠が無いと理解できないので、Webサイトで調べるのはちょっとハードル高いです
568デフォルトの名無しさん (ワッチョイ e902-yJHQ)
2019/11/14(木) 12:34:11.76ID:yaNNoKNo0
最初から完璧を目指してると前に進まない上に身にも付かないんで
気にせずガンガン組んで経験値上げた方がいいよ

経験値上げる=ダメコードが分かってくる
569デフォルトの名無しさん (ワッチョイ 06a0-wiCk)
2019/11/14(木) 12:34:45.58ID:4neB2vdG0
リーダブルコードとかじゃね
読んだこと無いけど
570デフォルトの名無しさん (ワッチョイ d163-iGNt)
2019/11/14(木) 12:49:12.10ID:lyAVwglk0
読みやすいコード手法やアルゴリズムを勉強したいなら、
もっとシンプルな、例えばC言語や、Javaで勉強しtが方が良いと思う
PHPはどちらかと言うと実用本位で動けば何でもありの書き方してしまうから
人によって書き方も違うし、手本にして学ぶというのには向かない気がする
571デフォルトの名無しさん (ワッチョイ e189-wiCk)
2019/11/14(木) 14:29:48.81ID:YV+wn0qT0
>>567
初心者にあれこれ言っても仕方ないと思うので
Beauty Is in Simplicity code
という言葉を送る

日本語訳は「美はシンプルさに宿る」や「プログラマが知るべき97のこと」でググるといい
572デフォルトの名無しさん (ワッチョイ d163-iGNt)
2019/11/14(木) 14:38:58.41ID:j9FdlXq90
キモ
573デフォルトの名無しさん (ワッチョイ 8201-k7wz)
2019/11/14(木) 18:46:20.22ID:dCzlDN8+0
>>567
他人なんて気にするな。
一年後の自分が読んで理解できるコードを書けば良い。
574デフォルトの名無しさん (オッペケ Sr11-wiCk)
2019/11/15(金) 17:40:16.12ID:3geqpL2yr
>>568-573
初心者のうちから変な癖をつけないようにしたと思いましたが
あれこれ手を広げないほうがいいかなとも思っていました
PHP自体が可読性より生産性を重視してるのなら
初心者のうちは経験値を積んで生産性をあげて
次のステップとしてリーダブルコードで読みやすさなどを学ぶことにします
みなさん回答ありがとうございました
575デフォルトの名無しさん (ブーイモ MM76-Xz/Q)
2019/11/15(金) 17:49:19.08ID:oPXVgqk1M
実際に動いているPHPって
HTMLのソースみたいにソースコードを見ることは、できないのですか?
576デフォルトの名無しさん (ワッチョイ d163-jvSr)
2019/11/15(金) 17:54:31.71ID:NeivSIGq0
観客席からは見れない
舞台裏に回れば見れる
577デフォルトの名無しさん (ブーイモ MM76-Xz/Q)
2019/11/15(金) 18:01:55.55ID:oPXVgqk1M
PHPのソースは見れるかと聞いておるのだ。
誰か分かる者はいないのか?
この馬鹿モンが!
578デフォルトの名無しさん (ワッチョイ 06a0-wiCk)
2019/11/15(金) 18:36:29.53ID:kIm7g0zF0
厳密に言えば見れるよ、ハック的な手段で
たまにソースコード流出とかって騒ぎになってるじゃん、あれやれば見れる
頑張って勉強しろ
579デフォルトの名無しさん (ワッチョイ d163-jvSr)
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が返ってきているわけではありません。
このようなケースで想定される原因は何か、
お教え下さい。
581デフォルトの名無しさん (ワッチョイ 36a0-o7DB)
2019/12/02(月) 18:12:49.06ID:OjDe9qis0
その関数フロントで生成されるコードは取得できなかった筈なんでそれじゃね
仮想端末挟んで生成してもらってからソース取得の処理作るかで悩んだ覚えある
結局pythonとかJavaScriptにクローラー向きのAPI一杯あるからそっちで操作した方がラクって結論に落ち着いたけど
582デフォルトの名無しさん (ワッチョイ 5ea7-8b9h)
2019/12/02(月) 19:19:41.96ID:VMZvMN3R0
解決したから原因までは特定しなかったけど
fsockopenだとうまくいくけど
file_get_contentsじゃうまくいかない
ということはあったな
同じcontext使ってるんだけどね
cURL使うと多分うまくいくよ
583デフォルトの名無しさん (ワッチョイ d9c9-+PZ0)
2019/12/03(火) 23:22:42.46ID:8Kx0IsVg0
>>581,582
回答ありがとうございます。
なるほど、動的なコンテンツはこの関数では取得できないのですね。もう少し構造について調べてみます。
curlや他の言語も検討してみます。
584デフォルトの名無しさん (ワッチョイ 922c-Ql8R)
2019/12/04(水) 01:38:24.44ID:9qyS2PwK0
例えば、5ch みたいに最初に、空のHTML を送ってきてから、
その後、Ajax で内容をサーバーから取得するようなページでは、
普通のクローラーでは、確実に取得できない

そういう場合は、Ruby などで、Selenium WebDriver を使って、
人がやるのと同じように、ブラウザを操作すれば取得できる
585デフォルトの名無しさん (ワッチョイ 5ea7-8b9h)
2019/12/04(水) 07:43:35.40ID:xeP1zjgo0
JS挟んだあとのコードがほしいって話なのか
ソースの表示のソースが取れればいいものかと
そりゃ普通にやってちゃ無理だわな
586デフォルトの名無しさん (ワッチョイ c508-o7DB)
2019/12/04(水) 10:39:16.66ID:ynT0rzJO0
まぁ今どきPHPでスクレイピングなんてやらないしな
Python使えPython
587デフォルトの名無しさん (ワッチョイ d963-3RYV)
2019/12/04(水) 11:38:04.31ID:HJOtve5N0
ここはPHPのスレ
588デフォルトの名無しさん (ワッチョイ 36a0-o7DB)
2019/12/04(水) 11:52:57.07ID:M0bOyCLn0
だからどうした
そもそも向いてねンだから無理矢理処理作ったってしゃーねーだろ
何でもかんでも手作業で作ってたらキリねーぞラクな方行けラクな方
589デフォルトの名無しさん (オイコラミネオ MM91-28Z4)
2019/12/04(水) 12:51:22.94ID:uy3yV12YM
pythonはスクレイピングしやすいの?
ちょっと興味出てきた
590デフォルトの名無しさん (ワッチョイ a291-ByFH)
2019/12/04(水) 12:56:11.50ID:kZk+LcEC0
へんなやつにからまれているね
591デフォルトの名無しさん (ワッチョイ 1261-luhV)
2019/12/04(水) 13:46:24.53ID:I65RuVdL0
python自体がjavascript動かしてスクレイピングできるわけじゃないよ
たいていwebdriverでheadless chrome動かしてそれを取るだけ
phpにもwebdriverはあるので同様のことはできる
592デフォルトの名無しさん (ワッチョイ c508-o7DB)
2019/12/04(水) 16:23:36.96ID:ynT0rzJO0
>>589
Python Seleniumでググってみ
すげぇ簡単だぞ
原理的には>>591の書いてる通りだが手軽さはPHPの比じゃない

>>588
だよな
言語なんか手段にすぎないのだから目的に応じて生産性の高い手段を選べってことだ
1つの言語に齧りついてるのは能無しの証拠
593デフォルトの名無しさん (ワッチョイ 36a0-o7DB)
2019/12/04(水) 16:56:56.54ID:M0bOyCLn0
>>592
能無しっていうか
まぁこだわりがあるなら別にそれでもいいとは思うよ
内部動作のよく分からん機械に依存するのが不安だって気持ちも分かるし
彫刻刀一本であらゆるものを作りたいって人を否定する気は無い

電ノコやドリルが入った工具箱が横に置いてあるなら俺はそっち使うけど
594デフォルトの名無しさん (ワッチョイ d963-3RYV)
2019/12/04(水) 17:22:33.33ID:HJOtve5N0
職場で叱られたのかな?
595デフォルトの名無しさん (ワッチョイ 4b5f-q31q)
2019/12/12(木) 00:04:39.58ID:8N8BhmJA0
phpStormでアロー演算子使って無名関数宣言すると警告出るのどうしてる?
596デフォルトの名無しさん (ワッチョイ e2a9-kui+)
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
と矛盾した感じになっていますが、どこにその設定が書かれているか探す方法はあるのでしょうか?
597デフォルトの名無しさん (ワッチョイ fb63-xO71)
2019/12/16(月) 00:12:25.13ID:9m9cmyeR0
>>596
せめて古い環境、新しい環境のバージョンくらいは教えてくれないと
598デフォルトの名無しさん (ワッチョイ e2a9-kui+)
2019/12/16(月) 00:23:45.45ID:eA/7D1/t0
申し訳無いです。
CentOS5 の PHP 5.1.6 (cli)です。

新しい環境はCentoOS7のbaseにある5.4にて動くか試しているのですが、たくさんnoticeやwarningが出ていますが、
とりあえずこの古い環境でTokyoがどこから来ているか不思議な感じです。
599デフォルトの名無しさん (ワッチョイ a201-VrMI)
2019/12/16(月) 00:30:59.80ID:+KWK+mzK0
https://www.php.net/manual/ja/function.date-default-timezone-get.php
600デフォルトの名無しさん (ワッチョイ fb63-xO71)
2019/12/16(月) 00:42:43.65ID:9m9cmyeR0
>>598
/etc/php.iniの870行目辺りに
date.timezone がコメントになって書かれてない?
そこを編集して設定すれば良いと思う
あやふやなので間違ってたらごめん
601デフォルトの名無しさん (ワッチョイ fb63-xO71)
2019/12/16(月) 00:49:25.28ID:9m9cmyeR0
>>600は、CentoOS7のPH5.4での話ね
602デフォルトの名無しさん (ワッチョイ e2a9-kui+)
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に記載します
603デフォルトの名無しさん (ワッチョイ e2da-6dnz)
2019/12/16(月) 10:08:56.19ID:ATUYW4cO0
date()よりgmdate()+9*60*60の方が速い
604デフォルトの名無しさん (ワッチョイ e22c-3siJ)
2019/12/16(月) 13:14:39.22ID:49FYnnWe0
JavaScript でも、サーバー側のNode.js では、UTC。
一方、クライアント側のブラウザでは、Local Time

たぶん、Ruby, PHP もサーバー側だから、UTC にしたいのだろう
605デフォルトの名無しさん (ワッチョイ a201-VrMI)
2019/12/16(月) 13:57:00.03ID:+KWK+mzK0
>>602
>この「0」が効いているからでしょうか? php.iniの設定がどこかで無効に上書きされていると考えればいいのでしょうか?

デフォルトはNULLなのでどっかで設定してるんじゃないのかな

$ php -i | grep '¥.ini'
で他に読み込んでる設定がないか確認するといいと思う
606デフォルトの名無しさん (ワッチョイ e2a9-kui+)
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だけでした。
不思議な感じですが新しい環境へ移していこうと思います。
607デフォルトの名無しさん (ワッチョイ 6b08-kui+)
2019/12/17(火) 17:27:08.07ID:0aBJN6Tz0
E_ALL & E_STRICT
って設定懐かしいな。何年前のPHPだw
608デフォルトの名無しさん (スプッッ Sd22-q31q)
2019/12/18(水) 01:07:49.35ID:qvYpa8W8d
74のpreloadとffiめっちゃいいな。
いいんだけど、ffi現場で使ってる人いる?
609デフォルトの名無しさん (ワッチョイ 6b08-kui+)
2019/12/18(水) 14:51:51.17ID:lrTyYwVn0
現場投入はまだだな

Preloadingは素敵すぎるが、
Foreign Function InterfaceってPHPに要るかね?
610デフォルトの名無しさん (ワッチョイ 6b08-kui+)
2019/12/18(水) 14:54:39.35ID:lrTyYwVn0
FFIのRFC調べたら
賛成24の反対15で切り可決か

これ昔PECLにあったやつだよな
まぁそうだろうなw
611デフォルトの名無しさん (ワッチョイ 775f-B9Tc)
2019/12/19(木) 00:22:50.43ID:F9c8Ivhx0
>>609
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>に
613デフォルトの名無しさん (ワッチョイ ff02-lgca)
2019/12/19(木) 13:16:43.14ID:FXNFzpmL0
https://stackoverflow.com/questions/41801228/made-image-click-counter-which-is-buggy
を配置する場合どこに記載すればよいでしょうか?
614デフォルトの名無しさん (ワッチョイ ffa7-FRUu)
2019/12/19(木) 14:16:57.37ID:hMraMf9D0
exec系関数にあわせて外部プログラム作ってたから
ffiはだいぶ楽が出来るようになるな
まあ肝心のCを知らないんだけどw
615デフォルトの名無しさん (ワッチョイ 9f2c-1ZZR)
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ページのどこ家に埋め込みたいんだけど、どのファイルに書けばいいのかってこと?
617デフォルトの名無しさん (ワッチョイ 5701-uI9Z)
2019/12/19(木) 20:31:21.94ID:25wRxCsd0
>>616

612のHTMLに設置してURLつきボタンのクリック数をカウントして ランキング機能を実装する目的なのですが PHPを612のHTMLの何処に設置してしていいか分からず困ってます…
618デフォルトの名無しさん (ワッチョイ 97da-prDO)
2019/12/19(木) 21:42:57.77ID:4pMiKlwl0
PHP要素どこだよ
619デフォルトの名無しさん (ワッチョイ 775f-B9Tc)
2019/12/19(木) 23:07:07.63ID:F9c8Ivhx0
>>617
まず君の環境で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
サーバーを借りるので動くと思います
622デフォルトの名無しさん (ワッチョイ 7708-mhYo)
2019/12/20(金) 18:43:33.55ID:Xr6FOCXd0
>>611
> っていうそもそも論もあると思う
そそ
これRFCで賛成24の反対15だから、今のRFCルール(要2/3の賛成)だと否決されてた代物だ

https://externals.io/message/103613
で議論されてるが、俺はJefferson Gonzalezの意見に賛成だな
今更いっても仕方ないけどw
623デフォルトの名無しさん (ワッチョイ 775f-B9Tc)
2019/12/21(土) 01:48:26.48ID:BiuKyk5n0
>>621
phpが動くのとサーバー借りてるのは同義ではないぞよ。
sshはできるの?
624デフォルトの名無しさん (ワッチョイ 775f-B9Tc)
2019/12/21(土) 01:50:43.85ID:BiuKyk5n0
>>622
俺も同意。
そもそもffi書ける技術スタックのエンジニア集められてるならphpじゃなくていいよねって
625デフォルトの名無しさん (ワッチョイ 97da-prDO)
2019/12/21(土) 17:17:00.28ID:IDzKgSWy0
Jefferson Gonzalezの意見って明らかにFFI導入に賛成なんだけど
626デフォルトの名無しさん (ワッチョイ 775f-B9Tc)
2019/12/22(日) 01:04:31.99ID:ngrj6zpx0
>>625
c書けるスキルがあるのにphpの現場にいる人間が幸せになるよってとこなのかな
627デフォルトの名無しさん (ワッチョイ 9f01-pdcM)
2019/12/22(日) 01:24:13.80ID:buP4BnNs0
GoやRustやC#でもFFI書けるよ
628デフォルトの名無しさん (ワッチョイ 775f-B9Tc)
2019/12/23(月) 00:53:27.33ID:2qWBTAwK0
>>626
書くのが必ずしも許されるわけではないから難しいよね。
俺はライブラリ系は全部書き直した。
これじゃメンテナンスできないですーっていう方々を炙り出すために
629デフォルトの名無しさん (ワッチョイ 9f07-Rp4x)
2019/12/24(火) 17:13:26.50ID:oJYJsXMm0
exec関数でサーバのコマンドを実行できますが、
ソフトウェアをインストールするときなどに表示される
「キーボードのyを押してインストールを進める」
みたいな処理もexecで行うことができるのでしょうか?
もしできる場合、どのように書けばいいか教えて下さい
630デフォルトの名無しさん (ワッチョイ ff63-prDO)
2019/12/24(火) 17:23:02.72ID:4UlhXCkA0
>>629
バッチで動かすことを想定しているプログラムには
例えば起動オプションに "-y" が用意されてあって
キーボード応答全てにyが打たれたとして動作するものもある
動かしたいプログラム次第だと思うが
こういうものなら動かせるかもしれない

そうで無い場合は、プログラムからの応答を判断しながら
動かさないと、想定出来ない問題が起きかねないのでは
631デフォルトの名無しさん (ワッチョイ 9f5c-+Tiu)
2019/12/24(火) 17:57:31.74ID:SDqv4krt0
>>629
yes
632デフォルトの名無しさん (ワッチョイ 775f-B9Tc)
2019/12/25(水) 00:49:42.46ID:oMbV4Iar0
>>629
yesかecho yesをpipeで渡す
633デフォルトの名無しさん (ワッチョイ 9f2c-1ZZR)
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`
634629 (ワッチョイ 9f07-Rp4x)
2019/12/25(水) 23:05:26.90ID:+4x8Vudl0
>>630-633
適当なコマンドですが、
exec("create database -y hogehoge");

みたいに-yをつけると
「hogehogeデータベースを絶対作成する」みたいな事ができるのでしょうか?

>>632さんが書いてるのは
exec("echo yes");

ということなのでしょうか?
635デフォルトの名無しさん (ワッチョイ 9f5c-+Tiu)
2019/12/25(水) 23:45:00.44ID:TuXJcfTM0
yesっていうコマンドがあるんだよ
exec('yes | create database hogehoge');

-yオプション的なのををサポートしてるかどうかはそのコマンドのマニュアル読んで
636629 (ワッチョイ 7007-35Sh)
2019/12/26(木) 00:03:12.37ID:QbBK51Lf0
すみません。公式のマニュアルを見てみたのですが、
yesに関しての記述が見当たらなかったんです。
>>635のように書くのだと理解します。ありがとうございました。
637蟻人間 ◆T6xkBnTXz7B0 (スププ Sd70-v2sp)
2019/12/26(木) 06:40:21.95ID:kwmHN0pwd
yesはLinuxのコマンド。
638デフォルトの名無しさん (アウアウウー Sa83-qd4h)
2019/12/26(木) 07:36:02.91ID:G8FNklXra
>>637
エイプリルフールかと思ったら本当にあってビビった
コマンド打ってウイルスに感染したような挙動になって焦ったわ
639デフォルトの名無しさん (オッペケ Srd7-q4Cy)
2019/12/27(金) 00:29:11.90ID:TcF0JrOBr
PHPの環境構築ってWindowsの場合どの方法が主流なのかね

検索するとXAMPPの記事ばかり出てくるけど手軽な一方環境を汚すんで微妙な気がするんだが
640デフォルトの名無しさん (ワッチョイ e902-e8fP)
2019/12/27(金) 00:38:09.97ID:Jp3jdKct0
Windows自体が汚れてるんだから気にしないの
641デフォルトの名無しさん (ワッチョイ 1a63-K0SF)
2019/12/27(金) 00:44:39.91ID:EEOcwadQ0
自分なら、仮想環境を構築してその中でやりたい
642デフォルトの名無しさん (ワッチョイ a601-LIdJ)
2019/12/27(金) 08:17:09.42ID:4FJgkgoK0
PHPの勉強が目的ならXAMPPやMANPでいいと思うけどな
仮想環境やらの設定や不具合で時間食ってたら元も子もない
643デフォルトの名無しさん (ワッチョイ 1a63-K0SF)
2019/12/27(金) 10:56:24.24ID:EEOcwadQ0
その程度の知識は何れにしろ必要だろう
644デフォルトの名無しさん (ワントンキン MMac-HCDf)
2019/12/27(金) 11:51:48.01ID:54ZzlDGdM
初心者にいきなり全CUI操作を強いるのはどうかと思う
VirtualBoxあたりでUbuntu入れて環境構築させればいいんじゃない
645デフォルトの名無しさん (ワッチョイ 468c-1wr4)
2020/01/02(木) 18:10:26.21ID:NsD5otxd0
PHPを使ったサーバーサイドってどんなことしてるの?
ここはSQLの内部データ表示したいからhtmlの中にdivタグ付けて関数呼び出してってそんな感じでやってるの?
646デフォルトの名無しさん (ワッチョイ 49a7-BfT8)
2020/01/03(金) 20:24:16.45ID:9LIAX5hH0
>>645
別にPHPに限ったことじゃないけどサーバサイドでやることはだいたいそんな感じ
647デフォルトの名無しさん (ワッチョイ 468c-1wr4)
2020/01/04(土) 03:43:48.23ID:5wVpG03+0
やっぱそうなんか、SQLのログイン設定とかばれるからそうやって防いだり動的処理するんか
648デフォルトの名無しさん (ワッチョイ 4202-E95m)
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」がないからだというところまでわかりました。
ですがサポートのさせ方がわかりません。
どうするといいのでしょうか?
650デフォルトの名無しさん (アウアウウー Saa5-g2RO)
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が利用されていたのでしょうか?
651デフォルトの名無しさん (アウアウウー Saa5-g2RO)
2020/01/04(土) 23:34:51.34ID:9cRomv9Ua
SMTP.phpの該当箇所349行目を見ると
$this->_smtp = &new Net_SMTP($this->host,
とあったので、&new を new に置き換えると
エラーは出なくなりましたが。

さすがにソースを変えるのは良くないと思いますが、
php7用のpear mailがremiから提供されているのでしょうか?
他の方法を検討するべきでしょうか?
652デフォルトの名無しさん (ワッチョイ 49a7-BfT8)
2020/01/04(土) 23:54:26.28ID:LM3WrULI0
>>649
macは知らんけど一般的にはphp.iniでgdのextensionを有効にするだけでいい
ていうか自己判断してるけどエラー内容を書かないことには答えようがないな

>>651
pearとかPHP7時代にそぐわないレガシーだよ
PHPMailerでも使えばいいんじゃない?
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のコメント化も解除し、再起動しましたがまだエラーになります。
654デフォルトの名無しさん (ワッチョイ 468c-1wr4)
2020/01/05(日) 00:08:18.80ID:mNtiIqp60
https://ideone.com/VwTTUI
こういう書き方って良くないん?こういう手があったかって思ったが見た目が悪いことに気付いた
655デフォルトの名無しさん (ワッチョイ 49a7-BfT8)
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
まあフレームワーク使いましょう
656デフォルトの名無しさん (ワッチョイ 468c-1wr4)
2020/01/05(日) 01:19:29.11ID:mNtiIqp60
>>655
やっぱそれが正しい書き方なんだな、悩んでたがスッキリしたわ
657デフォルトの名無しさん (ワッチョイ 4902-FJ/U)
2020/01/05(日) 02:02:10.08ID:sULWpEk60
プログラマー脳は前者、WEB屋は後者って感じ
658デフォルトの名無しさん (ワッチョイ fe89-GYAN)
2020/01/05(日) 09:10:52.06ID:ftX4LjxF0
>>655
データ移して、アンインストールして7.3.13にダウングレードしたところありました。
ありがとうございます。
659デフォルトの名無しさん (ワッチョイ 3eca-aeaz)
2020/01/05(日) 10:23:42.03ID:GvoILGxb0
>>655
foreach のブロックをカッコじゃなく endforeach にするのはなんで?
カッコの対応を取ってくれるテキストエディタは多いのにそういうアシストも受けられなくなるし、タイプ量も増えるし、
あんまりやらんとは思うがループを foreach から for に変更するなんてのも面倒だし、何がよくてそうするのかさっぱり分からん。
660デフォルトの名無しさん (ワッチョイ 49a7-BfT8)
2020/01/05(日) 13:29:38.07ID:qDQaoTCH0
>>659
テンプレートエンジンだとだいたいそういう風に書くと思うけど
661デフォルトの名無しさん (オイコラミネオ MM49-aeaz)
2020/01/05(日) 14:35:14.19ID:1zEvaEuJM
>>660
理由になってなくね?
他のテンプテートエンジンと雰囲気を合わせると何かいいことある?
662デフォルトの名無しさん (ワッチョイ 49a7-BfT8)
2020/01/05(日) 14:39:22.34ID:qDQaoTCH0
そんな下らないとこで噛みつかれるとは思いもしないんで
気の利く答えなんて持ち合わせてないでw
自分にあったスタイルで「好きにしろ」でいいんじゃないの別に
663デフォルトの名無しさん (オイコラミネオ MM49-aeaz)
2020/01/05(日) 16:55:06.61ID:1zEvaEuJM
あぁ、ごめん
そういうスタイルで書いてるのをしばしば見るので、どんなメリットがあってそうしてるのか気になっただけだ。
単に好みの問題なのね。
664デフォルトの名無しさん (ワッチョイ c261-BfT8)
2020/01/05(日) 17:25:59.86ID:HEA2L3oC0
括弧だとわかりにくいから。
htmlが混じるとインデントもややこしくなるし。
665デフォルトの名無しさん (ワッチョイ 468c-1wr4)
2020/01/06(月) 13:02:17.22ID:udFWw96L0
個人的にはhtmlのタグのインテリセンスがかかるからスペルミス閉じミスが起きないから良いなって感じかな
666デフォルトの名無しさん (ワッチョイ 6258-bzpX)
2020/01/06(月) 17:09:39.10ID:RuDbGpDl0
配列なら、$his より $histories の方がしっくりくる
変に略されると読みづらい
667デフォルトの名無しさん (ワッチョイ 7fa9-lZna)
2020/01/08(水) 02:17:03.00ID:DD+ZGKXm0
新しいサーバへの移行をしているのですが、
とりあえず動かすと「Parse error: Invalid numeric literal 」が出ます。

覚え立ての開発環境ではこんな感じです。
【PHP】下らねぇ質問はここに書き込みやがれ 10 	->画像>16枚

配列を空にして、配列が空でないならば、それぞれの「時」に対して「true, false」を入れた連想配列を作って、
現在時の「時」を$hourに入れて、それを比較して連想配列の「時」をキーにして「true」か「false」どちらかを返すということだと思いますが、
Invalid numeric literalは「使えない数字」と考えて良いのでしょうか?
php5では使えていたとは思いますが、php7では厳しくなったということでしょうか?

vscodeを覚えて時を止めてデバッグができる時に感動しました。
変数がコマ送りに変化していくことが見えるのは凄いです。
668デフォルトの名無しさん (ワッチョイ 7f61-MUcs)
2020/01/08(水) 02:41:05.10ID:kulAlEGT0
0から始まってるのは8進数なのでphp7ではエラー
php5以下で08は0と解釈されてたはず
669デフォルトの名無しさん (ワッチョイ 7fa9-lZna)
2020/01/08(水) 08:48:02.53ID:DD+ZGKXm0
ありとうございます。
シングルクォートを使ってキーを文字列として配列にしました。
phpって曖昧とは聞きますが、08 にだけ8進数として反応するのですね。
670デフォルトの名無しさん (ワッチョイ df02-mx/f)
2020/01/08(水) 10:56:17.40ID:Bxyfcf/k0
そんなばかなー
10進数で言う0から10までを8進数で書いてみるといい(手書きでいい
671デフォルトの名無しさん (ワッチョイ 7fa9-lZna)
2020/01/08(水) 18:23:40.37ID:DD+ZGKXm0
>>670
0, 1, 2, 3, 4, 5, 6, 7, 10, 11, 12
ですよね。
シングルクォートで文字列にしてエラーは出なくなりました。

この関数は昔誰かが書いたものですが、時によってフラグを立てる方法としてはまだ改良の余地があるのでしょうか。
672デフォルトの名無しさん (ワッチョイ df02-mx/f)
2020/01/08(水) 18:37:40.91ID:Bxyfcf/k0
08と09は8進表記であり得ないからInvalid numeric literal
素直に頭文字0を削除すればいいのに
673デフォルトの名無しさん (ワッチョイ ffca-SJ+5)
2020/01/08(水) 18:47:21.77ID:Z7OGNEnI0
>>671
そもそもなんだけど、関数の引数で $time_array が渡されたとき、その添字はどんな形式になってるの?
$hour は文字列なんだから、元々配列の添字は文字列であるべきだったように見えるけど。

それはそれとして、小さなフラグテーブルなら文字列で書く方法もあるかもね。

$timetbl = '000000000011111111111100';

return $timetbl[(int)$hour] === '1';

みたいな。
その例ではインタフェースを変更しないといけなくなるから適用しづらいだろうけど。
674デフォルトの名無しさん (ワッチョイ 7f63-lB9F)
2020/01/08(水) 19:49:43.97ID:w19vYwgJ0
>>671
do_check_exec_time関数だけどさ
返却値が不規則ならともかく、10〜21の範囲ならtrue、それ以外はfalseで駄目なの?
引数範囲もチェックしたいなら、先頭行で行えば良いと思う
675デフォルトの名無しさん (ワッチョイ 7fa9-lZna)
2020/01/08(水) 21:14:25.57ID:DD+ZGKXm0
レスを書くと forbiddenになったので、レスにNGワードが含まれているようです。
何がダメなんだろう・・・
レスは返したかったので画像にしました
【PHP】下らねぇ質問はここに書き込みやがれ 10 	->画像>16枚
676デフォルトの名無しさん (ワッチョイ dfa7-alJZ)
2020/01/08(水) 22:18:06.43ID:zDxhP1FM0
PHPはJavaScriptなんかと違って文字連結とは演算子が別れてるから
+演算子は加算専用で数字として扱えるというか数値として扱うというのが正しい

>>667のコード見た感想としてはそこで初期値設定するか?って思ったわ
渡すべき$time_arrayの初期値としてならともかく
ちゃんとarrayのみ渡されるよう想定したほうがいいね
677デフォルトの名無しさん (ワッチョイ dfa7-alJZ)
2020/01/08(水) 22:26:16.06ID:zDxhP1FM0
ちなみに勘違いしてなければいいけど
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」に変更すると正しく動作しません。
何が原因なんでしょうか?
679蟻人間 ◆T6xkBnTXz7B0 (ワッチョイ df01-fZVk)
2020/01/13(月) 21:17:58.61ID:xgMgrp400
HTMLの構造が違うんじゃねーの?

FirefoxなどのブラウザでHTMLのソースを見てみたら?
680デフォルトの名無しさん (ワッチョイ 7f61-euIa)
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:Pp7kDtDs0
>>680
ありがとうございます!
そちらのコメント部分を修正したところ正常に動作するようになりました!
682デフォルトの名無しさん (ワッチョイ dfa7-alJZ)
2020/01/14(火) 01:08:34.22ID:HMRlieOS0
PHPのDOMload周りは@でエラー無視が一般的だと思う

$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も使います。
どこのレンタルサーバを使うのが得策でしょうか?
今後生涯サイトは使おうと思います。
684デフォルトの名無しさん (ワッチョイ 7f59-alJZ)
2020/01/14(火) 14:36:03.43ID:Yv2y+5Q60
ここはまんさんでもやさしくしてくれるやろか

あのな、画像検索するとある画像が大きさが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も使えるところはあるのでしょうか?
687デフォルトの名無しさん (ワッチョイ 5fda-woae)
2020/01/14(火) 16:49:46.95ID:HWX79XGs0
>>684
自分のサイトの話じゃなくて、他人のサイトに置いてある画像の元ファイルにどうしたらたどりつけるかって話か
ここは下らねぇ質問のスレだが自分のサイト以外の問題を持ち掛けられてもしょうもないと思います
688デフォルトの名無しさん (ワッチョイ fff2-ZJ4Y)
2020/01/14(火) 16:57:43.19ID:R0T58PMv0
>>683
スレチ
レン鯖スレへ
「いまの時代、”無料のレンタルサーバでPHP/SQLも使えるところ”はあるのでしょうか?」
ダブルクォートのワードそのまんまで検索すればいいのに

>>684
スレチ
google画像検索ならimagesizeのオプション追加すればある程度絞り込めても万能じゃない
サイトまでたどり着けてるならurlを想像してアタックする
689デフォルトの名無しさん (ワッチョイ 7fa9-lZna)
2020/01/14(火) 20:36:37.48ID:/BEaD92M0
mysql_real_escape_string($string)
を多用している手続き型のphp5環境からphp7へ移行をしていて、
mysqli_real_escape_string($link, $string)
への修正しているのですが、

htmlspecialcharsのように、エスケープ目的で多用しているコードなのですが、
データベースのリンクも引数の強制になったようですが、リンクを使うのはどういう理由なのでしょうか?

また使いどころとしては、多用せずsqlクエリを使う前に1回で済ますという感じでしょうか?
690デフォルトの名無しさん (ワッチョイ a9a7-s5Rz)
2020/01/15(水) 00:51:29.73ID:0SK8bZ/o0
>リンクを使うのはどういう理由なのでしょうか?
マニュアルに書いてるけど、
「接続の現在の文字セットを考慮して、SQL 文で使用する文字列の特殊文字をエスケープする」から。
接続が複数あって文字セットが異なる場合なんかを考慮してるのでしょう。

>多用せずsqlクエリを使う前に1回で済ますという感じでしょうか?
プリペアドステートメントで行うのが普通。
mysqliみたいなベンダー固有関数は汎用性がないのであまり使われないよ。
mysqlしか使わないならいいけど、本気で修正するなら手間も同じだしPDOでやったほうがいいと思う。
691690 (ワッチョイ a9a7-s5Rz)
2020/01/15(水) 01:29:34.93ID:0SK8bZ/o0
>>690の答えはちょっと答えになってなかったから補足しとく

・mysql関数時代も接続(リンク)は必要っちゃ必要だったけど、省略可能な第二引数だった。
 省略した場合は、直近に使った接続になる。
・mysqli関数は省略不可能な第一引数になった。(引数の順番が変わった)

mysql関数は、接続を明示しなくていいので、
接続が複数ある場合、意図しないDBを操作するミスがおきる可能性がある。
エスケープする場合も同様、意図しないエスケープ結果になってしまう恐れがある。
そういうミスを減らすためにも、接続を明示しないといけないmysqli関数ってことなんじゃないかな多分。
692デフォルトの名無しさん (ワッチョイ 02a9-JESV)
2020/01/15(水) 19:33:51.69ID:OZZ+PtiC0
今まで1つの接続しかしたことが無かったので複数を接続するって考えもしなかったです。
たしかにそれだと文字コードが違う場合も想定すると、明示したほうが良いですよね。
古すぎてpdoに書き直すのは難しいので、とりあえず地味に書き換えていきます。

しかしmysqli_real_escape_stringや、mysqli_queryとか
引数の強制が増えたり、引数が入れ替わったり、pdoを使っていない古いコードは修正に振り回されることになりますよね。


プリペアドステートメントは「?」とかコードの行数が一気に増えて難しそうなのですが、
クエリに直接変数を書いて、real_escapeすればと思ってしまうのですがやはりデメリットがあるのでしょうか。
新規で練習するときはプリペアドステートメントを使おうと思っています。
693デフォルトの名無しさん (ワッチョイ a9a7-s5Rz)
2020/01/16(木) 04:41:59.97ID:WGM+n45y0
>>692
具体的なコードは書かないけど、
real_escape_stringでは攻撃対策としては不十分だから、プリペアドステートメントは必須。
(PDO使う場合、PDO::ATTR_EMULATE_PREPARESが1で、PDO側でエミュレートする場合、攻撃が成立する場合があるのは注意)
型を調べたり、想定してるフォーマットに沿うものか検証(バリデーション)して、
受け渡された変数が安全なデータであることが保証されてればいいけど、それこそコード長くなるし、
プリペアドステートメントでやったほうが、確実だし簡単だと思う。
694デフォルトの名無しさん (ワッチョイ 7eca-uIHU)
2020/01/16(木) 09:20:07.39ID:yWLTyI800
>>692
あちこちに適用するライブラリでもなくいろんなDBに対応するわけでもないんだろうから、無理して PDO に置き換える必要は無いんじゃね。
プリペアドステートメントのいいところはプレースホルダが使えることもあるけど、プリペア済みのオブジェクトを何度も使い回すことによってSQLのパースを省略してパフォーマンスを上げられるって利点がある。
でも使い回しなんてせず同じSQLでも使う度にプリペアするようなコードが多いだろうし、バッチならともかくwebの1リクエストでどんだけ使い回せるの?って話もある。

それに加えて LIKE とか可変個の IN とか面倒だから、プリペアドステートメントに拘る必要は無いというのが俺の考えだな。
新規じゃないなら特に。
695デフォルトの名無しさん (ワントンキン MM52-NIOJ)
2020/01/16(木) 14:43:23.92ID:B1/MNbmAM
pdoに置き換えは無理してってほど大袈裟なものじゃないでしょ
手続きが用意されてないからオブジェクトになるけど
オブジェクト型のmysqliと比較してコードは似たりよったりだ
新規はpdoにしたほうがいい
696デフォルトの名無しさん (ワッチョイ 4263-A78j)
2020/01/16(木) 14:49:59.78ID:7uXyXPAQ0
どこかの機会で書き替えて行けば良いよ
将来はサポートされなくなる訳だし
697デフォルトの名無しさん (ワッチョイ 8d07-muX5)
2020/01/16(木) 16:00:44.94ID:NkO/oANm0
クラス内のメソッドについて、
似たような処理を行うもの(少し変更している)のがあるとします。
たとえば「redirect」というメソッドだったとして、
少し変更したのを「_redirect」みたいにして、親クラスに用意しているのですが
こういう書き方・使い方はまずいでしょうか?
beforeRedirectとかcustomRedirectみたいに変えた方がいいでしょうか?
698デフォルトの名無しさん (ワッチョイ fe02-gGzZ)
2020/01/16(木) 16:10:34.16ID:QgmPcxAO0
extendsで新しいクラスにすることと比べると
悩みどころですね
699デフォルトの名無しさん (ワッチョイ 4263-A78j)
2020/01/16(木) 16:42:45.37ID:7uXyXPAQ0
将来メンテする人にとって無用な負担をかけない方法を選択しよう
使うユーザーができるだけ負担を感じない道を選んだ方がいい
700デフォルトの名無しさん (ワッチョイ a9a7-s5Rz)
2020/01/16(木) 17:54:13.09ID:WGM+n45y0
>>697
どう変更してるのかわからないけど、
引数の数や型が違うならオーバーロードにする手もある。
ただしPHPにはない機能なので、可変引数を使ったり工夫が必要になるけど。
あとは柔軟に引数でモード選ぶとか、言ってるように名前変えるとかでいいと思う。
701デフォルトの名無しさん (ワッチョイ 8261-s5Rz)
2020/01/16(木) 18:12:11.14ID:9x78fuLW0
共通部分の処理は親側で全部行うようにして、差分だけを子側に委譲する(abstractメソッド)。
702デフォルトの名無しさん (アウアウウー Sa05-DeBb)
2020/01/16(木) 20:22:40.39ID:HZuE80s1a
>>693-694
今回は古い部分を直すだけで必死なのでreal_escapeを使いますが、
たしかにプリペアドステートメントが
エスケープも兼ねるので新規では使いたいです。

古いコードなので、闇雲に同じクエリを投げているので、そういう意味ではプリペアドステートメントの利点を受けられるかもしれません
703デフォルトの名無しさん (ワッチョイ 8d07-muX5)
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とかにするのは変かな?
と感じており、質問した次第です。
704デフォルトの名無しさん (ワントンキン MM52-NIOJ)
2020/01/17(金) 18:45:49.52ID:vvJW2PiAM
コールバックでいいんじゃ
705デフォルトの名無しさん (ワッチョイ e1da-A78j)
2020/01/17(金) 22:12:48.18ID:9k6vGiaj0
>>703
API見て使い方が理解出来ん
クラス利用者はredirectと_redirectのどっちをコールする想定なんだ?

あとbeforeRedirectは名前的にイベントハンドラっぽく思える
706デフォルトの名無しさん (ワッチョイ 8d07-muX5)
2020/01/20(月) 10:56:16.47ID:UzBq59x80
>>705
通常はredirectの方で、変わったことがしたい(ページ推移を分岐させたい等)時は
_redirectの方を使うというイメージです。

そのため、「このリダイレクトは、カスタマイズしたリダイレクトですよ」
ということを説明するためのメソッドであればと思うのですが、
「_redirect」のような名前は、間違いやすいし、
beforeRedirectの場合はイベントハンドラっぽいので、悩んでいる次第です。
707デフォルトの名無しさん (ワッチョイ 8d07-muX5)
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);
 }
}

みたいな設計にし直します。
708デフォルトの名無しさん (ワッチョイ a902-1yOP)
2020/01/20(月) 19:21:08.15ID:OvG49n5/0
ネーミングの問題だと思うけど、アンダーバーが付いたのは予約語だったりシステムコールに
見えちゃうので、ちゃんと名前付けた方がいいね
個人的には面倒くさかったら拡張した方はすべて〜exで済ませる
709デフォルトの名無しさん (アウアウウー Sa05-gGzZ)
2020/01/21(火) 22:14:23.82ID:k/0CqDEqa
editURL/editRedirectURLとか
あとはめっちゃ冗長だけどeditURLBeforeRedirectとかな

そもそもredirectと並列に並べるような処理してないんだから同じ動詞が中心になるような命名はダメ
710デフォルトの名無しさん (ワッチョイ e7da-Jq7D)
2020/01/26(日) 21:35:09.22ID:X84CwPm80
formのactionを「action=""」と記述した場合、再帰的に現在のページが呼び出されると
あったのですが、その際は現在のページの記述を全て読み込みなおすってことでしょうか?
711デフォルトの名無しさん (ワッチョイ e7f3-Ld1M)
2020/01/26(日) 22:32:40.52ID:a2Fj97SM0
>>710
ある意味そうだよ。当然、新規にページが読み込まれる。
「再帰的に」っていうのはよくわからないが。
712デフォルトの名無しさん (ワッチョイ ffca-v+ft)
2020/01/26(日) 22:34:05.94ID:qUKNFCzW0
>>710
遷移先のURLが今と同じになるということ。
submitされる内容はその時のformの中身だから、ページの内容を読み込み直すということではない。
よくあるフォームだと、入力、確認、完了画面を順に遷移していくと思うけど、それら全部を同じ myform.php というひとつの URL で対応する感じ。
今どの画面を表示すべきなのかは submitされるパラメータのどれかに仕込むとかして判別できるようにする。

method が get だと URL自体が変化していくから、その手法をやるなら method は必然的に post になる。
713デフォルトの名無しさん (ワッチョイ e7da-Jq7D)
2020/01/26(日) 23:01:03.81ID:X84CwPm80
>>711-712
即レスどうもです。

動画サイトで勉強してまして、なんでその記述になるのか説明がないので、
>>712さんの説明で理解が深まりました。


遷移先が同じ場合はformのパラメータのみが変化して、ページの記述は読み直さないってこと
なのでしょうか?

下記のようにPOSTされていたら関数を呼び出すという条件式がheadタグより
上に書いてあり、ページの記述を読み直しでもしないと
この条件式の処理が走りようがないのでは?と混乱しております。

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
 $uploader->upload();
}
714デフォルトの名無しさん (ワッチョイ 5f61-RMi8)
2020/01/26(日) 23:24:50.30ID:9P93xbrg0
GETだとブラウザのキャッシュが使われる可能性もあるが
POSTなら確実に再度リクエストが来る
715デフォルトの名無しさん (ワッチョイ ffca-v+ft)
2020/01/26(日) 23:31:40.69ID:qUKNFCzW0
>>713
それは同じURLで get と post の両方に対応してるんだね。
リンク踏んだりURL叩いてページに来たときは get でのアクセスになるから、とりあえず動画閲覧画面でも表示するのでしょう。
でもその画面では動画のアップロードもできるようになってて、post によってアクセスされる場合はアップロードの操作がされたものとして動画を差し換え、改めて閲覧画面を表示するのでしょう。
ページの記述とか何言ってるのかはよくわからないけど、その URL はアクセスされる度に毎回一からページを送り出してるだけだと思うよ。
動画のIDなんかURL自体に含まれてて、閲覧や更新対象を示すキーとして満ち足りてるから、同じURLを使い回すようにしてるんじゃないかな。
ブックマークするときなんかも、リンク踏んで来た場合でもアップロード後でも URL が一緒になるからタイミングを選ばず都合がいいだろうしね。
716デフォルトの名無しさん (ワッチョイ 5fff-Ld1M)
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できないの?
718デフォルトの名無しさん (ワッチョイ 7999-/fp1)
2020/01/30(木) 15:50:27.29ID:smyD86f50
phpじゃ厳しいなあ
rubyなら簡単にできるんだけどね
719デフォルトの名無しさん (ワッチョイ 6a61-2iSl)
2020/01/30(木) 17:42:05.62ID:vZSmPHC30
>>717
それ少なくともおととしのpixivのUIが糞化する前用のやつだから
720デフォルトの名無しさん (ワッチョイ f689-Kz18)
2020/01/30(木) 18:08:28.77ID:H+L/BkWr0
マジか…
Rubyわかんないからphpでやりたかった

Pixivの画像のURL自体は変わってなかったから下記のURLの画像が保存できる方法知ってたら教えて下さい
【PHP】下らねぇ質問はここに書き込みやがれ 10 	->画像>16枚
721デフォルトの名無しさん (ワッチョイ 2a63-unxX)
2020/01/30(木) 20:01:18.05ID:OBUYa7FA0
718にrubyで書いてもらって、PHPに移植すれば良いんでね?
722デフォルトの名無しさん (ワッチョイ 2a01-I+PI)
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とか使ってシェルスクリプト書いたほうが簡単
723デフォルトの名無しさん (ワッチョイ 2a01-I+PI)
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"
724デフォルトの名無しさん (ワッチョイ 2a01-I+PI)
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
フォントデザインが違うだけ。
727デフォルトの名無しさん (ワッチョイ 2a01-I+PI)
2020/01/30(木) 21:30:24.16ID:N/97jNZ60
>>725
円マークとして表示されてる文字の文字コードが
バックスラッシュと同じ0x5Cならいいんだけど
>>723の円マークは0xA5なので別の文字

バックスラッシュと円マークは同じ場合もあれば
違う場合もあるってこと
728デフォルトの名無しさん (ワッチョイ f689-Kz18)
2020/01/30(木) 21:56:00.67ID:H+L/BkWr0
N/97jNZ60 様
ありがとうございます。
ですが、素人に毛が生えた程度の私では難しいようです。(Rubyもスクリプトもできません)
phpで無理そうなら諦めます。
729デフォルトの名無しさん (ワッチョイ 2a01-I+PI)
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行が上の手順に相当する部分
730デフォルトの名無しさん (ワッチョイ 2a63-unxX)
2020/01/30(木) 23:12:03.35ID:OBUYa7FA0
>>728
書いて頂いたスクリプトはPHPではないですがRubyでもないですよ
このスレで解説してもらえるかは分かりませんが
じっくり噛んで飲みこんでいけば消化可能です

がんばれ!
731デフォルトの名無しさん (ワッチョイ 66a7-ol1H)
2020/01/31(金) 04:16:30.86ID:Qzj9ULR80
>>729の仕様がわかれば根こそぎダウンロード出来るな
適当なsleep値挟まないと岡崎図書館になりそうでおそろしいw
732デフォルトの名無しさん (ワッチョイ 5d2d-/fp1)
2020/01/31(金) 04:23:23.85ID:1Ft64C3q0
普通にAPI公開してるんだけど
733デフォルトの名無しさん (ワッチョイ ea2c-KoMo)
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側のフォルダをいじる事もできる
734733 (ワッチョイ ea2c-KoMo)
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"=>"【PHP】下らねぇ質問はここに書き込みやがれ 10 	->画像>16枚 ;,
"small"=>"【PHP】下らねぇ質問はここに書き込みやがれ 10 	->画像>16枚 ;,
"regular"=>"【PHP】下らねぇ質問はここに書き込みやがれ 10 	->画像>16枚 ;,
"original"=>"【PHP】下らねぇ質問はここに書き込みやがれ 10 	->画像>16枚 ;}
735デフォルトの名無しさん (ワッチョイ 66a7-ol1H)
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);
}

保存先やら上書きやら考慮してないからこのままは使うなよ
736デフォルトの名無しさん (ワッチョイ f689-Kz18)
2020/01/31(金) 10:18:31.72ID:2wi/3AbP0
昨日Pixivの件で質問した者です。
皆様のおかげでなんとかできました。
ありがとうございます。
ただ、>>735 さんのようにきれいに書けてないので修正しながら使っていきたいです。
737デフォルトの名無しさん (ワッチョイ 2a63-unxX)
2020/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」のような画像の情報集のようなものがあるのでしょうか?
739デフォルトの名無しさん (ワッチョイ 66a7-ol1H)
2020/01/31(金) 19:10:54.05ID:Qzj9ULR80
DOMDocumentで$htmlをロードして
getElementById('meta-preload-data')->getAttribute('content')取って
json_decodeすればあとはapiと同じ様につかえるんじゃね?
文字コードまわりの処理がちょっと面倒だと思うが
740デフォルトの名無しさん (ワッチョイ 6a61-2iSl)
2020/01/31(金) 19:41:52.91ID:sTuegRNa0
作品情報のAPIはこれ
https://www.pixiv.net/ajax/illust/79152593
741デフォルトの名無しさん (ワッチョイ f689-Kz18)
2020/01/31(金) 20:23:09.76ID:2wi/3AbP0
ありがとうございます。
JSONならなんとかなりそうです。
「/pages」を取るだけだったんですね…
742733 (ワッチョイ ea2c-KoMo)
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 と入れてください!
誰が書き込んでいるか、分からないので
743デフォルトの名無しさん (ワッチョイ 2a63-unxX)
2020/01/31(金) 23:59:16.23ID:k4NtdgGW0
一般のブラウザと同程度の頻度でアクセスしている分には
サイト側で区別するのは困難だろうし、
訴えられる事も無いんじゃないかな、知らんけど
744デフォルトの名無しさん (ワッチョイ 2a01-I+PI)
2020/02/01(土) 00:45:19.00ID:EnxAFhi/0
>>742
>大々的に横断検索のようなスクレイピングしてると、営業妨害で逮捕される!
>会社のrobots.txt で、スクレイピングを禁止している場合は、有罪にされる!
>何回もテストしていると、営業妨害になるから!

すべてデマ
一般論としてデマ書くくらいは別にいいけど
それを元に人を犯罪者扱いするとそれこそ罪になるから気をつけてね
745デフォルトの名無しさん (ワッチョイ b501-/fp1)
2020/02/01(土) 00:47:42.04ID:1yCARK9i0
だからAPI公開されてるんだってば
746デフォルトの名無しさん (ワッチョイ 66f2-kxDg)
2020/02/01(土) 00:50:08.53ID:MgOexLzI0
専用ブラウザだろうが一般ブラウザだろうが、使う人間が同じなら同程度のアクセスにしかならんと思う
あと、API使わないWEB通信で専用か一般かを判別するのは無理じゃね?
UAも偽装できるし、そもそも廃止方向だし
747733 (ワッチョイ ea2c-KoMo)
2020/02/01(土) 01:00:56.04ID:4wtj58110
いたずら電話でも、回数が多いと逮捕される!
一杯逮捕されてるし、有罪にもなってる!

会社は、一般的な用法でアクセスできるようにしてるだけで、
常識内の使い方じゃないと、営業妨害になる

クローラー開発者が、robots.txt に従うのは常識だから、従わないと営業妨害になる。
クローラー開発者はそもそも一般人じゃないし、一般的な使い方じゃない

株取引と同じで、プロの取引だから、守るべきハードルが高い。
これほど専門的な開発者は、素人の一般人が作っていましたという弁明ができない。
専門家として扱われるから
748デフォルトの名無しさん (ワッチョイ 66f2-kxDg)
2020/02/01(土) 01:09:26.21ID:MgOexLzI0
>>747
誰にレスしてるのか分からないけど、俺にレスしてるんなら改めて書いとく

俺は良い悪いの話をしていない
API非使用の話
同じ人間がスレ見るような使い方はアクセス頻度も負荷も変わらないだろう
判別するのは技術的に無理じゃねえか

以上
弁明とかそんな次元の話をしているのではないので、そこんとこよろしく
749デフォルトの名無しさん (ワッチョイ 2a63-unxX)
2020/02/01(土) 01:22:55.39ID:yTeildyw0
robots.txtの記述に従わないと行けない法的根拠はないんだが
あくまでも、マナーやエチケットのレベル
750733 (ワッチョイ ea2c-KoMo)
2020/02/01(土) 02:39:22.43ID:4wtj58110
法律では、常識というのが判断基準になる

マナー・エチケットなどは関係ない。
契約していない者同士では、有形力の行使が判断基準

API の契約をした場合は、契約者同士だから、刑事事件にならないけど、
契約をしていない場合は、有形力の行使で判断する

いたずら電話とか、万引き・痴漢・家宅侵入などは、
契約していない者同士での有形力の行使

一般的じゃない使い方は、非常識になる。
プログラミングなど、プロの技術を用いた場合は、一般人と違う扱いになる

一般人が手でクリックした場合と、違う扱いになる

マナー・エチケットも、プロ・素人では、遵守レベルが異なる。
一般人の遵守レベルと、プロの遵守レベルは違う

株取引と同じ。
株はプロの遵守レベルだから、1桁間違って入力しても、勘違いとして撤回できないだろ。
普通の民法なら、錯誤で撤回できるけど

株は一般人の商取引じゃなく、プロの商取引だから、遵守レベルが厳しい
751デフォルトの名無しさん (アウアウカー Sa55-x+mg)
2020/02/01(土) 03:15:22.90ID:r8UutYKJa
botガイル
752デフォルトの名無しさん (ワッチョイ 6d63-/fp1)
2020/02/01(土) 05:09:00.85ID:IZAG69wa0
それ有名なrubyキチだから相手にするだけ時間の無駄やで
753デフォルトの名無しさん (ワッチョイ 1149-futC)
2020/02/01(土) 11:30:39.83ID:ldPcUcvt0
pixivとか大きいところならインフラで帯域制御してるだろうから、IP詐称やら多数の接続元やらで大規模にやらない限り、
スクリプトでのDLは気付かないだろうし看過されるだろうけどね
逆に目立てば注意とか何も言われず制限とかされる

まあ、インターネットがある意味良識で成り立ってるところもあるから、あまり変なことはしない方がいいよ
自分のことばかり考えるなってね
754デフォルトの名無しさん (ワッチョイ b501-+mJQ)
2020/02/02(日) 11:44:23.24ID:OTJ5GLO00
サイト内検索を設置したいのですがわかりません 
どのように作ればよいのでしょうか?
755デフォルトの名無しさん (ワッチョイ 2a63-unxX)
2020/02/02(日) 11:54:17.96ID:lNG3EL+m0
サイト内の何を検索したいのかを言わないと
756デフォルトの名無しさん (ワッチョイ ea2c-KoMo)
2020/02/02(日) 12:50:13.69ID:ceem9FS20
サイト内検索は、Google を使えば?
「site:URL 検索したい文字列」だろ

このコントロールを、はめ込めば良いのでは?
757デフォルトの名無しさん (ワッチョイ a602-ZjM+)
2020/02/03(月) 04:24:06.78ID:w78j2Hgc0
サイト内のキーワードを検索したいんです
絞り込み検索など
758756 (ワッチョイ ea2c-KoMo)
2020/02/03(月) 04:30:12.91ID:YoBHNt100
多くのサイトが、Google のコントロールを使っているから、

Googleが配布しているのでは?
759デフォルトの名無しさん (ワッチョイ 3d7c-a4zy)
2020/02/03(月) 21:07:08.59ID:zKdzrXwz0
平面上に座標の判明している点が数百あるとして、全ての点どうしの距離を
計算時間はかかって構わないのでハングしないように計算したいのですが
PHPではどうやったらいいのでしょうか

普通のPHPプログラムと同じように
点の座標情報をリクエストとして受け取って
全ての計算が終わったらブラウザにレスポンスしたいです
760デフォルトの名無しさん (オッペケ Srbd-4tmu)
2020/02/03(月) 21:21:55.23ID:7cu/pWw8r
普通に2重for文で愚直に計算すればいいんじゃねーの
数百程度なら一瞬でしょ
761デフォルトの名無しさん (ワッチョイ ea2c-KoMo)
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
762デフォルトの名無しさん (ワッチョイ 66a7-ol1H)
2020/02/04(火) 10:26:16.95ID:a9RPAFSb0
>>759
長い計算で問題になるのはタイムアウトと使用人数
色々考慮しないといけないのでケースバイケースになるが
そういう計算はJavaScriptでやったほうがいいと思う
非力な環境考慮やスマホの節電狙ってるならとめはしないが

基本はある程度計算した時点で(タイムアウトする前に)一度レスポンス返して
計算再開するようリクエスト再送して計算終わるまでそれを繰り返すとか
サーバ側でタイムアウトを無効にしてマルチスレッドで計算しながら
Transfer-Encoding: chunked(flush関数)とかでなんかブラウザに送り続けるとかそんなところ
あと設定したことないので確認はしてないがxhr使えばブラウザ側のタイムアウトは無効に出来るはず
大人数で使う&計算が数時間に渡る場合サーバ側タイムアウトを無効にするような計算はしないほうがいい
763761 (ワッチョイ ea2c-KoMo)
2020/02/04(火) 10:59:31.95ID:6/2RTZHA0
確かに、計算のタイムアウトなどを考えたら、

AWS Lambda などを使った方がよい
764759 (ワッチョイ 3d7c-a4zy)
2020/02/04(火) 14:13:53.25ID:D53RXKif0
>>760
450点あたりで
計算は10万回超えちゃいそうな気がするんですが…

>>762
あざます、そんで説明下手ですみません
アクセス数とか、ユーザビリティ的なことはそれほど考えなくていいんです

説明が難しいんですが、MovableTypeみたいな動き方と言いますか
このプログラムを一度実行することで静的なファイルを生成して
ウェブのユーザにはそのファイルを見てもらうことになるので

なのでとりあえず、10万なら10万回
時間かけていいんで、PHPがハングしないように計算を終えて
その結果が出たら、ブラウザに返したいな、と

昨夜自分で考えて
PHPは1点ずつの計算結果をテキストファイルとして生成して
ブラウザはそのファイルが出来ているか定期的にポーリングする
みたいなことを考えたんですが…
765デフォルトの名無しさん (オッペケ Srbd-4tmu)
2020/02/04(火) 14:21:15.46ID:gHL4c7Fjr
じゃあ高速フーリエ変換でもすれば
766デフォルトの名無しさん (ワッチョイ 2a63-unxX)
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の数が多いと止まってしまうので
非同期でいいので止まらない方法はないものかなと
768デフォルトの名無しさん (ワッチョイ 2a01-I+PI)
2020/02/04(火) 17:30:21.86ID:26FK/H9g0
数百の点同士だから最大1000 x 1000でも100万でしょ
floatだとしても100msもかからないと思うんだけどそれでハングするの?

クライアント側で計算させても一瞬だから
ラウンドトリップさせるのをやめて計算結果だけ非同期で受け取るようにしたほうが
ユーザーにとっても運用してる側にとってもいいと思う
769759 (ワッチョイ 3d7c-a4zy)
2020/02/04(火) 17:37:32.11ID:D53RXKif0
>>768
あざます
大丈夫ですかね?100万回
とりあえずストレートにやってみようかなあ…
770761 (ワッチョイ ea2c-KoMo)
2020/02/04(火) 23:05:49.06ID:6/2RTZHA0
JSON が普通。
非同期処理なら、Ajax を使う方法もある

C/C++ で計算だけして、ファイルに書き込んでから、
ウェブサーバーで、そのファイルを見れば?

計算速度が遅くてもよいなら、どの言語でも良いし
771デフォルトの名無しさん (ワッチョイ 2a63-unxX)
2020/02/04(火) 23:14:48.03ID:lLuVC2X20
実際の処理時間次第って気がする
10分程度なら、そのまま終わるのを画面監視して待っていれば良い
数時間以上掛かるなら、結果をメールで送ってもらうなり
夜間バッチで動かしておくのも良いかも
772761 (ワッチョイ 9f2c-ndoi)
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
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');

こんな感じでヤフオクのページにアクセスしたいんだけど、
通常のページなら問題ないけどアダルトカテゴリの場合ログインしてくださいとなる
この場合ログインなしで対処することはできますか?
774デフォルトの名無しさん (ワッチョイ 7fca-z+R/)
2020/02/05(水) 11:42:40.50ID:6W4fVUG70
そういやヤフーの文字画像認証って難易度高過ぎだよね。
この間パスワード連続間違いやらかして文字画像認証になったんだけど、まともに読めなかったw
775デフォルトの名無しさん (ワッチョイ 9f2c-ndoi)
2020/02/05(水) 23:01:50.84ID:NEouxGwD0
漏れは、Ruby で、Selenium WebDriver, Nokogiri などで、
Chrome, Edge などのブラウザーを自動操作して、スクレイピングするけど

ここに書いておいた

【VBScript】WSHについて話し合うスレ【JScript】
http://2chb.net/r/tech/1578522041/24-27
776デフォルトの名無しさん (ワッチョイ b75f-mZAX)
2020/02/06(木) 00:07:34.22ID:UYgbv9bH0
fopenでファイルに書き込んでいたのですが
突然文字化けするようになったのですが
ファイルも送信もUTF-8なのですが
$str = mb_convert_encoding($str, "UTF-8");
のようにする必要性も感じないのですが
これはサーバー側の問題なのでしょうか
777デフォルトの名無しさん (ワッチョイ 9f2c-ndoi)
2020/02/06(木) 04:47:55.73ID:/hIhK6yv0
相手のサーバーか、または自分のプログラムのファイルを保存した際に、

文字コードが異なるとか、BOM 有りUTF-8 になってるとか?
778デフォルトの名無しさん (ワッチョイ ffa7-QQjh)
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
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を作成した時のパスワード又はユーザー名が全く別のものだと考えられるのですが原因はやっぱりこれでしょうか?
782デフォルトの名無しさん (ワッチョイ 9701-L9ne)
2020/02/06(木) 22:02:13.41ID:qcCZ1na20
コマンドプロンプトで消せと書いてあるんですがデータのみインストールでzipからインストールしなかった場合消せるのでしょうか?
783デフォルトの名無しさん (ワッチョイ 57da-OB/u)
2020/02/07(金) 09:05:50.45ID:qw7QPilU0
0.1を10回足しても1.0にならないのはおかしい
784デフォルトの名無しさん (ワッチョイ ffa7-QQjh)
2020/02/07(金) 09:42:40.68ID:IMRBAKuu0
>>780
君は一体なんの話をしてるのかね

>>781
多くの言語は0.99999とかになるのだがw
785デフォルトの名無しさん (ワッチョイ ffa7-QQjh)
2020/02/07(金) 09:43:31.21ID:IMRBAKuu0
↑の下は>>783
786デフォルトの名無しさん (オッペケ Sr0b-B6qE)
2020/02/08(土) 09:15:29.74ID:dJyCpuORr
mysqli関数使ってるんだが、PDOについて質問です。

別のDBMSに乗り換えるときに便利、みたいな記事をよく見ますが、DBMSごとにSQL文の制約が少しずつ違いますよね?

この差はPDO自体は吸収できませんよね?コードで分岐するしかないんですよね?

すると、MySQLしか使わない限りは、PDOを使うメリットって何でしょうか?
787デフォルトの名無しさん (ワッチョイ 7fca-z+R/)
2020/02/08(土) 10:26:28.77ID:zZtEQOJV0
>>786
DBMS依存の書き方が多いなら無理して使う必要もないんじゃね。
専用のやつの方がパフォーマンスもいいんだろうし。
788デフォルトの名無しさん (ワッチョイ d7a7-QQjh)
2020/02/08(土) 14:08:52.88ID:iOIJiyGE0
>すると、MySQLしか使わない限りは、PDOを使うメリットって何でしょうか?
自分で使うもので将来的な移行もありえないならメリットは特にない
pdoのほうがよりモダンなコードで書けるぐらいか
パフォーマンスは公式にも書いてるけどどのAPI使ってもほぼ同じで誤差程度
789デフォルトの名無しさん (ワッチョイ f76e-B6qE)
2020/02/08(土) 14:31:04.68ID:Jjt1u8eP0
>>787
>>788
レスありがとう。
そっか、じゃあインジェクション対策もしてあるからこのままで行きます。
790デフォルトの名無しさん (ワッチョイ 5308-oFCC)
2020/02/12(水) 15:56:54.08ID:Q5WPE+fg0
ID:qcCZ1na20
はとりあえず日本語から勉強し直せ
アホー知恵袋より酷いぞ

つかプログラミング向いてないから手遅れになる前に諦めた方がいいんじゃね?
791デフォルトの名無しさん (ブーイモ MM0e-gsGW)
2020/02/12(水) 17:49:58.19ID:qFSwmyrvM
アップロードしたファイル名をDBに書き込んでファイルはtmpディレクトリに保存しておくときって
ファイルの名前はハッシュ値に変えるべきかそのままのファイル名で処理するかどっちがいいの?
792デフォルトの名無しさん (ワッチョイ 1fa7-J3a+)
2020/02/13(木) 15:55:19.51ID:ngv8BCkj0
いつ消えるかわからないtmpに保存しとくって解せぬ
ファイル名をハッシュ値に変える意味はわからないけどそこは好きにすればいいのでは
793デフォルトの名無しさん (ワッチョイ 5eda-OxJ8)
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();
794デフォルトの名無しさん (ワッチョイ b761-cV6v)
2020/02/15(土) 18:16:15.52ID:Y132p/bJ0
>>793
function test() {
global $arr;
795デフォルトの名無しさん (ワッチョイ 5eda-OxJ8)
2020/02/15(土) 18:30:10.65ID:ndNA2Bw/0
>>794
どうも。
教えていただいた記述ではエラーが出てしまい、下記にしたらいけました。
仕組みググってきます!

var_dump($GLOBALS['arr']);
796デフォルトの名無しさん (ワッチョイ 8689-RqZf)
2020/02/15(土) 22:52:13.91ID:wgObr5UE0
質問です。
色の近さを測る方法ってあるでしょうか?
例えば、
A.#4169e1 B.#ff7f50 C.#dc143c
があった場合、Cにより近い色はAとBどちら?
といった感じで使いたいです。
797蟻人間 ◆T6xkBnTXz7B0 (ワッチョイ a701-ZWcj)
2020/02/15(土) 23:32:30.86ID:f7hi9XcW0
色コードといえば、RGBとかHSVとかCYMKとか習うと思うけど、これらは数学的にいうと、(ベクトル空間みたいな)色空間上の位置を持った点を意味する。
色の近さは色空間での2点間の距離の長さ。というわけで、色空間と距離の定義しだい。
798デフォルトの名無しさん (ワッチョイ d201-b83C)
2020/02/16(日) 00:01:58.16ID:iNVxJNOu0
https://ja.wikipedia.org/wiki/色差

DeltaE00をRGBから計算する
面倒くさいのでライブラリ的なの探す
799デフォルトの名無しさん (ワッチョイ 8689-RqZf)
2020/02/16(日) 00:14:57.82ID:KR6y1seH0
思った以上に難しそうだな…
16進数だからC-AとC-Bを行い絶対数の小さい方が似てる色くらいに思ってたぜ
800蟻人間 ◆T6xkBnTXz7B0 (ワッチョイ a701-ZWcj)
2020/02/16(日) 00:30:14.36ID:yQcmKOn30
まずはRGBコードをHSVに変換してみましょう。
801蟻人間 ◆T6xkBnTXz7B0 (スフッ Sd32-ZWcj)
2020/02/16(日) 00:32:40.25ID:+ZLQtp1jd
https://github.com/katahiromz/color_value
C言語だけどこれで良ければ
802デフォルトの名無しさん (ワッチョイ 46ca-MwwC)
2020/02/16(日) 03:32:24.89ID:Tw+Vg2AB0
色の近さの判断基準が分からんとな。
とにかくRGBをHSVなりに変換したとして、
色相(H)が近ければ濃さ(S)や明るさ(V)はどうでもいいのか?
どうでもよくないならそれぞれのパラメータの重みを決める必要があるな。
803デフォルトの名無しさん (ワッチョイ 122c-LiuO)
2020/02/16(日) 07:16:26.92ID:5EL9p8ON0
SASS のmixin に、そういう機能は無いのか?
804デフォルトの名無しさん (オッペケ Src7-DLam)
2020/02/16(日) 08:37:59.92ID:B0xDVat5r
単純に3次元ベクトルの距離差だけでよいじゃん
RGBなんだし
805デフォルトの名無しさん (ワッチョイ d263-OxJ8)
2020/02/16(日) 10:40:08.82ID:e/9Szh9J0
人の目に感じる色の近さは、RGBの数値だけでは判定できないな
色合いと彩度で比較する方が感覚に近い
806デフォルトの名無しさん (ブーイモ MMa7-mtzg)
2020/02/21(金) 10:38:09.06ID:uhz6TO4QM
csvをアップロードして中身読み込んで確認画面を出して問題なければDBに登録する仕組み作ってるんですけど
ページ間のデータ渡しって2Mくらいのそれなりに大きいデータでもセッションで大丈夫ですか?
807デフォルトの名無しさん (オイコラミネオ MM47-1Tph)
2020/02/21(金) 11:04:55.83ID:KI0NB2iSM
セションの中身はディスクに書いてるんだろうから、2MBくらいなら保存自体の問題は無いんじゃね。
でも不要になったらセッションからさっさと削除しないと、毎回そのデータがメモリにロードされることになる。
セッションとは別に一時ファイルに書き出してそのファイル名をセッションで保持するのがスマートな気がするけど、一時ファイルの掃除の方法を別途考えないといけないのが面倒だな。
808デフォルトの名無しさん (ブーイモ MMa7-mtzg)
2020/02/21(金) 11:36:12.22ID:uhz6TO4QM
>>807
ありがとうございます!
ファイルに保持させる方法も考えてみます
809デフォルトの名無しさん (オイコラミネオ MM47-1Tph)
2020/02/21(金) 12:41:45.52ID:KI0NB2iSM
>>808
一時ファイルの掃除のためにこの辺を読んでおくといいと思う。
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="【PHP】下らねぇ質問はここに書き込みやがれ 10 	->画像>16枚 ; target="_blank">
こうしたい↓
【PHP】下らねぇ質問はここに書き込みやがれ 10 	->画像>16枚
作ってみたのがこれ↓
preg_match_all('/href="(.*?)(jpg|jpeg|png)?"/', $html, $imgurllist);

わかる方いらっしゃいました教えて下さい。
811デフォルトの名無しさん (ワッチョイ 8f02-wKkS)
2020/02/23(日) 17:21:12.17ID:UC/kHLCn0
"の前に\が必要かも?
href=\"(.*?\.png|.*?\.jpeg|.*?\.jpeg)\"
なんてどうでしょう
812デフォルトの名無しさん (ワッチョイ 8f02-wKkS)
2020/02/23(日) 17:21:56.35ID:UC/kHLCn0
最後はjpgの間違い
813デフォルトの名無しさん (ワッチョイ a3a7-icXw)
2020/02/23(日) 18:39:43.25ID:p2aTkQco0
なんでもかんでも正規表現でやらんほうがいいよ
ちゃんとしたの書くの難しいし何より自分がわからないのは良くない
多少時間はかかるかもしれないが
getElementsByTagName('a')->getAttribute('href')でa hrefのリストとってきて
1個ずつpathinfo['extension']を見ていく感じ
pathinfo['extenstion']の?以降を除外してstrtolowerで拡張子小文字にした上で
in_arrayあたりで比較すればいいんでは?
814デフォルトの名無しさん (アウアウウー Sae7-bgYn)
2020/02/23(日) 19:13:36.62ID:xNzf67+4a
正規表現なら一行で書けるのにごちゃごちゃ関数かます方が意味分からない
815デフォルトの名無しさん (ワッチョイ ff63-Nz9x)
2020/02/23(日) 19:21:02.12ID:S7JwB5qb0
あの呪文のような記述を受け付けない人もいるみたいだ
俺は好きなんだけどな
816デフォルトの名無しさん (ワントンキン MM9f-IDX8)
2020/02/23(日) 19:29:10.11ID:EUelPM9rM
>>814
一行で書いてみ
もちろん810がやろうとしてるザルなのはだめな
817デフォルトの名無しさん (アウアウウー Sae7-bgYn)
2020/02/23(日) 19:52:51.22ID:xNzf67+4a
新手の教えて君か?
その手には乗らねーよ
818デフォルトの名無しさん (ワントンキン MM9f-IDX8)
2020/02/23(日) 20:18:07.28ID:EUelPM9rM
ま、こんなもんだろ
口先だけで自信ないから書けない
正規表現なんて書けた気でいるやつが大半でバグの温床
本当にちゃんと書けるやつだけ使えな
819デフォルトの名無しさん (アウアウウー Sae7-bgYn)
2020/02/23(日) 20:46:46.39ID:xNzf67+4a
頭がバグってるやつに言われてもね
820デフォルトの名無しさん (ワッチョイ ffad-C6+A)
2020/02/23(日) 21:13:29.11ID:0sUq9sLC0
>>818
自分が有能と勘違いしてるプログラマにありがちだな
教えて→こんなこともわからないの?底辺!→はよ教えて→考える力が身につかないよ!自分でやれ!→はよ教えて→無言で逃走
821デフォルトの名無しさん (ワッチョイ 6fda-Nz9x)
2020/02/23(日) 21:37:24.28ID:rIVuphj20
先輩が書いたコードを見ると $_SERVER などの取得する値に対して
urldecode やら isset やらで本当にその値か正しいものかどうか、セットされてるかどうか
毎度調べてるようなのですが、正しくない場合の事例が書いてあるサイトってありますか?

また、この手のエスケープや存在確認やらがまとめてあるサイトもあれば教えていただけますでしょうか。
自分では追っかけきれず、毎度先輩に迷惑掛けてしまっている状態で申し訳ないっす…
822デフォルトの名無しさん (ワッチョイ 8302-8E80)
2020/02/23(日) 22:27:34.54ID:jUm6GNGX0
横からワロス

>>817
なんでわざわざ二レス三行も書いて、一行で書けるものを書かないのか
823デフォルトの名無しさん (ワッチョイ 3308-p4c1)
2020/02/24(月) 11:46:26.32ID:/D+Ss1rU0
>>821
$_SERVERで取れるのは環境変数
環境変数って言うぐらいだから、その値が必ずある保証なんてないし、めちゃくちゃな値をセットする事もできる

例えば
$_SERVER['HTTP_USER_AGENT']
とかな。自分でめちゃくちゃな値をセットして自分で実験してみたらいい

isset()なんか使わんけどねw
あるか無いか分からない時は getenv() 使えばいい

urldecode()にいたっては検証用の関数ですらない
URLエンコードされたデータをデコードしてるだけ

なんていうかHTTPの基礎から理解できてない
とりあえずGoogle Chromeのデベロッパツールでも眺めてHTTPの流れから理解した方がいいんじゃね?
824デフォルトの名無しさん (ワッチョイ 3308-p4c1)
2020/02/24(月) 11:58:40.79ID:/D+Ss1rU0
>>818
ペチパーはクソ正規表現をネットに載せるな!って昔からよく馬鹿にされるからなぁ…

まずは>>813のようにHTMLをパースする別の手段を検討すべき
その上であえて正規表現を選ぶってのなら別にいいけどさ
825デフォルトの名無しさん (ワッチョイ 3308-p4c1)
2020/02/24(月) 12:00:32.05ID:/D+Ss1rU0
>>810
くそ適当に書くけど

$html = '<a href="【PHP】下らねぇ質問はここに書き込みやがれ 10 	->画像>16枚 ; target="_blank">';

preg_match_all('/href\s*=\s*([\'"])(.+?\.(?:jpe?g|png))\\1/i', $html, $match, PREG_SET_ORDER);
print_r($match);

・大文字小文字の考慮
・スペース文字の考慮
・シングルクォートで挟むのかダブルクォートで挟むのかの考慮

正規表現を使うならせめてこれぐらいはしようよw
826デフォルトの名無しさん (ワッチョイ 3308-p4c1)
2020/02/24(月) 12:08:32.46ID:/D+Ss1rU0
自分で書いた>>825のクソコードを眺めて思ったがほんと>>818の言う通りだな
一字一句同意する

きちんと処理したいならHTMLパーサーを使ってきちんとパースしなされ
827デフォルトの名無しさん (ワッチョイ 8f89-sS5o)
2020/02/24(月) 12:27:06.58ID:bCyGnyrg0
>>810です。
皆様ありがとうございます。
勉強不足であると実感しました。
URL取得はうまくいきました。
828デフォルトの名無しさん (ワッチョイ 4301-ChGR)
2020/02/24(月) 18:10:06.13ID:rxpR87T30
>>821
毎度?普通はそういう繰り返し使われる処理はライブラリ化すると思うけど
829デフォルトの名無しさん (ワッチョイ 4301-ChGR)
2020/02/24(月) 18:12:00.24ID:rxpR87T30
正規表現なら1行で書けるといいながらその1行すら書けずに逃げた>>814が恥ずかしすぎる
830デフォルトの名無しさん (ワッチョイ 6fda-Nz9x)
2020/02/24(月) 18:27:40.24ID:pG7e8gTP0
>>823
ありがとうございます。
色々値セットして試してみます。

ちなみにデベロッパーツールの何処をみたらHTTPの流れを知ることができるのでしょうか?
831デフォルトの名無しさん (ワッチョイ 3308-p4c1)
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にせよあくまでも自称であり、
そこには嘘でもめちゃくちゃな文字列でもなんでも書けるんだよ
だから値を信用したら駄目ってこと
832デフォルトの名無しさん (ワッチョイ 3308-p4c1)
2020/02/24(月) 19:42:59.09ID:/D+Ss1rU0
>>830
自分でHTTPクライアントを作ってみるのが一番いい
fsockopen()やstream_socket_client()あたりでサーバに接続して
HTTPの命令を送ってレスポンスを受け取るみたいなコードを書けばHTTPの流れは一発で理解できる

「PHP stream_socket_client HTTP/1.1」とか適当にググったら、たぶんサンプルコードは見つかるはず
833デフォルトの名無しさん (ワッチョイ ff2c-lQWV)
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
834デフォルトの名無しさん (ワッチョイ 6fda-Nz9x)
2020/02/24(月) 20:10:17.32ID:pG7e8gTP0
>>831-832
超詳しくありがとうございます!
ググる用語まで教えていただき感謝です。

Headers はじめて開きました。
ここの情報を引っ張ってきてるんですね。
色々調べてみます。
835デフォルトの名無しさん (ワッチョイ ff2c-lQWV)
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"
}

###
836デフォルトの名無しさん (ワッチョイ fb5f-g6LZ)
2020/03/04(水) 00:36:08.76ID:4nMHG/7W0
phpファイルにパスワードを記入しているのですが
安全でしょうか?
もしくはもっと安全な方法はありますか?
837デフォルトの名無しさん (ワッチョイ 9f63-xiWk)
2020/03/04(水) 01:50:10.45ID:9gBPL9dd0
安全かどうかと聞かれれば、安全ではないと答えるが
838デフォルトの名無しさん (ワッチョイ 4f89-x1Qw)
2020/03/07(土) 21:24:50.43ID:0OcB8lvE0
質問です。
テキストファイルにキーワードが書いてあり、
それを読み込んで一致する文字列があったらtrueを返します。
しかし、たまに一致箇所があるにも関わらずスルーされる場合があります。
なぜでしょうか?
判定は↓のような感じです。
strpos($str,'キーワード') !== false
839デフォルトの名無しさん (ワッチョイ 9fad-j73r)
2020/03/07(土) 22:30:19.72ID:olnFzWkU0
>>838
再現性のある最小コードをどうぞ
$strとキーワードじゃエスパーじゃないと分からん
840デフォルトの名無しさん (ワッチョイ 1fdd-BxM+)
2020/03/07(土) 22:38:56.40ID:1MRzagVb0
改行が混ざってるんじゃない?
841デフォルトの名無しさん (ワッチョイ 4f89-x1Qw)
2020/03/07(土) 23:48:46.74ID:0OcB8lvE0
すみません。
解決しました。
原因は、テスト用のフォルダのパスのままになっていたことと
試運転時のデータが一部使われていた事により
一部検出されていないというおかしな状態になっているということでした。
842デフォルトの名無しさん (ワッチョイ 9f63-yvuU)
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 を指定しない場合は括弧なしでコールできます。

って今知ったわー
844デフォルトの名無しさん (ワッチョイ 86da-drwQ)
2020/03/13(金) 02:12:30.03ID:iVXMMcFW0
foreach ($this->_db->query($sql) as $v) {...}

query()やprepare()で準備した文はexecute()必須だと思ってましたが
↑の記述ではexecute()なしでSQL文を実行できているようでした
何故でしょうか?
845デフォルトの名無しさん (ワッチョイ c263-drwQ)
2020/03/13(金) 02:27:00.67ID:6hF2k6+W0
$sqlの内容が 直接実行可能なSQL文だったらそのままで行けるよ
846デフォルトの名無しさん (ワッチョイ 69f1-ZSAD)
2020/03/13(金) 13:42:16.08ID:3oUhS72l0
->
=>

がよく混同する。
どれがどの用法かを一発で覚える方法ある?
数ヵ月以上使っていなかったり他言語やってたりすると覚えるのは困難。
847デフォルトの名無しさん (ワッチョイ 86da-drwQ)
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的な感じなのでしょうか?
848デフォルトの名無しさん (ワッチョイ 86da-drwQ)
2020/03/14(土) 11:47:05.77ID:Vu/3uGwv0
>>847
自己解決しました。
prepare() と execute() がセットで query() は単体でおkのようでした。
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
->これはアロー演算子だから
オブジェクトとかクラスとか呼び出したときにメソッドを呼び出すときに使うから
クラス名->メソッドとかで
=>これは普通の演算子以下とか以上とかで使うやつだから
851デフォルトの名無しさん (ワッチョイ ed5c-FfQu)
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!
854デフォルトの名無しさん (ワッチョイ 068c-WOeG)
2020/03/15(日) 12:42:37.91ID:dxrxQoIU0
>>850
間違ってたわ、=>これは配列で添字で関係持たせるときに使うやつだったわ
謝罪しておきます
855デフォルトの名無しさん (ワッチョイ 69a7-R/wk)
2020/03/15(日) 19:54:07.87ID:NaNFV4Bh0
最近はfnとセットでアロー関数使うときにも使うけどね
856デフォルトの名無しさん (ワッチョイ 69d2-WWFo)
2020/03/16(月) 05:40:39.73ID:3OE3knP80
>>846
-> は「の」
=> は「は」
857デフォルトの名無しさん (ワッチョイ 69f1-5Ayy)
2020/03/16(月) 10:12:02.17ID:n/UZHZ/90
>>856
その説明ではわかりません。

まず
・象は鼻は長い
・象の鼻は長い
の違いを教えてください
858デフォルトの名無しさん (ワッチョイ f9c4-ZeYt)
2020/03/16(月) 10:41:57.59ID:88XG2BvL0
なんでこうプログラマとかUNIX使いってめんどくさいのが多いかね
859デフォルトの名無しさん (ワッチョイ c263-drwQ)
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」が勝手に追加されていました。
これのせいで上手く表示されていないようです。
なんとかして画像を表示させる方法はないでしょうか?
861デフォルトの名無しさん (オッペケ Sr85-lbMX)
2020/03/22(日) 17:37:50.11ID:95kANOoTr
>>860
諸々の知識が足りて無さすぎるのでサーバーとはなんぞやxamppとはなんぞやってとこから勉強してどうぞ
862デフォルトの名無しさん (オッペケ Sr85-DLm1)
2020/03/22(日) 17:38:33.08ID:StD3gLg7r
urlとファイルのパスは違う
ただそれだけ
863デフォルトの名無しさん (ワッチョイ 1389-xsY/)
2020/03/22(日) 18:26:04.76ID:R2yf6A3f0
ウ〜ンやっぱ無理か
一時的にコピーくらいしか思いつかんな
データとして貼り付けるにして多いし重すぎる
864デフォルトの名無しさん (ワッチョイ 8b61-W5ce)
2020/03/22(日) 19:21:51.54ID:uAP5d0yV0
ドキュメントルート内のどこかからジャンクションやシンボリックリンク張るなり、サーバー設定でaliasすればいいんでね?
865デフォルトの名無しさん (ワッチョイ 9363-ED79)
2020/03/22(日) 19:38:15.03ID:sN305W7E0
>>863
フルパスで指定している?
ドライブ名が入っている?
866デフォルトの名無しさん (ワッチョイ 1389-xsY/)
2020/03/22(日) 22:18:36.23ID:R2yf6A3f0
>>865
フルパスでやってる
ドライブ跨ぐと駄目なんだろうな
867デフォルトの名無しさん (ワッチョイ 9363-ED79)
2020/03/22(日) 22:40:26.52ID:sN305W7E0
>>866
https://webnetamemo.com/server/201509181768

ここの、「VirtualHostを追加」を参考にしてみて
868デフォルトの名無しさん (ワッチョイ fbda-ED79)
2020/03/22(日) 22:54:04.30ID:D4yHaglA0
相乗りで質問させてください。

>>867 のリンク先に書いてあるような設定を済ませて、chromeでは〇〇〇.localhostといった
URLで開けるようになったのですが、それ以外のブラウザではエラーが出てしまい開けません。
改善方法はありますでしょうか?

PHPと関係ないかもしれませんが、該当スレも見当たらず…
どうかご回答よろしくお願いいたします。
869デフォルトの名無しさん (ワッチョイ 81da-ED79)
2020/03/22(日) 23:06:53.02ID:UY6UlDJY0
マルチな上に回答付いてる
http://2chb.net/r/mysv/1529369008/296-298
870デフォルトの名無しさん (ワッチョイ 29a7-hdmr)
2020/03/22(日) 23:51:04.35ID:z2MML3bn0
virtualhostでもいいけどめんどいしalias追加でいいんじゃねえの
871デフォルトの名無しさん (ワッチョイ 8b2c-cvBQ)
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 ドライブ内にあるからかな?

アクセスするサーバーが、どのドライブのどのフォルダ内を、
カレントディレクトリとして起動したか
872デフォルトの名無しさん (オイコラミネオ MM55-94HG)
2020/03/23(月) 21:22:44.81ID:w/tA8drNM
2ch風の掲示板を作ってます。
datファイルで一行に名前・メール・メッセージと管理用のIDやらを
記述するやり方で、レスアンカーやurlをループ処理の中で出力時に
aタグで囲む方法が思い付きません。

正規表現でメッセージから有無の判定はできましたが、そこから先で詰まってます。
ヒントをください。
873デフォルトの名無しさん (オイコラミネオ MM55-8l36)
2020/03/23(月) 21:47:23.30ID:QTEdjjlGM
>>872
その正規表現を貼ってごらんよ。
それ使えばできるはず。
874デフォルトの名無しさん (ワッチョイ 29a7-hdmr)
2020/03/23(月) 22:01:36.98ID:4wQQ+VSn0
後方参照がわからんのだろうな
matchじゃなくてreplaceでおk
正規表現でマッチした()の中身を置き換えのとこで$n or \\nで参照できる
例えばこんなん
https://ideone.com/lJv04e
875デフォルトの名無しさん (ワッチョイ fbda-ED79)
2020/03/24(火) 02:26:45.30ID:84LIBSDP0
>>874
ありがとうございます。
早速試してみます。
何かできそうな気がしてきました!
876デフォルトの名無しさん (ワッチョイ b6da-Cd0d)
2020/03/25(水) 23:42:46.36ID:YJCiq0GG0
>>874
下記記述で行けました。
本当にありがとうございました(涙)
preg_replace('/&gt;&gt;([0-9]{1,3})/', '<a href="#$1">>>$1</a>', $message);

ちなみにセキュリティに対して理解が浅すぎるのですが、渡ってくる文字列に対して警戒していればおkで
置換でa要素を使ったり、HTMLエンティティ対象の文字列をそのまま書いても大丈夫なのでしょうか?
877デフォルトの名無しさん (ワッチョイ b1a7-B4Y8)
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(['/&gt;&gt;([0-9]{1,3})/', '%(https?://[^\s&]+)%'], ['<a href="#$1">&gt;&gt;$1</a>', '<a href="$1">$1</a>'], $message);

とかなんじゃないかなと
リンクつける仕様上一旦エスケープしたのを戻す箇所があるので
そこでXSSを成立させないよう注意してコーディングする必要がある
エスケープ済みの文字は&lt;や&quot;のように&がつくので
[^\s&]のとこのように&でぶったぎるのが簡単
ちなみにurlの複数パラメータでも使われる&の扱いは面倒なので適当だけど
>>835のように&でリンク切れてるの見る限り5chも適当なのでおkってことで
878デフォルトの名無しさん (ワッチョイ b6da-Cd0d)
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);

凄く参考になりました。
どうもです。
879デフォルトの名無しさん (ワッチョイ 09da-Cd0d)
2020/03/29(日) 10:25:07.65ID:wUzzaaBN0
文字列と多次元配列の値に対して一括で処理できるメソッドで質問です。

下記メソッドで$hogeに多次元配列が渡ってきたと仮定しまして、
値が配列であれば再起処理でメソッドが再度呼び出されるそうです。

私の考えでは、再起処理で多次元配列の中の値が配列ではなかったときは、
Aの文字列の方に流れるのではと思っていたのですが、実際は@に流れるようです。

多次元配列の中の文字列にis_array()を掛けてもfalseなのですが、どういった理由で
@に流れるのでしょうか?

function test($hoge) {
 // 配列の場合
 if (is_array($hoge)) {
  foreach ($hoge as $key => $value) {
   // 再起処理
   if (is_array($value)) {
    test($value);
   }
   // @配列の中の値が配列でない場合
   else {
    ...
   }
  }
  return;
 }
 // A文字列の場合
 return;
}
880デフォルトの名無しさん (ワッチョイ b1d2-pf+t)
2020/03/29(日) 12:47:17.78ID:XdbgZgVO0
@は再帰呼び出しで、Aは再帰の終了条件だね。
配列の中に配列があったときは@が呼ばれるようになってる。
再帰を一度じっくり勉強したほうがいいよ。誤字も含めて。
881デフォルトの名無しさん (ワッチョイ 09da-Cd0d)
2020/03/29(日) 14:07:51.77ID:wUzzaaBN0
>>880
誤字失礼しました。

どうにも理解できなくて、再度質問しようと文字に起こしていたところ自己解決できました。
Aは文字列専用の終了条件で@は配列専用の終了条件だったようです。

再帰処理の際に値が文字列なのに、何で配列判定で true が出るのだろう?
というところが疑問だったのですが、
本来であれば配列の中の配列である [] で再帰処理されるところを、その中の値Bで
再帰処理されていると勘違いしておりました。

ご迷惑おかけしました。

$hoge = [
 'piyo1',
 'piyo2',
 [
  // B
  'piyo3'
 ]
];
882デフォルトの名無しさん (ワッチョイ adda-Cd0d)
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
}
883デフォルトの名無しさん (ワッチョイ a9ca-Emx9)
2020/03/29(日) 19:30:19.50ID:KCykJRwi0
>>879
foreach 直後の if は不要で無条件に test($value) を行い、
Aは else にして @ に書いてた処理を書き、
関数の引数は function hoge(&$value) で参照で受けとるようにし、
foreach も foreach($hoge as &$value) にする。
こうしないと動かなくない?
884デフォルトの名無しさん (ワッチョイ a9ca-Emx9)
2020/03/29(日) 19:31:44.20ID:KCykJRwi0
>>883
ごめんまちがい
function のくだりは function test(&$hoge) ね。
885デフォルトの名無しさん (ワッチョイ 4f5f-JsNC)
2020/04/11(土) 19:45:53.72ID:9fxAF0s30
phpのechoを使ってルートフォルダからの絶対パスを指定して
ナビ部分のリンク変更をサイト全体に一括で行えるような書き方を教えてください

3年くらい前にやってたんですが
やり方がわからなくなってしまいました
886デフォルトの名無しさん (ワッチョイ 6fa7-kpEi)
2020/04/12(日) 01:01:57.54ID:9sN7iYc+0
>>885
echoにそんな機能ないし、何が聞きたいのか伝わらないと思う。

find(grep)+sedのような、ファイルの中身に特定の文字列があれば、
それを一括で書き換えるようなことをしたいわけでもなさそうだし、
何かナビ用のリンクのリストをincludeしてるなら、
そのリストの中身を書き換えろで終わる話だけど、そんな簡単な話でもなさそうだし。
887デフォルトの名無しさん (ワッチョイ 4f5f-JsNC)
2020/04/12(日) 07:18:43.42ID:xGytKmNW0
細かく言いますと
一時期Web製作会社でコーディング業務をしており
html/cssは扱えるのですがphpはヘッダー、ナビ、フッターなど共通部分をincludeフォルダで共通化できる程度しか扱えませんでした

そして自社のドメインのサブドメインでテスト環境を作り、そこでHPを作成して客先の本番サーバにアップロードという工程で納品、保守管理をしていました

その場合、リンク先を絶対パスで書けないので相対パスにする訳ですが
phpで常にルートフォルダを取得して書き出し、それに続けて下層のリンク先を明記するようにしていたんですが
そのやり方を忘れてしまったので教えて欲しいのです
888デフォルトの名無しさん (ワッチョイ 671a-KRXG)
2020/04/12(日) 08:39:06.07ID:3vwO7tAb0
それだけ具体的に説明できるんならググった方が早いぞw
889デフォルトの名無しさん (ワッチョイ f7da-AglQ)
2020/04/12(日) 11:56:55.73ID:+wetVu4e0
2ch風の掲示板を作っており、考え方についてアドバイスをいただきたいです。

ログファイルでレスを記録して、1レス1行で構成されています。
ajaxを用いて遷移なしでの投稿反映と、レスアンカーにホバーすると、該当のレスを引っ張ってくる
ようになっています。

このレスアンカーへのホバーを行うと、当たり前なのかもしれませんが、添付の画像のように
どんどん_ajax.phpのファイルへのアクセス?が増えていってしまい、投稿ならまだしも、
ホバーするだけでPOSTを行うなんて、無駄な処理をさせているのではないか?
と考え出しております。

ログファイルは数百kb程度なので、投稿内容の全てをJS側で配列で保持をしていく方が
無難だったりしますでしょうか?

【PHP】下らねぇ質問はここに書き込みやがれ 10 	->画像>16枚
890デフォルトの名無しさん (ワッチョイ a201-vZv9)
2020/04/12(日) 13:52:29.72ID:tx1YNXXn0
>>889
目的次第

少なくとも表示中のレス(=クライアントで保持してるレス)に対するアンカーへのホバーでサーバーにアクセスさせるのは無駄
891デフォルトの名無しさん (ワッチョイ f7da-AglQ)
2020/04/12(日) 14:07:51.14ID:+wetVu4e0
>>890
ありがとうございます。

やはり無駄でしたか。
おいおい100レスずつ表示とかする予定ですので、表示されているレスと
表示されていないレスとで分岐させてみます。
892デフォルトの名無しさん (ワッチョイ 6ff1-Xgk8)
2020/04/12(日) 14:43:40.33ID:1ZMEMPeI0
->
=>

この使い分けをよく忘れるのですが
覚えておくコツはありますかね?
メインでPHP言語以外をやってるのでたまにPHP書くときよく混乱します。
893デフォルトの名無しさん (ワッチョイ 6ff1-Xgk8)
2020/04/12(日) 14:46:43.20ID:1ZMEMPeI0
>>856
「の」はクラス「の」メンバー、
「は」は連想配列のkey「は」これですよ
という意味?

でもこれ以外で->や=>が出てくる場面なかった?
894デフォルトの名無しさん (ワッチョイ d7ca-BKMK)
2020/04/12(日) 15:36:12.26ID:ATqenNPh0
>>891
一度取ってきたレスはキャッシュしておけばどうよ。
どのみt 1-1000 みたいのだっやらまとめて全部取ってくることになりそうだが。
895デフォルトの名無しさん (ワッチョイ f7da-AglQ)
2020/04/12(日) 16:48:22.18ID:+wetVu4e0
>>894
ども。
おっしゃる通りかもしれません。
投稿以外でサーバーに負荷掛けるより、クライアント側で処理した方が
良い気がしてきました。
1回投稿での文字数を制限してしまえばサイズも制御できそうですし。
896デフォルトの名無しさん (ワッチョイ 062c-5WFu)
2020/04/12(日) 22:01:27.62ID:JZPIrIOa0
Ruby なら、0〜1,000 までの配列を作っておいて、
読み込んだレス番号だけは、その文字列を設定していく

p posts = Array.new( 1001 )

出力
[ nil, nil, nil, 続く... ]
897デフォルトの名無しさん (ワッチョイ d7ca-BKMK)
2020/04/13(月) 00:40:29.11ID:DZv8piin0
どうせなら ruby じゃなくて JS で例示してやれよ。
phpのスレでなんなんだけどさ。
898デフォルトの名無しさん (ワッチョイ a263-AglQ)
2020/04/13(月) 00:57:20.05ID:uI4POseh0
何かスレ番が飛んでいるんだけど
899デフォルトの名無しさん (ワッチョイ 6fa7-kpEi)
2020/04/13(月) 10:11:39.65ID:Hsuo/bvd0
RubyならRubyならってよく布教しに来るけどいい加減場違い空気嫁

>>887
URLの話じゃないでしょ?
内部の話なら別に相対パスにしなくても絶対パスでも問題ないんだけど。
その絶対パスがわからんって話?
自スクリプトから見た自分の絶対パスは__FILE__定数でわかる。
サーバのドキュメントルートが知りたいなら$_SERVER['DOCUMENT_ROOT']
ただしこういう環境変数($_SERVERや$_ENV)はあんまり過信しないほうがいいね。
900デフォルトの名無しさん (ワッチョイ 77b0-dkLK)
2020/04/16(木) 13:03:40.61ID:emwZ0tr20
Eclipseで参考書通りに
print “¥n”入れてもコンソールで改行してくれないんだけどなんで?
901デフォルトの名無しさん (ワッチョイ 9fad-9n34)
2020/04/16(木) 17:50:16.15ID:mDx3pHSK0
>>900
OSとか実行コードくらい書けないのか
あと円マークがそのまま出てるようなら
正しくは「(日本語環境では円マークに見える』バックスラッシュだから」
を確認しろ
902デフォルトの名無しさん (ワッチョイ 77a7-csEB)
2020/04/16(木) 18:32:43.61ID:jzlLoXMF0
Eclipseとかprint ""とかいう表記を見ると
古いか一般の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
ってなる
904デフォルトの名無しさん (ワッチョイ 9f63-Ho7r)
2020/04/16(木) 22:55:55.17ID:Vn4RPyR40
そりゃなるだろな
905デフォルトの名無しさん (ワッチョイ ff2c-8Jcx)
2020/04/16(木) 23:11:06.27ID:tywb42E30
これを、Ruby で、実行してもエラーになる!
print “\n”;

基本的にプログラミングは、どの言語でも、半角英数字しか使えない。
全角文字のクォーテーション・全角空白なども使えない

\ も、日本語キーボードでは、バックスラッシュキーのこと!
\ という文字を使っちゃいけない!

これなら、Ruby でも改行される。
print "\n" ;
906デフォルトの名無しさん (ワッチョイ 9702-o1R8)
2020/04/16(木) 23:33:15.15ID:H8AaCGjg0
rubyさんはあちこちのスレに出張布教してるんですね

>>903
php print 改行
で検索くらい出来ない?
907デフォルトの名無しさん (ワッチョイ 77a7-csEB)
2020/04/17(金) 06:24:31.98ID:9clD5XXx0
半角で書くべきとこを全角で書いてるのは
動いてるようだから書き込んだときのミスとして
文字コードがおかしいんだろう
文字コード変えるか\nやめてPHP_EOLにしとけば
908デフォルトの名無しさん (ブーイモ MMcf-ZtLA)
2020/04/17(金) 10:18:56.55ID:OO65ehhVM
バチスカってmacの専ブラで書き込むとクウォートが全角に、バックスラッシュが円マークに、自動変換される
909デフォルトの名無しさん (ワッチョイ 375f-xa8R)
2020/04/19(日) 11:58:51.62ID:KKQsn4ZP0
サーバー内で動くプログラミングは可能のことですか?
例えば無限ループで常に動かすプログラムとか
910デフォルトの名無しさん (ワッチョイ 9f5c-ycCE)
2020/04/19(日) 12:58:45.29ID:dTXGqJa40
可能なことアルヨ
911デフォルトの名無しさん (ワッチョイ 1701-QEis)
2020/04/19(日) 14:20:56.44ID:26zoB4wU0
可能アルヨ
912デフォルトの名無しさん (ワッチョイ 9f63-Ho7r)
2020/04/19(日) 16:17:57.28ID:8HZGCfxQ0
普通はそんな事しないな
913デフォルトの名無しさん (ワッチョイ 1701-QEis)
2020/04/19(日) 23:14:11.96ID:26zoB4wU0
定期実行されるクローラーとかのこと言ってるんじゃないの?
914デフォルトの名無しさん (ワッチョイ 77a7-csEB)
2020/04/21(火) 16:09:14.67ID:DLCfuoS50
個人的にPHPでサーバ書いてるんでそれはよくやってる
ただPHPに限った話じゃないけどその手のバックグラウンド実行は
普通のレンタルサーバだと一定時間でkillされるだろうね
915デフォルトの名無しさん (ワッチョイ 0de1-HPZ2)
2020/04/22(水) 08:46:54.32ID:kEPjMBTM0
定数を、成型した変数を代入することで宣言することはできませんか?

外部ファイル(.csv)を読み込み、連想配列$arrayを作成し、
クラス定数CLASS::CONSTをその配列$arrayにしたいのです
グローバル定数としてdefine(CONST, $array)することも試したのですが、いずれも出来ませんでした
916デフォルトの名無しさん (ワッチョイ e2ad-h7Ku)
2020/04/22(水) 11:16:41.91ID:/bKUmTE30
それは定数って言わないのでは
917デフォルトの名無しさん (アウアウウー Sa83-Ha7z)
2020/04/22(水) 19:18:42.44ID:KcrgV6Jha
定数にはコンパイル時定数と実行時定数(immutable, readonly)とがあるが, PHPは基本的にコンパイル時定数しかサポートしていない
実現したいのは後者の実行時定数なんだろうが, 「php readonly」とかでググれば分かるように言語としてはサポートしていない
918デフォルトの名無しさん (ワッチョイ 0c01-UN6T)
2020/04/22(水) 22:18:15.55ID:K1Lxy7X30
>>917
constがコンパイル時でdefineは実行時でしょ?

https://ideone.com/SgC9Eu
919915 (ワッチョイ 0de1-HPZ2)
2020/04/22(水) 23:55:38.61ID:kEPjMBTM0
すみませんできました
defineだと変数渡しで定数を作れました
単にPHP5.6でdefineで定数に配列を入れられないため正常動作しなかったようです
PHP7.3の環境では動作しました
お手数おかけしました
920デフォルトの名無しさん (ワッチョイ a601-ZzZR)
2020/04/23(木) 08:33:15.04ID:n33m75pH0
ドットインストールでCakePHP勉強するお
921デフォルトの名無しさん (ワッチョイ 4c2c-Hty+)
2020/04/23(木) 08:59:23.02ID:C0/pHZNH0
CakePHP, Spring Boot などは、Ruby on Rails のコピーだから、

Rails を学んだ方が速いと思う
922デフォルトの名無しさん (ブーイモ MMed-enkp)
2020/04/23(木) 09:41:57.79ID:RRYW82KBM
x ドットインストールでCakePHP勉強するお
o ドットインストールでCakePHP勉強するよ

正しい日本語。
最近の日本人は気持ち悪い言葉づかいをする。
923デフォルトの名無しさん (ワッチョイ a601-ZzZR)
2020/04/23(木) 10:24:36.69ID:n33m75pH0
>>921
Webアプリの仕組み(裏でどう動いているか)を理解したくて、LaravelかCakePHPかで迷ってCakePHPを勉強しようと思ったんだけどLaravelはどう?
924デフォルトの名無しさん (ワッチョイ bade-1qfr)
2020/04/23(木) 13:03:21.20ID:9QHb+xSV0
>>922
体言止めに句点打つのめちゃくちゃ違和感あるんだが
925921 (ワッチョイ 4c2c-Hty+)
2020/04/23(木) 23:07:52.02ID:C0/pHZNH0
web アプリの作り方を学ぶのは、Ruby が最適!

本当は、Sinatra が良いけど、web 上の教科書が少ないから、
Rails になるかな?

ただし、Rails は、半年ぐらい掛けて学ぶぐらい高機能。
本は、10冊ぐらい出てる

web サイトでは、日本語版・Rails チュートリアルの1つ古いバージョンなら、無料で読めるけど、
あまりに難しいので、初心者は本から始めるのが良い
926デフォルトの名無しさん (ワッチョイ 96f2-30bp)
2020/04/23(木) 23:15:49.37ID:l5RZFi5J0
RubyをNGワードに入れるのはデフォなんですかね?
927デフォルトの名無しさん (ワッチョイ e2ad-h7Ku)
2020/04/24(金) 02:12:49.04ID:rM9gQYtA0
>>926
次からテンプレに入れよう
928デフォルトの名無しさん (ワッチョイ 4ca7-Op/G)
2020/04/24(金) 02:24:32.60ID:nHNgt9zS0
単に使い方を学びたいと言ってるだけなら別にフルスタックでもいいけど
ソースコードレベルで仕組みを理解したいならフルスタックは疲れるだけ
slimあたりのマイクロフレームワークのソースコード読むといい
929デフォルトの名無しさん (オッペケ Sr72-Xss7)
2020/04/24(金) 05:55:46.89ID:cuZ5QlOgr
なんで荒らしの相手をするんや。

ホントにRubyが優れとるなら、PHPで書かれた有名ソフトがRubyで書かれなかった理由を提示させるべきや。

WordPressもNextCloudもPHPなんや。Facebookも元はPHPで書かれてた。

PHPerは胸を張って堂々としておけ。小バエが顔の前をうろちょろしても気にするな。
930デフォルトの名無しさん (オッペケ Srd7-V4ab)
2020/04/26(日) 16:06:33.45ID:EH1DMWp5r
小さなグループのための連絡帳づくりには便利だな
自分も使って現在5人くらいで使っておおむね合格点しかし
「こういう風になってたらもっといいなあ」多数w
931915 (ワッチョイ 0de1-HPZ2)
2020/04/26(日) 16:37:45.80ID:QChGrgCL0
RubyってPHPと張り合うものだったんだ?
あれはPerlと競合するものだと思ってた
932デフォルトの名無しさん (ワッチョイ efca-WM26)
2020/04/26(日) 22:04:15.59ID:NZagGUNV0
PHPはごった煮のテンプレートエンジンってイメージだな。
スクリプトのパースがコードではなくテキスト出力から始まるしな。
そこが他のスクリプトと比べてもweb向きに使い勝手がいいところだと思う。
933デフォルトの名無しさん (ワッチョイ a7f1-trzR)
2020/05/02(土) 15:59:18.74ID:riUeVpMT0
https://www.youtube.com/channel/UCoRxcaATU1N9QdXXgmQLBFQ

このふるちゃんという女の子が超絶にかわいいのだけど
このYoutuberってなにもの?
934デフォルトの名無しさん (ワッチョイ a7a7-D935)
2020/05/02(土) 21:47:33.77ID:ogKtp69S0
慶應法法からWebって…
935デフォルトの名無しさん (ワッチョイ 2701-ur4w)
2020/05/03(日) 11:44:53.69ID:eurrHnV60
下記のような、空以外のstringだけを通し、それ以外はnullを返すメソッドを作りたいんですが、
この処理に最適なメソッド名ってありますか? 暫定のfilterStringは何となく違う気がしてます

function filterString($var): ?string
{
return is_string($var) && $var !== '' ? $var : null;
}
936デフォルトの名無しさん (アウアウウー Saab-J/MA)
2020/05/03(日) 12:32:50.65ID:cPyz4pxla
nullifyInvalidInputとか
937デフォルトの名無しさん (ササクッテロラ Sp5b-1Fal)
2020/05/04(月) 04:41:53.17ID:zTC9x9sUp
nullifyって見たことないけどいい名前だな
938デフォルトの名無しさん (ワッチョイ df01-i6Oo)
2020/05/04(月) 11:40:37.27ID:au6sJ5VU0
GCのためにでかいオブジェクトをnullにするのならわかるけど
エラーハンドリング用途でnullじゃない値をnullにして返すってのはbad practice
939935 (ワッチョイ 2701-ur4w)
2020/05/04(月) 17:10:17.02ID:PenCHXzY0
>>936
ありがとうございます

>>938
デフォルト値が必要ないんでnullが都合いいです
940デフォルトの名無しさん (ワッチョイ 7f68-8DoZ)
2020/05/05(火) 02:01:57.19ID:2JXMMGLu0
各ページa,bからcページへの遷移を各ページのボタンa,bからとしたときに、ページbのボタン名をページaのものにブラウザのデバックモードかなんかで変更した場合に、
ページcから見るとisset(ボタンA)がtrueとなると思いますが、こういうパターンを見分ける方法ってありますでしょうか
941デフォルトの名無しさん (ワッチョイ a7a7-D935)
2020/05/05(火) 03:32:16.49ID:abcVn/0z0
>>940 難しいと思う
ボタン名をbtn_A,btn_Bみたいにa,bで変えて
cで、aからの遷移だったら… bからの遷移だったら…
と処理わけするのが現実的
942デフォルトの名無しさん (ワッチョイ a7a7-D935)
2020/05/05(火) 03:53:04.29ID:abcVn/0z0
と思ったけど、結局リファラも改ざんできちゃうから難しいね
JavaScriptで小細工も出来るけどそれすら改ざんされるのも想定してるなら
まあノーダメならそんな物好きなこと想定する必要はないと思うけど
ダメージあるなら設計変えればいいし
943デフォルトの名無しさん (ワッチョイ 7f68-8DoZ)
2020/05/05(火) 16:36:02.14ID:2JXMMGLu0
ありがと➰。入力された値の正統性を確かめるのって難しいですね。自分しか使わないやつだから気にしないでおきます
944デフォルトの名無しさん (ワッチョイ e7ca-Rrpt)
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] = '何か入れる';
と言う配列を作る簡単な方法はありませんでしょうか?
946デフォルトの名無しさん (ワッチョイ bbca-BAqB)
2020/05/06(水) 19:53:23.20ID:x/qfttvN0
$b[$a[0]][$a[1]][$a[2]] = '何か入れる';

とか?
947デフォルトの名無しさん (ワッチョイ ea02-7oqX)
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)
948915 (ワッチョイ 3fe1-k/Zm)
2020/05/06(水) 23:50:59.56ID:cMx2hlKH0
そういうあり得ないくらい複雑な何かを実装しようとするときは、
実はやりたいことを実現するもっと簡単な方法があることが多い
配列$bは常に1つの次元に1つの要素しか持たないまま深さだけ深くなってくのは無駄というか意味不明
やりたいこと自体を書いた方がいいと思う
949945 (ワッチョイ ea02-7oqX)
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;
}
950デフォルトの名無しさん (オイコラミネオ MM9b-BAqB)
2020/05/07(木) 10:33:19.60ID:n2/pzMnbM
>>947
そのコードで言うところの func は一応実現してて、もっとシンプルな方法があるかを確認したいの?
それともまだ func を実現できてないの?
参照と再帰を使えば簡単なはずだけど、参照とループを使ってもできるはずだよ。
951デフォルトの名無しさん (オイコラミネオ MM9b-BAqB)
2020/05/07(木) 10:35:14.85ID:n2/pzMnbM
>>949
もう答え出してたかw
952デフォルトの名無しさん (ワッチョイ cfe6-nerK)
2020/05/10(日) 13:00:56.09ID:R/KKgKZH0
CORSがさっぱり分からんので教えてください
953デフォルトの名無しさん (ワッチョイ bea7-C0uG)
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が成立して、犯罪予告を書いてしまったりする。
954デフォルトの名無しさん (ササクッテロレ Sp33-UNI4)
2020/05/11(月) 04:19:24.53ID:VLhDUqRop
>>953
わかりやすい
すばらしい
955デフォルトの名無しさん (アウアウエー Sa52-1T3V)
2020/05/21(木) 20:00:19.93ID:yfswt4qEa
ファンキーさが足りないね
956デフォルトの名無しさん (ワッチョイ 4e2c-g3Kq)
2020/05/21(木) 20:50:27.91ID:HuNUoNoV0
CORS は、ブラウザでアクセスする人を保護するもの。
サーバー経由にすれば、クロスドメインでもアクセスできる

自分のPC にサーバーを立てて配信する、一番簡単な方法は、
VSCode の拡張機能のLive Server
957デフォルトの名無しさん (ワッチョイ 4ea7-f9m4)
2020/05/22(金) 02:32:27.59ID:1xmyMtu40
肝はあくまでもブラウザの機能ってところだな
それに頼って無策ではいけないよ
実行前最後のプロセスで再ログイン求めるとかやるべき対策はちゃんとやる
958デフォルトの名無しさん (ワッチョイ 5bf1-D4L3)
2020/05/26(火) 12:57:20.59ID:DWJQ5IJN0
<?php
の閉じタグをそれが文末にくるときは省略が奨励されてるのは
どういう理由からですか?
959デフォルトの名無しさん (オイコラミネオ MMe3-rpJt)
2020/05/26(火) 16:21:28.80ID:aOYHLQ64M
>>958
閉じタグの後に空行を入れちゃったりすると、それが出力されちゃうからだと思ってる。
ファイルの最後に空行を入れちゃうのは結構やりがちだから。
960デフォルトの名無しさん (ワッチョイ 5b02-RkjI)
2020/05/26(火) 17:00:18.40ID:Be8LwKLh0
あれそうだったの?
閉じた直後の改行コードもNG?

>[改行]
[改行]
[EOF]

じゃなくて

>[改行]
[EOF]

もダメで、

>[EOF]

じゃないとダメだとか?
961デフォルトの名無しさん (オイコラミネオ MMe3-rpJt)
2020/05/26(火) 19:29:00.77ID:aOYHLQ64M
>>960
閉じた直後の改行はおk
962デフォルトの名無しさん (ワッチョイ 4e61-Z0SM)
2020/05/26(火) 19:30:28.09ID:jhkc2VSZ0
閉じタグ直後の改行1つだけは例外だが閉じない方がミスを減らせる
963デフォルトの名無しさん (ワッチョイ fa5c-f9J/)
2020/05/26(火) 19:39:01.88ID:J1Rp1kon0
ドハマりしたなあ
964デフォルトの名無しさん (ワッチョイ a363-crVl)
2020/05/26(火) 20:04:54.09ID:vo31pS1W0
何故ダメなのかその理由が理解出来ないと
「閉じタグを付けるな」が一人歩きしそう
965デフォルトの名無しさん (ワッチョイ 0eda-crVl)
2020/05/26(火) 20:40:57.98ID:7EF4fRQa0
マニュアルにも明記されてるんだよなぁ

https://www.php.net/manual/language.basic-syntax.phptags.php

ぶっちゃけ紛らわしいので"PHPだけ書くなら"閉じタグを付けるなでいいじゃろ
966デフォルトの名無しさん (オイコラミネオ MMe3-rpJt)
2020/05/26(火) 20:47:29.05ID:aOYHLQ64M
short_open_tag はデフォルト On にしてほしい
967デフォルトの名無しさん (ワッチョイ 5b02-RkjI)
2020/05/26(火) 21:01:26.17ID:Be8LwKLh0
>>961
なるほどthx!
968デフォルトの名無しさん (ワッチョイ a363-crVl)
2020/05/26(火) 22:08:09.51ID:vo31pS1W0
逆に言えば、
"PHPを埋め込みで使うなら"閉じタグは必須ってことだな
いちいちそんな判断するなら、付けておけば安心
969デフォルトの名無しさん (ワッチョイ 0eda-crVl)
2020/05/26(火) 23:31:42.74ID:7EF4fRQa0
捻くれてんなぁ
970デフォルトの名無しさん (ワッチョイ 3e02-f9J/)
2020/05/26(火) 23:37:24.18ID:f5esX2180
IDE使ってたらその辺の面倒見てくれるんじゃないの
971デフォルトの名無しさん (ワッチョイ 41ca-buPU)
2020/05/27(水) 00:30:46.50ID:/hEgymZm0
埋め込みで使う時に閉じタグを書かないってのが不可能なわけで。
972デフォルトの名無しさん (ワッチョイ 51f1-Jx8k)
2020/05/28(木) 23:49:50.69ID:rxZlNEYS0
ENT_QUOTESのENTとは何の英単語の略でしょうか?
973デフォルトの名無しさん (オッペケ Sr8d-5jEI)
2020/05/29(金) 00:53:17.52ID:laUVUDFGr
>>972
エンティティ
974デフォルトの名無しさん (アウアウエー Sa23-hNtB)
2020/05/30(土) 19:49:27.83ID:556K1q3ea
なんで汎用性のある言語はCでできてPHPではできないの?
975デフォルトの名無しさん (ワッチョイ c163-w12y)
2020/05/30(土) 20:00:27.98ID:bnqGe2Mx0
特定言語で出来て、他の言語で出来ない事なんてそんなにない
976蟻人間 ◆T6xkBnTXz7B0 (スププ Sdb3-XpRd)
2020/05/30(土) 20:08:51.95ID:5AFCcPcpd
>>974
PHPからWin32やLinuxのシステムコールを呼び出す方法が面倒だし、コスト最小ではないから、C/C++が優位。
977蟻人間 ◆T6xkBnTXz7B0 (スププ Sdb3-XpRd)
2020/05/30(土) 20:12:53.11ID:5AFCcPcpd
例え、PHPで汎用言語を作ったとしても、PHPの実行時モジュールが邪魔なコストになる。
978デフォルトの名無しさん (ワッチョイ c163-w12y)
2020/05/30(土) 20:22:04.21ID:bnqGe2Mx0
Win32やLinuxのシステムコールを呼び出す方法は
どの言語でも面倒くさいだろう
979デフォルトの名無しさん (ワッチョイ 2ba7-4KSb)
2020/05/30(土) 21:18:51.46ID:Ef5WX5UN0
高級言語であればあるほど向いてない
980デフォルトの名無しさん (ワッチョイ d312-LwiI)
2020/05/31(日) 14:51:06.35ID:DtypBXIf0
「汎用性のある言語」の意味するところが分からんとなぁ
「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です。
982デフォルトの名無しさん (ワッチョイ 15f1-GwrY)
2020/06/03(水) 10:12:12.14ID:/BExPaqE0
>> 981
だめだ
質問の許可を確認してからしたまえ
983デフォルトの名無しさん (ワッチョイ 2d63-Ee3U)
2020/06/03(水) 10:24:20.75ID:jHJSY4FJ0
どの窓口に並べば良いんでしょうか?
984デフォルトの名無しさん (オッペケ Sred-xhRj)
2020/06/03(水) 20:16:47.05ID:HabAm56lr
Htmlタグとphpが混在するとソースコードが
見づらく感じるのですが、なにかいいコツはないものでしょうか
985デフォルトの名無しさん (ワッチョイ 15f1-GwrY)
2020/06/04(木) 01:20:43.78ID:OPvY9Lkv0
>>984
コツコツがんばるんだ
986蟻人間 ◆T6xkBnTXz7B0 (スププ Sdea-hmim)
2020/06/04(木) 01:21:34.69ID:II78yWAWd
>>984
WordPress使おうよ
987デフォルトの名無しさん (アウアウエー Sab2-f6iC)
2020/06/04(木) 01:38:03.72ID:ZQetHFOna
>>984
テンプレートエンジンを使ってみては?
988デフォルトの名無しさん (ワッチョイ da2d-RCge)
2020/06/04(木) 05:17:00.76ID:TkjFvET+0
今思いついたが、<?php ?>の前後に改行2つ入れると、見やすくなる気がする。
989デフォルトの名無しさん (ワッチョイ b908-INBt)
2020/06/04(木) 13:31:57.31ID:O8iG8kTh0
>>984
そもそも今はそういう事をやらない
テンプレートエンジンを使おう
990デフォルトの名無しさん (オイコラミネオ MM65-I6IY)
2020/06/04(木) 13:39:52.83ID:Rfl/DppQM
PHPそのものがテンプレートエンジンみたいなものじゃん
991984 (ワッチョイ b9fd-xhRj)
2020/06/04(木) 18:09:53.35ID:5+4XWaYg0
ありがとうございます。
改修なんで選択の余地はないです。
あと、cakephpというフレームワークは
マイナーなんですか?
992デフォルトの名無しさん (オッペケ Sred-WN7s)
2020/06/04(木) 18:11:07.81ID:ph5uM4S6r
マイナーではないけどLaravelにしといたほうがいい
993デフォルトの名無しさん (ワッチョイ b908-INBt)
2020/06/04(木) 19:30:46.27ID:O8iG8kTh0
>>991
日本では一番メジャー(だった)
今はLaravelが強いけど

昔からCake使ってる人はテンプレエンジンを使わない傾向があるかな
Cakeにも載せる事はできるんだけどね
Laravelには始めからBladeっていうテンプレートエンジンがついてる
994デフォルトの名無しさん (ワッチョイ 86a7-7hTT)
2020/06/05(金) 10:12:29.56ID:DlwrMm/y0
>>984
おそらくecho "<html>";
レベルのことしてるんだろうけど
書き方が悪いとしか
995デフォルトの名無しさん (ワッチョイ 15f1-GwrY)
2020/06/05(金) 13:01:16.90ID:td6kQI8l0
なぜ人はMacBookProをすすめるのですか?
わたしはずっとWindows使いで新たな学習コストを消費したくないのですが。
996デフォルトの名無しさん (ワッチョイ 65c4-sznY)
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は滅びたほうがいい。
使っている人といない人が混在したら互換性の問題が甚大になる。
999デフォルトの名無しさん (ワッチョイ 65c4-sznY)
2020/06/05(金) 13:51:16.73ID:BhXHxLMP0
そうなるといいね。
ただ、実現性の薄い可能性に思いを巡らす想像コストwに配慮しつつ
自分のやりたいことに戻った方がいいよ。
1000デフォルトの名無しさん (ワッチョイ 15f1-GwrY)
2020/06/05(金) 14:20:12.90ID:td6kQI8l0
↑この人ハゲ!
10011001
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 554日 21時間 11分 27秒
10021002
Over 1000Thread
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/

▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php

ニューススポーツなんでも実況



lud20250225215125ca
このスレへの固定リンク: http://5chb.net/r/tech/1543392526/
ヒント:5chスレのurlに http://xxxx.5chb.net/xxxx のようにbを入れるだけでここでスレ保存、閲覧できます。

TOPへ TOPへ  

このエントリをはてなブックマークに追加現在登録者数177 ブックマークへ


全掲示板一覧 この掲示板へ 人気スレ | Youtube 動画 >50 >100 >200 >300 >500 >1000枚 新着画像

 ↓「【PHP】下らねぇ質問はここに書き込みやがれ 10 ->画像>16枚 」を見た人も見ています:
【PHP】下らねぇ質問はここに書き込みやがれ 8 [無断転載禁止]
くだらねえ質問はここに書き込め! Part 233
くだらねえ質問はここに書き込め! Part 215
くだらねえ質問はここに書き込め! Part 247
くだらねえ質問はここに書き込め! Part244(ワ有)
生物学専門家への質問はここに書き込めPart43
ビートルズに関するくだらねぇ質問はビートルズに聞け3
スレ立てるまでもない質問はここに書け
ここに書き込んだら何が何でも原稿へ向かうスレ6
【新型コロナ】大阪府の死者数714人が東京都を上回り全国最多に…”逆転現象”への疑問書き込み相次ぐ「基礎疾患の人が多いとか?」 ★2 [首都圏の虎★]
ここに書き込んだらゲーム制作に戻るスレ
■ちょっとした物理の質問はここに書いてね257■
■ちょっとした物理の質問はここに書いてね292■
ここに書き込んだ者は必ず死ぬ呪いのスレッド ©bbspink.com
ここに書き込むとなんか解決すんの?頭の悪そうな奴が立てたゴミみたいなスレばかりに見えるけど
今思っていることをストレートに書き込むスレpart290
どんなくだらねぇ質問にもマジレスするスレ★200 [無断転載禁止]©bbspink.com
自由気ままに書き込めるスレ
会社で就業時間中に書き込むスレ
順番に書き込むと効能があるスレ@
ひき逃げ犯、2chに書き込みをする
[集会所] 面接前と面接後に書き込むスレ22
このスレに書き込める選ばれしj民www
このスレに書き込むと当たるわよ Part 55
【速報】あの荒らしが速報に書き込みIPを晒す
【速報】天皇陛下、2chに書き込んでいた
[集会所] 面接前と面接後に書き込むスレ29
5chに書き込めない奴おーぷん2chに移ろうぜ
ひきこもり、ネットに書き込みほとんど行わない?
【王妃2悲報】ヒメキさん、ネ実に書き込んでしまう
【同一IP】岡くん、懲りずになんJに書き込む【おまんちん】
なんで狼に書き込んでる俺たちって偉そうなの?馬鹿なの?
今思っていることをストレートに書き込むスレpart296
今思っていることをストレートに書き込むスレpart295
雑談 コナンスレに書き込みをすると幸せゲージが溜まっていくらしい
【コインチェック】 被害の訴え ネットに書き込み相次ぐ
あのネームドゴキ、うっかり速報に書き込んでしまいIPが判明する
雑談 コナンスレに書き込みをすると幸せゲージが溜まっていくらしい
令和になった途端今まで5(2)ちゃんに書き込んだレス数×1CCの血液が流れ出るとしたら
【速報】岡君懲りずに名無しで5ちゃんに書き込みを続けていた!元気でよかった(^-^)
【悲報】 「嫁がブス」と中傷された野球選手、掲示板に書き込んだ20代OLを特定し訴えてしまう
【朗報】ネトウヨさんがヤフコメに書き込んだコメント、中学校の授業に利用されてしまう
WINDOWSのPCでSDカードに書き込み中78%のところでフリーズしてしまったんだがどうしたらいい?
【8ちゃん】テキサス州エル・パソ銃乱射事件の犯人、悪質な掲示板”8chan”に書き込みをしていた
【ペロペロ】新潟女児殺害事件の小林遼容疑者が2ちゃんねるに書き込みか / 2chで犯行に関する発言か「犯人はK」
【東京】青山学院大学に爆破予告 7日休校、キャンパス立ち入り禁止 インターネット掲示板に書き込み
【テレビ朝日コメンテーター】玉川徹、ネット上に書き込まれた視聴者からの意見について「なんで皆、あんなに悪口言うのかなぁ!」
【民進】小西洋之氏「丸2日間ぐらい考え続け…安倍晋三首相を完全に粉砕する理論の立論に成功した!」ツイッターに書き込み
【福岡・IT講師殺害】「ネット弁慶を卒業」 松本容疑者、出頭前に書き込み・・・容疑者、家賃3万のアパートに住み知人や友人なしか
【福岡・IT講師殺害】「ネット弁慶を卒業」 松本容疑者、出頭前に書き込み・・・容疑者、家賃3万のアパートに住み知人や友人なしか★2
狼に書き込めないんだけども
気軽に書き込みテスト
kohadaに書き込めないんだが
安価でTwitterに書き込むで
生きたいときに書き込むスレ
会社で就業時間中に書き込むスレ
会社で就業時間中に書き込むスレ
死にたいときに書き込むスレ 20
VIPに書き込んでるゴミは全員殺せよ
インターバル中に書き込むスレ
昨日vipに書き込んだ者なんだけど [無断転載禁止]
どんなくだらねぇ質問にもマジレスするスレ★178
どんなくだらねぇ質問にもマジレスするスレ★180
女の子のフリしてニー速に書き込むにーにー
You Tubeで取ったPVをDVD−RWに書き込みする方法
今思っている事をストレートに書き込むスレpart339
05:01:40 up 51 days, 6:05, 2 users, load average: 7.22, 10.20, 17.48

in 0.11350989341736 sec @0.11350989341736@0b7 on 030519