【问题标题】:Read and get variable out of long object从长对象中读取并获取变量
【发布时间】:2017-08-30 09:04:34
【问题描述】:

我解决此问题的唯一选择是从 HTTP_REFERER 中读取并获取变量。这是我试图读取并从中获取可用变量的打印对象:

App\Controller\EventsController 对象([名称] => 事件 [助手] => Array ( ) [request] => Cake\Http\ServerRequest Object ( [params] => Array ( [controller] => Events [action] => eventblock [pass] => Array ( ) [插件] => [_matchedRoute] => /:controller/:action/* [isAjax] => 1) [数据] => 数组 () [查询] => 数组 () [cookies] => 数组 () [_environment:protected] => 数组([REDIRECT_REDIRECT_TMP] => /Applications/AMPPS/tmp [REDIRECT_REDIRECT_STATUS] => 200 [REDIRECT_TMP] => /Applications/AMPPS/tmp [REDIRECT_STATUS] => 200 [TMP] => /Applications/AMPPS/tmp [HTTP_HOST] => 本地主机 [HTTP_CONNECTION] => 保持活动 [HTTP_PRAGMA] => 无缓存 [HTTP_CACHE_CONTROL] => 无缓存 [HTTP_ACCEPT] => / [HTTP_X_REQUESTED_WITH] => XMLHttpRequest [HTTP_USER_AGENT] => Mozilla/5.0(Macintosh;英特尔 Mac OS X 10_11_2)AppleWebKit/537.36 (KHTML,如 Gecko)Chrome/60.0.3112.113 Safari/537.36 [HTTP_REFERER] => http://betpool/events/view/65506 [HTTP_ACCEPT_ENCODING] => gzip,放气,br [HTTP_ACCEPT_LANGUAGE] => de-DE,de;q=0.8,en-US;q=0.6,en;q=0.4 [PATH] => /usr/bin:/bin:/usr/sbin:/sbin [SERVER_SIGNATURE] => [SERVER_SOFTWARE] => Apache/2.4.25 (Unix) PHP/7.0.16 mod_wsgi/4.5.11 Python/3.6 OpenSSL/1.0.1p [SERVER_NAME] => localhost [SERVER_ADDR] => ::1 [SERVER_PORT] => 80 [REMOTE_ADDR] => ::1 [DOCUMENT_ROOT] => /Applications/AMPPS/www [REQUEST_SCHEME] => http [CONTEXT_PREFIX] => [CONTEXT_DOCUMENT_ROOT] => /Applications/AMPPS/www [SERVER_ADMIN] => admin@localhost [SCRIPT_FILENAME] => /Applications/AMPPS/www/betpool/online/betpool/webroot/index.php [REMOTE_PORT] => 51901 [REDIRECT_URL] => /betpool/online/betpool/webroot/events/eventblock [GATEWAY_INTERFACE] => CGI/1.1 [SERVER_PROTOCOL] => HTTP/1.1 [REQUEST_METHOD] => GET [QUERY_STRING] => [REQUEST_URI] => /betpool/online/betpool/events/eventblock [SCRIPT_NAME] => /betpool/online/betpool/webroot/index.php [PHP_SELF] => /betpool/online/betpool/webroot/index.php [REQUEST_TIME_FLOAT] => 1504083056.053 [REQUEST_TIME] => 1504083056 [ORIGINAL_REQUEST_METHOD] => GET [HTTPS] => ) [url] => events/eventblock [base] => /betpool/online/betpool [webroot] => /betpool/online/betpool/ [这里] => /betpool/online/betpool/events/eventblock [trustProxy] => [_input:protected] => [_detectorCache:protected] => 数组 ( [ajax] => 1 [get] => 1 [head] => [options] => ) [stream:protected] => Zend\Diactoros\PhpInputStream 对象 ( [缓存:Zend\Diactoros\PhpInputStream:private] => [reachedEof:Zend\Diactoros\PhpInputStream:private] => [资源:受保护] => 资源 ID #87 [流:受保护] => php://input ) [uri:protected] => Zend\Diactoros\Uri 对象 ( [allowedSchemes:protected] => 数组([http] => 80 [https] => 443) [方案:Zend\Diactoros\Uri:private] => http [userInfo:Zend\Diactoros\Uri:private] => [主机:Zend\Diactoros\Uri:private] => 本地主机 [端口:Zend\Diactoros\Uri:private] => [路径:Zend\Diactoros\Uri:private] => /events/eventblock [查询:Zend\Diactoros\Uri:private] => [片段:Zend\Diactoros\Uri:private] => [uriString:Zend\Diactoros\Uri:private] => [base] => /betpool/online/betpool [webroot] => /betpool/online/betpool/ ) [session:protected] => Cake\Network\Session 对象 ( [_engine:protected] => [_started:protected] => [_lifetime:protected] => 1440 [_isCLI:protected] => ) [attributes:protected] => Array () [emulatedAttributes:protected] => Array ([0] => session [1] => webroot [2] => base [3] => params ) [uploadedFiles:protected] => 数组 ( ) [协议:受保护] => ....

是否有可能从这段代码中获取http://betpool/events/view/65506,如果,是否可以将其存储在 php var 中?

【问题讨论】:

    标签: php arrays string object cakephp


    【解决方案1】:

    你没有提到你使用的是哪个版本的 Cakephp,但是 Cakephp 有一个内置的机制来处理请求。

    请按照手册了解更多信息: https://book.cakephp.org/2.0/en/controllers/request-response.html#CakeRequest::referer

    $this->request->referer()
    

    应该返回你正在寻找的字符串。

    分享您的一些代码以获得有关此功能使用的更好指导。

    【讨论】:

    • 感谢您的帮助!这完美解决了我的问题
    猜你喜欢
    • 2021-12-01
    • 2013-04-13
    • 2012-08-30
    • 1970-01-01
    • 2019-02-01
    • 1970-01-01
    • 2014-11-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多