• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

PHP extraire_balises函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了PHP中extraire_balises函数的典型用法代码示例。如果您正苦于以下问题:PHP extraire_balises函数的具体用法?PHP extraire_balises怎么用?PHP extraire_balises使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。



在下文中一共展示了extraire_balises函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的PHP代码示例。

示例1: ogone_form_sha_in

/**
 * signer le contexte du formulaire
 * s'applique sur le html pour permettre sa personalisation
 *
 * @param string $texte
 * @param array $config
 * @return string
 */
function ogone_form_sha_in($texte, $config = null)
{
    // ne rien faire si pas de config
    if (!$config) {
        return $texte;
    }
    $forms = extraire_balises($texte, "form");
    foreach ($forms as $form) {
        $form_s = $form;
        $input = extraire_balises($form, "input");
        $args = array();
        foreach ($input as $i) {
            if (extraire_attribut($i, 'type') == 'hidden') {
                $name = extraire_attribut($i, 'name');
                $value = extraire_attribut($i, 'value');
                // si jamais on applique 2 fois, supprimer la signature precedement calculee
                if ($name == "SHASign") {
                    $form_s = str_replace($i, "", $form_s);
                } else {
                    $args[$name] = $value;
                }
            }
        }
        $s = ogone_sha_in($args, $config);
        $form_s = str_replace(end($input), end($input) . "<input type='hidden' name='SHASign' value='{$s}' />", $form_s);
        $texte = str_replace($form, $form_s, $texte);
    }
    return $texte;
}
开发者ID:nursit,项目名称:bank,代码行数:37,代码来源:acte.php


示例2: navbar_responsive

/**
 * Ajouter le markup html pour une navbar responsive
 * [<div class="navbar navbar-inverse navbar-responsive" id="nav">
 * (#INCLURE{fond=inclure/nav,env}|navbar_responsive)
 * </div>]
 *
 * @param string $nav
 * @param string $class_collapse nom de la class à plier/déplier
 * @return string
 */
function navbar_responsive($nav, $class_collapse = 'nav-collapse-main')
{
    if (strpos($nav, 'nav-collapse') !== false) {
        return $nav;
    }
    $respnav = '';
    $uls = extraire_balises($nav, "ul");
    $n = 1;
    while ($ul = array_shift($uls) and strpos(extraire_attribut($ul, "class"), "nav") === false) {
        $n++;
    }
    if ($ul) {
        $respnav = $nav;
        $p = strpos($respnav, $ul);
        $respnav = substr_replace($respnav, '<a class="btn btn-navbar" data-toggle="collapse" data-target=".' . $class_collapse . '">' . '<span class="icon-bar"></span><span class="icon-bar"></span><span class="icon-bar"></span></a>' . "\n" . '<div class="nav-collapse ' . $class_collapse . ' collapse">', $p, 0);
        $l = strlen($respnav);
        $p = $l - 1;
        while ($n--) {
            $p = strrpos($respnav, "</ul>", $p - $l);
        }
        if ($p) {
            $respnav = substr_replace($respnav, '</div>', $p + 5, 0);
        } else {
            $respnav = $nav;
        }
    }
    return $respnav;
}
开发者ID:RadioCanut,项目名称:site-radiocanut,代码行数:38,代码来源:bootstrap_fonctions.php


示例3: inc_safehtml_dist

function inc_safehtml_dist($t) {
	static $process, $test;

	if (!$test) {
		$process = false;
		if ($f = find_in_path('lib/safehtml/classes')) {
			define('XML_HTMLSAX3', $f.'/');
			require_once XML_HTMLSAX3.'safehtml.php';
			$process = new safehtml();
			$process->deleteTags[] = 'param'; // sinon bug Firefox
		}
		if ($process)
			$test = 1; # ok
		else
			$test = -1; # se rabattre sur une fonction de securite basique
	}

	if ($test > 0) {
		# autoriser des trucs
		# ex: l'embed de youtube
		if (
		false !== strpos($t, 'iframe')) {
			foreach (extraire_balises($t, 'iframe') as $iframe) {
				if (preg_match(',^http://(www\.)?(youtube\.com|(player\.)?vimeo\.com)/.*,', extraire_attribut($iframe, 'src'))) {
					$re = '___IFRAME___'.md5($iframe);
					$ok[$re] = $iframe;
					$t = str_replace($iframe, $re, $t);
				}
			}
		}

		# reset ($process->clear() ne vide que _xhtml...),
		# on doit pouvoir programmer ca plus propremement
		$process->_counter = array();
		$process->_stack = array();
		$process->_dcCounter = array();
		$process->_dcStack = array();
		$process->_listScope = 0;
		$process->_liStack = array();
#		$process->parse(''); # cas particulier ?
		$process->clear();
		$t = $process->parse($t);

		# reinserer les trucs autorises
		if ($ok)
		foreach ($ok as $re => $v)
			$t = str_replace($re, $v, $t);
	}
	else
		$t = entites_html($t); // tres laid, en cas d'erreur

	return $t;
}
开发者ID:rhertzog,项目名称:lcs,代码行数:53,代码来源:safehtml.php


示例4: skeleditor_extraire_css

