Jump to content
php.lv forumi

Venom

Moderatori
  • Posts

    1,918
  • Joined

  • Last visited

Posts posted by Venom

  1. 1) nu, lai fonu dabūtu nost var padarboties ar

    imagefill() iekš kvadrātiņiem

    imageline() pa rūtiņu režģi, rūtiņas savukārt var uzminēt, pastaigājoties ar imagecolorat ā) no augšas uz leju dažus pikšeļus pa labi no augšējās kreisās malas

    bē) no kreisās uz labo, dažus piekšeļus no augšas - kamēr nesastop to viņu savādo krāsu.

     

    2) te būs grūtāk. viens variants - no komandrindas barot imagu kaut kādam command-line OCR (go google, linuxam droši vien kaut kas tāds iraid)

    vēlams pirms tam burtus savienot (ejot no augšas uz leju vai no "sāņiem" pārbaudām, ja pikselis = fona krāsā, bet pikselis+1 un pikselis-1 - tajā sarkanā, tad aizplūdinām arī).

    Ja komandrindas OCR nav atrodams/izmantojams, tad mans tālākais variants:

    ā) cītīgi jāpiestrāda pie burtu atpakaļsavienošanas, lai, vienalga kāds tas režģis būtu, beigu rezultātā apstrādāts burts piekselis pikselī būtu vienāds

    bē) sagraizam bildi 3jos burtos (ejot no kreisās uz labo meklējam vertikālo līniju, kas pilnība fona krāsā un nograizam līdz tai)

    cē) apgraizam katru burtu līdz minimumam (ķipa crop)

    dē) ieglabājam kā šablonu

    ē) šim šablonam piešķiram tajā redzamā burta nosaukumu

     

    pie jaunās bildes saņemšanas izpildām fonošanu, 2ā līdz 2cē un tad salīdzinām ar esošiem šabloniem

     

    nu tas tā, pafantazējot

  2. tamdēļ jau teu tas AS arī vajadzīgs - lai atšķirt 'data's

    ir arī tāda lieta, kā JOIN - tabulu apvienošana pēc kaut kāda lauka

    SELECT table1.data as `main`,
    table2.data as `description`
    FROM table1 LEFT JOIN table2 ON table2.sec_id=table1.id

     

    vai izmantot vairāk, nekā divām tabulām.

    Ja izmanto RIGHT JOIN, tad atgriezīs tikai tad, ja abās tabulās ir sakritošas att. kolonnas, ja LEFT JOIN, tad būtu jāņem arī tad, kad otrā tabulā datu nav.

  3. Nu, ja jau teu tik daudz apmeklētāju, tad tu esi ieinteresēts aiztaisīt konekciju jo ātrāk jo labāk.

    Otrs - varbūt tev jāapsver:

    MySQL konfigurācijas uzstādījumus vai izvēlēties citu serveri.

    kešošanu iekš $_SESSION vai failos, lai samazinātu pieprasījumus uz MySQL

    pārbaudīt skripta vidējo izpildes laiku - jo, piem, ja tas izpildās 10 sek, tad visas tās 10 sek varētu tikt turēta konekcija (ārstējams ar jo ātrāku mysql_close()).

    Apskatīties, vai uz servera nav "nolockotu" konekciju, kas vien tikai tur ir, bet neko nedara (zavislo, poņimaješ), izanalizētu no kurienes tās iraid un likvidēt.

  4. <?php

    $title = "ezs page";

    $sad = "sad";

    $botom = "© ezs 2004";

    $body = @implode('',@file('temp/text.php')); par šo brīnos

    šiem te ^ jābūt template apakšmasīvā

     

    $templ=@implode('',@file('temp/index.html'));

     

    $templ=str_replace('{body}',$body,$templ); steidzamies, steidzamies, tam visam automātiski jādarās lejā, kur foreach

    $templ=str_replace('{title}',$title,$templ);

    $templ=str_replace('{botom}',$botom,$templ);

    ob_start();

    ?>

    {HEADER}

    <?php

    include 'temp/index.html'; //satur {welcome}{text} tev jau viš iekš $templ bija, vai ne?

    ?>

    {FOOTER}

    <?php

    $html=ob_get_clean();

     

    foreach($tpl as $key=>$val)

    $html=str_replace('{'.$key.'}',$val,$html);

    echo $html;

    ?>

     

    tu jauc tods mainīgos, kas satur template vērtības un to, kur ir pati template.

    AIZMIRSTI par tādu template mainīgo, kā {body}, ieciklējies uz viņa esi, vai nu arī nepareizu jēgu piesaisti.

     

    labots variants

     

    <?php

    $tpl['title'] = "ezs page";

    $tpl['sad'] = "sad";

    $tpl['botom'] = "© ezs 2004";

    $tpl['HEADER']='kaut kāda galvene';

    $tpl['FOOTER']='kaut kāda kājene';

     

    //galvenās lapas daļas, kas var saturēt citus {mainīgos}

    $priority=array('HEADER','FOOTER');

     

    ob_start();

    ?>

    {HEADER}

    <?php

    include 'temp/index.html'; //šis ķipa ir tas body, kurā ir {title}{sad}{bottom}

    echo '<br />{bottom}';//tā arī var maisīt

    ?>

    {FOOTER}

    <?php

    $html=ob_get_clean();

     

    NB: $html satur:

    {HEADER}

    ...{title}...{sad}...{bottom}...<br />{bottom}

    {FOOTER}

     

    //nomainām prioritārās daļas

    while($key=array_shift($priority))

    {

    $html=str_replace('{'.$key.'}',$tpl[$key],$html);

    unset($tpl[$key]);

    }

    //nomainām pārējos sīkumus

    foreach($tpl as $key=>$val)

    $html=str_replace('{'.$key.'}',$val,$html);

    echo $html;

    ?>

     

    ezs, mēģini izprast, nevis nokopēt un palaist (tik un tā nestrādās ;) )

  5. Tu lasi ko tev atbild un piedomā pie tā ko lasi/raksti?

    (sorry, esmu sliktā noskaņojumā)

     

    ā) Tev no sākumā jāsastāda pilns lapas teksts, ar visām iespējamām templātēm, un tikai pēc tam visu mainīt. E.g.

     

    <?php

    ob_start();

    ?>

    {HEADER}

    <?php

    include 'some.tpl'; //satur {welcome}{text}

    ?>

    {FOOTER}

    <?php

    $html=ob_get_clean();

    /*

    tagad iekš $html mums ir

    {HEADER}
    {welcome}{text}
    {FOOTER}

    */

    foreach($tpl as $key=>$val)

    $html=str_replace('{'.$key.'}',$val,$html);

    echo $html;

    ?>

     

    bē) viens no variantiem. pieņemsim, tu gribi izvadīt no mysqla rakstu, datumu un autoru, pie tam mainot dizainu:

     

    include 'some.tpl'; vietā mēs taisam, piem.

    include 'raksti.php';

     

    kas darās sekojoši:

    //mysql savienojums etc.
    $tpl['body']='';
    
    [b]variants ā, tagu simulēšana - dizaina atdalīšana no satura[/b]
    
    while($res=mysql_fetch_array...)
    $tpl['body'].='{DATUMS}'.date('Y/m/d H:i:s',$res['date']).'{/DATUMS}{RAKSTS}'.$res['article'].'{/RAKSTS}{AUTHOR}'.$res['author'].'{/AUTHOR}';
    
    un kaut kur pēc tam nomainām {RAKSTS} piem. par <p>, bet {/RAKSTS} par </p>, bet citā gadījumā attiecīgi <div id="raksts"> un </div> utml.
    
    [b]variants bē, teplāšu atkārtošana - mainām izvietojumu/saturu[/b]
    
    $raksta_tpl=@implode('',@file('raksts.tpl'));
    /*
    raksts.tpl var saturēt piem.
    <p>{raksts}<br /><i>{autors}</i>, {datums}</p>
    vai
    <b>{autors}</b><br />
    <p>{raksts}</p>
    {datums}
    utml.
    */
    while($res=mysql_fetch_array...)
    {
     //note: arī raksti var saturēt templāšmainīgos!
    $tmp=$raksta_tpl;
    $tmp=str_replace('{author}',$res['author'],$tmp);
    $tmp=str_replace('{raksts}',$res['article'],$tmp);
    $tmp=str_replace('{datums}',date('H:i d/m',$res['stamp']),$tmp);
    $tpl['body'].=$tmp;
    }

     

    un beigās palaižām to, kas iet ar ob_get_clean, lai nomaina body pret attiecīgo vērtību

     

    abus variantus var un vajag maisīt

     

    <b>note:</b> jānodrošina, ka {BODY} vai cits "ietverošs" elements tiek aizvietots pirms visādiem "ietvertiem" sīkumiem.

    to var darīt vai nu pareizi iniciējot $tpl masīvu, vai nu ar rociņām pierakstīt

    str_replace('{BODY}');

    str_replace('{datums}');

    vai nu jāsastāda templāšmainīgo prioritāšu masīvs

    $priority=array('body','raksts','datums');

    while($key=array_shift($priority))

    $html=str_replace('{'.$key.'}',$tpl[$key],$html);

     

    cik cilvēku, tik pieeju

  6. kāpē? ja mazliet pielabo...

    $str="kautkas(1);kakis(2);suns(3);maaja(4)...";
    $kovaig=4;
    
    $mas=explode(";",$str);
    /* mas = array (kautkas(1), kakis(2), suns(3) ...) */
    $correct=array();
    while($tmp=array_shift($mas))
    {
    //$tmp=text(1)
    $tmp=str_replace('(','|',$tmp);//$tmp=text|1)
    $tmp=str_replace(')','|',$tmp);//$tmp=text|1|
    $tmp=explode('|',$tmp);
    //$tmp=array( text, 1, '' )
    $correct[$tmp[1]]=$tmp[0]; //$correct[number]=text
    }
    echo $correct[$kovaig];

     

    Ja vajag izvadīt vairākus "kovaig", tad šis variants varētu būt efektīgāks par preg.

  7. dotajā variantā es tāpatās pielietotu masīvu:

    $str="kautkas(1);kakis(2);suns(3);maaja(4)...";
    $kovaig=4;
    $mas=explode(";",$str);
    $tmp=$mas[$kovaig];
    $tmp=explode('(',$tmp);
    echo $tmp[0]; //izdos kakis

     

    mazliet pamainīts preg.variants:

    '#;?([^\(;]+)\('.$number.'\)#'

     

    nozīmē:

    ## "separatori", var izmantot pierastos /

     

    ;? - var būt vai arī nebūt priekšā semikols

    ([^\(;]+) vismaz viens simbols kas nav "(" (lai aizietu "līdz (") vai ";" (lai sāktu no ";" uz priekšu), ja iespējams, atkārtoti, tas viss tiek pārtverts iekš $1 {sīkāk: [] apzīmē simbolus kopu, +, ka simbols no kopas var atkārtoties vismaz vienu reizi, ^ priekšā simbolu kopai apzīmē "ne" - jebkurš simbols izņemot }

    \( pirms numura "("

    vajadzīgais nummurs

    pēc numura ")" citādi uz "2" meklēšanu kopētu arī (23)

     

    Ja eclubs piecelsies, var pamācīties iekš VenRExp

  8. ā) nu, "ierobežo" visus mainīgos, kas ir jāmaina kādā masīvā, e.g.

    $templ['body']='tas un tas';

    $templ['title']='šis un cits kas';

     

    foreach($templ as $key=>$val)

    $html=str_replace('{'.$key.'}',$val,$html);

     

    bē) ņemnogo ņepoņal naščet echo include, ko tu mēģini izdarīt, iekš body ielasīt tā include tekstu vai pamainīt $body tā, lai {body} vietā būtu cits fails?

     

    ja pirmais variants:

    go with $body=@implode('',@file('template.html'));

    ja otrais variants:

    go with include('/template'.$body.'.html');

    trešais variants:

    if (..)

    $switched='index';

    else

    $switched='other';

    $body=@implode('',@file($switched.'.html'));

    $html=str_replace('{body}',$body,$html);

     

    es personīgi izmantotu sekojošo variantu:

     

    ob_start();//viss outputs tiek iekešots RAMā

     

    darāmies iekš php, inclūdojam templātes ar visiem {body} utml,

    neaizstājot tos

     

    $html=ob_get_clean();//tagad mumsīm iraid viss htmls ar visām templāšu mainīgiem

     

    pielietojam varinatu ā.

  9. ā) pārbaudīt e-pasta adresi ar pregu, vai tā ir a-z[_-a-z0-9]*@a-z[_-a-z0-9]*\.[a-z]{2,} virkne

    bē) atver telnet, piekonektējies kādam smtp serverim uz 25 porta un "parunājies" ar viņu

     

    HELO servera.domain.adrese.lv

    atbilde

    MAIL FROM: tādsuntāds@tāds.lv

    atbilde - ja sākas ar 250/220 kodu, tad ir ok, tāds jūzeris iraid

    RSET vai QUIT

     

    iekš php simulējams ar fsockopen(smtp,25)

  10. Esmu 21 gadu vecs, bet tavs reklāmteksts nekur neder, īpaši frāze un izstrādātie darbi arī!.

     

    Vēlams darbu saraksts (vismaz links uz tavu mājaslapu/portfolio iekš profila), vai vismaz darbu profils/apraksts (darbs ar DB/portāli/administrācijas paneļi/pilnvērtīgas CMS etc).

     

    Man par brīnumu daudzi atrod darbu ar doska.lv-veidīgām sistēmām.

  11. uz pirmā skatiena

    SELECT `*`

     

    backticks (``) tiek izmantots, lai "noeskeipotu" speciālos SQL vārdus, piemēram, ir tāda funkcija AVG, bet tu gribi uztaisīt kolonnu avg, tad selectos tev būtu jāizmanto `avg`, lai MySQL nesāktu meklēt izpildījumu AVG()

     

    Kad tu norādi `*` tiek meklēta kolonna ar nosaukumu * (iespējams, bet pārāk izvirtīgi).

  12. tif, tiff, bmp, iff, jpc, jp2, jpx, jb2

     

    Nav "standarta" internet formāti, tāpēc būs vien jāpārveido par kaut ko sagremojamu. Piemēram ar kādu batch programmiņu ar shell_exec varētu konvertēt automātiski. Vai mēģināt izmantot ImageMagick.

×
×
  • Create New...