Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wyswietlanie wyników wyszukiwania
Forum PHP.pl > Forum > PHP
moemer
Witam mam skrypt wyszukujący mi linki z mojego pliku sql część kodu to

  1.  
  2. $s = file_get_contents('part/'.$_boxValue);
  3. preg_match_all('/((?i:https?):\/\/(?:(?:(?:(?:(?:(?:[a-zA-Z0-9][-a-zA-Z0-9]*)?[a-zA-Z0-9])[.])*(?:[a-zA-Z][-a-zA-Z0-9]*[a-zA-Z0-9]|[a-zA-Z])[.]?)|(?:[0-9]+[.][0-9]+[.][0-9]+[.][0-9]+)))(?::(?:(?:[0-9]*)))?(?:\/(?:(?:(?:(?:(?:(?:[a-zA-Z0-9\-_.!~*\'():@&=+$,]+|(?:%[a-fA-F0-9][a-fA-F0-9]))*)(?:;(?:(?:[a-zA-Z0-9\-_.!~*\'():@&=+$,]+|(?:%[a-fA-F0-9][a-fA-F0-9]))*))*)(?:\/(?:(?:(?:[a-zA-Z0-9\-_.!~*\'():@&=+$,]+|(?:%[a-fA-F0-9][a-fA-F0-9]))*)(?:;(?:(?:[a-zA-Z0-9\-_.!~*\'():@&=+$,]+|(?:%[a-fA-F0-9][a-fA-F0-9]))*))*))*))(?:[?](?:(?:(?:[;\/?:@&=+$,a-zA-Z0-9\-_.!~*\'()]+|(?:%[a-fA-F0-9][a-fA-F0-9]))*)))?))?)/', $s, $matches);
  4.  
  5. for($i = 0; $i < sizeof($matches[0]); $i++) {
  6. $e = strip_tags($matches[0][$i]);
  7. $e = preg_replace("#(\s+)#"," | \r\n",$e);


i na konic mam

  1. echo $e. "<br />";
  2.  


wszystko wyświetla się dobrze tylko problem polega w tym że plik sql jest duży i jest tam masa linków gdzi przy wyświetlaniu wyników wyszukiwań trwa to bardzo długo lub wiesza mi się komp bo nowy nie jest czy mogę jakoś to objść aby zrobić jakąś paginację lub dodać wyniki do bazy danych tylko nie wszystkie na raz bo będzie ten sam efekt myślałem aby wykonać coś jak w instalacji vbulletin widzimy co jest wykonywane w danej chwili np. create table ble bl ble i nstępna linia create table takiej i takiej widzimy postęp instalacji jak mogę osiągnąć taki efekt zaznaczam że w zmiennej $e jest tylko link więć tabela może mieć tylko id oraz name chyba że macie inne rozwiązania aby wyciągnąć linki z pliku i zapisać j do bazy danych prosze o pomoc
zdemotywowany
To zależy czy chcesz to rozwiązanie wykorzystać w skrypcie czy po prostu jednorazowo chcesz dodać do bazy danych. W tym drugim przypadku możesz pobrać np. 100 linijek pliku i tak tyle razy ile potrzebujesz. Do wyświetlenia postępu chyba musisz użyć AJAXa.

A do dodania danych do bazy, żeby komp Ci się nie wieszał użyj:

  1. $zapisz = '';
  2. $zapisz = $zapisz."INSERT INTO tablica VALUES (NULL, $link);


Oczywiście druga linijka w pętle i niech się wykonuje powiedzmy 100 razy. Na końcu wysłane zostanie tylko raz, zamiast 100. Rozwiązanie szybsze i w tym samym czasie dodasz więcej linków do bazy.

Jeśli nie wiesz o co chodzi to będziemy tłumaczyć.
moemer
Nestety nie wiem jak użyć pętli


  1. $s = file_get_contents('part/'.$_boxValue);
  2.  
  3. preg_match_all('/((?i:https?):\/\/(?:(?:(?:(?:(?:(?:[a-zA-Z0-9][-a-zA-Z0-9]*)?[a-zA-Z0-9])[.])*(?:[a-zA-Z][-a-zA-Z0-9]*[a-zA-Z0-9]|[a-zA-Z])[.]?)|(?:[0-9]+[.][0-9]+[.][0-9]+[.][0-9]+)))(?::(?:(?:[0-9]*)))?(?:\/(?:(?:(?:(?:(?:(?:[a-zA-Z0-9\-_.!~*\'():@&=+$,]+|(?:%[a-fA-F0-9][a-fA-F0-9]))*)(?:;(?:(?:[a-zA-Z0-9\-_.!~*\'():@&=+$,]+|(?:%[a-fA-F0-9][a-fA-F0-9]))*))*)(?:\/(?:(?:(?:[a-zA-Z0-9\-_.!~*\'():@&=+$,]+|(?:%[a-fA-F0-9][a-fA-F0-9]))*)(?:;(?:(?:[a-zA-Z0-9\-_.!~*\'():@&=+$,]+|(?:%[a-fA-F0-9][a-fA-F0-9]))*))*))*))(?:[?](?:(?:(?:[;\/?:@&=+$,a-zA-Z0-9\-_.!~*\'()]+|(?:%[a-fA-F0-9][a-fA-F0-9]))*)))?))?)/', $s, $matches);
  4.  
  5. for($i = 0; $i < sizeof($matches[0]); $i++) {
  6. $e = strip_tags($matches[0][$i]);
  7. $e = preg_replace("#(\s+)#"," | \r\n",$e);
  8.  
  9.  
  10. while($e<=100)) {
  11. $zapisz = $zapisz."INSERT INTO moja tabela VALUES (NULL, $e);
  12. }
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-2025 Invision Power Services, Inc.