[PHP] Kleine RegEx Frage...

  • Hi

    Ne kleine RegEx Frage

    Bekomme das einfach ned hin.

    Ich habe den Code

    Code
    ...
    elseif(eregi('(Linux)(.*\).*\()([a-zA-Z0-9äöü]{0,})',$agent, $regs))$sys = array('Linux',$regs['3']);
    ...

    Ich werte die User Agents aus.
    Bei dem Funktionierts so ohne probleme

    Zitat

    Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.5) Gecko/20061201 Firefox/2.0.0.5 (Ubuntu-feisty)


    Es kommt "Ubuntu" raus.

    Bei dem nicht

    Zitat

    Mozilla/5.0 (X11; U; Linux i686 (x86_64); pl-PL; rv:1.9a3pre) Gecko/20070224 Firefox/3.0a3pre (Kubuntu-feisty) (Powered by Virtual_ManPL)


    Es kommt "Powered" raus

    Wie kann ich dem Pattern sagen das irgendwas kommt aber kein "(" drin ist?

    Kennt jemand eine Seite die viele User Agents zeigt, nach OS und Browser kategorisiert?

    Gruss

  • hmm das wird dann schon interessant, da es in dem falle im kommentarbereich ist, der recht unterschiedlich aussehen kann.

    vielleicht eine liste aller möglichen Distributionen und dann mit strpos gucken ob es gefunden wird.

  • Hmm, ich hab ne Lösung.

    Code
    elseif(eregi('(Linux)(.*\()([a-zA-Z0-9äöü]{0,})(.*\()',$agent, $regs))$sys = array('Linux',$regs['3']);
    elseif(eregi('(Linux)(.*\()([a-zA-Z0-9äöü]{0,})',$agent, $regs))$sys = array('Linux',$regs['3']);


    Funktioniert nun sicher mit (*)Ubuntu (ausser Gutsy) und Debian.

    Wenn jemand noch eine andere Distro zurhand hat, bitte den User Agent posten und Infos dazu (Browser, Distri, Distri Vers.)