Как найти, какой из них не распространен на обоих JSON с использованием PHP? - PullRequest
0 голосов
/ 28 апреля 2018

Я пишу скрипт, в котором будет два источника данных для уведомлений. Один для основного источника уведомления (который начинается с другого сайта). И еще один для существующего источника уведомления. То, чего я пытаюсь добиться, - это проверить заголовки json основного источника уведомления с существующим заголовком источника уведомления. Если один заголовок уведомления является уникальным в основном источнике уведомлений (это означает, что в существующем источнике уведомлений его еще нет), то функция будет запущена. То, что я пытаюсь сделать, это взять один заголовок из основного источника уведомлений JSON и сопоставить его со всеми заголовками из существующего источника уведомлений. Вот код, который я написал. Но не делать то, что должен был сделать. :

$noticeURL = "https://example.com/scrapper.php";
$existingNoticeURL = "https://example.com/wp-json/wp/v2/posts?categories=2&per_page=5&fields=title,slug";

$notices = json_decode(file_get_contents($noticeURL), true);
$existingNotices = json_decode(file_get_contents($existingNoticeURL), true);

for ( $i = 0; $i < 5; $i++ ) {
    $notice = preg_replace('/\s+/', ' ', $notices[$i]["title"]);

    for ($j = 0; $j < 5; $j++ ) {
        $existingNotice = preg_replace('/\s+/', ' ', $existingNotices[$j]["title"]);
        if ( $notice != $existingNotice ) {
            //do something
        }
    }
}

Если кто-то может помочь, это будет здорово. Спасибо за чтение ...:)

1 Ответ

0 голосов
/ 28 апреля 2018
$noticeURL = "https://example.com/scrapper.php";
$existingNoticeURL = "https://example.com/wp-json/wp/v2/posts?categories=2&per_page=5&fields=title,slug";

$notices = json_decode(file_get_contents($noticeURL), true);
$existingNotices = json_decode(file_get_contents($existingNoticeURL), true);

for ( $i = 0; $i < 5; $i++ ) {
    $notice = preg_replace('/\s+/', '', $notices[$i]["title"]);

    $matchCount = 0;
    for ($j = 0; $j < 5; $j++ ) {
        $existingNotice = preg_replace('/\s+/', '', $existingNotices[$j]["title"]);
        if ( $notice != $existingNotice ) {
            $matchCount = $matchCount + 1;
            if ( $matchCount == 5 ) {
                // do something
            }
        }
    }
}

Этот код исправил проблему и достиг результата, которого я пытался достичь. Добавлена ​​опция подсчета для отслеживания количества совпадений уведомлений. И пришлось удалить пробел '/ \ s + /', '' из этого. это решило проблему. :)

...