Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> przetworzenie ciagu znakow do tablicy z wynikami
-REN-
post
Post #1





Goście







witam

potrzebuje przykladowy ciag "xyzxyzabcabbcabbbcxyzxyz" przetworzyc do postaci tablicy:
[1] = abc
[2] = abbc
[3] = abbbc

jak to uczynic?

dziekuje za rzeczowe odpowiedzi
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
dr_bonzo
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


A wg. jakich regol? Co wyroznia/oddziela te ciagi ktore chcesz wyciagnac?
Go to the top of the page
+Quote Post
php programmer
post
Post #3





Grupa: Zarejestrowani
Postów: 1 045
Pomógł: 5
Dołączył: 8.11.2004
Skąd: trójmiasto

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


jeśli dobrze zrozumiałem jak trafi na literę a to ma być następny element tablicy, czyli:
  1. <?
  2. $string = "xyzxyzabcabbcabbbcxyzxyz";
  3. $string = explode('a',$string);
  4. ?>

a ponieważ poucinało literę "a" ze względu na jej separatorski charakter
dokładamy literę "a" na początku każdej tablicy
  1. <?
  2. for($i=0;$i<count($string);$i++) $string[$i] = 'a'.$string[$i];
  3. ?>

dodatkowo trzeba zignorować pierwszy i ostatni element powstałej tablicy
ponieważ elementy te zawierają ciąg "xyzxy"
(można do tego użyć specjalnych funkcji operujących na tablicach.)

Ten post edytował php programmer 28.10.2005, 09:13:25
Go to the top of the page
+Quote Post
-Gość_REN-
post
Post #4





Goście







witam

Generalnie pisze skrypt ktory pobiera strone z internetu ktora zawiera tabele z danymi po czym odczytuje te dane i umieszcza w tablicach lub jednej tablicy dwuwymiarowej do dalszego przetworzenia.

Przyklad ktory przytoczylem w pierwszym poscie ma sie do tego tak:
- xyz to poczatek i koniec strony ktory nie zawiera zadnych istotnych danych i nas absolutnie nie internesuje
- abcabbaabbbc to kolejne wiersze tabeli z rozna zawartoscia (b lub bb lub bbb itd.) ale zaczynajace sie od <tr> (aka a) oraz konczace sie na </tr> (aka (IMG:http://forum.php.pl/style_emoticons/default/cool.gif)

Ja do tej pory probowalem cos zdzialac przy pomocy eregi ale chyba ta funkcja dziala troche odmiennie niz sie spodziewalem.
Wiec wydumalem, ze zrobie to tak ze:
- obetne poczatek lancucha az do pierwszego wystapienia <tr>
- obetne koniec lancucha az do ostatniego wystapienia </tr>
- pozostaly lancuch podziele funkcja split wedlug klucza "<tr.*></tr>"

Pozniej to samo trzeba zrobic z komorkami tablicy.

Czy dobrze rozumuje?
Go to the top of the page
+Quote Post
DeyV
post
Post #5





Grupa: Zarząd
Postów: 2 277
Pomógł: 6
Dołączył: 27.12.2002
Skąd: Wołów/Wrocław




Twój początkowy przyklad nijak sie ma do Twojego problemu (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Wydaje mi się jednak, że w takim przypadku explode nei sprawdzi sie zbyt dobrze.

Ja takie rzeczy zawszę robię przy pomocy pregów. Choć, fakt, faktem, czasem wymaga to posiedzenia nad odpowiednimi wyrażeniami, i wogóle - nauczenia się wyrażeń regularnych, ale jest to bardzo dobra "inwestycja".
Go to the top of the page
+Quote Post
REN
post
Post #6





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 28.10.2005
Skąd: Warszawa

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


dobra niewazne, kwestia spojrzenia na sprawe czy przyklad sie ma czy nie ma

ja myslalem o uzyciu funkcji split wlasnie ze wzgledu na mozliwosc skorzystania z wyrazen regularnych ale jako ze jestem "leszczem php" chcialem Was prosic o jakies wskazowki jak ugrysc ten temat
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 17.09.2025 - 20:51