Seite 1 von 1

Funktion include nochmal anpassen?

Verfasst: 12.10.2006 05:10
von mgutt

Code: Alles auswählen

// seo urls v2 - include fix
function include($url)
{
	if ( strpos($_SERVER["HTTP_HOST"], ".htm") !== false )
	{
		$url = str_replace(".htm", "$phpEx", $url);
	}

	return $url;
}
Funkt leider nicht. Darf man bestehende Funktion nicht "überschreiben"?

Ich habe das Problem, dass beim Umschreiben von Urls $url mit einem .htm an include() übergeben wird und da beim includen die .htaccess nicht berücksichtigt wird, habe ich das Problem, dass die Datei nicht gefunden wird.

Daher suche ich eine Problemlösung in dieser Richtung.

Gruß

Verfasst: 12.10.2006 15:17
von Pyramide
Nein, man kann Funktionen nicht überschreiben (zumindest keine globalen - bei Klassen sieht das wieder anders aus).

Aber warum willst du überhaupt nicht existierende Dateien an include() übergeben? Bei einem SEO Mod bringt das doch überhaupt nichts, da include() eine rein Serverseitige Funktion ist. :roll:

Verfasst: 12.10.2006 15:21
von mgutt
Das Problem ist, dass der Autor von CH immer mehr bei include() seine Funktion dazwischen quetscht:

Code: Alles auswählen

	function url($basename, $parms=array(), $add_sid=false, $fragments='', $force=false, $external=false)
	{
		global $SID;
		static $script_path;

		$url_parms = '';
		if ( empty($parms) )
		{
			$parms = array();
		}
		if ( $add_sid && empty($parms['sid']) )
		{
			$parms['sid'] = substr($SID, strlen('sid='));
		}
		if ( !empty($parms) )
		{
			foreach ( $parms as $key => $val )
			{
				if ( !empty($key) && (!empty($val) || $force) )
				{
					$url_parms .= (empty($url_parms) ? '?' : '&') . $key . '=' . $val;
				}
			}
		}
		if ( !empty($fragments) )
		{
			$url_parms .= (empty($url_parms) ? '?#' : '#') . $fragments;
		}
		if ( $external && empty($script_path) )
		{
			$script_path = $this->get_script_path();
		}
		return ($external ? $script_path : (trim(substr($this->root, 0, 2) == './') && $add_sid ? substr($this->root, 2) : $this->root)) . $basename . '.' . $this->ext . $url_parms;
	}
Ich denke er wird so dem ./ .// etc. Problem Herr. Aber ich greife mit meinen SEOs genau auf die gleiche Funktion zu... dann schreibe ich um und dann wird die umgeschriebene Datei includet... und das geht in die Hose, weil z.B. include('test.html') nicht auf test.php zugreift :cry:

Verfasst: 12.10.2006 15:30
von Jensemann
Das kann schon alleine deswegen nicht funktionieren, weil include() keine Funktion ist. D.h. auch ein Wrapper der mein_include() oder so heisst würde nur begrenzt funktionieren, da man Probleme mit den Variablen bekommen würde die nicht global sind.

Verfasst: 12.10.2006 15:36
von mgutt
Ich frag ihn mal warum er auch nur einzelne includes vorher durch seine Funktion jagt. Sonst muss ich echt noch hingehen und alle Stellen für den Mod beschreiben. Dann kann ich das mit dem Veröffentlichen einer neuen Version auch gleich sein lassen :roll: