Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Iniciały - jak to ugryźć ?
Forum PHP.pl > Forum > Przedszkole
kiler129
Więc zostałem wyznaczony do zrobienia części technicznej konkursu hisotryczmego. Ma to byc konkurs przez internet.
Ale do żeczy mam taki problem że w zmiennej $imie i w zmiennej $nazwisko przechowuje imię i nazwisko uczwstnika.
Problem jest taki że nie wiem jak zrobic coś takiego ze jeśli $imie=Jaś a $nazwisko=Kowalski to abym otrzymał w zmiennej $i=JK czyli jego iniciały.
Jest to wykonalne ?
nospor
Dzieki temu:
http://pl.php.net/manual/pl/function.substr.php
mozesz pobrac pierwszą litere stringu. No to juz chyba wszystko wiesz?

proszę poprawić tytuł o znacznik zgodnie z zasadami forum Przedszkole:
Temat: Tematyka i zasady panujace na forum Przedszkole
Dandelion
mozesz sie do stringow odwolywac jak do tablicy.

zeby to latwo zrozumiec podam przyklad z pascala

zmienna imie przechowuje imie zalozmy pawel

uzycie imie[1] wyswietli nam pierwsza litere czyli p

robisz to samo z nazwiskiem i masz inicjaly
kiler129
Dzięki wam obu , jesteście poprostu świetni smile.gif
Napeno jeszcze nie jedno pytanie zadam biggrin.gif
Temat można zamknąć, użyłem drugiego sposobu smile.gif

Aha, numeracje zacynamy od 0 a nie od 1 tongue.gif
Powinno być $imie[0]
nospor
Cytat
użyłem drugiego sposobu
drugi sposob jest przestarzaly. zamiast [] uzywaj {}
http://pl.php.net/manual/pl/language.types.string.php
Cytat
Dostęp do pojedynczego znaku łańcucha jest możliwy po podaniu jego indeksu (ofsetu) w nawiasach klamrowych, zaraz po nazwie zmiennej. Pierwszy znak w łańcuchu ma indeks zero.

Notatka: Dla zachowania kompatybilności wstecznej, nadal można używać nawiasów kwadratowych, jednak składnia ta w php 4 uznana jest za przestarzałą.
kiler129
A jeszcze jedno pytanie tongue.gif
Czy da się zrobić w php że skrypt bierze wszystkie pliki z katalogu ../ID i następnie wszystkie skleja ?
Tzn. mam np tak:

ZKGI23A.dat
Zosia!Kowalska!GI2!3a!

SKSP106C99.dat
stas!kowalski!sp10!6c!

i takich więcej ....

I chciałbym aby skrypt skleił mi to wszystko w takie coś:

Zosia!Kowalska!GI2!3a!
stas!kowalski!sp10!6c!

itd....


Wykonalne ?
Strzałek
Dla PHP5, pisane na szybko, nie wiem czy działa.

  1. <?php
  2.  
  3.  $wszystkieWpisy = '';
  4.  foreach(new DirectoryIterator('../ID') as $file){
  5. if(!$file -> isDir()){
  6.  $wszystkieWpisy .= file_get_contents($file -> getPathname());
  7. }
  8.  }
  9.  
  10.  //Mamy zawartość w zmiennej. Możemy zrobić z nią co chcemy. Wrzucić do plik, wysła
    ć do bazy danych, puścić mailem, wydrukować albo skasować ;)
  11.  
  12.  //Zapiszmy sobie do pliku wszystkie_wpisy.dat
  13.  file_put_contents('wszystkie_wpisy.dat', $wszystkieWpisy);
  14.  
  15. ?>



Potraktuj to raczej jako wędkę niż rybę. Przykładowy kod który ma Cię naprowadzić na tory. Dużoooo mu brakuje winksmiley.jpg Chociażby by tego żeby przeglądał pliki .dat, bo jak w tych folderach będą obrazki to wszystko się "wykrzczy" winksmiley.jpg

Pozdrawiam.
PS: Jak używasz PHP4... to zacznij używać 5 winksmiley.jpg Najwyższy czas.
kiler129
Ohh dzięki, działa ale nie do końca tak jak chce

Otrzymuje cos takiego:
Małgosia,Kowalska,SP3,5a,Jaś,Novak,SP10,6a

Co prawda nie dopisałem wyników do nowych id bo mi się nie chciało ale jak zrobić że każdy nowy plik to nowa linia ?
Chodzi o to że chcę to zaimportować do excela puxniej i ustawić jako podził kolumn przecinek.
Ale żeby excel uznał koleny wiersz to musi być tak:

Małgosia,Kowalska,SP3,5a,
Jaś,Novak,SP10,6a,

Nie może wierszy rozdzilac żadne <br> ani /n tylko enter => Mógł byś przerobić swój skrypt ?

Jest w nim co prawda jeszce jeden błędzik - wpisuje sam siebie do pliku ale to żaden problem, najważnejsze to co wyżej.
sebik
jaki enter? wydaje mi sie ze enter wprowadza znak /n
Strzałek
Enter snitch.gif Mówisz o klawiszu smile.gif ? Wstawienie br nic nie daje. Dalczego? Bo br to przecież html. Nasz problem rozwiązuje \n, lub \r\n.
Już sam nie pamiętam, niech to ktoś skoryguje winksmiley.jpg

Takie coś powinno zadziałać:
  1. <?php
  2. $wszystkieWpisy .= file_get_contents($file -> getPathname())."n";
  3. ?>


I jeszcze raz zachęcam. Poczuć się tego kodu. Tzn. co jak i dlaczego. Co to jest DirectoryIterator, dlaczego dalem to do foreacha etc. Pojmij istotę działania, a będziesz miał kolejny level wyżej winksmiley.jpg Niczym postać mojego brata w Warcraft tongue.gif
kiler129
Nie działa dry.gif
Zwraca coś takeigo do pliku:

  1. Imie1,Nazwisko1,SP1,1a,2/6,33.3333333333%,
  2. <?php
  3.  
  4.  $wszystkieWpisy = '';
  5.  foreach(new DirectoryIterator('../ID') as $file){
  6. if(!$file -> isDir()){
  7.  $wszystkieWpisy .= file_get_contents($file -> getPathname())."n";
  8. }
  9.  }
  10.  
  11.  //Mamy zawartość w zmiennej. Możemy zrobić z nią co chcemy. Wrzucić do plik, wysłać do bazy danych, puścić mailem, wydrukować albo skasować ;)
  12.  
  13.  //Zapiszmy sobie do pliku wszystkie_wpisy.dat
  14.  file_put_contents('wszystkie_wpisy.dat', $wszystkieWpisy);
  15.  
  16. ?>
  17. Imie2,Nazwisko2,SP2,2a,3/6,50%,
  18. Imie3,Nazwisko3,SP3,4a,1/6,16.6666666667%,



edit: tongue.gif Działa, tylko coś notatnik swiksował tongue.gif
A da się jakoś zrobić aby wykluczyć lista.php ?
Strzałek
to może po prostu nasz kod będzie czytał tylko pliki *.dat smile.gif ?

W pętli foreach trzeba dodatkowo sprawdzić rozszerzenie pliku. Np. tak:

  1. <?php
  2. if(!$file -> isDir() && eregi('.dat', $file->getFilename()){
  3. ?>



winksmiley.jpg
kiler129
Jesteś geniuszem biggrin.gif
Masz u mnie browara biggrin.gif
Znasz się na JS ? => Temat: js Sekundnik minutnik
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.