本文整理汇总了PHP中jUrl::escape方法的典型用法代码示例。如果您正苦于以下问题:PHP jUrl::escape方法的具体用法?PHP jUrl::escape怎么用?PHP jUrl::escape使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类jUrl
的用法示例。
在下文中一共展示了jUrl::escape方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: read_rss
/**
* display the RSS of the forum
*/
public function read_rss()
{
$ftitle = jUrl::escape($this->param('ftitle'), true);
$id_forum = (int) $this->param('id_forum');
if (!jAcl2::check('hfnu.posts.list', 'forum' . $id_forum)) {
$rep = $this->getResponse('redirect');
$rep->action = 'default:index';
return $rep;
}
if ($id_forum == 0) {
$rep = $this->getResponse('redirect');
$rep->action = 'default:index';
return $rep;
}
$forum = jClasses::getService('havefnubb~hfnuforum')->getForum($id_forum);
if (jUrl::escape($forum->forum_name, true) != $ftitle) {
$rep = $this->getResponse('redirect');
$rep->action = jApp::config()->urlengine['notfoundAct'];
return $rep;
}
jApp::coord()->getPlugin('history')->change('label', htmlentities($forum->forum_name, ENT_COMPAT, 'UTF-8'));
$feed_reader = new jFeedReader();
$feed_reader->setCacheDir(jApp::varPath('feeds'));
$feed_reader->setTimeout(2);
$feed_reader->setUserAgent('HaveFnuBB - http://www.havefnubb.org/');
$feed = $feed_reader->parse($forum->forum_url);
$rep = $this->getResponse('html');
$tpl = new jTpl();
$tpl->assign('feed', $feed);
$tpl->assign('forum', $forum);
$rep->title = $forum->forum_name;
$rep->body->assign('MAIN', $tpl->fetch('havefnubb~forum_rss.view'));
return $rep;
}
示例2: view
/**
* View a given Category of forum then the list of forums
*/
function view()
{
$ctitle = $this->param('ctitle');
$id_cat = (int) $this->param('id_cat');
if ($id_cat == 0) {
$rep = $this->getResponse('redirect');
$rep->action = 'havefnubb~default:index';
return $rep;
}
// add the category name in the page title
// so
// 1) get the category record
$category = jClasses::getService('havefnubb~hfnucat')->getCat($id_cat);
// check that the title of the category exist
// if not => error404
if (jUrl::escape($ctitle, true) != jUrl::escape($category->cat_name, true)) {
$rep = $this->getResponse('redirect');
$rep->action = jApp::config()->urlengine['notfoundAct'];
return $rep;
}
$rep = $this->getResponse('html');
// 2) assign the title page
$rep->title = $category->cat_name;
$historyPlugin = jApp::coord()->getPlugin('history');
$histname = ucfirst(htmlentities($category->cat_name, ENT_COMPAT, 'UTF-8'));
$historyPlugin->change('label', $histname);
$historyPlugin->change('title', $histname);
$categories = jDao::get('havefnubb~forum')->findParentByCatId($id_cat);
foreach ($categories as $cat) {
if (jAcl2::check('hfnu.forum.list', 'forum' . $cat->id_forum)) {
// get the list of forum to build the RSS link
$url = jUrl::get('havefnubb~posts:rss', array('ftitle' => $cat->forum_name, 'id_forum' => $cat->id_forum));
$rep->addHeadContent('<link rel="alternate" type="application/rss+xml" title="' . $cat->forum_name . '" href="' . htmlentities($url) . '" />');
}
}
$tpl = new jTpl();
$tpl->assign('action', 'view');
$tpl->assign('cat_name', $category->cat_name);
$tpl->assign('categories', $categories);
$tpl->assign('currentIdForum', 0);
$rep->body->assign('MAIN', $tpl->fetch('index'));
return $rep;
}
示例3: create
//.........这里部分代码省略.........
if (preg_match('/^\\w{2,3}$/', $paramStatic, $m)) {
// if the value is a lang instead of locale, translate it
$paramStatic = jLocale::langToLocale($paramStatic);
}
}
}
}
if ($paramStatic != $v) {
$ok = false;
break;
}
}
if ($ok) {
// static parameters correspond: we found our informations
$urlinfofound = $urlinfo[$i];
break;
}
}
if ($urlinfofound !== null) {
$urlinfo = $urlinfofound;
} else {
$urlinfo = $urlinfo[1];
}
}
// at this step, we have informations to build the url
$url->scriptName = jApp::config()->urlengine['basePath'] . $urlinfo[1];
if ($urlinfo[2]) {
$url->scriptName = jApp::coord()->request->getServerURI(true) . $url->scriptName;
}
if ($urlinfo[1] && !jApp::config()->urlengine['multiview']) {
$url->scriptName .= '.php';
}
// for some request types, parameters aren't in the url
// so we remove them
// it's a bit dirty to do that hardcoded here, but it would be a pain
// to load the request class to check whether we can remove or not
if (in_array($urlact->requestType, array('xmlrpc', 'jsonrpc', 'soap'))) {
$url->clearParam();
return $url;
}
if ($urlinfo[0] == 0) {
$s = new jSelectorUrlHandler($urlinfo[3]);
$c = $s->resource . 'UrlsHandler';
$handler = new $c();
$handler->create($urlact, $url);
if ($urlinfo[4] != '') {
$url->pathInfo = $urlinfo[4] . $url->pathInfo;
}
} elseif ($urlinfo[0] == 1) {
$pi = $urlinfo[5];
foreach ($urlinfo[3] as $k => $param) {
$typeParam = $urlinfo[4][$k];
$value = $url->getParam($param, '');
if ($typeParam & 2) {
$value = jUrl::escape($value, true);
} else {
if ($typeParam & 1) {
$value = str_replace('%2F', '/', urlencode($value));
} else {
if ($typeParam & 4) {
if ($value == '') {
$value = jLocale::getCurrentLang();
} else {
if (preg_match('/^(\\w{2,3})_\\w{2,3}$/', $value, $m)) {
$value = $m[1];
}
}
} else {
if ($typeParam & 8) {
if ($value == '') {
$value = jApp::config()->locale;
} else {
if (preg_match('/^\\w{2,3}$/', $value, $m)) {
$value = jLocale::langToLocale($value);
}
}
} else {
$value = urlencode($value);
}
}
}
}
$pi = str_replace(':' . $param, $value, $pi);
$url->delParam($param);
}
$url->pathInfo = $pi;
if ($urlinfo[6]) {
$url->setParam('action', $action);
}
// removed parameters corresponding to static values
foreach ($urlinfo[7] as $name => $value) {
$url->delParam($name);
}
} elseif ($urlinfo[0] == 3) {
if ($urlinfo[3]) {
$url->delParam('module');
}
}
return $url;
}
示例4: buildWithSpecificPathinfo
/**
* @param array $urlinfo
* array(1,'entrypoint', https true/false,
* array('year','month',), // list of dynamic values included in the url
* array(true, false..), // list of integers which indicates for each
* // dynamic value: 0: urlencode, 1:urlencode except '/', 2:escape
* "/news/%1/%2/", // the url
* true/false, // false : this is a secondary action
* array('bla'=>'whatIWant' ) // list of static values
* )
*/
protected function buildWithSpecificPathinfo(\jUrlAction $urlact, \jUrl $url, $urlinfo)
{
$pi = $urlinfo[5];
foreach ($urlinfo[3] as $k => $param) {
$escape = $urlinfo[4][$k];
$value = $url->getParam($param, '');
if ($escape & self::ESCAPE_NON_ASCII) {
$value = \jUrl::escape($value, true);
} elseif ($escape & self::ESCAPE_SLASH) {
$value = str_replace('%2F', '/', urlencode($value));
} elseif ($escape & self::ESCAPE_LANG) {
if ($value == '') {
$value = Locale::getCurrentLang();
} elseif (preg_match('/^(\\w{2,3})_\\w{2,3}$/', $value, $m)) {
$value = $m[1];
}
} elseif ($escape & self::ESCAPE_LOCALE) {
if ($value == '') {
$value = App::config()->locale;
} elseif (preg_match('/^\\w{2,3}$/', $value, $m)) {
$value = Locale::langToLocale($value);
}
} else {
$value = urlencode($value);
}
$pi = str_replace(':' . $param, $value, $pi);
$url->delParam($param);
}
$url->pathInfo = $pi != '/' ? $pi : '';
if ($urlinfo[6]) {
$url->setParam('action', $urlact->getParam('action'));
}
// removed parameters corresponding to static values
foreach ($urlinfo[7] as $name => $value) {
$url->delParam($name);
}
}
示例5: create
//.........这里部分代码省略.........
}
/*
urlinfo =
or array(0,'entrypoint', https true/false, 'handler selector', 'basepathinfo')
or array(1,'entrypoint', https true/false,
array('year','month',), // list of dynamic values included in the url
array(true, false..), // list of integers which indicates for each
// dynamic value: 0: urlencode, 1:urlencode except '/', 2:escape
"/news/%1/%2/", // the url
true/false, // false : this is a secondary action
array('bla'=>'whatIWant' ) // list of static values
)
or array(2,'entrypoint', https true/false), // for the patterns "@request"
or array(3,'entrypoint', https true/false), // for the patterns "module~@request"
or array(4, array(1,...), array(1,...)...)
*/
if ($urlinfo[0] == 4) {
// an action is mapped to several urls
// so it isn't finished. Let's find building information
// into the array
$l = count($urlinfo);
$urlinfofound = null;
for ($i = 1; $i < $l; $i++) {
$ok = true;
// verify that given static parameters of the action correspond
// to those defined for this url
foreach ($urlinfo[$i][7] as $n => $v) {
if ($url->getParam($n, '') != $v) {
$ok = false;
break;
}
}
if ($ok) {
// static parameters correspond: we found our informations
$urlinfofound = $urlinfo[$i];
break;
}
}
if ($urlinfofound !== null) {
$urlinfo = $urlinfofound;
} else {
$urlinfo = $urlinfo[1];
}
}
// at this step, we have informations to build the url
$url->scriptName = $GLOBALS['gJConfig']->urlengine['basePath'] . $urlinfo[1];
if ($urlinfo[2]) {
$url->scriptName = $GLOBALS['gJCoord']->request->getServerURI(true) . $url->scriptName;
}
if ($urlinfo[1] && !$GLOBALS['gJConfig']->urlengine['multiview']) {
$url->scriptName .= $GLOBALS['gJConfig']->urlengine['entrypointExtension'];
}
// pour certains types de requete, les paramètres ne sont pas dans l'url
// donc on les supprime
// c'est un peu crade de faire ça en dur ici, mais ce serait lourdingue
// de charger la classe request pour savoir si on peut supprimer ou pas
if (in_array($urlact->requestType, array('xmlrpc', 'jsonrpc', 'soap'))) {
$url->clearParam();
return $url;
}
if ($urlinfo[0] == 0) {
$s = new jSelectorUrlHandler($urlinfo[3]);
$c = $s->resource . 'UrlsHandler';
$handler = new $c();
$handler->create($urlact, $url);
if ($urlinfo[4] != '') {
$url->pathInfo = $urlinfo[4] . $url->pathInfo;
}
} elseif ($urlinfo[0] == 1) {
$pi = $urlinfo[5];
foreach ($urlinfo[3] as $k => $param) {
switch ($urlinfo[4][$k]) {
case 2:
$value = jUrl::escape($url->getParam($param, ''), true);
break;
case 1:
$value = str_replace('%2F', '/', urlencode($url->getParam($param, '')));
break;
default:
$value = urlencode($url->getParam($param, ''));
break;
}
$pi = str_replace(':' . $param, $value, $pi);
$url->delParam($param);
}
$url->pathInfo = $pi;
if ($urlinfo[6]) {
$url->setParam('action', $action);
}
// removed parameters corresponding to static values
foreach ($urlinfo[7] as $name => $value) {
$url->delParam($name);
}
} elseif ($urlinfo[0] == 3) {
if ($urlinfo[3]) {
$url->delParam('module');
}
}
return $url;
}
示例6: create
/**
* Create a jurl object with the given action data
* @param jUrlAction $url information about the action
* @return jUrl the url correspondant to the action
* @author Laurent Jouanneau
* @copyright 2005 CopixTeam, 2005-2006 Laurent Jouanneau
* very few lines of code are copyrighted by CopixTeam, written by Laurent Jouanneau
* and released under GNU Lesser General Public Licence,
* in an experimental version of Copix Framework v2.3dev20050901,
* http://www.copix.org.
*/
public function create($urlact)
{
if ($this->dataCreateUrl == null) {
$sel = new jSelectorUrlCfgSig($GLOBALS['gJConfig']->urlengine['significantFile']);
jIncluder::inc($sel);
$this->dataCreateUrl =& $GLOBALS['SIGNIFICANT_CREATEURL'];
}
/*
a) recupere module~action@request -> obtient les infos pour la creation de l'url
b) récupère un à un les parametres indiqués dans params à partir de jUrl
c) remplace la valeur récupérée dans le result et supprime le paramètre de l'url
d) remplace scriptname de jUrl par le resultat
*/
$url = new jUrl('', $urlact->params, '');
$module = $url->getParam('module', jContext::get());
$action = $url->getParam('action');
$id = $module . '~' . $action . '@' . $urlact->requestType;
$urlinfo = null;
if (isset($this->dataCreateUrl[$id])) {
$urlinfo = $this->dataCreateUrl[$id];
$url->delParam('module');
$url->delParam('action');
} else {
$id = $module . '~*@' . $urlact->requestType;
if (isset($this->dataCreateUrl[$id])) {
$urlinfo = $this->dataCreateUrl[$id];
$url->delParam('module');
} else {
$id = '@' . $urlact->requestType;
if (isset($this->dataCreateUrl[$id])) {
$urlinfo = $this->dataCreateUrl[$id];
} else {
throw new Exception("Significant url engine doesn't find corresponding url to this action :" . $module . '~' . $action . '@' . $urlact->requestType);
}
}
}
/*
urlinfo =
array(0,'entrypoint', https true/false,'selecteur handler')
ou
array(1,'entrypoint', https true/false,
array('annee','mois','jour','id','titre'), // liste des paramètres de l'url à prendre en compte
array(true, false..), // valeur des escapes
"/news/%1/%2/%3/%4-%5", // forme de l'url
false, //indique si c'est une action surchargeante
)
ou
array(2,'entrypoint', https true/false,); pour les clés du type "@request"
array(3,'entrypoint', https true/false); pour les clés du type "module~@request"
array(4, array(1,..), array(1,..)...);
*/
if ($urlinfo[0] == 4) {
$l = count($urlinfo);
$urlinfofound = null;
for ($i = 1; $i < $l; $i++) {
$ok = true;
foreach ($urlinfo[$i][7] as $n => $v) {
if ($url->getParam($n, '') != $v) {
$ok = false;
break;
}
}
if ($ok) {
$urlinfofound = $urlinfo[$i];
break;
}
}
if ($urlinfofound !== null) {
$urlinfo = $urlinfofound;
} else {
$urlinfo = $urlinfo[1];
}
}
$url->scriptName = $GLOBALS['gJConfig']->urlengine['basePath'] . $urlinfo[1];
if ($urlinfo[2]) {
$url->scriptName = 'https://' . $_SERVER['HTTP_HOST'] . $url->scriptName;
}
if ($urlinfo[1] && !$GLOBALS['gJConfig']->urlengine['multiview']) {
$url->scriptName .= $GLOBALS['gJConfig']->urlengine['entrypointExtension'];
}
// pour certains types de requete, les paramètres ne sont pas dans l'url
// donc on les supprime
// c'est un peu crade de faire ça en dur ici, mais ce serait lourdingue
// de charger la classe request pour savoir si on peut supprimer ou pas
if (in_array($urlact->requestType, array('xmlrpc', 'jsonrpc', 'soap'))) {
$url->clearParam();
return $url;
}
if ($urlinfo[0] == 0) {
//.........这里部分代码省略.........
示例7: atom
/**
* provide a atom feeds for each forum
*/
function atom()
{
$ftitle = jUrl::unescape($this->param('ftitle'), true);
$id_forum = $this->intParam('id_forum');
// if the forum is accessible by anonymous then the Atom will be available
// otherwise NO Atom will be available
if (!jAcl2::check('hfnu.posts.rss', 'forum' . $id_forum)) {
jMessage::add(jLocale::get('havefnubb~main.permissions.denied'), 'error');
$rep = $this->getResponse('html');
$tpl = new jTpl();
$rep->body->assign('MAIN', $tpl->fetch('havefnubb~403.html'));
$rep->setHttpStatus('403', 'Permission denied');
return $rep;
}
if ($id_forum == 0) {
jLog::log(__METHOD__ . ' line : ' . __LINE__ . ' [this should not be 0] $id_forum', 'DEBUG');
$rep = $this->getResponse('html');
$tpl = new jTpl();
$rep->body->assign('MAIN', $tpl->fetch('havefnubb~404.html'));
$rep->setHttpStatus('404', 'Not found');
return $rep;
}
$rep = $this->getResponse('atom1.0');
$gJConfig = jApp::config();
// entete du flux atom
$rep->infos->title = $gJConfig->havefnubb['title'];
$rep->infos->webSiteUrl = (empty($_SERVER['HTTPS']) ? 'http' : 'https') . '://' . $_SERVER['HTTP_HOST'];
$rep->infos->copyright = $gJConfig->havefnubb['title'];
$rep->infos->description = $gJConfig->havefnubb['description'];
$rep->infos->updated = date('Y-m-d H:i:s');
$rep->infos->published = date('Y-m-d H:i:s');
$rep->infos->selfLink = jUrl::get('havefnubb~posts:atom', array('ftitle' => $ftitle, 'id_forum' => $fid_forum));
$rep->infos->ttl = 60;
$dao = jDao::get('havefnubb~forum');
$forum = $dao->get($id_forum);
if (jUrl::escape($forum->forum_name, true) != $ftitle) {
jLog::log(__METHOD__ . ' line : ' . __LINE__ . ' [this should not be different] $forum->forum_name and $ftitle', 'DEBUG');
$rep = $this->getResponse('html');
$tpl = new jTpl();
$rep->body->assign('MAIN', $tpl->fetch('havefnubb~404.html'));
$rep->setHttpStatus('404', 'Not found');
return $rep;
}
// 1- limit of posts
$nbPostPerPage = 0;
$nbPostPerPage = (int) $gJConfig->havefnubb['posts_per_page'];
// 2- get the posts of the current forum, limited by point 1
// get all the posts of the current Forum by its Id
list($page, $nbPosts, $posts) = jClasses::getService('havefnubb~hfnuposts')->getThreads($id_forum, 0, $nbPostPerPage);
$first = true;
foreach ($posts as $post) {
if ($first) {
// le premier enregistrement permet de connaitre
// la date du channel
$rep->infos->updated = date('Y-m-d H:i:s', $post->date_created);
$rep->infos->published = date('Y-m-d H:i:s', $post->date_created);
$first = false;
}
$url = jUrl::getFull('havefnubb~posts:view', array('id_post' => $post->id_post, 'thread_id' => $post->thread_id, 'ftitle' => $post->forum_name, 'id_forum' => $post->id_forum, 'ptitle' => $post->subject));
$item = $rep->createItem($post->subject, $url, date('Y-m-d H:i:s', $post->date_created));
$item->authorName = $post->login;
$render = new jWiki();
$item->content = $render->render($post->message);
$item->contentType = 'html';
$item->idIsPermalink = true;
// on ajoute l'item dans le fil atom
$rep->addItem($item);
}
return $rep;
}
示例8: create
//.........这里部分代码省略.........
if (preg_match('/^(\\w{2,3})_\\w{2,3}$/', $paramStatic, $m)) {
$paramStatic = $m[1];
}
}
} elseif ($typePS == 'L') {
if ($paramStatic === null) {
$paramStatic = jApp::config()->locale;
} else {
if (preg_match('/^\\w{2,3}$/', $paramStatic, $m)) {
$paramStatic = jLocale::langToLocale($paramStatic);
}
}
}
}
if ($paramStatic != $v) {
$ok = false;
break;
}
}
if ($ok) {
$urlinfofound = $urlinfo[$i];
break;
}
}
if ($urlinfofound !== null) {
$urlinfo = $urlinfofound;
} else {
$urlinfo = $urlinfo[1];
}
}
$url->scriptName = jApp::config()->urlengine['basePath'] . $urlinfo[1];
if ($urlinfo[2]) {
$url->scriptName = jApp::coord()->request->getServerURI(true) . $url->scriptName;
}
if ($urlinfo[1] && !jApp::config()->urlengine['multiview']) {
$url->scriptName .= jApp::config()->urlengine['entrypointExtension'];
}
if (in_array($urlact->requestType, array('xmlrpc', 'jsonrpc', 'soap'))) {
$url->clearParam();
return $url;
}
if ($urlinfo[0] == 0) {
$s = new jSelectorUrlHandler($urlinfo[3]);
$c = $s->resource . 'UrlsHandler';
$handler = new $c();
$handler->create($urlact, $url);
if ($urlinfo[4] != '') {
$url->pathInfo = $urlinfo[4] . $url->pathInfo;
}
} elseif ($urlinfo[0] == 1) {
$pi = $urlinfo[5];
foreach ($urlinfo[3] as $k => $param) {
$typeParam = $urlinfo[4][$k];
$value = $url->getParam($param, '');
if ($typeParam & 2) {
$value = jUrl::escape($value, true);
} else {
if ($typeParam & 1) {
$value = str_replace('%2F', '/', urlencode($value));
} else {
if ($typeParam & 4) {
if ($value == '') {
$value = jLocale::getCurrentLang();
} else {
if (preg_match('/^(\\w{2,3})_\\w{2,3}$/', $value, $m)) {
$value = $m[1];
}
}
} else {
if ($typeParam & 8) {
if ($value == '') {
$value = jApp::config()->locale;
} else {
if (preg_match('/^\\w{2,3}$/', $value, $m)) {
$value = jLocale::langToLocale($value);
}
}
} else {
$value = urlencode($value);
}
}
}
}
$pi = str_replace(':' . $param, $value, $pi);
$url->delParam($param);
}
$url->pathInfo = $pi;
if ($urlinfo[6]) {
$url->setParam('action', $action);
}
foreach ($urlinfo[7] as $name => $value) {
$url->delParam($name);
}
} elseif ($urlinfo[0] == 3) {
if ($urlinfo[3]) {
$url->delParam('module');
}
}
return $url;
}