php tag archives

L’ARNAKTHON DEV est ouvert chez 42


Le concours du meilleur DEV de France « DEV party » aura lieu dans les locaux de l’Ecole 42, dans une salle allouée à cet effet, le jeudi 10 octobre 2013.
Tous les développeurs, étudiants, indépendants ou en entreprises, avec ou sans diplômes, pourront s’inscrire.
Le concours veut nommer le meilleur DEV de France, il remportera 10 000 euros.

La compétition sera une série de mini épreuves à résoudre (PHP, le C#, ou Java). Celui qui finit en premier et dont le code est vérifié sera déclaré gagnant. Cela étant, tout le monde doit concourir jusqu’au bout afin de se faire une place dans le classement final.
L’école 42 accueille son premier grand événement depuis son ouverture. Dotée d’un équipement ultra-moderne, 42 est un véritable « temple du digital » en France, comme le voulait l’un des co-fondateur Xavier NIEL.

Il vous en coûtera donc la modique somme de 149 euros pour participer (mais le bar est Open).
Le but du jeu est d’être le pus rapide, une sorte de TOP CHEF où c’est le cuisinier le plus rapide qui serait récompensé. Peu importe la qualité du code, peu importe qu’il soit lisible et réutilisable.

REf : http://lemeilleurdevdefrance.com/wp/

JSON et JSONP avec PHP

Voici comment récupérer des données au format JSON en PHP avec JQUery.

JSON (JavaScript Object Notation) est un format de données textuel, générique, dérivé de la notation des objets du langage ECMAScript. Il permet de représenter de l’information structurée. Créé par Douglas Crockford, il est décrit par la RFC 4627 de l’IETF.
Un document JSON ne comprend que deux éléments structurels :

des ensembles de paires nom / valeur ;
des listes ordonnées de valeurs.

Ces mêmes éléments représentent 3 types de données :

des objets ;
des tableaux ;
des valeurs génériques de type tableau, objet, booléen, nombre, chaîne ou null.

Code côté PHP json.php

< ?php header('Cache-Control: no-cache, must-revalidate'); header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); header('Content-type: application/json'); $data[1]['id'] = "1"; $data[1]['value'] = "value1"; $data[2]['id'] = "2"; $data[2]['value'] = "value2"; echo json_encode($data); ?>

Page HTML appelant avec JQuery


$.ajax({
url: "json.php",
contentType: "application/json; charset=utf-8",
dataType: 'json',
success: onLoadData
});
function onLoadData(data) {
alert("I load data");
};

JSONP pour JSON with padding (en français, « JSON avec formatage ») est une extension dans laquelle le nom de la fonction de retour est indiqué. L’idée originale proviendrait du blog MacPython en 2005 et est maintenant répandu dans les applications Web 2.0, telle que Google’s toolkit Applications. Des améliorations sont prévues pour y ajouter des arguments.

JSONP utilise des balises de scripts, les appels sont ouverts. Ainsi, JSONP peut être inapproprié pour transporter des informations confidentielles.

Code côté PHP jsonp.php

< ?php header('Cache-Control: no-cache, must-revalidate'); header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); header('Content-type: application/json'); $data[1]['id'] = "1"; $data[1]['value'] = "value1"; $data[2]['id'] = "2"; $data[2]['value'] = "value2"; echo $_GET['callback'] . '('.json_encode($data).')'; ?>


$.ajax({
url: "jsonp.php",
contentType: "application/json; charset=utf-8",
dataType: 'jsonp',
success: onLoadData
});
function onLoadData(data) {
alert("I load data");
};

Développement-code     Étiquettes : , , ,

PHP trier des fichiers par date

Pour trier des fichiers d’un répertoire (directory) par date en PHP :

Exemple tri de fichiers images jpeg dans le tableau $files

$files = glob('path/to/files/*.jpeg');
usort($files, function($a, $b) {
return filemtime($a) < filemtime($b); });

Cet exemple fonctionne avec PHP 5.3

Pour des versions inférieures :


