kostenloser Webspace werbefrei: lima-city


Suche auf lima-city

  • in: Verzeichnis-Struktur in Array ablegen ?

    geschrieben von incdesign

    Danke ... gute Idee mit glob()
    ... aber nur fast ... :)

    wenn ein Ordner leer ist (keine Dateien drin) dann ist $files kein Array

    Fehlermeldung:
    Warning: array_merge() .... Argument #2 is not an array ...


    also noch mit Erweiterung um die Kleinigkeit:

    if (!$files) { $files = array(); }  // --------- diese Zeile ist neu 
    $tree = array_merge($tree, $files);


    dann bekommt man leere Verzeichnisse als leeres Array ohne Fehlermeldung.
  • in: Verzeichnis-Struktur in Array ablegen ?

    geschrieben von incdesign

    ja Super, Danke

    eigentlich ja ganz einfach, ich stand nur irgendwie auf dem Sclauch
    hatte die Vorgehensweise ja eigentlich schon
    incdesign schrieb:
    ... wenn Ordner, dann dessen Inhalte als Sub-Array ...


    aber ich bin da viel zu kompliziert dran gegenagen
    also einfach direkt das umsetzen ... wenn Ordner, dann als Array ... :)

    ... sowas nennt man dann doch: "rekrisiver Funktionsaufruf" ?!

    Jetzt bin ich aber noch drauf gekommen, das es evtl. doch nicht so gut ist,
    wenn die Ordner-/Datei- Namen als KEY im Array stehen,

    also besser wäre wohl eine Struktur, die keine "Werte" als KEY hat.
    sonden nur "nummeriche" Keys (int) .... aber das ist auch nicht ohne .. oO
    ... einfach Ebene als Key nehmen geht nicht,
    weil ja pro Ebene auch mehrere Unterordner drin sein können


  • in: PHP-Function regelmäßig ausführen

    geschrieben von incdesign

    also ich habe den Code auch mal ausprobiert,
    bei mir klappt es (alle 5 Sekunden neue Zahl)
    sowohl im FF als auch im IE

    hast Du evtl. JavaScript deaktiviert an Deinem Computer ?

    oder hat Dein Browser / Webspace Cacheing aktiviert ?

    Cacheing am Webspace "deaktivieren" kannst Du über .htaccess

    Header set Cache-Control "must-revalidate, no-store, no-cache, max-age=0, pre-check=0, post-check=0"
    Header set Pragma "no-cache"


    Es geht auch ohne jQuery (obwohl das nicht schlecht ist)

    .... direkt mit Ajax ... jetzt mal alle 3 Sekunden

    <html>
    <head>
    <title>TEST</title>
    
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    
    
    <script type="text/javascript">
    
    function ajax_reload() {
    	var xmlhttp;
    	
    	if (window.XMLHttpRequest) { xmlhttp=new XMLHttpRequest(); }
    	else { xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); }
    	
    	xmlhttp.onreadystatechange=function() { 
    		if (xmlhttp.readyState==4 && xmlhttp.status==200) { 
    			document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
    		}
    	}
    	
    	var millisec = new Date().getTime();
    	
    	xmlhttp.open("GET","reload1.php?ms=" + millisec + "",true);
    	xmlhttp.send();
    }
    
    // ----- set refresh-time in seconds
    var seconds = 3; 
    
    // ---- convert to milliseconds 
    var runinms = (seconds*1000); 
    
    // ----- refresh after xxx (milli-)seconds 
    var set_interval = setInterval( ajax_reload, runinms);
    
    // ----- first run when document is ready 
    window.onload = ajax_reload; 
    
    
    </script>
    
    
    
    <style type="text/css">
    <!--
    
    body {
    	background: #FFFFFF;
    	color: #000000;
    }
    
    #myDiv {
    	font-family: "Times New Roman", Times, serif;
    	font-size: 22px;
    	color: #003366;
    	text-align: center;
    	margin: 0 auto;
    	padding: 8px;
    	width: 60px;
    	height: 30px;
    	background: #AACCFF;
    	border: 1px solid #33AA00;
    }
    -->
    </style>
    
    </head>
    
    <body>
    
    <br>
    <br>
    
    <div style="text-align: center;">
    	<div style="margin: 0 auto; padding:6px; width:90px; height:50px; background:#AAFF99;">
    		<div id="myDiv">&nbsp;</div>
    	</div>
    </div>
    
    <br>
    <br>
    
    </body>
    </html>


    das Anhängen der Millisekunden mit GET Parameter (hier: "?ms=") an reload1.php
    bewirkt, dass jeder Aufruf eine eindeutige URL ist, um evtl. Cacheing zu verhindern

    ist quasi eine Alternative zur Cache-Vermeidung
    zu dem oben genannten Eintrag in eine .htaccess Datei

  • in: Mehrfach-Elemente in RSS item ?

    geschrieben von incdesign

    naja ... andere (bessere) XML Struktur wäre gut,
    aber wenn man externe RSS-Quellen auslesen will,
    dann kann man ja nicht die XML-Struktur ändern, da muss man nehmen was ankommt.
    ... zumal auch Wordpress RSS diese mehrfachen <category> Elemente in <item> leifert.

    Idee wäre zu Prüfen, ob ein Element mind. ein zweites mal vorkommt,
    und wenn ja, dann diese zweite foreach() darauf anwenden.

    Hier mal mein Workaround mit dem Beispiel:

    (1) Der Inhalt der Datei: test1.rss

    <?xml version="1.0" encoding="UTF-8"?>
    <rss version="2.0">
    
    <channel>
    	<title>Name der Seite</title>
    	<link>http://example.org</link>
    	<description>Berichte und Artikel</description>
    	<lastBuildDate>Fri, 05 Apr 2013 11:51:37 +0000</lastBuildDate>
    	<language>de-DE</language>
    	
    	<item>
    		<title>Irgend ein Artikel</title>
    		<link>http://example.org/index.php?page=116</link>
    		<pubDate>Fri, 05 Apr 2013 11:51:37 +0000</pubDate>
    		<category><![CDATA[Artikel]]></category>
    		<category><![CDATA[Internet]]></category>
    		<category><![CDATA[Sonstiges]]></category>
    		<category><![CDATA[Lesestoff]]></category>
    		<guid>116</guid>
    		<description><![CDATA[Bla blabla blablabla bla blabla blablabla]]></description>
    	</item>
    	
    	<item>
    		<title>Noch so ein Bericht</title>
    		<link>http://example.org/index.php?page=115</link>
    		<pubDate>Fri, 04 Apr 2013 16:21:47 +0000</pubDate>
    		<keywrd><![CDATA[Berichte]]></keywrd>
    		<keywrd><![CDATA[Unbekannt]]></keywrd>
    		<keywrd><![CDATA[Allgemein]]></keywrd>
    		<keywrd><![CDATA[Laberzeug]]></keywrd>
    		<guid>115</guid>
    		<description><![CDATA[Blubber blubb blubbblubb blubb blubber blubb]]></description>
    	</item>
    	
    	<item>
    		<title>Noch Mehr davon</title>
    		<link>http://example.org/index.php?page=114</link>
    		<pubDate>Fri, 04 Apr 2013 15:31:42 +0000</pubDate>
    		<category><![CDATA[Ganz Alleine]]></category>
    		<guid>114</guid>
    		<description><![CDATA[Lalelu lalla la lalelu la lalala Lalelu la]]></description>
    	</item>
    
    </channel>
    
    </rss>



    (2) Der PHP-Code (Workaround)

    <?php 
    // ------------------------------------------------------- 
    header("Content-Type: text/html; charset=utf-8"); 
    // ------------------------------------------------------- 
    
    $sourceurl = 'test1.rss'; 
    
    $xmlobject = simplexml_load_file($sourceurl, 'SimpleXMLElement', LIBXML_NOCDATA);
    
    $resultarr = array(); 
    
    // ------------------------------------------------------- 
    
    $i=0; 
    foreach ($xmlobject->channel->item as $item) {
    	
    	foreach ($item as $key => $val) { 
    			if (isset($resultarr[$i][$key]) && !is_array($resultarr[$i][$key])) { 
    				$subarr = array();
    				foreach($item->$key as $subval) { $subarr[] = (string)$subval; } 
    				$resultarr[$i][$key] = (array)$subarr; 
    			}
    			else { 
    				$resultarr[$i][$key] = (string)$val; 
    			} 
    	}
    	
    	$i++; 
    }
    
    // ------------------------------------------------------- 
    
    
    print "<br />\n";
    print "<br />\n";
    print "<br /> --------- DEBUG --- \$resultarr --------- \n";
    print "<br />\n";
    print "<br />\n";
    
    print "<pre style=\"background:#DEDEDE;\">\n";
    print_r($resultarr); 
    print "</pre>\n";
    
    print "<br />\n";
    print "<br />\n";
    print "<br />\n";
    
    // ------------------------------------------------------- 
    ?>




    (3) Die Ausgabe --------- DEBUG --- $resultarr ---------

    Array
    (
        [0] => Array
            (
                [title] => Irgend ein Artikel
                [link] => http://example.org/index.php?page=116
                [pubDate] => Fri, 05 Apr 2013 11:51:37 +0000
                [category] => Array
                    (
                        [0] => Artikel
                        [1] => Internet
                        [2] => Sonstiges
                        [3] => Lesestoff
                    )
    
                [guid] => 116
                [description] => Bla blabla blablabla bla blabla blablabla
            )
    
        [1] => Array
            (
                [title] => Noch so ein Bericht
                [link] => http://example.org/index.php?page=115
                [pubDate] => Fri, 04 Apr 2013 16:21:47 +0000
                [keywrd] => Array
                    (
                        [0] => Berichte
                        [1] => Unbekannt
                        [2] => Allgemein
                        [3] => Laberzeug
                    )
    
                [guid] => 115
                [description] => Blubber blubb blubbblubb blubb blubber blubb
            )
    
        [2] => Array
            (
                [title] => Noch Mehr davon
                [link] => http://example.org/index.php?page=114
                [pubDate] => Fri, 04 Apr 2013 15:32:42 +0000
                [category] => Ganz Alleine
                [guid] => 114
                [description] => Lalelu lalla la lalelu la lalala Lalelu la
            )
    
    )



    sieht doch ganz gut aus ... :=) ...
    das $resultarr liefert die Mehrfach-Elemente als Array, wie gewünscht
    und wenn doch nur einzeln, dann direkt als String (siehe $resultarr[2] )


  • in: Verzeichnis-Struktur in Array ablegen ?

    geschrieben von incdesign

    Hallo

    Ich habe eine Verzeichnis-Struktur wie z.B:
    (Order gekennzeichnet durch » davor)

    » /
        _old_index.html
        dirinfo1.php
        index.php
        test1.php
        » testdir1/
            test2.php
            test3.php
            » testdir2/
                test4.php
                » testdir4/
                    test6.php
                    test7.php
        » testdir3/
            test5.php
    ...


    jetzt möchte ich diese Struktur in ein multidimensionales Array ablegen
    also so, dass wenn Ordner, dann dessen Inhalte als Sub-Array

    ich habe eine Funktion, die mir zwar die Verzeichnis-Struktur einliest,
    aber nur in ein ein-dimensionales Array mit key = vollständiger Verzeichnis-Pfad

    <?php 
    // -------------------------------------------------- 
    
    function listFolder($dir, $level=1, $dirdata=array()) { 
    
    	$exclude = array('.htaccess', 'geheim.php'); 
    
    	$ffsx = scandir($dir);
    
    	foreach($ffsx as $ff){
    		if(is_array($exclude) and !in_array($ff,$exclude)){
    			if($ff != '.' && $ff != '..') {
    				if(!is_dir($dir.'/'.$ff)){ 
    					$godir = ltrim($dir,'./'); 
    					
    					if ($level == 1) { $dirdata['home'][] = $godir.'/'.$ff; }
    								else { $dirdata[$godir][] = $godir.'/'.$ff; } 
    					
    				} else {
    					$level++; 
    					$dirdata = listFolder($dir.'/'.$ff, $level, $dirdata); 
    					$level--;
    				} 
    			} 
    		}
    	}
    
    	return $dirdata; 
    } 
    
    // -------------------------------------------------- 
    
    $path = '.'; 
    
    $dirinfo = listFolder($path); 
    
    // -------------------------------------------------- 
    
    print "<pre style=\"margin:4px; padding:6px; background:#DEDEDE; text-align:left;\">\n"; 
    print_r($dirinfo); 
    print "</pre>\n";
    
    // -------------------------------------------------- 
    ?>


    die Ausgabe davon ist:

    Array
    (
        [home] => Array
            (
                [0] => /_old_index.html
                [1] => /dirinfo1.php
                [2] => /index.php
                [3] => /test1.php
            )
    
        [testdir1] => Array
            (
                [0] => testdir1/test2.php
                [1] => testdir1/test3.php
            )
    
        [testdir1/testdir2] => Array
            (
                [0] => testdir1/testdir2/test4.php
            )
    
        [testdir1/testdir2/testdir4] => Array
            (
                [0] => testdir1/testdir2/testdir4/test6.php
                [1] => testdir1/testdir2/testdir4/test7.php
            )
    
        [testdir3] => Array
            (
                [0] => testdir3/test5.php
            )
    
    )



    ich hätte aber gerne ein mehrdimensionales Array, das die Struktur in den Array-Ebenen abbildet,
    ich komme aber nicht drauf, wie ich das machen soll ...

    ... irgendwie mit
    $dirparts = explode('/',$godir);
    ... Struktur aufdröseln, ... aber dann ?!?


    Das Ergebnis soll in Etwa so aussehen:

    Array
    (
     [home] => Array 
    	(
    	[0] => _old_index.html
    	[1] => dirinfo1.php
    	[2] => index.php
    	[3] => test1.php
    	[testdir1] => Array 
    		(
    		[0] => test2.php
    		[1] => test3.php
    		[testdir2] => Array 
    			(
    			[0] => test4.php
    			[testdir4] => Array 
    				(
    				[0] => test6.php
    				[1] => test7.php
    				)
    			)
    		)
    	[testdir3] => Array 
    		(
    		[0] => test5.php
    		)
    	)
    )


    so oder auch ähnlich,
    hauptsache die Struktur der Verzeichnisse wird im Array als Ebenen abgebildet.


    ich hoffe da kann mir jemand dabei helfen,
    wie ich aus der Verzeichnis-Struktur ein multidimensionalen Array erstellen kann ... ?

    Danke!

Login zum Webhosting ohne Werbung!