本文整理汇总了PHP中Zend\Http\PhpEnvironment\Request::getEnv方法的典型用法代码示例。如果您正苦于以下问题:PHP Request::getEnv方法的具体用法?PHP Request::getEnv怎么用?PHP Request::getEnv使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Zend\Http\PhpEnvironment\Request
的用法示例。
在下文中一共展示了Request::getEnv方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: createFromRequest
public static function createFromRequest(BaseRequest $request)
{
$new = static::fromString($request->toString());
$new->setQuery($request->getQuery());
$new->setPost($request->getPost());
$new->setCookies($request->getCookie());
$new->setFiles($request->getFiles());
$new->setServer($request->getServer());
$new->setContent($request->getContent());
$new->setEnv($request->getEnv());
$headers = $request->getHeaders();
$new->setHeaders($headers);
return $new;
}
示例2: testRetrievingASingleValueForParameters
public function testRetrievingASingleValueForParameters()
{
$request = new Request();
$p = new \Zend\Stdlib\Parameters(array('foo' => 'bar'));
$request->setQuery($p);
$request->setPost($p);
$request->setFiles($p);
$request->setServer($p);
$request->setEnv($p);
$this->assertSame('bar', $request->getQuery('foo'));
$this->assertSame('bar', $request->getPost('foo'));
$this->assertSame('bar', $request->getFiles('foo'));
$this->assertSame('bar', $request->getServer('foo'));
$this->assertSame('bar', $request->getEnv('foo'));
$headers = new Headers();
$h = new GenericHeader('foo', 'bar');
$headers->addHeader($h);
$request->setHeaders($headers);
$this->assertSame($headers, $request->getHeaders());
$this->assertSame($h, $request->getHeaders()->get('foo'));
$this->assertSame($h, $request->getHeader('foo'));
}
示例3: parseArguments
/**
* QueryStringをパースし、$_GETに上書き
* @return void
*/
public static function parseArguments()
{
global $cookie, $get, $post, $method;
global $defaultpage;
$request = new Request();
// GET, POST, COOKIE
$get = $request->getQuery();
$post = $request->getPost();
$cookie = $request->getCookie();
$method = $request->getMethod();
$vars = array();
if (strlen($get->toString()) > self::MAX_QUERY_STRING_LENGTH) {
// Something nasty attack?
self::dump('suspicious');
self::dieMessage(_('Query string is too long.'));
}
if (count($get) === 0) {
// Queryがない場合
$get->set('page', $defaultpage);
} else {
if (count($get) === 1 && empty(array_values((array) $get)[0])) {
// 配列の長さが1で最初の配列に値が存在しない場合はキーをページ名とする。
$k = trim(array_keys((array) $get)[0]);
$get->set('page', rawurldecode($_SERVER['QUERY_STRING']));
unset($get[$k]);
}
}
// 外部からの変数を$vars配列にマージする
if (empty($post)) {
$vars = (array) $get;
// Major pattern: Read-only access via GET
} else {
if (empty($get)) {
$vars = (array) $post;
// Minor pattern: Write access via POST etc.
} else {
$vars = array_merge((array) $get, (array) $post);
// Considered reliable than $_REQUEST
}
}
// var_dump($vars);
// die;
if (!isset($vars['cmd'])) {
$vars['cmd'] = 'read';
}
if (isset($vars['page']) && is_string($vars['page']) && preg_match(Wiki::INVALIED_PAGENAME_PATTERN, $vars['page']) === false) {
// ページ名チェック
self::dump('suspicious');
die('Invalid page name.');
}
if (is_string($vars['cmd']) && preg_match(PluginRenderer::PLUGIN_NAME_PATTERN, $vars['cmd']) === false) {
// 入力チェック: cmdの文字列は英数字以外ありえない
self::dump('suspicious');
die(sprintf('Plugin name %s is invalied or too long! (less than 64 chars)', $vars['cmd']));
}
// 文字コード変換
// <form> で送信された文字 (ブラウザがエンコードしたデータ) のコードを変換
// POST method は常に form 経由なので、必ず変換する
if (isset($vars['encode_hint']) && !empty($vars['encode_hint'])) {
// do_plugin_xxx() の中で、<form> に encode_hint を仕込んでいるので、
// encode_hint を用いてコード検出する。
// 全体を見てコード検出すると、機種依存文字や、妙なバイナリ
// コードが混入した場合に、コード検出に失敗する恐れがある。
$encode = mb_detect_encoding($vars['encode_hint']);
mb_convert_variables(SOURCE_ENCODING, $encode, $vars);
} else {
// 全部まとめて、自動検出/変換
mb_convert_variables(SOURCE_ENCODING, 'auto', $vars);
}
// 環境変数のチェック
self::checkEnv($request->getEnv());
switch ($method) {
case Request::METHOD_POST:
self::spamCheck($vars['cmd']);
break;
case Request::METHOD_OPTIONS:
case Request::METHOD_PROPFIND:
case Request::METHOD_DELETE:
case 'MOVE':
case 'COPY':
case 'PROPPATCH':
case 'MKCOL':
case 'LOCK':
case 'UNLOCK':
// WebDAV
$matches = array();
foreach (self::$ua_dav as $pattern) {
if (preg_match('/' . $pattern . '/', $log_ua, $matches)) {
PluginRenderer::executePluginAction('dav');
exit;
}
}
break;
}
return $vars;
}