usort($files, create_function('$a,$b', 'return filemtime($a)

Développement-code     Étiquettes :

MySql optimiser les tables



Les tables d’une base MySql se fragmentent, surtout celles qui subissent beaucoup de modifications. Comme la fragmentation d’un disque dur, cela provoque des ralentissemnets sur les accés base. Il faut donc optimiser les tables.

Pour réorganiser les lignes fragmentées et éliminer l’espace perdu par les effacements et les modifications de lignes, vous pouvez exécuter l’utilitaire myisamchk en mode de restauration :

shell> myisamchk -r tbl_name

Vous pouvez optimiser une table de la même façon que vous le faîtes avec la commande SQL OPTIMIZE TABLE. OPTIMIZE TABLE effectue une réparation de la table, et une analyse des index, puis trie l’arbre d’index pour accélérer les recherches de clés.

Pour optimiser en automatique vos tables, voici un script PHP que vous pourrez mettre en Cron. Ce script optimise seulement les tables qui en ont besoin. Inutile en effet d’optimiser toutes les tables de vos bases.

 

 
< ?php
echo '<pre>' . "\n\n";
set_time_limit( 160 );
 
$time = microtime();
$time = explode(' ', $time);
$time = $time[1] + $time[0];
$start = $time;
 
//Connection variables (A MODIFIER):
$h = 'localhost';
$u = 'root';
$p = "MON_PASSWORD";
//
$dummy_db = 'mysql';
 
/*The php->mysql API needs to connect to a database even when executing scripts like this.
If you got an error from this(permissions),
just replace this with the name of your database*/
 
$db_link = mysql_connect($h,$u,$p);
 
$res = mysql_db_query($dummy_db, 'SHOW DATABASES', $db_link) or die('Could not connect: ' . mysql_error());
echo 'Found '. mysql_num_rows( $res ) . ' databases' . "\n";
$dbs = array();
while ( $rec = mysql_fetch_array($res) )
{
$dbs [] = $rec [0];
}
 
foreach ( $dbs as $db_name )
{
echo "Database : $db_name \n\n";
$res = mysql_db_query($dummy_db, "SHOW TABLE STATUS FROM `" . $db_name . "`", $db_link) or die('Query : ' . mysql_error());
$to_optimize = array();
while ( $rec = mysql_fetch_array($res) )
{
if ( $rec['Data_free'] > 0 )
{
$to_optimize [] = $rec['Name'];
echo $rec['Name'] . ' needs optimization' . "\n";
}
}
if ( count ( $to_optimize ) > 0 )
{
foreach ( $to_optimize as $tbl )
{
mysql_db_query($db_name, "OPTIMIZE TABLE `" . $tbl ."`", $db_link );
}
}
}
 
$time = microtime();
$time = explode(' ', $time);
$time = $time[1] + $time[0];
$finish = $time;
$total_time = round(($finish - $start), 6);
echo 'Parsed in ' . $total_time . ' secs' . "\n\n";
?>
Développement-code     Étiquettes : ,

Répartion des technologies serveurs Web

Une étude faite, par le Groupe Smile, sur la répartition des technologies employés dans le Web montre que le langage Open source PHP est majoritairement utilisé.
Un peu plus de 2/3 des sites Internet sont donc basé sur PHP. En seconde place on retrouve la technologie Microsoft (.NET). Puis en troisième place Java.

En avril 2010, il en est ressorti la décomposition suivante :

* 67 % PHP
* 21 % ASP.net
* 10 % Java
* 2 % autres

web2.0     Étiquettes :

Convertir du HTML en PDF via PHP

Pour convertir du HTML en fichier PDF, voici une solution en PHP :

Cette solution utilise le projet  HTML2PDF  (sourceforge.net/projects/html2fpdf/).  Trés simplement le texte HTML est généré en fichier PDF. Ce projet est basé sur le script FPDF  (www.fpdf.org),  qui est en pur PHP, sans utiliser  PDFlib ou tout autre librairie. Télécharger HTML2PDF, ajouter le à vos projets et voici un script d’exemple de code.

Code exemple

require(« html2fpdf.php »);

$htmlFile = « http://www.mirpod.com »;

$buffer = file_get_contents($htmlFile);

$pdf = new HTML2FPDF(‘P’, ‘mm’, ‘Letter’);

$pdf->AddPage();

$pdf->WriteHTML($buffer);

$pdf->Output(‘test.pdf’, ‘F’);

Développement-code     Étiquettes :

Classes PHP pour API

Si vous utilisez PHP et désirez utiliser une API. Voici une liste de classes PHP qui peuvent être utiles.

PEAR

PEAR  qui veut dire  “PHP Extension and Application Repository” propose de nombreuses extensions pour différentes API:

  • Akismet
  • Amazon
  • Blogging
  • Compete
  • Delicious
  • Digg
  • eBay
  • Facebook
  • Google
  • Twitter
  • Yahoo
  • Youtube

et beaucoup plus.

PEAR est une source intéressante pour trouver une classe reliée à un web service. Voici une liste d’autres classes que PEAR pour différents web services.

Alexa

Amazon

Babelfish

Bit.ly

Bing

DeviantArt

Digg

Drop.io

eBay

Facebook

Feeds

Flickr

FriendFeed

Google

Gravatar

ICQ

Last.fm

LinkedIn

MSN

Prowl

reCAPTCHA

Skype

Twitter

Yahoo

Geo localisation par IP

Si vous désirez connaitre la provenance de vos visiteurs, voici deux méthodes pour geo localiser. Bien sûr ce positionnement n’est pas très précis car l’IP dépend de votre FAI, mais la localisation reste intéressante surtout si l’on a des visiteurs du monde entier.

Méthode I en javascript via les API Google : pour obtenir une API KEY

Step 1: Charger Google AJAX API script

<script type="text/javascript" src="http://www.google.com/jsapi?key=API_KEY_GOES_HERE"></script>

Step 2: Extraire la localisation par google.loader.ClientLocation

if(google.loader.ClientLocation)
{
	visitor_lat = google.loader.ClientLocation.latitude;
	visitor_lon = google.loader.ClientLocation.longitude;
	visitor_city = google.loader.ClientLocation.address.city;
	visitor_region = google.loader.ClientLocation.address.region;
	visitor_country = google.loader.ClientLocation.address.country;
	visitor_countrycode = google.loader.ClientLocation.address.country_code;
}
else
{
	// pas trouve
}

Deuxième méthode II en PHP :

10
11
12
13
14
15
16
< ?php		
	 $IpAddress=$_SERVER["REMOTE_ADDR"];
	 $adress = 'http://www.geobytes.com/IpLocator.htm?GetLocation&template=php3.txt&IpAddress='.$IpAddress;
	 $tags = get_meta_tags($adress);
print $tags['city'];  // city name
print $tags['country'];  // country name
?>

web2.0     Étiquettes : , ,

Apprendre la programmation PHP

Voici 16 vidéos tutoriels pour apprendre à programmer en PHP. Le PHP est un langage de scripts libre principalement utilisé pour produire des pages Web dynamiques via un serveur HTTP.

Tout d’abord l’installation d’un serveur  WAMP / MAMP puis le codage de votre premier script.

Ensuite les variables, passage de valeurs entre pages, les tableaux ….

web2.0     Étiquettes :

De Flex à PHP via JSON

Pour envoyer des données de FLEX à un serveur PHP on peut utiliser XML ou JSON.
JSON (JavaScript Object Notation) est un format de données générique. Il utilise la notation des objets JavaScript pour transmettre de l’information structurée.

Pour utiliser Json dans Flex il faut tout d’abord récupérer le .swc à mettre dans le dossier lib de votre projet Flex. Ici le lien Adobe Flex coreLib.

Côté PHP si vous avez une version supérieure à 5.2 pas de soucis si non il faudra récupérer le code ici : php-json

Donc dans l’application Flex on aura :

import mx.collections.ArrayCollection;
import mx.rpc.events.ResultEvent;
import com.adobe.serialization.json.JSON;

Une fonction pour envoyer les data. list de votre dataProvider est encodé via Json en string. Les data sont envoyé via le service sendData.

private function sendPHPData():void
{
var objSend:Object = new Object();
var dataString:String = JSON.encode(list.dataProvider.toArray());
dataString = escape(dataString);
objSend.setTutorials = « true »;
objSend.jsonSendData = dataString;
sendData.send(objSend);
}

et bien sûr :

<mx:HTTPService id=« sendData » url=« sendData.php »

useProxy=« false » method=« GET » resultFormat=« text »

result=« updatedPHPDataResult(event) »>

</mx:HTTPService>

<mx:ArrayCollection id= »myData »></mx:ArrayCollection>

<mx:List id= »list » dataProvider= »{myData} »/>

C’est le code que l’on trouve sur tous les tutoriels. Malheureusement il ne fonctionne pas toujours. J’ai essayé pendant plusieurs jours sur IE7 explorer 7 de transférer des data et curieusement au bout d’un certain nombre de données aucun appel au script PHP. Il y a donc un problème de mémoire cache. Je conseille donc de ne pas utiliser GET mais POST.

Le code PHP :

<?php

if (isset($_REQUEST[‘jsonSendData’])) $jsonString = $_REQUEST[‘jsonSendData’];

$jsonString = urldecode($jsonString);

$data = json_decode($jsonString, true);
print_r($data);

?>

Flex     Étiquettes : , ,