Skip to content

Instantly share code, notes, and snippets.

@ethaizone
Last active June 27, 2016 03:51
Show Gist options
  • Save ethaizone/9c0e86983c4f55a947a0a689e42a5bd1 to your computer and use it in GitHub Desktop.
Save ethaizone/9c0e86983c4f55a947a0a689e42a5bd1 to your computer and use it in GitHub Desktop.
ไฟล์คำสั่ง PHP สำหรับโหลด mp3 จากเว็บ fungdham.com - ต้องการ PHP Simple HTML DOM Parser - สร้างโฟลเดอร์แยกตามลำดับชั้นให้
<?php
set_time_limit(0);
// โหลด simple_html_dom.php มาจาก http://simplehtmldom.sourceforge.net/
include 'simple_html_dom.php';
function saveFile($url, $file) {
if(file_exists($file)) {
return;
}
$file = str_replace(['&quot;', '"', '\''], "", $file);
// var_dump($url, $file);
// exit;
echo "Downloading: ".$file.'\n';
exec("curl -o \"".$file."\" \"".$url."\"");
}
function downloadAllMP3($directory, $url) {
$html = file_get_html($url);
// $directory = $directory.'/'.$html->find('div.heading2', 0)->plaintext;
// var_dump($directory);
if (!file_exists($directory)) {
mkdir($directory, 0777, true);
}
// exit;
$links = [];
$fileExt = 'mp3|wma';
foreach ($html->find('a') as $link) {
if (preg_match('#\.'.$fileExt.'#', $link->href)) {
$parent = $link;
do {
$parent = $parent->parent();
} while($parent->tag != 'tr');
$links[] = [trim($parent->find('td', 1)->plaintext), $link->href];
}
}
// var_dump($links);
foreach ($links as $index => $link) {
// echo $link[1];
// echo $directory.'/'.sprintf('%02d', $index+1).' - '.$link[0].'.mp3';
if ($link[1] == 'http://www.fungdham.com/download/sound/sangwan/biography.mp3') {
$link[0] = 'ประวัติหลวงปู่สังวาลย์';
}
preg_match('#\.('.$fileExt.')#', $link[1], $matches);
saveFile($link[1], $directory.'/'.sprintf('%02d', $index+1).' - '.$link[0].'.'.$matches[1]);
}
return $directory;
}
function spiderWalkDeeper($array, $directory) {
foreach ($array as $data) {
$d = $directory.'/'.$data['folder'];
if (!file_exists($d)) {
mkdir($d, 0777, true);
}
if (isset($data['url'])) {
$d = downloadAllMP3($d, $data['url']);
}
if (isset($data['children'])) {
spiderWalkDeeper($data['children'], $d);
}
}
}
$spiderQueue = [
[
'folder' => 'หลวงปู่เหรียญ วรลาโภ',
// 'url' => 'http://www.fungdham.com/sound/rein-new.html',
'children' => [
[
'folder' => 'ชุด CD แผ่นที่ 1',
'url' => 'http://www.fungdham.com/sound/rein-new01.html',
],
[
'folder' => 'ชุด CD แผ่นที่ 2',
'url' => 'http://www.fungdham.com/sound/rein-new02.html',
],
[
'folder' => 'ชุด CD แผ่นที่ 3',
'url' => 'http://www.fungdham.com/sound/rein-new03.html',
],
[
'folder' => 'ชุด CD แผ่นที่ 4',
'url' => 'http://www.fungdham.com/sound/rein-new04.html',
],
[
'folder' => 'ชุด CD แผ่นที่ 5',
'url' => 'http://www.fungdham.com/sound/rein-new05.html',
],
[
'folder' => 'ชุด CD แผ่นที่ 6',
'url' => 'http://www.fungdham.com/sound/rein-new06.html',
],
[
'folder' => 'ชุด CD แผ่นที่ 7',
'url' => 'http://www.fungdham.com/sound/rein-new07.html',
],
[
'folder' => 'ชุด CD แผ่นที่ 8',
'url' => 'http://www.fungdham.com/sound/rein-new08.html',
],
[
'folder' => 'ชุด CD แผ่นที่ 9',
'url' => 'http://www.fungdham.com/sound/rein-new09.html',
],
[
'folder' => 'ชุด CD แผ่นที่ 10',
'url' => 'http://www.fungdham.com/sound/rein-new10.html',
],
[
'folder' => 'ชุด CD แผ่นที่ 11',
'url' => 'http://www.fungdham.com/sound/rein-new11.html',
],
[
'folder' => 'ชุด CD แผ่นที่ 12',
'url' => 'http://www.fungdham.com/sound/rein-new12.html',
],
[
'folder' => 'ชุด CD แผ่นที่ 13',
'url' => 'http://www.fungdham.com/sound/rein-new13.html',
],
[
'folder' => 'ชุด CD แผ่นที่ 14',
'url' => 'http://www.fungdham.com/sound/rein-new14.html',
],
[
'folder' => 'ชุด CD แผ่นที่ 15',
'url' => 'http://www.fungdham.com/sound/rein-new15.html',
],
[
'folder' => 'ชุด CD แผ่นที่ 16',
'url' => 'http://www.fungdham.com/sound/rein-new16.html',
],
[
'folder' => 'ชุด CD แผ่นที่ 17',
'url' => 'http://www.fungdham.com/sound/rein-new17.html',
],
[
'folder' => 'ชุด CD แผ่นที่ 18',
'url' => 'http://www.fungdham.com/sound/rein-new18.html',
],
[
'folder' => 'ชุด CD แผ่นที่ 19',
'url' => 'http://www.fungdham.com/sound/rein-new19.html',
],
[
'folder' => 'ชุด CD แผ่นที่ 20',
'url' => 'http://www.fungdham.com/sound/rein-new20.html',
],
[
'folder' => 'ชุด CD แผ่นที่ 21',
'url' => 'http://www.fungdham.com/sound/rein-new21.html',
],
[
'folder' => 'ชุด CD แผ่นที่ 22',
'url' => 'http://www.fungdham.com/sound/rein-new22.html',
],
[
'folder' => 'ชุด CD แผ่นที่ 23',
'url' => 'http://www.fungdham.com/sound/rein-new23.html',
],
[
'folder' => 'ชุด CD แผ่นที่ 24',
'url' => 'http://www.fungdham.com/sound/rein-new24.html',
],
[
'folder' => 'ชุด CD แผ่นที่ 25',
'url' => 'http://www.fungdham.com/sound/rein-new25.html',
],
[
'folder' => 'ชุด CD แผ่นที่ 26',
'url' => 'http://www.fungdham.com/sound/rein-new26.html',
],
[
'folder' => 'ชุด CD แผ่นที่ 27',
'url' => 'http://www.fungdham.com/sound/rein-new27.html',
],
[
'folder' => 'ชุด CD แผ่นที่ 28',
'url' => 'http://www.fungdham.com/sound/rein-new28.html',
],
[
'folder' => 'ชุด CD แผ่นที่ 29',
'url' => 'http://www.fungdham.com/sound/rein-new29.html',
],
[
'folder' => 'ชุด CD แผ่นที่ 30',
'url' => 'http://www.fungdham.com/sound/rein-new30.html',
],
[
'folder' => 'ชุด CD แผ่นที่ 31',
'url' => 'http://www.fungdham.com/sound/rein-new31.html',
],
[
'folder' => 'ชุด CD แผ่นที่ 32',
'url' => 'http://www.fungdham.com/sound/rein-new32.html',
],
[
'folder' => 'ชุด CD แผ่นที่ 33',
'url' => 'http://www.fungdham.com/sound/rein-new33.html',
],
[
'folder' => 'ชุด CD แผ่นที่ 34',
'url' => 'http://www.fungdham.com/sound/rein-new34.html',
],
[
'folder' => 'ชุด CD แผ่นที่ 35',
'url' => 'http://www.fungdham.com/sound/rein-new35.html',
],
[
'folder' => 'ชุด CD แผ่นที่ 36',
'url' => 'http://www.fungdham.com/sound/rein-new36.html',
],
[
'folder' => 'ชุด CD แผ่นที่ 37',
'url' => 'http://www.fungdham.com/sound/rein-new37.html',
],
[
'folder' => 'ชุด CD แผ่นที่ 38',
'url' => 'http://www.fungdham.com/sound/rein-new38.html',
],
[
'folder' => 'ชุด CD แผ่นที่ 39',
'url' => 'http://www.fungdham.com/sound/rein-new39.html',
],
]
],
[
'folder' => 'หลวงพ่อชา สุภัทโท',
'url' => 'http://www.fungdham.com/sound/cha.html', // has sub chapter
],
[
'folder' => 'หลวงปู่เทสก์ เทสรังสี',
'url' => 'http://www.fungdham.com/sound/tesk.html',
'children' => [
[
'folder' => 'CD แผ่นที่ 1',
'url' => 'http://www.fungdham.com/sound/tesk100-1.html',
],
[
'folder' => 'CD แผ่นที่ 2',
'url' => 'http://www.fungdham.com/sound/tesk100-2.html',
],
[
'folder' => 'CD แผ่นที่ 3',
'url' => 'http://www.fungdham.com/sound/tesk100-3.html',
],
]
],
[
'folder' => 'หลวงปู่ขาว อนาลโย',
'url' => 'http://www.fungdham.com/sound/khao.html',
],
[
'folder' => 'หลวงพ่อปัญญานันทภิกขุ',
'url' => 'http://www.fungdham.com/sound/panyanunta.html', // has sub chapter
],
[
'folder' => 'หลวงตามหาบัว ญาณสัมปันโน',
'url' => 'http://www.fungdham.com/sound/bua.html', // has sub chapter
],
[
'folder' => 'หลวงปู่สังวาลย์ เขมโก',
'url' => 'http://www.fungdham.com/sound/sangwan.html',
],
[
'folder' => 'หลวงปู่มั่น ภูริทัตโต',
'url' => 'http://www.fungdham.com/sound/mun.html',
],
[
'folder' => 'ว.วชิรเมธี',
'url' => 'http://www.fungdham.com/sound/vorvachiramete.html',
],
];
spiderWalkDeeper($spiderQueue, dirname(__FILE__));
echo "\n\nOK\n\n";
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment