Если это все, что вы пытаетесь сделать, вы можете просто использовать:
$url = str_replace(" ", "-", $url);
И затем использовать urlencode
для его кодирования после этого.Например:
function myurlencode($url)
{
return urlencode(str_replace(" ", "-", $url));
}
РЕДАКТИРОВАТЬ
И, согласно руководству PHP , он заменяет all non-alphanumeric characters except -_. with a percent (%) sign followed by two hex digits and spaces encoded as plus (+) signs.