Scraper danych z empika

Nie tak dawno temu dostałem zlecenie napisania skryptu pobierającego dane, dla księgarni internetowej opartej o PrestaShop. Klient chciał rozszerzyć swój asortyment, natomiast nie miał ochoty wydawać pieniążków na copywriterów.

Za pomocą PHP pobraliśmy listę synonimów oraz dane dotyczące konkretnych produktów. Postanowiłem, że opublikuje część kodu odpowiedzialną za scraping danych ze strony empiku.

Całość do poprawnego działania wymaga pobrania klasy simple_html_dom.
(więcej…)

Zadbaj o swoją witrynę

Jest to druga część poradnika z zakresu optymalizacji stron internetowych, którą tworzę w ramach swojego dziennika.
W części pierwszej (którą możesz znaleźć tutaj) skupialiśmy się głównie na kwestii minimalizacji czasu wczytywania strony.
Szybkość działania witryn jest niewątpliwie ważnym czynnikiem, lecz nie jedynym. W tej drugiej części chciałbym wykorzystać system do
analizy od seoaudyt.clearsense.pl.

Powyższy system analizuje dla nas poszczególne komponenty strony, które postaram się w miarę możliwości opisać.

I. Widoczność/indeksowanie strony

Czynnik wskazujący czy nasza strona jest widoczna dla użytkowników oraz botów ją odwiedzających. Chodzi tutaj o poprawne zwrócenie kodu odpowiedzi serwera 200. Jeżeli ten punkt u Ciebie został zaznaczony na czerwono, należy sprawdzić conajmniej dwie rzeczy:
a) Dostępność serwera z sieci zewnętrznej,
b) Poprawność formuł w pliku robots.txt.
(więcej…)

Symfony – Doctrine – Random result

Wiele razy podczas tworzenia portali opartych o Symfony zachodziła potrzeba by zrandomizować wyniki pobierane z bazy danych. Niestety doctrine w swoim standardzie nie ma wbudowanych takich funkcji jak RAND(), MAX(), MIN() czy bardzo często pożądany DAY(). Co więcej, próżno szukać zwięzłej i precyzyjnej odpowiedzi na przedstawiony problem nawet w dokumentacji Symfony i Doctrine. Na ratunek przychodzi DoctrineExtensions.

(więcej…)

Dodanie znaku wodnego za pomocą PHP

Znak wodny jest używany w obecnych czasach w większości sklepów internetowych, serwisach rozrywkowych itp. Jest to bardzo przydatna rzecz, jeżeli nie chcemy się dzielić z innymi naszymi pracami.
Osobiście zawsze przy okazji implementowania takiego modułu, korzystam z kodu znalezionego kiedyś w internecie.
Niestety nie mam pojęcia kto jest autorem tego kodu, ale skoro ta osoba upubliczniła swoje rozwiązanie to pozwalam sobie wrzucić je tutaj 🙂
(więcej…)