Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] szukanie wielu stringów
Hectic
post 14.04.2007, 12:15:26
Post #1





Grupa: Zarejestrowani
Postów: 256
Pomógł: 7
Dołączył: 1.01.2005

Ostrzeżenie: (0%)
-----


Witam, poszukuje funkcji która szuka wielu stringów i wrzuca je do tablicy, a nie tak jak ereg (znajduje tylko pierwszy).


--------------------
Nie proś o to, idź i sam to zdobądź.
Zrób to, a osiągniesz sukces.
Go to the top of the page
+Quote Post
lopez86
post 14.04.2007, 13:35:06
Post #2





Grupa: Zarejestrowani
Postów: 187
Pomógł: 0
Dołączył: 24.12.2006

Ostrzeżenie: (0%)
-----


jeśli chodzi o znalezienie np. wszystkich stringów pasujących do jakiegoś wzorca w długim stringu to preg_match_all polecam smile.gif


--------------------
c++ , javascript , PHP , SQL , MYSQL , CSS - wszystko czego potrzebuje prawdziwy mężczyzna LoL
Go to the top of the page
+Quote Post
Hectic
post 14.04.2007, 14:55:42
Post #3





Grupa: Zarejestrowani
Postów: 256
Pomógł: 7
Dołączył: 1.01.2005

Ostrzeżenie: (0%)
-----


Teraz mam z nią problem:

  1. <?php
  2. preg_match_all("href="(.*)"", $this -> file_tpl_data, $date, PREG_PATTERN_ORDER);
  3. ?>

Kod
Warning: preg_match_all() [function.preg-match-all]: Delimiter must not be alphanumeric or backslash in C:\apache\httpdoc\forum\tpl.class.php on line 58

O co chodzi ? tongue.gif


--------------------
Nie proś o to, idź i sam to zdobądź.
Zrób to, a osiągniesz sukces.
Go to the top of the page
+Quote Post
webdice
post 14.04.2007, 15:08:56
Post #4


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




W twoim przykładzie brakuje "ograniczników", jak je nazwał autor tego artykułu artykułu.
Go to the top of the page
+Quote Post
lopez86
post 14.04.2007, 15:16:31
Post #5





Grupa: Zarejestrowani
Postów: 187
Pomógł: 0
Dołączył: 24.12.2006

Ostrzeżenie: (0%)
-----


  1. <?php
  2.  
  3.  
  4.  
  5. preg_match_all("@href="([a-z.:/0-9_-]*)"@i", "<a href="http://mojadomena.pl/cosik.php">drugi<a href="drugi.php">", $date, PREG_PATTERN_ORDER);
  6.  
  7.  
  8. print_r($date);
  9.  
  10.  
  11. ?>


--------------------
c++ , javascript , PHP , SQL , MYSQL , CSS - wszystko czego potrzebuje prawdziwy mężczyzna LoL
Go to the top of the page
+Quote Post
webdice
post 14.04.2007, 15:24:54
Post #6


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




Po co kombinować z jakimś strasznie rozbudowanym wyraźeniem, nie lepiej tak:

Kod
preg_match_all ('#href="([^"]+)"#', ...)
Go to the top of the page
+Quote Post
lopez86
post 14.04.2007, 15:28:50
Post #7





Grupa: Zarejestrowani
Postów: 187
Pomógł: 0
Dołączył: 24.12.2006

Ostrzeżenie: (0%)
-----


W sumie fakt ja tam jednak wolę skomplikowanie bo wtedy mogę szybko zmodyfikować jakich url'i nie chcę np. takich z querystring tylko czyste domeny tak jak w tym przypadku . żeby wyciągnąć wszystkie trzeba jeszcze dodać kilka znaków w nawiasie kwadratowym. Ale jak kto woli , rzeczywiście tym prościej czasem lepiej.


--------------------
c++ , javascript , PHP , SQL , MYSQL , CSS - wszystko czego potrzebuje prawdziwy mężczyzna LoL
Go to the top of the page
+Quote Post
webdice
post 14.04.2007, 15:38:04
Post #8


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




Swego czasu pisałem funkcje do wyciągania linków z danej strony, trochę ją skróciłem bo nie widzę sensu wklejania tu całej.

  1. <?php
  2. function getLinks ($pageAddress)
  3. {
  4. $domObject = new domdocument ();
  5.  
  6. @$domObject -> loadhtml (file_get_contents ($pageAddress));
  7.  
  8. foreach ($domObject -> getelementsbytagname ('a') as $findLink) 
  9. {
  10. $findLinks[] = $findLink -> getattribute ('href');
  11. }
  12.  
  13. return $findLinks;
  14. }
  15. ?>


Użycie:

  1. <?php
  2. getLinks ('http://php.pl/');
  3. ?>
Go to the top of the page
+Quote Post
lopez86
post 14.04.2007, 19:02:26
Post #9





Grupa: Zarejestrowani
Postów: 187
Pomógł: 0
Dołączył: 24.12.2006

Ostrzeżenie: (0%)
-----


jak zrobić preg matchem żeby zwracał array tylko z wartościami "trafionymi" we wzorcu bo jeżeli zwraca tak jak w moim przykładzie to zwraca też tablicę z href=" cośtam i drugą z samymi linkami (w sumie to dwuwymiarową) ale jak ja muszę np. 100 linków zamienić na swoje i zrobć inne rzeczy z treścią i wyświetlić w rozsądnym czasie w przeglądarce to jednak te kilka setnych sekundy się liczy dlatego chciałbym samą tablicę z trafionymi. Napewno się da ale ja nie pamiętam jak to się robiło . Wiem że czasem zadaje głupie pytania ale to też z faktu że takie lubie zadawać tongue.gif

Ten post edytował lopez86 14.04.2007, 19:18:20


--------------------
c++ , javascript , PHP , SQL , MYSQL , CSS - wszystko czego potrzebuje prawdziwy mężczyzna LoL
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 25.06.2025 - 05:56