本文整理汇总了PHP中tester_url_absolue函数的典型用法代码示例。如果您正苦于以下问题:PHP tester_url_absolue函数的具体用法?PHP tester_url_absolue怎么用?PHP tester_url_absolue使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了tester_url_absolue函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: action_copier_local_post
/**
* http://code.spip.net/@action_copier_local_post
*
* @param $id_document
* @return bool|mixed|string
*/
function action_copier_local_post($id_document)
{
// Il faut la source du document pour le copier
$row = sql_fetsel("mode,fichier, descriptif, credits", "spip_documents", "id_document={$id_document}");
$source = $row['fichier'];
// si la source est bien un fichier distant
// sinon c'est une donnee moisie, on ne fait rien
if (tester_url_absolue($source)) {
include_spip('inc/distant');
// pour 'copie_locale'
$fichier = copie_locale($source);
if ($fichier and tester_url_absolue($source)) {
$fichier = _DIR_RACINE . $fichier;
$files[] = array('tmp_name' => $fichier, 'name' => basename($fichier));
$ajouter_documents = charger_fonction('ajouter_documents', 'action');
spip_log("convertit doc {$id_document} en local: {$source} => {$fichier}", "medias");
$liste = array();
$ajouter_documents($id_document, $files, '', 0, $row['mode'], $liste);
spip_unlink($fichier);
// ajouter l'origine du document aux credits
include_spip('action/editer_document');
document_modifier($id_document, array('credits' => ($row['credits'] ? $row['credits'] . ', ' : '') . $source));
return true;
} else {
spip_log("echec copie locale {$source}", "medias" . _LOG_ERREUR);
}
} else {
spip_log("echec copie locale {$source} n'est pas une URL distante", "medias" . _LOG_ERREUR);
}
return _T('medias:erreur_copie_fichier', array('nom' => $source));
}
示例2: securiser_redirect_action
function securiser_redirect_action($redirect){
if (tester_url_absolue($redirect) AND !defined('_AUTORISER_ACTION_ABS_REDIRECT')){
$base = $GLOBALS['meta']['adresse_site']."/";
// si l'url est une url du site, on la laisse passer sans rien faire
// c'est encore le plus simple
if (strlen($base) AND strncmp($redirect,$base,strlen($base))==0)
return $redirect;
else
return "";
}
return $redirect;
}
示例3: get_spip_doc
/**
* Donne le chemin complet du fichier
*
* @uses _DIR_IMG
*
* @param string $fichier
* @return bool|string
*/
function get_spip_doc($fichier)
{
// fichier distant
if (tester_url_absolue($fichier)) {
return $fichier;
}
// gestion d'erreurs, fichier=''
if (!strlen($fichier)) {
return false;
}
$fichier = strncmp($fichier, _DIR_IMG, strlen(_DIR_IMG)) != 0 ? _DIR_IMG . $fichier : $fichier;
// fichier normal
return $fichier;
}
示例4: spip_xml_load
/**
* Lit un fichier xml donné et renvoie son arbre.
*
* @example
* ```
* include_spip('inc/xml');
* $arbre = spip_xml_load(_DIR_PLUGINS . "$plug/plugin.xml");
* ```
*
* @uses spip_xml_parse()
*
* @param string $fichier
* Chemin local ou URL distante du fichier XML
* @param bool $strict
* true pour râler si une balise n'est pas correctement fermée, false sinon.
* @param bool $clean ?
* @param int $taille_max
* Taille maximale si fichier distant
* @param string|array $datas
* Données à envoyer pour récupérer le fichier distant
* @param int $profondeur ?
* @return array|bool
* - array : l'arbre XML,
* - false si l'arbre xml ne peut être créé ou est vide
**/
function spip_xml_load($fichier, $strict = true, $clean = true, $taille_max = 1048576, $datas = '', $profondeur = -1)
{
$contenu = "";
if (tester_url_absolue($fichier)) {
include_spip('inc/distant');
$contenu = recuperer_page($fichier, false, false, $taille_max, $datas);
} else {
lire_fichier($fichier, $contenu);
}
$arbre = array();
if ($contenu) {
$arbre = spip_xml_parse($contenu, $strict, $clean, $profondeur);
}
return count($arbre) ? $arbre : false;
}
示例5: securiser_redirect_action
function securiser_redirect_action($redirect)
{
if ((tester_url_absolue($redirect) or preg_match(',^\\w+:,', trim($redirect))) and !defined('_AUTORISER_ACTION_ABS_REDIRECT')) {
// si l'url est une url du site, on la laisse passer sans rien faire
// c'est encore le plus simple
$base = $GLOBALS['meta']['adresse_site'] . "/";
if (strlen($base) and strncmp($redirect, $base, strlen($base)) == 0) {
return $redirect;
}
$base = url_de_base();
if (strlen($base) and strncmp($redirect, $base, strlen($base)) == 0) {
return $redirect;
}
return "";
}
return $redirect;
}
示例6: formulaires_configurer_relayeur_verifier_dist
function formulaires_configurer_relayeur_verifier_dist()
{
$erreurs = array();
$http_proxy = relayeur_saisie_ou_config(_request('http_proxy'), lire_config('http_proxy', ''));
$http_noproxy = _request('http_noproxy');
if ($http_proxy and !tester_url_absolue($http_proxy)) {
$erreurs['http_proxy'] = _T('info_url_proxy_pas_conforme');
}
if (!isset($erreurs['http_proxy']) and _request('tester_proxy')) {
if (!$http_proxy) {
$erreurs['http_proxy'] = _T('info_obligatoire');
} else {
include_spip('inc/distant');
$test_proxy = _request('test_proxy');
$t = parse_url($test_proxy);
if (!@$t['host']) {
$erreurs['test_proxy'] = _T('info_adresse_non_indiquee');
} else {
include_spip('inc/texte');
// pour aide, couper, lang
$info = "";
if (!need_proxy($t['host'], $http_proxy, $http_noproxy)) {
$info = "<strong>" . _T('page_pas_proxy') . "</strong><br />";
}
// il faut fausser le proxy actuel pour faire le test !
$cur_http_proxy = $GLOBALS['meta']['http_proxy'];
$cur_http_noproxy = $GLOBALS['meta']['http_noproxy'];
$GLOBALS['meta']['http_proxy'] = $http_proxy;
$GLOBALS['meta']['http_noproxy'] = $http_noproxy;
$page = recuperer_page($test_proxy, true);
$GLOBALS['meta']['http_proxy'] = $cur_http_proxy;
$GLOBALS['meta']['http_noproxy'] = $cur_http_noproxy;
if ($page) {
$erreurs['message_ok'] = _T('info_proxy_ok') . "<br />{$info}\n<tt>" . couper(entites_html($page), 300) . "</tt>";
$erreurs['message_erreur'] = '';
} else {
$erreurs['message_erreur'] = $info . _T('info_impossible_lire_page', array('test_proxy' => "<tt>{$test_proxy}</tt>")) . " <b><tt>" . no_password_proxy_url($http_proxy) . "</tt></b>." . aide('confhttpproxy');
}
}
}
}
return $erreurs;
}
示例7: formulaires_configurer_compresseur_verifier_dist
/**
* Vérifications du formulaire de configuration du compresseur
*
* @return array
* Tableau des erreurs
**/
function formulaires_configurer_compresseur_verifier_dist()
{
$erreurs = array();
// les checkbox
foreach (array('auto_compress_js', 'auto_compress_css', 'auto_compress_closure') as $champ) {
if (_request($champ) != 'oui') {
set_request($champ, 'non');
}
}
if ($url = _request('url_statique_ressources')) {
$url = preg_replace(",/?\\s*\$,", "", $url);
if (!tester_url_absolue($url)) {
$protocole = explode('://', $GLOBALS['meta']['adresse_site']);
$protocole = reset($protocole);
$url = $protocole . "://{$url}";
}
set_request('url_statique_ressources', $url);
}
return $erreurs;
}
示例8: analyser_dtd_lexeme
function analyser_dtd_lexeme($dtd, &$dtc, $grammaire)
{
if (!preg_match(_REGEXP_ENTITY_DEF, $dtd, $m)) {
return -9;
}
list(, $s) = $m;
$n = $dtc->macros[$s];
if (is_array($n)) {
// en cas d'inclusion, l'espace de nom est le meme
// mais gaffe aux DTD dont l'URL est relative a l'engloblante
if ($n[0] == 'PUBLIC' and !tester_url_absolue($n[1])) {
$n[1] = substr($grammaire, 0, strrpos($grammaire, '/') + 1) . $n[1];
}
analyser_dtd($n[1], $n[0], $dtc);
}
return ltrim(substr($dtd, strlen($m[0])));
}
示例9: select_source
/**
* Aller chercher les donnees de la boucle DATA
* depuis une source
* {source format, [URL], [arg2]...}
*/
protected function select_source()
{
# un peu crado : avant de charger le cache il faut charger
# les class indispensables, sinon PHP ne saura pas gerer
# l'objet en cache ; cf plugins/icalendar
# perf : pas de fonction table_to_array ! (table est deja un array)
if (isset($this->command['sourcemode']) and !in_array($this->command['sourcemode'], array('table', 'array', 'tableau'))) {
charger_fonction($this->command['sourcemode'] . '_to_array', 'inc', true);
}
# le premier argument peut etre un array, une URL etc.
$src = $this->command['source'][0];
# avons-nous un cache dispo ?
$cle = null;
if (is_string($src)) {
$cle = 'datasource_' . md5($this->command['sourcemode'] . ':' . var_export($this->command['source'], true));
}
$cache = $this->cache_get($cle);
if (isset($this->command['datacache'])) {
$ttl = intval($this->command['datacache']);
}
if ($cache and $cache['time'] + (isset($ttl) ? $ttl : $cache['ttl']) > time() and !(_request('var_mode') === 'recalcul' and include_spip('inc/autoriser') and autoriser('recalcul'))) {
$this->tableau = $cache['data'];
} else {
try {
# dommage que ca ne soit pas une option de yql_to_array...
if ($this->command['sourcemode'] == 'yql') {
if (!isset($ttl)) {
$ttl = 3600;
}
}
if (isset($this->command['sourcemode']) and in_array($this->command['sourcemode'], array('table', 'array', 'tableau'))) {
if (is_array($a = $src) or is_string($a) and $a = str_replace('"', '"', $a) and is_array($a = @unserialize($a))) {
$this->tableau = $a;
}
} else {
if (tester_url_absolue($src)) {
include_spip('inc/distant');
$u = recuperer_page($src, false, false, _DATA_SOURCE_MAX_SIZE);
if (!$u) {
throw new Exception("404");
}
if (!isset($ttl)) {
$ttl = 24 * 3600;
}
} else {
if (@is_dir($src)) {
$u = $src;
if (!isset($ttl)) {
$ttl = 10;
}
} else {
if (@is_readable($src) && @is_file($src)) {
$u = spip_file_get_contents($src);
if (!isset($ttl)) {
$ttl = 10;
}
} else {
$u = $src;
if (!isset($ttl)) {
$ttl = 10;
}
}
}
}
if (!$this->err and $g = charger_fonction($this->command['sourcemode'] . '_to_array', 'inc', true)) {
$args = $this->command['source'];
$args[0] = $u;
if (is_array($a = call_user_func_array($g, $args))) {
$this->tableau = $a;
}
}
}
if (!is_array($this->tableau)) {
$this->err = true;
}
if (!$this->err and isset($ttl) and $ttl > 0) {
$this->cache_set($cle, $ttl);
}
} catch (Exception $e) {
$e = $e->getMessage();
$err = sprintf("[%s, %s] {$e}", $src, $this->command['sourcemode']);
erreur_squelette(array($err, array()));
$this->err = true;
}
}
# en cas d'erreur, utiliser le cache si encore dispo
if ($this->err and $cache) {
$this->tableau = $cache['data'];
$this->err = false;
}
}
示例10: recuperer_infos_distantes
/**
* Récupérer les infos d'un document distant, sans trop le télécharger
*
* @param string $source
* URL de la source
* @param int $max
* Taille maximum du fichier à télécharger
* @param bool $charger_si_petite_image
* Pour télécharger le document s'il est petit
* @return array
* Couples des informations obtenues parmis :
*
* - 'body' = chaine
* - 'type_image' = booleen
* - 'titre' = chaine
* - 'largeur' = intval
* - 'hauteur' = intval
* - 'taille' = intval
* - 'extension' = chaine
* - 'fichier' = chaine
* - 'mime_type' = chaine
**/
function recuperer_infos_distantes($source, $max = 0, $charger_si_petite_image = true)
{
// pas la peine de perdre son temps
if (!tester_url_absolue($source)) {
return false;
}
# charger les alias des types mime
include_spip('base/typedoc');
$a = array();
$mime_type = '';
// On va directement charger le debut des images et des fichiers html,
// de maniere a attrapper le maximum d'infos (titre, taille, etc). Si
// ca echoue l'utilisateur devra les entrer...
if ($headers = recuperer_page($source, false, true, $max, '', '', true)) {
list($headers, $a['body']) = preg_split(',\\n\\n,', $headers, 2);
if (preg_match(",\nContent-Type: *([^[:space:];]*),i", "\n{$headers}", $regs)) {
$mime_type = trim($regs[1]);
} else {
$mime_type = '';
}
// inconnu
// Appliquer les alias
while (isset($GLOBALS['mime_alias'][$mime_type])) {
$mime_type = $GLOBALS['mime_alias'][$mime_type];
}
// Si on a un mime-type insignifiant
// text/plain,application/octet-stream ou vide
// c'est peut-etre que le serveur ne sait pas
// ce qu'il sert ; on va tenter de detecter via l'extension de l'url
// ou le Content-Disposition: attachment; filename=...
$t = null;
if (in_array($mime_type, array('text/plain', '', 'application/octet-stream'))) {
if (!$t and preg_match(',\\.([a-z0-9]+)(\\?.*)?$,i', $source, $rext)) {
$t = sql_fetsel("extension", "spip_types_documents", "extension=" . sql_quote($rext[1], '', 'text'));
}
if (!$t and preg_match(",^Content-Disposition:\\s*attachment;\\s*filename=(.*)\$,Uims", $headers, $m) and preg_match(',\\.([a-z0-9]+)(\\?.*)?$,i', $m[1], $rext)) {
$t = sql_fetsel("extension", "spip_types_documents", "extension=" . sql_quote($rext[1], '', 'text'));
}
}
// Autre mime/type (ou text/plain avec fichier d'extension inconnue)
if (!$t) {
$t = sql_fetsel("extension", "spip_types_documents", "mime_type=" . sql_quote($mime_type));
}
// Toujours rien ? (ex: audio/x-ogg au lieu de application/ogg)
// On essaie de nouveau avec l'extension
if (!$t and $mime_type != 'text/plain' and preg_match(',\\.([a-z0-9]+)(\\?.*)?$,i', $source, $rext)) {
$t = sql_fetsel("extension", "spip_types_documents", "extension=" . sql_quote($rext[1], '', 'text'));
# eviter xxx.3 => 3gp (> SPIP 3)
}
if ($t) {
spip_log("mime-type {$mime_type} ok, extension " . $t['extension']);
$a['extension'] = $t['extension'];
} else {
# par defaut on retombe sur '.bin' si c'est autorise
spip_log("mime-type {$mime_type} inconnu");
$t = sql_fetsel("extension", "spip_types_documents", "extension='bin'");
if (!$t) {
return false;
}
$a['extension'] = $t['extension'];
}
if (preg_match(",\nContent-Length: *([^[:space:]]*),i", "\n{$headers}", $regs)) {
$a['taille'] = intval($regs[1]);
}
}
// Echec avec HEAD, on tente avec GET
if (!$a and !$max) {
spip_log("tenter GET {$source}");
$a = recuperer_infos_distantes($source, _INC_DISTANT_MAX_SIZE);
}
// si on a rien trouve pas la peine d'insister
if (!$a) {
return false;
}
// S'il s'agit d'une image pas trop grosse ou d'un fichier html, on va aller
// recharger le document en GET et recuperer des donnees supplementaires...
if (preg_match(',^image/(jpeg|gif|png|swf),', $mime_type)) {
if ($max == 0 and (empty($a['taille']) or $a['taille'] < _INC_DISTANT_MAX_SIZE) and isset($GLOBALS['meta']['formats_graphiques']) and strpos($GLOBALS['meta']['formats_graphiques'], $a['extension']) !== false and $charger_si_petite_image) {
//.........这里部分代码省略.........
示例11: formulaires_editer_auteur_verifier_dist
/**
* Vérifications du formulaire d'édition d'un auteur
*
* Vérifie en plus des vérifications prévues :
* - qu'un rédacteur ne peut pas supprimer son adresse mail,
* - que le mot de passe choisi n'est pas trop court et identique à sa
* deuxième saisie
*
* @see formulaires_editer_objet_verifier()
*
* @param int|string $id_auteur
* Identifiant de l'auteur. 'new' pour une nouvel auteur.
* @param string $retour
* URL de redirection après le traitement
* @param string $associer_objet
* Éventuel 'objet|x' indiquant de lier le mot créé à cet objet,
* tel que 'article|3'
* @param string $config_fonc
* Nom de la fonction ajoutant des configurations particulières au formulaire
* @param array $row
* Valeurs de la ligne SQL de l'auteur, si connu
* @param string $hidden
* Contenu HTML ajouté en même temps que les champs cachés du formulaire.
* @return array
* Erreurs des saisies
**/
function formulaires_editer_auteur_verifier_dist($id_auteur = 'new', $retour = '', $associer_objet = '', $config_fonc = 'auteurs_edit_config', $row = array(), $hidden = '')
{
// auto-renseigner le nom si il n'existe pas, sans couper
titre_automatique('nom', array('email', 'login'), 255);
// mais il reste obligatoire si on a rien trouve
$erreurs = formulaires_editer_objet_verifier('auteur', $id_auteur, array('nom'));
$auth_methode = sql_getfetsel('source', 'spip_auteurs', 'id_auteur=' . intval($id_auteur));
$auth_methode = $auth_methode ? $auth_methode : 'spip';
include_spip('inc/auth');
if (!nom_acceptable(_request('nom'))) {
$erreurs['nom'] = _T("info_nom_pas_conforme");
}
if ($email = _request('email')) {
include_spip('inc/filtres');
include_spip('inc/autoriser');
// un redacteur qui modifie son email n'a pas le droit de le vider si il y en avait un
if (!autoriser('modifier', 'auteur', $id_auteur, null, array('email' => '?')) and $GLOBALS['visiteur_session']['id_auteur'] == $id_auteur and !strlen(trim($email)) and $email != ($email_ancien = sql_getfetsel('email', 'spip_auteurs', 'id_auteur=' . intval($id_auteur)))) {
$erreurs['email'] = $id_auteur == $GLOBALS['visiteur_session']['id_auteur'] ? _T('form_email_non_valide') : _T('form_prop_indiquer_email');
} else {
if (!email_valide($email)) {
$erreurs['email'] = $id_auteur == $GLOBALS['visiteur_session']['id_auteur'] ? _T('form_email_non_valide') : _T('form_prop_indiquer_email');
}
}
# Ne pas autoriser d'avoir deux auteurs avec le même email
# cette fonctionalité nécessite que la base soit clean à l'activation : pas de
# doublon sur la requête select email,count(*) from spip_auteurs group by email ;
if (defined('_INTERDIRE_AUTEUR_MEME_EMAIL')) {
#Nouvel auteur
if (intval($id_auteur) == 0) {
#Un auteur existe deja avec cette adresse ?
if (sql_countsel("spip_auteurs", "email=" . sql_quote($email)) > 0) {
$erreurs['email'] = _T('erreur_email_deja_existant');
}
} else {
#Un auteur existe deja avec cette adresse ? et n'est pas le user courant.
if (sql_countsel("spip_auteurs", "email=" . sql_quote($email)) > 0 and $id_auteur != ($id_auteur_ancien = sql_getfetsel('id_auteur', 'spip_auteurs', "email=" . sql_quote($email)))) {
$erreurs['email'] = _T('erreur_email_deja_existant');
}
}
}
}
if ($url = _request('url_site') and !tester_url_absolue($url)) {
$erreurs['url_site'] = _T('info_url_site_pas_conforme');
}
$erreurs['message_erreur'] = '';
if ($err = auth_verifier_login($auth_methode, _request('new_login'), $id_auteur)) {
$erreurs['new_login'] = $err;
$erreurs['message_erreur'] .= $err;
} else {
// pass trop court ou confirmation non identique
if ($p = _request('new_pass')) {
if ($p != _request('new_pass2')) {
$erreurs['new_pass'] = _T('info_passes_identiques');
$erreurs['message_erreur'] .= _T('info_passes_identiques');
} elseif ($err = auth_verifier_pass($auth_methode, _request('new_login'), $p, $id_auteur)) {
$erreurs['new_pass'] = $err;
$erreurs['message_erreur'] .= $err;
}
}
}
if (!$erreurs['message_erreur']) {
unset($erreurs['message_erreur']);
}
return $erreurs;
}
示例12: taille_image
/**
* Retourne les tailles d'une image
*
* Pour les filtres `largeur` et `hauteur`
*
* @param string $img
* Balise HTML `<img ... />` ou chemin de l'image (qui peut être une URL distante).
* @return array
* Liste (hauteur, largeur) en pixels
**/
function taille_image($img)
{
static $largeur_img = array(), $hauteur_img = array();
$srcWidth = 0;
$srcHeight = 0;
$logo = extraire_attribut($img, 'src');
if (!$logo) {
$logo = $img;
} else {
$srcWidth = extraire_attribut($img, 'width');
$srcHeight = extraire_attribut($img, 'height');
}
// ne jamais operer directement sur une image distante pour des raisons de perfo
// la copie locale a toutes les chances d'etre la ou de resservir
if (tester_url_absolue($logo)) {
include_spip('inc/distant');
$fichier = copie_locale($logo);
$logo = $fichier ? _DIR_RACINE . $fichier : $logo;
}
if (($p = strpos($logo, '?')) !== FALSE) {
$logo = substr($logo, 0, $p);
}
$srcsize = false;
if (isset($largeur_img[$logo])) {
$srcWidth = $largeur_img[$logo];
}
if (isset($hauteur_img[$logo])) {
$srcHeight = $hauteur_img[$logo];
}
if (!$srcWidth or !$srcHeight) {
if (file_exists($logo) and $srcsize = @getimagesize($logo)) {
if (!$srcWidth) {
$largeur_img[$logo] = $srcWidth = $srcsize[0];
}
if (!$srcHeight) {
$hauteur_img[$logo] = $srcHeight = $srcsize[1];
}
} elseif (@file_exists($f = "{$logo}.src") and lire_fichier($f, $valeurs) and $valeurs = unserialize($valeurs)) {
if (!$srcWidth) {
$largeur_img[$logo] = $srcWidth = $valeurs["largeur_dest"];
}
if (!$srcHeight) {
$hauteur_img[$logo] = $srcHeight = $valeurs["hauteur_dest"];
}
}
}
return array($srcHeight, $srcWidth);
}
示例13: player_post_propre
/**
* enclosures
* ajout d'un rel="enclosure" sur les liens mp3 absolus
* appele en pipeline apres propre pour traiter les [mon son->http://monsite/mon_son.mp3]
* peut etre appele dans un squelette apres |liens_absolus
*
* @param $texte
* @return mixed
*/
function player_post_propre($texte)
{
$reg_formats = "mp3";
// plus vite
if (stripos($texte, ".{$reg_formats}") !== false and stripos($texte, "<a") !== false) {
$cfg = unserialize($GLOBALS['meta']['player']);
// insertion du mini-player inline
if (isset($cfg['insertion_auto']) and in_array('inline_mini', $cfg['insertion_auto'])) {
$texte = preg_replace_callback(",<a(\\s[^>]*href=['\"]?(http://[a-zA-Z0-9\\s()\\/\\:\\._%\\?+'=~-]*\\.({$reg_formats}))['\"]?[^>]*)>,Uims", 'player_enclose_link', $texte);
}
if (isset($cfg['insertion_auto']) and in_array('player_end', $cfg['insertion_auto'])) {
preg_match_all(",<a(\\s[^>]*href=['\"]?(http://[a-zA-Z0-9\\s()\\/\\:\\._%\\?+'=~-]*\\.({$reg_formats}))['\"]?[^>]*)>(.*)</a>,Uims", $texte, $matches, PREG_SET_ORDER);
if (count($matches)) {
foreach ($matches as $m) {
$url = $m[2];
$titre = $m[4];
$titre = (!strlen(textebrut($titre)) or tester_url_absolue($titre)) ? player_joli_titre($url) : $titre;
$emb = recuperer_fond("modeles/player", array('url_document' => $url, 'titre' => $titre));
if ($wrap_embed_html = charger_fonction("wrap_embed_html", "inc", true)) {
$emb = $wrap_embed_html(' ', $emb);
}
$texte .= $emb;
}
}
}
}
return $texte;
}
示例14: appliquer_adresse_site
/**
* Mettre à jour l'adresse du site à partir d'une valeur saisie
* (ou auto détection si vide)
*
* @param string $adresse_site
* @return string
*/
function appliquer_adresse_site($adresse_site)
{
if ($adresse_site !== NULL) {
if (!strlen($adresse_site)) {
$GLOBALS['profondeur_url'] = _DIR_RESTREINT ? 0 : 1;
$adresse_site = url_de_base();
}
$adresse_site = preg_replace(",/?\\s*\$,", "", $adresse_site);
if (!tester_url_absolue($adresse_site)) {
$adresse_site = "http://{$adresse_site}";
}
ecrire_meta('adresse_site', $adresse_site);
}
return $adresse_site;
}
示例15: formulaires_login_traiter_dist
function formulaires_login_traiter_dist($cible="",$login="",$prive=null){
$res = array();
// Si on se connecte dans l'espace prive,
// ajouter "bonjour" (repere a peu pres les cookies desactives)
if (is_null($prive) ? is_url_prive($cible) : $prive) {
$cible = parametre_url($cible, 'bonjour', 'oui', '&');
}
if ($cible=='@page_auteur')
$cible = generer_url_entite($GLOBALS['auteur_session']['id_auteur'],'auteur');
if ($cible) {
$cible = parametre_url($cible, 'var_login', '', '&');
// transformer la cible absolue en cible relative
// pour pas echouer quand la meta adresse_site est foireuse
if (strncmp($cible,$u = url_de_base(),strlen($u))==0){
$cible = "./".substr($cible,strlen($u));
}
// si c'est une url absolue, refuser la redirection
// sauf si cette securite est levee volontairement par le webmestre
elseif (tester_url_absolue($cible) AND !defined('_AUTORISER_LOGIN_ABS_REDIRECT')) {
$cible = "";
}
}
// Si on est admin, poser le cookie de correspondance
if ($GLOBALS['auteur_session']['statut'] == '0minirezo') {
include_spip('inc/cookie');
spip_setcookie('spip_admin', '@'.$GLOBALS['auteur_session']['login'],
time() + 7 * 24 * 3600);
}
// Si on est connecte, envoyer vers la destination
if ($cible AND ($cible!=self())) {
if (!headers_sent() AND !$_GET['var_mode']) {
include_spip('inc/headers');
$res['redirect'] = $cible;
} else {
$res['message_ok'] .= inserer_attribut(
"<a>" . _T('login_par_ici') . "</a>",
'href', $cible
);
}
}
return $res;
}