Archive

Archives pour 04/2002

Google

Categories: Oeufs de Pâques Tags:

Les aspirateurs de sites Web

Les internautes possedant des petites connections à l’Internet 56k (dont je fais parti, il ne faut pas croire)

sont souvent contraints à un accès limité et non-permanent au réseau des réseau, contrairement aux internautes

privillegiès cablés et ADSLés :-)

Hors, pour cette première catégorie, il n’existe pas d’autres solutions souvent que de devoir telecharger

un site pour pouvoir accéder aux informations qu’il comporte. On peut alors effectuer l’opération manuellement,

ce qui est souvent lent et qui prend rapidement la tête : click Fichier, click Enregistrer sous,

click Enregistrer (ou Alt + F + S + Enter pour les plus rapides), ou bien aussi click

droit Enregister l’image sous, parfois ce sont aussi des Ctrl + C qui sont utilisés,

si jamais les inombrables JavaScript vous autorisent cette opération.

L’homme se devait de se simplifier la tâche. Et c’est pourquoi il créa l’aspirateur de site. L’aspirateur

vous permet de réaliser toutes ces opérations automatiquement. Il vous suffit de parametrer quelques options

en début de capture, comme par exemple seulement les images, explorer les sous répertoires, les liens liés,

et le tour est joué : vous n’avez plus qu’a attendre que l’aspiration se termine.

Beaucoup d’éditeur de logiciel se sont penchés sur la question. Il existe maintenant beaucoup d’outils.

La plupart sont gratuits, d’autre sont payants (Ouh!).

J’ai pour ma part retenu et testé 2 produit totalement gratuit. Un moyen et un SUPER : Memoweb

et WGET.

MemoWeb

Memoweb

Memoweb est gratuit dans sa version de demo. Toutes les options ne sont

donc pas toutes disponibles. Une publicité est affichée durant toute la durée de la capture (que dis-je?

4 publicités qui utilisent de la bande passant qui est limitée si nous nous plaçons dans l’hypothése d’une

connection 56k) et un logo Memoweb est apposé à tous les documents HTML en

guise de pied de page (gloops!). Un raccourci est créer dans la barre d’outils de Internet Explorer, ainsi

qu’un autre dans le premier niveau du menu démarrer. Vous pourrez toujours le supprimer, mais il reviendra

