Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Skrypt sprawdzający linki
Forum PHP.pl > Forum > Gotowe rozwiązania > Szukam
rakow
Witam, potrzebuję skryptu sprawdzającego czy wklejone przeze mnie linki działają. Miałoby to wyglądać tak że wklejam linki a skrypt oznacza kolorami (na zielono działające, na czerwono niedziałające) linki.

Przykład linka niedziałającego:
Kod
https://rapidu.net/8911858378/test.txt


"Trwają prace techniczne...
Przepraszamy, ale na serwerze docelowym
trwają prace techniczne..."

Przykład linka działajacego:
Kod
https://rapidu.net/5711858385/test1.txt


są opcje pobierania itp.

Skrypt miałby tylko sprawdzać który link działa a który nie (nic nie pobiera).

Czy ktoś byłby w stanie mi pomóc? wink.gif
patryczakowy
file_get_contents a następnie sprawdzić co zawiera pobrana zawartość.
rakow
Nie mam pojęcia jak się za to zabrać, nie miałem za dużej styczności z php. mógłby ktoś napisać mi taki skrypt? smile.gif
patryczakowy
Prosta funkcja sprawdzająca mogła by wyglądać tak:
  1. function checkUrl($url) {
  2.  
  3. if (filter_var($url, FILTER_VALIDATE_URL)) {
  4. $data = file_get_contents($url);
  5. if (!empty($data)) {
  6. if (strpos($data, 'img/error.png') === false) {
  7. echo '<span style="color:green">' . $url . '</span><br/>';
  8. } else {
  9. echo '<span style="color:red">' . $url . '</span><br/>';
  10. }
  11. } else {
  12. echo '<span style="color:red">' . $url . '</span><br/>';
  13. }
  14. } else {
  15. echo '<span style="color:red">' . $url . '</span><br/>';
  16. }
  17. }
  18.  
  19. checkUrl('https://rapidu.net/8911858378/test.txt');
  20. checkUrl('https://rapidu.net/5711858385/test1.txt');
rakow
łaaaał, dzięki wielkie wink.gif

da się zrobić tak żeby zamiast
checkUrl('https://rapidu.net/8911858378/test.txt');

checkUrl wczytywał dane z pliku txt zamieszczonego w tym samym folderze? biggrin.gif
patryczakowy
Da się ale to już tobie zostawię jako zadanie domowe smile.gif nie mogę zrobić wszystkiego za ciebie. to ci powinno pomóc http://php.net/manual/en/function.fgets.php
rakow
okej, pokombinuję sam. jeszcze raz bardzo dziękuję wink.gif

Chyba jednak mnie to przerosło :/

Kod
<?php
    function checkUrl($url) {
    
        if (filter_var($url, FILTER_VALIDATE_URL)) {
            $data = file_get_contents($url);
            if (!empty($data)) {
                if (strpos($data, 'img/error.png') === false) {
                    echo '<span style="color:green">' . $url . '</span><br/>';
                } else {
                    echo '<span style="color:red">' . $url . '</span><br/>';
                }
            } else {
                echo '<span style="color:red">' . $url . '</span><br/>';
            }
        } else {
            echo '<span style="color:red">' . $url . '</span><br/>';
        }
    }

$linki = fopen("linki.txt", "r");
    
    checkUrl('fgets($linki, 4096)');
  
    
?>


co robię źle? ;/
patryczakowy
Jeśli każdy link jest w nowej lini:
  1. $handle = fopen("linki.txt", "r");
  2.  
  3. while (($url = fgets($handle, 4096)) !== false) {
  4. checkUrl($url);
  5. }
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.