Browser-Weiche

Browser-Weiche

am 31.08.2006 12:07:09 von Marco Appoldt

Hallo!

Ich versuche, eine Browserweiche für ein Stylesheet zu programmieren und
komme nicht weiter.

Wenn der u.a. Code ausgeführt wird, verzweigt er immer in den
'else'-Zweig, auch wenn ich den IE verwende.

----------------------------------------------
if(eregi('msie',$HTTP_USER_AGENT))
{
echo "Browser: Internet Explorer";
}
else
{
echo "Browser: what ever.";
}
?>
----------------------------------------------

Kann mir jemand den entscheidenden Tipp geben?

Danke.


--
Grüße


Marco

Re: Browser-Weiche

am 31.08.2006 12:20:16 von newsonly2

Di dalam de.comp.lang.php.misc Marco Appoldt menulis sebagai berikut:

Hi Marco,

> if(eregi('msie',$HTTP_USER_AGENT))

$_SERVER['HTTP_USER_AGENT'] sollte besser funktionieren.

Und statt eregi tut auch stristr().

Lg,
Olly

Re: Browser-Weiche

am 31.08.2006 13:46:08 von Marco Appoldt

Am 31.08.2006 12:20 schrieb Oliver C. Thornton:

> $_SERVER['HTTP_USER_AGENT'] sollte besser funktionieren.
>
> Und statt eregi tut auch stristr().

Hallo!

Nö. Grundsätzlich bringt er keine Fehlermeldung aber trotzdem verzweigt
er immernoch in den 'else'-Zweig.

-----------------------------------------------
if(stristr('MSIE',$_SERVER['HTTP_USER_AGENT']))
{
echo "Browser: Internet Explorer
";
}
else
{
echo "Browser: what ever.
";
}

echo $_SERVER['HTTP_USER_AGENT']
?>
-----------------------------------------------

Ich dachte schon, dass es an meiner lokalen PHP-Installation liegt aber
auf dem Server bei meinem Provider ist es auch nicht anders als oben
beschrieben.



--
Grüße


Marco

Re: Browser-Weiche

am 31.08.2006 14:01:04 von dev-null-use-reply-adress

Marco Appoldt schrieb:
> Am 31.08.2006 12:20 schrieb Oliver C. Thornton:
>
>> $_SERVER['HTTP_USER_AGENT'] sollte besser funktionieren.
>>
>> Und statt eregi tut auch stristr().
>
> Nö. Grundsätzlich bringt er keine Fehlermeldung aber trotzdem verzweigt
> er immernoch in den 'else'-Zweig.

Logisch.

> if(stristr('MSIE',$_SERVER['HTTP_USER_AGENT']))

Du möchtest Dich nochmal im Manual über die Funktion
stristr() informieren. ;-)

http://de.php.net/stristr

Am sinvollsten für solche einfachen Suchvorgänge ist
übrigens strpos().
http://de.php.net/strpos

Zu Deinem ersten Versuch mit eregi():

8.2. Soll ich ereg() oder preg() verwenden?
http://www.php-faq.de/q/q-regexp-ereg.html

Und noch zu $HTTP_USER_AGENT:

11.20. Warum funktionieren meine Formulare nicht?
http://www.php-faq.de/q/q-formular-register-globals.html


Gruß
JPM

Re: Browser-Weiche

am 31.08.2006 14:51:45 von Marco Appoldt

Am 31.08.2006 14:01 schrieb Jens Peter Moeller:


> Du möchtest Dich nochmal im Manual über die Funktion
> stristr() informieren. ;-)

Habe ich getan. :-)


> Am sinvollsten für solche einfachen Suchvorgänge ist
> übrigens strpos().
> http://de.php.net/strpos

Danke. Hat jetzt geklappt.


--
Grüße


Marco

Re: Browser-Weiche

am 31.08.2006 15:00:35 von unknown

Post removed (X-No-Archive: yes)

Re: Browser-Weiche

am 31.08.2006 15:09:37 von Joerg Behrens

Marco Appoldt schrieb:
> Am 31.08.2006 14:01 schrieb Jens Peter Moeller:
>
>
>> Du möchtest Dich nochmal im Manual über die Funktion
>> stristr() informieren. ;-)
>
> Habe ich getan. :-)

PHPs Funktionen und die Reihenfolge der Parameter, gell?

Grus
Joerg

--
TakeNet GmbH http://www.takenet.de
97080 Wuerzburg Tel: +49 931 903-2243
Alfred-Nobel-Straße 20 Fax: +49 931 903-3025

Re: Browser-Weiche

am 31.08.2006 15:48:14 von Ulf Kadner

Marco Appoldt wrote:

> Ich versuche, eine Browserweiche für ein Stylesheet zu programmieren und
> komme nicht weiter.

Dazu ist PHP aber auf jeden Fall die schlechtere Wahl!
Das was Dir da $_SERVER['HTTP_USER_AGENT'] liefert hat oft nichts mit
dem Browser zu tun der dahinter steht.

Mein Mozilla sendet z.B. immer:
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; de)

Mein Opera sendet:
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; en)

Das was Du da umsetzen willst wird im Normalfall durch die Ausnutzung
von Browserbugs in der CSS-Implementierung bzw. Proprietären
Browserfeatures erreicht.

Wenn Du etwas spezielles für IE einbinden willst, so geschieht das im
allgemeinen über 'conditional comments' die nur der IE beherrscht.

Beispiel:


Google hat da mehr zu Parat

MfG, Ulf