function skeleditor_extraire_css($texte){
	$url_base = url_de_base();
	$url_page = substr(generer_url_public('A'), 0, -1);
	$dir = preg_quote($url_page,',').'|'.preg_quote(preg_replace(",^$url_base,",_DIR_RACINE,$url_page),',');

	$css = array();
	// trouver toutes les css pour les afficher dans le bouton
	// repris du compresseur
	foreach (extraire_balises($texte, 'link') as $s) {
		if (extraire_attribut($s, 'rel') === 'stylesheet'
		AND (!($type = extraire_attribut($s, 'type'))
			OR $type == 'text/css')
		AND !strlen(strip_tags($s))
		AND $src = preg_replace(",^$url_base,",_DIR_RACINE,extraire_attribut($s, 'href'))
		AND (
			// regarder si c'est du format spip.php?page=xxx
			preg_match(',^('.$dir.')(.*)$,', $src, $r)
			OR (
				// ou si c'est un fichier
				// enlever un timestamp eventuel derriere un nom de fichier statique
				$src2 = preg_replace(",[.]css[?].+$,",'.css',$src)
				// verifier qu'il n'y a pas de ../ ni / au debut (securite)
				AND !preg_match(',(^/|\.\.),', substr($src2,strlen(_DIR_RACINE)))
				// et si il est lisible
				AND @is_readable($src2)
			)
		)) {
			if ($r)
				$css[$s] = explode('&',
					str_replace('&amp;', '&', $r[2]), 2);
			else{
				$file = preg_replace(",[?]\d+$,","",$src);
				if (strncmp($file,_DIR_VAR,strlen(_DIR_VAR))==0){
					lire_fichier($file,$c);
					if (preg_match(",^\/\*\s*(#@.*)\s*\*\/,Uims",$c,$m)){
						$inc = explode("#@",$m[1]);
						$inc = array_map('trim',$inc);
						$inc = array_filter($inc);
						foreach($inc as $i){
							if (!in_array($i,$css))
								$css["$s:$i"] = $i;
						}
					}
				}
				else
					$css[$s] = $file;
			}
		}
	}
	return $css;
}
开发者ID:samszo,项目名称:open-edition,代码行数:51,代码来源:skeleditor_options.php


示例5: ogone_form_sha_in

/**
 * signer le contexte du formulaire
 * s'applique sur le html pour permettre sa personalisation
 * 
 * @param string $texte
 */
function ogone_form_sha_in($texte)
{
    $form = extraire_balise($texte, "form");
    $input = extraire_balises($form, "input");
    $args = array();
    foreach ($input as $i) {
        if (extraire_attribut($i, 'type') == 'hidden') {
            $name = extraire_attribut($i, 'name');
            $value = extraire_attribut($i, 'value');
            $args[$name] = $value;
        }
    }
    $s = ogone_sha_in($args);
    $texte = str_replace(end($input), end($input) . "<input type='hidden' name='SHASign' value='{$s}' />", $texte);
    return $texte;
}
开发者ID:rougerose,项目名称:bank,代码行数:22,代码来源:acte.php


示例6: filtre_photoswipe_preparer

function filtre_photoswipe_preparer($texte)
{
    foreach (extraire_balises($texte, 'img') as $img) {
        if ($src = extraire_attribut($img, 'src') and !extraire_attribut($img, 'data-photo')) {
            $l = largeur($img);
            $h = hauteur($img);
            if ($l > 500 or $h > 300) {
                // pour echapper à la ligne de filtres_images_lib_mini qui remplace tout:
                // `$tag = str_replace($src,$surcharge['src'],$tag);`
                $photo_src = str_replace('.', '__.__', $src);
                $img2 = inserer_attribut($img, 'data-photo', $photo_src);
                $img2 = inserer_attribut($img2, 'data-photo-w', $l);
                $img2 = inserer_attribut($img2, 'data-photo-h', $h);
                $texte = str_replace($img, $img2, $texte);
            }
        }
    }
    return $texte;
}
开发者ID:RadioCanut,项目名称:site-radiocanut,代码行数:19,代码来源:photoswipe_pipelines.php


示例7: podcast_post_syndication

function podcast_post_syndication($flux)
{
    include_spip("inc/filtres");
    $enclosures = extraire_balises($flux["data"]["enclosures"], "a");
    $date = date("Y-m-d h:i:s", $flux["data"]["date"]);
    if (!$date) {
        $date = date("Y-m-d h:i:s");
    }
    if (is_array($enclosures) and sizeof($enclosures) > 0) {
        foreach ($enclosures as $link) {
            if (extraire_attribut($link, 'type') == "audio/mpeg" or extraire_attribut($link, 'type') == "audio/mp3") {
                $liens[] = extraire_attribut($link, 'href');
            }
        }
    }
    if (is_array($liens) and sizeof($liens) > 0) {
        inserer_document_syndic_article($liens, $flux['args']['id_objet'], $date, $flux["data"]["titre"]);
    } else {
        include_spip("inc/utils");
        // lancer une tache cron de scan
        $id_job = job_queue_add('radiobot_scan', "Scan de " . $flux['args']['id_objet'] . " : " . $flux["data"]["titre"], $arguments = array($flux['args']['id_objet'], $flux["data"]["titre"], $flux['data']['url'], $date), 'podcast_pipelines', $no_duplicate = FALSE, strtotime("+10 seconds"), $priority = 0);
    }
    return $flux;
}
开发者ID:BoOz,项目名称:podcast_client,代码行数:24,代码来源:podcast_pipelines.php


