Moin,
ich benötige mal euren Rat. Ich habe mit der simple_html_dom lib einen Parser für Rezepte von chefkoch.de gebaut.
Um die Zutaten für meinen Bedarf zu verwenden benötige ich eine bestimmte Formatierung. Ich probiere schon eine ganze Weile rum, aber es funktioniert nicht so richtig.
Hier der Code:
Das funktioniert soweit und erzeugt die Ausgabe je Zeile:
[Menge] [Einheit] [Bezeichung] [Bezeichnung] [Bezeichnung](n);
Was ich aber benötige ist:
[Menge],[Einheit],[Bezeichnung Bezeichnung Bezeichnung (n)];
Ein einfaches str_replace() funktioniert leider nicht, das sieht dann als Bsp. so aus:
800,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,g,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,Tafelspitz,vom,Rind;
1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,Port.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,Suppengemüse,(Lauch,,Sellerie,,Zwiebel,,Möhre);
3,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,Lorbeerblätter;
1,½,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,Liter,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,Gemüsebrühe,oder,Fleischbrühe;
2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,Gemüsezwiebel(n);
1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,EL,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,Senf,,mittelscharfer;
2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,EL,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,Butter;
1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,EL,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,Mehl;
5,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,cl,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,Weinessig;
1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,EL,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,Zucker;
Salz,und,Pfeffer;
Test URL: https://www.chefkoch.de/rezepte/8024...elfleisch.html
Woher die vielen 'Leerzeichen' kommen, konnte ich bis jetzt nicht nachvollzeihen. Im DOM sieht man nichts davon.
Eine weitere foreach()-Aufsplittung war bis auch nicht erfolgreich.
Hat mir wer einen Tipp?
Vielen Dank!
ich benötige mal euren Rat. Ich habe mit der simple_html_dom lib einen Parser für Rezepte von chefkoch.de gebaut.
Um die Zutaten für meinen Bedarf zu verwenden benötige ich eine bestimmte Formatierung. Ich probiere schon eine ganze Weile rum, aber es funktioniert nicht so richtig.
Hier der Code:
PHP-Code:
include('simple_html_dom.php');
$html = file_get_html($_POST["recipe_url"]);
// ***************** parse ingredients **********
$ingreds_block = $html->find('table.[class=ingredients table-header]');
foreach($ingreds_block[0]->find('tr') as $row){
$line_cut = strip_tags($row);
$line_end = trim($line_cut).";";
echo $line_end."<br>";
//file_put_contents('../usr/'.$_SESSION['userid'].'/'.'ingred_list.txt', $line_end.PHP_EOL, FILE_APPEND | LOCK_EX);
}
// ******** end************
[Menge] [Einheit] [Bezeichung] [Bezeichnung] [Bezeichnung](n);
Was ich aber benötige ist:
[Menge],[Einheit],[Bezeichnung Bezeichnung Bezeichnung (n)];
Ein einfaches str_replace() funktioniert leider nicht, das sieht dann als Bsp. so aus:
800,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,g,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,Tafelspitz,vom,Rind;
1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,Port.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,Suppengemüse,(Lauch,,Sellerie,,Zwiebel,,Möhre);
3,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,Lorbeerblätter;
1,½,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,Liter,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,Gemüsebrühe,oder,Fleischbrühe;
2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,Gemüsezwiebel(n);
1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,EL,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,Senf,,mittelscharfer;
2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,EL,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,Butter;
1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,EL,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,Mehl;
5,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,cl,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,Weinessig;
1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,EL,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,Zucker;
Salz,und,Pfeffer;
Test URL: https://www.chefkoch.de/rezepte/8024...elfleisch.html
Woher die vielen 'Leerzeichen' kommen, konnte ich bis jetzt nicht nachvollzeihen. Im DOM sieht man nichts davon.
Eine weitere foreach()-Aufsplittung war bis auch nicht erfolgreich.
Hat mir wer einen Tipp?
Vielen Dank!
Kommentar