![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 60 Pomógł: 0 Dołączył: 7.05.2006 Ostrzeżenie: (0%) ![]() ![]() |
Witam! Potrzebuje małej pomocy.
Przykładowo mam taki oto ciąg znaków: Kod File Size : 79 kB : Make : Canon : Camera Model Name : Canon PowerShot A510 : Create Date : 2005:07:20 05:05:27 : Exposure Time : 1/125 : F Number : 8.0 : Flash : On, Red-eye reduction : Exposure Compensation : 0 : Focal Length : 23.2mm : White Balance : Auto : Image Size : 640x480 i chciał bym przekształcić go na tablice wyglądającą następująco: Kod [File Size] => 79 kB [Make] => Canon [Camera Model Name] => Canon PowerShot A510 [Create Date] => 2005:07:20 05:05:27 itd... Domyślam się, że trzeba urzyć funkcji explode() tylko nie wiem dokładnie jak. Proszę o pomoc. Pozdrawiam. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 743 Pomógł: 0 Dołączył: 11.11.2003 Skąd: Toruń Ostrzeżenie: (0%) ![]() ![]() |
Jeśli tam miedzy dwukropkami nie ma spacji to je wywal, ale chyba muszą być ze względu na zapis czasu z dwukropkami Ten post edytował Kuziu 13.05.2006, 15:21:11 -------------------- Słońce zachodzi ... kolejna noc nadchodzi ...
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 60 Pomógł: 0 Dołączył: 7.05.2006 Ostrzeżenie: (0%) ![]() ![]() |
Tak jest spacja po prawej i lewej stronei każdego dwukropka, tylko nie wiem czemu po zastosowaniu Twojego skryptu uzyskuje:
Kod Array ( [File Size ] => 79 kB [Make ] => Canon [Camera Model Name ] => Canon PowerShot A510 [Create Date ] => 2005:07:20 05:05:27 [Exposure Time ] => 1/125 [F Number ] => 8.0 [Flash ] => On, Red-eye reduction [Exposure Compensation ] => 0 [Focal Length ] => 23.2mm [White Balance ] => Auto [Image Size ] => 640x480 ) 1 Nie wiem czemu są spacje w każdym kwadratowym nawiasie powinny być usuwane? tak wygląda mój cały skrypt:
Ten post edytował Regss 13.05.2006, 15:51:35 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 743 Pomógł: 0 Dołączył: 11.11.2003 Skąd: Toruń Ostrzeżenie: (0%) ![]() ![]() |
Kod array(11) { ["File Size"]=> string(5) "79 kB" ["Make"]=> string(5) "Canon" ["Camera Model Name"]=> string(20) "Canon PowerShot A510" ["Create Date"]=> string(19) "2005:07:20 05:05:27" ["Exposure Time"]=> string(5) "1/125" ["F Number"]=> string(3) "8.0" ["Flash"]=> string(21) "On, Red-eye reduction" ["Exposure Compensation"]=> string(1) "0" ["Focal Length"]=> string(6) "23.2mm" ["White Balance"]=> string(4) "Auto" ["Image Size"]=> string(7) "640x480" } U mnie wynik jest taki uzywam php 5 moze w 4 trzeba zamienić do string'a klucz tablicy -------------------- Słońce zachodzi ... kolejna noc nadchodzi ...
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 60 Pomógł: 0 Dołączył: 7.05.2006 Ostrzeżenie: (0%) ![]() ![]() |
Hmm dziwna sprawa ja sie nie znam na php ale uruchamiając sam Twój skrypt jest wszystko wporządku.
Może od początku: po wykonaniu procedury exec
Uzyskuje tablice: Kod Array ( [0] => File Size : 79 kB [1] => Make : Canon [2] => Camera Model Name : Canon PowerShot A510 [3] => Create Date : 2005:07:20 05:05:27 [4] => Exposure Time : 1/125 [5] => F Number : 8.0 [6] => Flash : On, Red-eye reduction [7] => Exposure Compensation : 0 [8] => Focal Length : 23.2mm [9] => White Balance : Auto [10] => Image Size : 640x480 ) 1 Ale że potrzebuje ją w innym formacie [File Size] => 79 kB wykonałem zamiane tablicy na ciąg znaków za pomocą:
i uzyskałem: Kod File Size : 79 kB : Make : Canon : Camera Model Name : Canon PowerShot A510 : Create Date : 2005:07:20 05:05:27 : Exposure Time : 1/125 : F Number : 8.0 : Flash : On, Red-eye reduction : Exposure Compensation : 0 : Focal Length : 23.2mm : White Balance : Auto : Image Size : 640x4801 I następnie wykonując Twój skrypt wychodzi ze spacjami wiesz może gdzie leży błąd, bo ja jestem zielony z php ;] Ten post edytował Regss 13.05.2006, 16:26:43 |
|
|
![]()
Post
#6
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 60 Pomógł: 0 Dołączył: 7.05.2006 Ostrzeżenie: (0%) ![]() ![]() |
Ehh spróbowałem tej funkcji trim() ale nic nie pomogło, chyba że źle ją zastosowałem
![]() oto cały kod:
A oto rezultaty: http://regss.no-ip.org/~ble/index4.php sprawdźcie na podglądzie źródła strony ile tam jest tych spacji ;] |
|
|
![]()
Post
#8
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 112 Pomógł: 20 Dołączył: 10.04.2005 Ostrzeżenie: (0%) ![]() ![]() |
użyj trim przy tworzeniu tablicy a nie wyświetlaniu.
poza tym, jezeli na twoim serwerze sa dostepne, uzyj PHPowych funkcji Exif, bo widze ze wlasnie takie dane pobierasz za pomoca skryptu perla. pozdr. |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 60 Pomógł: 0 Dołączył: 7.05.2006 Ostrzeżenie: (0%) ![]() ![]() |
Cytat(siemakuba @ 2006-05-13 17:40:53) użyj trim przy tworzeniu tablicy a nie wyświetlaniu. Po zmianie na Twój kod otrzymałem: array(1) { [""]=> NULL } A co do EXIF pobieranego za pomocą exif_read_data to nie jestem przekonany ponieważ nie jest on dopracowany wole użyć biblioteki napisanej w PERL'u Ten post edytował Regss 13.05.2006, 19:40:22 |
|
|
![]()
Post
#10
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 112 Pomógł: 20 Dołączył: 10.04.2005 Ostrzeżenie: (0%) ![]() ![]() |
Cytat Po zmianie na Twój kod otrzymałem: array(1) { [""]=> NULL } mozesz pokazac ten kod? bo ja po var_dump($exif) otrzymalem: Kod array 'File Size' => ' 79 kB ' (length=7) 'Make' => ' Canon ' (length=7) 'Camera Model Name' => ' Canon PowerShot A510 ' (length=22) 'Create Date' => ' 2005' (length=5) '07' => '20 05' (length=5) '05' => '27 ' (length=3) 'Exposure Time' => ' 1/125 ' (length=7) 'F Number' => ' 8.0 ' (length=5) 'Flash' => ' On, Red-eye reduction ' (length=23) 'Exposure Compensation' => ' 0 ' (length=3) 'Focal Length' => ' 23.2mm ' (length=8) 'White Balance' => ' Auto ' (length=6) 'Image Size' => ' 640x4801' (length=9) pozdr. edit: z mojego dumpa widać, że przyda się też trim() na wartościach tworzonej tablicy, a nie tylko na kluczach. Ten post edytował siemakuba 13.05.2006, 20:06:40 |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 60 Pomógł: 0 Dołączył: 7.05.2006 Ostrzeżenie: (0%) ![]() ![]() |
Nie wiem jaki tu jest błąd. |
|
|
![]()
Post
#12
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 112 Pomógł: 20 Dołączył: 10.04.2005 Ostrzeżenie: (0%) ![]() ![]() |
błąd pochodzi stąd:
- po wykonaniu skryptu perla wynik otzymujesz w postaci tablicy do zmiennej $exif_table - tworzysz zmienna $exif_table_re łącząc tablicę $exif_table za pomocą implode($exif_table, " : "); - dlaczego zatem tu jest $exif_replace_re ? juz w tym momencie masz blad, i ja dostalem go na ekran. Masz wylaczone error_reporting / display_errors?
podsumowując:
zwróć uwagę na linię 9 - string który chcesz podzelić to $exif_table_re a nie $exif_replace_re. - jako separatora użyj " : " zamiast ":" dodałem też trim na wartość tablicy w pętli for. P.S. taki błąd powinieneś wychwycić sam. to prawie że literówka... pozdr. |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 60 Pomógł: 0 Dołączył: 7.05.2006 Ostrzeżenie: (0%) ![]() ![]() |
O faktycznie przepraszam mała pomyłka kombinowałem z funkcją str_replace i widocznie niechcący nie zmieniłem spowrotem małe przeoczenie. Jak mówiłem raczkuje w dziedzinie php, ale dzięki wam się już troche nauczyłem
![]() Ten post edytował Regss 13.05.2006, 20:50:48 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 10:17 |