PHP質問・雑談スレ6【初心者お断り(ROM歓迎)】
1 :nobodyさん :2019/05/12(日) 18:21:04.82 ID:Bj6LHkP3.net PHPに関する質問や雑談をするスレです。 初心者お断り(ROM歓迎)と書いてますが、初心者用のスレが用意されているからで、 難しい質問や話題をしなければいけないわけではありません。 PHPマニュアルの読み方を概ね理解していて、関数リファレンスが正しく読める方用のスレです。 PHP未導入の方や、手取り足取りが必要な初心者の方はム板のくだスレへどうぞ。 https://mevius.5ch.net/tech/ (【PHP】で板内を検索) 前スレ https://medaka.5ch.net/test/read.cgi/php/1538639036/ その他リンク ・PHPマニュアル https://secure.php.net/manual/ja/index.php ・コードテスト・貼り付け用 https://ideone.com/ ・プログラミングのお題スレ (求PHPer参戦) https://mevius.5ch.net/tech/ (お題スレで板内を検索) このスレで扱う話題 ・PHPのコード,設定や設定値に関する質問 ・常識的範囲内でのコードレビュー依頼・改良相談 ・PECL,PEARに関する質問 ・PHP新機能やPHP関連トレンドの話題 (FWや非公式ライブラリの話題や特徴比較は良いが使い方から先の話題は専スレへ) ・PHPのバグ発見報告・公式に報告する前の検証依頼 このスレで扱わない話題 ・直接関係ない○○特有の質問(専スレへ) (HH,エディタ,IDE,サーバ,OS,DB,SQL,FW,テンプレート,非公式ライブラリ・アプリケーション等) ・PHPの改造
2 :nobodyさん :2019/05/12(日) 19:37:04.78 ID:???.net 最近ちんぽがかゆいです。 パンツを脱いでちんぽを調べてみたら 尿道のところに細い糸のようなものがくっついていました。 糸を取ろうと思って指を近づけてみたら 糸がうねうね動きながら尿道の中に消えていきました。 ・・・・僕のちんぽは蟲に乗っ取られました。
3 :nobodyさん :2019/05/18(土) 00:58:15.87 ID:???.net サーバーサイドPHPなんですが HTTPレスポンスヘッダでheader関数を使って Content-Type: text/html; charset=UTF-8 のように文字コードまで送信しておくのがセキュリティ上好ましいという話を良く聞きますが PHP7.2で試すと上記のヘッダーを送信しなくても自動で送信されてるんですよね 文字コードの指定まで完璧に 最近のバージョンでこうなったんでしょうか? それと文字コードはUTF-8固定なんですかね、あるいはphp.iniのdefault_charsetから得ているのでしょうか どうも公式マニュアルにこのあたりの情報がないのですが、わかる方教えてください
4 :nobodyさん :2019/05/18(土) 01:04:42.56 ID:???.net 前半はよく知らんけど、後半はマニュアルに書いてある。 https://www.php.net/manual/ja/ini.core.php default_charset 確認してみ。
5 :3 :2019/05/18(土) 02:16:45.81 ID:???.net >>4 レスありがとうございます default_charsetの方に説明がありましたか 見落としてました default_charsetがちゃんと設定されていれば header()でConten-Typeを送信しなくても良さそうですね もちろんtext/htmlのときだけですが
6 :nobodyさん :2019/05/18(土) 10:28:33.86 ID:???.net そんなところで時間使うのもったいない フレームワーク使ってそんな些細なところはすっ飛ばせ
7 :nobodyさん :2019/05/18(土) 11:26:14.88 ID:???.net そもそもクライアントサイドPHPなど無い
8 :nobodyさん :2019/05/18(土) 13:56:25.13 ID:???.net >>7 firefoxやchromeでそういうプラグインあると楽しいよね
9 :nobodyさん :2019/05/18(土) 14:08:51.08 ID:???.net あんまり楽しくない・・・これ以上ややこしくするんじゃない・・・
10 :nobodyさん :2019/05/19(日) 08:22:57.85 ID:???.net HTTPレスポンスヘッダの文字コードって何かセキュリティに効果あるんか? レスポンスがどうだろうと、ユーザーが別の文字コードにエンコードしたら意味無いだろ? 異なる文字コードでフォーム送信してきたデータをうまく処理する仕組みがなければ セキュリティリスクは変わらないと思うんだが。 まぁ意図してやらなきゃ発生しないって意味ではセキュリティ上好ましいって言えるのか?
11 :nobodyさん :2019/05/19(日) 08:51:41.02 ID:???.net 文字エンコーディングが曖昧だとブラウザが文字エンコーディングを 自動判別してしまう場合がある そのとき、サーバー側が意図した文字エンコーディングとは違うものがブラウザで 採用されてしまった場合、サーバー側が意図していないメタ文字などが浮かび上がって しまう場合がある こういう解釈を俺はしている
12 :nobodyさん :2019/05/19(日) 09:39:22.81 ID:???.net サーバ、クライアント、どちらからどちらに文字列を送るかよくわからないけど、嘘ついたら希望の処理をしない
13 :nobodyさん :2019/05/19(日) 12:47:23.73 ID:???.net 美乳って入れとけばええねん
14 :nobodyさん :2019/05/19(日) 13:11:01.86 ID:???.net 懐かしいなw
15 :nobodyさん :2019/05/20(月) 08:50:06.62 ID:???.net >>12 根本的にわかってないだろ
16 :nobodyさん :2019/05/20(月) 16:32:02.33 ID:???.net ブラウザ側が容易に文字コードを指定できる以上、 ヘッダを指定しようと、美乳入れようと、おまじない以上の価値しか無い セキュリティ向上には繋がらない セキュリティとしてはどのような文字コードでフォーム送信してきても 上手く処理できる仕組みでなければリスクは残る 例えばUTF-7なら、<>や"を記述せず表すことが出来る。それを鵜呑みにして通過させたらえらい事になる。 そういうのを回避する為、PHPでは親切なことにhtmlspecialcharsという素敵な関数が用意されている。 これを通していれば文字コード関連はまず問題ない。 ヘッダで文字コード指定するより、入力にhtmlspecialcharsしておくほうがセキュリティ的には大切だ。
17 :nobodyさん :2019/05/20(月) 19:39:10.76 ID:???.net そういうことじゃないんだよなぁ
18 :nobodyさん :2019/05/20(月) 20:56:17.56 ID:???.net >>10 CGM とかのユーザ投稿を許容するサイトで、もし任意の charset 指定ができてしまうと、文字のバケ具合によってはエスケープされてない記号が生きる可能性が出てくる。 結果書き込み内容によっては XSS とかができるようになって困ってしまう。
19 :nobodyさん :2019/05/21(火) 01:31:16.55 ID:???.net >>18 任意の文字コードは誰でも出来るだろ 何でブラウザ側にある情報を任意に指定できないと思ってるんだ? chromeだとこれ入れれば出来る https://chrome.google.com/webstore/detail/set-character-encoding/bpojelgakakmcfmjfilgdlmhefphglae ブラウザ側の文字コードが何であってもサーバー側の都合のいい様にエスケープするのがhtmlspecialcharsだろ
20 :nobodyさん :2019/05/21(火) 04:03:24.70 ID:???.net 違います
21 :nobodyさん :2019/05/21(火) 07:05:36.99 ID:???.net htmlspcialcharsでエスケープした後の文字列を、別の文字エンコーディングで解釈すれば htmlspecialcharsの効果なんてないんだよ htmlspecialcharsでの対策と、Content-Typeにおける文字エンコーディング指定は それぞれ別の攻撃に対する対応なんだよ 徳丸本くらいは読んだ方がいい
22 :nobodyさん :2019/05/21(火) 07:41:00.77 ID:???.net サーバーに対するセキュリティというより、 サーバーを使うユーザーに対するセキュリティだな
23 :nobodyさん :2019/05/29(水) 09:38:20.62 ID:2dLx3j4D.net PostgreSQLってPHPでまともに動くの? 接続処理にプロセスのフォークが使われてて スレッドを使うMySQLより重いと聞いた コネクションプールはリクエストの度に毎回環境を捨てるphpでは使えないし
24 :nobodyさん :2019/05/29(水) 13:44:43.89 ID:???.net 情報古すぎじゃない?
25 :nobodyさん :2019/05/29(水) 14:12:18.42 ID:???.net 10〜15年前ぐらいにタイムスリップしたのかと思ったわ
26 :nobodyさん :2019/05/29(水) 22:32:19.90 ID:???.net マルチプロセスなのは変わってなくない?MySQLよりも重たいのは確かにある。コネクションプールもPHPじゃダメだよね。 使い物にならないってことは100%ありえないけど。なんならPostgreSQLのほうが得意な分野もあるし。
27 :nobodyさん :2019/05/29(水) 22:57:59.47 ID:???.net PostgreSQLのほうが早くね?
28 :nobodyさん :2019/05/30(木) 00:11:53.33 ID:???.net 全部間違っているからどのサイトか晒してけ
29 :nobodyさん :2019/05/30(木) 00:32:12.48 ID:???.net マルチプロセスについて https://www.postgresql.jp/document/10/html/tutorial-arch.html
30 :nobodyさん :2019/05/30(木) 03:07:49.50 ID:???.net イベントモデル普及前の話題だな 今では考えられない世界だ
31 :nobodyさん :2019/05/30(木) 08:05:11.02 ID:???.net イベントモデルなんて一部の分野でしか使われてないやん…
32 :nobodyさん :2019/05/30(木) 08:12:36.38 ID:???.net 両方選べるDBもあるけど、普通のサーバインスタンスならマルチプロセスのほうがいいよ pgのコネクションプーラは各種あるので好きなものを使えばいいと思うけど、WEBアプリでプーラが必要になるケースの知識はあるの? リクエストまたいでコネクションを使いまわしてオーバーヘッドを減らす、みたいなイメージしてないかい? PHPは環境を捨てるというけど、HTTPがステートレスであることと混同してないかい?それにアプリ層にはセッションがあるのだけれど
33 :nobodyさん :2019/05/30(木) 08:19:31.20 ID:DjbEwjFg.net UberはPostgreSQLからMySQLに変えた Why Uber Engineering Switched from Postgres to MySQL https://eng.uber.com/mysql-migration/
34 :nobodyさん :2019/05/30(木) 08:23:13.31 ID:DjbEwjFg.net Connection Handling MySQL implements concurrent connections by spawning a thread-per-connection. This is relatively low overhead; each thread has some memory overhead for stack space, plus some memory allocated on the heap for connection-specific buffers. It’s not uncommon to scale MySQL to 10,000 or so concurrent connections, and in fact we are close to this connection count on some of our MySQL instances today. Postgres, however, use a process-per-connection design. This is significantly more expensive than a thread-per-connection design for a number of reasons. Forking a new process occupies more memory than spawning a new thread. Additionally, IPC is much more expensive between processes than between threads. Postgres 9.2 uses System V IPC primitives for IPC instead of lightweight futexes when using threads. Futexes are faster than System V IPC because in the common case where the futex is uncontended, there’s no need to make a context switch.
35 :nobodyさん :2019/05/30(木) 08:23:50.00 ID:DjbEwjFg.net Beside the memory and IPC overhead associated with Postgres’s design, Postgres seems to simply have poor support for handling large connection counts, even when there is sufficient memory available. We’ve had significant problems scaling Postgres past a few hundred active connections. While the documentation is not very specific about why, it does strongly recommend employing an out-of-process connection pooling mechanism to scale to large connection counts with Postgres. Accordingly, using pgbouncer to do connection pooling with Postgres has been generally successful for us. However, we have had occasional application bugs in our backend services that caused them to open more active connections (usually “idle in transaction” connections) than the services ought to be using, and these bugs have caused extended downtimes for us.
36 :nobodyさん :2019/05/30(木) 09:04:51.84 ID:???.net phpじゃコネクションプールだめってどういうこと? コネクションプールってそれをマネージメントするミドルウェア的なやつを バックグラウンドで動かしてユーザーに開いてるリソース割り振ればいいんじゃないのけ それとも例えばセッションにいれてみたいな1:1で使い回せないってこと?
37 :nobodyさん :2019/05/30(木) 09:19:06.91 ID:jzvxS29C.net pgbouncerか Uberの記事では接続数が増え過ぎるバグがあってサーバーが落ちたってあるけど 今は大丈夫?
38 :nobodyさん :2019/05/30(木) 09:21:45.29 ID:jzvxS29C.net pgbouncerはプロキシのように動作するので 仕組み的にはphpでも特にコードを変更せず コネクションを再利用出来る
39 :nobodyさん :2019/05/31(金) 20:52:30.68 ID:???.net imagewebpで合計5000ファイル計230MB程の画像ファイル群を変換しようと思ってるんだが、 imagewebpって重い?一気に変換して平気かな? 鯖に負荷が掛かるようならローカルでやってうpなんだが、一気に変換しても大した負荷で無いなら鯖でやろうと思ってる
40 :nobodyさん :2019/05/31(金) 21:38:19.23 ID:350dGCnf.net 鯖のスペックによる
41 :nobodyさん :2019/05/31(金) 21:51:51.47 ID:???.net 最近のサーバーは数GBのメモリは当たり前だから平気だと思う
42 :nobodyさん :2019/05/31(金) 22:30:17.13 ID:???.net ちゃんと変換おわったファイルは毎回メモリ解放して適宜sleep挟んで 負荷がかからないようゆっくりやればいい
43 :nobodyさん :2019/05/31(金) 22:47:07.92 ID:???.net >>40-42 スペックは高いと思うが、レン鯖なので・・・ 時間掛かるとプロセス止められそうで・・・ レン鯖で実行するのは無謀かな・・・
44 :nobodyさん :2019/06/01(土) 07:47:50.39 ID:???.net どうしてもレン鯖でやりたいのならリクエスト分けてやれ 1リクエスト5枚ぐらいにして1時間500枚ぐらいのペースになるよう調整して 10時間ブラウザ開いて放置しとけば終わってるみたいな ただそんな面倒なことするぐらいならおとなしくローカルにPHP入れて コマンドラインからスクリプト叩いて変換すればすぐ終わるし確実
45 :nobodyさん :2019/06/01(土) 09:09:33.24 ID:???.net >>44 ローカルでやると、サーバから下ろして、また上げての作業がめんどうでは?
46 :nobodyさん :2019/06/01(土) 09:15:37.32 ID:???.net FTPで対象フォルダを選択してダウンロード押すのと わざわざ専用のスクリプト(PHP,JavaScript)書くの どっちが面倒なのか一目瞭然だろ
47 :nobodyさん :2019/06/01(土) 09:38:22.40 ID:kaKNIqp8.net レン鯖ってルールが曖昧で忖度を求められる物なの?
48 :nobodyさん :2019/06/01(土) 09:41:45.57 ID:???.net ローカルPHPにFTP関数がある
49 :nobodyさん :2019/06/01(土) 11:41:15.79 ID:???.net 最悪BANになってもいいならチャレンジしてもいいのでは? 日常的に画像変換を目的にしてならともかく ブログとかのコンテンツの整理だろうし問題視されないはず 自分は10年以上前にアップローダー運営してたら高負荷で利用停止になって 対策してくれって怒られたことがある サーバ管理者は数字みればすぐ誰が原因かわかるから まとめて一気にやるととんがった山みたいなグラフかくから 数回ぐらいじゃ目つけられないだろうけど気になるならある程度は配慮したほうがいい
50 :nobodyさん :2019/06/02(日) 18:49:08.76 ID:???.net そもそも今日び何でレン鯖? もはや安くもないし一番簡単なわけでもないし制限は多いし
51 :nobodyさん :2019/06/02(日) 21:24:06.24 ID:???.net では今日日何を選べばいいの?
52 :nobodyさん :2019/06/02(日) 22:13:48.78 ID:???.net AWS
53 :nobodyさん :2019/06/02(日) 22:43:34.71 ID:???.net 100円台から借りれるし安いだろう 比較的まともなのだと500円ぐらいは必要だけど 自分は2Gの定額VPSだけど 従量制のクラウドは怖いわあ
54 :nobodyさん :2019/06/02(日) 23:35:32.95 ID:???.net 0円レン鯖の俺って一体
55 :nobodyさん :2019/06/03(月) 00:23:38.74 ID:???.net ちゃんと使えば何も怖くないけどな、AWS まあ、個人のお遊びならVPSで十分
56 :nobodyさん :2019/06/03(月) 00:26:24.15 ID:???.net AWSにもVPSあるよ
57 :nobodyさん :2019/06/03(月) 00:50:59.10 ID:???.net awsならlightsailでLAMPスタック選ぶのが簡単。月5ドルもかかる割高だけど(awsの他の手段で用意するのと比べて)
58 :nobodyさん :2019/06/03(月) 07:55:55.34 ID:???.net Beanstalkで
59 :nobodyさん :2019/06/03(月) 11:27:32.52 ID:???.net lightsailはwordpressのイメージ選べば3.5ドルに下がる不思議
60 :nobodyさん :2019/06/03(月) 15:12:38.74 ID:???.net 一般的なそのへんのメモリ2G SSD30GBのVPSのスペック PVは1日1000 月間30000 転送量は月30GB ルールよく知らないけどこれをAWSでやると2000円じゃ収まらないでしょ?
61 :nobodyさん :2019/06/03(月) 15:56:08.01 ID:eo00ojdB.net Lightsailは最も安いプランでも1TBまでの転送が無料になる 2GB RAMのサーバーは月10USD、3TBまでの転送が無料
62 :nobodyさん :2019/06/03(月) 15:59:05.99 ID:???.net マルチサイトでもなきゃ2GBいらんて。
63 :nobodyさん :2019/06/03(月) 22:36:16.48 ID:???.net DB使おうとするとさらに金かかるのか?謎
64 :nobodyさん :2019/06/03(月) 22:44:55.39 ID:???.net ていうかOS乗せるとEC2じゃないとって感じみたいだし ffmpeg使って動画変換とかもするから やっぱ高くつくよな…
65 :nobodyさん :2019/06/03(月) 23:33:26.25 ID:???.net VPSなんだからMySQL入れれば追加費用なしだよ。OSはAmazon linuxだよね?
66 :nobodyさん :2019/06/04(火) 00:56:30.65 ID:???.net >>65 そうなのかーありがとう OSはAmazon Linuxとか聞いたことないからCentかUbuntuがいいけども まあそれしか安くする選択肢がないということならどうにかする 通常のVPSと同じ使い方でバッチ処理とかも全然おkで 2GBなら3TBまでの転送量だけに気をつければいいってことかな? 現在の転送量がわかるなら2.9TBぐらいになった時点で503出すようにすることもできそうだし ちょいいじってみようかなあ
67 :nobodyさん :2019/06/04(火) 01:07:02.17 ID:???.net lightsailは最安でVPSが導入出来るってだけで性能は糞 実測でストレージはかなり遅いし RAM2GBのも1コアだし過度な期待はしないほうがいい
68 :nobodyさん :2019/06/04(火) 09:39:02.50 ID:???.net >>66 アマゾンLinuxはCentOSと99パーセント同じ
69 :nobodyさん :2019/06/04(火) 09:45:21.96 ID:PBKSUDTu.net >>66 Amazon LinuxはCentOSベースだからyum等が使える BitnamiのBlueprintを使う場合はUbuntuベースらしい
70 :nobodyさん :2019/06/04(火) 10:02:44.83 ID:???.net certbot の正式サポートがないのがなぁ。。。
71 :nobodyさん :2019/06/04(火) 14:14:00.01 ID:rH3aLVue.net 転送量での課金があるのってサーバーからインターネットへの送信だけでしょ そんな大人気のサイトでも無い限り1TBも転送しなくね? CloudFlareでも使っとけば更に転送量を抑えられる
72 :nobodyさん :2019/06/04(火) 20:30:01.39 ID:???.net cloudflareってなにで儲けてんだ ほとんどの人が無料プランで済んじゃわないか
73 :nobodyさん :2019/06/05(水) 21:56:56.02 ID:YdLNiMM6.net >>72 https://webmasters.stackexchange.com/questions/88659/how-can-cloudflare-offer-a-free-cdn-with-unlimited-bandwidth/88685#88685
74 :nobodyさん :2019/06/06(木) 18:03:40.95 ID:???.net >>73 ありがとう! 裏に何かあるかもしれないけど、CEOが答えてるなんてこれ以上のソースないわ。
75 :nobodyさん :2019/06/07(金) 00:24:03.40 ID:???.net php関係なくて草
76 :nobodyさん :2019/06/20(木) 17:57:11.83 ID:???.net コンストラクタは静的メソッドなのかなあ。 コンストラクタを継承するときに parent::__construct(); というふうに->でなく::を使うので。
77 :nobodyさん :2019/06/21(金) 13:32:37.25 ID:???.net >>76 だってオブジェクトないじゃん
78 :nobodyさん :2019/06/22(土) 17:03:18.55 ID:???.net でも $this->でメンバにアクセスできるじゃん
79 :nobodyさん :2019/06/22(土) 22:50:24.16 ID:???.net >>76 ただの記法なのであんま深く考えなくていいぞ。コンパイラか言語仕様上そうなってるだけやろ。
80 :nobodyさん :2019/06/24(月) 11:15:12.45 ID:???.net >>78 内側と外側は話が別だろ
81 :nobodyさん :2019/06/25(火) 10:46:11.68 ID:???.net 変数名の$の次に数字はふつう使えないけど、 <?php ${1} = 1; echo ${1},PHP_EOL; というふうにすると問題なく動くね。
82 :nobodyさん :2019/06/25(火) 15:44:25.21 ID:???.net PHP_EOL って初めて知った
83 :nobodyさん :2019/06/25(火) 23:32:18.67 ID:???.net 出来るできない以前にそんな変数名つけてたら張り倒されるわ
84 :nobodyさん :2019/07/02(火) 09:09:43.06 ID:???.net ビルトインウェブサーバいじってて自分でPHPで作ってみたくなったんですけど 静的コンテンツの配信は簡単なのですが PHPを動かせるサーバってどういうふうに書くんですか? if ($file['extension'] == 'php') { $document = passthru("php -f {$file['name']}"); } こんな感じでいいんですかね?
85 :nobodyさん :2019/07/02(火) 10:19:05.04 ID:???.net >>84 だいたいそんな感じ
86 :nobodyさん :2019/07/02(火) 15:18:33.21 ID:???.net >>85 ありがとうございます requireしたのとかはまだ実験してないけど とりあえず単純なものなら動きそうですね
87 :nobodyさん :2019/07/14(日) 09:45:16.22 ID:x6XB8Dua.net Swooleとmysqliの非同期APIを使えば PHPでも最速目指せる?
88 :nobodyさん :2019/07/15(月) 13:09:42.44 ID:???.net Googleドライブにアップした動画をHTML5のvideoタグを使って自サイトに貼り付け 再生させたいと思っています。以下の様にリンクを作成すれば動画を無劣化で 貼り付けることができるのは分かっています。 <video controls> <source src="https://drive.google.com/uc?export=download&id= {Google動画のID}" type="video/webm"> </video> ただこの方法が通用するのは動画の容量が数十MBまで。 それ以上の容量の動画は上記の方法では埋め込み再生できません。 完全には把握できてはいませんがGoogleは巨大ファイルのダウンロードに際して ワンクッションページを挟む仕様のようです。 たとえば800MB超のファイルをダウンロードしようとすると、 https://drive.google.com/uc?export=download&id=1wyXHX_xDh4EntuIG7y6jpHiPZT99OBn26A 上記のようなページに誘導され、そのページ中のダウンロードボタン; https://drive.google.com/uc?export=download&confirm=-8rW&id=1wyXHX_xDh4EntuIG7y6jpHiPZT99OBn26A をクリックすると動画のダウンロードが始まります。 ダウンロードボタンのリンクには新たに"confirm=-8rW"というキーワードが追加され、 末尾の4文字"-8rW"はダウンロードページをリロードするごとに変更されます。 またダウンロードボタンのリンクをコピーして違うブラウザを開いてURLを入力して みましたがダウンロードは始まらず、例のワンクッションページに誘導され新たな "confirm=****"キーワードが生成されたことを考えるとcookieも使ってるような気がします。 そこでPHPの力を使ってGoogleドライブにアップした巨大動画ファイル埋め込み再生に チャレンジしてみました。
89 :nobodyさん :2019/07/15(月) 13:10:14.73 ID:???.net // ワンクッションページのURL $cookie='https://drive.google.com/uc?export=download&id=1wyXHX_xDh4EntuIG7y6jpHiPZT99OBn26A'; //クッキー取得のためのアクセス $ch=curl_init();//初期化 curl_setopt($ch,CURLOPT_URL,$cookie);//cookieを取りに行く curl_setopt($ch,CURLOPT_HEADER,FALSE);//httpヘッダ情報は表示しない curl_setopt($ch,CURLOPT_RETURNTRANSFER,TRUE);//データをそのまま出力 curl_setopt($ch,CURLOPT_COOKIEJAR,'cookie.txt');//$cookieから取得した情報を保存するファイル名 curl_setopt($ch,CURLOPT_FOLLOWLOCATION,TRUE);//Locationヘッダの内容をたどっていく $html = curl_exec($ch); curl_close($ch);//いったん終了 // confirm=**** のうち末尾4文字を$match["name"]に抽出 preg_match('/.*confirm\=(?P<name>\w+)\&.*/', $html, $match); // 得られた"confirm=****"を使いダウンロードリンクを生成 $url='https://drive.google.com/uc?export=download&confirm=' . $match["name"] . '&id=1wyXHX_xDh4EntuIG7y6jpHiPZT99OBn26A'; // HTML5のvideoタグを生成して動画の埋め込み再生 echo '<html><body><video controls><source src="'; echo $url; echo '" type="video/webm"/></video></body></html>'; 'cookie.txt'にcookie情報が取得できたのは確認できたのですが 残念ながらこの方法では動画の再生にはいたりませんでした。 方針が間違ってたのでしょうか?
90 :nobodyさん :2019/07/15(月) 13:17:23.50 ID:???.net 斜め読みしかしてないけど、閲覧側が google ドメインに対して cookie のセットができないんで、その方向性に解はないと思うよ。
91 :nobodyさん :2019/07/15(月) 17:39:04.38 ID:???.net ドライブ自体がメディア配信用じゃない
92 :89 :2019/07/15(月) 21:51:10.41 ID:???.net >>90 > 閲覧側が google ドメインに対して cookie のセットができないんで、その方向性に解はないと思うよ。 閲覧側の問題ですか・・ PHP使ってGoogleから発行されたcookieを閲覧側に横流しすることって出来ますか? >>91 一応Googleドライブで動画の埋め込みコードを発行してたりするので(iframeを使ったコードですが) メディア配信を意識してないわけでは無いようです
93 :nobodyさん :2019/07/15(月) 23:11:15.79 ID:???.net CORSの問題にしか見えんのだが
94 :nobodyさん :2019/07/16(火) 16:29:01.18 ID:???.net >>92 そのGoogleドライブが発行する埋め込みコードじゃダメなのか?
95 :89 :2019/07/16(火) 22:29:54.65 ID:???.net >>94 「動画の埋め込み」機能で発行されるコードは再エンコードされた動画だったりします (たとえ最高の1080pを選んでも) 元動画が60pでうpしたのに埋め込み再生される動画は30pに落とされるとかざらにあります >>88 の方法はそれを回避して動画をオリジナルの画質で再生する方法なんですが 動画の容量が数十MBのものまでしか使えないのが問題でして・・・ >>93 CORS・・・初めて耳にしました ちょっと調べてみます
96 :nobodyさん :2019/07/17(水) 13:02:10.80 ID:???.net PHPの力を使うなら、GoogleドライブからPHPサーバーに動画をキャッシュしてストリーミングしてしまえ http://demo.codesamplez.com/html5/video
97 :88 :2019/07/17(水) 20:13:03.81 ID:???.net >>96 > PHPサーバーに動画をキャッシュしてストリーミングしてしまえ 無料レンタルサーバーなんですよね、 そんなことしたら怒られそうで・・・
98 :nobodyさん :2019/07/18(木) 15:12:29.01 ID:???.net 画像特化CDNのCloudinary最近動画配信機能強化してなかった? 無料枠で納まるか知らんが。
99 :nobodyさん :2019/07/19(金) 18:02:04.79 ID:???.net よくわからんが1個の動画容量が数MBでも問題ないだろ メタデータ作ってHLSで繋いで再生すればいいだけで
100 :nobodyさん :2019/07/26(金) 11:59:46.48 ID:???.net PDOでのデータベース操作が上手くいかないので質問させてください mysql> SELECT number FROM testtable; +--------+ | number | +--------+ | 204 | | 226 | | 234 | | 246 | +--------+ 4 rows in set (0.00 sec) このようなnumberカラムを持つtesttableで、特定の値(仮に今回は3番目の234とします)より大きいnumberを持つレコードのみ+1するということが目的なのですが、 直接mysqlで以下のstatement: >UPDATE testtable SET number = number + 1 WHERE number > 234; を実行すると Query OK, 1 row affected (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 0 mysql> SELECT number FROM testtable; +--------+ | number | +--------+ | 204 | | 226 | | 234 | | 247 | +--------+ となり、目的が達せられます
239 KB
新着レスの表示
掲示板に戻る
全部
前100
次100
最新50
read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★
本文 スレッドタイトル 投稿者