Синтаксическая ошибка PHP5 в строке UrlEncoded, отсутствует правильный символ '\' - PullRequest
1 голос
/ 28 марта 2011

Дорогие люди, чтобы убрать действительно сумасшедших /%A/%E\%FD, возникающих в URL с помощью программного обеспечения для перевода, я пытаюсь внести некоторый порядок в хаос URL:

$search   = array(' ',  ',',  '/',  '\',  'amp%3B',  '+',  '--',  '[',  ']');
$replace  = array('-',  '' ,  '' ,  '',   ''       ,  '' ,  '-' ,  '' ,  '' );

Работал нормально, пока я не добавил '\', по-видимому, это специальный символ?!

Q1. Первый вопрос: ОШИБКА '\' Как мне записать один (один) \?

Q2. Neigher & или amp%3B или & захват и амперкант? что делать, чтобы захватить это из URL?

Q3. Sugestions Enhancement? что я забыл сделать это действительно вне времени? Другими словами: существуют ли другие специальные символы в URL, которые могут нарушить логику, например '/', которая представляет структуры папок, которые я с радостью обнаружил и удалил, не позволив этому быть в URL.

Ответы [ 5 ]

2 голосов
/ 28 марта 2011

Q1: экранируйте \, используя другой \, так что это будет \\

2 голосов
/ 28 марта 2011

Ответ 1: используйте '\\' вместо '\'

'\' - escape-символ.Так что нужно использовать '\\'

1 голос
/ 28 марта 2011

Помогает ли это вам ??

$string = '/var/www/vhosts/site.com/httpdocs/webpage-\xec\x8b\xa0\xeb\x85\x84-\xec\xb9\xb4\xeb\x93\x9c-\xed\x81\xac\xeb\xa6\xac\xec\x8a\xa4\xeb\xa7\x88\xec\x8a\xa4-\xec\xb9\xb4\xeb\x93    \x9c';

$search   = array(' ',  ',',  '/',  '\\',  'amp%3B',  '+',  '--',  '[',  ']');

$replace  = array('-',  '' ,  '' ,  '',   ''       ,  '' ,  '-' ,  '' ,  '' );

$count=0;
foreach($search as $sch)
{
    $string =  str_replace($sch, $replace[$count], $string);
    $count++;
}

echo $string;
1 голос
/ 28 марта 2011

Используйте '\\', чтобы оставлять сообщения в коде

1 голос
/ 28 марта 2011

Попробуйте '\\' для \ - обратная косая черта - это escape-символ, который используется для генерации, например, \n перевода строки, \r возврата каретки и т. Д.

Многие языки будут оченьнемного экранируется в '' одиночных кавычках, но обычно все еще поддерживает

' embedded \' single quote'

, поэтому они также должны поддерживать

'embedded \\ backslash'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...