PHP take arguments from URL path

前端 未结 4 2095
南笙
南笙 2021-01-05 14:34

Say I have a url like this:

http://www.mysite.com/forum/board1/sub-forum/topics/123

Is there a simple way in PHP (can\'t use HTAccess) to take t

相关标签:
4条回答
  • 2021-01-05 15:16
    explode('/', getenv('REQUEST_URI'));
    

    If your environment happens to include the query string part in the above value, here's a neat workaround:

    explode('/', strtok(getenv('REQUEST_URI'), '?'));
    
    0 讨论(0)
  • 2021-01-05 15:24

    If you already have configured your web server to send those requests to your particular PHP file, you can use parse_url and explode to get and then split the requested URI path into its segments:

    $_SERVER['REQUEST_URI_PATH'] = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
    $pathSegments = explode('/', $_SERVER['REQUEST_URI_PATH']);
    
    0 讨论(0)
  • 2021-01-05 15:29

    You can, but without redirecting requests your webserver will just return a 404 error for non-existing paths.

    However, you can use urls like http://your.site.com/index.php/foo/bar/baz and then split the url into parts like @pestaa said which you can then parse into parameter values.

    0 讨论(0)
  • 2021-01-05 15:37

    This is taken from my MVC http://www.phpclasses.org/package/6363-PHP-Implements-the-MVC-design-pattern.html

    The link is outdated at the minute, I have just updated it so it does not have the MVC stuff in, and this can be called with getLoadDetails($_URL); amd $_URL will be exactly the same as $_GET other than it gets the data from the folder path.

    function getLoadDetails(&$_URL){
                $filePath = $_SERVER['REQUEST_URI'];
                $filePath = explode("/", $filePath);
    
                for($i = 0; $i < count($filePath); $i++){
                        $key = $filePath[$i];
                        $i++;
                        $val = $filePath[$i];
                        $keyName = urldecode($key);
                        $_URL[$keyName] = urldecode($val);
                }
        }
    

    I do have one question, if you cant use HTACCESS how do you plan on coping with the folder path please dont tell me your system is going to create the folder paths and index file for every URL that will trash your server Speed and your Host will hate you for it.

    0 讨论(0)
提交回复
热议问题