Jump to content
php.lv forumi

2easy

Reģistrētie lietotāji
  • Posts

    1980
  • Joined

  • Last visited

Everything posted by 2easy

  1. haha tomēr nevajadzēs pašam taisīt sortēšanu. php tiešām par visu ir padomāts :P array_multisort() ftw $a[] = array('a' => 'AAA1', 'b' => 'BBB1', 'c' => 2); $a[] = array('a' => 'AAA2', 'b' => 'BBB2', 'c' => 3); $a[] = array('a' => 'AAA3', 'b' => 'BBB3', 'c' => 1); for ($i = 0; $i < count($a); $i++) $aSort[] = $a[$i]['c']; array_multisort($aSort, SORT_ASC, $a); echo '<textarea rows="25" cols="80">'; print_r($a); echo '</textarea>'; /* Array ( [0] => Array ( [a] => AAA3 [b] => BBB3 [c] => 1 ) [1] => Array ( [a] => AAA1 [b] => BBB1 [c] => 2 ) [2] => Array ( [a] => AAA2 [b] => BBB2 [c] => 3 ) ) */ c'mon tauta lasām taču manuāli!!!
  2. lai kko tādu varētu izdarīt ar sort() funkciju, laikam nāktos mainīt php source un pēc tam to pārkompilēt. vienkāršāk būtu, ja tu uztaisītu savu sortēšanas funkciju speciāli šim gadījumam (array salīdzināšana pēc konkrēta key), izmantojot kādu no tiem sortēšanas algoritmiem, kurus esi mācījies skolā/augstskolā. starp citu vai tu gadījumā necenties uztaisīt pats savu db ar šiem arrayiem? :D
  3. dažas pašreizējās adreses: 1) blenubode.lv/?sec=163 // Kontakti 2) blenubode.lv/cat_view.php?cat=103 // Puzles 3) blenubode.lv/pro_view.php?cat=103&pro=507 // Puzles > Puzle "Lācis" 4) blenubode.lv/cat_view.php?cat=109 // Spēles 5) blenubode.lv/pro_list.php?cat=109&scat=101 // Spēles > Prāta spēles 6) blenubode.lv/pro_view.php?cat=109&scat=101&pro=991 // Spēles > Prāta spēles > Spēle "Taurenis" ja mod_rewrite izmanto priekš seo (googles), tad 1) blenubode.lv/kontakti 2) blenubode.lv/katalogs/puzles/103 3) blenubode.lv/prece/puzles/puzle-lacis/507 4) blenubode.lv/katalogs/speles/109 5) blenubode.lv/katalogs/speles/prata-speles/101 6) blenubode.lv/prece/speles/prata-speles/spele-taurenis/991 ja mod_rewrite izmanto, lai adrese būtu "smukāka", tad 1) blenubode.lv/kontakti 2) blenubode.lv/puzles 3) blenubode.lv/puzles/puzle-lacis 4) blenubode.lv/speles 5) blenubode.lv/speles/prata-speles 6) blenubode.lv/speles/prata-speles/spele-taurenis kad adresē norāda ciparisko id, tad parasti pietiek ar vienu/gala id, jo pēc preces id var noteikt, kurā kategorijā/apakškategorijā/apakšapakš...kategorijā tā atrodas, un to pareizi parādīt user interfeisā (menu,breadcrumbs,...). tā pat arī pēc apakškategorijas id var noteikt visas augstākās kategorijas, jo tabulās visi šie dati ir (normāli ir jābūt). līdz ar to adresē tehniski ir iespējams atstāt minimālu info pirms vispār sākt lietot mod_rewrite, iesaku attiecīgajās tabulās blakus cipariskajam id ieviest lauku arī dabiskajam id (pēc analoģijas ar ciparisko id to laikam varētu saukt arī par "burtisko" id :D:D:D). dažos gadījumos pat pietiek tikai ar dabisko id. parastajām lapām (kontakti, par mums, ...) sākotnējās/ārējās adreses /kontakti /par-mums iekšēji tiek padotas uz /?n=kontakti /?n=par-mums. šīs vērtības tad arī pārbauda parasto lapu tabulā, un parāda attiecīgās lapas saturu. starp citu parametrs n ir nice saīsinājums (nice uri - "smukā" adrese) ;) "mod_rewrite for seo" variantā attiecībā uz NE parastajām lapām (kategorijas,preces,...) ir ieviesti speciālie vārdi "katalogs", "prece", lai uzreiz varētu atpazīt, kas tas ir par saturu. piemēram, no parametra /?n=katalogs/puzles/103 pirmās daļas "katalogs" ir skaidrs, ka tālāk seko kategorija(s) un uzreiz var izmantot pēdējo daļu 103 ar tehnisko/ciparisko id, lai ar to savāktu un parādītu vajadzīgos datus. līdzīgi arī no /?n=prece/puzles/puzle-lacis/507 pēc "prece" ir skaidrs, ka ir jārāda prece ar id 507. lai arī kategoriju un preču nosaukumi šeit vēl netiek izmantoti kategorijas/preces identificēšanai, taču formējot adresi tiem anyway ir jābūt (iegūst vai nu automātiski uzģenerējot no nosaukuma/virsraksta, aizvācot garum/mīkstinājum zīmes un aizvietojot atstarpes ar "-", vai nu pats, pievienojot kategoriju/preci, ieraksta arī dabisko id) "mod_rewrite for beauty" variantā, kad adresē vairs nav nekāda lieka/tehniska info, ir jāveic papildus pārbaudes, lai noskaidrotu, uz ko vispār attiecas adresē redzamās vērtības. piemēram, saņemot /?n=speles/prata-speles/spele-taurenis, vispirms pārbauda vai "speles" ir parasto lapu tabulā, pēc tam kategoriju tabulā (tikai starp pirmā līmeņa kategorijām), un ja nav arī tur, tad tikai parāda paziņojumu, ka pieprasītā lapa nav atrodama. šajā gadījumā gan noskaidrotos, ka "speles" tomēr ir un ir kategorija, kas nozīmē, ka tagad var pārbaudīt pēdējo daļu "spele-taurenis", lai noskaidrotu vai tā ir apakškategorija vai prece, un beigās parādīt attiecīgo (preces) saturu. ok, šīs papildus pārbaudes, protams, ir arī papildus slodze serverim un arī programmētājam to uzkodēt un pēc tam uzturēt (lai gan neliekas pārāk sarežģīti), toties adrese ir "smukāka" :)) kuru no "mod_rewrite for ..." variantiem izmantot, tas ir atkarīgs no paša un no klienta vēlmēm... ;) good luck, have fun
  4. papildināt masīvu var arī vienkāršāk ;) $masivs[] = $a1; $masivs[] = $a2; ... $masivs[] = $aN; lasīt manuāli mūsdienās laikam vairs neskaitās stilīgi... :P http://www.php.net/manual/en/language.types.array.php
  5. $masivs = array($a1, $a2, $a3);
  6. par to, kā uztaisīt tās "vienkāršā pieraksta" adreses, dokumentācija ir te: http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html vari arī uzreiz pamēģināt savā web rootā izveidot .htaccess failu RewriteEngine on RewriteBase / RewriteCond %{REQUEST_FILENAME} -d [OR] RewriteCond %{REQUEST_FILENAME} -f RewriteRule .* - [L] RewriteCond %{QUERY_STRING} ^$ RewriteRule (.+)/$ $1 [R,L] RewriteCond %{QUERY_STRING} .+ RewriteRule (.*[^/])$ $1/ [R,NE,L] RewriteRule ^([a-z0-9-/]+?)/?$ ?n=$1 [QSA] tad virtuālās adreses http://domain/bla-bla1/bla-bla2 tiks padotas uz http://domain/index.php parametru n=bla-bla1/bla-bla2, kur gan tālāk tev pašam tās vajadzēs apstrādāt $a = explode('/', $_GET['n']); ... ja web aplikācija neatrodas web rootā, bet kkur dziļāk, piemēram, http://domain/app/, tad attiecīgi nomaini RewriteBase /app/
  7. 2easy

    Image upload

    neuzmanības kļūda 83. rindiņā. nodzēs to! :D:D:D imagedestroy($src); savādāk no tā brīža src vairs neeksistē, kaut gan debugojot uzrādās, ka tas ir "Resource #3" echo $src . '<br />'; // Resource id #3 echo (is_resource($src) ? 'true' : 'false') . '<br />'; // false
  8. 2easy

    Image upload

    izskatās, ka cēlonis ir pārāk mazs memory_limit ko parāda šī komanda? echo ini_get('memory_limit'); pamēģini skripta sākumā šādu kodu (vai ekvivalentu iekš .htaccess vai php.ini) ini_set('memory_limit', '100M');
  9. varbūt tā ir viņa, nevis viņš? ;) un vai šis skalpelis priekš truša būs pietiekami ass? echo substr('trusis', 0, 3); // parāda 'tru' šajā forumā tev, protams, atbildēs uz jebkuru php jautājumu, bet ja tu pats gribi iemācīties izlabot kļūdas kodā, tad meklē kļūdu pakāpeniski, izvadot mainīgo vērtības rindiņu pa rindiņai, lai saprastu, kurā brīdī kkas vairs nav tā, kā tam būtu jābūt function cut($text,$cik_burti) { // Change to the number of characters you want to display $chars = $cik_burti; $text = $text." "; estr($text); // parāda '(7) trusis ' $text = substr($text,0,$chars); estr($text); // parāda '(3) tru' (šajā vietā jau varēja būt return) $text = substr($text,0,strrpos($text,' ')); estr($text); // parāda '(0) ' ($text ir tukšs, jo strrpos($text,' ') izdod false, jo sākumā pievienotais " " tur vairs nav, bet tālāk jau substr($text,0,false) vnm izdos tukšu stringu) return $text; } function estr($s) { echo '(' . strlen($s) . ') ' . $s . '<br />'; } echo cut('trusis', 3);
×
×
  • Create New...