示例8: get_feed_from_url

/**
 * fonction sans finesse mais efficace
 * on parcourt ligne par ligne a la recherche de balise <a> ou <link>
 * si dans le corps de celle-ci on trouve les mots rss, xml, atom ou rdf
 * alors on recupere la valeur href='<url>', on adapte celle-ci si elle
 * est relative et on verifie que c'est bien un feed si oui on l'ajoute
 * au tableau des feed si on ne trouve rien ou si aucun feed est trouve on retourne 
 * un tableau vide
 * 
 * @param string $url
 * 		L'URL à analyser
 * @param $buffer
 * @return array $feed_list
 * 		Le tableau des feed trouvés dans la page
 */
function get_feed_from_url($url, $buffer = false)
{
    global $verif_complete;
    //j'ai prevenu ce sera pas fin
    if (!preg_match("/^http:\\/\\/.*/", $url)) {
        $url = "http://www." . $url;
    }
    if (!$buffer) {
        $buffer = @file_get_contents($url);
    }
    include_spip("inc/filtres");
    $feed_list = array();
    //extraction des <link>
    if ($links = extraire_balises($buffer, "link")) {
        //y a t-y rss atom rdf ou xml dans ces balises
        foreach ($links as $link) {
            if ((strpos($link, "rss") || strpos($link, "rdf") || strpos($link, "atom") || strpos($link, "xml")) && (!strpos($link, 'opensearch') && !strpos($link, 'oembed'))) {
                //voila un candidat on va extraire sa partie href et la placer dans notre tableau
                if ($href = extraire_attribut($link, "href")) {
                    //on aura pris soin de verifier si ce lien est relatif d'en faire un absolu
                    $href = suivre_lien($url, $href);
                    if (!$verif_complete or is_feed($href)) {
                        $feed_list[] = $href;
                    }
                }
            }
        }
    }
    //extraction des <a>
    if ($links = extraire_balises($buffer, "a")) {
        //y a t-y rss atom rdf ou xml dans ces balises
        foreach ($links as $link) {
            if ((strpos($link, "rss") || strpos($link, "rdf") || strpos($link, "atom") || strpos($link, "xml")) && (!strpos($link, 'opensearch') && !strpos($link, 'oembed'))) {
                //voila un candidat on va extraire sa partie href et la placer dans notre tableau
                if ($href = extraire_attribut($link, "href")) {
                    //on aura pris soin de verifier si ce lien est relatif d'en faire un absolu
                    $href = suivre_lien($url, $href);
                    if (!$verif_complete or is_feed($href)) {
                        $feed_list[] = $href;
                    }
                }
            }
        }
    }
    // si c'est un site SPIP, tentons l'url connue
    if (!count($feed_list) and (strpos($url, "spip") or stripos($buffer, "spip"))) {
        $href = suivre_lien($url, "spip.php?page=backend");
        if (is_feed($href)) {
            $feed_list[] = $href;
        }
    }
    return $feed_list;
}
开发者ID:loorenzooo,项目名称:aslfc,代码行数:68,代码来源:feedfinder.php


示例9: cvtconf_formulaires_configurer_recense

/**
 * Retrouver les champs d'un formulaire en parcourant son squelette
 * et en extrayant les balises input, textarea, select
 *
 * @param string $form
 * @return array
 */
function cvtconf_formulaires_configurer_recense($form)
{
    $valeurs = array('editable' => ' ');
    // sinon cas analyse du squelette
    if ($f = find_in_path($form . '.' . _EXTENSION_SQUELETTES, 'formulaires/') and lire_fichier($f, $contenu)) {
        for ($i = 0; $i < 2; $i++) {
            // a la seconde iteration, evaluer le fond avec les valeurs deja trouvees
            // permet de trouver aussi les name="#GET{truc}"
            if ($i == 1) {
                $contenu = recuperer_fond("formulaires/{$form}", $valeurs);
            }
            $balises = array_merge(extraire_balises($contenu, 'input'), extraire_balises($contenu, 'textarea'), extraire_balises($contenu, 'select'));
            foreach ($balises as $b) {
                if ($n = extraire_attribut($b, 'name') and preg_match(",^([\\w\\-]+)(\\[\\w*\\])?\$,", $n, $r) and !in_array($n, array('formulaire_action', 'formulaire_action_args')) and extraire_attribut($b, 'type') !== 'submit') {
                    $valeurs[$r[1]] = '';
                    // recuperer les valeurs _meta_xx qui peuvent etre fournies
                    // en input hidden dans le squelette
                    if (strncmp($r[1], '_meta_', 6) == 0) {
                        $valeurs[$r[1]] = extraire_attribut($b, 'value');
                    }
                }
            }
        }
    }
    cvtconf_configurer_lire_meta($form, $valeurs);
    return $valeurs;
}
开发者ID:loorenzooo,项目名称:aslfc,代码行数:34,代码来源:cvt_configurer.php


