Tag: fonction’

PHP: dézipper une archive zip

 - by admin

Besoin d’extraire des fichiers d’une archive .zip ? cette fonction est pour vous:

  • functions.php

[php]
function unzip($location,$newLocation){
if(exec("unzip $location",$arr)){
mkdir($newLocation);
for($i = 1;$i< count($arr);$i++){
$file = trim(preg_replace("~inflating: ~","",$arr[$i]));
copy($location.’/’.$file,$newLocation.’/’.$file);
unlink($location.’/’.$file);
}
return TRUE;
}else{
return FALSE;
}
}
[/php]

  • extractZip.php

[php]
include ‘functions.php’;
if(unzip(‘zipedfiles/test.zip’,'unziped/myNewZip’))
echo ‘Success!’;
else
echo ‘Error’;
[/php]

Facebook rachète Friendfeed

 - by admin

friendfeed-facebookGrande nouvelle dans le domaine des médias sociaux aujourd’hui: Le réseau social Facebook vient de racheter l’agrégateur FriendFeed !

D’après l’annonce, “Tous les employés de FriendFeed rejoindront l’équipe de Facebook, et les 4 fondateurs disposeront de postes d’envergure au sein de l’équipe produit/technique de FB”.

Il est vrai que Friendfeed a été une grande source d’inspiration pour Facebook en termes de nouvelles fonctionnalités, permettant ainsi aux utilisateurs d’importer leur flux d’activité de services tiers (comme YouTube, Flickr ou encore Delicious) ainsi que la possibilité de “liker” un item au sein du feed ou encore de le commenter. mais malgré cela, ainsi que le buzz apparent auprès des early adopters, FriendFeed n’a pas forcément réussi à faire décoller son audience alors que Facebook ne cessait lui de croitre.

Même si cette annonce n’est pas forcément étonnante elle pose néanmoins la question sur la future intégration/convergence entre les 2 services. Pour le moment, et selon le co-fondateur Bret Taylor, FriendFeed continuera à fonctionner “normalement” mais les 2 équipes vont conjuguer leurs compétences et planifient des changements sur le long terme pour peut-être concurrencer Twitter… Wait & See !

[ source ]

Edit: Les 2 compagnies étaient déjà en discussions depuis 2007, pas longtemps après le lancement de FriendFeed. D’après le Wall Street Journal, Facebook aurait déboursé près de 50 millions de $ pour l’acquisition de FriendFeed, 15 millions en cash et le reste en stock options. La quotation de Facebook s’élève à plus de 6.5 millards.

Continue reading “Facebook rachète Friendfeed” »

Authentification NTLM en PHP

 - by admin

Pour le développement d’un intranet pour mon job, j’utilisais jusqu’à présent un script d’authentification NTLM afin que les utilisateurs soient automatiquement connectés sans devoir entrer ni login ni mot de passe. Jusqu’à ce que Microsoft (et mes très chers administrateurs réseaux) force l’installation d’une mise à jour de sécurité pour toutes les versions d’Internet Explorer ce qui rendis mon code totalement inopérant (IE doit représenter 99% des employés… il y a même des versions 6 à mon grand désespoir…)

Après quelques recherches, j’ai (enfin) trouvé un bout de code qui semble très bien fonctionné, qui retourne le nom de l’utilisateur, le domaine sur lequel il est, ainsi que le nom de sa machine:

[php]
$headers = apache_request_headers();

if (!isset($headers['Authorization'])){
header(‘HTTP/1.1 401 Unauthorized’);
header(‘WWW-Authenticate: NTLM’);
exit;
}

$auth = $headers['Authorization'];

if (substr($auth,0,5) == ‘NTLM ‘) {
$msg = base64_decode(substr($auth, 5));
if (substr($msg, 0, 8 ) != "NTLMSSP\x00")
die(‘error header not recognised’);

if ($msg[8] == "\x01") {
$msg2 = "NTLMSSP\x00\x02"."\x00\x00\x00\x00". // target name len/alloc
"\x00\x00\x00\x00". // target name offset
"\x01\x02\x81\x01". // flags
"\x00\x00\x00\x00\x00\x00\x00\x00". // challenge
"\x00\x00\x00\x00\x00\x00\x00\x00". // context
"\x00\x00\x00\x00\x30\x00\x00\x00"; // target info len/alloc/offset

header(‘HTTP/1.1 401 Unauthorized’);
header(‘WWW-Authenticate: NTLM ‘.trim(base64_encode($msg2)));
exit;
}
else if ($msg[8] == "\x03") {
function get_msg_str($msg, $start, $unicode = true) {
$len = (ord($msg[$start+1]) * 256) + ord($msg[$start]);
$off = (ord($msg[$start+5]) * 256) + ord($msg[$start+4]);
if ($unicode)
return str_replace("",  », substr($msg, $off, $len));
else
return substr($msg, $off, $len);
}
$user = get_msg_str($msg, 36);
$domain = get_msg_str($msg, 28);
$workstation = get_msg_str($msg, 44);

print "You are $user from $domain/$workstation";
// result: You are maiis from DOMAIN/MYPC001
}
}
[/php]

Cette méthode est compatible avec Internet Explorer, Firefox et Opera.

Spécifications du NTLM (en anglais)

[source]

Conseils de Google pour accélérer le web

 - by admin

Via un billet sur le Google Blog, Google appelle les développeurs Web à travailler ensemble pour accélérer le Web. « De nombreux protocoles qui motorisent Internet et le Web ont été développés quand le haut débit et les applications Internet riches étaient au stade de l’enfance ». Si Google relève les progrès apportés par HTML 5 par exemple, son évangéliste en charge des performances n’exclut pas de remplacer les protocoles aujourd’hui au centre d’Internet pour mettre en place de nouveaux standards, tournés vers la performance. Objectif pour le géant de Mountain View : faire du navigateur la plate-forme de choix pour « plus d’applications riches en fonctionnalités ou nécessitant des calculs complexes ». Un but que Google ne peut atteindre seul et pour lequel il a besoin d’entraîner dans son sillage la communauté des développeurs au sens large.

Signalons également que Google publie ses propres « trucs et astuces » pour accélérer les applications Web. Ces bonnes pratiques sont accessibles en ligne ici.

Microsoft Bing… ou pas

 - by admin

Un temps annoncé sous le nom de Kumo, le nouveau moteur de recherche de Microsoft s’appellera Bing. À découvrir pour la France à partir du mercredi 3 juin dans une version bêta.

logo-bingLe voile est désormais partiellement levé sur la nouvelle offensive de Microsoft dans le domaine de la recherche Web. Bing aura la lourde tâche de relever les parts de marché de Microsoft dans un secteur largement dominé par Google. Cela risque de ne pas être simple avec un réflexe Google bien ancré chez l’immense majorité des internautes mais le PDG de Microsoft veut y croire.

Pour Steve Ballmer, si les moteurs de recherche actuels font un travail honorable quand il s’agit d’aider les internautes à naviguer sur le Web et trouver l’information, ils sont perfectibles quand il s’agit de leur permettre d’utiliser l’information trouvée. C’est à ce niveau que Bing devrait donc prendre toute sa mesure, aidant notamment à la prise de décision sans pour autant sacrifier à  » l’essence  » même d’un moteur de recherche : la pertinence.

Pour aider à identifier, parmi les résultats de recherche, l’information la plus pertinente, Bing va proposer un ensemble de fonctionnalités comme par exemple Quick Preview qui affichera ( dans la page de résultats et au survol de la souris ) une fenêtre avec un extrait plus explicite du résultat pointé. D’autres fonctionnalités se chargeront de permettre une meilleure organisation des résultats avec notamment un volet d’exploration dédié ( des sous-rubriques pour caractériser une recherche ), tandis que pour la prise de décision évoquée par Ballmer, Bing permettra de comparer par exemple les prix de plusieurs hôtels et s’attachera à certains domaines comme les voyages, la santé…

Sur ces simples déclarations, difficile pour le moment de juger Bing qui sera mis en ligne lundi 1er juin dans une version finale aux États-Unis. Les autres pays et notamment la France devront attendre le mercredi 3 juin pour tester une version bêta.

N’étant pas du tout un fan de Microsoft, j’attends de voir 8-)
Continue reading “Microsoft Bing… ou pas” »

PHP fonctions, bibliothèque de fonctions PHP

 - by admin

icon-validphpfonctions est une bibliothèque de fonctions php en ligne.
Tout le monde peut y ajouter ses propres ressources, phpfonctions est un site collaboratif et aucune inscription est nécessaire pour participer.

Chaque développeur possède ses propres fonctions qu’il utilise pour tous les sites sur lesquels il travaille. Pourquoi ne pas partager ? Tout le monde a eu besoin a un moment ou un autre d’une fonction particulière, rien ne sert de ré-inventer la roue !

Créer des url raccourcies avec u.nu

 - by admin

Il est parfois utile de créer des urls raccourcies, et dans ce domaine, u.nu gagne la palme d’or.

Grâce à leur API, David Walsh a développé une petite fonction php qui va bien:

[php]
function get_unu_url($url)
{
$url = ‘http://u.nu/unu-api-simple?url=’.urlencode($url);
$ch = curl_init();
$timeout = 5;
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);
$url = curl_exec($ch);
curl_close($ch);
return trim($url);
}

