当前位置: 首页>>代码示例>>PHP>>正文


PHP recuperer_page函数代码示例

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


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

示例1: genie_clevermail_auto_ajout_abonnes_dist

function genie_clevermail_auto_ajout_abonnes_dist()
{
    if ($autoListes = sql_select("lst_id, lst_name, lst_auto_subscribers, lst_auto_subscribers_mode", "spip_cm_lists", "lst_auto_subscribers != '' AND lst_auto_subscribers_updated < " . (time() - 60 * 60 * 24))) {
        include_spip('inc/distant');
        while ($liste = sql_fetch($autoListes)) {
            if ($adresses = recuperer_page($liste['lst_auto_subscribers'])) {
                if (!clevermail_verification_adresses_email($adresses)) {
                    // XXX : log en chaîne de langue
                    spip_log('Le format des adresses e-mail ne semble pas bon dans le fichier distant d\'adresses de la liste « ' . $liste['lst_name'] . ' » (id=' . $liste['lst_id'] . ') : ' . $liste['lst_auto_subscribers'], 'clevermail');
                } else {
                    $retour = clevermail_abonnes_ajout(array($liste['lst_id']), intval($liste['lst_auto_subscribers_mode']), $adresses);
                    sql_updateq("spip_cm_lists", array('lst_auto_subscribers_updated' => time()), "lst_id=" . $liste['lst_id']);
                    // XXX : log en chaîne de langue
                    $msg = 'Ajout automatique d\'abonnés à la liste « ' . $liste['lst_name'] . ' » (id=' . $liste['lst_id'] . ') à partir du fichier ' . $liste['lst_auto_subscribers'] . ' : ';
                    if ($retour === false) {
                        $msg .= _T('clevermail:aucun_nouvel_abonne');
                    } else {
                        $msg .= $retour['nb_nouv'] > 0 ? $retour['nb_nouv'] . _T('clevermail:n_nouveaux_abonnes') : _T('clevermail:aucun_nouvel_abonne');
                        $msg .= $retour['nb_nouv'] > 0 && $retour['nb_maj'] > 0 ? _T('clevermail:nouveaux_abonnes_et') : '';
                        $msg .= $retour['nb_maj'] > 0 ? $retour['nb_maj'] . _T('clevermail:changements_mode_abonnement') : '';
                        spip_log($msg, 'clevermail');
                    }
                }
            } else {
                // XXX : log en chaîne de langue
                spip_log('Impossible de télécharger le fichier distant d\'adresses de la liste « ' . $liste['lst_name'] . ' » (id=' . $liste['lst_id'] . ') : ' . $liste['lst_auto_subscribers'], 'clevermail');
            }
        }
    }
    return 1;
}
开发者ID:nohavy,项目名称:clevermail,代码行数:31,代码来源:clevermail_auto_ajout_abonnes.php

示例2: clevermail_post_update

