Forum

> > Off Topic > HTML proplem
Forums overviewOff Topic overviewLog in to reply

German HTML proplem

85 replies
Page
To the start Previous 1 2 3 4 5 Next To the start

old Re: HTML proplem

jeepohahyo
User Off Offline

Quote
Du hast Backslashes verwendet. URIs haben aber Slashes.

Versuchs mal so:

1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
header("Location: http://www.stevens-stuff.de.tc");
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

<html>
<head>
<meta http-equiv="refresh" content="0; URL=http://www.stevens-stuff.de.tc">
</head>
<body>
<p>Wir sind umgezogen. Wenn Sie nicht weitergeleitet werden, klicken sie <a href="http://www.stevens-stuff.de.tc">hier</a></p>
</body>
</html>
Dann hast du direkt eine schöne serverseitige PHP-Umleitung drin. Der HTML-Code ist total wurscht und sollte auch gar nicht beim User ankommen, aber sicher ist sicher

Sorry, dass ich es eben auf ICQ nicht erklärt habe, aber ich dachte du meintest etwas anderes
edited 1×, last 17.01.07 08:32:30 pm

old Re: HTML proplem

stealth
User Off Offline

Quote
Ähm zu dem Zeug mit http_negotiate_language...
Das gibs ja nur in PECL...
Kann ich mir das dann so als Funktion irgendwo laden?
Weil auf der page von pecl find ichs erstens ned und 2. ist das zum teil in c++ oder so geschrieben

old Re: HTML proplem

jeepohahyo
User Off Offline

Quote
Mcht doch nix...
Eigentlich müsstest du die Erweiterung nur in den extension-Ordner von PHP packen und in der php.ini beim Server "anmelden"

Wenn dus leichter machen willst, kann ich dir aber auch eine Funktion machen

EDIT:
1
2
3
4
5
6
function http_language() {
$http_lang = $_SERVER['HTTP_ACCEPT_LANGUAGE'];
$http_lang = substr($http_lang,0,2);  /* zuschneiden auf 'de', 'en', 'fr' etc.
####    für leichteren Vergleich im späteren Code */
return $http_lang;
}
Hab das selber bei meiner Page drin, müsste also gehen
Die Funktion gibt je nach Sprache ein Sprachkürzel aus (> Liste), ich garantiere aber für nichts, ich hab bisher nur für Deutsch ('de') und Englisch ('en') getestet, müsste aber für alles andere auch gehen, da das Kürzel der bevorzugten Sprache ja immer ganz am Anfang stehen müsste.
Das Abschneiden der anderen Zeichen ist bei > diesen Kürzeln wichtig
edited 2×, last 23.01.07 05:11:33 pm

old Re: HTML proplem

stealth
User Off Offline

Quote
Ja so in etwa hab ich das grad auch... aber was ist wenn z.b jemand als erste Sprache japanisch hat, als zweite sprache englisch und als dritte klingonisch oder so?

Das wär ja ein ewiges string auseinander gefusel.

old Re: HTML proplem

bizzl
User Off Offline

Quote
stealth has written
Ja so in etwa hab ich das grad auch... aber was ist wenn z.b jemand als erste Sprache japanisch hat, als zweite sprache englisch und als dritte klingonisch oder so?

Das wär ja ein ewiges string auseinander gefusel.

Wenn di erste Sprache nicht passt, nimm automatisch englisch und gib den usern die möglichkeit, von Hand umzuschalten

old Re: HTML proplem

stealth
User Off Offline

Quote
Also ich hab die Funktion gefunden... aber schaut euch die mal an so schreibt man das doch nicht in php

PHP_FUNCTION(http_negotiate_language)
{
     zval *supported, *rs_array = NULL;

     if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "a|z", &supported, &rs_array) != SUCCESS) {
          RETURN_FALSE;
     }
     
     if (rs_array) {
          zval_dtor(rs_array);
          array_init(rs_array);
     }
     
     HTTP_DO_NEGOTIATE(language, supported, rs_array);
}

old Re: HTML proplem

bizzl
User Off Offline

Quote
stealth has written
Also ich hab die Funktion gefunden... aber schaut euch die mal an so schreibt man das doch nicht in php
...hier lustiger Code...

Nope. Ich hätte ja auf C getippt (wegen den *rs_array als Array-Definition), aber der Funktionskopf passt irgendwie net dazu. Vllt eine Art Meta-Sprache?
Wo haste es den her?

old Re: HTML proplem

jeepohahyo
User Off Offline

Quote
Möp, nimm die komplilierte Version, paxk die in dein PHP-extension-Verzeichnis und schreib die Extension in die php.ini rein.

EDIT: Ne, geht nicht so leicht. Such mal per Google.

old Re: HTML proplem

stealth
User Off Offline

