Я пытаюсь загрузить несколько файлов, которые находятся в папке с последовательными именами, например 1.html, 2.html, 3.html, 9999.html
Что будетбыть лучшим способом для чтения / обработки файлов HTML с использованием PHP?
[Файл также будет использоваться DOMXPath!] *
Ниже приведен код пользовательского интерфейса
<html lang="en">
<head>
<meta charset="utf-8"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$('#btn').click(function() {
$('#p3').val(0);$('#p2').val(0);
var i;
$('#p1').val(parseInt($('#st').val()));
for (i = parseInt($('#st').val()); i < parseInt($('#en').val()); i++) {
var jqxhr = $.post("downloader.php", { 'id':i }, function() {
})
.always(function(data) {
if (data != 0)
$('#p2').val(parseInt($('#p2').val()) + 1);
else
$('#p3').val(parseInt($('#p3').val()) + 1);
$("#txt").val($("#txt").val() + "\n" + data);
$('#p1').val(parseInt($('#p1').val()) + 1);
});
}
});
});
</script>
</head>
<body>
<form name="frm" id="frm">
Start from <input type="text" name="st" id="st" /> To <input type="text" name="en" id="en" /> <hr/>
Processing <input type="text" name="p1" id="p1" /> <br/>
Processed <input type="text" name="p2" id="p2" /> <br/>
Not found <input type="text" name="p3" id="p3" /> <br/>
<input type="button" id="btn" value="Start" />
</form>
<textarea id="txt" name="txt"></textarea>
</body>
</html>
Фоновый сканер
<?php
error_reporting(0);
$id = 0;
$id = intval($_POST['id'])+1;
$url = 'https://remote.server/'.$id.'.html';
//$html = curl_get_contents($url);
if (!$html = @file_get_contents($url)) { echo 0; }
//some processing of the data
$data = (new DOMXPath ( (@DOMDocument::loadHTML ( $html )) ))->query ( '//span[@class="data"]' )->item ( 1 )->textContent;
$data2 = (new DOMXPath ( (@DOMDocument::loadHTML ( $html )) ))->query ( '//span[@class="data2"]' )->item ( 0 )->textContent;
/*insertion of data
$dba_host='p:localhost'; $dba_name='root'; $dba_pass=''; $dba_db='db'; $con=mysqli_connect($dba_host,$dba_name,$dba_pass,$dba_db) or die('Connection Refused !');
$stmt = mysqli_prepare($con,"INSERT INTO `tbl` *,*) VALUES (?,?)");
mysqli_stmt_bind_param($stmt,"ss", *, *); mysqli_stmt_execute($stmt);
mysqli_stmt_close($stmt); mysqli_close($con);
*/
function curl_get_contents ($url) {
$curl = curl_init();
curl_setopt($curl, CURLOPT_RETURNTRANSFER, True);
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl,CURLOPT_USERAGENT,'Mozilla/5.0 (Windows NT 6.1; W…) Gecko/20100101 Firefox/61.0');
$return = curl_exec($curl);
curl_close($curl);
return $return;
}
echo 1;
?>
На данный момент производительность выглядит очень медленно.Как улучшить / оптимизировать код?