function clevermail_post_update($pst_id)
{
    if ($pst_id == intval($pst_id)) {
        $lst_id = sql_getfetsel('lst_id', 'spip_cm_posts', 'pst_id=' . intval($pst_id));
        $post = array('lst_id' => intval($lst_id), 'pst_date_create' => time());
        $list = sql_fetsel('*', 'spip_cm_lists', 'lst_id = ' . intval($lst_id));
        // Traitement de la source HTML
        if (strpos($list['lst_url_html'], 'http://') !== false) {
            include_spip('inc/distant');
            $url_html = $list['lst_url_html'] . (strpos($list['lst_url_html'], '?') !== false ? '&' : '?') . 'date=' . date("Y-m-d", $last_create) . '&lst_id=' . intval($lst_id);
            $post['pst_html'] = recuperer_page($url_html);
        } else {
            $contexte = array('date' => date("Y-m-d", $last_create), 'lst_id' => intval($lst_id));
            // on passe la globale lien_implicite_cible_public en true
            // pour avoir les liens internes en public (en non prive d'apres le contexte)
            // credit de l'astuce: denisb & rastapopoulos & erational
            $GLOBALS['lien_implicite_cible_public'] = true;
            $post['pst_html'] = recuperer_fond($list['lst_url_html'], $contexte);
            // on revient a la config initiale
            unset($GLOBALS['lien_implicite_cible_public']);
        }
        // Traitement de la source texte
        if ($list['lst_url_text'] != '') {
            if (strpos($list['lst_url_text'], 'http://') !== false) {
                include_spip('inc/distant');
                $url_text = $list['lst_url_text'] . (strpos($list['lst_url_text'], '?') !== false ? '&' : '?') . 'date=' . date("Y-m-d", $last_create) . '&lst_id=' . intval($lst_id);
                $post['pst_text'] = recuperer_page($url_text);
            } else {
                $contexte = array('date' => date("Y-m-d", $last_create), 'lst_id' => intval($lst_id));
                // on passe la globale lien_implicite_cible_public en true
                // pour avoir les liens internes en public (en non prive d'apres le contexte)
                // credit de l'astuce: denisb & rastapopoulos & erational
                $GLOBALS['lien_implicite_cible_public'] = true;
                $post['pst_text'] = recuperer_fond($list['lst_url_text'], $contexte);
                // on revient a la config initiale
                unset($GLOBALS['lien_implicite_cible_public']);
            }
            $post['pst_text'] = strip_tags($post['pst_text']);
        } else {
            // TODO : essayer d'utiliser TEN : http://www.headstar.com/ten/
            include_spip('classes/facteur');
            $post['pst_text'] = Facteur::html2text($post['pst_html']);
        }
        if (trim($post['pst_html']) != '' && trim($post['pst_text']) != '') {
            /*
            if (preg_match(",<title>(.*)</title>,", $post['pst_html'], $regs)) {
            		    $post['pst_subject'] = trim($regs[1]);
            		  } else {
            		    $post['pst_subject'] = 'Aucun sujet';
            		  }
            */
            $pst_id = sql_updateq('spip_cm_posts', $post, 'pst_id=' . $pst_id);
            spip_log('Mise a jour du message « ' . $post['pst_subject'] . ' » (id=' . $pst_id . ') dans la liste « ' . $list['lst_name'] . ' » (id=' . $lst_id . ')', 'clevermail');
            return $pst_id;
        } else {
            spip_log('Mise a jour d\'un message dans la liste « ' . $list['lst_name'] . ' » (id=' . $lst_id . ') impossible, contenu vide à ' . $url_html . ' et ' . $url_text, 'clevermail');
            return false;
        }
    }
}
开发者ID:nohavy,项目名称:clevermail,代码行数:60,代码来源:clevermail_post_update.php

示例3: wha_check_offer_dist

function wha_check_offer_dist($id_abonnement)
{
    $res = spip_query('SELECT * FROM spip_abonnements WHERE id_abonnement=' . intval($id_abonnement));
    if (!($row = spip_fetch_array($res))) {
        return false;
    }
    if ($row['mode_paiement'] != 'wha' or !($uoid = $row['abonne_uid'])) {
        spip_log("wha_check_offer :Erreur : abonnement {$id_abonnement} n'a pas ete souscrit avec wha (ou pas d'uoid)", 'wha_abo_check');
        return false;
    }
    if (!($confirm = $row['confirm']) or !($confirm = unserialize($confirm))) {
        spip_log("wha_check_offer :Erreur : abonnement {$id_abonnement} n'a pas d'url node enregistree", 'wha_abo_check');
        return false;
    }
    $config = array('MERCHANT_ID' => $confirm['partner'], 'KEY_ID' => $confirm['key'], 'node' => $confirm['node']);
    $url_check = wha_url_check_abo($uoid, 'love', $config);
    include_spip('inc/distant');
    $ack = @recuperer_page($url_check);
    spip_log($t = "wha_check_offer : reponse a {$url_check} : {$ack}", 'wha_abo_check');
    if (!$ack or !($unsign = wha_unsign($ack)) or !($args = wha_extract_args(reset($unsign)))) {
        spip_log($t = "wha_check_offer : pas de reponse valide {$url_check} : {$ack}", 'wha_abo_check');
        return null;
    }
    if (isset($args['c']) and $args['c'] == 'ack') {
        return true;
    }
    if (isset($args['e']) and in_array($args['e'], array(0, 1, 14, 15))) {
        return false;
    }
    return null;
}
开发者ID:nursit,项目名称:bank,代码行数:31,代码来源:check_offer.php

示例4: radiobot_scan

