Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

5 Stron V   1 2 3 > » 

abort
Napisane: 18.02.2013, 23:48:20





Grupa: Zarejestrowani
Postów: 590
Dołączył: 25.10.2011

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

Zacznijmy po kolei:

- komp rozumie tylko ciąg zer i jedynek - człowiek dla łatwiejszej orientacji podzielił ciągi na bajty czy słowa. I programował tak, jak komputer umiał - składając z zer i jedynek instrukcje dla komputera. Załóżmy, że komputer miał 8 rejestrów, oznaczonych literami od A do H - i do wstawienia do rejestru A wartości 1 potrzebny był kod "0x35 0x01", ale już przy rejestrze B kod mógł brzmieć "0x71 0x01". Tak samo z dodawaniem liczby do rejestru, odejmowaniem... Programowanie szybko zaczęło męczyć. Ponieważ jednak (Crozin dobrze gada, polać mu) każdy producent procesora podawał (w specyfikacji procesora) takie rzeczy jak mnemonik (czyli : ADD, SUB, MOV, JMP, ...), i wartość, jaka temu mnemonikowi odpowiada (+opcjonalnie parametry), stosunkowo łatwo było napisać sobie...

- ASEMBLER - czyli tłumacz mnemoników bezpośrednio na binarny kod maszynowy. Dodatkową zaletą pisania w asemblerze stało się to, że już nie trzeba było przeliczać adresów do skoków (JMP), asembler sam potrafił o to zadbać, trzeba było tylko w odpowiednim miejscu kodu umieścić tzw. etykietę, którą podawało się w instrukcjach JMP czy CALL jako adres do skoku. Dodatkowo oczywiście pojawiły się automatyczne konwersje ciągu znaków (podanych w cudzysłowach) na ich kody ASCII i umieszczenie w poszczególnych komórkach pamięci, można było używać stałych... Życie stało się prostsze.

- Ale ludzie chcieli więcej i łatwiej, i dlatego już w latach '50-'60 powstały takie języki jak Fortran (do dziś wielu naukowców go używa, z uwagi na nieprawdopodobnie dobrej jakości biblioteki numeryczne), Algol (prekursor Pascala) czy Cobol (język dla biznesu). Nieco później (na początku lat '70) powstały dopiero C czy Prolog.

Z ciekawostek: C, C++, Unix, tranzystor - to wszystko łączą dwa słowa: "Bell Labs".

P.S.
Zobacz sobie http://www.thegeekstuff.com/2011/10/c-prog...-an-executable/ - tu masz fajnie pokazane, jak linuksowy gcc kompiluje program "Hello World", a także (co może Cię bardziej zainteresować), jak wygląda kod asemblera takiego programu.
  Forum: Hydepark · Podgląd postu: #1026584 · Odpowiedzi: 3 · Wyświetleń: 972

abort
Napisane: 11.02.2013, 00:40:38





Grupa: Zarejestrowani
Postów: 590
Dołączył: 25.10.2011

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

Po pierwsze i najważniejsze: wykasuj "@" z kodu. Ukrywanie błędów to samo zło.

Po drugie, lepszą formą jest:
Kod
$filename = "$DOCUMENT_ROOT/form/zamowienia.txt";
$wp = fopen($filename, 'ab');
if (! $wp) {
  echo "<p><strong> Zamówienie Państwa nie może zostać przyjęte w tej chwili.
        Proszę spróbować później.</strong></p></body></html>";
  exit;
}

flock($wp, LOCK_EX);


Dlaczego? Ano:
1. po pierwsze, mając nazwę pliku w zmiennej łatwiej nam tę nazwę gdzieś póżniej wyświetlić (np. w komunikacie o błędzie, ale tylko w fazie testowania, bo na produkcji już nie), a zawsze łatwiej zmienić smile.gif
2. flock() używamy PO SPRAWDZENIU warunku na możliwość złożenia zamówienia - użytkownik zobaczy tylko komunikat o niemożliwości złożenia zamówienia, a nie zobaczy tekstu "Warning: flock() expects parameter 1 to be resource, boolean given in /.../.../.../.../.../.../.../", który będzie świadczył o (delikatnie mówiąc) nieprzemyśleniu wszystkiego
3. Jeszcze raz o "@" i ukrywaniu błędów: jeśli masz miejsce, w którym może wystąpić błąd, to ZAWSZE można przerobić kod na taki, w którym użycie "@" nie będzie konieczne. Owszem, najczęściej taki kod będzie dłuższy, ale nie będziesz miał takiej sytuacji jak w przykładzie z książki, że błąd odbija się czkawką w zupełnie innym miejscu.

  Forum: Serwery WWW · Podgląd postu: #1024748 · Odpowiedzi: 8 · Wyświetleń: 550

abort
Napisane: 6.02.2013, 09:18:47





Grupa: Zarejestrowani
Postów: 590
Dołączył: 25.10.2011

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

Cytat(rafakl @ 5.02.2013, 12:21:05 ) *
Tak, wiem właśnie, że Tortoise to klient, ale osoba zlecająca mi to, zleciła mi również, żebym napisał jak wygląda z Tortoise nadawanie uprawnień... Trochę zgłupiałem i zacząlem szukać w sieci czy coś takiego jest. Ale jedyne co tortoise da się zrobić to dawanie locków, przejmowanie i zwalnianie.
W ogóle nie widziałem jak Tortoise miałby pełnic taką funkcję administracyjną smile.gif

No, analogia z svn i tortoise w porównaniu do Filezilla i serwera FTP jest jak najbardziej trafna - zarówno żółwikiem jak i filezillą nie nadasz uprawnień osobom, nie dodasz osób do systemu itp - musisz znaleźć coś, co działa na serwerze i operuje bezposrednio w strukturach serwera.

Ja do prostej administracji svn używam svnmanagera: http://svnmanager.org/ - na linunksie musisz doinstalować PEAR (jeśli nie masz), a w ramach PEAR doinstalować VersionControl_SVN (jak ja instalowałem, to był w wersji 0.3.4alfa - ale jak dla mnie działa dobrze, choć nie mam zbyt wygórowanych wymagań).

SVNManagera trzeba oczywiście skonfigurować ("pod system", na którym stoi), ale nie jest to zadanie trudne, całość konfiguracji leży w pliku config.php.

  Forum: Kontrola i zarządzanie projektami · Podgląd postu: #1023551 · Odpowiedzi: 8 · Wyświetleń: 1 227

abort
Napisane: 27.01.2013, 23:15:47





Grupa: Zarejestrowani
Postów: 590
Dołączył: 25.10.2011

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

kod z głowy
  1. $liczby = array();
  2. do {
  3. $liczba = rand( ...jakieś parametry... ); // losujemy liczbę o zadanych warunkach brzegowych
  4. if ( ! in_array ($liczba, $liczby)) { // nie ma takiej liczby w tablicy
  5. array_push ($liczby, $liczba); // dodaj liczbę na koniec tablicy
  6. }
  7. } while (count ($liczby) < 400); // ile liczb generować
  Forum: Przedszkole · Podgląd postu: #1021237 · Odpowiedzi: 7 · Wyświetleń: 382

abort
Napisane: 25.01.2013, 16:17:39





Grupa: Zarejestrowani
Postów: 590
Dołączył: 25.10.2011

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

Opis pakietu o nazwie "gnome":
Kod
This is the GNOME Desktop environment, an intuitive and attractive desktop,
with extra components.

This package depends on the standard distribution of the GNOME desktop
environment, plus a complete range of plugins and other applications
integrating with GNOME and Debian, providing the best possible environment to
date.

Teoretycznie więc "aptitude install gnome" powinno załatwić sprawę. Instalacja pakietu gnome WYMUSI (poprzez łańcuch zależności pakietowych) serwera graficznego, a skrypty prekonfiguracyjne zapewne pomogą Ci go skonfigurować, przynajmniej wstępnie (być może będziesz musiał/chciał/miał potrzebę tuningu tegoż, ale to już inna bajka.

Miej jednak na uwadze, że w ten sposób nie zostaną zainstalowane aplikacje dla gnome (podstawowe zostaną zainstalowane, ale jakieś konkretnie Tobie pasujące będziesz musiał doinstalować sam). Można w aptitude wybrać opcję "install recommended packages automatically" (F10->Options->preferences), ale w ten sposób możesz mieć zainstalowane także te aplikacje, których nie chcesz. Oczywiście, zawsze można później je usunąć (jeśli nie będziesz chciał/używał czy też nie spodoba się)
  Forum: Hydepark · Podgląd postu: #1020653 · Odpowiedzi: 1 · Wyświetleń: 359

abort
Napisane: 28.12.2012, 16:07:46





Grupa: Zarejestrowani
Postów: 590
Dołączył: 25.10.2011

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

Masz wzory, podstawiasz i działa. Nie zagłębiałem się w poprawność wzorów (zakładam, że są poprawne). Co do samej metodyki, to chyba o jednym zapomniałeś. Masz punkt A1 o współrzędnych 5° 12' 59" E, i masz punkt A2 o współrzędnych 5° 12' 59" W. I twierdzisz, że dla DOWOLNEGO punktu B licząc odległość A1--B i A2--B otrzymujesz takie same wartości? No to robisz to źle. Dlaczego?

1. Wejdź sobie na google maps, oddal się maksymalnie tak, aby zobaczyć jak najwięcej ziemi na obrazku.
2. Wyrysuj sobie (w sensie wyobraź) układ współrzędnych, taki zwykły, kartezjański, którego oś X pokrywa się z równikiem, a oś Y pokrywa się z południkiem 0 (tym od Greenwich)
3. Spróbuj zaznaczyć punkty A1 i A2 - a potem zrób ich odzwierciedlenie w tym wyimaginowanym układzie współrzędnych. Są takie same? Odpowiedź: tak i nie. Takie same co do wartości - owszem. Ale co do znaku - już nie.

Masz więc odpowiedź, gdzie się walnąłeś - połówka zachodnia ma mieć wartości ujemne, wschodnia ma mieć wartości dodatnie. Może być i odwrotnie, byle konsekwentnie. Aha, z połówkami północną i południowa będzie identycznie.

P.S.
A wzory na pewno są uproszczone, bo zakładają kulistość Ziemi. Co nie do końca jest prawdą, bo Ziemia to elipsoida.
  Forum: PHP · Podgląd postu: #1014843 · Odpowiedzi: 4 · Wyświetleń: 13 485

abort
Napisane: 21.11.2012, 21:38:15





Grupa: Zarejestrowani
Postów: 590
Dołączył: 25.10.2011

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

Zawsze możesz zrobić tak, że ściągniesz:
1. soft o nazwie 'clonezilla' z sieci i wypalisz na płytkę (to bootowalny linux służący do robienia/odtwarzania backupów - coś a'la Norton Ghost),
2. Ściągniesz JAKIEKOLWIEK distro Linuksa z sieci

A potem:
1. robisz backup ukrytej partycji recovery (zdziwiłbym się, gdyby clonezilla jej nie zauważyła)
1a. możesz sobie też zrobić backup istniejącej systemowej partycji Win7 (dysku C), "na wszelki wypadek"
2. backupy zachowujesz gdziekolwiek (pendrive, inny hdd, dysk sieciowy)
3. bootujesz distro Linuxa
4. zmieniasz typ partycji recovery (na jakikolwiek niewindowsowy, choćby i Linuksowy)
5. instalujesz Win8 - nie powinien nawet tknąć tej partycji - a w razie czego, to masz backupy.

Clonezilla robi backupy "sektor po sektorze", przy czym: backupuje tylko UŻYWANE sektory dysku, dodatkowo zawartość kompresuje.

  Forum: Hydepark · Podgląd postu: #1007634 · Odpowiedzi: 12 · Wyświetleń: 4 793

abort
Napisane: 21.11.2012, 21:58:12





Grupa: Zarejestrowani
Postów: 590
Dołączył: 25.10.2011

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

GPartED nie jest do backupów, ale do zmiany rozmiarów partycji. To zbitka słów Gnome Partition Editor... Nic dziwnego, że nie wiedziałeś, co wybrać. smile.gif
Na marginesie: też fajne narzędzie.
  Forum: Hydepark · Podgląd postu: #1007637 · Odpowiedzi: 12 · Wyświetleń: 4 793

abort
Napisane: 15.11.2012, 23:01:42





Grupa: Zarejestrowani
Postów: 590
Dołączył: 25.10.2011

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

Ilość parametrów (parametry to ciąg znaków zaczynający się od dwukropka) podanych w $this->db->prepare(); musi być równa ilości bindowań.
W listingu na początku w liniach 6-11 masz ok, ale już w liniach 41-44 tak nie jest.
  Forum: PHP · Podgląd postu: #1006313 · Odpowiedzi: 6 · Wyświetleń: 555

abort
Napisane: 14.11.2012, 23:44:03





Grupa: Zarejestrowani
Postów: 590
Dołączył: 25.10.2011

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

Te testy, które chcesz zrobić, robisz tak:
- Ściągasz element z tablicy. Jak ściągnięty element ma 2 znaki, to to jest język. A jak nie ma? To co z nim robisz? Odpowiedź: zapominasz (masz puste przypisanie w operatorze ternary - zapewne tylko po to, by zachować składnię).

Powinieneś (jedna z dwóch rzeczy):
1. testować $parts[0] na okoliczność wystąpienia dwóch znaków, i jeśli TRUE, to robisz to co robisz
2. robić to co robisz, ale zamienić samotne "$l" w operatorze ternary i wstawić tam kod w stylu array_unshift ($parts, $l);
  Forum: PHP · Podgląd postu: #1006097 · Odpowiedzi: 6 · Wyświetleń: 390

abort
Napisane: 12.11.2012, 23:45:01





Grupa: Zarejestrowani
Postów: 590
Dołączył: 25.10.2011

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

Zakładając, że masz to w $zmienna, to byłoby to coś w ten deseń:
  1. $zmienna = "xs=3;jk=4;k=0;b=7;l=2;jk=xs/3;k=b*4-3;h=l/jk;xs=jk*4;";
  2. eval preg_replace ('|(\w+)=|', '$\\1=', $zmienna);
  3. echo $h;


Ale miej na uwadze, że jeśli zawartość $zmienna jest tworzona na podstawie danych użytkownika, to eval() może Ci zrobić kuku...
Generalnie mówiąc: eval to nie jest dobra funkcja...
  Forum: PHP · Podgląd postu: #1005630 · Odpowiedzi: 1 · Wyświetleń: 239

abort
Napisane: 9.11.2012, 20:31:38





Grupa: Zarejestrowani
Postów: 590
Dołączył: 25.10.2011

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

1. Ja się ciągle nie umiem nadziwić, dlaczego ludzie sobie tak komplikują życie, i nie dobierają odpowiednich narzędzi do odpowiedniego celu. Jak rozumiem, miesiąc jest WPISYWANY przez usera, tak? No to nie lepiej zrobić
  1. <select name="month">
  2. <option value="1">styczeń</option>
  3. <option value="2">luty</option>
  4. i tak dalej
  5. <option value="12">grudzień</option>

i odczytywać po prostu $_POST['month'] dostając wartość numeryczną miesiąca?

2. Dziwi mnie fragment kodu:
  1. if(isset($_POST['calcule']))
  2. {
  3. // kilka ifów
  4. if($_SERVER['REQUEST_METHOD'] == 'POST')

Drugi jest niepotrzebny - jeśli tablica $_POST istnieje, to request method jest właśnie "POST".
Jeśli już, to warunki powinny być zamienione miejscami.

3. Jak już piszesz w jednym pliku obsługę wielu rzeczy, czyli wyświetlania (GET) i przewarzania (POST), to sugeruję zrobić to na zasadzie:
  1. <?php
  2. // Wspólny blok - jakieś include/require,
  3. // ew. połączenie się do bazy przed odczytem/zapisem
  4. // ---> a w Twoim przypadku operacje na sesjach - sprawdzenie czy istnieje i jest OK
  5. // a jak sesja nie istnieje (lub jest "too old"), to np. redirect do strony logowania się userów.
  6. if ($_SERVER['REQUEST_METHOD'] == 'GET') {
  7. // tu wyświetlamy formatkę (odczyt z bazy/sesji)
  8. }
  9.  
  10. else { // równoważne if ($_SERVER['REQUEST_METHOD'] == 'POST') {
  11. // a tu przetwarzamy (zapis do bazy/sesji)
  12. }
  13.  
  14. // i znów, dla porządku część wspólna - np. zamykanie bazy
  15. // i ewentualne czyszczenie skryptu po sobie (np. pliki tymczasowe)
  16. ?>


4. A, user b4rt3kk zwrócił uwagę na jedną rzecz: powinieneś użyć sesji. Bo to co do tej pory robisz, to wygląda tak, że:
a) idzie żądanie (GET) do wyświetlenia formatki - skrypt wyświetla formatkę i kończy działanie.
cool.gif user wprowadza dane na formularzu
c) idzie żądanie (POST) do przetworzenia formatki (z danymi via $_POST).

Zakładasz, że zmienna będzie istniała taka, jak w poprzednim skrypcie. A to niestety błąd - tamtego skryptu (ze wszelkimi zmiennymi) już dawno nie ma. Zobacz sobie opis z punktu wyżej. Przeanalizuj go. Ratunkiem dla Ciebie będą sesje.
  Forum: Przedszkole · Podgląd postu: #1005075 · Odpowiedzi: 4 · Wyświetleń: 311

abort
Napisane: 8.11.2012, 20:12:12





Grupa: Zarejestrowani
Postów: 590
Dołączył: 25.10.2011

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

Dialog:
- Panie doktorze, jestem chory
- ale jakie masz objawy? Kaszel? Gorączka? Dreszcze?
- No przecież mówię: chory jestem

Na razie tyle się dowiedzieliśmy.

Rozbij to na:
  1. $q = "update pokemon_pokemony_gracze set gatunek = ".$ewolucjaakt['nowygatunek']." where gracz_id = ".$uzytkownik['gracz']." and pesel = ".$uzytkownik['peselek1'];
  2. echo $q;

i podaj, co ci się pojawiło. Bez tego to jest wróżenie z fusów, a dyskusja bezcelowa. A w ogóle to najlepiej podaj kod.

P.S.
oczywiście wcześniej masz mysql_connect, i on nie pluje błędem, prawda?
  Forum: Przedszkole · Podgląd postu: #1004885 · Odpowiedzi: 6 · Wyświetleń: 217

abort
Napisane: 31.10.2012, 19:40:54





Grupa: Zarejestrowani
Postów: 590
Dołączył: 25.10.2011

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

Co do samej obiektówki, to nie będę pisał czegoś, co być może będzie bzdurą - to lepiej wytłumaczą inni. Ja mogę tylko zabrać głos w tym problemie, który naszkicowałeś w ostatnim zdaniu.
NIE MIESZAJ LOGIKI I LAYOUTU. To nie jest efektywne, a w dłuższej perspektywie potrafi się mścić (nieporządek w kodzie, dłuższy czas wprowadzania modyfikacji, przenoszenie się błędów z logiki do layoutu - zawodowi spece na pewno mogą wiele o tym pisać).

Warto, byś zainteresował się wzorcem projektowym MVC - tam wprowadzono fajne mechanizmy pozwalające separować logikę i wygląd. Jeśli nie chcesz rzucać się na MVC, to namiastkę możesz stworzyć np. za pomocą systemu templatek (Smarty, Twig, OPT i inne). Przy założeniu reguły, że output do przeglądarki leci w 100% z templatek, a nie z kodu - templatki pozwolą Ci na totalne odseparowanie logiki i wyglądu.

Oczywiście, dla chcącego nie ma nic trudnego - zarówno przy stosowaniu wzorca MVC, jak i systemu template'ów możesz te reguły złamać - bo jest to możliwe. Ale uwierz - z tym jest jak z kłamstwem: daleko na tym nie zajedziesz.
  Forum: Przedszkole · Podgląd postu: #1003068 · Odpowiedzi: 1 · Wyświetleń: 253

abort
Napisane: 29.10.2012, 21:23:51





Grupa: Zarejestrowani
Postów: 590
Dołączył: 25.10.2011

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

1. Jak piszesz pod uniksa, to dlaczego katalogi separujesz za pomocą "\"? Uniksowy "/" działa w obu środowiskach.
2. co w fopen robi "\..\" - pomyłka? Twoje "/var/www\..\zamowienia.txt" rozwiązuje się do: "w katalogu /var mamy katalog www, w nim katalog .. a w nim plik zamówienia.txt".
Informacyjnie: w katalogu "www" (i w każdym innym katalogu) wpis ".." kieruje do katalogu nadrzędnego, w związku z czym próbujesz otwierać "/var/zamowienia.txt". Masz takie plik i prawa do niego?
3. MYŚLEĆ smile.gif
  Forum: Przedszkole · Podgląd postu: #1002712 · Odpowiedzi: 2 · Wyświetleń: 141

abort
Napisane: 24.10.2012, 20:58:14





Grupa: Zarejestrowani
Postów: 590
Dołączył: 25.10.2011

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

Pomiń zwracanie tego HTMLa (w zamian dodawaj go w jQ), zostaw tylko zwracanie "OK". Lub tak jak napisał Spawnm, zwracaj bool 0/1 - ale tak czy inaczej kod HTML dodałbym do jQuery.
  Forum: Przedszkole · Podgląd postu: #1001706 · Odpowiedzi: 8 · Wyświetleń: 349

abort
Napisane: 24.10.2012, 06:28:39





Grupa: Zarejestrowani
Postów: 590
Dołączył: 25.10.2011

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

Masz klasyczną formatkę HTMLową generowaną przez skrypt php, który sam sprawdza wartości i "coś" robi. Normalne otwarcie strony to jest żądanie GET, i wtedy posługujesz się tablicą _GET do odczytania wartości przekazywanych w URI. Twoja formatka przekazuje dane przez metodę POST i "linkuje" do tego samego skryptu, który generuje formatkę. Masz więc (pseudokod):
Kod
if (metoda == "GET") {
  stwórz_formatkę_html ();
}
if (metoda == "POST") {
  przetwórz_dane_z_formatki();  // znajdzie dane z formularza w tablicy $_POST
}


Zauważ, że w zależności od tego, czy wpiszesz adres strony w przeglądarce, czy przekażesz do skryptu dane z forma, to:
1. metoda będzie inna
2. wykona się tylko jeden z w/w bloków kodu

P.S.
Nawet w Win możesz odwoływać się do plików postaci "d:/katalog/plik.txt" czy też "../katalog/plik.txt" - zauważ, że takie rozwiązanie zapewnia 100% przenośność kodu pomiędzy Win a uniksami - nie jestem pewien, czy "..\\katalog\\plik.txt" zadziała na uniksach tak jak na windowsie.
  Forum: Przedszkole · Podgląd postu: #1001465 · Odpowiedzi: 3 · Wyświetleń: 475

abort
Napisane: 23.10.2012, 17:58:21





Grupa: Zarejestrowani
Postów: 590
Dołączył: 25.10.2011

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

zainteresuj się funkcją http://php.net/manual/en/function.strtolower.php i podobnymi.
Zapewne ".Jpg" czy ".jpG" też byś chciał, by się łapało, prawda?
  Forum: Przedszkole · Podgląd postu: #1001387 · Odpowiedzi: 7 · Wyświetleń: 480

abort
Napisane: 19.10.2012, 19:54:09





Grupa: Zarejestrowani
Postów: 590
Dołączył: 25.10.2011

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

Nie testowałem, bo nie ogarnąłem w pełni CSS, ale może mógłbyś spróbować pomanewrować wartością z-index dla elementu (przy :hover i bez)?
  Forum: Przedszkole · Podgląd postu: #1000589 · Odpowiedzi: 8 · Wyświetleń: 353

abort
Napisane: 19.10.2012, 20:42:24





Grupa: Zarejestrowani
Postów: 590
Dołączył: 25.10.2011

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

Dawno nie używałem smarty, ale: http://www.smarty.net/docsv2/en/language.f....html.table.tpl - krócej i efektywniej.
Co prawda oznaczona w rozdziale "Custom Functions", ale po wpisaniu w googlach po "smarty display array as table" dostaniesz więcej wyników (to był pierwszy link).
  Forum: Przedszkole · Podgląd postu: #1000601 · Odpowiedzi: 8 · Wyświetleń: 332

abort
Napisane: 18.10.2012, 21:17:36





Grupa: Zarejestrowani
Postów: 590
Dołączył: 25.10.2011

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

Ależ zagmatwane. Wszędzie wartości, zawartości1, zawartości2... A nie słyszałeś nigdy o tablicach wielowymiarowych? Ja tłumaczyłem np tu: http://forum.php.pl/index.php?showtopic=206052 - inni zapewne też coś na ten temat napisali.
Naprawdę trzeba tak kombinować?
  Forum: Przedszkole · Podgląd postu: #1000391 · Odpowiedzi: 2 · Wyświetleń: 247

abort
Napisane: 17.10.2012, 22:10:07





Grupa: Zarejestrowani
Postów: 590
Dołączył: 25.10.2011

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

Na rozmiary zdjęcia wrzucanego nie masz wpływu - może to być 320x200 albo 2048x1536, albo nawet 10240x1280 (taka mega panorama). Oznaczmy rozdzielczości: $x_s, $y_s ("s" od "source")
Twoim zadaniem jest:
1. określenie, czy przzeskalowujesz zdjęcia do konkretnego wymiaru poziomego, czy pionowego. Tu uwaga na boku: pionowy rozmiar boli mniej - user sobie przewinie stronę w pionie, bo do tego jest przyzwyczajony. Z przewijaniem w poziomie bywa gorzej (mniejsze przyzwyczajenie, a jak do przewijania w poziomie dojdzie przewijanie w pionie, to koniec świata) smile.gif Zakładamy więc, że masz określone maksymalne X, niech będzie $x_max=640px.
2. przeskalowywujemy zdjęcie ($x_d, $y_d - docelowe rozmiary)
  1. // Kod pisany na kolanie - przetestuj!
  2. $x_d=$max_x; // Narzucone
  3. $rescale = $x_d/$x_s;
  4. $y_d= (int)($y_s * $rescale); // rzutujemy na int - wymiar musi być całkowity.

3. [KONTROLA OBLICZEŃ!] Obliczasz sobie współczynnik $n=$y_s/$x_s (albo $x_s/$y_s - co na jedno wychodzi) oryginalnego zdjęcia - ten sam współczynnik dla zdjęcia przeskalowanego $x_d/$y_d będzie identyczny (modulo zaokrąglenia)

4. Zapisujemy/wyświetlamy/przesyłamy zdjęcie.

Osobiście uważam, że używanie przedziałów dla zdjęć mija się z celem - albo mamy narzucone konkretne wymagania na maksymalną rozdzielczość X, albo na maksymalną Y, albo (co nie jest dziwne) na obie naraz - robimy zmniejszanie tak, aby:
1. zostały zachowane proporcje (chyba że wymagania są inne - ale u Ciebie jak widać są właśnie takie)
2. żaden wymiar nie został prekroczony.

Innymi słowy, jeśli masz zdjęcie z aparatu i chcesz je dopasować np. do wielkości ekranu, to inne przeskalowanie (inną skalę) będzie dla zdjęcia poziomego (landscape), a inne dla pionowego (portrait). To też musisz wziąć pod uwagę.
  Forum: PHP · Podgląd postu: #1000194 · Odpowiedzi: 2 · Wyświetleń: 292

abort
Napisane: 16.10.2012, 22:41:44





Grupa: Zarejestrowani
Postów: 590
Dołączył: 25.10.2011

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

Na stronie masz info: "minified and gzipped"
- minified (mniej-więcej) oznacza: usunięcie wcięć w kodzie, pustych linii, komentarzy, czasami także zredukowanie długości nazw zmiennych
- gzipped oznacza wersję skompresowaną (unix gzip)

Dane skompresowane (unix compress, rozszerzenie ".Z" lub unix gzip, rozszerzenie ".gz") mogą być:
- odczytane z postaci skompresowanej przez serwer, przez serwer zdekompresowane "w locie" i w takiej pozycji przesłane przez sieć,
- przesyłane przez sieć skompresowane, a następnie rozkompresowane przez przeglądarkę, która pokaże ich nieskompresowaną postać.
  Forum: Przedszkole · Podgląd postu: #999949 · Odpowiedzi: 3 · Wyświetleń: 414

abort
Napisane: 16.10.2012, 22:01:08





Grupa: Zarejestrowani
Postów: 590
Dołączył: 25.10.2011

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

Opcja pierwsza nie wchodzi w grę. "Rozdzielczość" uniksowego crona to JEDNA MINUTA.
Można robić cuda na kiju, odpalać 60 skryptów z crona każdy z innym (różniącym się o sekundę) sleepem na początku, ale to na pewno nie będzie optymalne.
Co do innych opcji niech wypowiedzą się bardziej obznajomieni w temacie.
  Forum: Przedszkole · Podgląd postu: #999940 · Odpowiedzi: 1 · Wyświetleń: 164

abort
Napisane: 2.10.2012, 20:35:01





Grupa: Zarejestrowani
Postów: 590
Dołączył: 25.10.2011

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

Załóżmy, że odpytujesz bazę i wrzucasz wszystkie wyniki do tablicy $tab, a wyniki są następujące:
Kod
------+----------+----------+
ID    | NAZWA    | CENA     |
------+----------+----------+
4     | nazwa_1  |   100.00 |
8     | nazwa_2  |   200.00 |
9     | nazwa_3  |   300.00 |
------+----------+----------+


Zmienna $tab będzie wówczas zawierać:
Kod
Array
(
    [1] => Array
        (
            [id] => 4
            [nazwa] => nazwa_1
            [cena] => 100
        )

    [2] => Array
        (
            [id] => 8
            [nazwa] => nazwa_2
            [cena] => 200
        )

    [3] => Array
        (
            [id] => 9
            [nazwa] => nazwa_3
            [cena] => 300
        )

)


Możesz oczywiście użyć konstrukcji $tab[2], dostaniesz 3-elementową tablicę (z indeksami i wartościami: 'id'=4, 'nazwa'="nazwa_1, 'cena'=300). Możesz się odwołać do $tab[2]['cena'], otrzymasz wartość 300.

Możesz też stworzyć taką tablicę w php, kod:
  1. $tab = array (
  2. '1' => array ('id'=>4, 'nazwa'=>'nazwa_1', 'cena'=>100),
  3. '2' => array ('id'=>8, 'nazwa'=>'nazwa_2', 'cena'=>200),
  4. '3' => array ('id'=>9, 'nazwa'=>'nazwa_3', 'cena'=>300),
  5. );


Jak widać, tablica dwuwymiarowa to tablica, której elementy są także tablicami. Tablica trzywymiarowa to tablica zawierająca tablice, które zawierają tablice. I tak dalej...
W odróżnieniu od niektórych języków indeksy tablic nie muszą być liczbami, mogą być ciągami znaków.
  Forum: PHP · Podgląd postu: #996818 · Odpowiedzi: 4 · Wyświetleń: 555

5 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: 19.04.2024 - 17:23