Кодируйте URL, включая дефис (-) и точку (.) В php

Мне нужен кодированный URL для обработки в одном из API. Но для этого требуется полный закодированный URL-адрес

Например:

URL из

http://test.site-raj.co/999999?lpp=1&px2=IjN 

для кодированного URL-адреса, как показано ниже

 http%3a%2f%test%site%2draj%2eco%2f999999%3flpp%3d1%26px2%3dIjN 

Мне нужен любой другой символ для кодирования даже Dot (.) И дефис (-), как указано выше. Пожалуйста, дайте мне знать любую функцию в php / code, чтобы сделать это.

Благодарю.

Попробуй это. Внутри функции может быть, если вы используете ее более одного раза …

 $str = 'http://test.site.co/999999?lpp=1&p---x2=IjN'; $str = urlencode($str); $str = str_replace('.', '%2E', $str); $str = str_replace('-', '%2D', $str); echo $str; 

Это будет кодировать все символы, которые не являются простыми буквами или цифрами. Вы все еще можете декодировать это со стандартным urldecode или rawurldecode:

 function urlencodeall($x) { $out = ''; for ($i = 0; isset($x[$i]); $i++) { $c = $x[$i]; if (!ctype_alnum($c)) $c = '%' . sprintf('%02X', ord($c)); $out .= $c; } return $out; } 

Почему бы вам не использовать rawurlencode

например rawurlencode("http://test.site-raj.co/999999?lpp=1&px2=IjN")