Pages 1 | 2
| 3 | 4
Le script d'indexation
Nos tests sont effectués sous Windows avec EasyPhp.
Par défaut le temps maximal alloué à l'exécution
d'un script est de 30 secondes (vérifiez avec un "phpinfo()").
Dans l'état actuel de notre script (non optimisé pour
l'instant) cela peut s'avérer insuffisant, même en
local donc.
Ne parlons pas des hébergeurs mutualisés où
ce type de script risque d'être mal vu.
Ce "moteur" n'est pas prévu pour indexer en ligne
le contenu d'un site. Il faudra passer par une phase intermédiaire,
en local. Cette étape aboutira à la création
(ou la mise à jour) de la table "moteur".
La première étape est donc d'augmenter ce temps maximal
d'exécution :
set_time_limit(300);
Il nous faut ensuite récupérer le contenu du fichier
sous une forme où nous pourrons lui appliquer quelques-unes
des nombreuses
fonctions dédiées à la gestion des chaînes
de caractères.
$contenu = join('', file("chaines_python.html"));
"chaines_python.html" est le fichier source de notre tutoriel.
La fonction "file"
est l'équivalent de "readfile"
à ceci près qu'elle renvoie le contenu du fichier
ligne par ligne, dans un tableau. Démonstration avec les
premières lignes de notre fichier HTML :
<!DOCTYPE HTML PUBLIC "-//W3C//DTD
HTML 4.0 Transitional//EN">
<html>
<head>
<title>Manipuler les chaînes de caractères
en Python</title>
</head>
<body>
<p>Notre tutoriel précédent sur le Python
était
<a href="http://www.journaldunet.com/developpeur/tutoriel/pyt/011211pyt_intro.shtml">une
Si nous avions uniquement le code suivant :
$contenu = file("chaines_python.html");
for ($i=0;$i<=7;$i++)
echo("ligne[$i] : $contenu[$i]");
... Nous aurions obtenu le code source HTML suivant...
ligne[0] : <!DOCTYPE HTML PUBLIC "-//W3C//DTD
HTML 4.0 Transitional//EN">
ligne[1] : <html>
ligne[2] : <head>
ligne[3] : <title>Manipuler les chaînes de caractères
en Python</title>
ligne[4] : </head>
ligne[5] : <body>
ligne[6] : <p>Notre tutoriel précédent
sur le Python était
ligne[7] : <a href="http://www.journaldunet.com/developpeur/tutoriel/pyt/011211pyt_intro.shtml">une
... Illustrant ainsi la propriété de la fonction "file()".
Or nous avons besoin de transformer tout ceci en chaînes de
caractères afin d'utiliser d'autres fonctions Php, ce sera
le rôle de la fonction "join()",
capable de fusionner une chaîne de caractères (vide
ici) et un tableau ("contenu").
Nous obtenons alors une chaîne de caractères semblable
à notre fichier HTML.
Pages 1 | 2
| 3 | 4
|