<?php
define('LATEST_VERSION_URL', 'http://telechargements.pluxml.org/latest-version');
functionfile_get_contentsCheck(){
$allow_url_fopen = ini_get('allow_url_fopen');
?>
L'utilisation d'URL est <?phpecho (!empty($allow_url_fopen)) ? 'autorisée' : 'interdite'; ?> avec la fonction file_get_contents().
<?phpif(!empty(ini_get('allow_url_fopen'))) {
# test de file_get_contents
$latest_version = file_get_contents(LATEST_VERSION_URL);
if($latest_version !== false) {
echo <<< EOT
<br/>
La version ${latest_version} de PluXml est en ligne (<em>en utilisant file_get_content</em>).
EOT;
} else {
?>
Quelque chose n'a pas fonctionné avec la fonction <a href="http://php.net/manual/fr/function.file-get-contents.php">file_get_contents()</a> de PHP. Voici le compte-rendu de la requête :
<pre>
<?php
print_r(get_headers(LATEST_VERSION_URL, 1));
?>
</pre>
<?php
echo <<< EOT
Valeur de ini_get('allow_url_fopen'): ${allow_url_fopen}<br />
EOT;
}
}
}
function fopenCheck() {
$allow_url_fopen = ini_get('allow_url_fopen');
?>
L'utilisation d'URL est <?php echo (!empty($allow_url_fopen)) ? 'autorisée' : 'interdite'; ?> avec la fonction fopen().
<?php
if(!empty(ini_get('allow_url_fopen'))) {
# test de fopen
$fp = @fopen(LATEST_VERSION_URL, 'r');
if($fp !== false) {
$latest_version = fgets($fp, 20);
fclose($fp);
echo <<< EOT
<br/>
La version ${latest_version} de PluXml est en ligne (<em>en utilisant fopen()</em>).
EOT;
} else {
?>
Quelque chose n'a pas fonctionné avec la fonction <a href="http://php.net/manual/fr/function.fopen.php">fopen()</a> de PHP. Voici le compte-rendu de la requête :
<pre>
<?php
print_r(get_headers(LATEST_VERSION_URL, 1));
?>
</pre>
<?phpecho <<< EOT
Valeur de ini_get('allow_url_fopen'): ${allow_url_fopen}<br />
EOT;
}
}
}
functioncurlCheck(){
echo (function_exists('curl_init')) ? 'la fonction "curl_ini" existe aussi en PHP. <br />' : 'Pas de fonction "curl_ini" pour PHP';
if(function_exists('curl_init')) {
# la fonction curl_init est désactivée chez certains hébergeurs, par ex: free.fr
$ch = curl_init(LATEST_VERSION_URL);
curl_setopt_array($ch, array(
CURLOPT_RETURNTRANSFER=>true,
CURLOPT_HEADER=>false,
// CURLOPT_USERAGENT=>'Mozilla/5.0 (Windows NT 6.1; rv:22.0) Gecko/20100101 Firefox/22.0',
CURLOPT_VERBOSE=>false
));
$latest_version = curl_exec($ch);
$result = curl_getinfo($ch);
curl_close($ch);
if(!empty($latest_version)) {
echo <<< EOT
La version ${latest_version} de PluXml est en ligne (<em>en utilisant Curl</em>).
EOT;
} else {
?>
Quelque chose n'a pas fonctionné avec les <a href="http://php.net/manual/fr/book.curl.php">fonctions Curl</a> de PHP. Voici le compte-rendu de la requête :
<pre>
<?php
print_r($result);
?>
</pre>
<?php
}
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Version de PluXml disponible en ligne</title>
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
</head>
<body>
<h1>
Grande journée aujourd'hui !
</h1>
<p><!-- J'aime le Javascript -->
La version <span id="version">inconnue</span> de PluXml est en ligne (<em>d'après un script Javascript</em>).
</p>
<p><!-- une url dans file_get_contents() ou fopen(), c'est permis ? -->
<?php
// file_get_contentsCheck();
fopenCheck();
?>
</p>
<p><!-- Curl, l'outil qui doit bien aller -->
<?php curlCheck(); ?>
</p>
<script type="text/javascript">
functionprocess(data){
var idVersion = document.getElementById('version');
if((idVersion != null) && ('version' in data)) {
idVersion.innerHTML = data.version;
} else {
console.log('#' + idVersion + ' element not found or not version field in data response');
}
}
</script>
<script id="version-pluxml" type="text/javascript" src="http://kazimentou.fr/divers/PluXml?callback=process"></script>
</body>
</html>