ユーザーは電子メールのリンクをクリックし、電子メールに表示されたハッシュ マークを確認したいと考えます。
電子メールに貼り付ける前に、ベンが引用した内容へのリンクをエンコードする必要があります。あなたが現在持っているものは、まったく URL ではありません。
+必要に応じて、クエリ パラメータのコンテキストの代わりにスペースをエンコードでき%20ますが、生のスペースを含めることは絶対にできません。これは、スペースを含まない URL の特徴を定義するためです。URL にスペースを入力すると、 Web ブラウザであれば、エラーは静かに修正されますが、電子メール クライアントは URL がスペースでいっぱいの場合、プレーン テキストから URL を抽出できません。
+の代わりに にスペースをエンコードする代替関数が時々あります%20。通常、これは+すべての状況で有効であるとは限らないため、避けるのが最善ですが、必要に応じて:
index.php?name=Ben&address=101+S+10th+St+Suite+%23301
urlencode次に、より標準的な の代わりにPHP の関数を使用しますrawurlencode。
いずれにしても、ハッシュを にエンコードする必要%23があります。そうしないと、HTTP URL のハッシュはフラグメント識別子 (ブラウザーをスクロールするページの一部) を意味するためです。これは、ページ自体のアドレスの一部ではありません。ブラウザーからサーバーに渡されることさえないため、$_GETまたは他のインターフェイスから取得することはできません。
コンポーネントには、URL 文字列に挿入する前に % エンコードする必要があるアドレスなどの他の多くの文字があります。そうしないと、無効な URL または機能しない URL が残ります。そのすべての%23ビジネスが URL でおかしく見える場合... まあ、あなたはそれと一緒に暮らす必要があります. これは、常に URL がどのように見えるかです。