本文整理汇总了PHP中Net_URL::getUrl方法的典型用法代码示例。如果您正苦于以下问题:PHP Net_URL::getUrl方法的具体用法?PHP Net_URL::getUrl怎么用?PHP Net_URL::getUrl使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Net_URL
的用法示例。
在下文中一共展示了Net_URL::getUrl方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: sendResponse
/**
* Page のレスポンス送信.
*
* @return void
*/
public function sendResponse()
{
// ループ防止に現在URLを格納
$location = '';
$netUrl = new Net_URL();
$location = $netUrl->getUrl();
// ログインされていなく、リダイレクト処理
if (empty($this->isLogin) && !preg_match('/^.*original.*/', $location)) {
$this->objDisplay->response->sendRedirect('original');
}
$objPlugin = SC_Helper_Plugin_Ex::getSingletonInstance($this->plugin_activate_flg);
// ローカルフックポイントを実行.
$this->doLocalHookpointAfter($objPlugin);
// HeadNaviにpluginテンプレートを追加する.
$objPlugin->setHeadNaviBlocs($this->arrPageLayout['HeadNavi']);
// スーパーフックポイントを実行.
$objPlugin->doAction('LC_Page_process', array($this));
// ページクラス名をテンプレートに渡す
$arrBacktrace = debug_backtrace();
if (strlen($this->tpl_page_class_name) === 0) {
$this->tpl_page_class_name = preg_replace('/_Ex$/', '', $arrBacktrace[1]['class']);
}
$this->objDisplay->prepare($this);
$this->objDisplay->addHeader('Vary', 'User-Agent');
$this->objDisplay->response->write();
}
示例2: sendRedirect
/**
* アプリケーション内でリダイレクトする
*
* 内部で生成する URL の searchpart は、下記の順で上書きしていく。(後勝ち)
* 1. 引数 $inheritQueryString が true の場合、$_SERVER['QUERY_STRING']
* 2. $location に含まれる searchpart
* 3. 引数 $arrQueryString
* @param string $location 「url-path」「現在のURLからのパス」「URL」のいずれか。「../」の解釈は行なわない。
* @param array $arrQueryString URL に付加する searchpart
* @param bool $inheritQueryString 現在のリクエストの searchpart を継承するか
* @param bool|null $useSsl true:HTTPSを強制, false:HTTPを強制, null:継承
* @return void
* @static
*/
function sendRedirect($location, $arrQueryString = array(), $inheritQueryString = false, $useSsl = null)
{
// ローカルフックポイント処理
$objPlugin = SC_Helper_Plugin_Ex::getSingletonInstance($this->plugin_activate_flg);
$arrBacktrace = debug_backtrace();
if (is_object($arrBacktrace[0]['object']) && method_exists($arrBacktrace[0]['object'], 'getMode')) {
$parent_class_name = get_parent_class($arrBacktrace[0]['object']);
$objPlugin->doAction($parent_class_name . '_action_' . $arrBacktrace[0]['object']->getMode(), array($arrBacktrace[0]['object']));
$class_name = get_class($arrBacktrace[0]['object']);
if ($class_name != $parent_class_name) {
$objPlugin->doAction($class_name . '_action_' . $arrBacktrace[0]['object']->getMode(), array($this));
}
} elseif (is_object($arrBacktrace[0]['object'])) {
$pattern = '/^[a-zA-Z0-9_]+$/';
$mode = null;
if (isset($_GET['mode']) && preg_match($pattern, $_GET['mode'])) {
$mode = $_GET['mode'];
} elseif (isset($_POST['mode']) && preg_match($pattern, $_POST['mode'])) {
$mode = $_POST['mode'];
}
$parent_class_name = get_parent_class($arrBacktrace[0]['object']);
$objPlugin->doAction($parent_class_name . '_action_' . $mode, array($arrBacktrace[0]['object']));
$class_name = get_class($arrBacktrace[0]['object']);
if ($class_name != $parent_class_name) {
$objPlugin->doAction($class_name . '_action_' . $mode, array($this));
}
}
// url-path → URL 変換
if ($location[0] === '/') {
$netUrl = new Net_URL($location);
$location = $netUrl->getUrl();
}
// URL の場合
if (preg_match('/^https?:/', $location)) {
$url = $location;
if (is_bool($useSsl)) {
if ($useSsl) {
$pattern = '/^' . preg_quote(HTTP_URL, '/') . '(.*)/';
$replacement = HTTPS_URL . '\\1';
$url = preg_replace($pattern, $replacement, $url);
} else {
$pattern = '/^' . preg_quote(HTTPS_URL, '/') . '(.*)/';
$replacement = HTTP_URL . '\\1';
$url = preg_replace($pattern, $replacement, $url);
}
}
} else {
if (!is_bool($useSsl)) {
$useSsl = SC_Utils_Ex::sfIsHTTPS();
}
$netUrl = new Net_URL($useSsl ? HTTPS_URL : HTTP_URL);
$netUrl->path = dirname($_SERVER['SCRIPT_NAME']) . '/' . $location;
$url = $netUrl->getUrl();
}
$pattern = '/^(' . preg_quote(HTTP_URL, '/') . '|' . preg_quote(HTTPS_URL, '/') . ')/';
// アプリケーション外へのリダイレクトは扱わない
if (preg_match($pattern, $url) === 0) {
trigger_error('', E_USER_ERROR);
}
$netUrl = new Net_URL($url);
if ($inheritQueryString && !empty($_SERVER['QUERY_STRING'])) {
$arrQueryStringBackup = $netUrl->querystring;
// XXX メソッド名は add で始まるが、実際には置換を行う
$netUrl->addRawQueryString($_SERVER['QUERY_STRING']);
$netUrl->querystring = array_merge($netUrl->querystring, $arrQueryStringBackup);
}
$netUrl->querystring = array_merge($netUrl->querystring, $arrQueryString);
$session = SC_SessionFactory_Ex::getInstance();
if (SC_Display_Ex::detectDevice() == DEVICE_TYPE_MOBILE || $session->useCookie() == false) {
$netUrl->addQueryString(session_name(), session_id());
}
$netUrl->addQueryString(TRANSACTION_ID_NAME, SC_Helper_Session_Ex::getToken());
$url = $netUrl->getURL();
header("Location: {$url}");
exit;
}
示例3: lfGetNews
/**
* 新着情報を取得する
*
* @param SC_Query $objQuery DB操作クラス
* @return array $arrNews 取得結果を配列で返す
*/
function lfGetNews(&$objQuery)
{
$col = "";
$col .= "news_id ";
// 新着情報ID
$col .= ",news_title ";
// 新着情報タイトル
$col .= ",news_comment ";
// 新着情報本文
$col .= ",news_date ";
// 日付
$col .= ",news_url ";
// 新着情報URL
$col .= ",news_select ";
// 新着情報の区分(1:URL、2:本文)
$col .= ",(SELECT shop_name FROM dtb_baseinfo limit 1) AS shop_name ";
// 店名
$col .= ",(SELECT email04 FROM dtb_baseinfo limit 1) AS email ";
// 代表Emailアドレス
$from = "dtb_news";
$where = "del_flg = '0'";
$order = "rank DESC";
$objQuery->setOrder($order);
$arrNews = $objQuery->select($col, $from, $where);
// RSS用に変換
foreach (array_keys($arrNews) as $key) {
$netUrlHttpUrl = new Net_URL(HTTP_URL);
$row =& $arrNews[$key];
// 日付
$row['news_date'] = date('r', strtotime($row['news_date']));
// 新着情報URL
if (SC_Utils_Ex::isBlank($row['news_url'])) {
$row['news_url'] = HTTP_URL;
} elseif ($row['news_url'][0] == '/') {
// 変換(絶対パス→URL)
$netUrl = new Net_URL($row['news_url']);
$netUrl->protocol = $netUrlHttpUrl->protocol;
$netUrl->user = $netUrlHttpUrl->user;
$netUrl->pass = $netUrlHttpUrl->pass;
$netUrl->host = $netUrlHttpUrl->host;
$netUrl->port = $netUrlHttpUrl->port;
$row['news_url'] = $netUrl->getUrl();
}
}
return $arrNews;
}
示例4: getUrl
/**
* Returns the current request URL
*
* @return string Current request URL
* @access public
*/
function getUrl()
{
return empty($this->_url)? '': $this->_url->getUrl();
}
示例5: sendRedirect
/**
* アプリケーション内でリダイレクトする
*
* 内部で生成する URL の searchpart は、下記の順で上書きしていく。(後勝ち)
* 1. 引数 $inheritQueryString が true の場合、$_SERVER['QUERY_STRING']
* 2. $location に含まれる searchpart
* 3. 引数 $arrQueryString
* @param string $location 「url-path」「現在のURLからのパス」「URL」のいずれか。「../」の解釈は行なわない。
* @param array $arrQueryString URL に付加する searchpart
* @param bool $inheritQueryString 現在のリクエストの searchpart を継承するか
* @param bool|null $useSsl true:HTTPSを強制, false:HTTPを強制, null:継承
* @return void
* @static
*/
function sendRedirect($location, $arrQueryString = array(), $inheritQueryString = false, $useSsl = null)
{
// url-path → URL 変換
if ($location[0] === '/') {
$netUrl = new Net_URL($location);
$location = $netUrl->getUrl();
}
// URL の場合
if (preg_match('/^https?:/', $location)) {
$url = $location;
if (is_bool($useSsl)) {
if ($useSsl) {
$pattern = '/^' . preg_quote(HTTP_URL, '/') . '(.*)/';
$replacement = HTTPS_URL . '\\1';
$url = preg_replace($pattern, $replacement, $url);
} else {
$pattern = '/^' . preg_quote(HTTPS_URL, '/') . '(.*)/';
$replacement = HTTP_URL . '\\1';
$url = preg_replace($pattern, $replacement, $url);
}
}
} else {
if (!is_bool($useSsl)) {
$useSsl = SC_Utils_Ex::sfIsHTTPS();
}
$netUrl = new Net_URL($useSsl ? HTTPS_URL : HTTP_URL);
$netUrl->path = dirname($_SERVER['PHP_SELF']) . '/' . $location;
$url = $netUrl->getUrl();
}
$pattern = '/^(' . preg_quote(HTTP_URL, '/') . '|' . preg_quote(HTTPS_URL, '/') . ')/';
// アプリケーション外へのリダイレクトは扱わない
if (preg_match($pattern, $url) === 0) {
SC_Utils_Ex::sfDispException();
}
$netUrl = new Net_URL($url);
if ($inheritQueryString && !empty($_SERVER['QUERY_STRING'])) {
$arrQueryStringBackup = $netUrl->querystring;
// XXX メソッド名は add で始まるが、実際には置換を行う
$netUrl->addRawQueryString($_SERVER['QUERY_STRING']);
$netUrl->querystring = array_merge($netUrl->querystring, $arrQueryStringBackup);
}
$netUrl->querystring = array_merge($netUrl->querystring, $arrQueryString);
$session = SC_SessionFactory::getInstance();
if (SC_MobileUserAgent_Ex::isMobile() || $session->useCookie() == false) {
$netUrl->addQueryString(session_name(), session_id());
}
$netUrl->addQueryString(TRANSACTION_ID_NAME, SC_Helper_Session_Ex::getToken());
$url = $netUrl->getURL();
header("Location: {$url}");
exit;
}
示例6: lfGetNews
/**
* 新着情報を取得する
*
* @return array $arrNews 取得結果を配列で返す
*/
public function lfGetNews()
{
$objNews = new SC_Helper_News_Ex();
$arrNews = $objNews->getList();
$objDb = new SC_Helper_DB_Ex();
$arrInfo = $objDb->sfGetBasisData();
// RSS用に変換
foreach (array_keys($arrNews) as $key) {
$netUrlHttpUrl = new Net_URL(HTTP_URL);
$row =& $arrNews[$key];
$row['shop_name'] = $arrInfo['shop_name'];
$row['email'] = $arrInfo['email04'];
// 日付
$row['news_date'] = date('r', strtotime($row['news_date']));
// 新着情報URL
if (SC_Utils_Ex::isBlank($row['news_url'])) {
$row['news_url'] = HTTP_URL;
} elseif ($row['news_url'][0] == '/') {
// 変換(絶対パス→URL)
$netUrl = new Net_URL($row['news_url']);
$netUrl->protocol = $netUrlHttpUrl->protocol;
$netUrl->user = $netUrlHttpUrl->user;
$netUrl->pass = $netUrlHttpUrl->pass;
$netUrl->host = $netUrlHttpUrl->host;
$netUrl->port = $netUrlHttpUrl->port;
$row['news_url'] = $netUrl->getUrl();
}
}
return $arrNews;
}
示例7:
Server.....: <?php
echo $url->host;
?>
Port.......: <?php
echo $url->port;
?>
File/path..: <?php
echo $url->path;
?>
Querystring: <?php
print_r($url->querystring);
?>
Anchor.....: <?php
echo $url->anchor;
?>
Full URL...: <?php
echo $url->getUrl();
?>
</pre>
</body>
</html>
示例8: normalizeHostname
/**
* ホスト名を正規化する
*
* @return void
*/
public function normalizeHostname()
{
if (!USE_NORMALIZE_HOSTNAME || !isset($_SERVER['REQUEST_URI']) || $_SERVER['REQUEST_METHOD'] === 'POST') {
// 処理せず戻る
return;
}
$netUrlRequest = new Net_URL($_SERVER['REQUEST_URI']);
// 要求を受けたホスト名
$request_hostname = $netUrlRequest->host;
$netUrlCorrect = new Net_URL(SC_Utils_Ex::sfIsHTTPS() ? HTTPS_URL : HTTP_URL);
// 設定上のホスト名
$correct_hostname = $netUrlCorrect->host;
// ホスト名が不一致の場合
if ($request_hostname !== $correct_hostname) {
// ホスト名を書き換え
$netUrlRequest->host = $correct_hostname;
// 正しい URL
$correct_url = $netUrlRequest->getUrl();
// 警告
$msg = 'ホスト名不一致を検出。リダイレクト実行。';
$msg .= '要求値=' . var_export($request_hostname, true) . ' ';
$msg .= '設定値=' . var_export($correct_hostname, true) . ' ';
$msg .= 'リダイレクト先=' . var_export($correct_url, true) . ' ';
trigger_error($msg, E_USER_WARNING);
// リダイレクト(恒久的)
SC_Response_Ex::sendHttpStatus(301);
SC_Response_Ex::sendRedirect($correct_url);
}
}
示例9: sendRedirect
/**
* アプリケーション内でリダイレクトする
*
* 内部で生成する URL の searchpart は、下記の順で上書きしていく。(後勝ち)
* 1. 引数 $inheritQueryString が true の場合、$_SERVER['QUERY_STRING']
* 2. $location に含まれる searchpart
* 3. 引数 $arrQueryString
*
* @param string $location
* 「url-path」「現在のURLからのパス」「URL」のいずれか。「../」の解釈は行なわない。
* @param array $arrQueryString
* URL に付加する searchpart
* @param bool $inheritQueryString
* 現在のリクエストの searchpart を継承するか
* @param bool|null $useSsl
* true:HTTPSを強制, false:HTTPを強制, null:継承
* @return void
* @static
*
*/
public function sendRedirect($location, $arrQueryString = array(), $inheritQueryString = false, $useSsl = null)
{
// ローカルフックポイント処理
$objPlugin = SC_Helper_Plugin_Ex::getSingletonInstance($this->plugin_activate_flg);
if (is_object($objPlugin)) {
$arrBacktrace = debug_backtrace();
if (is_object($arrBacktrace[0]['object'])) {
$pattern = '/^[a-zA-Z0-9_]+$/';
if (isset($_REQUEST['mode']) && preg_match($pattern, $_REQUEST['mode'])) {
$mode = $_REQUEST['mode'];
}
$parent_class_name = get_parent_class($arrBacktrace[0]['object']);
$class_name = get_class($arrBacktrace[0]['object']);
}
$objPlugin->doAction($parent_class_name . '_action_' . $mode, array($arrBacktrace[0]['object']));
if ($class_name != $parent_class_name) {
$objPlugin->doAction($class_name . '_action_' . $mode, array($this));
}
}
// url-path → URL 変換
if ($location[0] === '/') {
$netUrl = new Net_URL($location);
$url = $netUrl->getUrl();
} elseif (strpos($location, HTTPS_URL) === 0 || strpos($location, HTTP_URL) === 0) {
$url = $location;
} else {
$netUrl = new Net_URL(HTTP_URL);
$netUrl->path = dirname($_SERVER['SCRIPT_NAME']) . '/' . $location;
$url = $netUrl->getUrl();
}
if (!is_bool($useSsl)) {
$useSsl = SC_Utils_Ex::sfIsHTTPS();
}
if ($useSsl) {
$url = str_replace(HTTP_URL, HTTPS_URL, $url);
} else {
$url = str_replace(HTTPS_URL, HTTP_URL, $url);
}
// アプリケーション外へのリダイレクトは扱わない
if (!SC_Utils_Ex::isAppInnerUrl($url)) {
trigger_error('URL IS APP NOT INNER URL', E_USER_ERROR);
}
$netUrl = new Net_URL($url);
if ($inheritQueryString && !empty($_SERVER['QUERY_STRING'])) {
$arrQueryStringBackup = $netUrl->querystring;
// XXX メソッド名は add で始まるが、実際には置換を行う
$netUrl->addRawQueryString($_SERVER['QUERY_STRING']);
$netUrl->querystring = array_merge($netUrl->querystring, $arrQueryStringBackup);
}
$netUrl->querystring = array_merge($netUrl->querystring, $arrQueryString);
$session = SC_SessionFactory_Ex::getInstance();
if (SC_Display_Ex::detectDevice() == DEVICE_TYPE_MOBILE || $session->useCookie() == false) {
$netUrl->addQueryString(session_name(), session_id());
}
if (GC_Utils_Ex::isAdminFunction()) {
// 管理画面またはmode指定時は付与
$netUrl->addQueryString(TRANSACTION_ID_NAME, SC_Helper_Session_Ex::getToken());
}
$url = $netUrl->getURL();
header("Location: {$url}");
exit;
}
示例10: lfGetNews
/**
* 新着情報を取得する
*
* @return array $arrNews 取得結果を配列で返す
*/
public function lfGetNews()
{
/* @var $objNews NewsHelper */
$objNews = Application::alias('eccube.helper.news');
$arrNews = $objNews->getList();
/* @var $objDb DbHelper */
$objDb = Application::alias('eccube.helper.db');
$arrInfo = $objDb->getBasisData();
// RSS用に変換
foreach (array_keys($arrNews) as $key) {
$netUrlHttpUrl = new \Net_URL(HTTP_URL);
$row =& $arrNews[$key];
$row['shop_name'] = $arrInfo['shop_name'];
$row['email'] = $arrInfo['email04'];
// 日付
$row['news_date'] = date('r', strtotime($row['news_date']));
// 新着情報URL
if (Utils::isBlank($row['news_url'])) {
$row['news_url'] = HTTP_URL;
} elseif ($row['news_url'][0] == '/') {
// 変換(絶対パス→URL)
$netUrl = new \Net_URL($row['news_url']);
$netUrl->protocol = $netUrlHttpUrl->protocol;
$netUrl->user = $netUrlHttpUrl->user;
$netUrl->pass = $netUrlHttpUrl->pass;
$netUrl->host = $netUrlHttpUrl->host;
$netUrl->port = $netUrlHttpUrl->port;
$row['news_url'] = $netUrl->getUrl();
}
}
return $arrNews;
}