à chaque utilisation de Memoweb :-( . Ce programme est également un peu buggé. Aussi,

si vous tentez de l’utiliser si vous n’êtes pas connecté au www, il plantera parcequ’il ne pourra pas telecharger

ses pubs =:o. Je vous dis pas si ça plante pendant le telechargement d’un gros fichier :’-(

Mais à coté de ça, Memoweb est très bien : on peut configuer le type de fichiers

à aspirer, les niveaux d’explorations des répertoires et sous-répertoires, et il peut même analyser le code

JavaScript, les applets Java, les animations Flash. On peut spécifier des tailles limites et maximales

d’aspiration des fichiers. Un ensemble de pages Web est aussi créé afin d’explorer l’ensembles des documents

aspirés en local.

WGET

WGET est GNU et a été à l’origine développé pour Linux/Unix.

Vu qu’il était très performant (et qu’il l’est toujours :-) , il a rapidement été porté pour les plateformes DOS et Windows. Comme WGET

est donc totalement gratuit et le code source est également disponible (instructif). Le seul inconvenient énorme de

WGET que j’ai pu trouver est que son utilisation nécessite

un peu d’apprentissage, puisqu’il faut l’utiliser en ligne de commande : pas d’interface graphique comme les

utilisateurs de Windows ont l’habitude d’en voir. Tous se passe comme au bon vieux temps de Unix et de DOS.

WGET

Par conséquent, WGET est très petit (262 ko à télecharger

contre pratiquement 2mo pour Memoweb) et occupe très peu de place en mémoire.

Il ne plante JAMAIS et il n’y a aucune pub (normal). Une fois maitrisé, vous pourrez facilement réaliser

les même opérations qu’avec un autre aspirateur. En effet, WGET

permet d’analyser le code des documents, d’explorer les FTP anonyme ou non, de choisir les documents à

telecharger, de restreindre l’exploration à un répertoire, ou au contraire de létendre. Vous pouvez aussi

éditer un fichier dans lequel vous pourez configurer les options que vous utilisez le plus souvent.

Bref, il est tellement complet que je vais m’arreter là : un fichier d’aide au format HTML et HLP est fourni

avec vous indiquant comme l’utiliser au mieux.

Quelques liens :

Categories: Internet Tags:

PHP – Les chaînes de caractères

This entry is part 7 of 7 in the series PHP - Tutoriel

  1. Apostrophes ou guillemets ?
  2. Caractères spéciaux
  3. Here Doc
  4. Accolades

Apostrophes ou guillemets ?

Un chaîne de caractères est contenue soit entre des guillemets (« ), soit entre des apostrophes ().

Les deux lignes suivantes sont donc equivalentes :


print "Hello!";		// Avec des guillemets

print 'Hello!';		// Avec des apostrophes

Quelle est la différence ? La voici : en utilisant des guillemets, les variables contenues à l’interieur de

la chaîne seront évaluées et remplacées par leur valeur à l’instant t.

Ainsi :


$nom = "Raphaël";

print "Je m'appelle $nom";	// Sortie -> Je m'appelle Raphaël

print 'Je m'appelle $nom';	// Sortie -> Je m'appelle $nom

Caractères spéciaux

Comme en C, on peut utiliser l’anti-slash (\) pour echapper des caractères spéciaux, comme par

exemple, un apostrophe ou des guillemets :


print 'It\'s Sunday and I\'ll go to the Church';	// It's Sunday and I'll go to the Church

print "Et il lui cria : \"Bouh!\" et il sursauta";	// Et il lui cria : "Bouh!" et il sursauta

Il existe aussi des caractères qui ont une signification particulière, comme le montre le tableau ci-dessous.

On appelle ceci des séquences echapes.

Les caractères spéciaux en PHP

Sequences

Signification

\n

Nouvelle ligne (LineFeed). Caractère ASCII 10

\r

Retour chariot (Carriage Return). Caractère ASCII 13

\t

Tabulation. Caractère ASCII 9

\\

Anti-slash lui même

\$

Caractère $. Valable uniquement pour les guillemets (")

Here Doc

Ce qui est bien avec PHP, c’est que l’on peut écrire une chaîne de caractères sur plusieurs lignes :


$html = "

	<html>

	<head>

	<title>Ma page Web</title>

	</head>

	<body>

	<h2>Welcome to Paradise!</h2>

	</body>

	</html>

";

Par contre si on veut pouvoir être tout à fait libre d’utiliser n’importe quel caractère dans une chaîne,

comme les guillemets par exemple, on peut utiliser la syntaxe Here Doc heritée de Perl (que j’aime

bien :-) . On débute la chaîne par <<< et un identifiant quelconque. On écrit ensuite notre texte,

puis on termine en ré-écrivant l’identifiant choisi en DEBUT d’une nouvelle ligne, sans oublier le point-virgule

bien sur.

Par exemple :


$html = <<< MON_DOC_HTML

	<html>

	<head>

	<title>Ma page Web</title>

	<meta name="description" content="Ma Page Oueb">

	<meta name="keywords" content="paradise,web,page,perso">

	</head>

	<body>

	<h2 align="center">Welcome to Paradise!</h2>

	</body>

	</html>

MON_DOC_HTML;

Attention cependant : avec cette syntaxe, les variables sont toujours interprétées.

Accolades

Dans une chaîne avec guillemets, les accolades permettent de specifier des noms de variables comme si elles

se situées hors de cette chaîne.


$var = "N'est ce pas ?";

print "Quelle complexitée! ${'v' . 'a' . 'r'}";		// Une concatenation est effectuée 

							// lors de l'analyse

Les accolades sont également utiles pour passer des tableaux mutli-dimensionnels (que nous verrons plus tard) :


$ar = array();

$ar[] = array("fou");

print "C'est $ar[0][0], non ?";		// Provoque une erreur

print "C'est {$ar[0][0]}, non ?";	// OK!
Categories: PHP Tags:

PHP – Les commentaires

This entry is part 6 of 7 in the series PHP - Tutoriel

Les commentaires permettent de donner des indications dans le script, afin de faciliter sa compréhension au

lecteur.

Ils sont particuliérement utiles lorsque l’on travaille à plusieurs sur un même site web, ou bien lorsque

l’on doit parfois relire un script écrit il y a plusieurs mois.

Certaines personnes, faisant surtout partie de la communauté Linux, soutiennent qu’un code écrit clairement,

sans astuces de programmeurs n’a pas besoin de commentaires. Chacun son école…

La syntaxe des commentaires en PHP est à la fois inspirée du C, du C++ et du système d’exploitation Unix/linux.

Voici les differents types. Les commentaires sont ecrits en vert :



# Début du script

/*

	Voici un script merveilleux

	qui sert à donner l'heure à 

	laquelle la page à été chargée

*/

print date("H:M:S");		// On écrit l'heure sous le format H:M:S

# Fin du script

Tous ce qui se trouve à l’interieur d’un commentaire est tout simplement ignoré par l’interpréteur.

Les commentaires avec /* et */ sont hérités du langage C. Comme on le voit, ils

permettent de commenter du code sur plusieurs lignes. Ce type de commentaire peut être utile lors de la

mise au point d’un script. On peut avoir besoin d’ignorer plusieurs lignes de code, sans pour autant avoir

envie de les supprimer.

Les commentaires en // (qui nous viennent du C++) s’achevent avec la fin de la ligne,

comme pour les commentaires débutant avec #. Ces derniers sont souvent utilisés dans des fichiers

de configuration qui initialisent de nombreuses variables (dans des scripts comme phpBB, phpNuke, phpMyAdmin, etc…),

ceci afin de garder un style Unix.

Categories: PHP Tags:

PHP – Les variables

This entry is part 5 of 7 in the series PHP - Tutoriel
  1. Introduction
  2. Variables dynamiques
  3. Références
  4. Types de données

Introduction

Une variable sert à stocker des données temporaires. C’est à dire que ces données seront perdues entre

deux appels du script.

En PHP, la syntaxe des variables est très étendue, car elle est inpirée de plusieurs langages, notament

du Perl et du C.

Ainsi, les Perliens ne seront pas dépaysés, puisqu’en PHP, les variables débutent par le symbole $

(dollars). Les noms des variables peuvent être composés des lettres de l’alphabet, de nombres, et du caractère

de soulignement.

Voici des noms de variables corrects :


$i

$premier_passage

$telephone1

$telephone2

Pour affecter une valeur à une variable, on utilise l’opérateur = (égal).

Le PHP est un langage non typé. Il n’y a donc pas de déclaration de type comme il peut y en avoir en C.

Il suffit d’indiquer la variable, et de lui affecter une valeur :


$password = "jamesbond007";

print $password;

Cette exemple affiche :


jamesbond007

On peut aussi affecter la valeur d’une variable à une autre variable :


$var1 = "JO";

$var2 = $var1;

print $var2;

Cela affiche :


JO

On peut aussi affecter une même valeur à plusieurs variables d’un seul coup, comme en C :


$var1 = $var2 = $var3 = "Waza";

echo $var1, $var2, $var3;

Résultat :


WazaWazaWaza

Variables dynamiques

En C, on entend par variable dynamique (ou plutôt par tableau dynamique), une variable qui peut avoir une

taille modifiable dans le temps.

En PHP, le dynamisme des variables n’a pas le même sens. Il s’agit en fait de pouvoir jouer avec les noms des

variables.

En effet, regarder cet exemple :


$citation = "T'es comme le H de Hawai, tu sers à rien :-) ";

print ${"citation"};

Résultat :


T'es comme le H de Hawai, tu sers à rien :-) 

En peut faire encore plus fort :


$citation = "T'es comme le H de Hawai, tu sers à rien :-) ";

$var = "citation";

print $$var;

Cela nous donne encore :


T'es comme le H de Hawai, tu sers à rien :-) 

Ou encore mieux :


$citation = "T'es comme le H de Hawai, tu sers à rien :-) ";

$var = "citation";

$finalement = "var";

print $$$finalement;

Nous pourrions multiplier les exemples à l’infini (ou presque : ça dépend de la memoire et de la place disponible

sur la pile de votre machine).

Vu comme ça, cela peut paraitre inutile. Mais il peut y avoir quelques applications interessantes, notament

avec l’utilisation de boucles.

Références

Le PHP permet d’établir des références entre variables. Cela peut paraitre similaire aux pointeurs du C,

mais il y a quelques petites différences. En fait, comme il est écrit dans le manuel officiel de PHP, « les

références sont des alias dans la table des symboles. Le nom de la variable et son contenu ont des noms

différents, ce qui fait que l’on peut donner plusieurs noms au même contenu. »

Pour établir une référence, on utilise l’opérateur & (et commercial, ou esperluette :-) devant la variable.

Ainsi :


$hello = "Hello";

$bonjour = "Bonjour";

echo $hello, $bonjour, "<br>";

$hello = &$bonjour;

echo $hello, $bonjour, "<br>";

$hello = "Buenos Dias";

echo $hello, $bonjour, "<br>";

$hello = "Guten Tag";

echo $hello, $bonjour, "<br>";

Résultat :


HelloBonjour

BonjourBonjour

Buenos DiasBuenos Dias

Guten TagGuten Tag

On se rend compte qu’après la ligne $hello = &$bonjour;, on peut utiliser soit la variable $hello,

soit la variable $bonjour, cela revient au même : elles désignent le même contenu.

Cela peut sembler inutile, mais lorsque nous étudierons les fonctions, cela sera plus parlant.

Types de données

Bien que le PHP soit non typé, les données ont cependant des types. Ainsi, on distinguera 8 de "8",

4 de 4.00.

Il existe 6 types de données :

Les types de données dans PHP

Type

Description

Exemple

integer

Nombres entiers

8

string

Chaînes de caractères

"8"

double

Nombre à virgules flottante (nombres décimaux)

8.00

boolean

Valeur logique, soit true, soit false

true

array

Tableaux

array(1, 2, 3);

integer

Nombres entiers

8

object

Objets

class myclass {};

new myclass();

Nous étudierons les types boolean, array et object plus loin.

Pour connaitre le type d'une donnée, on utilise la fonction gettype(). Cette fonction ne prend

qu'un seul argument qui doit être la variable ou la donnée à tester.

Voici un exemple :


class myclass {};

echo	gettype(8), "<br>",

	gettype("8"), "<br>",

	gettype(8.00), "<br>",

	gettype(true), "<br>",

	gettype(array()), "<br>";

	gettype(myclass()), "<br>";

Ce qui nous donne :


integer

string

double

boolean

array

object

Note : on a utilisé la fonction echo sur plusieurs lignes, ce qui est possible et simplifie

les choses.

On peut aussi modifier le type d'une variable. En C, on appelle ceci le casting.

Pour modifier le type de la variable lui même, on utilise la fonction settype(). Voici la syntaxe de

cette fonction, d'après le manuel PHP :


int settype(mixed var, string type)

Le premier argument, var, peut être de n'importe quel type (c'est le but). Le deuxième argument

doit être une chaîne de caractères representant le type dans lequel convertir la variable. La fonction renvoi

true si l'opération de transtypage a été réussie, sinon false.

Exemple :


$pi = 3.141592654858;

echo $pi, "<br>";

settype($pi, "integer");

echo $pi, "<br>";

Résultat :


3.14159265458

3

On peut aussi modifier le type à l'aide de la syntaxe suivante :


$var = (type) $var

On place le type entre parenthèses (sans guillemets) devant la variable.

Ainsi :


$var = 3.14159265458;

$new = (integer) $var;

echo $new;
Categories: PHP Tags: