1 (edited by skuelas 2011-06-28 13:42:51)

Topic: Php 4 ir php 5 ar labai didelis skirtumas?

Ant php 4 viskas kaip ir gerai bet permetus ant php 5 meta klaidas kuriu nesuvokiu kas negerai. Ar galit padet isspresti si rebusa man?
Ant php5 grazina sias klaidas

Warning: preg_match_all() [function.preg-match-all]: Compilation failed: unrecognized character after (?< at offset 3 in ///aaa.php on line 41

Notice: Undefined index: browser in ///aaa.php on line 43

Notice: Undefined index: version in ///aaa.php on line 46

function getBrowser()
{
    $u_agent = $_SERVER['HTTP_USER_AGENT'];
    $bname = 'Unknown';
    $version= "";

    if(preg_match('/MSIE/i',$u_agent) && !preg_match('/Opera/i',$u_agent))
    {
        $bname = 'IE';
        $ub = "MSIE";
    }
    elseif(preg_match('/Firefox/i',$u_agent))
    {
        $bname = 'Firefox';
        $ub = "Firefox";
    }
    elseif(preg_match('/Chrome/i',$u_agent))
    {
        $bname = 'Chrome';
        $ub = "Chrome";
    }
    elseif(preg_match('/Safari/i',$u_agent))
    {
        $bname = 'Safari';
        $ub = "Safari";
    }
    elseif(preg_match('/Opera/i',$u_agent))
    {
        $bname = 'Opera';
        $ub = "Opera";
    }
    elseif(preg_match('/Netscape/i',$u_agent))
    {
        $bname = 'Netscape';
        $ub = "Netscape";
    }
    $known = array('Version', $ub, 'other');
    $pattern = '#(?<browser>' . join('|', $known) .
    ')[/ ]+(?<version>[0-9.|a-zA-Z.]*)#';
    if (!preg_match_all($pattern, $u_agent, $matches)) {
    }
    $i = count($matches['browser']);
    if ($i != 1) {
        if (strripos($u_agent,"Version") < strripos($u_agent,$ub)){
            $version= $matches['version'][0];
        }
        else {
            $version= $matches['version'][1];
        }
    }
    else {
        $version= $matches['version'][0];
    }
    if ($version==null || $version=="") {$version="?";}
   
    return array(
        'userAgent' => $u_agent,
        'name'      => $bname,
        'version'   => $version,
        'pattern'    => $pattern
    );
}
$ua=getBrowser();
$narsyklev= $ua['name']." ".$ua['version'];

echo $narsyklev;

var_dump(0 == 'tekstas'); // TRUE. ar zinai kodel? :)

Re: Php 4 ir php 5 ar labai didelis skirtumas?

Pirmas warning'as yra grynai šablono sintaksės klaida.

Kiti du notice'ai yra PHP sintaksės klaidos.

Visi šie dalykai su PHP versijom nesusiję, o susiję su PHP nustatymais (tiek ini tiek runtime), kurie valdo klaidų pranešimus.

Bet kuriuo atveju kodas pakankamai kreivas ir tikriausiai bereikalingas,
nes yra PHP modulis kuris daro tai ką tu čia bandai padaryt: http://php.net/manual/en/function.get-browser.php

Re: Php 4 ir php 5 ar labai didelis skirtumas?

Bet as nematau jokios klaidos kaip taisyti tai ko nematai? :)

var_dump(0 == 'tekstas'); // TRUE. ar zinai kodel? :)

Re: Php 4 ir php 5 ar labai didelis skirtumas?

to skuelas: negi tu nemoki skaityti, ar angliskai nesupranti? Siaip tie php pranesymai yra aiskesni nei aiskus ir aiskiai pasako kame yra bedos, ir net nurodytos eilutes, kur ta beda yra. Ar tu tingi skaityti/gylintis/mokintis? Man tai is principo nesinori tau pasakyti atsakymu, nes jie per daug akivaizdus ir norisi priversti tave pasukti savo smegenys.

Re: Php 4 ir php 5 ar labai didelis skirtumas?

41,43,46 matau ir maciau sias eilutes ir maciau ka minde rase. klausiu cia todel kad pats nesuprantu kas negerai nors ir dabar minde pasake bet vistiek as nematau kodel negerai, man atrodo kad viskas gerai nors ir meta klaidas

var_dump(0 == 'tekstas'); // TRUE. ar zinai kodel? :)

Re: Php 4 ir php 5 ar labai didelis skirtumas?

skuelas wrote:

41,43,46 matau ir maciau sias eilutes ir maciau ka minde rase. klausiu cia todel kad pats nesuprantu kas negerai nors ir dabar minde pasake bet vistiek as nematau kodel negerai, man atrodo kad viskas gerai nors ir meta klaidas

