php.de

Zurück   php.de > Stellenangebote und Projektausschreibungen > Sonstige

Hinweise

Sonstige Suche nach Mithilfe an privaten oder Opensource-Projekten, Suche nach Gleichgesinnten zur Umsetzung neuer Ideen etc.

Antwort
 
LinkBack Themen-Optionen
Alt 30.07.2010, 14:45  
Benutzer
 
Registriert seit: 04.09.2009
Beiträge: 43
PHP-Kenntnisse:
Fortgeschritten
stuntman_mike ist zur Zeit noch ein unbeschriebenes Blatt
Standard code erklärung ... HTTP/CACHE etc.

Hi, das hier ist ein beispielcode von swfaddress, das ist eine library, die deep linking in flash-websites erlaubt.

Das Beispiel hier dient dazu, eine zu flash kompatible HTML-Seite auszuliefern, wenn der Flashplayer nicht installiert ist und von z.b. von
http://www.asual.com/swfaddress/samples/seo/#/contact/
auf
http://www.asual.com/swfaddress/samples/seo/contact/
umzuleiten, also die entsprechende HTML-adresse,
genauso umgekehrt, wenn der flashplayer aktiv ist, aber die HTML-Adresse eingegeben wurde.

Ich versteh leider nur die Hälfte von dem Code und raff nicht wirklich wie das funzt.

