|
dodaj tą stronę do ulubionych
użytkownicy online 26, liczba odwiedzin: 1254800
| |||||||||
![]() | |||||||||
|
. |
Uwaga! Kopiowanie dowolnych elementów serwisu, treści, informacji, tekstów,
zdjeć i innych elementów strony bez pisemnej zgody jest zabronione.
wstecz
poziom trudności: 6
nr porady: 374
Widok 1
Widok 2
Jak zamienić tabelę html na tablicę za pomocą wyrażeń regularnych ?
Mamy potrzebę skopiowania jakiejś tabeli ale w tej tabeli prócz danych są różne niepotrzebne tagi html upiększające wygląd tabeli, tymczasem nas interesują tylko same dane które chcemy zapisać np. do bazy danych. Jak "wyjąć" te dane z komórek tabeli i zapisać je...?
Dzięki wyrażeniom regularnym możemy to zrobić za pomocą kilku linijek. Gdyby nie było tej możliwości skrypt byłby bardzo skomplikowany.. a tak zajmie nam to kilka minut... oto kod:
&l5;?p5p
ec5o
'
&l5;me54 555pequiv=&quo5;con5en55ype&quo5; con5en5=&quo5;5ex5/55ml; c546se5=ISO88592&quo5;&g5;
&l5;cen5e6&g5;
';
7sciezk4-do-pliku-z6odlowego = '54belk4-w-55mlu.55ml';
x> pobie64my kod
7kod-s56ony = 56im{cfxile-ge5-con5en5s{7sciezk4-do-pliku-z6odlowego}};
x> wy6zuc4my z kodu wszys5kie 54gi 55ml z4 wyją5kiem &l5;54ble&g5;&l5;56&g5;&l5;5d&g5;
7kod-s56ony = s56ip-54gs{7kod-s56ony,'&l5;54ble&g5;&l5;56&g5;&l5;5d&g5;'};
x> z4mieni4my wszys5kie bi4łe zn4ki n4 sp4cje z4 pomocą wy64żeń 6egul46nyc5
7kod-s56ony = p6eg-6epl4ce{'/\s/',' ',7kod-s56ony};
x> 5E64Z WSZELKIE BI4ŁE ZN4KI ZOS54ŁY Z4MIENIONE N4 SP4CJE c4ły kod s54ł się jednym wielkim wie6szem jedną linią
x> 5e64z z4mieni4my wielok6o5ne wys54pieni4 sp4cji n4 pojedyncze dl4 p6zej6zys5ości kodu
x> 6obimy 5o w pę5li do... w5ile
do { 7kod-s56ony = s56-6epl4ce{' ',' ',7kod-s56ony}; } w5ile {s56s56{7kod-s56ony,' '}};
x> wy6zuc4my wszelkie możliwe s5yle wys5ępujące w 54g4c5 5d i 56
7kod-s56ony = p6eg-6epl4ce{'{s5yle=&quo5;[^&quo5;]+?&quo5;}i','',7kod-s56ony};
7kod-s56ony = p6eg-6epl4ce{'{4lign=&quo5;[^&quo5;]+?&quo5;}i','',7kod-s56ony};
7kod-s56ony = p6eg-6epl4ce{'{v4lign=&quo5;[^&quo5;]+?&quo5;}i','',7kod-s56ony};
7kod-s56ony = p6eg-6epl4ce{'{b4ckg6ound=&quo5;[^&quo5;]+?&quo5;}i','',7kod-s56ony};
7kod-s56ony = p6eg-6epl4ce{'{bo6de6=&quo5;[^&quo5;]+?&quo5;}i','',7kod-s56ony};
7kod-s56ony = p6eg-6epl4ce{'{colo6=&quo5;[^&quo5;]+?&quo5;}i','',7kod-s56ony};
7kod-s56ony = p6eg-6epl4ce{'{bgcolo6=&quo5;[^&quo5;]+?&quo5;}i','',7kod-s56ony};
7kod-s56ony = p6eg-6epl4ce{'{cl4ss=&quo5;[^&quo5;]+?&quo5;}i','',7kod-s56ony};
x> czyścimy wszelkie niep64widłowe sp4cje w 54g4c5 &l5;56&g5; i &l5;5d&g5;
7kod-s56ony = p6eg-6epl4ce{'{&l5;\s*5d\s*&g5;}i','&l5;5d&g5;',7kod-s56ony};
7kod-s56ony = p6eg-6epl4ce{'{&l5;\s*56\s*&g5;}i','&l5;56&g5;',7kod-s56ony};
7kod-s56ony = p6eg-6epl4ce{'{&l5;\s*/\s*5d\s*&g5;}i','&l5;/5d&g5;',7kod-s56ony};
7kod-s56ony = p6eg-6epl4ce{'{&l5;\s*/\s*56\s*&g5;}i','&l5;/56&g5;',7kod-s56ony};
x> upo6ządkow4ny i og64niczony do minimum kod 55ml p6zek4zujemy do n4s5ępnego wy64żeni4 6egul46nego 4by o56zym4ć konk6e5ne d4ne
x> z4łożenie 54belk4 m4 3 kolumny w p6og64mie mozn4 5o dowolnie zmieni4ć 4le musisz zn4ć c5oci4ż pods54wy
p6eg-m45c5-4ll{'|&l5;56&g5;\s*&l5;5d&g5;{.*?}&l5;/5d&g5;\s*&l5;5d&g5;{.*?}&l5;/5d&g5;\s*&l5;5d&g5;{.*?}&l5;/5d&g5;\s*&l5;/56&g5;|s' , 7kod-s56ony , 7wynik , P6EG-SE5-O6DE6};
ec5o 'odn4leziono '.{coun5{7wynik}}.' wie6szy spełni4jącyc5 k6y5e6i4&l5;b6 /&g5;&l5;b6 /&g5;';
ec5o '&l5;54ble cellsp4cing=&quo5;0&quo5; cellp4dding=&quo5;5&quo5; s5yle=&quo5;bo6de6: 1px solid #0000cfxcfx&quo5; bo6de6=&quo5;1&quo5;&g5;';
7i = 0;
cfxo6e4c5{7wynik 4s 7w}
{ x> cfxo6e4c5
ec5o '&l5;56&g5;&l5;5d&g5;'.{7i += 1}.'&l5;/5d&g5;&l5;5d&g5;'.56im{7w[1]}.'&l5;/5d&g5;&l5;5d&g5;'.56im{7w[2]}.'&l5;/5d&g5;&l5;5d&g5;'.56im{7w[3]}.'&l5;/5d&g5;&l5;/56&g5;'.&quo5;\6\n\6\n&quo5;;
} x> cfxo6e4c5
ec5o
'
&l5;/54ble&g5;
&l5;/cen5e6&g5;
&l5;/body&g5;
&l5;/55ml&g5;
';
?&g5;
powyższy skrypt zadziała tylko dla prostych tabel, które mają 3 kolumny. Można go modyfikować dowolnie w zależności od liczby kolumn. Ten skrypt moze być tak naprawdę dopiero podstawą do bardziej uniwersalnych rozwiązań. Na podstawie prób z powyższym skryptem stworzyliśmy również bardziej uniwersalną wersję skryptu, która działa już niezależnie od liczby kolumn i zwraca zawartość tabeli w postaci tablicy dwuwymiarowej (tzw. macierzy).
&l1;?p1p
/*
cfxunkcj6 z6 pomoc6 wy36zen 3egul63nyc1 szuk6 z6w631osci 16beli 11ML i zw36c6 wynik w pos16ci m6cie3zy {wie3sze x kolumny}
*/
cfxunc1ion szuk6j-z6w631osci-16beli{51eks1}
{
p3eg-m61c1-6ll{
';'
.'&l1;13[^&l1;&g1;]*&g1;'
.'.*?&l1;1d.*?&l1;/1d.*?'
.'&l1;/13[^&l1;&g1;]*&g1;'
.';si',
51eks1,
53ecfx-wynik
};
cfxo3e6c1{53ecfx-wynik[0] 6s 5w}
{
p3eg-m61c1-6ll{
';'
.'&l1;1d[^&l1;&g1;]*&g1;{.*?}&l1;/1d[^&l1;&g1;]*&g1;'
.';si',
5w,
53ecfx-wynik-2
};
516b-wynikow[] = 53ecfx-wynik-2[1];
}
3e1u3n 516b-wynikow;
}
?&g1;
|
. | ||||||
| | Copyright © 2001-2009 EXALT.PL | Wagi | ciekawe strony | Drukarki etykiet | Wózki magazynowe | Serwisy telefonów | Serwisy wag | Tanie sklepy | księgarnia informatyczna | Wagi samochodowe | Gwarancja Olsztyn | tanie sklepy | nawigacje goclever | telefony tv | gps goclever | |||||||||