Quote
Und wenn ich das dann bei funpic nich machen kann?

EDIT
Vllt bau ich mir einfach mein eigenes http_negotiate_language()
edited 1×, last 23.01.07 06:35:46 pm

old Re: HTML proplem

jeepohahyo
User Off Offline

Quote
Dann hast du Pech
Sorry, das ist der Grund warum Freehoster nunmal "free" sind

old Re: HTML proplem

bizzl
User Off Offline

Quote
stealth has written
http://pecl.php.net/package/pecl_http

Da drin is ne Datei functions.c (ist das dann von der endung her c?)
Und von da ist der code...

P.S. Da ist grad eben ne neue Version raus gekommen, ich hab noch die 1.3.3

Jo, wenn die Datei functions.c heißt ist es definitv C.

stealth has written
Und wenn ich das dann bei funpic nich machen kann?

Kannste net. Die Wenigsten FreeHoster erlauben sowas. Wenn du die Funktion unbedingt brauchst miete dir nen richtigen Server, ansonsten such dir ein Workarround.

EDIT: ups, zu spät

old Re: HTML proplem

stealth
User Off Offline

Quote
Soll ich mir einfach mein eigenes http_negotiate_language() bauen?

Oder kann ich mir sowas irgendwo laden?

old Re: HTML proplem

jeepohahyo
User Off Offline

Quote
Ich kann dir was bauen.
Dauert nur einen Moment

1
2
3
4
5
6
7
8
9
10
function http_negotiate_language($supported) {
  $lang = $_SERVER['HTTP_ACCEPT_LANGUAGE'];
  $lang = explode(",",$lang);
  $result = array();
  if(in_array($lang,$supported)) {
    return $lang[0];
  } else {
    return $supported[0];
  }
}

Nicht ganz das aus PECL... Liefert als Rückgabewert (weiß nicht, wie man Parameter als Referenz übergibt ) die Sprache des Users, wenn das Kürzel im Array $supported drin ist, ansonsten das erste Element des Arrays $supported.

Kürzel für "normales" Deutsch ist aber de-de. US-Englisch en-us.

Hab nicht getestet, müsste aber in etwa gehen...

EDIT2: Achja, und es nimmr nur die bevorzugte Sprache. Gib mir mehr Zeit und ich krieg den Rest auch hin
edited 3×, last 23.01.07 07:02:54 pm

old Re: HTML proplem

stealth
User Off Offline

Quote
Also bei mir steht in $_SERVER['HTTP_ACCEPT_LANGUAGE']

1
de-de,de;q=0.8,en-us;q=0.5,en;q=0.3

das passt doch irgendwie nicht

EDIT
40000. Post

old Re: HTML proplem

jeepohahyo
User Off Offline

Quote
Sagen wir mal Post mit ID 40000 (ein "paar" wurden doch gelöscht)

Ich überarbeite das ganze mal und versuche das besser zu machen, aber ich merke grade wie schlecht ich die ganzen Array-Befehle kann

old Re: HTML proplem

jeepohahyo
User Off Offline

Quote
Nö, darfst du aber nicht

1
2
3
4
5
6
7
8
9
10
11
12
function http_negotiate_language($supported) {
$lang = $_SERVER['HTTP_ACCEPT_LANGUAGE'].",";
$lang = preg_split("=; (.*?),=",$lang); /* Zwischen ; und ( das
#### Leerzeichen wegmachen*/
$result = array();
foreach($lang as $key => $wert) {
if(in_array($wert,$supported)) {
return $lang[$key];
}
}
return $supported[0];
}
Wenn du es dennoch nicht haben willst:
Hat einer eine Idee, wie ich hinkriege, dass man den Regex besser formulieren kann, sodass man nicht 'de-de,de' erhält?
edited 1×, last 23.01.07 07:26:10 pm

old Re: HTML proplem

stealth
User Off Offline

Quote
EDIT

*die 4 vorigen edits lösch und wieder ordnung hier reinbring..*

So ich hab das perfekte skript
Es gibt zurück: de
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
	function http_negotiate_language($supported,$default="en") {
		$languages = explode(",",$_SERVER['HTTP_ACCEPT_LANGUAGE']);
		foreach ($languages as $wert) {
			if (strpos($wert,";") !== false) {
				$a = substr($wert,0,strpos($wert,";"));
				$b = floatval(substr($wert,strpos($wert,"=")+1));
			} else {
				$a = $wert;
				$b = 1;
			}
			if (in_array($a,$supported) && $b>$q) {
				$language = $a;
				$q = $b;
			}
		}
		if (isset($language)) {
			return $language;
		} else {
			return $default;
		}
	}
?>
edited 8×, last 23.01.07 08:37:52 pm
To the start Previous 1 2 3 4 5 Next To the start
Log in to replyOff Topic overviewForums overview