質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

2回答

2113閲覧

cURLで戻り値のurlが「末尾スラッシュつき」になるのはなぜですか?

-___-

総合スコア3

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

1クリップ

投稿2020/09/22 22:08

これはどういう意図や利便性があっての仕様なのでしょうか?

cURLを実装したのですが

php

1$info = curl_getinfo(); 2$url = $info['url'];

とすると、$url に末尾スラッシュがつきます。

個人的に末尾スラッシュは毎回なしで統一しているのでここでもrtrimをかけたのですが、そもそもなぜ末尾スラッシュがつく仕様なのでしょうか?

便利なこと、なくて困ることってありますか?

PHP 7.2.4 です

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

gentaro

2020/09/22 22:31

「URL トレイリングスラッシュ」でググってみることをお勧めします。
-___-

2020/09/22 22:41

トレイリングスラッシュと仰いますとSEOの観点からの話かと思いますが、cURLにおける自動付与の有用性についての質問と、どのように関わりますでしょうか? さっそく以下でググりましたが 「URL トレイリングスラッシュ "cURL"」 しかし以下のリンクくらいしか目につかず、いまいち理解が及びませんでした。 ・https://curl.haxx.se/mail/archive-2016-08/0026.htmlhttps://teratail.com/questions/69909
m.ts10806

2020/09/22 22:59

なんか「仕様」に便利もなにもないと思うんですけど。。 2つ目のteratailのリンクで理解が及ばないとなると、解決は難しいのでは。ひとまず「そういうもの」と飲み込んでおくべき場面って多いですよ。 有用かどうかは自身の要件と照らし合わせて決めるところだと思います。
-___-

2020/09/22 23:03

一般的に何かと作るとなればなるべく便利な仕様に設計すると思うのですけど。 あとteratailのリンクはcURL実行時のurl(curl_execの方)で、戻り値のurl(curl_getinfoの方)ではないと思います。
m.ts10806

2020/09/22 23:07 編集

>便利な仕様に設計すると思うのですけど。 それは個人の思い込みで、実際には作った人にしか意図は分かりません。 あなたにとって便利かどうかは作った人は気にしません。どの言語にも「全ての人にとって便利な仕様になっている機能」ってないですよ。 だから機能と機能を組み合わせて自分で自分のために便利な機能を作ることになります。 (ちなみに、「仕様」とは言語だけに限らず、サーバ、ブラウザ 全てをさします)
-___-

2020/09/22 23:18

あの、私にとっての便利などというお話はしてないですし、全ての人にとって便利な仕様になっている機能なといった話もしてませんが…コメント先をお間違いでしょうか?
-___-

2020/09/22 23:19

機能なといった話 ↓ 機能などといった話
maisumakun

2020/09/22 23:50

curl_getinfoを引数なしで呼ぶことはできないかと思いますが、curl_initも含めてコードを書いていただけないでしょうか?
maisumakun

2020/09/22 23:56

> 私にとっての便利などというお話はしてないですし、全ての人にとって便利な仕様になっている機能なといった話もしてませんが… 「便利な仕様」を考えるときは、それが「誰にとって」便利なのか、という観点が必要です。
-___-

2020/09/23 00:03

「誰にとって」は便利の思想に定義上必須です。しかしm.ts10806さんのような個か全かではありません。個への対応は不便を助長し、全は困難です。ゆえに「多くの人にとって」という思想に基づいて仕様は設計されます。これは極めて常識であり、「個人の思い込み」などの断ずるのはいかがなものでしょうか。
maisumakun

2020/09/23 00:07

> こちらの通りです 質問文と違いすぎて対応が分かりづらいです。ひとまず、「期待されるURL」と「実際に返ってきたURL」はどのようなものだったのでしょうか?
-___-

2020/09/23 00:10

期待は末尾スラッシュなしです。なぜならCURLOPT_URLでなしを送ったからです。 しかし戻り値は末尾スラッシュありでした。 そのため「わざわざどうして追加するのか」と生じた疑問になります。
maisumakun

2020/09/23 00:23

送ったURLは、「http://example.com のように、パスのないルート直下」でしょうか?それとも、「パスのあるもの」でしょうか?
gentaro

2020/09/23 02:16

> トレイリングスラッシュと仰いますとSEOの観点からの話かと思いますが 違います。より一般的な末尾のスラッシュの話です。 すでに回答が付いていますが、スラッシュの有無は「ディレクトリ」を指すのか「ファイル」を指すのか、という違いが基本的にはありますす。これは通常CUIでディスク内のファイルシステムを操作するときと同じです。 その上で、URLを解釈するプログラム側で、末尾スラッシュの有無を補完するような実装がされているケースも数多くあります。 質問文で具体的なURLが明示されていないため、まずは上記の認識があるのかどうか、という意味でのコメントでした。
guest

回答2

0

ルートディレクトリへのリクエストは末尾の「/」を
付与するのが常識であり。

それ以外のリクエストはサーバが「/」をつけて
レスポンスを返してくるため、
curlはその結果を単に出力しているだけです。

https://www.suzukikenichi.com/blog/differences-between-trailing-slash-and-non-trailing-slash/

投稿2020/09/22 23:06

編集2020/09/22 23:23
hana_yama_san

総合スコア923

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

-___-

2020/09/22 23:31

なるほど、常識がそうならそれに基づいた方が便利ですね。 WordPressでは ・WP_CONTENT_DIR ・get_template_directory_uri などでスラッシュなしが常識なので質問したのですが、他ではありが常識だということですね。 ありがとうございます。勉強になりました。
-___-

2020/09/23 00:13

追加でアドバイスありがとうございます。サーバー周辺はまったく素人なので勉強になります。いつかのために覚えておきます。
hana_yama_san

2020/09/23 09:51

>>使い勝手はともかく と、仰っているように、あまりおすすめ出来たものでは無いと、思いますけどね。
guest

0

> 一般的に何かと作るとなればなるべく便利な仕様に設計すると思うのですけど。

リダイレクトされた場合は、リダイレクト先のURLを返す方が便利という判断でしょう。
リダイレクトする前のURLであれば、元々分かっているはずですし。

失礼しました。curlはデフォルトではリダイレクトに追随しないですね。

投稿2020/09/23 00:45

編集2020/09/23 02:09
otn

総合スコア85901

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

-___-

2020/09/23 01:11

一応オプションで追随させることもできるみたいですが、今回はリダイレクトはしていない様子です。 いずれにしましてもアドバイスありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問