2014-12-30 2 views
1

Я пытаюсь сделать этот запросСоздание запроса GET с URL, который имеет специальные символы

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

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

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

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

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

+0

попробовать 'текст = " UrlEncode (URL)." # & Password' так ваш текст смс будет правильно убежали в запросе. – Tensibai

ответ

2

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

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

Docs here on `http_build_query'.

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

1

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

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

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

+0

Хотя это решает проблему для конкретного URL-адреса в вопросе, это не фундаментальное решение проблемы, с которой он сталкивается. Я очень сомневаюсь, что текст жестко запрограммирован, чтобы всегда быть одним и тем же. –

+2

Оставьте его волшебникам, чтобы знать '#' is '% 23'. Благодарю. :) –

Смежные вопросы