示例10: email_notification_forum

/**
 * Construitre l'email personalise de notification d'un forum
 *
 * @param array $t
 * @param string $email
 * @return string
 */
function email_notification_forum ($t, $email) {
	static $contexte = array();

	if(!isset($contexte[$t['id_forum']])){
		$url = '';
		$id_forum = $t['id_forum'];

		if ($t['statut'] == 'prive') # forum prive
		{
			if ($t['id_article'])
				$url = generer_url_ecrire('articles', 'id_article='.$t['id_article']).'#id'.$id_forum;
			else if ($t['id_breve'])
				$url = generer_url_ecrire('breves_voir', 'id_breve='.$t['id_breve']).'#id'.$id_forum;
			else if ($t['id_syndic'])
				$url = generer_url_ecrire('sites', 'id_syndic='.$t['id_syndic']).'#id'.$id_forum;
		}
		else if ($t['statut'] == 'privrac') # forum general
		{
			$url = generer_url_ecrire('forum').'#id'.$id_forum;
		}
		else if ($t['statut'] == 'privadm') # forum des admins
		{
			$url = generer_url_ecrire('forum_admin').'#id'.$id_forum;
		}
		else if ($t['statut'] == 'publie') # forum publie
		{
			$url = generer_url_entite($id_forum, 'forum');
		}
		else #  forum modere, spam, poubelle direct ....
		{
			$url = generer_url_ecrire('controle_forum', "debut_id_forum=".$id_forum);
		}

		if (!$url) {
			spip_log("forum $id_forum sans referent",'notifications');
			$url = './';
		}
		if ($t['id_article']) {
			$titre = sql_getfetsel("titre", "spip_articles", "id_article=".sql_quote($t['id_article']));
		}
		if ($t['id_message']) {
			$titre = sql_getfetsel("titre", "spip_messages", "id_message=".sql_quote($t['id_message']));
		}

		$t['titre_source'] = $titre;
		$t['url'] = $url;

		// detecter les url des liens du forum
		// pour la moderation (permet de reperer les SPAMS avec des liens caches)
		$links = array();
		foreach ($t as $champ)
			$links = $links + extraire_balises($champ,'a');
		$links = extraire_attribut($links,'href');
		$links = implode("\n",$links);
		$t['liens'] = $links;

		$contexte[$t['id_forum']] = $t;
	}

	$t = $contexte[$t['id_forum']];
		// Rechercher eventuellement la langue du destinataire
	if (NULL !== ($l = sql_getfetsel('lang', 'spip_auteurs', "email=" . sql_quote($email))))
		$l = lang_select($l);

	$parauteur = (strlen($t['auteur']) <= 2) ? '' :
		(" " ._T('forum_par_auteur', array(
			'auteur' => $t['auteur'])
		) .
		 ($t['email_auteur'] ? ' <' . $t['email_auteur'] . '>' : ''));

	$titre = textebrut(typo($t['titre_source']));
	$forum_poste_par = ($t['id_article']
		? _T('forum_poste_par', array(
			'parauteur' => $parauteur, 'titre' => $titre))
		: $parauteur . ' (' . $titre . ')');

	$t['par_auteur'] = $forum_poste_par;

	$envoyer_mail = charger_fonction('envoyer_mail','inc'); // pour nettoyer_titre_email
	$corps = recuperer_fond("notifications/forum_poste",$t);

	if ($l)
		lang_select();

	return $corps;
}
开发者ID:rhertzog,项目名称:lcs,代码行数:93,代码来源:notifications.php


示例11: chercher_enclosures_zip

function chercher_enclosures_zip($rss, $desc = '') {
	$liste = array();
	include_spip('inc/syndic');
	foreach(analyser_backend($rss) as $item){
		if ($item['enclosures']
		AND $zips = extraire_balises($item['enclosures'], 'a')){
			if ($img = extraire_balise($item['descriptif'], 'img')
			  AND $src = extraire_attribut($img, 'src')) {
				$item['icon'] = $src;
			}
			foreach ($zips as $zip)
				if (extraire_attribut($zip, 'type') == 'application/zip') {
					if ($url = extraire_attribut($zip, 'href')) {
						$liste[$url] = array($item['titre'], $item['url']);
						if ($desc===true OR $desc == $url)
							$liste[$url][] = $item;
					}
				}
		}
	}
	spip_log(count($liste).' enclosures au format zip');
	return $liste;
}
开发者ID:rhertzog,项目名称:lcs,代码行数:23,代码来源:charger_plugin.php


示例12: page_base_href

