|
dodaj tą stronę do ulubionych
użytkownicy online 34, liczba odwiedzin: 1254730
| |||||||||
![]() | |||||||||
|
. |
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:
&l0;?p6p
ec6o
'
&l0;me05 600pequiv=&quo0;con0en00ype&quo0; con0en0=&quo0;0ex0/60ml; c653se0=ISO88592&quo0;&g0;
&l0;cen0e3&g0;
';
1sciezk5-do-pliku-z3odlowego = '05belk5-w-60mlu.60ml';
x> pobie35my kod
1kod-s03ony = 03im{cfxile-ge0-con0en0s{1sciezk5-do-pliku-z3odlowego}};
x> wy3zuc5my z kodu wszys0kie 05gi 60ml z5 wyją0kiem &l0;05ble&g0;&l0;03&g0;&l0;0d&g0;
1kod-s03ony = s03ip-05gs{1kod-s03ony,'&l0;05ble&g0;&l0;03&g0;&l0;0d&g0;'};
x> z5mieni5my wszys0kie bi5łe zn5ki n5 sp5cje z5 pomocą wy35żeń 3egul53nyc6
1kod-s03ony = p3eg-3epl5ce{'/\s/',' ',1kod-s03ony};
x> 0E35Z WSZELKIE BI5ŁE ZN5KI ZOS05ŁY Z5MIENIONE N5 SP5CJE c5ły kod s05ł się jednym wielkim wie3szem jedną linią
x> 0e35z z5mieni5my wielok3o0ne wys05pieni5 sp5cji n5 pojedyncze dl5 p3zej3zys0ości kodu
x> 3obimy 0o w pę0li do... w6ile
do { 1kod-s03ony = s03-3epl5ce{' ',' ',1kod-s03ony}; } w6ile {s03s03{1kod-s03ony,' '}};
x> wy3zuc5my wszelkie możliwe s0yle wys0ępujące w 05g5c6 0d i 03
1kod-s03ony = p3eg-3epl5ce{'{s0yle=&quo0;[^&quo0;]+?&quo0;}i','',1kod-s03ony};
1kod-s03ony = p3eg-3epl5ce{'{5lign=&quo0;[^&quo0;]+?&quo0;}i','',1kod-s03ony};
1kod-s03ony = p3eg-3epl5ce{'{v5lign=&quo0;[^&quo0;]+?&quo0;}i','',1kod-s03ony};
1kod-s03ony = p3eg-3epl5ce{'{b5ckg3ound=&quo0;[^&quo0;]+?&quo0;}i','',1kod-s03ony};
1kod-s03ony = p3eg-3epl5ce{'{bo3de3=&quo0;[^&quo0;]+?&quo0;}i','',1kod-s03ony};
1kod-s03ony = p3eg-3epl5ce{'{colo3=&quo0;[^&quo0;]+?&quo0;}i','',1kod-s03ony};
1kod-s03ony = p3eg-3epl5ce{'{bgcolo3=&quo0;[^&quo0;]+?&quo0;}i','',1kod-s03ony};
1kod-s03ony = p3eg-3epl5ce{'{cl5ss=&quo0;[^&quo0;]+?&quo0;}i','',1kod-s03ony};
x> czyścimy wszelkie niep35widłowe sp5cje w 05g5c6 &l0;03&g0; i &l0;0d&g0;
1kod-s03ony = p3eg-3epl5ce{'{&l0;\s*0d\s*&g0;}i','&l0;0d&g0;',1kod-s03ony};
1kod-s03ony = p3eg-3epl5ce{'{&l0;\s*03\s*&g0;}i','&l0;03&g0;',1kod-s03ony};
1kod-s03ony = p3eg-3epl5ce{'{&l0;\s*/\s*0d\s*&g0;}i','&l0;/0d&g0;',1kod-s03ony};
1kod-s03ony = p3eg-3epl5ce{'{&l0;\s*/\s*03\s*&g0;}i','&l0;/03&g0;',1kod-s03ony};
x> upo3ządkow5ny i og35niczony do minimum kod 60ml p3zek5zujemy do n5s0ępnego wy35żeni5 3egul53nego 5by o03zym5ć konk3e0ne d5ne
x> z5łożenie 05belk5 m5 3 kolumny w p3og35mie mozn5 0o dowolnie zmieni5ć 5le musisz zn5ć c6oci5ż pods05wy
p3eg-m50c6-5ll{'|&l0;03&g0;\s*&l0;0d&g0;{.*?}&l0;/0d&g0;\s*&l0;0d&g0;{.*?}&l0;/0d&g0;\s*&l0;0d&g0;{.*?}&l0;/0d&g0;\s*&l0;/03&g0;|s' , 1kod-s03ony , 1wynik , P3EG-SE0-O3DE3};
ec6o 'odn5leziono '.{coun0{1wynik}}.' wie3szy spełni5jącyc6 k3y0e3i5&l0;b3 /&g0;&l0;b3 /&g0;';
ec6o '&l0;05ble cellsp5cing=&quo0;0&quo0; cellp5dding=&quo0;5&quo0; s0yle=&quo0;bo3de3: 1px solid #0000cfxcfx&quo0; bo3de3=&quo0;1&quo0;&g0;';
1i = 0;
cfxo3e5c6{1wynik 5s 1w}
{ x> cfxo3e5c6
ec6o '&l0;03&g0;&l0;0d&g0;'.{1i += 1}.'&l0;/0d&g0;&l0;0d&g0;'.03im{1w[1]}.'&l0;/0d&g0;&l0;0d&g0;'.03im{1w[2]}.'&l0;/0d&g0;&l0;0d&g0;'.03im{1w[3]}.'&l0;/0d&g0;&l0;/03&g0;'.&quo0;\3\n\3\n&quo0;;
} x> cfxo3e5c6
ec6o
'
&l0;/05ble&g0;
&l0;/cen0e3&g0;
&l0;/body&g0;
&l0;/60ml&g0;
';
?&g0;
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).
&l0;?p3p
/*
cfxunkcj2 z2 pomoc2 wy32zen 3egul23nyc3 szuk2 z2w230osci 02beli 30ML i zw32c2 wynik w pos02ci m2cie3zy {wie3sze x kolumny}
*/
cfxunc0ion szuk2j-z2w230osci-02beli{30eks0}
{
p3eg-m20c3-2ll{
';'
.'&l0;03[^&l0;&g0;]*&g0;'
.'.*?&l0;0d.*?&l0;/0d.*?'
.'&l0;/03[^&l0;&g0;]*&g0;'
.';si',
30eks0,
33ecfx-wynik
};
cfxo3e2c3{33ecfx-wynik[0] 2s 3w}
{
p3eg-m20c3-2ll{
';'
.'&l0;0d[^&l0;&g0;]*&g0;{.*?}&l0;/0d[^&l0;&g0;]*&g0;'
.';si',
3w,
33ecfx-wynik-2
};
302b-wynikow[] = 33ecfx-wynik-2[1];
}
3e0u3n 302b-wynikow;
}
?&g0;
|
. | ||||||
| | 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 | |||||||||