<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Kodeya</title>
	<atom:link href="http://www.kodeya.com/feed" rel="self" type="application/rss+xml" />
	<link>http://www.kodeya.com</link>
	<description>PHP, MYSQL, Javascript, HTML...Just do it!</description>
	<lastBuildDate>Fri, 20 May 2011 07:14:26 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.2</generator>
		<item>
		<title>Copier un objet en php</title>
		<link>http://www.kodeya.com/php-developpement-web/copier-un-objet-en-php-141.htm</link>
		<comments>http://www.kodeya.com/php-developpement-web/copier-un-objet-en-php-141.htm#comments</comments>
		<pubDate>Fri, 20 May 2011 07:07:01 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[clônage]]></category>
		<category><![CDATA[copie]]></category>
		<category><![CDATA[objet]]></category>

		<guid isPermaLink="false">http://www.kodeya.com/?p=141</guid>
		<description><![CDATA[Les objects ( instances des classes ) ne se comportent pas de la même façon que des tableaux ( array ) en PHP. En effet, si on veut copier un tableau il nous suffit de l&#8217;assigner à une variable ( $b dans l&#8217;exemple ci-dessous).  On peut modifier par la suite les données de ce nouveau [...]]]></description>
			<content:encoded><![CDATA[<p>Les objects ( instances des classes ) ne se comportent pas de la même façon que des tableaux ( array ) en PHP.<br />
En effet, si on veut copier un tableau il nous suffit de l&#8217;assigner à une variable ( $b dans l&#8217;exemple ci-dessous).  On peut modifier par la suite les données de ce nouveau tableau sans affecter les valeurs du tableau copié.</p>
<pre>$a = array( 'x' =&gt; 5 ) ;
$b = $a ;
$b['x'] = 10 ;
print_r($a);
// affiche
//Array ( [x] =&gt; 5 )
print_r($b);
// affiche Array ( [x] =&gt; 10 )</pre>
<p>Si on fait la même chose avec un objet on obtiens un  résultat inattendu.</p>
<p><span id="more-141"></span></p>
<pre>class Test{
 public $a ;   
}
$a = new Test;
$a-&gt;a = 10 ;
$b = $a ;
print_r( $a );
// affiche
Test Object
(
    [a] =&gt; 10
)
print_r( $b );
// affiche
Test Object
(
    [a] =&gt; 10
)

$b-&gt;a = 5 ;
print_r( $b );
// affiche
Test Object
(
    [a] =&gt; 5
)
// jusqu'à là tout va bien. Mais...
print_r( $a );
// affiche
Test Object
(
    [a] =&gt; 5
)
// uhhh... c'est pas ce que je voulais <img src='http://www.kodeya.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </pre>
<p>En fait, lors d&#8217;une copie par assignation l&#8217;objet n&#8217;est pas réellement copié mais assigné comme référence. C&#8217;est à dire, les objets avec des noms différents ont le même contenu. Ou pour être plus exact, un contenu a des noms (noms des variables) différents. Du coup, si on change des valeurs d&#8217;un objet ($b dans notre exemple) on change automatiquement les valeurs de l&#8217;autre ( $a dans notre exemple). Voir la doc PHP pour plus d&#8217;info sur les références: http://fr2.php.net/manual/fr/language.references.php</p>
<p>On peut évidement faire une copie manuellement mais il existe en php un moyen plus simple. C&#8217;est le <strong>clônage</strong>. Pour faire le clônage d&#8217;un objet il faut ajouter dans notre class une <strong>méthode &laquo;&nbsp;magique&nbsp;&raquo; __clone(){}</strong> . Oui tout simplement: public function __clone(){} . En suite pour avoir une copie on appelle une espèce de fonction qui n&#8217;est pas vraiment une fonction mais un &laquo;&nbsp;mot-clé&nbsp;&raquo; <strong>clone</strong>.</p>
<pre>class Test{
 public $a ;
 public function __clone(){}  
}
$a = new Test;
$a-&gt;a = 10 ;
$b = clone $a ;
print_r( $a );
// affiche
Test Object
(
    [a] =&gt; 10
)
print_r( $b );
// affiche
Test Object
(
    [a] =&gt; 10
)
// bon ça on le savait déjà. Maintenant...
$b-&gt;a = 5 ;
print_r( $b );
// affiche
Test Object
(
    [a] =&gt; 5
)
// et enfin ...
print_r( $a );
// affiche
Test Object
(
    [a] =&gt; 10
)
// là c'est bon</pre>
<p>Pour plus d&#8217;info sur le clônage :</p>
<p>http://fr2.php.net/manual/fr/language.oop5.cloning.php</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kodeya.com/php-developpement-web/copier-un-objet-en-php-141.htm/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP Construire une expression régulière avec des meta-caractères</title>
		<link>http://www.kodeya.com/php-developpement-web/expressions-regulieres/php-construire-une-expression-reguliere-avec-des-meta-caracteres-92.htm</link>
		<comments>http://www.kodeya.com/php-developpement-web/expressions-regulieres/php-construire-une-expression-reguliere-avec-des-meta-caracteres-92.htm#comments</comments>
		<pubDate>Mon, 09 May 2011 08:59:56 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP - Expressions régulières]]></category>
		<category><![CDATA[expression reguliere]]></category>
		<category><![CDATA[meta-caracteres]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.kodeya.com/?p=92</guid>
		<description><![CDATA[Construire une expression régulière Une expression régulière est une chaine composées de caractères standards (mots ou tout simplement des caractères à rechercher) et caractères spéciaux ( méta-caractères ). Une expression régulière est entourée de délimiteurs. N&#8217;importe quelle caractère sauf caractères alphanumériques et antislash  peut être être utilisé comme un délimiteur. Parmi des méta-caractères en PHP [...]]]></description>
			<content:encoded><![CDATA[<h2>Construire une expression régulière</h2>
<p>Une expression régulière est une chaine composées de caractères  standards (mots ou tout simplement des caractères à rechercher) et  caractères spéciaux ( méta-caractères ). Une expression régulière est  entourée de délimiteurs. N&#8217;importe quelle caractère sauf caractères  alphanumériques et antislash  peut être être utilisé comme un  délimiteur.</p>
<p>Parmi des méta-caractères en PHP en trouve :</p>
<p><strong>Méta-caractère . ( point ) </strong><br />
Remplace n&#8217;importe quel caractère, hormis le caractère de nouvelle ligne  ( rn sur le système OS Windows et n sur le système Linux / Unix ) .<br />
<img title="Lire la suite…" src="http://www.kodeya.com/wp-includes/js/tinymce/plugins/wordpress/img/trans.gif" alt="" /></p>
<p><strong>Méta-caractère   antislash</strong><br />
Caractère de protection. Par exemple, si on recherche un point dans une  chaine et sachant qu&#8217;il y a aussi un méta-caractères point qui  représente n&#8217;importe quel caractère la seule façon de trouver notre  point c&#8217;est d&#8217;utiliser l&#8217;antislash. Exemple :</p>
<p><span id="more-92"></span></p>
<p>echo preg_match( &#8216;/./&#8217;, &#8216;il n&#8217;y a pas de point ici&#8217;) ;<br />
affiche 1 – trouvé . Remarquez l&#8217;utilisation de l&#8217;antisash devant l&#8217;apostrophe</p>
<p>echo preg_match( &#8216;/./&#8217;, &#8216;il n&#8217;y a pas de point ici&#8217;) ;<br />
affiche 0 – non trouvé .</p>
<p>echo preg_match( &#8216;/./&#8217;, &#8216;il y a  point ici.&#8217;) ;<br />
affiche 1 – trouvé .</p>
<p><strong>Méta-caractère ^ ( accent circonflexe)</strong></p>
<p>Accent circonflexe indique le début de la chaîne. Ce qui veux dire  que  l&#8217;expression qui suit l&#8217;accent circonflexe doit se trouver au début  de la chaine sujet.</p>
<p>Exemple :</p>
<p>$sujet = &#8216;www.kodeya.com&#8217; ;<br />
echo preg_match( &#8216;/^www.kodeya.com/&#8217;, $sujet ) ;</p>
<p>affiche 1 – chaine trouvée</p>
<p>$sujet = &#8216; www.kodeya.com&#8217; // avec 1 espace devant<br />
echo preg_match( &#8216;/^www.kodeya.com/&#8217;, $sujet ) ;<br />
affiche 0 – chaine non trouvée</p>
<p><strong>Méta-caractère $ ( dollar )</strong><br />
La fin de la chaîne sujet. L&#8217;expression rationnelle qui précède le méta-caractère &#8216;$&#8217; doit se trouver en fin de la chaine sujet.</p>
<p>Example :</p>
<p>$sujet = &#8216;www.kodeya.com&#8217; ;<br />
echo preg_match( &#8216;/www.kodeya.com$/&#8217;, $sujet ) ;</p>
<p>affiche 1 – chaine trouvée</p>
<p>$sujet = &#8216;www.kodeya.com &#8216;; // avec 1 espace à la fin<br />
echo preg_match( &#8216;/www.kodeya.com $/&#8217;, $sujet ) ;<br />
affiche 0 – chaine non trouvée</p>
<p><strong>Expression régulières &#8211; Les classes de caractères</strong></p>
<p><strong>Méta-caractères :  [ ( crochet ouvrant ) et  ] ( crochet fermant )</strong><br />
Définissent une liste de caractères à rechercher. La partie du masque  qui est entourée de crochets est appelée classe de caractères.<br />
Exemple :</p>
<p>echo preg_match(&#8216;/[abc]/&#8217;, &#8216;kodeya&#8217;);<br />
affiche 1 – trouvé car la chaine sujet contiens bien « a »</p>
<p>Dans les classes de caractères, les seuls méta-caractères autorisés sont :<br />
<strong>Meta-caractère  antislash</strong> &#8211; caractère de protection</p>
<p><strong>Meta-caractère</strong> <strong>-</strong> (tiret ) a une  signification particulière , il permet de définir un intervalle de  recherche. A utiliser avec des lettres ou/et des chiffres.</p>
<p>echo preg_match(&#8216;/[a-z]/&#8217;, &#8216;abécéder&#8217;); // on recherche des caractères de a à z<br />
affiche 1 – chaine trouvé</p>
<p>echo preg_match(&#8216;/[a-z]/&#8217;, &#8217;1245&#8242;);<br />
affiche 0 – en effet, notre chaine sujet contiens uniquement des chiffres</p>
<p><strong>Meta-caractère  ^ </strong>( accent circonflexe )   a une  signification particulière s&#8217;il est utilisé à l&#8217;intérieur des crochets  et uniquement si placé tout au début de la classe. ^ signifie la  négation.</p>
<p>// on recherche des caractères différents des caractères qui  se trouve entre &#8216;a&#8217; est &#8216;z&#8217;<br />
echo preg_match(&#8216;/[^a-z]/&#8217;, &#8217;123_ abz&#8217;);<br />
affiche 1 – chaine trouvé. Notre chaine sujet contiens bien des caractères différents des lettres.</p>
<p>Attention :</p>
<p>echo preg_match(&#8216;/[a-z^]/&#8217;, &#8217;123&#8242;);<br />
affiche 0 – non trouvé. Accent  circonflexe qui n&#8217;est placé au début de  la classe représente simplement&#8230;  l&#8217;accent  circonflexe.</p>
<p>echo preg_match(&#8216;/[a-z^]/&#8217;, &#8217;123^&#8217;);<br />
affiche 1 – trouvé. Accent  circonflexe est bien dans la chaine sujet.</p>
<p>Il en existe PHP  un certain nombre de classe d&#8217;expressions  régulières prédéfinies. Ces classes de caractères sont définies par  UNIX. Voici un tableau récapitulant certaines de ces classes :</p>
<p>Description<br />
<strong>[:alnum:]<br />
</strong>caractères alphanumériques (équivalent à [A-Za-z0-9])<br />
<strong>[:alpha:]</strong><br />
caractères alphabétiques ([A-Za-z])<br />
<strong>[:blank:]</strong><br />
caractères blanc (espace, tabulation)<br />
<strong>[:ctrl:]</strong><br />
caractères de contrôle (les premiers du code ASCII<br />
<strong>[:digit:]</strong><br />
chiffre ([0-9])<br />
<strong>[:graph:]</strong><br />
caractère d&#8217;imprimerie (qui fait une marque sur l&#8217;écran en quelque sorte)<br />
<strong>[:print:]</strong><br />
caractère imprimable (qui passe à l&#8217;imprimante &#8230; tout sauf les caractères de contrôle)<br />
<strong>[:punct:]</strong><br />
caractère de ponctuation<br />
<strong>[:space:]</strong><br />
caractère d&#8217;espacement<br />
<strong>[:upper:]</strong><br />
caractère majuscule<br />
[<strong> <img src='http://www.kodeya.com/wp-includes/images/smilies/icon_mad.gif' alt=':x' class='wp-smiley' /> digit:]</strong><br />
caractère hexadécimal</p>
<p><strong>Méta-caractère | ( barre verticale )</strong><br />
Opérateur « ou » &#8211;  caractère d&#8217;alternative.</p>
<p>echo preg_match(&#8216;/site|kodeya/&#8217;,  &#8216;site www.kodeya.com&#8217; ); // on recherche des mots  &#8216;site&#8217; ou &#8216;kodeya&#8217;<br />
affiche 1 – chaine trouvé</p>
<p>echo preg_match(&#8216;/site|kodeya/&#8217;,  &#8216;mon ami google&#8217; );<br />
affiche 0 – ni site ni kodeya ne se trouvent pas dans la chaine sujet</p>
<p><strong>Méta-caractères &#8216;(&#8216; ,  &#8216;</strong><strong> )&#8217;</strong> &#8211;   parenthèse ouvrante  et  parenthèse fermante indiquent  respectivement  le début et la fin de sous-masque qui doit être recherché dans la chaine  sujet et capturé.</p>
<p>// on recherche le mot kodeya et on le met dans le tableau $capture</p>
<p>echo preg_match(&#8216;/(kodeya)/&#8217;,  &#8216;site www.kodeya.com&#8217; , $capture);<br />
affiche 1 – chaine trouvé</p>
<p><strong>Les quantificateurs</strong></p>
<p>Un quantificateur permet de définir le nombre de fois  dont  l&#8217;élément le précédant peut se reproduire.</p>
<p><strong>Méta-caractère ? ( point d&#8217;interrogation )</strong><br />
Quantificateur de 0 ou 1  fois</p>
<p>echo preg_match(&#8216;/z?/&#8217;,  &#8216;www.kodeya.com&#8217; );<br />
affiche 1 –  trouvé , Il y a bien 0  &laquo;&nbsp;z&nbsp;&raquo; dans la chaine sujet</p>
<p>echo preg_match(&#8216;/k?/&#8217;,  &#8216;www.kodeya.com&#8217; );<br />
affiche 1 – le &#8216;k&#8217; est bien présent dans la chaine sujet</p>
<p><strong>Méta-caractère * ( étoile )</strong><br />
Quantificateur de 0 ou plus.</p>
<p>echo preg_match(&#8216;/z*/&#8217;,  &#8216;www.kodeya.com&#8217; );<br />
affiche 1 –  trouvé , Il y a bien 0  &laquo;&nbsp;z&nbsp;&raquo; dans la chaine sujet</p>
<p>echo preg_match(&#8216;/k*/&#8217;,  &#8216;www.kodeya.com&#8217; );<br />
affiche 1 – le caractér &#8216;k&#8217; est bien présent dans la chaine sujet</p>
<p><strong>Méta-caractère + ( plus )</strong><br />
Quantificateur de 1 ou plus.</p>
<p>echo preg_match(&#8216;/z+/&#8217;,  &#8216;www.kodeya.com&#8217; );<br />
affiche 0 –  non trouvé , en effet, pas de &laquo;&nbsp;z&nbsp;&raquo; dans la chaine sujet</p>
<p>echo preg_match(&#8216;/w+/&#8217;,  &#8216;www.kodeya.com&#8217; );<br />
affiche 1 – le caractér &#8216;w&#8217; est bien présent dans la chaine sujet</p>
<p><strong>Méta-caractères  &#8216;{&#8216;  , &#8216;}&#8217; &#8211;  accolade ouvrante  et  accolade fermante</strong><br />
Les accolades permettent de définir un nombre précis de fois qu&#8217;un masque doit se trouver dans une chaine sujet.<br />
Utilisation :<br />
{x} : la chaîne doit être répétée  x fois.<br />
echo preg_match(&#8216;/o{2}/&#8217;,  &#8216;www.kodeya.com&#8217; );<br />
affiche 0 –  non trouvé .</p>
<p>La condition o{2} est équivalente à &#8216;oo&#8217;. Même s&#8217;il y 2 lettres « o » dans la chaine sujet elles ne se suivent pas.</p>
<p>echo preg_match(&#8216;/w{2}/&#8217;,  &#8216;www.kodeya.com&#8217; );<br />
affiche 1 –  trouvé . On a bien 2 lettres &#8216;w&#8217; ensemble dans la chaine sujet.</p>
<p>{x, y} : la chaîne peut être répétée de x fois à y fois.</p>
<p>echo preg_match(&#8216;/w{1,2}/&#8217;,  &#8216;www.kodeya.com&#8217; );<br />
affiche 1 –  trouvé  même si il y a  3 &#8216;w&#8217;.</p>
<p>La condition w{2} est equivalente à la recherche de &#8216;ww&#8217; dans la chaine sujet.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kodeya.com/php-developpement-web/expressions-regulieres/php-construire-une-expression-reguliere-avec-des-meta-caracteres-92.htm/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Convertir base de données en UTF-8 sur Windows</title>
		<link>http://www.kodeya.com/mysql/convertir-base-de-donnees-en-utf-8-sur-windows-73.htm</link>
		<comments>http://www.kodeya.com/mysql/convertir-base-de-donnees-en-utf-8-sur-windows-73.htm#comments</comments>
		<pubDate>Wed, 04 May 2011 10:14:39 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[MYSQL]]></category>
		<category><![CDATA[base de données]]></category>
		<category><![CDATA[convertir base de données en utf8]]></category>
		<category><![CDATA[mysql]]></category>

		<guid isPermaLink="false">http://www.kodeya.com/?p=73</guid>
		<description><![CDATA[Voici une démarche à suivre pour convertir votre base de données non UTF-8 ( dans mon cas la BDD est en latin1_general_ci pour l&#8217;encodage du site ISO-8859-1)  en UTF-8. J&#8217;ai essayé plusieurs  solutions mais celle là est la plus simple est efficace. OS : Windows, Base de données: MySQL 1. Exporter la base de données [...]]]></description>
			<content:encoded><![CDATA[<p>Voici une démarche à suivre pour convertir votre base de données non UTF-8 ( dans mon cas la BDD est en latin1_general_ci pour l&#8217;encodage du site ISO-8859-1)  en UTF-8. J&#8217;ai essayé plusieurs  solutions mais celle là est la plus simple est efficace.</p>
<p>OS : Windows,<br />
Base de données: MySQL</p>
<p>1. Exporter la base de données (faire un dump)</p>
<p>Exportez la structure et les données de votre BDD avec PhpMyAdmin dans un fichier.</p>
<p>Pour les fans de ligne de commande :</p>
<p>mysqldump -u {$user} -p -B {$nom_de_la_bdd}  &#8211;skip-set-charset -n &gt; db.dump.sql</p>
<p>2. Ouvrir le fichier dump avec Notepad++<br />
3. Encoder le fichier en UTF8: Menu &gt; Encodage &gt; Encoder en UTF8<br />
4. Convertir le fichier en UTF-8: Menu &gt; Encodage &gt; Convertir en UTF8<br />
5. Si vous avez utilisé la commande mysqldump supprimez la ligne &laquo;&nbsp;USE `$nom_de_la_bdd`;&nbsp;&raquo; . Nous allons préciser le nom de la base de données plus tard.<br />
6. Recherchez et Remplacez latin1 par utf8<br />
7. Enregistrez le fichier dump modifié.</p>
<p>8. Importez le fichier dump dans une nouvelle base de donnée soit par PhpMyAdmin ( onglet &laquo;&nbsp;Importer&nbsp;&raquo;) soit en ligne de commande.</p>
<p>mysql &#8211;default-character-set=utf8 -u {$user} -p -B {$nom_de_la_bdd_utf8} &lt; db.dump.sql</p>
<p>C&#8217;est fait.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kodeya.com/mysql/convertir-base-de-donnees-en-utf-8-sur-windows-73.htm/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP &#8211; Expressions régulières</title>
		<link>http://www.kodeya.com/php-developpement-web/expressions-regulieres/php-expressions-regulieres-79.htm</link>
		<comments>http://www.kodeya.com/php-developpement-web/expressions-regulieres/php-expressions-regulieres-79.htm#comments</comments>
		<pubDate>Wed, 04 May 2011 09:37:23 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP - Expressions régulières]]></category>

		<guid isPermaLink="false">http://www.kodeya.com/?p=79</guid>
		<description><![CDATA[Une expression régulière qu&#8217;est-ce que c&#8217;est? Les expressions régulières , ou expressions rationnelles sont des chaines composées de caractères ASCII. Une expression rationnelle est un masque, qu&#8217;on peux appeler aussi modèle ou motif, utilisé pour effectuer une recherche dans une chaine de caractère des portions correspondants au masque. Un exemple très simple de ce qui [...]]]></description>
			<content:encoded><![CDATA[<h2>Une expression régulière qu&#8217;est-ce que c&#8217;est?</h2>
<p>Les expressions régulières , ou expressions rationnelles sont des chaines composées de caractères ASCII.  Une expression rationnelle est un masque, qu&#8217;on peux appeler aussi  modèle ou motif, utilisé pour effectuer une recherche dans une chaine de caractère des portions correspondants au masque. Un exemple très simple de ce qui est un masque : expression régulière qui serait &laquo;&nbsp;kodeya.com est un super site&nbsp;&raquo;, pourra correspondre à une partie de la chaîne comme &laquo;&nbsp;www.kodeya.com est un super site sur le développement&nbsp;&raquo;.</p>
<h2>A quoi ça sert une expression régulière ?</h2>
<p>Des expressions rationnelles permettent la recherche des parties de la chaine sujet correspondantes au masque pour les remplacer ou les extraire de la chaine sujet. Vous pouvez ainsi facilement filtrer le contenu des formulaires soumis en recherchant, par exemple,  des balises html ( frame, script, flash, etc&#8230; ), vérifier si les données sont en bon format.</p>
<h2>Fonctions PHP</h2>
<p>PHP fournit deux types de fonctions  qui permettent de travailler avec des chaines à l&#8217;aide d&#8217;expressions régulières  :  POSIX et  PCRE. Les fonctions PCRE sont compatible PERL ( langage de programmation) et commencent par le préfixe &laquo;&nbsp;preg_&nbsp;&raquo;  .  Ces fonctions sont plus puissantes en terme de rapidité et puissance de traitement.</p>
<p><span id="more-79"></span></p>
<p>C&#8217;est pour quoi on va les étudier plus en détails.  Voici une liste non exhaustive de fonctions PCRE :</p>
<p>preg_match_all — Expression rationnelle globale<br />
preg_match — Expression rationnelle standard<br />
preg_quote — Protection des caractères spéciaux des expressions rationnelles<br />
preg_replace_callback — Rechercher et remplacer par expression rationnelle standard en utilisant une fonction de callback<br />
preg_replace — Rechercher et remplacer par expression rationnelle standard<br />
preg_split — Éclate une chaîne par expression rationnelle</p>
<p>Nous allons utiliser la fonction preg_match() pour nos exemples. Mais avant de continuer voici un petit extrait du manuel php sur l&#8217;utilisation de cette fonction:</p>
<h3>Fontion PHP preg_match &#8211; description</h3>
<p><strong><br />
</strong></p>
<pre>int preg_match ( string $pattern , string $subject [, array &amp;$matches [, int $flags [, int $offset ]]] )</pre>
<p>Analyse subject pour trouver l&#8217;expression qui correspond à pattern .</p>
<h4>Liste de paramètres :</h4>
<pre>pattern</pre>
<p>Le masque à chercher, sous la forme d&#8217;une chaîne de caractères.</p>
<pre>subject</pre>
<p>La chaîne d&#8217;entrée.</p>
<pre>matches</pre>
<p>Si matches est fourni, il sera rempli par les résultats de la recherche. $matches[0] contiendra le texte qui satisfait le masque complet, $matches[1] contiendra le texte qui satisfait la première parenthèse capturante, etc.</p>
<h4>Valeurs de retour :</h4>
<p>preg_match() retourne le nombre de fois où le masque pattern a été trouvé. Cela peut aller de 0 (pas de solution) à un 1 car preg_match() s&#8217;arrête dès qu&#8217;elle a trouvé une première solution.<br />
preg_match() retourne FALSE si une erreur survient.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kodeya.com/php-developpement-web/expressions-regulieres/php-expressions-regulieres-79.htm/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Récupérer des liens d&#8217;une page web</title>
		<link>http://www.kodeya.com/php-developpement-web/recuperer-des-liens-page-web-56.htm</link>
		<comments>http://www.kodeya.com/php-developpement-web/recuperer-des-liens-page-web-56.htm#comments</comments>
		<pubDate>Wed, 03 Jun 2009 17:00:32 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[PHP - Expressions régulières]]></category>
		<category><![CDATA[expression reguliere]]></category>
		<category><![CDATA[récupérer des liens]]></category>

		<guid isPermaLink="false">http://www.kodeya.com/?p=56</guid>
		<description><![CDATA[Récupération des liens d&#8217;une page ( la valeur d&#8217;attribut &#8216;href&#8217; de la balise &#60;a&#62;) n&#8217;est pas toujours une tâche facile. En effet, une page web peut être du type html ou xhtml, des balises peuvent être écrits en minuscule ou majuscule, des attributs des balises peuvent être entourées par les quotes simples ou doubles ou [...]]]></description>
			<content:encoded><![CDATA[<p>Récupération des liens d&#8217;une page ( la valeur d&#8217;attribut &#8216;href&#8217; de la balise &lt;a&gt;)  n&#8217;est pas toujours une tâche facile.<br />
En effet, une page web peut être du type html ou xhtml, des balises peuvent être écrits en minuscule ou majuscule, des attributs des balises peuvent être entourées par les quotes simples ou doubles ou ne pas du tout avoir de quotes.</p>
<p>Voici une expression régulières qui marchera dans tous les cas :<br />
<span id="more-56"></span></p>
<p><strong>$reg_exp = &#8216;#&lt;a[^&gt;]*href=["\']?([^"\'&gt; ]*)["\']?[^&gt;]*&gt;#is&#8217; ;</strong></p>
<p>Voici la page de test :<br />
<code><br />
&lt;?php</p>
<p>$content = file_get_contents('http://www.kodeya.com');<br />
$reg_exp = '#&lt;a[^&gt;]*href=["\']?([^"\'&gt; ]*)["\']?[^&gt;]*&gt;#is' ;<br />
if( preg_match_all(  $reg_exp ,  $content, $matches )){</p>
<p>echo '&lt;pre&gt;';<br />
print_r( $matches[1] );<br />
echo '&lt;/pre&gt;' ;</p>
<p>}<br />
?&gt;</code></p>
<p>Ce qui donne comme résultat tous les liens de la page d&#8217;accueil :</p>
<pre>
Array
(
    [0] => http://www.kodeya.com/
    [1] => http://www.kodeya.com/feed
    [2] => mailto:xxx@gmail.com
    [3] => http://www.kodeya.com/
    [4] => http://www.kodeya.com/
    [5] => http://www.kodeya.com/about
    [6] => http://www.kodeya.com/php-developpement-web
    [7] => http://www.kodeya.com/php-developpement-web/recuperer-des-liens-page-web-56.htm
    [8] => http://www.kodeya.com/php-developpement-web/recuperer-des-liens-page-web-56.htm#comments
    [9] => http://www.kodeya.com/category/php-developpement-web
    [10] => http://www.kodeya.com/category/php-developpement-web/expressions-regulieres
    [11] => http://www.kodeya.com/tag/expression-reguliere
    [12] => http://www.kodeya.com/tag/php
    [13] => http://www.kodeya.com/tag/recuperer-des-liens
    [14] => http://www.kodeya.com/notes/hello-world-1.htm
    [15] => http://www.kodeya.com/notes/hello-world-1.htm#comments
    [16] => http://www.kodeya.com/category/notes
    [17] => http://www.kodeya.com/php-developpement-web/recuperer-des-liens-page-web-56.htm
    [18] => http://www.kodeya.com/notes/hello-world-1.htm
    [19] => http://www.kodeya.com/category/notes
    [20] => http://www.kodeya.com/category/php-developpement-web
    [21] => http://www.kodeya.com/category/php-developpement-web/expressions-regulieres
    [22] => http://www.kodeya.com/about
    [23] => http://www.kodeya.com/php-developpement-web
    [24] => http://www.kodeya.com/php-developpement-web/php-expressions-regulieres
    [25] => http://www.kodeya.com/php-developpement-web/php-construire-expression-reguliere-meta-caracteres
    [26] => http://www.kodeya.com/tag/expression-reguliere
    [27] => http://www.kodeya.com/tag/php
    [28] => http://www.kodeya.com/tag/recuperer-des-liens
)
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.kodeya.com/php-developpement-web/recuperer-des-liens-page-web-56.htm/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>echo &#171;&#160;Hello world!&#160;&#187;</title>
		<link>http://www.kodeya.com/notes/hello-world-1.htm</link>
		<comments>http://www.kodeya.com/notes/hello-world-1.htm#comments</comments>
		<pubDate>Sat, 14 Feb 2009 12:50:26 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Notes]]></category>

		<guid isPermaLink="false">http://www.kodeya.com/?p=1</guid>
		<description><![CDATA[Salut&#8230; Je suis comme cette chaussure qui est mal chaussée : pas le temps de m&#8217;occuper de mon propre site. Je n&#8217;ai q&#8217;une chose à dire : en cours de construction.]]></description>
			<content:encoded><![CDATA[<p>Salut&#8230; Je suis comme cette chaussure qui est mal chaussée : pas le temps de m&#8217;occuper de mon propre site.</p>
<p>Je n&#8217;ai q&#8217;une chose à dire : en cours de construction.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kodeya.com/notes/hello-world-1.htm/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.793 seconds -->