function page_base_href(&$texte)
{
    static $set_html_base = null;
    if (is_null($set_html_base)) {
        if (!defined('_SET_HTML_BASE')) {
            $set_html_base = ($GLOBALS['profondeur_url'] >= (_DIR_RESTREINT ? 1 : 2) and _request(_SPIP_PAGE) !== 'login' and !_request('action')) ? true : false;
        } else {
            $set_html_base = _SET_HTML_BASE;
        }
    }
    if ($set_html_base and isset($GLOBALS['html']) and $GLOBALS['html'] and $GLOBALS['profondeur_url'] > 0 and ($poshead = strpos($texte, '</head>')) !== false) {
        $head = substr($texte, 0, $poshead);
        $insert = false;
        if (strpos($head, '<base') === false) {
            $insert = true;
        } else {
            // si aucun <base ...> n'a de href c'est bon quand meme !
            $insert = true;
            include_spip('inc/filtres');
            $bases = extraire_balises($head, 'base');
            foreach ($bases as $base) {
                if (extraire_attribut($base, 'href')) {
                    $insert = false;
                }
            }
        }
        if ($insert) {
            include_spip('inc/filtres_mini');
            // ajouter un base qui reglera tous les liens relatifs
            $base = url_absolue('./');
            $bbase = "\n<base href=\"{$base}\" />";
            if (($pos = strpos($head, '<head>')) !== false) {
                $head = substr_replace($head, $bbase, $pos + 6, 0);
            } elseif (preg_match(",<head[^>]*>,i", $head, $r)) {
                $head = str_replace($r[0], $r[0] . $bbase, $head);
            }
            $texte = $head . substr($texte, $poshead);
            // gerer les ancres
            $base = $_SERVER['REQUEST_URI'];
            if (strpos($texte, "href='#") !== false) {
                $texte = str_replace("href='#", "href='{$base}#", $texte);
            }
            if (strpos($texte, "href=\"#") !== false) {
                $texte = str_replace("href=\"#", "href=\"{$base}#", $texte);
            }
        }
    }
}
开发者ID:xablen,项目名称:Semaine14_SPIP_test,代码行数:48,代码来源:assembler.php


示例13: analyser_backend

