Я искал вопросы, на которые уже может быть мой ответ, но я не нашел этой конкретной проблемы.
Когда я пытаюсь получить содержимое файла с символом «#» в URL, он обрезает часть после символа «#».
Например:
Я пытаюсь получить содержание http://steamcommunity.com/id/Schwabba/inventory/#730 но когда я пытаюсь скачать его через сокет или file_get_contents
все, что я получаю, это http://steamcommunity.com/id/Schwabba/inventory/.
Кто-то знает, как решить эту проблему?
Благодарю.
Фрагменты URL-адресов (часть URL-адреса после хэша) не обрабатываются по протоколу HTTP, и браузер должен разобраться в них. Обычно их читает Javascript, запущенный на странице — как в данном случае — который затем делает дальнейшие AJAX-вызовы, чтобы получить оставшуюся часть страницы.
Неотбегший #
является разделителем между URL и фрагментом. Фрагмент не является частью самого URL-адреса и, следовательно, не включается в HTTP-запросы. Фрагмент имеет значение только для клиента, а не для сервера. Например, когда вы вводите http://steamcommunity.com/id/Schwabba/inventory/#730
в веб-браузер, он запрашивает http://steamcommunity.com/id/Schwabba/inventory/
и отображает результат, и если результатом является HTML, то браузер переходит к разделу, обозначенному HTML <a>
тег чей name
или же id
атрибут 730
,
Так что имеет смысл, почему file_get_contents()
игнорирует фрагмент — он должен. Вы должны решить, что делать с фрагментом после загрузки файла. Фрагмент относится к типу загружаемого контента.