таинственный пробел при установке строки вместе - PullRequest
0 голосов
/ 16 сентября 2011

Это может показаться странным, но я просто пытаюсь собрать URL вместе.Первая часть ($ first) я получаю из пользовательского ввода, используя strrpos () и substr () с «/».Точный файл, к которому я хочу получить, является фиксированным ($ second), поэтому все, что мне нужно сделать, это:

$first = "http://www.somedomain.de/somepath/";
$second = "thexml.xml";
$url = $first.$second;

НО: хотя я использую trim () в каждой части, все еще есть пробелымежду двумя частями, когда я печатаю $ url.

Когда я пытаюсь перейти к $ url, пробел заменяется на «%».Сам путь правильный, когда я вручную удаляю пробел /% в адресной строке моего браузера.

Я также попытался соединить две строки вместе с массивом и implode (), но результат остался прежним.Что я делаю не так?

Обновление от Лизы

ОК, поэтому я напечатал $ first и $ second отдельно и пробелов нет.Похоже, он появляется, когда я объединяю их и где именно эти две строки соединяются.

Есть еще идеи?


хорошо, поэтому я напечатал $ first и $ second отдельно инет пробелов.кажется, что это появляется, когда я объединяю их и где именно эти две строки соединены вместе.

Есть еще идеи?

Ответы [ 3 ]

0 голосов
/ 16 сентября 2011

Вы пробовали rawurlencode? http://php.net/rawurlencode

0 голосов
/ 06 февраля 2016

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

Мое решение - использовать такую ​​функцию обрезки:

0 голосов
/ 16 сентября 2011

Скорее всего, код, который вы редактируете или вводите (пользователь, база данных и т. Д.), Не соответствует вашим ожиданиям. Попробуйте обрезать (без каламбура) код до минимального примера. Например, перейти от

$first = "http://www.somedomain.de/somepath/";
$second = "thexml.xml";
$url = $first.$second;
echo $url; // No space

до

$first = $_POST['url'];
$second = "thexml.xml";
$url = $first.$second;
echo $url; // If this contains a space, the input contains the offending space

пошагово, чтобы найти ошибку.

...