$short_url = get_unu_url(‘http://blog.maiis.ch/creer-des-url-raccourcies-avec-unu/’);
//returns http://u.nu/78m5
[/php]

Cette API a l’avantage de n’utilier ni JSON, ni XML, elle retourne directement l’URL, rien d’autre !

WhatTheFont pour iPhone

 - by admin

WhatTheFont [lien direct iTunes] est une application pour iPhone qui rendra bien des services à ceux qui jonglent régulièrement avec des polices de caractère. Il se connecte au service en ligne du même nom pour identifier une fonte que vous aurez capturée à l’aide de l’appareil photo du téléphone d’Apple.

fonts-screen1

L’application fonctionne très bien et les résultats sont aussi fiables que rapides. Un outil indispensable et pas ruineux puisque le service est entièrement gratuit !

via NextWay.ch : Le blog | Archives | WhatTheFont pour iPhone.

Weekly Bookmarks #1 (Diigo)

 - by admin

Posted from Diigo. The rest of my favorite links are here.

Optimiser MySql my.cnf

 - by admin

 

Logo Mysql

Vous possédez une base MySQL que vous souhaitez optimiser ? Vous n’êtes pas un expert MySQL et vous ne comprenez pas vraiment tous les paramètres contenus dans le fichier de configuration de votre instance MySQL ?

 

Et bien je pense avoir trouvé la réponse à votre problème :

http://day32.com/MySQL/tuning-primer.sh

Il s’agit d’un script Shell qui permet de faire des préconisations à chaud de votre base de données. Il vous donne un ensemble d’astuces en fonction de l’utilisation réelle que vous faites de votre base :

  • Slow Query Log
  • Max Connections
  • Worker Threads
  • Key Buffer
  • Query Cache
  • Sort Buffer
  • Joins
  • Temp Tables
  • Table (Open & Definition) Cache
  • Table Locking
  • Table Scans (read_buffer)
  • Innodb Status

Il suffit d’exécuter le script et de modifier le fichier de configuration de votre base en fonction des recommandations faites.

#sh tuning-primer.sh