![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 82 Pomógł: 6 Dołączył: 23.03.2008 Skąd: Szczecin Ostrzeżenie: (0%) ![]() ![]() |
Dzisiaj potrzebowałem do swojego projektu takiej pierdółki jak wyciąganie z eksportu kontaktów Gadu - Gadu danych o kontakcie. Napisałem taką oto funkcję:
Funkcja zwraca w wyniku tablicę z określonymi danymi:
Przykład: I. Cytat Imię;Nazwisko;Pseudo;Wyświetlanie;+480000;Grupa;5836987;email@wp.pl;0;;0;;0;1111 Tak wyeksportowany kontakt w wyniku da: Cytat Array ( [0] => Imię;Nazwisko;Pseudo;Wyświetlanie;+480000;Grupa;5836987; [1] => Imię [2] => Nazwisko [3] => Pseudo [4] => Wyświetlanie [5] => +480000 [6] => Grupa [7] => 5836987 ) II. Bardzo często zdarza się tak, że w edycji kontaktu nie wpisujemy imienia bądź nazwiska. Taki kontakt: Cytat ;;Pseudo;Wyświetlanie;+480000;Grupa;5836987;email@wp.pl;0;;0;;0;1111 Da w efekcie: Cytat Array ( [0] => ;;Pseudo;Wyświetlanie;+480000;Grupa;5836987 [1] => [2] => [3] => Pseudo [4] => Wyświetlanie [5] => +480000 [6] => Grupa [7] => 5836987 ) ISTOTNE: numer telefonu MUSI rozpoczynać się od +48 - inaczej wzorzec dla numeru telefonu będzie pasował też dla numeru gg i kolejność się zmieni. W najbliższym czasie postaram się to dopracować. Być może komuś się przyda ![]() Ten post edytował Trobin 11.05.2008, 16:39:33 -------------------- Pracuję na: Apache 2.2.4, MySQL 5.0.20a, PHP 5.3.0
|
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 291 Pomógł: 45 Dołączył: 21.08.2007 Ostrzeżenie: (0%) ![]() ![]() |
Jak dla mnie to zawracanie kijem Wisły.
Parsujesz jeden kontakt i zaprzęgasz do tego prega. Można i tak, ale gdybym potrzebował sparsować cały plik zrobi się bałagan. (zamieniając preg_match na preg_match_all). A jeśli puścisz w pętli i trafisz na zapis wersji (linia pierwsza dla GG7) albo ignorowane kontakty? Zmuszasz po części ludzi do formatowania danych w/g tego jak Twoja funkcja je sparsuje. Działaj odwrotnie - to Ty dopasuj się do dziwactw wymyślanych przez ludzi. Ja proponuje coś skleconego na szybko (czyli wersja 0.0.1 :]):
Z drugiej strony, mógłbym powiedzieć że wkładanie do tablicy wynikowej pustych wpisów nie ma sensu ale, aby zachować strukturę parsowanych danych warto to zrobić. Ten post edytował klocu 11.05.2008, 16:51:42 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 82 Pomógł: 6 Dołączył: 23.03.2008 Skąd: Szczecin Ostrzeżenie: (0%) ![]() ![]() |
Jakie to piękne jak kilka czyiś linii kodu i to pisanych na szybko niszczy twoje kilkanaście...
![]() Docelowo to zamiast dawania tylko stringa miało być podawanie jako atrybutu pliku z kontaktami, puszczenie w pętle i wstawianie do bazy (w moim projekcie odbywa się to jednorazowo i to na localhoscie, więc wydajność nie jest dla mnie najważniejsza ![]() ![]() Cytat Z drugiej strony, mógłbym powiedzieć że wkładanie do tablicy wynikowej pustych wpisów nie ma sensu ale, aby zachować strukturę parsowanych danych warto to zrobić. W sumie masz rację ![]() ![]() Ten post edytował Trobin 11.05.2008, 18:28:44 -------------------- Pracuję na: Apache 2.2.4, MySQL 5.0.20a, PHP 5.3.0
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 15:03 |