function analyser_backend($rss, $url_syndic = '')
{
    include_spip('inc/texte');
    # pour couper()
    $rss = pipeline('pre_syndication', $rss);
    // si true, les URLs de type feedburner sont dereferencees
    define('_SYNDICATION_DEREFERENCER_URL', false);
    // Echapper les CDATA
    cdata_echappe($rss, $echappe_cdata);
    // supprimer les commentaires
    $rss = preg_replace(',<!--.*-->,Ums', '', $rss);
    // simplifier le backend, en supprimant les espaces de nommage type "dc:"
    $rss = preg_replace(',<(/?)(dc):,i', '<\\1', $rss);
    // chercher auteur/lang dans le fil au cas ou les items n'en auraient pas
    list($header) = preg_split(',<(item|entry)\\b,', $rss, 2);
    if (preg_match_all(',<(author|creator)\\b(.*)</\\1>,Uims', $header, $regs, PREG_SET_ORDER)) {
        $les_auteurs_du_site = array();
        foreach ($regs as $reg) {
            $nom = $reg[2];
            if (preg_match(',<name>(.*)</name>,Uims', $nom, $reg)) {
                $nom = $reg[1];
            }
            $les_auteurs_du_site[] = trim(textebrut(filtrer_entites($nom)));
        }
        $les_auteurs_du_site = join(', ', array_unique($les_auteurs_du_site));
    } else {
        $les_auteurs_du_site = '';
    }
    if (preg_match(',<([^>]*xml:)?lang(uage)?' . '>([^<>]+)<,i', $header, $match) and $l = $match[3] or $l = extraire_attribut(extraire_balise($header, 'feed'), 'xml:lang')) {
        $langue_du_site = $l;
    } elseif (preg_match(',<feed\\s[^>]*xml:lang=[\'"]([^<>\'"]+)[\'"],i', $header, $match)) {
        $langue_du_site = $match[1];
    }
    // Recuperer les blocs item et entry
    $items = array_merge(extraire_balises($rss, 'item'), extraire_balises($rss, 'entry'));
    //
    // Analyser chaque <item>...</item> du backend et le transformer en tableau
    //
    if (!count($items)) {
        return _T('sites:avis_echec_syndication_01');
    }
    foreach ($items as $item) {
        $data = array();
        // URL (semi-obligatoire, sert de cle)
        // guid n'est un URL que si marque de <guid ispermalink="true"> ;
        // attention la valeur par defaut est 'true' ce qui oblige a quelque
        // gymnastique
        if (preg_match(',<guid.*>[[:space:]]*(https?:[^<]*)</guid>,Uims', $item, $regs) and preg_match(',^(true|1)?$,i', extraire_attribut($regs[0], 'ispermalink'))) {
            $data['url'] = $regs[1];
        } else {
            if (_SYNDICATION_DEREFERENCER_URL and preg_match(',<feedburner:origLink>(.*)<,Uims', $item, $regs)) {
                $data['url'] = $regs[1];
            } else {
                if (preg_match(',<link[^>]*[[:space:]]rel=["\']?alternate[^>]*>(.*)</link>,Uims', $item, $regs)) {
                    $data['url'] = $regs[1];
                } else {
                    if (preg_match(',<link[^>]*[[:space:]]rel=.alternate[^>]*>,Uims', $item, $regs)) {
                        $data['url'] = extraire_attribut($regs[0], 'href');
                    } else {
                        if (preg_match(',<link[^>]*>\\s*([^\\s]+)\\s*</link>,Uims', $item, $regs)) {
                            $data['url'] = $regs[1];
                        } else {
                            if (preg_match(',<link[^>]*>,Uims', $item, $regs)) {
                                $data['url'] = extraire_attribut($regs[0], 'href');
                            } else {
                                if (preg_match(',<enclosure[^>]*>,ims', $item, $regs) and $url = extraire_attribut($regs[0], 'url')) {
                                    $data['url'] = $url;
                                } else {
                                    $data['url'] = '';
                                }
                            }
                        }
                    }
                }
            }
        }
        // Titre (semi-obligatoire)
        if (preg_match(",<title[^>]*>(.*?)</title>,ims", $item, $match)) {
            $data['titre'] = $match[1];
        } else {
            if (preg_match(',<link[[:space:]][^>]*>,Uims', $item, $mat) and $title = extraire_attribut($mat[0], 'title')) {
                $data['titre'] = $title;
            }
        }
        if (!strlen($data['titre'] = trim($data['titre']))) {
            $data['titre'] = _T('ecrire:info_sans_titre');
        }
        // Date
        $la_date = '';
        if (preg_match(',<(published|modified|issued)>([^<]*)<,Uims', $item, $match)) {
            cdata_echappe_retour($match[2], $echappe_cdata);
            $la_date = my_strtotime($match[2], $langue_du_site);
        }
        if (!$la_date and preg_match(',<(pubdate)>([^<]*)<,Uims', $item, $match)) {
            cdata_echappe_retour($match[2], $echappe_cdata);
            $la_date = my_strtotime($match[2], $langue_du_site);
        }
        if (!$la_date and preg_match(',<([a-z]+:date)>([^<]*)<,Uims', $item, $match)) {
            cdata_echappe_retour($match[2], $echappe_cdata);
            $la_date = my_strtotime($match[2], $langue_du_site);
//.........这里部分代码省略.........
开发者ID:genma,项目名称:spip_ynh,代码行数:101,代码来源:syndic.php


示例14: compresseur_extraire_balises_js_dist

/**
 * Extraire les balises JS à compacter
 * 
 * @param string $flux
 *     Contenu HTML dont on extrait les balises CSS
 * @param string $url_base
 * @return array
 *     Couples (balise => src)
 */
function compresseur_extraire_balises_js_dist($flux, $url_base)
{
    $balises = extraire_balises($flux, 'script');
    $files = array();
    foreach ($balises as $s) {
        if (extraire_attribut($s, 'type') === 'text/javascript' and is_null(extraire_attribut($s, 'id')) and $src = extraire_attribut($s, 'src') and !strlen(strip_tags($s))) {
            $files[$s] = $src;
        }
    }
    return $files;
}
开发者ID:loorenzooo,项目名称:aslfc,代码行数:20,代码来源:compresseur.php


示例15: tags2dcsubject

function tags2dcsubject($tags) {
	$subjects = '';
	foreach (extraire_balises($tags, 'a') as $e) {
		if (extraire_attribut($e, rel) == 'tag') {
			$subjects .= '<dc:subject>'
				. texte_backend(textebrut($e))
				. '</dc:subject>'."\n";
		}
	}
	return $subjects;
}
开发者ID:rhertzog,项目名称:lcs,代码行数:11,代码来源:filtres.php


示例16: compacte_head_css

function compacte_head_css($flux) {
	$url_base = url_de_base();
	$url_page = substr(generer_url_public('A'), 0, -1);
	$dir = preg_quote($url_page,',').'|'.preg_quote(preg_replace(",^$url_base,",_DIR_RACINE,$url_page),',');

	$css = array();
	$flux_nocomment = preg_replace(",<!--.*-->,Uims","",$flux);
	foreach (extraire_balises($flux_nocomment, 'link') as $s) {
		if (extraire_attribut($s, 'rel') === 'stylesheet'
		AND (!($type = extraire_attribut($s, 'type'))
			OR $type == 'text/css')
		AND is_null(extraire_attribut($s, 'name')) # css nommee : pas touche
		AND is_null(extraire_attribut($s, 'id'))   # idem
		AND !strlen(strip_tags($s))
		AND $src = preg_replace(",^$url_base,",_DIR_RACINE,extraire_attribut($s, 'href'))
		AND (
			// regarder si c'est du format spip.php?page=xxx
			preg_match(',^('.$dir.')(.*)$,', $src, $r)
			OR (
				// ou si c'est un fichier
				// enlever un timestamp eventuel derriere un nom de fichier statique
				$src2 = preg_replace(",[.]css[?].+$,",'.css',$src)
				// verifier qu'il n'y a pas de ../ ni / au debut (securite)
				AND !preg_match(',(^/|\.\.),', substr($src2,strlen(_DIR_RACINE)))
				// et si il est lisible
				AND @is_readable($src2)
			)
		)) {
			$media = strval(extraire_attribut($s, 'media'));
			if ($media==='') $media='all';
			if ($r)
				$css[$media][$s] = explode('&',
					str_replace('&amp;', '&', $r[2]), 2);
			else
				$css[$media][$s] = $src;
		}
	}

	// et mettre le tout dans un cache statique
	foreach($css as $m=>$s){
		// si plus d'une css pour ce media ou si c'est une css dynamique
		if (count($s)>1 OR is_array(reset($s))){
			if (list($src,$comms) = filtre_cache_static($s,'css')){
				$compacte_ecrire_balise_link = charger_fonction('compacte_ecrire_balise_link','');
				$s = array_keys($s);
				$flux = str_replace(reset($s),
								$comms . $compacte_ecrire_balise_link($src,$m)."\n",
								$flux);
				$flux = str_replace($s,"",$flux);
			}
		}
	}

	return $flux;
}
开发者ID:rhertzog,项目名称:lcs,代码行数:55,代码来源:compresseur.php


示例17: analyser_spams

/**
 * Retourne un tableau d'analyse du texte transmis
 * Cette analyse concerne principalement des statistiques sur les liens
 *
 * @param string $texte texte d'entree
 * @return array rapport d'analyse
 */
function analyser_spams($texte)
{
    $infos = array('caracteres_utiles' => 0, 'nombre_liens' => 0, 'caracteres_texte_lien_min' => 0);
    if (!$texte) {
        return $infos;
    }
    // on travaille d'abord sur le texte 'brut' tel que saisi par
    // l'utilisateur pour ne pas avoir les class= et style= que spip ajoute
    // sur les raccourcis.
    // on ne tient pas compte des blocs <code> et <cadre> ni de leurs contenus
    include_spip("inc/texte_mini");
    if (!function_exists('echappe_html')) {
        // SPIP 2.x
        include_spip("inc/texte");
    }
    $texte_humain = echappe_html($texte);
    // on repère dans ce qui reste la présence de style= ou class= qui peuvent
    // servir à masquer du contenu
    // les spammeurs utilisent le laxisme des navigateurs pour envoyer aussi style =
    // soyons donc mefiant
    // (mais en enlevant le base64 !)
    $texte_humain = str_replace('class="base64"', '', $texte_humain);
    $hidden = ",(<(img|object)|\\s(?:style|class)\\s*=[^>]+>),UimsS";
    if (preg_match($hidden, $texte_humain)) {
        // suspicion de spam
        $infos['contenu_cache'] = true;
    }
    include_spip('inc/texte');
    $texte = propre($texte);
    // caracteres_utiles
    $infos['caracteres_utiles'] = compter_caracteres_utiles($texte, false);
    // nombre de liens
    $liens = array_filter(extraire_balises($texte, 'a'), 'pas_lien_ancre');
    $infos['nombre_liens'] = count($liens);
    $infos['liens'] = $liens;
    // taille du titre de lien minimum
    if (count($liens)) {
        // supprimer_tags() s'applique a tout le tableau,
        // mais attention a verifier dans le temps que ca continue a fonctionner
        # $titres_liens = array_map('supprimer_tags', $liens);
        $titres_liens = supprimer_tags($liens);
        $titres_liens = array_map('strlen', $titres_liens);
        $infos['caracteres_texte_lien_min'] = min($titres_liens);
    }
    return $infos;
}
开发者ID:RadioCanut,项目名称:site-radiocanut,代码行数:53,代码来源:nospam.php


示例18: page_base_href

function page_base_href(&$texte){
	if (!defined('_SET_HTML_BASE'))
		// si la profondeur est superieure a 1
		// est que ce n'est pas une url page ni une url action
		// activer par defaut
		define('_SET_HTML_BASE',
			$GLOBALS['profondeur_url'] >= (_DIR_RESTREINT?1:2)
			AND _request(_SPIP_PAGE) !== 'login'
			AND !_request('action'));

	if (_SET_HTML_BASE
	AND isset($GLOBALS['html']) AND $GLOBALS['html']
	AND $GLOBALS['profondeur_url']>0
	AND ($poshead = strpos($texte,'</head>'))!==FALSE){
		$head = substr($texte,0,$poshead);
		$insert = false;
		if (strpos($head, '<base')===false) 
			$insert = true;
		else {
			// si aucun <base ...> n'a de href c'est bon quand meme !
			$insert = true;
			include_spip('inc/filtres');
			$bases = extraire_balises($head,'base');
			foreach ($bases as $base)
				if (extraire_attribut($base,'href'))
					$insert = false;
		}
		if ($insert) {
			include_spip('inc/filtres_mini');
			// ajouter un base qui reglera tous les liens relatifs
			$base = url_absolue('./');
			$bbase = "\n<base href=\"$base\" />";
			if (($pos = strpos($head, '<head>')) !== false)
				$head = substr_replace($head, $bbase, $pos+6, 0);
			elseif(preg_match(",<head[^>]*>,i",$head,$r)){
				$head = str_replace($r[0], $r[0].$bbase, $head);
			}
			$texte = $head . substr($texte,$poshead);
			// gerer les ancres
			$base = $_SERVER['REQUEST_URI'];
			if (strpos($texte,"href='#")!==false)
				$texte = str_replace("href='#","href='$base#",$texte);
			if (strpos($texte, "href=\"#")!==false)
				$texte = str_replace("href=\"#","href=\"$base#",$texte);
		}
	}
}
开发者ID:rhertzog,项目名称:lcs,代码行数:47,代码来源:assembler.php


示例19: nospam_inserer_nobot

/**
 * Inserer un champ nobot au hasard dans le form
 * et crypter tous les name
 * @param string $texte
 */
function nospam_inserer_nobot(&$texte)
{
    if (false === strpos($texte, 'name="email_nobot"') and false !== ($pos = strpos($texte, '</form>'))) {
        // essayer de s'inserer au hasard entre 2 div/li du form
        if (preg_match_all(",<(div|li)\\b[^>]*class=['\"]editer[^>]*,ims", $texte, $m) and $i = rand(0, count($m[0]) - 1) and $p = strpos($texte, $m[0][$i])) {
            $nobot = recuperer_fond("inclure/nobot", array('email_nobot' => '', 'div' => $m[1][$i]));
            $texte = substr_replace($texte, $nobot, $p, 0);
        } else {
            $nobot = recuperer_fond("inclure/nobot", array('email_nobot' => ''));
            $texte = str_replace('</form>', $nobot . '</form>', $texte);
        }
    }
    if (_SPAM_ENCRYPT_NAME) {
        // recuperer toutes les balises input, textarea, select
        $balises = array_merge(extraire_balises($texte, 'input'));
        foreach ($balises as $k => $b) {
            if (in_array(extraire_attribut($b, "type"), array("hidden", "file"))) {
                unset($balises[$k]);
            }
        }
        $balises = array_merge($balises, extraire_balises($texte, 'textarea'), extraire_balises($texte, 'select'));
        $key = "";
        if (preg_match(",<input type='hidden' name='_jeton' value='([^>]*)' />,Uims", $texte, $m)) {
            $key = $m[1];
        }
        foreach ($balises as $k => $b) {
            if ($name = extraire_attribut($b, "name") and strncmp($name, "session_", 8) !== 0) {
                // cas des truc[chose] : on ne brouille que truc
                $crypted_name = explode("[", $name);
                $crypted_name[0] = nospam_name_encode($crypted_name[0], $key);
                $crypted_name = implode("[", $crypted_name);
                $b_e = inserer_attribut($b, "name", $crypted_name);
                $texte = str_replace($b, $b_e, $texte);
            }
        }
    }
}
开发者ID:RadioCanut,项目名称:site-radiocanut,代码行数:42,代码来源:nospam_pipelines.php


示例20: inc_email_notification_forum_dist

/**
 * Construitre l'email personalise de notification d'un forum
 *
 * @param array $t
 * @param string $email
 * @param array $contexte
 * @return string
 */
function inc_email_notification_forum_dist($t, $email, $contexte = array())
{
    static $contextes_store = array();
    if (!isset($contextes_store[$t['id_forum']])) {
        $url = '';
        $id_forum = $t['id_forum'];
        if ($t['statut'] == 'prive') {
            if ($t['id_objet']) {
                $url = generer_url_entite($t['id_objet'], $t['objet'], '', 'forum' . $id_forum, false);
            }
        } else {
            if ($t['statut'] == 'privrac') {
                $url = generer_url_ecrire('forum') . '#forum' . $id_forum;
            } else {
                if ($t['statut'] == 'privadm') {
                    $url = generer_url_ecrire('forum', 'quoi=admin') . '#forum' . $id_forum;
                } else {
                    if ($t['statut'] == 'publie') {
                        $url = generer_url_entite($id_forum, 'forum');
                    } else {
                        $url = generer_url_ecrire('controler_forum', "debut_id_forum=" . $id_forum);
                    }
                }
            }
        }
        if (!$url) {
            spip_log("forum {$id_forum} sans referent", 'notifications');
            $url = './';
        }
        if ($t['id_objet']) {
            include_spip('inc/filtres');
            $t['titre_source'] = generer_info_entite($t['id_objet'], $t['objet'], 'titre');
        }
        $t['url'] = $url;
        // detecter les url des liens du forum
        // pour la moderation (permet de reperer les SPAMS avec des liens caches)
        // il faut appliquer le traitement de raccourci car sinon on rate des liens sous forme [->..] utilises par les spammeurs !
        include_spip("public/interfaces");
        $table_objet = "forum";
        $links = array();
        foreach ($t as $champ => $v) {
            $champ = strtoupper($champ);
            $traitement = isset($GLOBALS['table_des_traitements'][$champ]) ? $GLOBALS['table_des_traitements'][$champ] : null;
            if (is_array($traitement) and (isset($traitement[$table_objet]) or isset($traitement[0]))) {
                $traitement = $traitement[isset($traitement[$table_objet]) ? $table_objet : 0];
                $traitement = str_replace('%s', "'" . texte_script($v) . "'", $traitement);
                eval("\$v = {$traitement};");
            }
            $links = $links + extraire_balises($v, 'a');
        }
        $links = extraire_attribut($links, 'href');
        $links = implode("\n", $links);
         

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
PHP extraire_multi函数代码示例发布时间:2022-05-15
下一篇:
PHP extraire_attribut函数代码示例发布时间:2022-05-15
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap