【问题标题】:How to get react URL in php for creating API?如何在 php 中获取反应 URL 以创建 API?
【发布时间】:2019-09-01 16:58:55
【问题描述】:

我想获取一个来自 React 溃败的 URL。 网址如:http://localhost:3001/users/[member_username] 其中member_username 将根据用户名是动态的。

因此,例如,如果像http://localhost:3001/users/gray 这样的网址命中,那么变量将获得gray 或像http://localhost:3001/users/john 这样的网址命中,那么变量将获得john

现在我需要将该 url 放入 WordPress php 文件中以创建 API。

我尝试了this 解决方案,但没有得到适合我的问题的确切解决方案。

这是我需要获取 URL 的 API 代码。

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'
    ));
});

【问题讨论】:

  • 根据您提供的 SO ref 和无效的解决方案...:您能否详细说明它为您生成的任何信息和/或错误(-log)?请让您的问题标签更具体,并确保其他人可以重现您的错误(即完整的代码?)。现在它太笼统了。分类审核结束 > 需要编辑。
  • 我已经编辑了我的问题,添加了代码部分以获得更多理由。我没有收到错误,但我的问题是如何从远程 url 获取上学期的 url?

标签: php regex url


【解决方案1】:

您能否告诉我为什么该解决方案不适合您的问题? 似乎可以得到用户名。

不过,也许你可以试试这个

<?php
$url = parse_url('http://localhost:3001/users/yourname',PHP_URL_PATH);
$url = str_replace("/users/","",$url);
echo $url;
?>

【讨论】:

  • yourname 是动态的,那么我怎样才能让最后一个学期动态呢?
  • @GrayCarry:你的意思是yourname实际上可能是a/b/c?你想得到c
  • 是的,网址的最后一部分将是动态的......所以它应该根据用户名进行更改,就像 Facebook 用户个人资料一样。它的第一部分有一个常量 url(例如 www/facebook.com/zuckwww/facebook.com/allan )并且用户名将被动态传递。
【解决方案2】:

你可以使用:

$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/

两者都应该可以正常工作。

【讨论】:

  • 我想要一个动态值,它将在http://localhost:3001/users/[member_username] 的常量 url 路径之后连接,那么是否有任何 PHP 函数将返回一个可以获取该动态用户名值的值?
猜你喜欢
  • 1970-01-01
  • 2019-08-29
  • 1970-01-01
  • 2021-05-26
  • 1970-01-01
  • 1970-01-01
  • 2016-03-13
  • 2021-11-23
  • 2019-04-18
相关资源
最近更新 更多