Я пытаюсь импортировать содержимое некоторых ссылок в базу данных, используя следующий скрипт
$url = "http://example.com";
$html = file_get_html($url)->plaintext;
$extract = str_replace("'", "\'", $html);
$sqlinsert = "INSERT INTO links (url, text) values ('".$url."', '".$extract."')";
У меня есть список из 500+ ссылок, с которыми я хочу запустить вышеописанный скрипт, но я хочу сделать все это вместе, а не по ссылке.
Есть ли способ сделать это с помощью цикла или я должен сделать это с другой логикой?
Вы можете это с петлей. Определить массив будут все ссылки / URL. Цикл, чтобы получить текст и выполнить запрос вставки.
// define an array
$links = array('http://example.com',
'http://example1.com',
'http://example2.com',
.........
'http://example500.com',
);
// loop the array
foreach($links as $link){
$url = $link;
$html = file_get_html($url)->plaintext;
$extract = str_replace("'", "\'", $html);
// insert query
$sqlinsert = "INSERT INTO links (url, text) values ('".$url."', '".$extract."')";
}
Вы можете поместить все ссылки в файл (по одной ссылке на строку), а затем использовать file()
функция для помещения ссылок в массив, чтобы вы могли зацикливаться, например так:
$urls = file('links.txt');
foreach($urls as $url) {
$html = file_get_html($url)->plaintext;
$extract = str_replace("'", "\'", $html);
$sqlinsert = "INSERT INTO links (url, text) values ('".$url."', '".$extract."')";
}
Кроме того, я не знаю, какой движок базы данных вы используете, но я рекомендую вам прочитать о готовые заявления, поскольку объединение значений в инструкции SQL приводит к проблемам с безопасностью.