Dobrý den
Začal jsem číst seriál na linuxsoftu (je složitější takže jsem se zatím učil jinde) a v díle 16 se pracuje s funkcí cal_days_in_month, je i v dokumentaci ale server mi hlásí že nemůže zavolat funkci.
Podle dokumentace je funkce od verze 4.1.0, na serveru xxx.unas.cz je PHP 4.3.4.
Poradíte mi někdo?
Dostupnost funkce se nelze řídit jen pomoci verze PHP, ale i dostupnosti knihovny. Pokud není knihovna dostupná (načtena), pak daná funkce pro danou situaci neexistuje.
Tuším že budu za blba ale to je mi momentálně jedno.
Můžu PHP nějak pomoci k načtení knihovny kterou já potřebuji?
Pokud nejsi správce serveru, tak ne.
Aby se mohla nějaká knihovna načíst, tak je potřeba ji připojit a nastavit. Toto je však systémová práce, kterou provádí pouze správce serveru. Zde na WZ s tímto nepochopíš a nepochodíš s tím i na jiných hostingových služeb. Změna nastavení čehokoli na serveru znamená až několik hodin práce a hlavně odstavení serveru. Aby se mohlo nové nastavení projevit, tak je třeba resetovat server. A to se nikomu nechce.
Tak to je pěkné, tím pádem se mi znemožnilo vyzkoušet "projekt" kalendář z PHP seriálu na linuxsoftu...
<HTML>Když koukám na popis té funkce... to je tak těžké implementovat ji sám (nebo ji něčím nahradit)? Pokud nebudu bazírovat na všech možných kalendářích a vystačím si s jedním (pravděpodobně gregoriánským), je výpočet počtu dnů v měsíci triviální záležitostí.</HTML>
Pokud chceš zkoušet, tak je lepší si vytvořit vlastní web server s PHP.
Pro "domácí" použití tam není žádné omezení, takže můžeš zkoušet i takové věci, které jsou v reálu zakázané ;)
Jinak. Dobrý programátor vždycky najde způsob, jak to obejít. Na většinu z těch funkcí vždy existuje alternativa. Pokud se podíváš na online PHP manuál, tak u každé funkce jsou pod nimi komentáře od jiných. Většina z nich tam uvádí možní alternativy.
Tak třeba na tu tvoji funkci cal_days_in_month() je tam alternativa:
<?php
if (!function_exists('cal_days_in_month'))
{
function cal_days_in_month($calendar, $month, $year)
{
return date('t', mktime(0, 0, 0, $month, 1, $year));
}
}
if (!defined('CAL_GREGORIAN'))
define('CAL_GREGORIAN', 1);
?>
Na zkouseni si nainstaluj vlastni php server na ten pocitac, ze ktereho pises. Doporucuji program wamp server pro windows.
Tomík: Dobrý programátor vždycky najde způsob, jak to obejít.
Vypadám jako dobrý programátor? :-)
peta: Jojo, taky mě to už napadlo :-)
Doufáme, že se z tebe dobrý programátor stane.
Funkci cal_days_in_month() jsem dosud neznal a vždy jsem ji nějak obcházel. Dobře se obchází přes databázi jako součást nějakého dotazu. Když se nad tím zamyslím, tak v PHP skoro vůbec funkce pro datum a čas nepoužívám, protože databáze to mívají vyřešeno mnohem lépe. Hlavně se mohu plně spolehnout na SQL funkci NOW(), i když budu mít na serveru s Apache špatně datum a čas, byť třeba jen o pár sekund.
http://interval.cz/clanky/nebojte-se-formatu-datumu-a-casu-v-mysql/
Poradí mi někdo jak nastavit WAMP server na takové to "standardní" nastavení?
Děkuji :-)
WAMP jsem sice nikdy nezkoušel (nemám na čem), ale mělo by to fungovat bez nastavování.
Kit: No já vůbec hlavně úplně aspoň nějakej návod trošku.. v angličtině si toho moc nepočtu (moc ještě nerozumím). Jinak kdybych mohl mám LAMP jenže s Linuxem bych chtěl taky začít jenomže mam OpenSuse a nějak mi nefunguje připojení na Wi-Fi no a táta jezdí od pondělí do čtvrtka na ČVUT takže na to nemá čas no.. a tím pádem mi nefunguje Linux jak bych chtěl.
"a táta jezdí od pondělí do čtvrtka na ČVUT takže na to nemá čas.. a tím pádem mi nefunguje Linux jak bych chtěl"
Co muzes udelat sam, udelej sam :) Tim nechci rici, ze bych na to prisel, mozna je problem slozitejsi a tez do linuxu nedelam, pac tam proste ovladace obvykle nejsou nebo nefunguji spravne na vsech strojich. Ale aspon bych to zkusil.
U linuxu je na rozdíl od Windows takový problém, že pokud jde o PHP, tak tam nenahrává všechno. Musel bys je tam postupně doinstalovávat.
Jinak instalace LAMP v OpenSUSE, ale i jinde, je podstatě to samé jako instalace programu přes balíčkovácí systém. Prostě najdeš výrazy "apache", "php" a jeho varianty (třeba php-imap, php-bzip apod - to jsou ty knihovny, o kterých jsem psal a povoluji funkce), "mysql" a instaluješ je. Pak by měly být připravený. U OpenSUSE je myslím i nějaké grafické prostředí pro nastavení serveru.
V openSUSE se na instalaci čehokoli používá buď řádkový program zypper, anebo grafický yast2. Balíčky nehledáš na netu, ale přímo vybíráš v instalátoru.
PHP je v openSUSE skutečně rozděleno na mnoho modulů. Např. XSLT, DBA, MySQL, SQLite,... je nutné instalovat dodatečně. Výhodou je, že se nemusí instalovat zbytečnosti.
Hm, tak nejdřív se pořádně naučím programovat a pak přejdu z Windowsů na Linux OpenSUSE.. :-)
Každopádně vám moc děkuji za vaše rady :-)
Hmm. A jak se chceš naučit programovat bez Linuxu? Raději to přehoď: Nejprve přejdi z Windows na openSUSE a v něm se nauč programovat.
<HTML>Kit: Jde to i bez Linuxu, záleží na tom, co chceš programovat. Pokud děláš třeba do Javy, je úplně jedno, na čem to děláš. Totéž různé skriptovací jazyky a databázové servery - prostě obvykle existují porty na několik operačních systémů. Jediné, kde upotřebíš Linux, je systém make a programování v C/C++ s POSIXovými knihovnami (a i na to pro Windows existuje cygwin). Tím netvrdím, že je nutné se Linuxu vyhnout. Ale ohrazuji se tím proti případnému tvrzení, že programátor bez Linuxu není programátor.</HTML>
Nípale, ber to, co jsem napsal, trochu s nadsázkou. Samozřejmě se dá programovat i ve Windows. Jen mi připadalo jako divný postup se nejprve učit programovat ve Windows, abych mohl pracovat s Linuxem.
Jinak to co jsi psal o make a C/C++ už v Linuxu dávno neplatí. Osobně v C programuji velmi málo, v C++ vůbec a přesto jsem v Linuxu napsal hodně programů, hlavně pro svou osobní potřebu. Výběr jazyků v Linuxu je prostě mnohem lepší než ve Windows a hlavně se mezi sebou dají elegantně kombinovat, protože každý programovací jazyk se hodí na trochu odlišné použití. Asi těžko bych třeba násobil velké matice v C, protože C je na to prostě slabé.