Z.B.
if ('application/x-swfaddress' == (isset($_SERVER['CONTENT_TYPE']) ? usw..

Hier wird scheinbar versucht zu erkennen, ob ein .swf-file aufgerufen wird oder ob der flashplayer installiert ist ?!
Ist mir echt schleierhaft.

Wenn jemand im Groben erklären könnte wie das Script funktioniert wäre ich echt dankbar.


PHP-Code:
<?php

    
// SWFAddress code fully compatible with Apache HTTPD

    
$swfaddress_value '/';
    
$swfaddress_path '/';
    
$swfaddress_parameters = array();
    
$swfaddress_content '';

    function 
is_msie() {
        return 
strstr(strtoupper($_SERVER['HTTP_USER_AGENT']), 'MSIE');
    }

    function 
swfaddress() {

        global 
$swfaddress_value$swfaddress_path$swfaddress_parameters$swfaddress_content;

        
$base swfaddress_base();

        
session_start();

        if (
'application/x-swfaddress' == (isset($_SERVER['CONTENT_TYPE']) ? $_SERVER['CONTENT_TYPE'] :
            (isset(
$_SERVER['HTTP_CONTENT_TYPE']) ? $_SERVER['HTTP_CONTENT_TYPE'] : ''))) {
            
$swfaddress_value preg_replace('/&hash=(.*)$/''#$1'$_SERVER['QUERY_STRING']);
            
$_SESSION['swfaddress'] = $swfaddress_value;
            echo(
'location.replace("' $base '/#' $swfaddress_value '")');
            exit();
        }

        if (isset(
$_SESSION['swfaddress'])) {
            
$swfaddress_value $_SESSION['swfaddress'];
            unset(
$_SESSION['swfaddress']);
        } else {
            
$page substr($_SERVER['PHP_SELF'], strrpos($_SERVER['PHP_SELF'], '/') + 1);
            
$swfaddress_value str_replace($base'', (strpos($page'.php') && $page != 'index.php') ? $_SERVER['REQUEST_URI'] : str_replace($page''$_SERVER['REQUEST_URI']));
        }

        
$query_string = (strpos($swfaddress_value'?')) ? substr($swfaddress_valuestrpos($swfaddress_value'?') + 1strlen($swfaddress_value)) : '';

        if (
$query_string != '') {
            
$swfaddress_path substr($swfaddress_value0strpos($swfaddress_value'?'));
            
$params explode('&'str_replace($swfaddress_path '?'''$swfaddress_value));
            for (
$i 0$i count($params); $i++) {
                
$pair explode('='$params[$i]);
                
$swfaddress_parameters[$pair[0]] = $pair[1];
            }
        } else {
            
$swfaddress_path $swfaddress_value;
        }

        
$url strtolower(array_shift(explode('/'$_SERVER['SERVER_PROTOCOL']))) . '://';
        
$url .= $_SERVER['SERVER_NAME'];
        
$url .= swfaddress_base() . '/datasource.php?swfaddress=' $swfaddress_path;
        
$url .= (strpos($swfaddress_value'?')) ? '&' substr($swfaddress_valuestrpos($swfaddress_value'?') + 1strlen($swfaddress_value)) : '';

        
$fh fopen($url'r');
        while (!
feof($fh)) {
            
$swfaddress_content .= fgets($fh4096);
        }
        
fclose($fh);

        if (
strstr($swfaddress_content'Status(')) {
            
$begin strpos($swfaddress_content'Status('0);
            
$end strpos($swfaddress_content')'$begin);
            
$status substr($swfaddress_content$begin 7$end $begin 7);
            if (
php_sapi_name() == 'cgi') {
                
header('Status: ' $status);
            } else {
                
header('HTTP/1.1 ' $status);
            }
        }

        if (
is_msie()) {

            
$if_modified_since = isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) ?
                
preg_replace('/;.*$/'''$_SERVER['HTTP_IF_MODIFIED_SINCE']) : '';

            
$file_last_modified filemtime($_SERVER['SCRIPT_FILENAME']);
            
$gmdate_modified gmdate('D, d M Y H:i:s'$file_last_modified) . ' GMT';

            if (
$if_modified_since == $gmdate_modified) {
                if (
php_sapi_name() == 'cgi') {
                    
header('Status: 304 Not Modified');
                } else {
                    
header('HTTP/1.1 304 Not Modified');
                }
                exit();
            }

            
header('Expires: ' gmdate('D, d M Y H:i:s'time() + 86400) . ' GMT');
            
header('Last-Modified: ' $gmdate_modified);
            
header('Cache-control: max-age=' 86400);
        }
     }

    function 
swfaddress_base() {
        return 
substr($_SERVER['PHP_SELF'], 0strrpos($_SERVER['PHP_SELF'], '/'));
    }

    function 
swfaddress_title($title) {
        if (!
is_msie()) {
            
$names swfaddress_path_names();
            for (
$i 0$i count($names); $i++) {
                
$title .= ' / ' strtoupper(substr($names[$i], 01)) . substr($names[$i], 1);
            }
        }
        echo(
$title);
    }

    function 
swfaddress_resource($resource) {
        echo(
swfaddress_base() . $resource);
    }

    function 
swfaddress_link($link) {
        echo(
swfaddress_base() . $link);
    }

    function 
swfaddress_content() {
        global 
$swfaddress_content;
        echo(
$swfaddress_content);
    }

    function 
swfaddress_path() {
        global 
$swfaddress_path;
        return 
$swfaddress_path;
    }

    function 
swfaddress_path_names() {
        global 
$swfaddress_path;
        
$names explode('/'$swfaddress_path);
        if (
substr($swfaddress_path01) == '/')
            
array_splice($names01);
        if (
substr($swfaddress_pathcount($swfaddress_path) - 11) == '/')
            
array_splice($namescount($names) - 11);
        return 
$names;
    }

    function 
swfaddress_optimizer($resource) {
        global 
$swfaddress_value;
        
$base swfaddress_base();
        echo(
$base $resource . (strstr($resource'?') ? '&amp;' '?') . 'swfaddress=' urlencode($swfaddress_value) . '&amp;base=' urlencode($base));
    }

    
swfaddress();

?> 
HIER KOMMT DANN DIE HTML-SEITE
stuntman_mike ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 30.07.2010, 14:48  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 34.241
PHP-Kenntnisse:
Fortgeschritten
nikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz sein
Standard

Wir sind aber nicht der Erklärbär. Erst recht nicht für Fremdprodukte. Erst recht nicht im FG-Forum.


[MOD: verschoben]
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Antwort


Themen-Optionen

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Probleme mit PHP Code HappyDieMuschel PHP Tipps 2008 7 28.05.2008 06:34
[Erledigt] PHP Code aus Datenbank ayti PHP Tipps 2008 8 26.05.2008 19:40
Design und Code Trennen TeazY PHP Tipps 2008 29 21.05.2008 12:08
Nur bestimmten Html Code zulassen? litterauspirna PHP Tipps 2008 5 29.04.2008 12:30
einfacher Code zum Einbinden von "Inhaltsbereichen" MaxDittmann PHP-Fortgeschrittene 6 01.10.2007 15:54
FiFo macht Probs beim Css Code Matthiasnet HTML, Usability und Barrierefreiheit 10 18.08.2006 13:14
PHP: Wie parst der Server den Code am schnellsten? SvenLittkowski PHP Tipps 2007 4 17.12.2005 10:58
bb code in htm code wandeln janni PHP Tipps 2007 2 04.11.2005 22:36
JS Code in PHP Code?? HTML, Usability und Barrierefreiheit 12 08.08.2005 15:45
Seite 1/2/3..Code was haltet ihr davon? Matthiasnet PHP Tipps 2005-2 4 29.07.2005 20:29
[Erledigt] Lesbarkeit von Code Off-Topic Diskussionen 6 14.07.2005 14:48
code aus db mit eval replacen chief-thomson PHP Tipps 2005-2 4 08.07.2005 15:33
code verstecken Skazi PHP Tipps 2005 4 19.01.2005 13:51
[Erledigt] bb code innerhalb von bb code geht nicht PHP Tipps 2007 2 12.01.2005 17:29
Problem mit COde PHP Tipps 2004 5 28.08.2004 16:04

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
erklärung http, swfaddress feof(), flash swfaddress erklärung, swfaddress code fully compatible with apache httpd, $swfaddress_value = preg_replace(\'/&hash=(.*)$/\', \'#$1\', $_server[\'query_string\']);, php code erklärung, swfaddress localtion.replace, application/x-swfaddress not working, strstr erklärung, swfaddress_path_names

Alle Zeitangaben in WEZ +1. Es ist jetzt 05:38 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum