Создание запроса get с URL-адресом, содержащим специальные символы

Я пытаюсь сделать этот запрос

fopen("http://192.168.0.116:9090/sendsms?phone=4456666&text=url#&password=","r");

отправить смс с моего устройства Android, но я не могу отправить сообщение успешно, и я подозреваю, что # усложняет вещи.

# в URL должен оставаться там как часть самого сообщения.

phone это номер телефона и text это текстовое сообщение.

Как я могу заставить запрос get работать?

1

Решение

Да, # символ указывает на фрагмент в URL, поэтому часть после этого фактически игнорируется прямо сейчас. Вам нужно правильно избежать этого, например, так:

$myUrl = 'http://192.168.0.116:9090/sendsms?'.http_build_query([
'phone' => '4456666',
'text' => 'url#',
'password' => '',
]);

Документы здесь на `http_build_query ‘.

Вы также можете правильно экранировать отдельные значения с помощью urlencode.

2

Другие решения

Это должно работать

fopen("http://192.168.0.116:9090/sendsms?phone=4456666&text=url%23&password=","r");

как # является %23

1

По вопросам рекламы [email protected]