Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [funkcja]Pobieranie danych z eksportu kontaktów z GG, php 4, php 5
Trobin
post
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ę:
  1. <?php
  2. function fromGG($contact){
  3. $pattern='/;*(^[a-zA-ZźćśńąęłżŹĆŚŃĄĘŁŻ"'^[0-9]+)*;*(^[a-zA-ZźćśńąęłżŹĆŚŃĄĘŁŻ"'s*^[0-9]+)*;*([a-zA-ZźćśńąęłżŹĆŚŃĄĘŁŻ"'s*^[0-9]+)*;*([a-zA-ZźćśńąęłżŹĆŚŃĄĘŁŻ"'s*^[0-9]+)*;*(+48[0-9]+)*;*([a-zA-Zs*]+)*;*([0-9]+)*/';
  4. $contact=preg_match ($pattern, $contact, $contact_data);
  5. return $contact_data;
  6. }
  7. ?>

Funkcja zwraca w wyniku tablicę z określonymi danymi:
  1. <?php
  2. $contact_data['1'] //Imię
  3. $contact_data['2'] //Nazwisko
  4. $contact_data['3'] //Pseudo
  5. $contact_data['4'] //Nazwa wyświetlana
  6. $contact_data['5'] //Numer komórki
  7. $contact_data['6'] //Grupa do której należy kontakt
  8. $contact_data['7'] //Najważniejsze - numer Gadu - Gadu
  9. ?>

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 (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Ten post edytował Trobin 11.05.2008, 16:39:33
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Trobin
post
Post #2





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... (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)
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 (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) ). Mówiąc szczerze to myślałem nad explode, ale jakoś nie mogłem tego zwizualizować i dlatego pomyślałem: wezmę preg i potraktuje to jako dobry moment na naukę wyrażeń regularnych (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) .
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ę (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) postaram się udoskonalić swoja "funkcję" i przedstawić wynik (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) .

Ten post edytował Trobin 11.05.2008, 18:28:44
Go to the top of the page
+Quote Post

Posty w temacie


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: 6.10.2025 - 20:56