Допустим, у меня есть строка: что-то
Когда я убегаю в JS, я получаю следующее: % 73% 6F% 6D% 65% 74% 68% 69% 6E% 67
поэтому я могу использовать этот код в JS для его декодирования:
document.write(unescape('%73%6F%6D%65%74%68%69%6E%67')); 
Мне нужна функция escape в PHP, которая будет делать то же самое (будет кодировать что-то : % 73% 6F% 6D% 65% 74% 68% 69% 6E% 67 )
Как это сделать ?
PHP:
 rawurlencode("your funky string"); 
JS:
decodeURIComponent ( 'ваш% 20funky% 20string');
  Не используйте escape поскольку он устарел. 
 rawurldecode('%73%6F%6D%65%74%68%69%6E%67'); 
Сначала прояснение:
Допустим, у меня есть строка: что-то
Когда я убегаю в JS, я получаю следующее:% 73% 6F% 6D% 65% 74% 68% 69% 6E% 67
  Это неправильно .  (Btw, функция escape() функции JS устарела. Вместо этого вы должны использовать encodeURIComponent() !) 
поэтому я могу использовать этот код в JS для его декодирования: document.write (unescape ('% 73% 6F% 6D% 65% 74% 68% 69% 6E% 67'));
  Да, это напишет «что-то» в документе (как escape() , также unescape() устарел, вместо этого используйте decodeURIComponent() ). 
На ваш вопрос:
Мне нужна функция [snip] в PHP, которая [snip] кодирует что-то % 73% 6F% 6D% 65% 74% 68% 69% 6E% 67
То, что вы ищете, это шестнадцатеричное представление charachters. Итак, чтобы получить строку «% 73% 6F% 6D% 65% 74% 68% 69% 6E% 67» из строки «что-то» , вам понадобится:
 <?php function stringToHex($string) { $hexString = ''; for ($i=0; $i < strlen($string); $i++) { $hexString .= '%' . bin2hex($string[$i]); } return $hexString; } $hexString = stringToHex('something'); echo strtoupper($hexString); // %73%6F%6D%65%74%68%69%6E%67 
Backwards:
 function hexToString($hexString) { return pack("H*" , str_replace('%', '', $hexString)); } $string = hexToString('%73%6F%6D%65%74%68%69%6E%67'); echo $string; // something