function radiobot_scan($id_syndic_article, $titre_parent = "Sans titre", $url, $date)
{
    include_spip('inc/distant');
    $page_distante = recuperer_page($url);
    //chercher un mp3 avec une url absolue
    preg_match_all(",http://[a-zA-Z0-9\\s()\\/\\:\\._%\\?+'=~-]*\\.mp3,Uims", $page_distante, $matches, PREG_SET_ORDER);
    if (count($matches)) {
        foreach ($matches as $m) {
            // virer ici les faux mp3
            if (!preg_match(",^http://twitter.com/intent/tweet,", $m[0])) {
                $enclosures[] = $m[0];
            }
        }
    } else {
        // chercher un lien relatif
        //chercher un mp3
        preg_match_all(",(href|src)=(\"|')([a-zA-Z0-9\\s()\\/\\:\\._%\\?+'=~-]*\\.mp3),Uims", $page_distante, $matches, PREG_SET_ORDER);
        foreach ($matches as $m) {
            $parse_url = parse_url($url);
            $enclosures[] = "http://" . $parse_url['host'] . $m[3];
        }
    }
    $enclosures = array_unique($enclosures);
    if (is_array($enclosures) and sizeof($enclosures) > 0) {
        if (!$date) {
            $date = date("Y-m-d h:i:s");
        }
        inserer_document_syndic_article($enclosures, $id_syndic_article, $date, $titre_parent);
    }
}
开发者ID:BoOz,项目名称:podcast_client,代码行数:30,代码来源:podcast_pipelines.php

示例5: hal_parse

function hal_parse($url)
{
    $url = trim(html_entity_decode($url), "\"' ");
    $infos = parse_url($url);
    $ip = gethostbyname($infos['host']);
    if ($ip != '193.48.96.10') {
        spip_log("Url invalid", _LOG_ERREUR);
        return;
    }
    spip_log(sprintf("[hal_parse] init_http(%s)", $url), _LOG_DEBUG);
    $content = recuperer_page($url);
    spip_log(sprintf("[hal_parse] init_http(%s): Done", $url), _LOG_DEBUG);
    $dom = new DomDocument('1.0', 'UTF-8');
    $dom->preserveWhiteSpace = false;
    $str = mb_convert_encoding($content, "HTML-ENTITIES");
    @$dom->loadHTML($str);
    $xpath = new DOMXpath($dom);
    $entries = $xpath->query('//div[@id="res_script"]');
    if ($entries->length == 0) {
        spip_log("No tag found ...", _LOG_ERREUR);
        return;
    }
    $res_script = $dom->saveXML($entries->item(0));
    return $res_script;
}
开发者ID:RBoisselet,项目名称:spip_webpage_from_hal,代码行数:25,代码来源:webpage_from_hal_fonctions.php

示例6: inc_bank_recuperer_post_https_dist

/**
 * Recuperer une url en https avec curl ou recuperer_page sinon
 *
 * @param string $url
 * @param array|string $datas
 *   $datas peut etre un tableau de paire=>valeur, ou une chaine de get paire=valeur&...
 * @param string $user_agent
 * @return array
 */
