PHPに関する質問スレです
前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 9
http://mevius.5ch.net/test/read.cgi/tech/1513760420/
次スレは>>980以降
本文の1行目に以下を追加すること
!extend:on:vvvvv:1000:512
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
探検
【PHP】下らねぇ質問はここに書き込みやがれ 10
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ cfe8-+65u)
2018/11/28(水) 17:08:46.02ID:Nb5yTkdM0726デフォルトの名無しさん (ワッチョイ b501-0Ybi)
2020/01/30(木) 21:01:33.81ID:Z7o7STkD0 フォントデザインが違うだけ。
727デフォルトの名無しさん (ワッチョイ 2a01-I+PI)
2020/01/30(木) 21:30:24.16ID:N/97jNZ60728デフォルトの名無しさん (ワッチョイ f689-Kz18)
2020/01/30(木) 21:56:00.67ID:H+L/BkWr0 N/97jNZ60 様
ありがとうございます。
ですが、素人に毛が生えた程度の私では難しいようです。(Rubyもスクリプトもできません)
phpで無理そうなら諦めます。
ありがとうございます。
ですが、素人に毛が生えた程度の私では難しいようです。(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行が上の手順に相当する部分
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:OBUYa7FA0731デフォルトの名無しさん (ワッチョイ 66a7-ol1H)
2020/01/31(金) 04:16:30.86ID:Qzj9ULR80 >>729の仕様がわかれば根こそぎダウンロード出来るな
適当なsleep値挟まないと岡崎図書館になりそうでおそろしいw
適当な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側のフォルダをいじる事もできる
は、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"=>"https://i.pximg.net/c/128x128/img-master/img/2020/01/28/01/28/46/79136582_p0_square1200.jpg",
"small"=>"https://i.pximg.net/c/540x540_70/img-master/img/2020/01/28/01/28/46/79136582_p0_master1200.jpg",
"regular"=>"https://i.pximg.net/img-master/img/2020/01/28/01/28/46/79136582_p0_master1200.jpg",
"original"=>"https://i.pximg.net/img-original/img/2020/01/28/01/28/46/79136582_p0.png"}
require 'open-uri'
require 'json'
# json_str = URI( "https://www.pixiv.net/ajax/illust/79136582/pages" ).read
json_str = File.read( "79136582_pages.json" ) # 保存した、UTF-8 ファイル
json_obj = JSON.parse( json_str )
json_obj[ "body" ].each do |urls|
p urls[ "urls" ]
end
出力。
こういうのが画像の数だけあるけど、この中で、original だけが欲しいの?
{"thumb_mini"=>"https://i.pximg.net/c/128x128/img-master/img/2020/01/28/01/28/46/79136582_p0_square1200.jpg",
"small"=>"https://i.pximg.net/c/540x540_70/img-master/img/2020/01/28/01/28/46/79136582_p0_master1200.jpg",
"regular"=>"https://i.pximg.net/img-master/img/2020/01/28/01/28/46/79136582_p0_master1200.jpg",
"original"=>"https://i.pximg.net/img-original/img/2020/01/28/01/28/46/79136582_p0.png"}
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);
}
保存先やら上書きやら考慮してないからこのままは使うなよ
$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/3AbP0737デフォルトの名無しさん (ワッチョイ 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」のような画像の情報集のようなものがあるのでしょうか?
画像をタイトル名で保存したかったので、下記のようにしました。
$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と同じ様につかえるんじゃね?
文字コードまわりの処理がちょっと面倒だと思うが
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
https://www.pixiv.net/ajax/illust/79152593
741デフォルトの名無しさん (ワッチョイ f689-Kz18)
2020/01/31(金) 20:23:09.76ID:2wi/3AbP0 ありがとうございます。
JSONならなんとかなりそうです。
「/pages」を取るだけだったんですね…
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 と入れてください!
誰が書き込んでいるか、分からないので
に、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 で、スクレイピングを禁止している場合は、有罪にされる!
>何回もテストしていると、営業妨害になるから!
すべてデマ
一般論としてデマ書くくらいは別にいいけど
それを元に人を犯罪者扱いするとそれこそ罪になるから気をつけてね
>大々的に横断検索のようなスクレイピングしてると、営業妨害で逮捕される!
>会社の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も偽装できるし、そもそも廃止方向だし
あと、API使わないWEB通信で専用か一般かを判別するのは無理じゃね?
UAも偽装できるし、そもそも廃止方向だし
747733 (ワッチョイ ea2c-KoMo)
2020/02/01(土) 01:00:56.04ID:4wtj58110 いたずら電話でも、回数が多いと逮捕される!
一杯逮捕されてるし、有罪にもなってる!
会社は、一般的な用法でアクセスできるようにしてるだけで、
常識内の使い方じゃないと、営業妨害になる
クローラー開発者が、robots.txt に従うのは常識だから、従わないと営業妨害になる。
クローラー開発者はそもそも一般人じゃないし、一般的な使い方じゃない
株取引と同じで、プロの取引だから、守るべきハードルが高い。
これほど専門的な開発者は、素人の一般人が作っていましたという弁明ができない。
専門家として扱われるから
一杯逮捕されてるし、有罪にもなってる!
会社は、一般的な用法でアクセスできるようにしてるだけで、
常識内の使い方じゃないと、営業妨害になる
クローラー開発者が、robots.txt に従うのは常識だから、従わないと営業妨害になる。
クローラー開発者はそもそも一般人じゃないし、一般的な使い方じゃない
株取引と同じで、プロの取引だから、守るべきハードルが高い。
これほど専門的な開発者は、素人の一般人が作っていましたという弁明ができない。
専門家として扱われるから
748デフォルトの名無しさん (ワッチョイ 66f2-kxDg)
2020/02/01(土) 01:09:26.21ID:MgOexLzI0 >>747
誰にレスしてるのか分からないけど、俺にレスしてるんなら改めて書いとく
俺は良い悪いの話をしていない
API非使用の話
同じ人間がスレ見るような使い方はアクセス頻度も負荷も変わらないだろう
判別するのは技術的に無理じゃねえか
以上
弁明とかそんな次元の話をしているのではないので、そこんとこよろしく
誰にレスしてるのか分からないけど、俺にレスしてるんなら改めて書いとく
俺は良い悪いの話をしていない
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桁間違って入力しても、勘違いとして撤回できないだろ。
普通の民法なら、錯誤で撤回できるけど
株は一般人の商取引じゃなく、プロの商取引だから、遵守レベルが厳しい
マナー・エチケットなどは関係ない。
契約していない者同士では、有形力の行使が判断基準
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は気付かないだろうし看過されるだろうけどね
逆に目立てば注意とか何も言われず制限とかされる
まあ、インターネットがある意味良識で成り立ってるところもあるから、あまり変なことはしない方がいいよ
自分のことばかり考えるなってね
スクリプトでの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 検索したい文字列」だろ
このコントロールを、はめ込めば良いのでは?
「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が配布しているのでは?
Googleが配布しているのでは?
759デフォルトの名無しさん (ワッチョイ 3d7c-a4zy)
2020/02/03(月) 21:07:08.59ID:zKdzrXwz0 平面上に座標の判明している点が数百あるとして、全ての点どうしの距離を
計算時間はかかって構わないのでハングしないように計算したいのですが
PHPではどうやったらいいのでしょうか
普通のPHPプログラムと同じように
点の座標情報をリクエストとして受け取って
全ての計算が終わったらブラウザにレスポンスしたいです
計算時間はかかって構わないのでハングしないように計算したいのですが
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
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使えばブラウザ側のタイムアウトは無効に出来るはず
大人数で使う&計算が数時間に渡る場合サーバ側タイムアウトを無効にするような計算はしないほうがいい
長い計算で問題になるのはタイムアウトと使用人数
色々考慮しないといけないのでケースバイケースになるが
そういう計算はJavaScriptでやったほうがいいと思う
非力な環境考慮やスマホの節電狙ってるならとめはしないが
基本はある程度計算した時点で(タイムアウトする前に)一度レスポンス返して
計算再開するようリクエスト再送して計算終わるまでそれを繰り返すとか
サーバ側でタイムアウトを無効にしてマルチスレッドで計算しながら
Transfer-Encoding: chunked(flush関数)とかでなんかブラウザに送り続けるとかそんなところ
あと設定したことないので確認はしてないがxhr使えばブラウザ側のタイムアウトは無効に出来るはず
大人数で使う&計算が数時間に渡る場合サーバ側タイムアウトを無効にするような計算はしないほうがいい
763761 (ワッチョイ ea2c-KoMo)
2020/02/04(火) 10:59:31.95ID:6/2RTZHA0 確かに、計算のタイムアウトなどを考えたら、
AWS Lambda などを使った方がよい
AWS Lambda などを使った方がよい
764759 (ワッチョイ 3d7c-a4zy)
2020/02/04(火) 14:13:53.25ID:D53RXKif0 >>760
450点あたりで
計算は10万回超えちゃいそうな気がするんですが…
>>762
あざます、そんで説明下手ですみません
アクセス数とか、ユーザビリティ的なことはそれほど考えなくていいんです
説明が難しいんですが、MovableTypeみたいな動き方と言いますか
このプログラムを一度実行することで静的なファイルを生成して
ウェブのユーザにはそのファイルを見てもらうことになるので
なのでとりあえず、10万なら10万回
時間かけていいんで、PHPがハングしないように計算を終えて
その結果が出たら、ブラウザに返したいな、と
昨夜自分で考えて
PHPは1点ずつの計算結果をテキストファイルとして生成して
ブラウザはそのファイルが出来ているか定期的にポーリングする
みたいなことを考えたんですが…
450点あたりで
計算は10万回超えちゃいそうな気がするんですが…
>>762
あざます、そんで説明下手ですみません
アクセス数とか、ユーザビリティ的なことはそれほど考えなくていいんです
説明が難しいんですが、MovableTypeみたいな動き方と言いますか
このプログラムを一度実行することで静的なファイルを生成して
ウェブのユーザにはそのファイルを見てもらうことになるので
なのでとりあえず、10万なら10万回
時間かけていいんで、PHPがハングしないように計算を終えて
その結果が出たら、ブラウザに返したいな、と
昨夜自分で考えて
PHPは1点ずつの計算結果をテキストファイルとして生成して
ブラウザはそのファイルが出来ているか定期的にポーリングする
みたいなことを考えたんですが…
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の数が多いと止まってしまうので
非同期でいいので止まらない方法はないものかなと
点の情報は、ブラウザから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もかからないと思うんだけどそれでハングするの?
クライアント側で計算させても一瞬だから
ラウンドトリップさせるのをやめて計算結果だけ非同期で受け取るようにしたほうが
ユーザーにとっても運用してる側にとってもいいと思う
floatだとしても100msもかからないと思うんだけどそれでハングするの?
クライアント側で計算させても一瞬だから
ラウンドトリップさせるのをやめて計算結果だけ非同期で受け取るようにしたほうが
ユーザーにとっても運用してる側にとってもいいと思う
769759 (ワッチョイ 3d7c-a4zy)
2020/02/04(火) 17:37:32.11ID:D53RXKif0770761 (ワッチョイ ea2c-KoMo)
2020/02/04(火) 23:05:49.06ID:6/2RTZHA0 JSON が普通。
非同期処理なら、Ajax を使う方法もある
C/C++ で計算だけして、ファイルに書き込んでから、
ウェブサーバーで、そのファイルを見れば?
計算速度が遅くてもよいなら、どの言語でも良いし
非同期処理なら、Ajax を使う方法もある
C/C++ で計算だけして、ファイルに書き込んでから、
ウェブサーバーで、そのファイルを見れば?
計算速度が遅くてもよいなら、どの言語でも良いし
771デフォルトの名無しさん (ワッチョイ 2a63-unxX)
2020/02/04(火) 23:14:48.03ID:lLuVC2X20 実際の処理時間次第って気がする
10分程度なら、そのまま終わるのを画面監視して待っていれば良い
数時間以上掛かるなら、結果をメールで送ってもらうなり
夜間バッチで動かしておくのも良いかも
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
元のデータは、CSV の方が、データベースとの連携でも簡単かも
そして、CSVを計算して、ファイルに書き込む
JSON
[[0,0],[10,20],[10,10]]
CSV
x,y
0,0
10,20
10,10
773デフォルトの名無しさん (ワッチョイ 7f89-IOUD)
2020/02/05(水) 11:25:21.84ID:2PM+quj20 $url = "https://page.auctions.yahoo.co.jp/jp/auction/u332334293"; //エロ個別ページ
//$url = "https://page.auctions.yahoo.co.jp/jp/auction/n399439358"; //ノーマル個別ページ
$filestr = file_get_contents($url);
echo $filestr = mb_convert_encoding($filestr,'utf8','auto');
こんな感じでヤフオクのページにアクセスしたいんだけど、
通常のページなら問題ないけどアダルトカテゴリの場合ログインしてくださいとなる
この場合ログインなしで対処することはできますか?
//$url = "https://page.auctions.yahoo.co.jp/jp/auction/n399439358"; //ノーマル個別ページ
$filestr = file_get_contents($url);
echo $filestr = mb_convert_encoding($filestr,'utf8','auto');
こんな感じでヤフオクのページにアクセスしたいんだけど、
通常のページなら問題ないけどアダルトカテゴリの場合ログインしてくださいとなる
この場合ログインなしで対処することはできますか?
774デフォルトの名無しさん (ワッチョイ 7fca-z+R/)
2020/02/05(水) 11:42:40.50ID:6W4fVUG70 そういやヤフーの文字画像認証って難易度高過ぎだよね。
この間パスワード連続間違いやらかして文字画像認証になったんだけど、まともに読めなかったw
この間パスワード連続間違いやらかして文字画像認証になったんだけど、まともに読めなかったw
775デフォルトの名無しさん (ワッチョイ 9f2c-ndoi)
2020/02/05(水) 23:01:50.84ID:NEouxGwD0 漏れは、Ruby で、Selenium WebDriver, Nokogiri などで、
Chrome, Edge などのブラウザーを自動操作して、スクレイピングするけど
ここに書いておいた
【VBScript】WSHについて話し合うスレ【JScript】
https://mevius.5ch.net/test/read.cgi/tech/1578522041/24-27
Chrome, Edge などのブラウザーを自動操作して、スクレイピングするけど
ここに書いておいた
【VBScript】WSHについて話し合うスレ【JScript】
https://mevius.5ch.net/test/read.cgi/tech/1578522041/24-27
776デフォルトの名無しさん (ワッチョイ b75f-mZAX)
2020/02/06(木) 00:07:34.22ID:UYgbv9bH0 fopenでファイルに書き込んでいたのですが
突然文字化けするようになったのですが
ファイルも送信もUTF-8なのですが
$str = mb_convert_encoding($str, "UTF-8");
のようにする必要性も感じないのですが
これはサーバー側の問題なのでしょうか
突然文字化けするようになったのですが
ファイルも送信もUTF-8なのですが
$str = mb_convert_encoding($str, "UTF-8");
のようにする必要性も感じないのですが
これはサーバー側の問題なのでしょうか
777デフォルトの名無しさん (ワッチョイ 9f2c-ndoi)
2020/02/06(木) 04:47:55.73ID:/hIhK6yv0 相手のサーバーか、または自分のプログラムのファイルを保存した際に、
文字コードが異なるとか、BOM 有りUTF-8 になってるとか?
文字コードが異なるとか、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
どういう目的で取得するのかしらんけど
googleのキャッシュならそこそこ取れてるようだから
そこに欲しい情報があれば検討したら?
https://webcache.googleusercontent.com/search?q=cache:https://page.auctions.yahoo.co.jp/jp/auction/u332334293
まあ普通にログインしてやればいいと思うけど
ヤフーにcaptcha認証なんてあったっけ?記憶にないな
しかしなんだねこのいかがわしい人形はw
779デフォルトの名無しさん (ワッチョイ 7f89-IOUD)
2020/02/06(木) 17:18:10.95ID:mIIVuTqX0 >>778
検索かけて出てきた商品情報から希望要項に合うものピックアップし、
その中にある画像をまとめて表示させるて一気に見たいと思って作ってた
そしたら呼び出せない項目があって内容見てたらアダルトカテゴリに該当するものだった
キャッシュ必要だと使うのは難しいな
検索かけて出てきた商品情報から希望要項に合うものピックアップし、
その中にある画像をまとめて表示させるて一気に見たいと思って作ってた
そしたら呼び出せない項目があって内容見てたらアダルトカテゴリに該当するものだった
キャッシュ必要だと使うのは難しいな
780デフォルトの名無しさん (ワッチョイ 9701-YmmE)
2020/02/06(木) 21:08:13.30ID:qcCZ1na20 返り値が空と表示されるのですがどうすれば治るのでしょうか?
781デフォルトの名無しさん (ワッチョイ 9701-L9ne)
2020/02/06(木) 22:00:14.76ID:qcCZ1na20 空だと表示される原因としてmariadbの設定を適当にしてしまった
phpadminを使用している時のユーザー名パスワードとmariadbを作成した時のパスワード又はユーザー名が全く別のものだと考えられるのですが原因はやっぱりこれでしょうか?
phpadminを使用している時のユーザー名パスワードとmariadbを作成した時のパスワード又はユーザー名が全く別のものだと考えられるのですが原因はやっぱりこれでしょうか?
782デフォルトの名無しさん (ワッチョイ 9701-L9ne)
2020/02/06(木) 22:02:13.41ID:qcCZ1na20 コマンドプロンプトで消せと書いてあるんですがデータのみインストールでzipからインストールしなかった場合消せるのでしょうか?
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:IMRBAKuu0785デフォルトの名無しさん (ワッチョイ 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を使うメリットって何でしょうか?
別のDBMSに乗り換えるときに便利、みたいな記事をよく見ますが、DBMSごとにSQL文の制約が少しずつ違いますよね?
この差はPDO自体は吸収できませんよね?コードで分岐するしかないんですよね?
すると、MySQLしか使わない限りは、PDOを使うメリットって何でしょうか?
787デフォルトの名無しさん (ワッチョイ 7fca-z+R/)
2020/02/08(土) 10:26:28.77ID:zZtEQOJV0788デフォルトの名無しさん (ワッチョイ d7a7-QQjh)
2020/02/08(土) 14:08:52.88ID:iOIJiyGE0 >すると、MySQLしか使わない限りは、PDOを使うメリットって何でしょうか?
自分で使うもので将来的な移行もありえないならメリットは特にない
pdoのほうがよりモダンなコードで書けるぐらいか
パフォーマンスは公式にも書いてるけどどのAPI使ってもほぼ同じで誤差程度
自分で使うもので将来的な移行もありえないならメリットは特にない
pdoのほうがよりモダンなコードで書けるぐらいか
パフォーマンスは公式にも書いてるけどどのAPI使ってもほぼ同じで誤差程度
789デフォルトの名無しさん (ワッチョイ f76e-B6qE)
2020/02/08(土) 14:31:04.68ID:Jjt1u8eP0790デフォルトの名無しさん (ワッチョイ 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();
関数の中で出力するとエラーになってしまいます。
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/bJ0795デフォルトの名無しさん (ワッチョイ 5eda-OxJ8)
2020/02/15(土) 18:30:10.65ID:ndNA2Bw/0796デフォルトの名無しさん (ワッチョイ 8689-RqZf)
2020/02/15(土) 22:52:13.91ID:wgObr5UE0 質問です。
色の近さを測る方法ってあるでしょうか?
例えば、
A.#4169e1 B.#ff7f50 C.#dc143c
があった場合、Cにより近い色はAとBどちら?
といった感じで使いたいです。
色の近さを測る方法ってあるでしょうか?
例えば、
A.#4169e1 B.#ff7f50 C.#dc143c
があった場合、Cにより近い色はAとBどちら?
といった感じで使いたいです。
797蟻人間 ◆T6xkBnTXz7B0 (ワッチョイ a701-ZWcj)
2020/02/15(土) 23:32:30.86ID:f7hi9XcW0 色コードといえば、RGBとかHSVとかCYMKとか習うと思うけど、これらは数学的にいうと、(ベクトル空間みたいな)色空間上の位置を持った点を意味する。
色の近さは色空間での2点間の距離の長さ。というわけで、色空間と距離の定義しだい。
色の近さは色空間での2点間の距離の長さ。というわけで、色空間と距離の定義しだい。
798デフォルトの名無しさん (ワッチョイ d201-b83C)
2020/02/16(日) 00:01:58.16ID:iNVxJNOu0799デフォルトの名無しさん (ワッチョイ 8689-RqZf)
2020/02/16(日) 00:14:57.82ID:KR6y1seH0 思った以上に難しそうだな…
16進数だからC-AとC-Bを行い絶対数の小さい方が似てる色くらいに思ってたぜ
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言語だけどこれで良ければ
C言語だけどこれで良ければ
802デフォルトの名無しさん (ワッチョイ 46ca-MwwC)
2020/02/16(日) 03:32:24.89ID:Tw+Vg2AB0 色の近さの判断基準が分からんとな。
とにかくRGBをHSVなりに変換したとして、
色相(H)が近ければ濃さ(S)や明るさ(V)はどうでもいいのか?
どうでもよくないならそれぞれのパラメータの重みを決める必要があるな。
とにかく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なんだし
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くらいのそれなりに大きいデータでもセッションで大丈夫ですか?
ページ間のデータ渡しって2Mくらいのそれなりに大きいデータでもセッションで大丈夫ですか?
807デフォルトの名無しさん (オイコラミネオ MM47-1Tph)
2020/02/21(金) 11:04:55.83ID:KI0NB2iSM セションの中身はディスクに書いてるんだろうから、2MBくらいなら保存自体の問題は無いんじゃね。
でも不要になったらセッションからさっさと削除しないと、毎回そのデータがメモリにロードされることになる。
セッションとは別に一時ファイルに書き出してそのファイル名をセッションで保持するのがスマートな気がするけど、一時ファイルの掃除の方法を別途考えないといけないのが面倒だな。
でも不要になったらセッションからさっさと削除しないと、毎回そのデータがメモリにロードされることになる。
セッションとは別に一時ファイルに書き出してそのファイル名をセッションで保持するのがスマートな気がするけど、一時ファイルの掃除の方法を別途考えないといけないのが面倒だな。
808デフォルトの名無しさん (ブーイモ MMa7-mtzg)
2020/02/21(金) 11:36:12.22ID:uhz6TO4QM809デフォルトの名無しさん (オイコラミネオ MM47-1Tph)
2020/02/21(金) 12:41:45.52ID:KI0NB2iSM >>808
一時ファイルの掃除のためにこの辺を読んでおくといいと思う。
https://www.php.net/manual/ja/session.customhandler.php
destroy とか gc で一時ファイルを掃除する必要があるはず。
一時ファイルの掃除のためにこの辺を読んでおくといいと思う。
https://www.php.net/manual/ja/session.customhandler.php
destroy とか gc で一時ファイルを掃除する必要があるはず。
810デフォルトの名無しさん (ワッチョイ 8f89-sS5o)
2020/02/23(日) 17:03:54.18ID:LPteoL8J0 preg_match_allを使ってリンク先が画像のURL取得したいんだけど正規表現がわかりません。
これを↓
<a href="http://img.hoge/001.jpg" target="_blank">
こうしたい↓
http://img.hoge/001.jpg
作ってみたのがこれ↓
preg_match_all('/href="(.*?)(jpg|jpeg|png)?"/', $html, $imgurllist);
わかる方いらっしゃいました教えて下さい。
これを↓
<a href="http://img.hoge/001.jpg" target="_blank">
こうしたい↓
http://img.hoge/001.jpg
作ってみたのがこれ↓
preg_match_all('/href="(.*?)(jpg|jpeg|png)?"/', $html, $imgurllist);
わかる方いらっしゃいました教えて下さい。
811デフォルトの名無しさん (ワッチョイ 8f02-wKkS)
2020/02/23(日) 17:21:12.17ID:UC/kHLCn0 "の前に\が必要かも?
href=\"(.*?\.png|.*?\.jpeg|.*?\.jpeg)\"
なんてどうでしょう
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あたりで比較すればいいんでは?
ちゃんとしたの書くの難しいし何より自分がわからないのは良くない
多少時間はかかるかもしれないが
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:EUelPM9rM817デフォルトの名無しさん (アウアウウー 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:0sUq9sLC0821デフォルトの名無しさん (ワッチョイ 6fda-Nz9x)
2020/02/23(日) 21:37:24.28ID:rIVuphj20 先輩が書いたコードを見ると $_SERVER などの取得する値に対して
urldecode やら isset やらで本当にその値か正しいものかどうか、セットされてるかどうか
毎度調べてるようなのですが、正しくない場合の事例が書いてあるサイトってありますか?
また、この手のエスケープや存在確認やらがまとめてあるサイトもあれば教えていただけますでしょうか。
自分では追っかけきれず、毎度先輩に迷惑掛けてしまっている状態で申し訳ないっす…
urldecode やら isset やらで本当にその値か正しいものかどうか、セットされてるかどうか
毎度調べてるようなのですが、正しくない場合の事例が書いてあるサイトってありますか?
また、この手のエスケープや存在確認やらがまとめてあるサイトもあれば教えていただけますでしょうか。
自分では追っかけきれず、毎度先輩に迷惑掛けてしまっている状態で申し訳ないっす…
822デフォルトの名無しさん (ワッチョイ 8302-8E80)
2020/02/23(日) 22:27:34.54ID:jUm6GNGX0823デフォルトの名無しさん (ワッチョイ 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の流れから理解した方がいいんじゃね?
$_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+Ss1rU0825デフォルトの名無しさん (ワッチョイ 3308-p4c1)
2020/02/24(月) 12:00:32.05ID:/D+Ss1rU0 >>810
くそ適当に書くけど
$html = '<a href="http://img.hoge/001.jpg" target="_blank">';
preg_match_all('/href\s*=\s*([\'"])(.+?\.(?:jpe?g|png))\\1/i', $html, $match, PREG_SET_ORDER);
print_r($match);
・大文字小文字の考慮
・スペース文字の考慮
・シングルクォートで挟むのかダブルクォートで挟むのかの考慮
正規表現を使うならせめてこれぐらいはしようよw
くそ適当に書くけど
$html = '<a href="http://img.hoge/001.jpg" target="_blank">';
preg_match_all('/href\s*=\s*([\'"])(.+?\.(?:jpe?g|png))\\1/i', $html, $match, PREG_SET_ORDER);
print_r($match);
・大文字小文字の考慮
・スペース文字の考慮
・シングルクォートで挟むのかダブルクォートで挟むのかの考慮
正規表現を使うならせめてこれぐらいはしようよw
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【速報】東京・立川市の小学校教室に男2人が侵入・窓ガラス割る すでに確保 児童にケガなし、教員4人ケガ ★2 [おっさん友の会★]
- 【文春】永野芽郁(25)&田中圭(40)燃え上がる不倫LINE ★25 [Ailuropoda melanoleuca★]
- 【スクープ】広瀬アリスと元KAT-TUN赤西仁が交際!GW中、しゃぶしゃぶ店で堂々デート、連日のお泊まり 左手薬指にお揃いの指輪も [Ailuropoda melanoleuca★]
- 【野球】巨人・オコエ瑠偉選手と増田大輝選手をオンラインカジノで賭博の疑いで書類送検 警視庁 ★2 [Ailuropoda melanoleuca★]
- なぜ?大阪で中国からの移住者が急増中! 中国に比べ日本は安い?生活に余裕?中国からの逃げ出し「潤」とは? [ぐれ★]
- 永野芽郁「文春砲」続報で「ベッキー」「センテンススプリング」がXトレンド入り [ネギうどん★]
- 【速報】小学校に男2人が侵入 教員4人が怪我 [817260143]
- スウェーデン国王、大阪万博のため来日へwww万博アンチ逝く [175344491]
- 【悲報】立川の小学校に侵入した男、40代 [467637843]
- 【朗報】花澤香菜・早見沙織「鬼滅の刃のコスプレしたよー(パシャ)」 [839150984]
- 【悲報】嫌儲、キモいノリが蔓延る [998357762]
- 【セキュリティ】楽天証券,ついに絵文字による追加認証を6月から必須化🐭🐱🥺 [445972832]