Я бы предостерег вас от написания этого всего вручную, если сайт не тривиален.
Гуглим по фразам "PHP parser library", "web-spider PHP" и т.п.
В общем случае нужно использовать готовые инструменты типа
https://github.com/mvdbos/php-spider
Кучу времени себе сэкономите.
Но если сайт простой - то напротив, без всего этого кучу времени сэкономите
;)
Однако если содержимое сайта формируется только через JS, то простой CURL вам проблему не решит.
Придется работать с полноценной эмуляцией браузера, используя headless-браузеры типа SlimerJS или через webDriver с полноценным браузером.