Wiki de rwanito

Astuces, memos...php et autres

API JSON GOOGLE NEWS ( ne marche plus... )

Stocke les données dans une bdd. Si $reset_news_config = 1 alors je mets à jour avec les nouvelles news.

Ce code ne marche plus pour une raison inconnue. Si vous avez des idées...???

<?php
if ($reset_news_config==1) 
{

	$supprimer=$bdd->query('TRUNCATE TABLE BAI_news');
	$supprimer->execute();

$news=urlencode('rwanito');
$userip=urlencode($REMOTE_ADDR);
$url="https://ajax.googleapis.com/ajax/services/search/news?"."v=1.0&hl=fr&ned=fr&rsz=8&q=".$news."&userip=".$userip."";

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_REFERER, 'rwanito.fr/matlep');
$body = curl_exec($ch);
curl_close($ch);

$json = json_decode($body);

$json->responseData->results;

$id=1;
foreach($json->responseData->results AS $article){

	$image=$article->image->url;
	if (!isset($article->image->url)) 
	{
		$image='0';
	}
	
		$pubDate = $article->publishedDate;
		$pubDate = strtotime($pubDate);

	$requete=$bdd->prepare('INSERT INTO BAI_news (id, titre, content, publisher, publisheddate, url, image) VALUES (:id, :titre, :content, :publisher, :publisheddate, :url, :image)');
	$requete->bindValue('id', $id, PDO::PARAM_INT);
	$requete->bindValue('titre', $article->titleNoFormatting, PDO::PARAM_STR);
	$requete->bindValue('content', $article->content, PDO::PARAM_STR);
	$requete->bindValue('publisher', $article->publisher, PDO::PARAM_STR);
	$requete->bindValue('publisheddate', $pubDate, PDO::PARAM_STR);
	$requete->bindValue('url', $article->unescapedUrl, PDO::PARAM_STR);
	$requete->bindValue('image', $image, PDO::PARAM_STR);
	$requete->execute();

	$id++;
}
	$fichier='rsc/config.php';
	$contenu=str_replace('$reset_news_config=1;','$reset_news_config=0;',file_get_contents($fichier));
	file_put_contents($fichier,$contenu);
	header('location: index.php');
	exit();

}
else
{

	$news=$bdd->prepare('SELECT titre, content, publisher, publisheddate, url, image FROM BAI_news ORDER BY publisheddate DESC');
	$news->execute();

	while ($donnees=$news->fetch()) 
	{
			echo '<div class="news">';
			echo "<h3><a href='".$donnees['url']."''>".$donnees['titre']."</a></h3>";

			if ($donnees['image']!="0") 
			{
				echo "<p>"."<img src='".$donnees['image']."''>".$donnees['content']."</p><br />";
			}
			else
			{
				echo "<p>".'<img src="img/news/BrittanyFerries.jpg">'.$donnees['content']."</p><br />";
			}
			echo "<p class='publisher'>".$donnees['publisher'].", ".date('d/m/Y', $donnees['publisheddate'])."</p><br />";
			echo '</div>';
	}

}?>

API Twitter

Les codes d'accès sont à trouver dans votre dev twitter.


TwitterAPI
require_once('twitter/TwitterOAuth.php');

$settings = array(
'oauth_access_token' => "",
'oauth_access_token_secret' => "",
'consumer_key' => "",
'consumer_secret' => ""
);
$url = "https://api.twitter.com/1.1/statuses/user_timeline.json";
$requestMethod = "GET";
if (isset($_GET['user'])) {$user = $_GET['user'];} else {$user = "BrittanyFerries";}
if (isset($_GET['count'])) {$count = $_GET['count'];} else {$count = 10;}
$getfield = "?language=fr&screen_name=$user&count=$count";
$twitter = new TwitterAPIExchange($settings);
$string = json_decode($twitter->setGetfield($getfield)
->buildOauth($url, $requestMethod)
->performRequest(),$assoc = TRUE);
if($string["errors"][0]["message"] != "") {echo "<h3>Sorry, there was a problem.</h3><p>Twitter returned the following error message:</p><p><em>".$string[errors][0]["message"]."</em></p>";exit();}
foreach($string as $items)
    {
        echo "Time and Date of Tweet: ".$items['created_at']."<br />";
        echo "Tweet: ". $items['text']."<br />";
        echo "Tweeted by: ". $items['user']['name']."<br />";
        echo "Screen name: ". $items['user']['screen_name']."<br />";
        echo "Followers: ". $items['user']['followers_count']."<br />";
        echo "Friends: ". $items['user']['friends_count']."<br />";
        echo "Listed: ". $items['user']['listed_count']."<br /><hr />";
    }

SELECT dynamique avec Jquery

	<select id="dynamic_select" class="option" id="annee" name="annee">
			<option value="" selected>Choisissez une année</option>
			<option value='http://lien.com'>Mon lien</option>


	</select>

<script src="//code.jquery.com/jquery-1.12.0.min.js"></script>
<script>
    $(function(){
      // bind change event to select
      $('#dynamic_select').on('change', function () {
          var url = $(this).val(); // get selected value
          if (url) { // require a URL
              window.location = url; // redirect
          }
          return false;
      });
    });
</script>

Calculer distance et temps avec API google maps

$from = "Ville, CP";
$to = "Ville, CP";

$from = urlencode($from);
$to = urlencode($to);

$data = file_get_contents("http://maps.googleapis.com/maps/api/distancematrix/json?origins=$from&destinations=$to&language=en-EN&sensor=false");
$data = json_decode($data);

$time = 0;
$distance = 0;

foreach($data->rows[0]->elements as $road) {
$time += $road->duration->value;
$distance += $road->distance->value;
}

echo "To: ".$data->destination_addresses[0];
echo "
";
echo "From: ".$data->origin_addresses[0];
echo "
";
echo "Time: ".$time." seconds";
echo "
";
echo "Distance: ".$distance." meters";

?>

CSSGram - instagram like en css

https://raw.githubusercontent.com/una/CSSgram/master/source/css/cssgram.min.css

1977: class="_1977"
Aden: class="aden"
Brooklyn: class="brooklyn"
Clarendon: class="clarendon"
Earlybird: class="earlybird"
Gingham: class="gingham"
Hudson: class="hudson"
Inkwell: class="inkwell"
Lark: class="lark"
Lo-Fi: class="lofi"
Mayfair: class="mayfair"
Moon: class="moon"
Nashville: class="nashville"
Perpetua: class="perpetua"
Reyes: class="reyes"
Rise: class="rise"
Slumber: class="slumber"
Toaster: class="toaster"
Walden: class="walden"
Willow: class="willow"
X-pro II: class="xpro2"

<figure class="aden">
<img src="../img.png">
</figure>

Intégrer MarkDown facilement

MarkDown est un supplément pour votre système de message : Commentaire, Tchat, Forum...afin de créer une mise en page en PHP.
Il est très simple à mettre en place.
Téléchargez ce fichier sur le GitHub officiel. GitHub : ParseDown

Ensuite, Intégrez le à votre fichier en PHP :
include('rsc/Parsedown.php');
Ensuite, Faites appel à celui ci avec une variable :
$Parsedown = new Parsedown();
Et enfin, sur la variable qui génère votre message ajoutez cela  :
$message=$Parsedown->text($donnees['message']);

/?\ $donnees['message'] est une variable récupérée sur une BDD MySQL

Et pour finir, voici les syntaxes possibles avec ce petit add-on : GitHub