Tai išjunk klaidų rodymą (error reporting) ir tau jų nerodys (-;

Ir pabandyk išversti sakinį: "Notice: Undefined index". Jeigu vistiek nieko nesigaus tai išvada bus tokia, kad per anksti su PHP pradėjai programuoti, reikėjo pradėti nuo griežtesnės kalbos.

7 (edited by skuelas 2011-06-28 18:40:32)

Re: Php 4 ir php 5 ar labai didelis skirtumas?

minde wrote:
skuelas wrote:

41,43,46 matau ir maciau sias eilutes ir maciau ka minde rase. klausiu cia todel kad pats nesuprantu kas negerai nors ir dabar minde pasake bet vistiek as nematau kodel negerai, man atrodo kad viskas gerai nors ir meta klaidas

Tai išjunk klaidų rodymą (error reporting) ir tau jų nerodys (-;

Ir pabandyk išversti sakinį: "Notice: Undefined index". Jeigu vistiek nieko nesigaus tai išvada bus tokia, kad per anksti su PHP pradėjai programuoti, reikėjo pradėti nuo griežtesnės kalbos.

kazkas nepadaryta.. :) gal gali pasufleruoti ar koks kablelis ar pan nepadetas?

var_dump(0 == 'tekstas'); // TRUE. ar zinai kodel? :)

Re: Php 4 ir php 5 ar labai didelis skirtumas?

skuelas wrote:

gal gali pasufleruoti ar koks kablelis ar pan nepadetas?

per anksti su PHP pradėjai programuoti :)

No warning? No action? I hate this situation!

Re: Php 4 ir php 5 ar labai didelis skirtumas?

Vienu zodziu... suvargau bet issisprendziau, ir ka as daryciau be php manualo :) na ir zinoma be jusu ;)
http://php.net/manual/en/function.preg-match-all.php
Changelog
5.2.2     Named subpatterns now accept the syntax (?<name>) and (?'name') as well as (?P<name>). Previous versions accepted only (?P<name>).

var_dump(0 == 'tekstas'); // TRUE. ar zinai kodel? :)

10 (edited by Neodan 2011-06-29 07:44:55)

Re: Php 4 ir php 5 ar labai didelis skirtumas?

skuelas wrote:

Vienu zodziu... suvargau bet issisprendziau, ir ka as daryciau be php manualo :) na ir zinoma be jusu ;)
http://php.net/manual/en/function.preg-match-all.php
Changelog
5.2.2     Named subpatterns now accept the syntax (?<name>) and (?'name') as well as (?P<name>). Previous versions accepted only (?P<name>).

O pradejai smegenis naudoti :) tai gerai :)
O del noticu (jei dar kartais neradai atsakymo), tai tu bandai pasiimti tuos masyvo elementus kuriu nera (jie neegzistuoja), taigi tau reiktu pries iman patikrinti ar jie yra.

11 (edited by skuelas 2011-06-29 07:56:33)

Re: Php 4 ir php 5 ar labai didelis skirtumas?

Neodan wrote:
skuelas wrote:

Vienu zodziu... suvargau bet issisprendziau, ir ka as daryciau be php manualo :) na ir zinoma be jusu ;)
http://php.net/manual/en/function.preg-match-all.php
Changelog
5.2.2     Named subpatterns now accept the syntax (?<name>) and (?'name') as well as (?P<name>). Previous versions accepted only (?P<name>).

O pradejai smegenis naudoti :) tai gerai :)
O del noticu (jei dar kartais neradai atsakymo), tai tu bandai pasiimti tuos masyvo elementus kuriu nera (jie neegzistuoja), taigi tau reiktu pries iman patikrinti ar jie yra.

Ta jau suprates buvau kad neegzistuoja masyvo elementai atsekes buvau :), ir visu klaidu kaltininke buvo bloga subsablono sintakse :)

var_dump(0 == 'tekstas'); // TRUE. ar zinai kodel? :)

Re: Php 4 ir php 5 ar labai didelis skirtumas?

to skuelas: negi nesmagu kai idejus pastangu, prasiplecia zinios ir programavimo suvokimas? :)

Re: Php 4 ir php 5 ar labai didelis skirtumas?

Neodan wrote:

to skuelas: negi nesmagu kai idejus pastangu, prasiplecia zinios ir programavimo suvokimas? :)

smagu tai tikrai tik gaila kad daug laiko sugaisau :)

var_dump(0 == 'tekstas'); // TRUE. ar zinai kodel? :)

Re: Php 4 ir php 5 ar labai didelis skirtumas?

skuelas wrote:

smagu tai tikrai tik gaila kad daug laiko sugaisau :)

Nieko, sitaip ismoksi naudotis manualu, ko pasekoje veliau nebekils problemu ir i panasius klausimus greit rasiatsakymus.

Moketi naudotis manualais ir paieskos sistemomis yra naudingi programuotoju skilai. :)