function inc_bank_recuperer_post_https_dist($url, $datas = '', $user_agent = '')
{
    if (!function_exists('curl_init')) {
        include_spip('inc/distant');
        $nvpreq = $datas;
        if (is_array($datas) and count($datas)) {
            $nvpreq = http_build_query($datas);
        }
        spip_log("bank_recuperer_post_https sur {$url} via recuperer_page : {$nvpreq}", 'bank');
        $response = recuperer_page($url, false, false, 1048576, $datas, null);
        $erreur = $response === false;
        $erreur_msg = "recuperer_page impossible";
    } else {
        //setting the curl parameters.
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        //curl_setopt($ch, CURLOPT_VERBOSE, 1);
        curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
        //turning off the server and peer verification(TrustManager Concept).
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
        //curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
        //curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
        //curl_setopt($ch, CURLOPT_CAINFO, dirname(__FILE__)."/cert/api_cert_chain.crt");
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_HEADER, false);
        curl_setopt($ch, CURLOPT_POST, true);
        curl_setopt($ch, CURLOPT_FORBID_REUSE, true);
        curl_setopt($ch, CURLOPT_FRESH_CONNECT, true);
        curl_setopt($ch, CURLOPT_ENCODING, 'gzip');
        curl_setopt($ch, CURLOPT_BINARYTRANSFER, true);
        //if USE_PROXY constant set to TRUE in Constants.php, then only proxy will be enabled.
        //Set proxy name to PROXY_HOST and port number to PROXY_PORT in constants.php
        #if(_PAYPAL_USE_PROXY)
        #curl_setopt ($ch, CURLOPT_PROXY, _PAYPAL_PROXY_HOST.":"._PAYPAL_PROXY_PORT);
        //NVPRequest for submitting to server
        $nvpreq = "";
        if (is_array($datas) and count($datas)) {
            $nvpreq = http_build_query($datas);
        }
        spip_log("bank_recuperer_post_https sur {$url} via curl : {$nvpreq}", 'bank');
        if (!$user_agent) {
            $user_agent = "SPIP/Bank";
        }
        //setting the nvpreq as POST FIELD to curl
        curl_setopt($ch, CURLOPT_POSTFIELDS, $nvpreq);
        curl_setopt($ch, CURLOPT_HTTPHEADER, array('Connection: Close', "User-Agent: {$user_agent}"));
        //getting response from server
        $response = curl_exec($ch);
        $erreur = curl_errno($ch);
        $erreur_msg = curl_error($ch);
        if (!$erreur) {
            //closing the curl
            curl_close($ch);
        }
    }
    return array($response, $erreur, $erreur ? $erreur_msg : '');
}
开发者ID:nursit,项目名称:bank,代码行数:67,代码来源:bank_recuperer_post_https.php

示例7: presta_internetplus_inc_traiter_reponse_wha_dist

function presta_internetplus_inc_traiter_reponse_wha_dist($config, $m, $args, $partnerId, $keyId)
{
    $mode = 'wha';
    // historique...
    $config_id = bank_config_id($config);
    $v = $args['v'];
    $mp = $v['mp'];
    if (!isset($mp['id_transaction']) or !($id_transaction = $mp['id_transaction'])) {
        bank_transaction_invalide(0, array('where' => 'wha_traiter_reponse', 'mode' => $mode, 'erreur' => "pas de id_transaction en retour", 'log' => $m));
        return array(0, false, $mp);
    }
    // verifier que la transaction est connue
    $res = sql_select("*", "spip_transactions", "id_transaction=" . intval($id_transaction));
    if (!($row = sql_fetch($res))) {
        bank_transaction_invalide($id_transaction, array('where' => 'wha_traiter_reponse', 'mode' => $mode, 'erreur' => "transaction inconnue", 'log' => $m));
        return array($id_transaction, false, $mp);
    }
    if (!$row['id_auteur']) {
        if (!isset($GLOBALS['visiteur_session']['id_auteur']) or !$GLOBALS['visiteur_session']['id_auteur']) {
            $_SESSION['wha_traiter_reponse_wha'] = array('m' => $m, 'args' => $args, 'partnerId' => $partnerId, 'keyId' => $keyId);
            return array($id_transaction, 'delayed', $mp);
        } else {
            sql_updateq("spip_transactions", array("id_auteur" => $row['id_auteur'] = $GLOBALS['visiteur_session']['id_auteur']), "id_transaction=" . intval($id_transaction));
        }
    }
    if ($row['statut'] !== 'ok') {
        // ok, on traite le reglement
        $montant_regle = $row['montant'];
        // on verifie que le montant est bon !
        /*$montant_regle = isset($v['amt'])?$v['amt']:0;
        		if ($montant_regle!=$row['montant']){
        			spip_log($t = "wha_traiter_reponse : id_transaction $id_transaction, montant regle $montant_regle!=".$row['montant'].":".$m,'internetplus'._LOG_ERREUR);
        			// on log ca dans un journal dedie
        			spip_log($t,'internetplus_partiels'._LOG_ERREUR);
        			// on est sympa avec le client, dans le doute on livre le produit
        		}*/
        $authorisation_id = $v['tId'];
        // declencher l'url de confirmation de reglement
        $node_response = $v['rt'];
        $config = array('MERCHANT_ID' => $partnerId, 'KEY_ID' => $keyId, 'node' => $node_response);
        $url = wha_url_confirm($authorisation_id, $row['montant'], $config);
        include_spip('inc/distant');
        $ack = @recuperer_page($url);
        if (!$ack or !($unsign = wha_unsign($ack)) or !($args = wha_extract_args(reset($unsign))) or !isset($args['c']) or !$args['c'] == 'ack') {
            bank_transaction_invalide($id_transaction, array('where' => 'wha_traiter_reponse', 'mode' => $mode, 'erreur' => "pas de confirmation de debit / {$url} : {$ack}", 'update' => true, 'log' => $m));
            return array($id_transaction, false, $mp);
        }
        sql_updateq("spip_transactions", array("autorisation_id" => $authorisation_id, "mode" => "wha/{$config_id}", "montant_regle" => $montant_regle, "date_paiement" => date('Y-m-d H:i:s'), "statut" => 'ok', "reglee" => 'oui'), "id_transaction=" . intval($id_transaction));
        spip_log("wha_traiter_reponse : id_transaction {$id_transaction}, reglee", $mode . _LOG_INFO_IMPORTANTE);
        spip_log("{$m}", $mode . '_autorisations' . _LOG_INFO_IMPORTANTE);
    }
    $regler_transaction = charger_fonction('regler_transaction', 'bank');
    $regler_transaction($id_transaction, array('row_prec' => $row));
    return array($id_transaction, true, $mp);
}
开发者ID:nursit,项目名称:bank,代码行数:55,代码来源:traiter_reponse_wha.php

