Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> 50 pierwszych wyrazów, Za pomocą RegExp
Zajec
post 6.08.2006, 08:07:48
Post #1





Grupa: Zarejestrowani
Postów: 1 086
Pomógł: 8
Dołączył: 10.12.2003

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


Chcę ze stringa wyciągnąć 50 pierwszych wyrazów. Obecnie robię to tak:

  1. <?php
  2. preg_match('/^(.*? ){0,50}/', $art, $tmp);
  3. ?>


I wyświetlam wyrzucając
$tmp[1] . $tmp[2] . $tmp [3] . $tmp[4]


Czy można jakoś inaczej pobawić się nawiasami w wyrażeniu regularnym, aby pierwasze 50 wyrazów było wyciągnięte jako jeden element tablicy?
Go to the top of the page
+Quote Post
Prph
post 6.08.2006, 08:43:22
Post #2





Grupa: Zarejestrowani
Postów: 338
Pomógł: 2
Dołączył: 4.03.2006
Skąd: Łódź

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


A nie lepiej tak:

  1. <?php
  2. $sNapis = strstr($sTekst, 0, 50);
  3.  
  4. // Teraz do stronga mozna odwolac sie jak do tablicy (nie pamietam tego dokladnie)
  5. ?>


Adrian.

Edit: moj blad - przeczytalem pierwszych liter, a nie 50 wyrazow winksmiley.jpg

Edit2: nie strstr, tylko substr. Dalem plame winksmiley.jpg

Ten post edytował Prph 6.08.2006, 10:23:10
Go to the top of the page
+Quote Post
bendi
post 6.08.2006, 08:55:01
Post #3





Grupa: Zarejestrowani
Postów: 401
Pomógł: 5
Dołączył: 14.09.2003
Skąd: Wrocław

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


Cytat(Zajec @ 6.08.2006, 09:07 ) *
Czy można jakoś inaczej pobawić się nawiasami w wyrażeniu regularnym, aby pierwasze 50 wyrazów było wyciągnięte jako jeden element tablicy?

Nie trzeba się niczym bawić - cały złapany tekst jest przechowywany pod kluczem 0.


--------------------
Go to the top of the page
+Quote Post
Jabol
post 6.08.2006, 13:46:36
Post #4





Grupa: Przyjaciele php.pl
Postów: 1 467
Pomógł: 13
Dołączył: 22.02.2003

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


  1. <?php
  2. implode("", $tmp);
  3. ?>
Go to the top of the page
+Quote Post
nazihipi
post 6.08.2006, 14:01:18
Post #5





Grupa: Zarejestrowani
Postów: 139
Pomógł: 0
Dołączył: 14.07.2006

Ostrzeżenie: (10%)
X----


  1. <?php
  2. $arr = explode( ' ', $string ); 
  3.  /**
  4.   * szukane slowa znajduja sie w $arr[0] ... $arr[49]
  5.   * można je teraz zlaczyc w jeden string za pomoca funkcji implode()
  6.   */
  7. ?>


Ten post edytował nazihipi 6.08.2006, 14:05:07
Go to the top of the page
+Quote Post
hwao
post 6.08.2006, 17:16:31
Post #6


Developer


Grupa: Moderatorzy
Postów: 2 844
Pomógł: 20
Dołączył: 25.11.2003
Skąd: Olkusz




  1. <?php
  2. preg_match('/^((.*? ){0,50}){1}/', $art, $tmp);
  3. ?>

  1. <?php
  2. preg_match('/^((([^ ]+) ){50}){1}/', $art, $tmp);
  3. ?>
Go to the top of the page
+Quote Post
Zajec
post 6.08.2006, 21:54:00
Post #7





Grupa: Zarejestrowani
Postów: 1 086
Pomógł: 8
Dołączył: 10.12.2003

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


Cytat(hwao @ 6.08.2006, 18:16 ) *
  1. <?php
  2. preg_match('/^((.*? ){0,50}){1}/', $art, $tmp);
  3. ?>

Coś takiego chciałem, dziękuję. Nie wiedziałem, że można użyć zagnieżdżonych nawiasów.
Go to the top of the page
+Quote Post
hwao
post 7.08.2006, 09:58:54
Post #8


Developer


Grupa: Moderatorzy
Postów: 2 844
Pomógł: 20
Dołączył: 25.11.2003
Skąd: Olkusz




Jak Ci wyłapuje nie potrzebne atomy (w tablice laduje) to można jeszcze je powylaczac smile.gif
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: 20.06.2025 - 16:58