Замените символ + на - в URL пользователях - PullRequest
0 голосов
/ 24 апреля 2020

Я пытаюсь заменить + в именах пользователей на -. + создается автоматически, когда имя пользователя содержит пробел, например john taylor> john+taylor

Я нашел эти функции, но не могу решить проблему (я использую член плагина - ultimate член и нет ответа от команды поддержки). Кто-нибудь может мне помочь?

function myUrlEncode($string) {
    $entities = array(' ');
    $replacements = array('-');
    return str_replace($entities, $replacements, urlencode($string));
}

 function str_replace_url($url)
    {
        str_replace(" ", "-", $url);
    }

function try () {
$user  = str_replace(' ', '-', $_GET['user']);
 $user  = mysql_escape_string($user);
 $query = mysql_query("SELECT * FROM users WHERE username = 'user'");
}


Ответы [ 3 ]

0 голосов
/ 24 апреля 2020

Прежде всего убедитесь, что вы получаете с $_GET['user'] с помощью функции php var_dump, затем используйте str_replace в соответствии с полученной строкой:

$user = $_GET['user'];

// Verify $user contains +
var_dump($user);

// Replace + with -
$user = str_replace("+", "-", $user);

// Verify $user is correct
var_dump($user);

После этого вызовите try(), но обратите внимание на переменную $ user внутри строки запроса, вы пропустили $.

function try () {
  $user  = mysql_escape_string($user);

  // Here must be $user and not user or you will search for 'user' username
  $query = mysql_query("SELECT * FROM users WHERE username = '$user'");
}
0 голосов
/ 24 апреля 2020

Использование preg_replace, как показано ниже.

$string = 'I love to work on the PHP development';
$slug = preg_replace('/\s/', '+', $string);
echo $slug;

Для преобразования в функцию

function convertToUrl($string)
{
    return preg_replace('/\s/i', '+', $string);

}

//usage
echo convertToUrl(string);
0 голосов
/ 24 апреля 2020

Вы можете заменить + на - в такой строке:

function plus_to_minus($user) {
    return str_replace("+", "-", $user);
}

echo plus_to_minus("john+taylor");
// output: john-taylor
echo plus_to_minus("john++taylor");
// output: john--taylor
...