Jump to content
php.lv forumi

kasisppr

Reģistrētie lietotāji
  • Posts

    70
  • Joined

  • Last visited

Posts posted by kasisppr

  1. Nu principā izskatās pēc varianta, kad ne-utf8 encodētas lapas dati ir sagrabāti utf8 encodētā datubāzē.

    Variantu kā salabot caur MySQL funkcijām es nezinu, ja kāds gudrāks zin priecātos redzēt strādājošu piemēru.

    Var caur scriptu. No pieredzes varu teikt, ka gan iconv(), mb_convert_encoding() un utf8_encode/utf8_decode īsti nenostrādās.

     

    Es izmantoju ko līdzīgu šim skriptam, eju cauri visām tabulas vērtībām un attiecīgi, ja ir izmaiņas, veicu update tabulā.

    //sagatavojam masīvus
    $umlaute = array( 'ü'=>'ü', 'ä'=>'ä', 'ö'=>'ö', 'Ö'=>'Ö', 'ß'=>'ß', 'à '=>'à', 'á'=>'á', 'â'=>'â', 'ã'=>'ã', 'ù'=>'ù', 'ú'=>'ú', 'û'=>'û', 'Ù'=>'Ù', 'Ú'=>'Ú', 'Û'=>'Û', 'Ãœ'=>'Ü', 'ò'=>'ò', 'ó'=>'ó', 'ô'=>'ô', 'è'=>'è', 'é'=>'é', 'ê'=>'ê', 'ë'=>'ë', 'À'=>'À', 'Ã'=>'Á', 'Â'=>'Â', 'Ã'=>'Ã', 'Ä'=>'Ä', 'Ã…'=>'Å', 'Ç'=>'Ç', 'È'=>'È', 'É'=>'É', 'Ê'=>'Ê', 'Ë'=>'Ë', 'ÃŒ'=>'Ì', 'Ã'=>'Í', 'ÃŽ'=>'Î', 'Ã'=>'Ï', 'Ñ'=>'Ñ', 'Ã’'=>'Ò', 'Ó'=>'Ó', 'Ô'=>'Ô', 'Õ'=>'Õ', 'Ø'=>'Ø', 'Ã¥'=>'å', 'æ'=>'æ', 'ç'=>'ç', 'ì'=>'ì', 'í'=>'í', 'î'=>'î', 'ï'=>'ï', 'ð'=>'ð', 'ñ'=>'ñ', 'õ'=>'õ', 'ø'=>'ø', 'ý'=>'ý', 'ÿ'=>'ÿ', '€'=>'€' );
    $find = array_keys($umlaute);
    $replace = array_values($umlaute);
    
    $sql = "SELECT id, value FROM some_table";
    $field_set = mysqli_fetch_array($sql); // dzīvē izmantoju ADODB klasi, tāpēc nepārzinu tik labi mysqli
    
    foreach($field_set AS $row_set)
    {
       $id = $row_set['id'];
       $value = $row_set['value'];
       $value_fixed = str_replace($find, $replace, $value);
       if(strcmp($value, $value_fixed) != 0)
       {
          $sql_update = "UPDATE some_table SET value = ".mysqli_escape_string($value_fixed)." WHERE id = ".mysqli_escape_string($id);
          mysqli_execute($sql_update);  //pārrakstām vērtību datubāzē
       }
    }
    
  2. Nu vari pamēģināt ar STR_TO_DATE()

    https://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_str-to-date

     

    Manuprāt šim vajadzētu strādāt

    SELECT * FROM mani_ieraksti 
    WHERE STR_TO_DATE(datums, '%d.%m.%Y') BETWEEN STR_TO_DATE("14.08.2015", '%d.%m.%Y') AND STR_TO_DATE("15.08.2015", '%d.%m.%Y')

    Taču skaties cik ātri tas izpildās.

     

    Pareizāk gan būtu tomēr, lai datums ir "date" vai "datetime" lauka tips. No pieredzes saku, ja ļausi saglabāt nestandartizētus datuma formātus gaidi pamatīgas problēmas ar galvassāpēm vēlāk.

     

    Savukārt par to kā pārkonvertēt:

    Izveido jaunu datuma laiku ar "date/datetime" tipu (var arī būt timestamp, bet es pēc iespējas cenšos izvairīties) piemēram "temp_datums".

    Tad ar MySQL pieprasījumu pārkonvertē

    UPDATE mani_ieraksti SET temp_datums = STR_TO_DATE(datums, '%d.%m.%Y');

    Ja visi dati korekti pārnesās uz jauno data tipu, dzēs ārā veco "datums" colonu un nomaini "temp_datums" uz "datums".

    Protams neaizmirsti, ka tagad datubāzē datums jāsaglabā jaunā formātā "Y-m-d" (vai "Y-m-d H:i:s"), tāpēc applikācijas kodā, kurš glabā ierakstus veic attiecīgas izmaiņas.

  3. skolotāja alga vidēji ir ap 1,000 eiro mēnesī, 400 eiro ir Mahimas kasiere-stažiere

     

    Tu laikam domāji to 1 skolotāju no Siguldas, kurai laikam par 2.5 slodzēm savācās šī BRUTO alga.

    Uzskatāms TV sižetu upuris, kur visur minēja skolotāju algas izmērus, tikai aizmirsa pieminēt, ka tās ir BRUTO algas.

    Man sieva strādā par skolotāju un reāli tā ir, ka uz rokas saņem nedaudz virs 400 EUR. Principā uzturu viņas "hobiju".

  4. No pieredzes varu teikt, ka šobrīd Excel gadījumā neko labāku par phpExcel neesmu atradis. Agrāk bija BiffWriter klase, bet priekš MS Excel 5 versijas un šķiet kopš 2007 nav mainīta. PhpExcel nāk variants saglabāt kā PDF, bet nepratīšu teikt, jo neesmu izmatojis to iespēju.

    Ja vien tev nav plānots ģenerēt failu ar > 200tk ierakstiem, nevajadzētu rasties problēmai ar atmiņu, jo phpExcel tur visus datus objektā pirms faila ģenerēšanas.

     

    Arī Word gadījumā ir līdzīga klase phpWord (izstrādātāji tie paši kas phpExcel, tāpēc sintakse un uzbūves loģika identiska). Jāatdzīstas, ka phpWord ir sarežģītāks un tas ir mazāk izstrādāts, tāpēc saformatēt tekstu tā kā tu vēlies varētu būt krietni sarežģītāk vai pat neiespējami. Tur gan ir iespēja ielādēt template, bet neesmu mēģinājis, tāpēc nepratīšu teikt vai rezultāts ir labs. Tāpat klase piedāvā saglabāt PDF formātā.

     

    Vēl protams ir daži tūļi, kas HTML konvertē uz PDF. Es savulaik vienā projektā lietoju HTMLDOC, strādā līdz šim brīdim, bet tai ir sava specifika kā sadefinēt stilus, lai PDF tie parādītos.

     

    Protams ir LaTeX, bet, ja neesi vispār neko tur darījis, tas būs neliels "chalange".

  5. Nu tats ir labi, kad tev tagad ir cits kods, bet tu saproti, ka tev

    $add = serialize($array); ir jau cits neka pirms tam.

    Iespējams tev ir jādara kaut kas līdzīgs

    $laiks2 = $_POST['date2'];
    
    foreach($array AS $sub_array)
    {
    $add = serialize($sub_array);
    mysql_query("DB INSERT"); // ???? neesi neko strukturali noradijis, tapec nevaru te palidzet
    }
    
  6. Nu nezinu, bet manuprāt neko labāku par PHPExcel pluginu diez vai atradīsi.

     

    Lai arī pats izmatoju to datu exportam uz MS Excel, bet demo failos redzēju, ka viņam ir iespēja ieimportēt datus no excel faila uz savu klases objektu un tad spēlēties ar datiem pēc patikas. Nezinu kāda tev MS Excel failam versija, bet viņs spēj saprast pat veco "Excel5" formātu, par jaunākiem (.xlsx) nerunājot.

  7. Nu ja tev jāizmanto dizaineru atsūtītais .psd fails un jāgriež ārā tikai dizaina elementi, vari iztikt ar Photoshop Elements (maksā ap 80$) un nav jāpērk Photoshop CS4. Mēs vismaz tā darījām, jo apnika ņemties ar dizaineru transformētajiem workautiem.

     

    http://www.adobe.com/products/photoshopelwin/

     

    Varbūt kāds var padalīties ar labākām alternatīvām?

  8. Jautājums vai tev ir svarīga cron job izpildes secība, kur 5min nedrīkst palaisties, ja 10, 15 un 30 min ilgie nav beiguši darbību?

     

    Vienkāršs variants ir izveidot tabulu ar ierakstiem visiem 4 cron jobiem. Kad tie sāk izpildīties uzseto kautkādu "In progress" statusu, kuru nomaini kad attiecīgi cron jobs beidzas. Savukārt skriptos uzliec cron joba status chekošanu, ja "In Progress" skipojam darbu un gaidm nākamo logu.

    Problēma varētu būt, ja tev ilgākais ik pēc 30 min skripts "uzkaras", tad pārējie tā arī var nesākt izpildīties. Bet nu principā skaties kāda tev situācija.

  9. minūte ar Googles tanti un paprasot "PHP get file extension" un rezultāts rokā.

    Nu tad tālāk papildinām tajā sadaļā, kur nolasi filus no direktorijas ar attiecīgo kodu

     

    // Read directory
    if (is_dir($dir)) {
       if ($dh = opendir($dir)) {
           while (($file = readdir($dh)) !== false) {
               $full_name = "$dir/$file";
               $ext = substr(strrchr(strtolower($file), '.'), 1); // dabujam paplashinajumu failam
               if (is_file($full_name) && $ext == "mp3") {
                   $files[$full_name] = $file;
               }
               elseif ($file[0] != '.') {
                   $dir[$full_name] = $file;
               }
          }
          closedir($dh);
      }
    }
    

     

    "Paldies" lūdzu pārskaitīt uz kontu. ;)

  10. Airbus nepažēlo naudu un paņem dažas privātstundas pie savas latviešu valodas skolotājas, lai tā tev iemāca pirmkārt gramatiku un interpunkciju. Labprāt noderētu arī padomi domas noformulēšanai un teikumu veidošanā.

    Būsi 2 labas lietas izdarījis: palīdzējis savai skolotājai grūtajos laikos un arī sev, lai saņemtu noderīgas un sakarīga atbildes tevis skaidrotajām problēmām.

  11. echo '.....</td><td>'.$arr['username'].'date("j.m.Y H:i",$arr['expire']);'</td></tr>';

     

    nedaudz vienkāršosim

     

    echo '...a'.$x.'$d;'b';	   //kur $d ir tas rezultats, ko dod date("j.m.Y H:i",$arr['expire'])

     

    Un tagad tā vērīgi paskaties uz to echo rindinju un to ko tev teica v3rb0, ka mainigos un tekstu apvieno 2 veidos.

     

    echo 'a'.$x.'b';
    //vai
    echo 'a',$x,'b';

     

    Varbūt tas palīdzēs ieraudzīt tās 2 vietas, kur esi kļūdījies?

  12. Man ir aizdomas ko tu gribi panākt, bet kā jau Morphius teica, skaidrāk izklāsti savu domu.

     

    Ja jau tu pats nevēlies pacensties un veltīt laiku, lai NORMĀLI izskaidrotu kas Tev neizdodas un ko īsti vēlies panākt, tad kāpēc lai mēs pārējie tērētu tam laiku?

    Pats zini, valstī krīze un kristāla bumbām naudas nav.

     

    Un starp citu, kas tad pa vainu bija šim http://php.lv/f/index.php?showtopic=13105 topikam, ka taisi klonu?

    Tur ļoti precīzi tika pateikts kur un kas jāpamaina.

  13. Sveiki visi!

     

    Sastapos ar dīvainu mail() funkcijas uzvedību, kad pievienoju papildus BCC: headeri. Manā gadījumā vajadzēja, lai jauno lietotāju "welcome" reģistrēšanās maili tiktu pārsūtīti arī adminstrējošām personām. Problēma ir tur, ka ne visas personas, kas ir BCC: sarakstā saņem šo mailu.

     

    Veicot testēšanu, pietika pat pamainīt epastu secību, lai viena persona vairs nesaņem mailu.

     

    epasta izsūtīšanas kods ļoti vienkāršs.

    $Bcc = "BCC:[email protected],[email protected],[email protected]\r\n";
    mail($email, $emailsubject, $message, "From: [email protected]\r\n".$Bcc."X-Mailer: Content Manager - PHP/".phpversion()));

    Ar mainīgajiem $email, $emailsubject, $message viss ir kārtībā.

     

    Kāds ir sastapies ar ko līdzīgu? Googlē tiek minēti visi iespējamie problēmas cēloņi sākot ar mailserveriem, epastu parlūkiem un pašas mail() f-jas gļukiem.

    Bija doma pārtaisīt mailus izmantojot "PHPmailer" klasi, bet it kā vienkārša papildus fīča, turklāt neesmu drošs vai problēmu tas atrisinās.

  14. Nu es rakstītu to dalu ar if-iem un echo kaut kā tā:

     

    if($cw['km1_rez'] < $cw['km2_rez'])
    {
      $kraasa1 = $sarkans; 
      $kraasa2 = $zaljsh;
    }
    elseif($cw['km1_rez'] > $cw['km2_rez'])
    {
      $kraasa1 = $zaljsh;
      $kraasa2 = $sarkans;
    }
    else
    {
      $kraasa1 = $zils; 
      $kraasa2 = $zils;
    }
    echo '<tr><td>';
    echo '<b><img src="images/flags/'.$cw['valsts'].'.gif" alt="" /> Mana komanda ';
    echo '<span style="color:#'.$kraasa1.';">'.$cw['km1_rez'].'</span>:';
    echo '<span style="color:#'.$kraasa2.';">'.$cw['km2_rez'].'</span> ';
    echo $cw['pretinieks'].'</b> @ '.$cw['karte'];
    echo '</td></tr>';

     

    es tikai nesaprotu, kāpēc tu definē $kraasa2, ja pēc tam tāpat to mainīgo neizmanto.

     

    P.S.

    Šķiet ieraudzīju tavu kļūdu.

×
×
  • Create New...