Skocz do zawartości

przeszukiwanie pliku...


arve_lek

Rekomendowane odpowiedzi

Witam,

Chciałbym się zapytać czy da się zrobić takie coś w php:

powiedzmy, że w pliku .txt mam linki:

Teraz czy można przeszukać plik i wyciąć tylko te linki z linii w których znajduje się słowo Posted! a następnie zapisać?

O7vVmZ7.gif

Punkty statlink.pl - dobra cena + gratis Skrypt i eBook, Blog SEO/SEM i Tatuaże na Dziarownia.pl (tatuaże)

Odnośnik do komentarza
Udostępnij na innych stronach

Od razu odradzam takie operacje na plikach wielkości 20K linii ze względu na wydajność.

Dlaczego - bo musisz odczytać zawartość pliku do tablicy funkcja file() i przez tablicę przejść w pętli

foreach()

{

if(preg_match) {cos wykonac}

}

czyli 20 tysięcy razu wykonać funkcję np preg_match do sprawdzenia czy w danej linii jest to co Cię interesuje.

Do tego celu stworzono bazy danych.

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Jadę w dobrą stronę? wywala mi błędy ale to dlatego, że... :(

<?php

$wyjscie = fopen('url_clean.txt', 'a+');
foreach (file('url.txt') as $line)
{
 if (preg_match("/Posted!/", $line))
	{
		fwrite($wyjscie, $line);
	}
}
fclose($wyjscie);

?>

niby działa ale błędy ale to jest nie ważne bo wycięło mi linki w których było słowo: posted! teraz zamienie w notepad++ posted! na spację ;)

O7vVmZ7.gif

Punkty statlink.pl - dobra cena + gratis Skrypt i eBook, Blog SEO/SEM i Tatuaże na Dziarownia.pl (tatuaże)

Odnośnik do komentarza
Udostępnij na innych stronach

Jakie masz te błędy ?

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Notice: Undefined variable: wyjscie in C:\wamp\www\wycinanie adresow\index.php on line 11

Warning: fclose(): supplied argument is not a valid stream resource in C:\wamp\www\wycinanie adresow\index.php on line 11

11 linia to: fclose($wyjscie);

EDIT:

Bez komentarzu, naprawiłem literówkę :( Żal...

O7vVmZ7.gif

Punkty statlink.pl - dobra cena + gratis Skrypt i eBook, Blog SEO/SEM i Tatuaże na Dziarownia.pl (tatuaże)

Odnośnik do komentarza
Udostępnij na innych stronach

Nie musi parsować wszystkiego pętlą od razu a plik z tak prostą konstrukcją też można podzielić na mniejsze :(
Może to zrobić używając fseek do ustawienia wskaźnika w danym miejscu pliku, ale to i tak nie zmienia czasu wykonania całości operacji.

----

NIe mam teraz dostępu do PHP, ale w $line masz tablicę array, a nie string do zapisania

----

Użyj do zapisywania w pliku https://www.php.net/manual/en/function.file-put-contents.php z flagą FILE_APPEND

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności