Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

4 Stron V   1 2 3 > » 

Quantum
Napisane: 23.07.2012, 01:26:08





Grupa: Zarejestrowani
Postów: 450
Dołączył: 27.11.2008
Skąd: Warszawa

Ostrzeżenie: (0%)
-----

w pliku głównym dodaj sobie np. stałą:
  1. define('MAIN', TRUE);


a w includowanym:
  1. ! defined('MAIN') AND exit('Dostęp bezpośredni jest niemożliwy.');


+ regułki w htaccess.
  Forum: PHP · Podgląd postu: #979933 · Odpowiedzi: 4 · Wyświetleń: 531

Quantum
Napisane: 19.05.2012, 19:13:36





Grupa: Zarejestrowani
Postów: 450
Dołączył: 27.11.2008
Skąd: Warszawa

Ostrzeżenie: (0%)
-----

  1. echo $row['name'], ' ', $row['level'];

wstaw do pętli, a jakbyś chciał zrobić drugim sposobem to przed pętlą:
  1. $players = array();

w pętli:
  1. array_push($players, array($row['name'], $row['level']));

i możesz sobie swobodnie użyć w kodzie:
  1. ...
  2.  
  3. foreach ($players as $player) {
  4. echo $player[0], ' ', $player[1], '<br/>';
  5. }

  Forum: PHP · Podgląd postu: #964286 · Odpowiedzi: 6 · Wyświetleń: 1 062

Quantum
Napisane: 1.05.2012, 21:41:21





Grupa: Zarejestrowani
Postów: 450
Dołączył: 27.11.2008
Skąd: Warszawa

Ostrzeżenie: (0%)
-----

pierwszy przypadek (których nie ma w B z A/usunięte) to różnica pomiędzy tablicą A i B, a drugi (których nie ma w A z B/dodane) odwrotnie- B i A.
  1. $tablicaA=array('Ala', 'Ma', 'Kota');
  2. $tablicaB=array('Ala', 'Kota', 'Chce');
  3.  
  4. function analiza ( array $a, array $b )
  5. {
  6. return ( array ( array_diff ( $a, $b ), array_diff ( $b, $a ) ) );
  7. }
  8.  
  9. print_r(analiza($tablicaA, $tablicaB));
  Forum: Przedszkole · Podgląd postu: #960284 · Odpowiedzi: 2 · Wyświetleń: 963

Quantum
Napisane: 18.03.2012, 16:38:35





Grupa: Zarejestrowani
Postów: 450
Dołączył: 27.11.2008
Skąd: Warszawa

Ostrzeżenie: (0%)
-----

Zmieniłoby i w czystym JS gdybyś nie zapomniał o tym, że skrypt wykonuje się od razu (przed załadowaniem DOM) i JavaScript nie widzi tego elementu.
[JAVASCRIPT] pobierz, plaintext
  1. window.onload=function() {
  2. var zmienna = "test";
  3. document.getElementById("pole").value="abc";
  4. }
[JAVASCRIPT] pobierz, plaintext

to spowoduje wykonanie się po pełnym załadowaniu strony.
  Forum: JavaScript · Podgląd postu: #948985 · Odpowiedzi: 3 · Wyświetleń: 732

Quantum
Napisane: 19.06.2011, 18:08:46





Grupa: Zarejestrowani
Postów: 450
Dołączył: 27.11.2008
Skąd: Warszawa

Ostrzeżenie: (0%)
-----

Oczywiście, że jest możliwe, obadaj przykład:
  1. $resource = array(1, 2, 3, 4, 5);
  2.  
  3. $pointer = -1;
  4.  
  5. function abc($res) {
  6. global $pointer;
  7. $pointer++;
  8. if (isset($res[$pointer])) {
  9. return $res[$pointer];
  10. }
  11. return false;
  12. }
  13.  
  14. while ($row = abc($resource)) {
  15. echo $row, '<br/>';
  16. }
  Forum: PHP · Podgląd postu: #874021 · Odpowiedzi: 10 · Wyświetleń: 808

Quantum
Napisane: 10.11.2010, 16:34:01





Grupa: Zarejestrowani
Postów: 450
Dołączył: 27.11.2008
Skąd: Warszawa

Ostrzeżenie: (0%)
-----

Cytat
1289401491-jaka to jest data ,bo jak liczyłem to wychodziło mi 40lat ,a powinno wyjść 2010

dobrze liczyłeś, dodaj do tego 1970, bo to liczba sekund jaka mineła od 1970.01.01 00:00 (tzw. uniksowy znacznik czasu)
  1. echo date ( 'Y.m.d H:i:s', 1289401491 );
a tu coś dla bazy:
  1. SELECT * FROM `table` WHERE `data_dodania` < NOW() - 2592000
skąd wziąłem liczbę 2592000 (sec) ? 30 (dni) * 24 (godz) * 60 (min) * 60 (sec)

http://dev.mysql.com/doc/refman/5.1/en/dat...-functions.html
  Forum: Przedszkole · Podgląd postu: #806050 · Odpowiedzi: 6 · Wyświetleń: 1 007

Quantum
Napisane: 9.11.2010, 14:12:10





Grupa: Zarejestrowani
Postów: 450
Dołączył: 27.11.2008
Skąd: Warszawa

Ostrzeżenie: (0%)
-----

  1. if ( ! isset ( $_GET ['action'] ) OR trim ( $_GET ['action'] ) === '' )
  2. {
  3. // jakies instrukcje
  4. }


http://www.php.net/manual/pl/language.operators.logical.php
  Forum: Przedszkole · Podgląd postu: #805623 · Odpowiedzi: 3 · Wyświetleń: 605

Quantum
Napisane: 23.10.2010, 12:40:23





Grupa: Zarejestrowani
Postów: 450
Dołączył: 27.11.2008
Skąd: Warszawa

Ostrzeżenie: (0%)
-----

Nie, ponieważ nie dodajesz nowego elementu do tablicy $temp1 (o ile taką zmienną wcześniej zadeklarowałeś jako tablicę, bo tutaj tego nie widzę), a cały czas ją nadpisujesz. Zamiast "$temp1 = array(.." daj "$temp1[] = array(.." i wcześniej przed pętlą ją zadeklaruj jako pustą tablice - "$temp1 = array()". Alternatywnie możesz użyć array_push do dodania nowego elementu na koniec tablicy - nawet lepiej.
  Forum: Przedszkole · Podgląd postu: #800214 · Odpowiedzi: 4 · Wyświetleń: 609

Quantum
Napisane: 20.09.2010, 15:46:31





Grupa: Zarejestrowani
Postów: 450
Dołączył: 27.11.2008
Skąd: Warszawa

Ostrzeżenie: (0%)
-----

  1. $arrays = array
  2. (
  3. array('a', 'b', 'c'),
  4. array('a', 'd', 'x')
  5. );
  6.  
  7. $result = call_user_func_array('array_intersect', $arrays);
  8. print_r($result);
  Forum: PHP · Podgląd postu: #791430 · Odpowiedzi: 2 · Wyświetleń: 958

Quantum
Napisane: 19.09.2010, 07:16:24





Grupa: Zarejestrowani
Postów: 450
Dołączył: 27.11.2008
Skąd: Warszawa

Ostrzeżenie: (0%)
-----

w obu poniższych przypadkach mktime powinien działać poprawnie, ponieważ obie funkcje zwracają uniksowy znacznik czasu więc chyba coś nie tak musiałeś podstawić w argumentach funkcji

1. strtotime / date_parse
  1. echo date('H', strtotime('18:14:49 18.09.2010'));
  2. //lub
  3. print_r(date_parse('18:14:49 18.09.2010'));

2. odejmowanie od daty:
  1. echo date('H:i:s d.m.Y', strtotime('18:14:49 18.09.2010 -10 seconds'));
  2. //lub
  3. echo date('H:i:s d.m.Y', strtotime('18:14:49 18.09.2010')-10);
  Forum: Przedszkole · Podgląd postu: #791015 · Odpowiedzi: 2 · Wyświetleń: 791

Quantum
Napisane: 19.09.2010, 13:55:19





Grupa: Zarejestrowani
Postów: 450
Dołączył: 27.11.2008
Skąd: Warszawa

Ostrzeżenie: (0%)
-----

