本文整理汇总了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('&', '&', $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('&', '&', $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);
|
请发表评论