示例8: produire_image_math

function produire_image_math($tex) {
	global $traiter_math;
	switch ($traiter_math) {
		// Attention: mathml desactiv'e pour l'instant
		case 'mathml':
			$ext = '.xhtml';
			$server = $GLOBALS['mathml_server'];
			break;
		case 'tex':
			$ext = '.png';
			$server = $GLOBALS['tex_server'];
			break;
		default:
			return $tex;
	}

	// Regarder dans le repertoire local des images TeX et blocs MathML
	if (!@is_dir($dir_tex = _DIR_VAR.'cache-TeX/'))
		@mkdir ($dir_tex, _SPIP_CHMOD);
	$fichier = $dir_tex .md5(trim($tex)).$ext;
	

	if (!@file_exists($fichier)) {
		// Aller chercher l'image sur le serveur
		if ($server) {
			spip_log($url = $server.'?'.rawurlencode($tex));
			include_spip('inc/distant');
			recuperer_page($url,$fichier);
		}
	}


	// Composer la reponse selon presence ou non de l'image
	$tex = entites_html($tex);
	if (@file_exists($fichier)) {

		// MathML
		if ($traiter_math == 'mathml') {
			return join(file("$fichier"),"");
		}

		// TeX
		else {
			list(,,,$size) = @getimagesize($fichier);
			$alt = "alt=\"$tex\" title=\"$tex\""; 
			return "<img src=\"$fichier\" style=\"vertical-align:middle;\" $size $alt />";
		}

	}
	else // pas de fichier
		return "<tt><span class='spip_code' dir='ltr'>$tex</span></tt>";

}
开发者ID:rhertzog,项目名称:lcs,代码行数:53,代码来源:math.php

示例9: spip_xml_load