działa jak należy, tylko nie zrób wcięć w patternie przypadkiem smile.gif

  1. $source = '<tr id="tlo_piaskowe_czarne" align="center">
  2. <td height="20">40.</td>
  3. <td><b><font color="#FF9900">Marek</font></b></td>
  4. <td><b>23</b></td>
  5. <td>152,767</td>
  6. </tr>
  7. <tr id="tlo_piaskowe_czarne" align="center">
  8. <td height="20">41.</td>
  9. <td><b><font color="#FF9900">Jurek</font></b></td>
  10. <td><b>23</b></td>
  11. <td>152</td>
  12. </tr>';
  13.  
  14. preg_match_all('#<tr id=".*" align="center">
  15. <td height="20">.*</td>
  16. <td><b><font color=".*">(.*)</font></b></td>
  17. <td><b>(.*)</b></td>
  18. <td>(.*)</td>
  19. </tr>#', $source, $matches);
  20.  
  21. $length = count($matches[0]);
  22.  
  23. for ( $i = 0; $i < $length; $i++ )
  24. {
  25. echo '1: ', $matches[1][$i];
  26. echo '<br/>2: ', $matches[2][$i];
  27. echo '<br/>3: ', $matches[3][$i];
  28. echo '<br/>', str_repeat('-', 10), '<br/>';
  29. }

powinieneś dostać taki wynik:
Kod
1: Marek
2: 23
3: 152,767
----------
1: Jurek
2: 23
3: 152
----------
  Forum: Przedszkole · Podgląd postu: #791114 · Odpowiedzi: 19 · Wyświetleń: 1 736

Quantum
Napisane: 18.09.2010, 17:39:38





Grupa: Zarejestrowani
Postów: 450
Dołączył: 27.11.2008
Skąd: Warszawa

Ostrzeżenie: (0%)
-----

swoją drogą, żeby nie wykonywać za każdym razem count($tab1) w for dobrą praktyką jest przypisywanie liczby do zmiennej i podstawianie w pętli, funkcja wykona się tylko raz, a nie tyle ile elementów ma tablica winksmiley.jpg
  Forum: Przedszkole · Podgląd postu: #790862 · Odpowiedzi: 19 · Wyświetleń: 1 736

Quantum
Napisane: 18.09.2010, 17:22:22





Grupa: Zarejestrowani
Postów: 450
Dołączył: 27.11.2008
Skąd: Warszawa

Ostrzeżenie: (0%)
-----

explode tutaj ? bardziej sprawdziło by się przy rozbijaniu jakiegoś stringa na tablicę stałym separatorem, w tym przypadku dochodzi czyszczenie z tagów - zbędne.
  1. $source = '...'; // zawartość strony
  2.  
  3. preg_match_all('#<tr id=".*" align="center">
  4. <td height="20">.*</td>
  5. <td><b><font color=".*">(.*)</font></b></td>
  6. <td><b>(.*)</b></td>
  7. <td>(.*)</td>
  8. </tr>#', $source, $matches);
  9.  
  10. print_r($matches);

za (.*) możesz podstawić bardziej określony typ danych, ale to już zależy co tam w tej tabelce przedstawiasz
  Forum: Przedszkole · Podgląd postu: #790853 · Odpowiedzi: 19 · Wyświetleń: 1 736

Quantum
Napisane: 8.09.2010, 17:14:05





Grupa: Zarejestrowani
Postów: 450
Dołączył: 27.11.2008
Skąd: Warszawa

Ostrzeżenie: (0%)
-----

  1. $str ='abcdefg1234%^&*';
  2. $arr = array('a','b','u','w','y',1,3,8,9,'!','*');
  3.  
  4. $output = implode('', array_intersect(str_split($str), $arr));
  5. echo $output;


można też tak, ale też uważam że to głupota zastępować regexp takimi wynalazkami smile.gif
  Forum: Przedszkole · Podgląd postu: #787723 · Odpowiedzi: 5 · Wyświetleń: 1 106

Quantum
Napisane: 9.09.2010, 06:44:45





Grupa: Zarejestrowani
Postów: 450
Dołączył: 27.11.2008
Skąd: Warszawa

Ostrzeżenie: (0%)
-----

w kontrolerze tworzysz widok i do nich przypisujesz nieograniczoną ilość modeli, dam Ci przykład z mojego frameworka (przykład pisany na szybko):

  1. // tworzymy model
  2. $users = new af_Users_Model;
  3.  
  4. // tworzymy widok
  5. $view = new af_View('users/cp');
  6. // dodajemy utworzony model do widoku
  7. $view->add_model($users);
  8.  
  9. // jeżeli formularz został wysłany
  10. if ( $this->request->post->is_sent() ) {
  11. // tworzymy obiekt walidatora
  12. $validator = new af_Validator;
  13. // dodajemy regułę
  14. $validator->add_rule(
  15. $this->request->post->password,
  16. $this->translate->password->not_filled_properly,
  17. array('require', 'min_length' => 6, 'max_length' => 20)
  18. );
  19.  
  20. // jeżeli formularz jest poprawny
  21. if ( $validator->is_valid() ) {
  22. // uruchamiamy metodę z modelu do zmiany hasła
  23. $users->change_password($this->session->user->id, $this->request->post->password);
  24. } else {
  25. // pobieramy błędy walidatora i przekazujemy do widoku
  26. $view->assign('errors', $validator->errors);
  27. }
  28. }
  29.  
  30. // ta część odpowiada za wyświetlenie żądanego formatu strony (to już nie jest tutaj istotne, to mój taki mały port z RoR:D)
  31. switch ( $this->response->format ) {
  32. case 'html':
  33. $this->response->text = $view;
  34. break;
  35. }


W tym przypadku można było użyć active record, ale tak było prościej wytłumaczyć jak to powinno wyglądać. W widoku możesz teraz sobie pobierać konkretne dane, które chciałbyś wyświetlić, tutaj raczej nie jest to potrzebne, ale ogólnie to tak to działa smile.gif

pozdrawiam.
  Forum: Object-oriented programming · Podgląd postu: #787885 · Odpowiedzi: 21 · Wyświetleń: 2 658

Quantum
Napisane: 8.09.2010, 18:31:42





Grupa: Zarejestrowani
Postów: 450
Dołączył: 27.11.2008
Skąd: Warszawa

Ostrzeżenie: (0%)
-----

Trochę dziwnie na moje oko rozwiązałeś sprawę front controllera, ja u siebie mam zadania routingu/walidacji rozbite na dwie klasy - router oraz dispatcher. Dla tej pierwszej przekazuje w argumencie query string i po wykonaniu dostaje od niej ostateczne dane. Tworzenie obiektu i wywoływanie akcji zrzucam właśnie na klasę front controller. W nim tworzę obiekt dispatcher-a i on sprawdza czy żądany kontroler/akcja istnieje (oraz czy jest poprawny - przydaje się tutaj ReflectionClass) jeżeli tak załącza odpowiedni plik i po utworzeniu obiektu kontrolera odpalamy akcję. Co do autoloader-a to ja to rozwiązałem w ten sposób, że nazwy klas zapisywane są w stylu "underscore", bardziej po zendowsku biggrin.gif Przykładowo z ciągu af_Database_Interface_QueryBuilder usuwam prefix "af" i podkreślniki zamieniam na ukośniki, konwertuje na małe znaki i dostaję ścieżkę "/database/interface/querybuilder". W taki sposób autoloader elegancko odnajduje sobie poprawną ścieżkę. Oczywiście nie musisz robić tego w sposób jaki podałem. Luźne sugestie winksmiley.jpg

pozdrawiam

edit:

Cytat
Cytat
TYPE HINT zdecydowanie możesz użyć w metodach gdzie wymogiem jest przekazanie obiektu. Np w twoim addTemplateHelper.

Przecież w PHP nie da się go nigdzie indziej użyć (no... tam jeszcze tablice, ale to śmiechu warte jest :])

urok tego języka biggrin.gif nie ma to jak dodać obsługę dla obiektów/tablic i zapomnieć o reszcie
  Forum: Object-oriented programming · Podgląd postu: #787756 · Odpowiedzi: 21 · Wyświetleń: 2 658

Quantum
Napisane: 19.09.2010, 14:17:50





Grupa: Zarejestrowani
Postów: 450
Dołączył: 27.11.2008
Skąd: Warszawa

Ostrzeżenie: (0%)
-----

@klycior iterując po wszystkich liniach (fragment: foreach($file as $list)) przeszukujesz każdą linię pod kątem wystąpienia znacznika <html> (zastanów się ile razy powinien wystąpić w dokumencie) i to jeszcze preg_match_all.. samego foreach skasuj, a jego zawartość przenieś poza niego, w zmiennej $file zamiast funkcji file użyj file_get_contents, to wszystko smile.gif a tak na marginesie do zliczania wystąpień jakiegoś stałego ciągu w innym ciągu używa się substr_count.
  Forum: PHP · Podgląd postu: #791121 · Odpowiedzi: 6 · Wyświetleń: 1 888

Quantum
Napisane: 1.09.2010, 16:59:07





Grupa: Zarejestrowani
Postów: 450
Dołączył: 27.11.2008
Skąd: Warszawa

Ostrzeżenie: (0%)
-----

Cytat
twój wyżej przykład jest dobry bo jest równa liczba.. ale co jeśli są takie jakie podałem

Cytat
90, 84, 79, 73


liczby całkowite, w czym rzecz ? co tu rozwijać ? Noidea podał chyba najprostsze rozwiązanie smile.gif Jeżeli liczba wylosowana liczba z przedziału od 1 do 100 wyniesie =< 90 warunek zwróci true i pierwszy blok instrukcji zostanie wykonany, jeżeli wyniesie > 90 zostanie wykonany blok else. Pod zmienną $szansa podstawiasz procent określony przez konto, switch. Chyba, że ja czegoś tutaj nie zrozumiałem smile.gif

Cytat
  1. mt_srand((double)microtime()*1000000);
  2. $liczba_rand = round(rand(101,10000)/100);


najpierw używasz mt_srand, a później rand? dla rand jest analogicznie srand.
  Forum: Przedszkole · Podgląd postu: #785390 · Odpowiedzi: 9 · Wyświetleń: 1 097

Quantum
Napisane: 1.09.2010, 12:33:54





Grupa: Zarejestrowani
Postów: 450
Dołączył: 27.11.2008
Skąd: Warszawa

Ostrzeżenie: (0%)
-----

int rand ( int $min , int $max )

czy uważasz, że kod html to liczba całkowita ?

  1. switch ( mt_rand(1, 3) ) {
  2. case 1:
  3. // banner 1
  4. break;
  5. case 2:
  6. // banner 2
  7. break;
  8. case 3:
  9. // banner 3
  10. break;
  11. }


ew. dynamicznie zmieniająca się ilość banerów:

  1. $banners = array(
  2. 'kod bannera 1',
  3. 'kod bannera 2',
  4. 'kod bannera 3',
  5. 'kod bannera 4'
  6. );
  7.  
  8. $banner_html = $banners[array_rand($banners)]; // kod wylosowanego bannera z tablicy (można ją łatwo zastąpić danymi z bazy)
  9. echo $banner_html;
  Forum: Przedszkole · Podgląd postu: #785283 · Odpowiedzi: 7 · Wyświetleń: 835

Quantum
Napisane: 30.08.2010, 08:36:35





Grupa: Zarejestrowani
Postów: 450
Dołączył: 27.11.2008
Skąd: Warszawa

Ostrzeżenie: (0%)
-----

zawsze możesz użyć document.write biggrin.gif jednak dziwny ten serwis.. udostępnia <script>, a nie daje możliwości prostego wklejenia filmiku przez tagi [youtube][/youtube] itp. blink.gif
  Forum: Przedszkole · Podgląd postu: #784513 · Odpowiedzi: 3 · Wyświetleń: 575

Quantum
Napisane: 27.08.2010, 10:44:37





Grupa: Zarejestrowani
Postów: 450
Dołączył: 27.11.2008
Skąd: Warszawa

Ostrzeżenie: (0%)
-----

@thek autor nie napisał, że chce manipulować zawartością między domenami.

musisz odwołać się do obiektu DOM w obiekcie parent, więc ma to wyglądać tak:
[JAVASCRIPT] pobierz, plaintext
  1. parent.document.getElementById('nazwa').innerHTML="Nowa nazwa";
[JAVASCRIPT] pobierz, plaintext
  Forum: Przedszkole · Podgląd postu: #783723 · Odpowiedzi: 3 · Wyświetleń: 664

Quantum
Napisane: 20.08.2010, 12:47:19





Grupa: Zarejestrowani
Postów: 450
Dołączył: 27.11.2008
Skąd: Warszawa

Ostrzeżenie: (0%)
-----

in_array + $_GET
  Forum: Przedszkole · Podgląd postu: #780906 · Odpowiedzi: 11 · Wyświetleń: 1 265

Quantum
Napisane: 16.08.2010, 05:50:15





Grupa: Zarejestrowani
Postów: 450
Dołączył: 27.11.2008
Skąd: Warszawa

Ostrzeżenie: (0%)
-----

Cytat
CO to jest localStorage i LSO i jak tego uzyć? :|


Ciacha flashowe - większość użytkowników nie wie o ich istnieniu. Co do localStorage -> google.
  Forum: Gotowe rozwiązania · Podgląd postu: #778944 · Odpowiedzi: 8 · Wyświetleń: 3 351

Quantum
Napisane: 27.07.2010, 19:24:49





Grupa: Zarejestrowani
Postów: 450
Dołączył: 27.11.2008
Skąd: Warszawa

Ostrzeżenie: (0%)
-----

Kontroler musi mieć dostęp do modelu - to oczywiste, ale żeby było zgodnie z MVC, widok także powinien mieć do niego dostęp. Takiego rozwiązania używamy tylko wtedy gdy jest dla nas "komfortowe". Przykład: menu renderowane jest z danych pobranych z bazy, nie będziemy chyba dołączać do każdego kontrolera kodu odpowiadającego za przypisanie menu pobranego przez model do zmiennej w widoku winksmiley.jpg (pomijam tu globalne przypisywanie zmiennych do widoków).
  Forum: Object-oriented programming · Podgląd postu: #771179 · Odpowiedzi: 13 · Wyświetleń: 2 739

Quantum
Napisane: 20.07.2010, 09:55:29





Grupa: Zarejestrowani
Postów: 450
Dołączył: 27.11.2008
Skąd: Warszawa

Ostrzeżenie: (0%)
-----

Również nie używam OPT czy Smarty, mają własne pseudo-języki, na które nie opłaca mi się tracić czasu, a jeżeli zwykły PHP zagnieżdzony w widoku spełnia swoją rolę - kompletnie nie widzę takiej potrzeby. Co do obiektówki - jeżeli ją zrozumiesz powiesz to samo o strukturalnym co przed chwilą powiedziałeś o OOP. Jest dużo łatwiej zarządzać projektem, który ma rozdzielone zadania na kilka mniejszych klas spełniające jedną rolę. W strukturalnym odwrotnie - totalny bałagan w kodzie. Po kilku dniach przerwy wracasz do kodu i nie masz pojęcia jak to napisałeś, że działa (lub już nie) biggrin.gif Polecam nauczyć się języka od podstaw, czasem po wielu latach można zgubić wiele przydatnych informacji. Wystarczy, że znajdziesz jakiś dobry kurs i możesz szybko nadrobić stracony czas. A jeśli chodzi o programowanie obiektowe, możesz zakupić książkę, osobiście polecam: programowanie obiektowe w php 5, Hasin Hayder; kosztuję ona ok. 37zł z przesyłką, a jest warta uwagi.

pozdrawiam.
  Forum: Przedszkole · Podgląd postu: #767902 · Odpowiedzi: 8 · Wyświetleń: 1 081

4 Stron V   1 2 3 > » 

New Posts  Nowe odpowiedzi
No New Posts  Brak nowych odpowiedzi
Hot topic  Popularny temat (Nowe)
No new  Popularny temat (Brak nowych)
Poll  Sonda (Nowe)
No new votes  Sonda (Brak nowych)
Closed  Zamknięty temat
Moved  Przeniesiony temat
 

RSS Wersja Lo-Fi Aktualny czas: 24.04.2024 - 07:53