J'ai un répertoire plein de fichiers XML. Pour chacun de ces fichiers, je fais une recherche au RIPE. Pour chaque recherche, je fais quelques recherches RegEx à travers le code HTML retourné. Mais après quelques boucles, file_get_contents arrête de retourner des données, et toutes mes opérations après sont faites sur une chaîne vide.PHP expire-t-il, ou est-ce quelque chose qui fait varier les résultats de mon script après chaque exécution?
Je me suis dit que PHP peut être expiré parce que ces pages prennent du temps à charger. Mais l'exécution du script ne s'arrêterait-elle pas complètement alors? Au lieu de cela, toutes les boucles finissent et sortent leur code HTML, mais sans contenu.
Je pense également qu'il pourrait y avoir une sorte de maximum de demandes pr second deal avec PHP.
Quelqu'un pourrait-il nous éclairer là-dessus?
Merci
Edit: Pour expliquer mon titre, un de mes amis et moi-même étaient en cours d'exécution le script en même temps. C'est pourquoi je suppose que PHP fixe une limite au nombre de requêtes qu'il peut envoyer pr minute ou quelque chose, car il semble que PHP gère un nombre variable de boucles avant d'arrêter de retourner les données.
Edit: ajout de code: (je me suis dit qu'il n'a pas été nécessaire, en raison de mon explication du problème)
<?php
set_time_limit(0);
include "pagebase.php";
$page = new pagebase();
$page->jQuery = true;
$page->formatDoc = false;
$page->addScript("javascript.js");
$page->addStylesheet("../codeclean.css");
$page->addStylesheet("stylesheet.css");
$page->title = "...";
$directory_path = "xml_documents";
$directory = scandir($directory_path);
$files = array();
foreach($directory as $string)
{
if(preg_match("/.*\.xml/", $string, $result) > 0)
array_push($files, $result[0]);
}
$content =
"
<table cellpadding=\"0\" cellspacing=\"0\">
<tr>
<td colspan=\"7\">
<center><h2>...</h2></center>
</td>
</tr>
<tr>
<td class=\"header_cell\">Case ID</td>
<td class=\"header_cell\">Description (From RIPE)</td>
<td class=\"header_cell\">IP</td>
<td class=\"header_cell\">Fil</td>
<td class=\"header_cell\">Time</td>
<td class=\"header_cell\">Type</td>
</tr>
";
foreach($files as $index => $file)
{
$xml = simplexml_load_file("$directory_path/$file");
$id = trim($xml->Case->ID);
$ip = trim($xml->Source->IP_Address);
$title = trim($xml->Content->Item->Title);
$time = trim($xml->Source->TimeStamp);
$type = trim($xml->Source->Type);
$desc_result = array();
$info_result = array();
$RIPE_result = file_get_contents("http://www.db.ripe.net/whois?searchtext=$ip");
preg_match("/(?<=descr:)(\s*)(.*)/", $RIPE_result, $desc_result);
preg_match_all("/<pre>.*<\/pre>/sm", $RIPE_result, $info_result);
$info_result[0] = implode("", $info_result[0]);
if(count($desc_result) < 1) $desc_result[0] = "<font style=\"color:red\">No description found</font>";
else $desc_result[0] = trim($desc_result[0]);
$content .=
"
<tr id=\"info_row_$index\">
<td class=\"info_cell\">$id</td>
<td class=\"info_cell\">$desc_result[0]</td>
<td class=\"info_cell\">$ip</td>
<td class=\"info_cell\">$title</td>
<td class=\"info_cell\">$time</td>
<td class=\"info_cell\">$type</td>
</tr>
<tr id=\"expanded_row_$index\">
<td class=\"expanded_cell\" colspan=\"7\">
<div id=\"content_container_$index\">
<input type=\"button\" class=\"pastey_button\" rel=\"$index\" value=\"Get info\" />
<div id=\"RIPE_$index\">$info_result[0]</div>
</div>
</td>
</tr>
";
}
$content .=
"
<tr>
<td colspan=\"6\">Vi har totalt ".count($files)." henvendelser.</td>
</tr>
</table>
";
$page->body = $content;
$page->drawPage();
?>
Test en ligne code
blocs
s'il vous plaît partager du code ... – Frankie
@Frankie Code ajouté – Hubro