function spip_xml_load($fichier, $strict=true, $clean=true, $taille_max = 1048576, $datas='', $profondeur = -1){
	$contenu = "";
	if (preg_match(",^(http|ftp)://,",$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;
}
开发者ID:rhertzog,项目名称:lcs,代码行数:13,代码来源:xml.php

示例10: presta_internetplus_inc_confirm_offer_dist

function presta_internetplus_inc_confirm_offer_dist($id_transaction, $uoid, $confirm)
{
    $config = array('MERCHANT_ID' => $confirm['partner'], 'KEY_ID' => $confirm['key'], 'node' => $confirm['node']);
    $url_confirm = wha_url_confirm_abo($uoid, $config);
    include_spip('inc/distant');
    $ack = @recuperer_page($url_confirm);
    if (!$ack or !($unsign = wha_unsign($ack)) or !($args = wha_extract_args(reset($unsign))) or !isset($args['c']) or !$args['c'] == 'ack') {
        spip_log($t = "wha_confirm_offer : transaction {$id_transaction}, echec confirmation de debit {$uoid} / {$url_confirm} : {$ack}", 'internetplus_abo' . _LOG_ERREUR);
        spip_log($t, 'internetplus_abo_hs' . _LOG_ERREUR);
        return false;
    }
    return true;
}
开发者ID:nursit,项目名称:bank,代码行数:13,代码来源:confirm_offer.php

示例11: presta_paybox_payer_resilier_dist

function presta_paybox_payer_resilier_dist($uid)
{
    $parm = paybox_pbx_ids();
    $args = "VERSION=001" . "&TYPE=001" . "&SITE=" . str_pad($parm['PBX_SITE'], 7, "0", STR_PAD_LEFT) . "&MACH=" . str_pad($parm['PBX_RANG'], 3, "0", STR_PAD_LEFT) . "&IDENTIFIANT=" . $parm['PBX_IDENTIFIANT'] . "&ABONNEMENT=" . $uid;
    $url = _PAYBOX_URL_RESIL . "?" . $args;
    include_spip('inc/distant');
    $reponse = recuperer_page($url);
    spip_log("uid:{$uid}, {$url}, reponse:{$reponse}", 'paybox_abos_resil');
    parse_str($reponse, $res);
    if ($res['ACQ'] == 'OK' and $res['ABONNEMENT'] == $uid) {
        return true;
    }
    return false;
}
开发者ID:rougerose,项目名称:bank,代码行数:14,代码来源:resilier.php

示例12: 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;
}
开发者ID:xablen,项目名称:Semaine14_SPIP_test,代码行数:40,代码来源:xml.php

示例13: is_feed

/**
 * une fonction qui permet de si un lien est un feed ou nom, 
 * si c'est un feed elle retourne son type, si c'est pas un feed elle retourne 0, 
 * cette verification est évidemment très très légère
 * 
 * @param string $url
 * 		URL à analyser
 * @return string|0 
 * 		Retourne son type (rss|atom|rdf) ou 0 si pas feed
 */
function is_feed($url)
{
    /**
     * méthode SPIP
     */
    if (function_exists('recuperer_page')) {
        $buffer = recuperer_page($url);
        if (preg_match("/<(\\w*) .*/", $buffer, $matches)) {
            //ici on detecte la premiere balise
            $type_feed = $matches[1];
            switch ($type_feed) {
                case "rss":
                    return "rss";
                case "feed":
                    return "atom";
                case "rdf":
                    return "rdf";
            }
        }
        return '';
    }
    $fp = @fopen($url, "r");
    if (!$fp) {
        return 0;
    }
    //verifion la nature de ce fichier
    while (!feof($fp)) {
        $buffer = fgets($fp, 4096);
        if (preg_match("/<(\\w*) .*/", $buffer, $matches)) {
            //ici on detecte la premiere balise
            $type_feed = $matches[1];
            switch ($type_feed) {
                case "rss":
                    fclose($fp);
                    return "rss";
                case "feed":
                    fclose($fp);
                    return "atom";
                case "rdf":
                    fclose($fp);
                    return "rdf";
                default:
                    fclose($fp);
                    return 0;
            }
        }
    }
}
开发者ID:loorenzooo,项目名称:aslfc,代码行数:58,代码来源:feedfinder.php

示例14: accesrestreint_gerer_htaccess

/**
 * on essaye de poser un htaccess rewrite global sur IMG/
 * si fonctionne on gardera des ulrs de document permanente
 * si ne fonctionne pas on se rabat sur creer_htaccess du core
 * qui pose un deny sur chaque sous repertoire de IMG/
 *
 * http://doc.spip.org/@gerer_htaccess
 *
 * @param bool $active
 * @return bool
 */
function accesrestreint_gerer_htaccess($active = true)
{
    if (!$active) {
        spip_unlink(_DIR_IMG . _ACCESS_FILE_NAME);
        effacer_meta("creer_htaccess");
        // effacer les xx/.htaccess crees eventuellement par le core
        include_spip("inc/acces");
        gerer_htaccess();
        return false;
    } else {
        $rewrite = <<<rewrite
RewriteEngine On
RewriteCond %{QUERY_STRING} ^(\\d+/[\\da-f]+)\$
RewriteRule ^\\w+/.*\$     ../spip.php?action=api_docrestreint&arg=%1/\$0 [skip=100]
RewriteRule ^\\w+/.*\$     ../spip.php?action=api_docrestreint&arg=0/0/\$0 [skip=100]
rewrite;
        // On cherche si le dossier racine a un RewriteBase plus long que "/"
        if (file_exists(_DIR_RACINE . _ACCESS_FILE_NAME)) {
            $ht = '';
            lire_fichier(_DIR_RACINE . _ACCESS_FILE_NAME, $ht);
            if ($ht and preg_match('|^RewriteBase\\s+/.+$|m', $ht, $rewritebase)) {
                $rewritebase = rtrim(trim($rewritebase[0]), '/') . '/' . _NOM_PERMANENTS_ACCESSIBLES;
                $rewrite = $rewritebase . "\n" . $rewrite;
            }
        }
        ecrire_fichier(_DIR_IMG . _ACCESS_FILE_NAME, $rewrite);
        // verifier sur l'url de test
        include_spip('inc/distant');
        $url_test = url_absolue(_DIR_IMG . "test/.test?0/1");
        $test = recuperer_page($url_test);
        // si l'url de test renvoie bien "OK" alors rewrite rule fonctionne et on peut baser la protection de document sur ce shema
        if ($test == "OK") {
            effacer_meta("creer_htaccess");
            // securite, et permet de generer des urls permanentes
        } else {
            // sinon on se rabat sur un deny et on generera des urls moches
            spip_unlink(_DIR_IMG . _ACCESS_FILE_NAME);
            ecrire_meta("creer_htaccess", "oui");
        }
        // dans tous les cas on passe par gerer_htaccess pour enlever ou mettre les .htaccess dans les sous rep
        include_spip("inc/acces");
        gerer_htaccess();
        return true;
    }
}
开发者ID:loorenzooo,项目名称:aslfc,代码行数:56,代码来源:accesrestreint_documents.php

示例15: teleporter_http_recuperer_source

/**
 * Récupérer la source et détecter son extension
 *
 * @uses  teleporter_http_extension()
 *
 * @param string $source
 *     URL de la source HTTP
 * @param string $dest_tmp
 *     Répertoire de destination
 * @return array|string
 *     - Texte d'erreur si une erreur survient,
 *     - Liste sinon (répertoire de destination temporaire, extension du fichier source)
 */
function teleporter_http_recuperer_source($source, $dest_tmp)
{
    # securite : ici on repart toujours d'une source neuve
    if (file_exists($dest_tmp)) {
        spip_unlink($dest_tmp);
    }
    $extension = "";
    # si on ne dispose pas encore du fichier
    # verifier que le zip en est bien un (sans se fier a son extension)
    #	en chargeant son entete car l'url initiale peut etre une simple
    # redirection et ne pas comporter d'extension .zip
    include_spip('inc/distant');
    $head = recuperer_page($source, false, true, 0);
    if (preg_match(",^Content-Type:\\s*?(.*)\$,Uims", $head, $m) and include_spip('base/typedoc')) {
        $mime = $m[1];
        // passer du mime a l'extension !
        if ($e = array_search($mime, $GLOBALS['tables_mime'])) {
            $extension = $e;
        }
    }
    if (!$extension or in_array($extension, array('bin', 'gz'))) {
        if (preg_match(",^Content-Disposition:\\s*attachment;\\s*filename=(.*)['\"]?\$,Uims", $head, $m) and $e = teleporter_http_extension($m[1])) {
            $extension = $e;
        } else {
            $extension = teleporter_http_extension($source);
        }
    }
    # format de fichier inconnu
    if (!$extension) {
        spip_log("Type de fichier inconnu pour la source {$source}", "teleport" . _LOG_ERREUR);
        return _T('svp:erreur_teleporter_type_fichier_inconnu', array('source' => $source));
    }
    $dest_tmp = preg_replace(";\\.[\\w]{2,3}\$;i", "", $dest_tmp) . ".{$extension}";
    if (!defined('_SVP_PAQUET_MAX_SIZE')) {
        define('_SVP_PAQUET_MAX_SIZE', 67108864);
    }
    // 64Mo
    include_spip('inc/distant');
    $dest_tmp = copie_locale($source, 'force', $dest_tmp, _SVP_PAQUET_MAX_SIZE);
    if (!$dest_tmp or !file_exists($dest_tmp = _DIR_RACINE . $dest_tmp)) {
        spip_log("Chargement impossible de la source {$source}", "teleport" . _LOG_ERREUR);
        return _T('svp:erreur_teleporter_chargement_source_impossible', array('source' => $source));
    }
    return array($dest_tmp, $extension);
}
开发者ID:xablen,项目名称:Semaine14_SPIP_test,代码行数:58,代码来源:http.php


注:本文中的recuperer_page函数示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。