Как получить URL реакции в php для создания API? - PullRequest
1 голос
/ 11 апреля 2019

Я хочу получить URL, исходящий от маршрута React.URL-адрес как: http://localhost:3001/users/[member_username], в котором member_username будет динамическим в соответствии с именем пользователя.

Так, например, если URL-адрес совпадет с http://localhost:3001/users/gray, тогда переменная получит gray, или URL-адрес совпадет с http://localhost:3001/users/john, тогда переменная получит john

Теперь мне нужновведите этот URL в php-файл WordPress для создания API.

Я попытался это решение, но не смог найти точное решение, которое подходит для моей проблемы.

Вот мой код API, в котором мне нужно получить URL.

function get_user_id(){
$server_name = $_SERVER['SERVER_NAME'];
$user_name = basename("http://".$server_name."/users/admin");

// For now i have set the username as static, so it should be a dynamic as user hit the url. 

  $users = get_user_by('login', $user_name);

  if( !empty($users) ){

    foreach ($users as $key => $user) { 
      $user_name = new stdClass();
      $user_name->id = $user->ID;
      $user_name->user_login = $user->user_login;
      $user_name->user_nicename = $user->user_nicename;
      $user_name->user_email = $user->user_email;
      return $user_name;
    }
  }

}
/*
 *
 * Add action endpoint building
 *
 */
add_action( 'rest_api_init', function () {
    register_rest_route( 'rest-endpoints/v1', '/userid', array(
            'methods' => 'GET',
            'callback' => 'get_user_id'
    ));
});

Ответы [ 2 ]

0 голосов
/ 11 апреля 2019

Вы можете использовать:

$url_path = parse_url('http://localhost:3001/users/a13/abc',PHP_URL_PATH);
$url = preg_replace("/\/(?:[^\/]*\/)*/","",$url_path);
echo $url;

выход:

abc

демо : https://regex101.com/r/19x7ut/1/

или это регулярное выражение:

\/(?:[^\/\s]*\/)*

демо: https://regex101.com/r/19x7ut/3/

оба должны работать нормально.

0 голосов
/ 11 апреля 2019

Не могли бы вы дать мне знать, почему это решение не подходит для вашей проблемы?Кажется, можно получить имя пользователя.

однако, возможно, вы можете попробовать это

<?php
$url = parse_url('http://localhost:3001/users/yourname',PHP_URL_PATH);
$url = str_replace("/users/","",$url);
echo $url;
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...