Jetzt will ich mehrere Webseiten abfragen ob diese Informationen auf der Seite zu finden sind nach folgendem Schema.
Webseite 1: wenn $array[„erscheinungsdatum“] noch leer, dann suche auf Seite. Wenn gefunden trage ein.
Webseite 2: wenn $array[„erscheinungsdatum“] noch leer, dann suche auf Seite. Wenn gefunden trage ein.
etc…
So jetzt DIE Frage: Wie stelle ich das am besten an das ich ein Ordnen habe mit webseite1.plugin.php und in diesem Plugin die Funktion für die Abfrage drinnen ist (mit curl etc) und er die nacheinander abruft bis das Array voll ist oder alle „Plugins“ durch sind.
ihre Frage ist sehr „allgemein“ gehalten. Wenn ich alles Richtig verstanden habe, möchten sie verschiedene Internet Webseiten abrufen, dort nach Inhalten suchen und die gesammelten Daten dann in einem Array speichern. Und diese Regeln sollen dynamisch über das Filesystem geladen werden?
Ich würde dafür das „strategy pattern“ nutzen, indem in in dem Vorgesetzten Ordner meine „Strategien“ um auf der Seite zu suchen ablegen würde.
Z.B.
/search_stragies/Xyz.class.php
<?php class Xyz {
private $\_content;
public function \_\_construct() {
$this-\>\_content = "Das ist das Erscheinungsdatum 10.10.2010";;
}
public function search() {
// ... die logig die den Content durchsucht, hier fest vorgegeben ...
$aFound = array('erscheinungsdatum' =\> '10.10.2010');
return $aFound;
}
}
Nun könnte man über glob('./search\_strategies/\*') den Ordner durchlaufen, alle Files includen und die Objekte instantiieren.
<?php $aFinalFind = array();
function search\_content($sContent) {
foreach(glob('search\_strategies/\*') as $sFile) {
include($sFile);
$sClass = basename($sFile, ".php");
$oObject = new $sClass();
$aFound = $oObject-\>search();
if(!isset($aFinalFind['erscheinungsdatum'])) $aFinalFind['erscheinungsdatum'] = $aFound['erscheinungsdatum'];
if(count($aFinalFind) == 1) return $aFinalFind;
}
return $aFinalFound;
}
In dem Fall muss die Klasse und der Dateiname identisch sein, damit du dynamisch die Klassen erzeugen kannst. Falls du noch mehr fragen hast, kannst du dich ja gerne melden.
Viele Grüße
Frank
schau dir mal include an. Damit kannst du, in Kombination mit diversen Anfragen an das Dateisystem nach und nach alle relevanten plugins laden und ausführen. Im Sinne von
Hallu, ich würde sagen du fügst einen
$array2(„webiste1“, „website2“, „ect.“);
ein. Dann bauste einfach eine Schleife ein (while()) die sich solange wiederholt bis $array[„erscheinungsdatum“] nicht mehr 0 ergibt ODER bis sämtliche Websiten aus $array2 abgeklappert wurden. Gesteuert werden kann die ganze Sache mit einem einfachen Zähler der vor dieser while mit 0 definiert wird.
In der Schleife wird der Zähler als letztes Ereignis innerhalb der Schleife um 1 erhöht $zaehler++;
Und das aller beste is dabei, dass du den Zähler gleichzeitig als ich sag jetzt mal Schub verwenden kannst um die Webseiten abzuarbeiten.
$array2[$zaehler];
Wenn der zähler 0 is wird der 1. Eintrag in $array2 ausgegeben.
Wenn der Zähler 1 is wird der 2. Eintrag in $array2 ausgegeben.
Wenn meine Tasse keinen Kaffee enthält wird Müdigkeit ausgegeben.
Ferditsch :3
Ich hoffe ich konnte dich deiner Frage dementsprechend inspirieren.