Проверка наличия строк в файле

397
07 января 2017, 16:24

Доброго времени суток. Подскажите пожалуйста. Имеется скрипт на PHP который при запуске парсит 10 ссылок на картинки со стены одной группы в ВК и записывает их в файл на фтп.

Мне нужно сделать условие с проверкой, что бы скрипт спарсивал ссылку, заходил в файл и проверял есть ли там уже такая, если есть - то пропустить, если нет - записать к остальным.

Заранее благодарен

Answer 1

Версия с генераторами (PHP 5.5 +).

<?php
// Читаем файл построчно.
function getLines($file) {
    $f = fopen($file, 'r');
    try {
        while ($line = fgets($f)) {
            yield $line;
        }
    } finally {
        fclose($f);
    }
}
$file = "links.txt";
$link = "http://example.com/image2.png";
$exists = false;
// Проверяем ссылку.
foreach (getLines($file) as $line) {
    $exists = $exists || trim($line) === $link;
}
if (!$exists) {
    file_put_contents ($file, $link . PHP_EOL, FILE_APPEND);
}

Полный ответ :

<?php
function getLines($file) {
    $f = fopen($file, 'r');
    try {
        while ($line = fgets($f)) {
            yield $line;
        }
    } finally {
        fclose($f);
    }
}
$url = file_get_contents("https://api.vk.com/method/wall.get?domain=*NAME_OF_GROUP*&");
$data = json_decode($url,true);
$file="file.txt"; 
foreach ($data['response'] as $item) {
    $link = $item['attachment']['photo']['src_big'];
    $exists = false;
    foreach (getLines($file) as $line) {
        $exists = $exists || trim($line) === $link;
    }
    if (!$exists) {
        file_put_contents ($file, $link . PHP_EOL, FILE_APPEND);
    }
}
Answer 2
<?php 
//Тут в переменную записываем вашу ссылку (в цикле, которым парсится все)
$str="http://link.ru";  
//Открываем ваш файл с ссылками
$file=file("link.txt"); 
//Проверяем наличие $str в $file
if(!in_array($str,$file)){ 
 //если нет такой,пишите в файл строку, тем способом каким и записывали ранее, если есть - ничего не происходит 
}
?>
READ ALSO
Magento. Не грузятся изображения и js-файлы

Magento. Не грузятся изображения и js-файлы

После установки на локальный сервер Openserver не грузятся изображения и яваскриптыНапример http://magento2

436
Ошибка при подключении к PDO: php_network_getaddresses: getaddrinfo failed

Ошибка при подключении к PDO: php_network_getaddresses: getaddrinfo failed

Салют народ, крч у меня не хочет подключаться

429
Magento 1.14. Reindex product_attribute error - PDOException: There is no active transaction in

Magento 1.14. Reindex product_attribute error - PDOException: There is no active transaction in

Был использован стандартный реиндекс magentoНа тестовых серверах с идентичной настройкой базы работает нормально

428