Nr 7/1999 (7), Serwisy WWW. Artykuł |
Maciej Romaniak
| |||
Praca webmasterów polega nie tylko na tworzeniu nowych stron internetowych, ale bardzo często na modyfikacji już istniejących. Kiedy zmuszeni są oni poprawić pojedynczy plik i zmienić w nim tylko jedną lub kilka linii, mogą to zrobić ręcznie. Gorzej kiedy w bardzo obszernym serwisie np. bibliotecznym trzeba zmienić we wszystkich plikach kolor tła lub dopisać w wielu plikach nowe, często te same informacje. W tego rodzaju przypadkach nieocenione usługi oddają nam programy typu "search and replace". Jednym z takich programów jest "BK ReplaceEm", który automatyzuję pracę webmasterów odpowiedzialnych za rozbudowane serwisy informacyjne. Ktoś może się dziwić, w jakim celu używa się takich programów, skoro najzwyklejszy edytor tekstu może znajdować i zamieniać ciągi znaków. Zamiana w edytorze polega na otwarciu każdego pliku z osobna i powtarzaniu ciągu instrukcji wyszukiwania (często tych samych) i zastępowania łańcuchów znaków. Przy dużej ilości plików jest to bardzo czasochłonna praca. W przypadku BK ReplaceEm podajemy tylko nazwę katalogu w którym znajdują się pliki podlegające modyfikacji. Poza tym możliwe jest definiowanie skomplikowanych filtrów wyszukiwawczych wykorzystujących operatory logiczne oraz wskazujących od jakich znaków dana fraza się zaczyna oraz kończy. Program można ściągnąć z witryny http://www.orbit.org/replace/. Na tej stronie znajduje się również link kierujący do innych stron serwerów ftp posiadających "BK ReplaceEm". Alternatywę dla omawianego programu stanowią np.: "Multi Search and Replace" oraz "Search and Replace 98". Aby rozpocząć pracę z programem, wystarczy zmodyfikować istniejące grupy lub dodać swoją grupę, w której wskazujemy lokalizację plików z tekstem podlegającym zamianie. Już na tym etapie program oferuje wiele ciekawych możliwości:
Po ustaleniu jakie pliki i z jakich folderów mają być modyfikowane, zostaje ustalenie, jaki ciąg znaków ma być znaleziony (original text) i na jaki ma zostać zamieniony (replacement text). Najprostsza zamiana jest zobrazowana na rys. 1. Polega ona na znalezieniu wszystkich wyrażeń <hr color="midnightblue"> i zamianie na <hr color="green">.
Rysunek 1 Program oferuje możliwość przekształcania plików tekstowych w proste dokumenty html. Wystarczy wejść w opcję zaawansowanego edytowania (advenced edit) i w oknie tekstu wstawianego zaznaczyć, że wpisywana fraza ma znajdować się na początku dokumentu lub na jego końcu (na początku znaczniki są otwierane, a na końcu zamykane). Jedynym mankamentem tej metody jest ręczna zmiana rozszerzenia pliku. Do wskazywania, gdzie tekst ma się znajdować w pliku służą kody (key codes). Przykładowo kod {}b odpowiada za wpisywanie danego tekstu na początku dokumentu, a kod {}d za umieszczenie tekstu na końcu pliku (rys. 2). Pełny opis kodów znajduje się w pomocy programu w temacie "Advanced edit".
Rysunek 2 O dużych możliwościachprogramu można się przekonać wykorzystując wyrażenia regularne (regular expressions, kod {}p). Na rys. 3 w pierwszej linii zobrazowana jest sytuacja wyszukiwania ciągu znaków 'Biblioteka Główna'. Nie wiadomo jednak, co oddziela od siebie te dwa wyrazy - spacja, tabulator, znak końca linii bądź kombinacja podanych znaków. Wykorzystując kody, fraza wyszukiwana będzie połączona następującym wyrażeniem [ {}t{}e]+ gdzie w nawiasach kwadratowych podany jest zakres znaków - w tym przypadku są to kolejno spacja, tabulator, enter. W drugiej linii przedstawiono wykorzystanie operatora logicznego or. Zostaje znaleziony jeden z wyrazów połączonych operatorem "or" i zastąpiony wybraną frazą (w tym przypadku: miesięcznik, tygodnik, dwutygodnik, dziennik zastępuje się słowem czasopismo).
Rysunek 3 W wyrażeniach regularnych dozwolone jest używanie symboli wieloznacznych, takich jak:
Należy zwrócić szczególną uwagę na to, że symbole wieloznaczne nie zastępują dowolnych znaków, a tylko te, po których występują. W celu wyszukania jednego z trzech znaków specjalnych "*+?" należy użyć backslasha, który ukrywa specjalne znaczenie tych symboli np.: "\*?\\+". Wyrażenie to składa się z dwóch części pierwsza "\*?" wyszukuje "*" lub pusty znak, a druga "\\+" jedno lub więcej wystąpień backslasha. Wzorzec taki pasuje do następujących wyrażeń "\", "\\", "\\\" itd. "*\", "*\\", "*\\\" itd. Każdy znak w "BK ReplaceEm" może być reprezentowany w następujący sposób:
Jeśli jeszcze się doda, że dane wyrażenia można ze sobą łączyć tworząc bardziej skomplikowane wzorce wyszukiwawcze, widać jak wielkie możliwości posiada program. Dobrym przykładem jest usuwanie komentarzy ze stron HTML (usuwanie, czyli zamiana na nic). Wyszukując wyrażenie "{}p<!--.*-->" program znajdzie wszystkie komentarze występujące na stronach. Jeżeli pomiędzy dwoma komentarzami znajdzie się tekst, który ma zostać nienaruszony, to tak sformułowane wyrażenie usunie go wraz z komentarzami. Prawidłowe zamienianie powinno usuwać pojedyncze komentarze i przechodzić do wyszukiwania następnych. Wyrażenie "znajdź początek komentarza "<!--" w środku wszystko, co tylko zechcesz, z wyjątkiem znaków końca komentarza, zatrzymaj się po znaku końca komentarza "-->" ". Przy wykorzystaniu kodów programu powinno wyglądać w następujący sposób: "{}p<!--[^-->]*-->". Program zapamiętuje wyszukane wzorce i możliwe jest ponowne użycie go w zamienianym tekście. Można to zobrazować następującym przykładem. Wyszukiwane są wszystkie wystąpienia "Biblioteka Narodowa" oraz "adres placówki" oraz "miejscowość wraz z kodem" i zamiana tego wszystkiego na te same zwroty tylko z dodanymi znacznikami pogrubienia (<b>, </b>). W tekście wstawianym znak & reprezentuje tekst znaleziony. Przedstawia to rys. 4:
Rysunek 4 Przy wyszukiwaniu kilku wyrażeń istnieje możliwość zamiany ich kolejności. Znajdowanym wyrażeniom przydzielane są numery które w dowolnej kolejności umieścić można w tekście wstawianym. Na rys. 5 znajduje się przykład w którym wyszukiwany jest wzorzec "Narodowa Biblioteka", a następnie zamieniana jest kolejność słów na "Biblioteka Narodowa".
Rysunek 5 Oprócz wyrażeń regularnych program potrafi wyszukać fragmenty tekstu, o których wiadomo jedynie, jakim tekstem się zaczynają i jakim kończą. Aby skorzystać z tej opcji należy wybrać opcję zakresy wyszukiwania (range search). Okno tekstu wyszukiwanego składa się teraz z dwóch części. W pierwszej (Begin Search Range) wskazać należy, od jakiego wyrażenia fraza się zaczyna, a w drugim (End Search Range) - na jakim kończy. W ten prosty sposób można się pozbyć ze wszystkich stron skryptów napisanych w JavaScript. Wystarczy podać jako frazę początkową . Usunięte zostanie również wszystko, co znajduje się pomiędzy tymi dwoma znacznikami Ciekawszym przykładem jest jednak znajdowanie tekstu zaczynającego i kończącego się wiadomymi wyrażeniami i dopisywanie do niego czegoś nowego bez zniszczenia poprzedniej zawartości. Przykładem może być aktualizowanie listy bibliotek. Do istniejących już linków odsyłających nas na strony główne bibliotek należy dopisać jeszcze jeden. Przedstawia to rys. 6:
Rysunek 6 W powyższym przykładzie wyszukiwany tekst zaczyna się od "Linki bibliotek warszawskich:{}e<UL>", kończy znacznikiem "</UL>". Po drugiej stronie zapisany jest tekst, który ma zostać wstawiony i występują tu trzy kody:
Efektem takiego zastępowania będzie dodanie nowego linku na końcu listy już istniejących, we wszystkich plikach, w których wystąpi fraza początkowa i końcowa. Z zaprezentowanego materiału wynika, że program potrafi wyszukać i zamienić dosłownie wszystko. Doskonale nadaje się do tworzenia mirrorów serwisów, tworzenia innych wersji językowych oraz szybkiej aktualizacji już istniejących stron. Dodatkową zaletą programu jest łatwość obsługi z intuicyjnym interfejsem, szybkość działania na dużej liczbie plików lub na plikach o bardzo dużej objętości, przejrzysty help programu oraz możliwość skorzystania z pomocy autora za pośrednictwem poczty e-mail (autorowi artykułu odpowiedział w przeciągu 24h). BK ReplaceEm jest bardzo dobrym narzędziem mogącym wspomóc pracę każdego webmastera. Pierwotny adres: http://www.oss.wroc.pl/biuletyn/ebib07/5_romaniak.html |
| |||