tag:forum.selfhtml.org,2005:/self
Mit PHP Bild-Daten aus einem Ordner auslesen – SELFHTML-Forum
2017-10-15T21:51:57Z
https://forum.selfhtml.org/self/2017/oct/12/mit-php-bild-daten-aus-einem-ordner-auslesen/1706073#m1706073
einsiedler
2017-10-12T03:26:38Z
2017-10-12T03:33:34Z
Mit PHP Bild-Daten aus einem Ordner auslesen
<p>Ich sollte lieber in`s Bett gehen... irgendwie begreif ich jetzt gar nix mehr…
Folgendes:</p>
<pre><code class="block language-php"><span class="token php language-php"><span class="token delimiter important"><?php</span>
<span class="token variable">$i</span> <span class="token operator">=</span> <span class="token number">0</span><span class="token punctuation">;</span>
<span class="token variable">$verzeichnis</span> <span class="token operator">=</span> <span class="token string double-quoted-string">"img/"</span><span class="token punctuation">;</span>
<span class="token variable">$handle</span> <span class="token operator">=</span> <span class="token function">openDir</span><span class="token punctuation">(</span><span class="token variable">$verzeichnis</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">while</span> <span class="token punctuation">(</span><span class="token variable">$datei</span> <span class="token operator">=</span> <span class="token function">readDir</span><span class="token punctuation">(</span><span class="token variable">$handle</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
<span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token variable">$datei</span> <span class="token operator">!=</span> <span class="token string double-quoted-string">"."</span> <span class="token operator">&&</span> <span class="token variable">$datei</span> <span class="token operator">!=</span> <span class="token string double-quoted-string">".."</span> <span class="token operator">&&</span> <span class="token operator">!</span><span class="token function">is_dir</span><span class="token punctuation">(</span><span class="token variable">$datei</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
<span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token function">strstr</span><span class="token punctuation">(</span><span class="token variable">$datei</span><span class="token punctuation">,</span> <span class="token string double-quoted-string">".gif"</span><span class="token punctuation">)</span> <span class="token operator">||</span> <span class="token class-name">strstr</span><span class="token punctuation">(</span><span class="token variable">$datei</span><span class="token punctuation">,</span> <span class="token string double-quoted-string">".png"</span><span class="token punctuation">)</span> <span class="token operator">||</span> <span class="token class-name">strstr</span><span class="token punctuation">(</span><span class="token variable">$datei</span><span class="token punctuation">,</span> <span class="token string double-quoted-string">".jpg"</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
<span class="token variable">$verzeichnis_datei</span> <span class="token punctuation">[</span><span class="token variable">$i</span><span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token variable">$verzeichnis</span> <span class="token operator">.</span> <span class="token variable">$datei</span><span class="token punctuation">;</span>
<span class="token variable">$verzeichnis_datei</span> <span class="token punctuation">[</span><span class="token variable">$i</span><span class="token punctuation">]</span> <span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token function">getImageSize</span><span class="token punctuation">(</span><span class="token variable">$verzeichnis_datei</span> <span class="token punctuation">[</span><span class="token variable">$i</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">echo</span> <span class="token string double-quoted-string">"<img src=\"<span class="token interpolation"><span class="token variable">$verzeichnis_datei</span><span class="token punctuation">[</span><span class="token variable">$i</span><span class="token punctuation">]</span></span>\" width=\"<span class="token interpolation"><span class="token variable">$verzeichnis_datei</span></span> [<span class="token interpolation"><span class="token variable">$i</span></span>] [0] [0]\" height=\"<span class="token interpolation"><span class="token variable">$verzeichnis_datei</span></span> [<span class="token interpolation"><span class="token variable">$i</span></span>] [0] [1]\"> <br>\n"</span><span class="token punctuation">;</span>
<span class="token variable">$i</span><span class="token operator">++</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
<span class="token function">closeDir</span><span class="token punctuation">(</span><span class="token variable">$handle</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token delimiter important">?></span></span>
</code></pre>
<p>Ja, es scheint ganz einfach, aber es läuft nicht…</p>
<p>Ich möchte schlicht A) ein Ordnerverzeichnis mit Bildern auslesen…</p>
<p>(Achso und das genau der Reihenfolge nach, ich hab sie mit A__Demobild, B__Demobild,
C__Demobild, D__Demobild... sortiert hochgeladen und so sollten sie auch erscheinen.</p>
<p>B) Den Bildtitel ins Array $verzeichnis_datei [$i] speichern</p>
<p>C) Die Bildinformationen / Grössen in ein weiteres Array $verzeichnis_datei [$i] [1]
(Also die Breite und Höhe)</p>
<p>Und C) kommt nocht ein weiteres Array $verzeichnis_datei [$i] [2] hinzu…</p>
<p>Aber irgendwie bin ich grad zu doof dafür.... irgendwie.…</p>
<p>Erstmal gute N8 der einsiedelnde</p>
https://forum.selfhtml.org/self/2017/oct/12/mit-php-bild-daten-aus-einem-ordner-auslesen/1706074#m1706074
MudGuard
http://www.andreas-waechter.de/
2017-10-12T04:01:51Z
2017-10-12T04:01:51Z
Mit PHP Bild-Daten aus einem Ordner auslesen
<p>Hi,</p>
<blockquote>
<p>echo "<img src="$verzeichnis_datei[$i]" width="$verzeichnis_datei [$i] [0] [0]" height="$verzeichnis_datei [$i] [0] [1]"> <br>\n";</p>
</blockquote>
<p>Entweder mehrere Werte an echo kommmagetrennt übergeben:</p>
<p>echo "<img src="", $verzeichnis_datei[$i], "" width="", …</p>
<p>oder, weil's nicht nur einfache Variablen sind, mit {} arbeiten:</p>
<p>echo "<img src="${verzeichnis_datei[$i]}, " width=" …</p>
<p>(wobei ich grad nicht sicher bin, ob's ${bla[x]} oder {$bla[x]} sein muß)</p>
<p>cu,<br>
Andreas a/k/a MudGuard</p>
https://forum.selfhtml.org/self/2017/oct/12/mit-php-bild-daten-aus-einem-ordner-auslesen/1706082#m1706082
dedlfix
2017-10-12T06:40:55Z
2017-10-12T06:40:55Z
Mit PHP Bild-Daten aus einem Ordner auslesen
<p>Tach!</p>
<blockquote>
<pre><code class="block language-php"><span class="token php language-php"><span class="token delimiter important"><?php</span>
<span class="token variable">$i</span> <span class="token operator">=</span> <span class="token number">0</span><span class="token punctuation">;</span>
<span class="token variable">$verzeichnis</span> <span class="token operator">=</span> <span class="token string double-quoted-string">"img/"</span><span class="token punctuation">;</span>
<span class="token variable">$handle</span> <span class="token operator">=</span> <span class="token function">openDir</span><span class="token punctuation">(</span><span class="token variable">$verzeichnis</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">while</span> <span class="token punctuation">(</span><span class="token variable">$datei</span> <span class="token operator">=</span> <span class="token function">readDir</span><span class="token punctuation">(</span><span class="token variable">$handle</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
<span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token variable">$datei</span> <span class="token operator">!=</span> <span class="token string double-quoted-string">"."</span> <span class="token operator">&&</span> <span class="token variable">$datei</span> <span class="token operator">!=</span> <span class="token string double-quoted-string">".."</span> <span class="token operator">&&</span> <span class="token operator">!</span><span class="token function">is_dir</span><span class="token punctuation">(</span><span class="token variable">$datei</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
<span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token function">strstr</span><span class="token punctuation">(</span><span class="token variable">$datei</span><span class="token punctuation">,</span> <span class="token string double-quoted-string">".gif"</span><span class="token punctuation">)</span> <span class="token operator">||</span> <span class="token class-name">strstr</span><span class="token punctuation">(</span><span class="token variable">$datei</span><span class="token punctuation">,</span> <span class="token string double-quoted-string">".png"</span><span class="token punctuation">)</span> <span class="token operator">||</span> <span class="token class-name">strstr</span><span class="token punctuation">(</span><span class="token variable">$datei</span><span class="token punctuation">,</span> <span class="token string double-quoted-string">".jpg"</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
<span class="token variable">$verzeichnis_datei</span> <span class="token punctuation">[</span><span class="token variable">$i</span><span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token variable">$verzeichnis</span> <span class="token operator">.</span> <span class="token variable">$datei</span><span class="token punctuation">;</span>
<span class="token variable">$verzeichnis_datei</span> <span class="token punctuation">[</span><span class="token variable">$i</span><span class="token punctuation">]</span> <span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token function">getImageSize</span><span class="token punctuation">(</span><span class="token variable">$verzeichnis_datei</span> <span class="token punctuation">[</span><span class="token variable">$i</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">echo</span> <span class="token string double-quoted-string">"<img src=\"<span class="token interpolation"><span class="token variable">$verzeichnis_datei</span><span class="token punctuation">[</span><span class="token variable">$i</span><span class="token punctuation">]</span></span>\" width=\"<span class="token interpolation"><span class="token variable">$verzeichnis_datei</span></span> [<span class="token interpolation"><span class="token variable">$i</span></span>] [0] [0]\" height=\"<span class="token interpolation"><span class="token variable">$verzeichnis_datei</span></span> [<span class="token interpolation"><span class="token variable">$i</span></span>] [0] [1]\"> <br>\n"</span><span class="token punctuation">;</span>
<span class="token variable">$i</span><span class="token operator">++</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
<span class="token function">closeDir</span><span class="token punctuation">(</span><span class="token variable">$handle</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token delimiter important">?></span></span>
</code></pre>
</blockquote>
<p>Den Code kann man bei Verwendung von <a href="http://php.net/manual/en/function.glob.php" rel="noopener noreferrer">glob()</a> (zusammen mit foreach) deutlich verschlanken und vereinfachen. glob() sortiert ja nach Flag auch alphabetisch oder liest in der Reihenfolge im Verzeichnis aus. Letztere ist aber nicht garantiert.</p>
<p>Brauchst du überhaupt das Array, beispielsweise für eine nachfolgende Aufgabe? Wenn nicht, dann nimm einfache Variablen für Dinge, die nur für den jeweiligen Schleifendurchlauf zwischenzuspeichern sind. Wenn ja, wäre es sinnvoll, die Array-Variable einmalig mit einem leeren Array vorzubelegen und sich nicht darauf zu verlassen, dass sie nicht existiert.</p>
<p>dedlfix.</p>
https://forum.selfhtml.org/self/2017/oct/12/mit-php-bild-daten-aus-einem-ordner-auslesen/1706085#m1706085
Rolf B
2017-10-12T07:27:30Z
2017-10-12T09:06:00Z
Mit PHP Bild-Daten aus einem Ordner auslesen
<p>Hallo einsiedler,</p>
<blockquote>
<p>Ich sollte lieber in`s Bett gehen...</p>
</blockquote>
<p class="bad">Hoffe, du hast gut geschlafen :)</p>
<pre><code class="block language-php"> <span class="token variable">$verzeichnis_datei</span> <span class="token punctuation">[</span><span class="token variable">$i</span><span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token variable">$verzeichnis</span> <span class="token operator">.</span> <span class="token variable">$datei</span><span class="token punctuation">;</span>
<span class="token variable">$verzeichnis_datei</span> <span class="token punctuation">[</span><span class="token variable">$i</span><span class="token punctuation">]</span> <span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token function">getImageSize</span><span class="token punctuation">(</span><span class="token variable">$verzeichnis_datei</span> <span class="token punctuation">[</span><span class="token variable">$i</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
</code></pre>
<p>Das kann prinzipiell nicht funktionieren. Die erste Zeile weist dem Array an $i-ter Stelle einen String zu, der den vollständigen Dateinamen beschreibt. Die zweite Zeile würde nun versuchen, diesem String an Position 0 die Bildgröße zuzuweisen. Ich weiß gar nicht, ob Strings auf diese Weise indexierbar sind - jedenfalls ist das nicht das, was Du brauchst. Du kannst einem String keine zusätzlichen Eigenschaften anhängen.</p>
<p>Was du brauchst, ist ein gemeinsamer Container für alle Eigenschaften der Datei, also Name, getImageSize-Ergebnis, und diese weitere Info von der Du sprachst. Den kannst Du auf 3 Arten umsetzen:</p>
<ul>
<li>Du schreibst ein eigenes Objekt</li>
<li>Du verwendet ein Array mit numerischen Indizes</li>
<li>Du verwendest ein assoziatives Array</li>
</ul>
<p>Mit einem assoziativen Array sähe es so aus:</p>
<pre><code class="block language-php"><span class="token keyword">while</span> <span class="token punctuation">(</span><span class="token variable">$datei</span> <span class="token operator">=</span> <span class="token function">readDir</span><span class="token punctuation">(</span><span class="token variable">$handle</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
<span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token variable">$datei</span> <span class="token operator">!=</span> <span class="token string double-quoted-string">"."</span> <span class="token operator">&&</span> <span class="token variable">$datei</span> <span class="token operator">!=</span> <span class="token string double-quoted-string">".."</span> <span class="token operator">&&</span> <span class="token operator">!</span><span class="token function">is_dir</span><span class="token punctuation">(</span><span class="token variable">$datei</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
<span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token function">strstr</span><span class="token punctuation">(</span><span class="token variable">$datei</span><span class="token punctuation">,</span> <span class="token string double-quoted-string">".gif"</span><span class="token punctuation">)</span> <span class="token operator">||</span> <span class="token class-name">strstr</span><span class="token punctuation">(</span><span class="token variable">$datei</span><span class="token punctuation">,</span> <span class="token string double-quoted-string">".png"</span><span class="token punctuation">)</span> <span class="token operator">||</span> <span class="token class-name">strstr</span><span class="token punctuation">(</span><span class="token variable">$datei</span><span class="token punctuation">,</span> <span class="token string double-quoted-string">".jpg"</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
<span class="token variable">$entry</span> <span class="token operator">=</span> <span class="token punctuation">[</span>
<span class="token string single-quoted-string">'name'</span> <span class="token operator">=></span> <span class="token variable">$verzeichnis</span> <span class="token operator">.</span> <span class="token variable">$datei</span><span class="token punctuation">,</span>
<span class="token string single-quoted-string">'groesse'</span> <span class="token operator">=></span> <span class="token function">getImageSize</span><span class="token punctuation">(</span><span class="token variable">$verzeichnis_datei</span> <span class="token punctuation">[</span><span class="token variable">$i</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">,</span>
<span class="token string single-quoted-string">'dings'</span> <span class="token operator">=></span> <span class="token string single-quoted-string">'bums'</span>
<span class="token punctuation">]</span><span class="token punctuation">;</span>
<span class="token keyword">echo</span> <span class="token string double-quoted-string">"<img src=\"<span class="token interpolation"><span class="token punctuation">{</span><span class="token variable">$entry</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'name'</span><span class="token punctuation">]</span><span class="token punctuation">}</span></span>\" width=\"<span class="token interpolation"><span class="token punctuation">{</span><span class="token variable">$entry</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'groesse'</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">}</span></span>\" height=\"<span class="token interpolation"><span class="token punctuation">{</span><span class="token variable">$entry</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'groesse'</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span><span class="token punctuation">}</span></span>\"> <br>\n"</span><span class="token punctuation">;</span>
<span class="token variable">$verzeichnis</span><span class="token punctuation">[</span><span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token variable">$entry</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
</code></pre>
<p>Zu beachten dabei:</p>
<ul>
<li>
<p><code>$hugo = [ 1, 2, 3 ]</code> erzeugt ein Array mit numerischen Indizes.</p>
</li>
<li>
<p><code>$otto = [ 'a'=>1, 'b'=>2, 'c'=>3 ]</code> erzeugt ein Array ohne numerische Indizes, die Werte werden namentlich über $otto['a'], $otto['b'], $otto['c'] angesprochen. Das ist ein assoziatives Array.</p>
</li>
<li>
<p><code>'dings' => 'bums'</code> steht für diese weiteren Werte, von denen du sprachst…</p>
</li>
<li>
<p>Assoziative Arrays und indizierte Arrays kann man beliebig ineinander schachteln, deswegen greift <code>$entry['groesse'][2]</code> im aktuell gebauten Eintrag auf den Schlüssel 'groesse' zu und darin auf den 3. Wert, den getImageSize geliefert hat.</p>
</li>
<li>
<p>Man kann Werte automatisch ans Ende eines Arrays anhängen, indem man $verzeichnis[] = $entry schreibt. Deswegen habe ich den neuen Eintrag erstmal in $entry erzeugt, diesen Wert dann für den echo verwendet und ihn zum Schluss ins Ergebnisarray gehängt. Ist kompakter.</p>
</li>
<li>
<p>Bemerkung am Rande: Ein Array kann numerische UND alphabetische Indexe gleichzeitig haben. count($array) zählt meines Wissens beide Arten von Einträgen.</p>
</li>
<li>
<p>Will man auf ein solches Array per String Parsing zugreifen (also "Hallo $welt" und ähnliches), funktioniert die einfache Syntax nicht mehr, man braucht die "komplexe Syntax", wie das PHP Handbuch es nennt. Meint: Ein solcher Array-Zugriff muss in geschweifte Klammern gesetzt werden, sonst weiß PHP nicht, wo die Welt beginnt und endet.</p>
</li>
</ul>
<p><em>Rolf</em></p>
<div class="signature">-- <br>
sumpsi - posui - clusi
</div>
https://forum.selfhtml.org/self/2017/oct/12/mit-php-bild-daten-aus-einem-ordner-auslesen/1706094#m1706094
TS
ts-self@online.de
https://bitworks.de
2017-10-12T09:34:43Z
2017-10-12T09:34:43Z
Mit PHP Bild-Daten aus einem Ordner auslesen
<p>Hello,</p>
<blockquote>
<pre><code class="block language-php"><span class="token php language-php"><span class="token delimiter important"><?php</span>
<span class="token variable">$i</span> <span class="token operator">=</span> <span class="token number">0</span><span class="token punctuation">;</span>
<span class="token variable">$verzeichnis</span> <span class="token operator">=</span> <span class="token string double-quoted-string">"img/"</span><span class="token punctuation">;</span>
<span class="token variable">$handle</span> <span class="token operator">=</span> <span class="token function">openDir</span><span class="token punctuation">(</span><span class="token variable">$verzeichnis</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
</span></code></pre>
</blockquote>
<p>##Fehlerhandlung fehlt</p>
<blockquote>
<p>while ($datei = readDir($handle)) {</p>
</blockquote>
<p>##Du besorgst hier Dateinamen. Bei einer Datei mit Namen "0" wäre hier Ende!</p>
<blockquote>
<p>if ($datei != "." && $datei != ".." && !is_dir($datei)) {</p>
</blockquote>
<h4>hier wird im Prinzip doppelt geprüft, ob es sich um ein Verzeichnis handelt.</h4><p>##Du könntest mit "is_file()" prüfen, das schließt aber auch symbolische Links mit ein, was hier aber unschädlich sein sollte, da Du keine rekursive Abfrage durchführst.</p>
<blockquote>
<p>if (strstr($datei, ".gif") || strstr($datei, ".png") || strstr($datei, ".jpg")) {
$verzeichnis_datei [$i] = $verzeichnis . $datei;
$verzeichnis_datei [$i] [0] = getImageSize($verzeichnis_datei [$i]);</p>
</blockquote>
<h4>ich würde dann lieber mittels <a href="http://php.net/manual/en/function.stristr.php" rel="noopener noreferrer">stristr()</a> prüfen, um auch andere Schreibweisen für die Endungen zu ermöglichen ".Jpg, .JPG, ...). Das ist hier aber eigentlich ohnehin die falsche Funktion, denn Du willst doch wissen, wie die ENDUNG lautet, und nicht, ob ".jpg" irgendwo in der Mitte vorkommt.</h4><p>##Nimm deshalb lieber <code>if (strtolower([substr(](http://sg2.php.net/manual/en/function.substr.php)$datei,-4) == '.jpg'))</code> oder eine ähnliche Konstruktion.</p>
<blockquote>
<p>echo "<img src="$verzeichnis_datei[$i]" width="$verzeichnis_datei [$i] [0] [0]" height="$verzeichnis_datei [$i] [0] [1]"> <br>\n";
$i++;
}
}
}
closeDir($handle);
?></p>
<pre><code class="block"></code></pre>
</blockquote>
<p>Wie dedlfix schon schrieb, kannst auch ganz bequem <a href="http://sg2.php.net/manual/en/function.glob.php" rel="nofollow noopener noreferrer">glob()</a> benutzen. Aber den Filter <code>GLOB_BRACE</code> würde ich trotzdem nicht unbedingt nutzen, solange das nicht caseinsensitive nutzbar ist. Ich würde lieber das erhaltene Array aller Dateien mittels eines Foreach() und dem oben schon erwähnten Filter durchgehen (alle nicht passenden Dateien aus dem Array herauslöschen).</p>
<p>So könnte man dann das ganze Konstrukt auch wirklich modular (in Funktionen oder Methoden) aufbauen, die jeweils die Daten in einem Array weiterreichen. Erst zum Schluss müsste dann in einer separaten Funktion die Ausgabe aus dem Array produziert werden. Die könnte man dann zu gegebener Zeit auch gegen eine mit DOM-Parser/Composer ersetzen, so wie Felix das fürs "HighEnd" gefordert hat.</p>
<h3>Jedenfalls würde ich immer vermeiden, Datenbeschaffung und Ausgabegenerierung zu mischen. Das hat man nur solange getan, wie man insgesamt nur 8KByte Speicher zur Verfügung hatte. Die Zeiten sind vorbei!</h3><p>Liebe Grüße<br>
Tom S.</p>
<div class="signature">-- <br>
Es gibt nichts Gutes, außer man tut es!<br>
Das Leben selbst ist der Sinn.<br>
</div>
https://forum.selfhtml.org/self/2017/oct/12/mit-php-bild-daten-aus-einem-ordner-auslesen/1706097#m1706097
Robert B.
2017-10-12T09:52:55Z
2017-10-12T09:52:55Z
Mit PHP Bild-Daten aus einem Ordner auslesen
<p>Moin,</p>
<p>darauf <a href="https://forum.selfhtml.org/m1706094" rel="noopener noreferrer">hat Tom ja schon hingewiesen</a>:</p>
<blockquote>
<pre><code class="block language-php"><span class="token keyword">while</span> <span class="token punctuation">(</span><span class="token variable">$datei</span> <span class="token operator">=</span> <span class="token function">readDir</span><span class="token punctuation">(</span><span class="token variable">$handle</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
</code></pre>
</blockquote>
<p>Eine Datei mit dem Namen <code>0</code> fällt hier aus dem Raster.</p>
<blockquote>
<pre><code class="block language-php"> <span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token variable">$datei</span> <span class="token operator">!=</span> <span class="token string double-quoted-string">"."</span> <span class="token operator">&&</span> <span class="token variable">$datei</span> <span class="token operator">!=</span> <span class="token string double-quoted-string">".."</span> <span class="token operator">&&</span> <span class="token operator">!</span><span class="token function">is_dir</span><span class="token punctuation">(</span><span class="token variable">$datei</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
<span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token function">strstr</span><span class="token punctuation">(</span><span class="token variable">$datei</span><span class="token punctuation">,</span> <span class="token string double-quoted-string">".gif"</span><span class="token punctuation">)</span> <span class="token operator">||</span> <span class="token class-name">strstr</span><span class="token punctuation">(</span><span class="token variable">$datei</span><span class="token punctuation">,</span> <span class="token string double-quoted-string">".png"</span><span class="token punctuation">)</span> <span class="token operator">||</span> <span class="token class-name">strstr</span><span class="token punctuation">(</span><span class="token variable">$datei</span><span class="token punctuation">,</span> <span class="token string double-quoted-string">".jpg"</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
</code></pre>
</blockquote>
<p><code>strstr</code> kann doch neben 0 auch FALSE zurückgeben. Das ist in deinem Fall nicht weiter schlimm, außer, du möchtest doch auch eine Datei <code>.png</code> verwenden.</p>
<blockquote>
<pre><code class="block language-php"> <span class="token variable">$verzeichnis_datei</span> <span class="token punctuation">[</span><span class="token variable">$i</span><span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token variable">$verzeichnis</span> <span class="token operator">.</span> <span class="token variable">$datei</span><span class="token punctuation">;</span>
<span class="token variable">$verzeichnis_datei</span> <span class="token punctuation">[</span><span class="token variable">$i</span><span class="token punctuation">]</span> <span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token function">getImageSize</span><span class="token punctuation">(</span><span class="token variable">$verzeichnis_datei</span> <span class="token punctuation">[</span><span class="token variable">$i</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
</code></pre>
</blockquote>
<p>Aber mich wundert, dass hier bislang keiner den <a href="https://wiki.selfhtml.org/wiki/Programmiertechnik/Kontextwechsel" rel="nofollow noopener noreferrer">Kontextwechsel</a> gesehen hat:</p>
<blockquote>
<pre><code class="block language-php"> <span class="token keyword">echo</span> <span class="token string double-quoted-string">"<img src=\"<span class="token interpolation"><span class="token variable">$verzeichnis_datei</span><span class="token punctuation">[</span><span class="token variable">$i</span><span class="token punctuation">]</span></span>\" width=\"<span class="token interpolation"><span class="token variable">$verzeichnis_datei</span></span> [<span class="token interpolation"><span class="token variable">$i</span></span>] [0] [0]\" height=\"<span class="token interpolation"><span class="token variable">$verzeichnis_datei</span></span> [<span class="token interpolation"><span class="token variable">$i</span></span>] [0] [1]\"> <br>\n"</span><span class="token punctuation">;</span>
</code></pre>
</blockquote>
<p>Dateinamen können unter unixoiden Betriebssystemen alle Zeichen außer <code>/</code> und dem NULL-Byte enthalten, also auch <code>"</code>, mit dem du aus dem HTML-Attribut gehst, sowie <code><></code>, mit denen du Tags definierst.</p>
<p>Viele Grüße<br>
Robert</p>
https://forum.selfhtml.org/self/2017/oct/12/mit-php-bild-daten-aus-einem-ordner-auslesen/1706133#m1706133
einsiedler
2017-10-12T19:52:57Z
2017-10-12T19:57:18Z
Mit PHP Bild-Daten aus einem Ordner auslesen
<p>Mit der Bitte um KORREKTUR:</p>
<pre><code class="block language-php"><span class="token php language-php"><span class="token delimiter important"><?php</span>
<span class="token variable">$i</span> <span class="token operator">=</span> <span class="token number">0</span><span class="token punctuation">;</span>
<span class="token variable">$verzeichnis</span> <span class="token operator">=</span> <span class="token string double-quoted-string">"img/"</span><span class="token punctuation">;</span>
<span class="token variable">$handle</span> <span class="token operator">=</span> <span class="token function">openDir</span><span class="token punctuation">(</span><span class="token variable">$verzeichnis</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">while</span> <span class="token punctuation">(</span><span class="token variable">$datei</span> <span class="token operator">=</span> <span class="token function">readDir</span><span class="token punctuation">(</span><span class="token variable">$handle</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
<span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token variable">$datei</span> <span class="token operator">!=</span> <span class="token string double-quoted-string">"."</span> <span class="token operator">&&</span> <span class="token variable">$datei</span> <span class="token operator">!=</span> <span class="token string double-quoted-string">".."</span> <span class="token operator">&&</span> <span class="token operator">!</span><span class="token function">is_dir</span><span class="token punctuation">(</span><span class="token variable">$datei</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
<span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token function">strtolower</span><span class="token punctuation">(</span><span class="token punctuation">[</span><span class="token function">substr</span><span class="token punctuation">(</span><span class="token punctuation">]</span><span class="token punctuation">(</span><span class="token argument-name">http</span><span class="token punctuation">:</span><span class="token comment">//www.welten-bau.de/test/testseite_uebung1/img/)$datei,-4) == '.gif')) || strtolower(substr(http://www.welten-bau.de/test/testseite_uebung1/img/)$datei,-4)) == ".png" || strtolower(http://www.welten-bau.de/test/testseite_uebung1/img/)$datei,-4)) == ".jpg"{</span>
<span class="token variable">$entry</span> <span class="token operator">=</span> <span class="token punctuation">[</span>
<span class="token string single-quoted-string">'name'</span> <span class="token operator">=></span> <span class="token variable">$verzeichnis</span> <span class="token operator">.</span> <span class="token variable">$datei</span><span class="token punctuation">,</span>
<span class="token string single-quoted-string">'bildabmessungen'</span> <span class="token operator">=></span> <span class="token function">getImageSize</span><span class="token punctuation">(</span><span class="token variable">$verzeichnis_datei</span> <span class="token punctuation">[</span><span class="token variable">$i</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">,</span>
<span class="token string single-quoted-string">'dings'</span> <span class="token operator">=></span> <span class="token string single-quoted-string">'bums'</span>
<span class="token punctuation">]</span><span class="token punctuation">;</span>
<span class="token keyword">echo</span> <span class="token string double-quoted-string">"<img src=\"<span class="token interpolation"><span class="token punctuation">{</span><span class="token variable">$entry</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'name'</span><span class="token punctuation">]</span><span class="token punctuation">}</span></span>\" width=\"<span class="token interpolation"><span class="token punctuation">{</span><span class="token variable">$entry</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'bildabmessungen'</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">}</span></span>\" height=\"<span class="token interpolation"><span class="token punctuation">{</span><span class="token variable">$entry</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'bildabmessungen'</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span><span class="token punctuation">}</span></span>\"> <br>\n"</span><span class="token punctuation">;</span>
<span class="token variable">$verzeichnis</span><span class="token punctuation">[</span><span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token variable">$entry</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
</span></code></pre>
<p>Abentliche Grüße</p>
<p>der einsiedelnde</p>
https://forum.selfhtml.org/self/2017/oct/12/mit-php-bild-daten-aus-einem-ordner-auslesen/1706141#m1706141
einsiedler
2017-10-13T05:51:26Z
2017-10-13T06:01:39Z
Mit PHP Bild-Daten aus einem Ordner auslesen
<p>Ein erneuter Versuch!</p>
<pre><code class="block language-php"><span class="token php language-php"><span class="token delimiter important"><?php</span>
<span class="token variable">$i</span> <span class="token operator">=</span> <span class="token number">0</span><span class="token punctuation">;</span>
<span class="token variable">$verz</span> <span class="token operator">=</span> <span class="token string double-quoted-string">"img/"</span><span class="token punctuation">;</span>
<span class="token variable">$verzeichnis</span> <span class="token operator">=</span> <span class="token function">openDir</span><span class="token punctuation">(</span><span class="token variable">$verz</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">while</span> <span class="token punctuation">(</span><span class="token variable">$datei</span> <span class="token operator">=</span> <span class="token function">readDir</span><span class="token punctuation">(</span><span class="token variable">$verzeichnis</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
<span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token variable">$datei</span> <span class="token operator">!=</span> <span class="token string double-quoted-string">"."</span> <span class="token operator">&&</span> <span class="token variable">$datei</span> <span class="token operator">!=</span> <span class="token string double-quoted-string">".."</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
<span class="token variable">$entry</span><span class="token punctuation">[</span><span class="token variable">$i</span><span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token punctuation">[</span>
<span class="token string single-quoted-string">'name'</span> <span class="token operator">=></span> <span class="token variable">$datei</span><span class="token punctuation">,</span>
<span class="token string single-quoted-string">'verzeichnis+name'</span> <span class="token operator">=></span> <span class="token function">array_merge</span><span class="token punctuation">(</span><span class="token variable">$verz</span> <span class="token operator">.</span> <span class="token variable">$datei</span><span class="token punctuation">)</span><span class="token punctuation">,</span>
<span class="token string single-quoted-string">'bildabmessungen'</span> <span class="token operator">=></span> <span class="token function">getImageSize</span><span class="token punctuation">(</span><span class="token variable">$datei</span><span class="token punctuation">)</span><span class="token punctuation">,</span>
<span class="token string single-quoted-string">'berechnungen'</span> <span class="token operator">=></span> <span class="token string single-quoted-string">'berechnungen'</span>
<span class="token punctuation">]</span><span class="token punctuation">;</span>
<span class="token keyword">echo</span> <span class="token string double-quoted-string">"<a href=\"img/<span class="token interpolation"><span class="token variable">$datei</span></span>\"> <span class="token interpolation"><span class="token variable">$datei</span></span></a><br>\n"</span><span class="token punctuation">;</span>
<span class="token keyword">echo</span> <span class="token string single-quoted-string">'$NAME '</span> <span class="token operator">.</span> <span class="token variable">$datei</span> <span class="token operator">.</span> <span class="token string double-quoted-string">"\n"</span><span class="token punctuation">;</span>
<span class="token keyword">echo</span> <span class="token string single-quoted-string">'$Verzeichnis + $NAME '</span> <span class="token operator">.</span> <span class="token variable">$entry</span><span class="token punctuation">[</span><span class="token variable">$i</span><span class="token punctuation">]</span> <span class="token punctuation">[</span><span class="token string single-quoted-string">'verzeichnis+name'</span><span class="token punctuation">]</span> <span class="token operator">.</span> <span class="token string double-quoted-string">"\n"</span><span class="token punctuation">;</span>
<span class="token keyword">echo</span> <span class="token string single-quoted-string">'$ENTRY NAME '</span> <span class="token operator">.</span> <span class="token variable">$entry</span><span class="token punctuation">[</span><span class="token variable">$i</span><span class="token punctuation">]</span> <span class="token punctuation">[</span><span class="token string single-quoted-string">'name'</span><span class="token punctuation">]</span> <span class="token operator">.</span> <span class="token string double-quoted-string">"\n"</span><span class="token punctuation">;</span>
<span class="token keyword">echo</span> <span class="token string single-quoted-string">'BILDabmessungen '</span> <span class="token operator">.</span> <span class="token variable">$entry</span><span class="token punctuation">[</span><span class="token variable">$i</span><span class="token punctuation">]</span> <span class="token punctuation">[</span><span class="token string single-quoted-string">'bildabmessungen'</span><span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">]</span> <span class="token operator">.</span> <span class="token string double-quoted-string">"\n"</span><span class="token punctuation">;</span>
<span class="token variable">$i</span><span class="token operator">++</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
<span class="token function">closeDir</span><span class="token punctuation">(</span><span class="token variable">$verzeichnis</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token delimiter important">?></span></span>
</code></pre>
<p>Hier sieht man was es macht:
<a href="http://www.welten-bau.de/test/testseite_uebung1/bildausgabe_demo_B.php" rel="nofollow noopener noreferrer">DEMO </a></p>
<p>Hiermit bin ich aber noch lange nicht zufrieden.</p>
<p>Es werden alle (Unter)-Ordner angezeigt, aber warum? Es sollen nur die .jpg`s
angezeigt werden.</p>
<p>Das Array mit dem Verzeichnis (Pfad) + Bildname + .jpg wird nicht angezeigt!</p>
<p>Die Bildgrössen (width & height) werden nicht angezeigt!</p>
<p>Anscheinend ist irgendetwas fehlerhaft? Aber was?</p>
<p>Wie bekomme ich es nun hin das genau die Reihenfolge</p>
<p>A_demobild1, B_demobild_2, C_demobild_3 ... etc. beibehalten wird?</p>
<p>In diesem Ordner benutze ich NUR .jpg Bilder…</p>
<p>Ein mehrdimensionales assoziatives Array scheint hier schon richtig zu sein.
Ich bekomme es grad nur nicht hin!</p>
<p>In diesem Ordner befinden sich X IMG`s
Für jedes einzelne IMG soll ein mehrdimensionales Array eingerichtet werden mit:</p>
<p>A) Dateinahme ( A_demobild_800_mal_560.jpg )</p>
<p>B) Verzeichnis (Pfad) + Dateiname ( img/A_demobild_800_mal_560.jpg )</p>
<p>C) die Bildabmessungen : also width & height</p>
<p>D) weitere Berechnungen... (dazu später mehr!!!)</p>
<p>Es sind mir momentan zu viele Dimensionen,</p>
<p>Wer kann mir Bitte helfen??? (Eventuell Bezahlung möglich!)</p>
<p>Gruss der einsiedelnde</p>
https://forum.selfhtml.org/self/2017/oct/12/mit-php-bild-daten-aus-einem-ordner-auslesen/1706076#m1706076
Matthias Apsel
matthias.apsel@selfhtml.org
http://brückentage.info
2017-10-12T05:10:18Z
2017-10-12T05:10:18Z
Mit PHP Bild-Daten aus einem Ordner auslesen
<p>Hallo MudGuard,</p>
<blockquote>
<blockquote>
<pre><code class="block language-php"> <span class="token keyword">echo</span> <span class="token string double-quoted-string">"<img src=\"<span class="token interpolation"><span class="token variable">$verzeichnis_datei</span><span class="token punctuation">[</span><span class="token variable">$i</span><span class="token punctuation">]</span></span>\" width=\"<span class="token interpolation"><span class="token variable">$verzeichnis_datei</span></span> [<span class="token interpolation"><span class="token variable">$i</span></span>] [0] [0]\" height=\"<span class="token interpolation"><span class="token variable">$verzeichnis_datei</span></span> [<span class="token interpolation"><span class="token variable">$i</span></span>] [0] [1]\"> <br>\n"</span><span class="token punctuation">;</span>
</code></pre>
</blockquote>
<p>Entweder mehrere Werte an echo kommmagetrennt übergeben:</p>
</blockquote>
<p>Oder auch die gute alte Konkatenation mit <code>.</code></p>
<pre><code class="block language-php"><span class="token keyword">echo</span> <span class="token string double-quoted-string">"<img src="</span> <span class="token operator">.</span> <span class="token variable">$verzeichnis_datei</span><span class="token punctuation">[</span><span class="token variable">$i</span><span class="token punctuation">]</span> <span class="token operator">.</span><span class="token string double-quoted-string">" width="</span> <span class="token operator">.</span> <span class="token variable">$verzeichnis_datei</span><span class="token punctuation">[</span><span class="token variable">$i</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span> <span class="token operator">.</span> <span class="token string double-quoted-string">" height="</span> <span class="token operator">.</span> <span class="token variable">$verzeichnis_datei</span><span class="token punctuation">[</span><span class="token variable">$i</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span> <span class="token operator">.</span> "<span class="token operator">></span><span class="token punctuation">;</span>
</code></pre>
<p>oder – besser – den PHP-Code im HTML schachteln.</p>
<pre><code class="block language-html"><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>img</span> <span class="token attr-name">src</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span><?=$verzeichnis_datei[$i]?><span class="token punctuation">"</span></span>
<span class="token attr-name">width</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span><?=$verzeichnis_datei[$i][0][0]?><span class="token punctuation">"</span></span>
<span class="token attr-name">height</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span><?=verzeichnis_datei[$i][0][1]?><span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
</code></pre>
<p>Und das <code>br</code> ist sicher auch nicht notwendig.</p>
<p>Bis demnächst<br>
Matthias</p>
<div class="signature">-- <br>
Rosen sind rot.
</div>
https://forum.selfhtml.org/self/2017/oct/12/mit-php-bild-daten-aus-einem-ordner-auslesen/1706079#m1706079
einsiedler
2017-10-12T06:09:31Z
2017-10-12T06:09:31Z
Mit PHP Bild-Daten aus einem Ordner auslesen
<p>Ja, alles GUT, danke Leute! ;o)
Aber was mich brennend interessiert ist: Ist mein Vorgehen in Sachen Arrays
hier so richtig?</p>
<p>Denn selbst da zweifel ich schon?</p>
<p>Ich benötige:</p>
<p>A) als $verzeichnis_datei [$i] [1] = den Filenamen!
B) als $verzeichnis_datei [$i] [2] = Sowohl die Breite als auch die Höhe des Bildes
( ansonsten die HÖHE in ein weiteres )
( $verzeichnis_datei [$i] [3] gepackt !!! )
C) als weitere Berechnung später : $verzeichnis_datei [$i] [3 bzw. 4]</p>
<p>Wobei <$i> dann von 0 bis zum letzten Bild im Ordner ist!!!</p>
<p>Umständlich ausgedrückt, ich weiß! Kann es halt nicht anders!</p>
<p>Hoffentlich nun verständlich!
Aber ich glaube das das was ich da hab das noch nicht "macht"!</p>
<p>Fragende Grüsse der einsiedenlde</p>
https://forum.selfhtml.org/self/2017/oct/12/mit-php-bild-daten-aus-einem-ordner-auslesen/1706077#m1706077
Felix Riesterer
http://felix-riesterer.de
2017-10-12T06:01:19Z
2017-10-12T06:01:19Z
Mit PHP Bild-Daten aus einem Ordner auslesen
<p>Lieber Matthias,</p>
<blockquote>
<p>oder – besser – den PHP-Code im HTML schachteln.</p>
</blockquote>
<p>das empfinde ich als keineswegs <em>besser</em> (nur anders). Wirklich <em>besser</em> ist eine Ausgabe, die sich um HTML-Syntax nicht scheren muss. Da kommen dann die <a href="http://php.net/manual/en/book.dom.php" rel="noopener noreferrer">DOM</a>-Objekte und -Methoden ins Spiel. Will man HTML5 so richtig gut unterstützen, benötigt man sogar noch einen auf DOM aufsetzenden HTML5-Parser, wie z. B. <a href="https://github.com/Masterminds/html5-php" rel="noopener noreferrer">Masterminds/html5-php</a>. Aber für den OP wäre das sicherlich Overkill...</p>
<p>Liebe Grüße,</p>
<p>Felix Riesterer.</p>
https://forum.selfhtml.org/self/2017/oct/12/mit-php-bild-daten-aus-einem-ordner-auslesen/1706080#m1706080
einsiedler
2017-10-12T06:14:18Z
2017-10-12T06:15:49Z
Mit PHP Bild-Daten aus einem Ordner auslesen
<p>Für mich sicherlich "zu professionell" , momentan noch!</p>
<p>Könnte ich das selbst auf meinem Host installieren oder muss das mein Hoster machen?</p>
<p>Sollte er von dieser Installation wissen ( Wegen der Sicherheit etc.?) ?</p>
<p>Fragende Grüße der einsiedler</p>
https://forum.selfhtml.org/self/2017/oct/12/mit-php-bild-daten-aus-einem-ordner-auslesen/1706083#m1706083
einsiedler
2017-10-12T06:54:41Z
2017-10-12T06:55:29Z
Mit PHP Bild-Daten aus einem Ordner auslesen
<p>Doch, leider brauche ich die Arrays zu spätere weitere Berechnungen.</p>
<p>Wie sähe das GANZE dann aus?</p>
<p>Und werden diese Variablen später einfach "vergessen"?</p>
<p>Fragend, der einsiedelnde</p>
https://forum.selfhtml.org/self/2017/oct/12/mit-php-bild-daten-aus-einem-ordner-auslesen/1706086#m1706086
dedlfix
2017-10-12T08:36:42Z
2017-10-12T08:36:42Z
Mit PHP Bild-Daten aus einem Ordner auslesen
<p>Tach!</p>
<blockquote>
<p>Doch, leider brauche ich die Arrays zu spätere weitere Berechnungen.</p>
<p>Wie sähe das GANZE dann aus?</p>
</blockquote>
<p>Grundlegend so wie im Beispiel auf verlinkter Handbuchseite, zuzüglich Flags. Du wirst GLOB_BRACE brauchen, um mehrere Dateiendungen filtern zu können. Beispiele gibts in den Kommentaren.</p>
<blockquote>
<p>Und werden diese Variablen später einfach "vergessen"?</p>
</blockquote>
<p>Variablen innerhalb einer Schleife werden nicht vergessen. Eine Schleife bildet keinen eigenen Scope. Das spielt sich alles im Scope der Umgebung ab. Aber innerhalb einer Funktion wäre das der Fall. Da gibts nur den Rückgabewert, der am Ende überlebt (zuzüglich per Referenz übergebener Variablen, aber das ist ein anderes Thema).</p>
<p>dedlfix.</p>
https://forum.selfhtml.org/self/2017/oct/12/mit-php-bild-daten-aus-einem-ordner-auslesen/1706095#m1706095
dedlfix
2017-10-12T09:45:48Z
2017-10-12T09:45:48Z
Mit PHP Bild-Daten aus einem Ordner auslesen
<p>Tach!</p>
<blockquote>
<p>Wie dedlfix schon schrieb, kannst auch ganz bequem <a href="http://sg2.php.net/manual/en/function.glob.php" rel="nofollow noopener noreferrer">glob()</a> benutzen. Aber den Filter <code>GLOB_BRACE</code> würde ich trotzdem nicht unbedingt nutzen, solange das nicht caseinsensitive nutzbar ist.</p>
</blockquote>
<p>Ist es aber: <code>glob('*.{[aA][bB][cC],[dD][eE][fF]}', GLOB_BRACE)</code></p>
<p>dedlfix.</p>
https://forum.selfhtml.org/self/2017/oct/12/mit-php-bild-daten-aus-einem-ordner-auslesen/1706096#m1706096
TS
ts-self@online.de
https://bitworks.de
2017-10-12T09:50:51Z
2017-10-12T09:50:51Z
Mit PHP Bild-Daten aus einem Ordner auslesen
<p>Hello,</p>
<blockquote>
<blockquote>
<p>Wie dedlfix schon schrieb, kannst auch ganz bequem <a href="http://sg2.php.net/manual/en/function.glob.php" rel="nofollow noopener noreferrer">glob()</a> benutzen. Aber den Filter <code>GLOB_BRACE</code> würde ich trotzdem nicht unbedingt nutzen, solange das nicht caseinsensitive nutzbar ist.</p>
</blockquote>
<p>Ist es aber: <code>glob('*.{[aA][bB][cC],[dD][eE][fF]}', GLOB_BRACE)</code></p>
</blockquote>
<p>Reingebastelt ja. Aber das habe ich nicht gemeint.</p>
<p>Wenn die erlaubten Endungen aus einer Konfigurationsdatei kommen, möchte ich mal deine Funktion sehen, die die Konfiguration in die obige Syntax von Glob() überführt! :-|</p>
<p>Liebe Grüße<br>
Tom S.</p>
<div class="signature">-- <br>
Es gibt nichts Gutes, außer man tut es!<br>
Das Leben selbst ist der Sinn.<br>
</div>
https://forum.selfhtml.org/self/2017/oct/12/mit-php-bild-daten-aus-einem-ordner-auslesen/1706099#m1706099
dedlfix
2017-10-12T10:08:18Z
2017-10-12T10:08:18Z
Mit PHP Bild-Daten aus einem Ordner auslesen
<p>Tach!</p>
<blockquote>
<blockquote>
<p>Ist es aber: <code>glob('*.{[aA][bB][cC],[dD][eE][fF]}', GLOB_BRACE)</code></p>
</blockquote>
<p>Reingebastelt ja. Aber das habe ich nicht gemeint.</p>
<p>Wenn die erlaubten Endungen aus einer Konfigurationsdatei kommen, möchte ich mal deine Funktion sehen, die die Konfiguration in die obige Syntax von Glob() überführt! :-|</p>
</blockquote>
<p>War jetzt nicht sonderlich schwierig:</p>
<pre><code class="block language-php"><span class="token variable">$extensions</span> <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token string single-quoted-string">'abc'</span><span class="token punctuation">,</span> <span class="token string single-quoted-string">'DEF'</span><span class="token punctuation">]</span><span class="token punctuation">;</span>
<span class="token keyword">echo</span> <span class="token function">globPattern</span><span class="token punctuation">(</span><span class="token variable">$extensions</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">function</span> <span class="token function-definition function">globPattern</span><span class="token punctuation">(</span><span class="token variable">$extensions</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
<span class="token keyword">return</span> <span class="token string single-quoted-string">'*.{'</span> <span class="token operator">.</span> <span class="token function">implode</span><span class="token punctuation">(</span><span class="token string single-quoted-string">','</span><span class="token punctuation">,</span> <span class="token function">array_map</span><span class="token punctuation">(</span><span class="token keyword">function</span> <span class="token punctuation">(</span><span class="token variable">$ext</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
<span class="token keyword">return</span> <span class="token function">preg_replace_callback</span><span class="token punctuation">(</span><span class="token string single-quoted-string">'/./'</span><span class="token punctuation">,</span> <span class="token keyword">function</span> <span class="token punctuation">(</span><span class="token variable">$matches</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
<span class="token keyword">return</span> <span class="token string single-quoted-string">'['</span> <span class="token operator">.</span> <span class="token function">strtolower</span><span class="token punctuation">(</span><span class="token variable">$matches</span><span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">)</span> <span class="token operator">.</span> <span class="token function">strtoupper</span><span class="token punctuation">(</span><span class="token variable">$matches</span><span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">)</span> <span class="token operator">.</span> <span class="token string single-quoted-string">']'</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span><span class="token punctuation">,</span> <span class="token variable">$ext</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span><span class="token punctuation">,</span> <span class="token variable">$extensions</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token operator">.</span> <span class="token string single-quoted-string">'}'</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
</code></pre>
<p>dedlfix.</p>
https://forum.selfhtml.org/self/2017/oct/12/mit-php-bild-daten-aus-einem-ordner-auslesen/1706098#m1706098
TS
ts-self@online.de
https://bitworks.de
2017-10-12T10:00:01Z
2017-10-12T10:00:01Z
Mit PHP Bild-Daten aus einem Ordner auslesen
<p>Hello,</p>
<blockquote>
<p>Aber mich wundert, dass hier bislang keiner den <a href="https://wiki.selfhtml.org/wiki/Programmiertechnik/Kontextwechsel" rel="nofollow noopener noreferrer">Kontextwechsel</a> gesehen hat:</p>
<blockquote>
<pre><code class="block language-php"> <span class="token keyword">echo</span> <span class="token string double-quoted-string">"<img src=\"<span class="token interpolation"><span class="token variable">$verzeichnis_datei</span><span class="token punctuation">[</span><span class="token variable">$i</span><span class="token punctuation">]</span></span>\" width=\"<span class="token interpolation"><span class="token variable">$verzeichnis_datei</span></span> [<span class="token interpolation"><span class="token variable">$i</span></span>] [0] [0]\" height=\"<span class="token interpolation"><span class="token variable">$verzeichnis_datei</span></span> [<span class="token interpolation"><span class="token variable">$i</span></span>] [0] [1]\"> <br>\n"</span><span class="token punctuation">;</span>
</code></pre>
</blockquote>
<p>Dateinamen können unter unixoiden Betriebssystemen alle Zeichen außer <code>/</code> und dem NULL-Byte enthalten, also auch <code>"</code>, mit dem du aus dem HTML-Attribut gehst, sowie <code><></code>, mit denen du Tags definierst.</p>
</blockquote>
<p>Dafür einen Extrapunkt!</p>
<p>Allerdings waren wir ja mir der "Behandlung" des Threads noch nicht fertig. :-)</p>
<p>Zuerst sollte einsiedler mMn mal einen modularen Aufbau erzeugen. Kurzversionen und Kurzschreibweisen, wie sie durch glob() allerdings schon wieder in den Fokus rücken könnten, sollte man im Sinne einer klaren Aufgabenteilung und leichten Les- und Wartbarkeit der Programme vermeiden!</p>
<p>Liebe Grüße<br>
Tom S.</p>
<div class="signature">-- <br>
Es gibt nichts Gutes, außer man tut es!<br>
Das Leben selbst ist der Sinn.<br>
</div>
https://forum.selfhtml.org/self/2017/oct/12/mit-php-bild-daten-aus-einem-ordner-auslesen/1706101#m1706101
TS
ts-self@online.de
https://bitworks.de
2017-10-12T10:30:40Z
2017-10-12T10:30:40Z
Mit PHP Bild-Daten aus einem Ordner auslesen
<p>Hello,</p>
<blockquote>
<blockquote>
<blockquote>
<p>Ist es aber: <code>glob('*.{[aA][bB][cC],[dD][eE][fF]}', GLOB_BRACE)</code></p>
</blockquote>
<p>Reingebastelt ja. Aber das habe ich nicht gemeint.</p>
<p>Wenn die erlaubten Endungen aus einer Konfigurationsdatei kommen, möchte ich mal deine Funktion sehen, die die Konfiguration in die obige Syntax von Glob() überführt! :-|</p>
</blockquote>
<p>War jetzt nicht sonderlich schwierig:</p>
<pre><code class="block language-php"><span class="token variable">$extensions</span> <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token string single-quoted-string">'abc'</span><span class="token punctuation">,</span> <span class="token string single-quoted-string">'DEF'</span><span class="token punctuation">]</span><span class="token punctuation">;</span>
<span class="token keyword">echo</span> <span class="token function">globPattern</span><span class="token punctuation">(</span><span class="token variable">$extensions</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">function</span> <span class="token function-definition function">globPattern</span><span class="token punctuation">(</span><span class="token variable">$extensions</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
<span class="token keyword">return</span> <span class="token string single-quoted-string">'*.{'</span> <span class="token operator">.</span> <span class="token function">implode</span><span class="token punctuation">(</span><span class="token string single-quoted-string">','</span><span class="token punctuation">,</span> <span class="token function">array_map</span><span class="token punctuation">(</span><span class="token keyword">function</span> <span class="token punctuation">(</span><span class="token variable">$ext</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
<span class="token keyword">return</span> <span class="token function">preg_replace_callback</span><span class="token punctuation">(</span><span class="token string single-quoted-string">'/./'</span><span class="token punctuation">,</span> <span class="token keyword">function</span> <span class="token punctuation">(</span><span class="token variable">$matches</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
<span class="token keyword">return</span> <span class="token string single-quoted-string">'['</span> <span class="token operator">.</span> <span class="token function">strtolower</span><span class="token punctuation">(</span><span class="token variable">$matches</span><span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">)</span> <span class="token operator">.</span> <span class="token function">strtoupper</span><span class="token punctuation">(</span><span class="token variable">$matches</span><span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">)</span> <span class="token operator">.</span> <span class="token string single-quoted-string">']'</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span><span class="token punctuation">,</span> <span class="token variable">$ext</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span><span class="token punctuation">,</span> <span class="token variable">$extensions</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token operator">.</span> <span class="token string single-quoted-string">'}'</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
</code></pre>
</blockquote>
<p>Du hast wahrscheinlich heute einen Clown gefrühstückt? :-P</p>
<p>Das ist weder vollständig, noch wartbar.<br>
Und verständlich ist es schon gar nicht mehr!</p>
<p><code>$extensions = ['abc', 'Abc', 'DEF', 'My_Special'];</code></p>
<p>usw...</p>
<p>Bei den Extensions geht es <em>hier</em> doch in erster Linie um die Bestimmung des MIME-Types und Festlegung der HTTP-Header dafür.</p>
<p>Liebe Grüße<br>
Tom S.</p>
<div class="signature">-- <br>
Es gibt nichts Gutes, außer man tut es!<br>
Das Leben selbst ist der Sinn.<br>
</div>
https://forum.selfhtml.org/self/2017/oct/12/mit-php-bild-daten-aus-einem-ordner-auslesen/1706102#m1706102
dedlfix
2017-10-12T10:46:21Z
2017-10-12T10:46:21Z
Mit PHP Bild-Daten aus einem Ordner auslesen
<p>Tach!</p>
<blockquote>
<p>Du hast wahrscheinlich heute einen Clown gefrühstückt? :-P</p>
</blockquote>
<p>Nö.</p>
<blockquote>
<p>Das ist weder vollständig, noch wartbar.<br>
Und verständlich ist es schon gar nicht mehr!</p>
</blockquote>
<p>Präzisiere bitte deine Kritikpunkte. Natürlich kann man das auch iterativ statt funktional und mit deutlich mehr Code und mehr Zwischenschritten schreiben.</p>
<blockquote>
<p><code>$extensions = ['abc', 'Abc', 'DEF', 'My_Special'];</code></p>
</blockquote>
<p>Was ist daran das Problem? Dass jemand doppelte Werte konfiguriert? Muss er halt aufpassen. Oder dass andere Zeichen als Buchstaben verwendet werden? Ist nicht tragisch. Jedenfalls gibt das in beiden Fällen das gewünschte Ergebnis.</p>
<blockquote>
<p>Bei den Extensions geht es <em>hier</em> doch in erster Linie um die Bestimmung des MIME-Types und Festlegung der HTTP-Header dafür.</p>
</blockquote>
<p>Nö, das ist Teil der Ausgabe, andere Baustelle. Die Aufgabenstellung war das Pattern für die Ermittlung der Daten mit glob() zu erstellen.</p>
<p>dedlfix.</p>
https://forum.selfhtml.org/self/2017/oct/12/mit-php-bild-daten-aus-einem-ordner-auslesen/1706104#m1706104
TS
ts-self@online.de
https://bitworks.de
2017-10-12T12:06:21Z
2017-10-12T12:07:09Z
Mit PHP Bild-Daten aus einem Ordner auslesen
<p>Hello,</p>
<blockquote>
<p>Präzisiere bitte deine Kritikpunkte. Natürlich kann man das auch iterativ statt funktional und mit deutlich mehr Code und mehr Zwischenschritten schreiben.</p>
<blockquote>
<p><code>$extensions = ['abc', 'Abc', 'DEF', 'My_Special'];</code></p>
</blockquote>
<p>Was ist daran das Problem? Dass jemand doppelte Werte konfiguriert? Muss er halt aufpassen. Oder dass andere Zeichen als Buchstaben verwendet werden? Ist nicht tragisch. Jedenfalls gibt das in beiden Fällen das gewünschte Ergebnis.</p>
</blockquote>
<p>Ich habe mir selbstverständlich das Ganze nochmals angeschaut... :-)</p>
<p>Deine Funktion könnte durchaus in die Sammlung der Q&D-Lösungen aufgenommen werden. Ich befürchte aber Probleme, wenn die Liste der Dateien im Verzeichnis erheblich länger wird.</p>
<p>aus</p>
<p><code>$extensions = ['abc', 'DEF', 'My_Special123'];</code></p>
<p>wird dann ja das Muster</p>
<p><code>*.{[aA][bB][cC],[dD][eE][fF],[mM][yY][__][sS][pP][eE][cC][iI][aA][lL][11][22][33]}</code></p>
<p>und ich befürchte nun, dass die Regular Expression, die da jedes Mal von Glob angeschmissen werden muss, die Abarbeitung aufhalten wird.</p>
<p>Gegenhalten könnte man allerdings, dass diese Schleife bei genügend intelligenter Compilation von PHP nach OpCode ohnehin im Reich des L1- und L2-Caches des Prozessors abgehandelt werden wird.</p>
<p>Das würde mich jetzt wirklich interessieren, ob man hier einen nachhaltigen Geschwindigkeitsunterschied zwischen deiner RegExp/GLOB_BRACE-Variante und einem expliziten Stringvergleich feststellen könnte.</p>
<p>Ich habe hier ein Verzeichnis mit über 150.000 "Profilen". Die enthalten auch jeweils 0 bis N Bilder mit verschiedenen Extensions. Leider habe ich ich lokal kein PHP auf 64Bit laufen. Wird also mal Zeit...</p>
<p>Liebe Grüße<br>
Tom S.</p>
<div class="signature">-- <br>
Es gibt nichts Gutes, außer man tut es!<br>
Das Leben selbst ist der Sinn.<br>
</div>
https://forum.selfhtml.org/self/2017/oct/12/mit-php-bild-daten-aus-einem-ordner-auslesen/1706105#m1706105
dedlfix
2017-10-12T12:13:13Z
2017-10-12T12:13:13Z
Mit PHP Bild-Daten aus einem Ordner auslesen
<p>Tach!</p>
<blockquote>
<p>Ich befürchte aber Probleme, wenn die Liste der Darteien im Verzeichnis erheblich länger wird. [...] und ich befürchte nun, dass die Regular Expression, die da jedes Mal von Glob angeschmissen werden muss, die Abarbeitung aufhalten wird.</p>
</blockquote>
<p>Wer weiß, was glob() da macht. Jedenfalls macht es nicht PHP sondern delegiert das ans Betriebssystem durch, denn das ist eine Linux/Unix-Funtionalität.</p>
<p>Die Eigenprüfung mittels PHP-Code wird vermutlich deutlich länger brauchen. Am Ende wird das bei der von der Website zu verarbeitenden Datenmenge sowieso nicht ins Gewicht fallen.</p>
<p>dedlfix.</p>
https://forum.selfhtml.org/self/2017/oct/12/mit-php-bild-daten-aus-einem-ordner-auslesen/1706109#m1706109
Rolf B
2017-10-12T13:12:18Z
2017-10-12T13:12:18Z
Mit PHP Bild-Daten aus einem Ordner auslesen
<p>Hallo dedlfix,</p>
<p>hast Du auch eine Funktion, die Extensions mit Umlauten drin case-insensitive matcht? Da musst Du auf mb-Funktionen umsteigen.</p>
<p>Ein manueller Versuch mit glob("<em>.bäh") funktioniert noch, aber glob("</em>.b[äÄ]h") ist mir unter Windows nicht gelungen. Vielleicht ist's ja ein PHP/Windows Problem.</p>
<p><em>Rolf</em></p>
<div class="signature">-- <br>
sumpsi - posui - clusi
</div>
https://forum.selfhtml.org/self/2017/oct/12/mit-php-bild-daten-aus-einem-ordner-auslesen/1706110#m1706110
TS
ts-self@online.de
https://bitworks.de
2017-10-12T13:15:25Z
2017-10-12T13:15:25Z
Mit PHP Bild-Daten aus einem Ordner auslesen
<p>Hello,</p>
<blockquote>
<p>hast Du auch eine Funktion, die Extensions mit Umlauten drin case-insensitive matcht? Da musst Du auf mb-Funktionen umsteigen.</p>
<p>Ein manueller Versuch mit glob("<em>.bäh") funktioniert noch, aber glob("</em>.b[äÄ]h") ist mir unter Windows nicht gelungen. Vielleicht ist's ja ein PHP/Windows Problem.</p>
</blockquote>
<p>DAS ist aber jetzt genau wieder das Thema "Dateinamen für interoperatible Nutzung".<br>
Windows verwendet vermutlich ja immer noch <a href="https://en.wikipedia.org/wiki/Windows-1252" rel="nofollow noopener noreferrer">ISO1252</a> für seine Dateisysteme.</p>
<p>Ab wann man da UTF-8 (eingeschränkt) benutzen darf, weiß ich nicht...</p>
<p>Liebe Grüße<br>
Tom S.</p>
<div class="signature">-- <br>
Es gibt nichts Gutes, außer man tut es!<br>
Das Leben selbst ist der Sinn.<br>
</div>
https://forum.selfhtml.org/self/2017/oct/12/mit-php-bild-daten-aus-einem-ordner-auslesen/1706113#m1706113
Tabellenkalk
2017-10-12T13:24:20Z
2017-10-12T13:24:20Z
Mit PHP Bild-Daten aus einem Ordner auslesen
<p>Hallo,</p>
<blockquote>
<p>Extensions mit Umlauten drin</p>
</blockquote>
<p>Das sind jetzt aber Laborbedingungen oder sind dir solche schon mal in freier Wildbahn begegnet?</p>
<p>Gruß<br>
Kalk</p>
https://forum.selfhtml.org/self/2017/oct/12/mit-php-bild-daten-aus-einem-ordner-auslesen/1706204#m1706204
Regina Schaukrug
2017-10-14T14:11:55Z
2017-10-14T14:11:55Z
Mit PHP Bild-Daten aus einem Ordner auslesen
<blockquote>
<p>Hallo,</p>
<blockquote>
<p>Extensions mit Umlauten drin</p>
</blockquote>
<p>Das sind jetzt aber Laborbedingungen oder sind dir solche schon mal in freier Wildbahn begegnet?</p>
</blockquote>
<p>gerne, öfter: [datei].<strong>ühü</strong></p>
https://forum.selfhtml.org/self/2017/oct/12/mit-php-bild-daten-aus-einem-ordner-auslesen/1706134#m1706134
Tabellenkalk
2017-10-12T19:58:56Z
2017-10-12T19:58:56Z
Mit PHP Bild-Daten aus einem Ordner auslesen
<p>Hallo,</p>
<blockquote>
<p>Mit der Bitte um KORREKTUR:</p>
</blockquote>
<p>Gerne:</p>
<blockquote>
<p>Abentliche Grüße</p>
</blockquote>
<p>Abendlich wird ohne t geschrieben!</p>
<p>Gruß<br>
Kalk</p>
https://forum.selfhtml.org/self/2017/oct/12/mit-php-bild-daten-aus-einem-ordner-auslesen/1706135#m1706135
einsiedler
2017-10-12T20:12:12Z
2017-10-12T20:12:12Z
Mit PHP Bild-Daten aus einem Ordner auslesen
<p>D .... ich meinte D.... ;o)))))))</p>
https://forum.selfhtml.org/self/2017/oct/12/mit-php-bild-daten-aus-einem-ordner-auslesen/1706139#m1706139
einsiedler
2017-10-12T20:27:39Z
2017-10-13T06:59:25Z
Mit PHP Bild-Daten aus einem Ordner auslesen
<pre><code class="block language-php"><span class="token php language-php"><span class="token delimiter important"><?php</span>
<span class="token variable">$i</span> <span class="token operator">=</span> <span class="token number">0</span><span class="token punctuation">;</span>
<span class="token variable">$verzeichnis</span> <span class="token operator">=</span> <span class="token string double-quoted-string">"img/"</span><span class="token punctuation">;</span>
<span class="token variable">$handle</span> <span class="token operator">=</span> <span class="token function">openDir</span><span class="token punctuation">(</span><span class="token variable">$verzeichnis</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">while</span> <span class="token punctuation">(</span><span class="token variable">$datei</span> <span class="token operator">=</span> <span class="token function">readDir</span><span class="token punctuation">(</span><span class="token variable">$handle</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
<span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token variable">$datei</span> <span class="token operator">!=</span> <span class="token string double-quoted-string">"."</span> <span class="token operator">&&</span> <span class="token variable">$datei</span> <span class="token operator">!=</span> <span class="token string double-quoted-string">".."</span> <span class="token operator">&&</span> <span class="token operator">!</span><span class="token function">is_dir</span><span class="token punctuation">(</span><span class="token variable">$datei</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
<span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token function">strtolower</span><span class="token punctuation">(</span><span class="token punctuation">[</span><span class="token function">substr</span><span class="token punctuation">(</span><span class="token punctuation">]</span><span class="token punctuation">(</span><span class="token argument-name">http</span><span class="token punctuation">:</span><span class="token comment">//www.welten-bau.de/test/testseite_uebung1/img/)$datei,-4) == '.gif')) || strtolower(substr(http://www.welten-bau.de/test/testseite_uebung1/img/)$datei,-4)) == ".png" || strtolower(http://www.welten-bau.de/test/testseite_uebung1/img/)$datei,-4)) == ".jpg"{</span>
<span class="token variable">$entry</span> <span class="token operator">=</span> <span class="token punctuation">[</span>
<span class="token string single-quoted-string">'name'</span> <span class="token operator">=></span> <span class="token variable">$verzeichnis</span> <span class="token operator">.</span> <span class="token variable">$datei</span><span class="token punctuation">,</span>
<span class="token string single-quoted-string">'bildabmessungen'</span> <span class="token operator">=></span> <span class="token function">getImageSize</span><span class="token punctuation">(</span><span class="token variable">$verzeichnis_datei</span> <span class="token punctuation">[</span><span class="token variable">$i</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">,</span>
<span class="token string single-quoted-string">'dings'</span> <span class="token operator">=></span> <span class="token string single-quoted-string">'bums'</span>
<span class="token punctuation">]</span><span class="token punctuation">;</span>
<span class="token keyword">echo</span> <span class="token string double-quoted-string">"<img src=\"<span class="token interpolation"><span class="token punctuation">{</span><span class="token variable">$entry</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'name'</span><span class="token punctuation">]</span><span class="token punctuation">}</span></span>\" width=\"<span class="token interpolation"><span class="token punctuation">{</span><span class="token variable">$entry</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'bildabmessungen'</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">}</span></span>\" height=\"<span class="token interpolation"><span class="token punctuation">{</span><span class="token variable">$entry</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'bildabmessungen'</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span><span class="token punctuation">}</span></span>\"> <br>\n"</span><span class="token punctuation">;</span>
<span class="token variable">$verzeichnis</span><span class="token punctuation">[</span><span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token variable">$entry</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
</span></code></pre>
<p>Ich meinte das hier!!! <em>ddd</em></p>
https://forum.selfhtml.org/self/2017/oct/12/mit-php-bild-daten-aus-einem-ordner-auslesen/1706144#m1706144
Rolf B
2017-10-13T07:52:42Z
2017-10-13T07:57:34Z
Mit PHP Bild-Daten aus einem Ordner auslesen
<p>Hallo einsiedler,</p>
<p>bezahlt wird hier nicht, aber Selfhtml hat ein <a href="https://selfhtml.org/spenden.html" rel="noopener noreferrer">Spendenkonto</a>, falls Du Überdruck im Geldbeutel hast.</p>
<p>Du hast meinen Vorschlag mit dem $entry etwas anders umgesetzt, das macht aber nichts :)</p>
<p>Einen Teil deiner Fragen verstehe ich nicht, weil das, was ich auf welten-bau.de angezeigt bekomme, nicht zu deinen Fehlerbeschreibungen passt. Ich sehe auch nicht, dass dein Script eine Liste erzeugt, aber welten-bae.de liefert eine. Offenbar ist das Script mittlerweile weiterentwickelt worden und Du hast die Probleme teilweise schon gelöst.</p>
<p>Also erstmal nur die „einfachen“ Fehler:</p>
<h4>echo '$Verzeichnis + $NAME ' . $entry[$i] ['verzeichnis+name']</h4><p>zeigt deshalb nichts an, weil du bei dem Befüllen dieses Eintrags in $entry[i] die array_merge Funktion verwendest. array_merge erwartet aber zwei Arrays als Eingabe und hängt sie zusammen. DU willst zwei Strings zusammenketten - und dafür reicht <code>$verz . $datei</code> vollkommen aus. Lass den array_merge-Aufruf darum herum einfach weg.</p>
<h4>echo 'BILDabmessungen ' . $entry[$i] ['bildabmessungen'[0]] . "\n";</h4><p>zeigt nichts an, weil Du die Array-Zugriffe falsch schachtelst. Was Du geschrieben hast, ist (in der Reihenfolge wie PHP es durchführt)</p>
<ul>
<li>nimm die Zeichenkette 'bildabmessungen'</li>
<li>hol die das erste Zeichen davon - also 'b'</li>
<li>verwende das als Zugriffsschlüssel für $entry[i] - das findet nichts.</li>
</ul>
<p>Richtig ist: <code>$entry[$i] ['bildabmessungen'] [0] . "\n";</code></p>
<h4>Sortierung nach Name</h4><p>Hierfür musst Du den Einlesevorgang von der Ausgabe trennen. D.h. du brauchst zwei Schleifen, die nacheinander laufen. Dazwischen sortierst Du das Array.</p>
<p>Zum Sortieren bietet es sich an, das $entry-Array NICHT numerisch zu indizieren, sondern den Dateinamen als Index zu verwenden (also ein assoziatives Array). Die ksort-Funktion macht das Sortieren dann leicht (andernfalls müsstest Du mit usort und einem Sort-Callback herumbasteln).</p>
<pre><code class="block language-php"><span class="token variable">$entry</span> <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token punctuation">;</span> <span class="token comment">// $entry als leeres Array vorbereiten</span>
<span class="token keyword">while</span> <span class="token punctuation">(</span><span class="token variable">$datei</span> <span class="token operator">=</span> <span class="token function">readDir</span><span class="token punctuation">(</span><span class="token variable">$verzeichnis</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
<span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token variable">$datei</span> <span class="token operator">!=</span> <span class="token string double-quoted-string">"."</span> <span class="token operator">&&</span> <span class="token variable">$datei</span> <span class="token operator">!=</span> <span class="token string double-quoted-string">".."</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
<span class="token variable">$entry</span><span class="token punctuation">[</span><span class="token variable">$datei</span><span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token punctuation">[</span>
<span class="token string single-quoted-string">'name'</span> <span class="token operator">=></span> <span class="token variable">$datei</span><span class="token punctuation">,</span>
<span class="token string single-quoted-string">'verzeichnis+name'</span> <span class="token operator">=></span> <span class="token variable">$verz</span> <span class="token operator">.</span> <span class="token variable">$datei</span><span class="token punctuation">,</span>
<span class="token string single-quoted-string">'bildabmessungen'</span> <span class="token operator">=></span> <span class="token function">getImageSize</span><span class="token punctuation">(</span><span class="token variable">$datei</span><span class="token punctuation">)</span><span class="token punctuation">,</span>
<span class="token string single-quoted-string">'berechnungen'</span> <span class="token operator">=></span> <span class="token string single-quoted-string">'berechnungen'</span>
<span class="token punctuation">]</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
<span class="token comment">// SORT_NATURAL würde bsw. img2 vor img10 einsortieren (was normalerweise nicht passiert)</span>
<span class="token comment">// SORT_FLAG_CASE sortiert case-insensitive - lass das weg wenn du das nicht willst</span>
<span class="token function">ksort</span><span class="token punctuation">(</span><span class="token variable">$entry</span><span class="token punctuation">,</span> <span class="token class-name">SORT_NATURAL</span> <span class="token operator">|</span> <span class="token class-name">SORT_FLAG_CASE</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token comment">// Ausgeben</span>
<span class="token keyword">foreach</span> <span class="token punctuation">(</span><span class="token variable">$entry</span> <span class="token keyword">as</span> <span class="token variable">$datei</span> <span class="token operator">=></span> <span class="token variable">$eintrag</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
<span class="token keyword">echo</span> <span class="token string double-quoted-string">"<a href=\"img/<span class="token interpolation"><span class="token variable">$datei</span></span>\"> <span class="token interpolation"><span class="token variable">$datei</span></span></a><br>\n"</span><span class="token punctuation">;</span>
<span class="token keyword">echo</span> <span class="token string double-quoted-string">"Vollst. Name: <span class="token interpolation"><span class="token punctuation">{</span><span class="token variable">$eintrag</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'verzeichnis+name'</span><span class="token punctuation">]</span><span class="token punctuation">}</span></span>\n"</span><span class="token punctuation">;</span>
<span class="token keyword">echo</span> <span class="token string double-quoted-string">"Bildabmessungen: <span class="token interpolation"><span class="token punctuation">{</span><span class="token variable">$eintrag</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'bildabmessungen'</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">}</span></span>\n"</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
</code></pre>
<p><em>Rolf</em></p>
<div class="signature">-- <br>
sumpsi - posui - clusi
</div>
https://forum.selfhtml.org/self/2017/oct/12/mit-php-bild-daten-aus-einem-ordner-auslesen/1706146#m1706146
TS
ts-self@online.de
https://bitworks.de
2017-10-13T08:12:58Z
2017-10-13T08:13:54Z
Mit PHP Bild-Daten aus einem Ordner auslesen
<p>Hello,</p>
<p>Du hast uns nicht zugelesen!</p>
<p>Ich wiederhole hier nur erst meine Einwände bezüglich der richtigen Anwendung von <a href="http://php.net/manual/en/function.readdir.php" rel="noopener noreferrer">readdir()</a> (schau dir das Beispiel bitte genau an!) und der geforderten Fehlerbehandlung. Weiterer Beitrag zum Thread folgt eventuell später noch.</p>
<p>Mach aus dem ganzen Ding eine Funktion und füge nach jedem strittigen Statement ggf. eine eigene Logsequenz ein, <strong>wenn PHP diese im Betrieb nicht eigenständig erzeugen würde</strong>.</p>
<p>#Beispiel:</p>
<pre><code class="block language-php"> <span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token constant boolean">false</span> <span class="token operator">===</span> <span class="token punctuation">(</span><span class="token variable">$dh</span> <span class="token operator">=</span> <span class="token function">openDir</span><span class="token punctuation">(</span><span class="token variable">$path</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
<span class="token punctuation">{</span>
<span class="token function">error_log</span><span class="token punctuation">(</span><span class="token string single-quoted-string">'...'</span> <span class="token operator">.</span> <span class="token function">error_get_last</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">.</span> <span class="token string single-quoted-string">' ... '</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">return</span> <span class="token constant boolean">false</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
</code></pre>
<p>Wann das genau sinnvoll ist, sollte nochmals separat diskutiert werden. Obiges war nur ein Syntax-Beispiel. Das <code>return false</code> ist aber bei Fehler auf jeden Fall sinnvoll, wenn das Weiterarbeiten ohnehin nur Folgefehler verursachen würde.</p>
<p>Das ist dann auch der Grund für eine fein granulierte Aufgliederung in Funktionen/Methoden mit genau abgegrenzten Aufgaben und normalerweise ohne eigene Ausgabe über den Standardausgabekanal. Nur Funktionen, die gezielt für die Ausgabe gedacht sind, sollten auch eine solge erzeugen.</p>
<p>Liebe Grüße<br>
Tom S.</p>
<div class="signature">-- <br>
Es gibt nichts Gutes, außer man tut es!<br>
Das Leben selbst ist der Sinn.<br>
</div>
https://forum.selfhtml.org/self/2017/oct/12/mit-php-bild-daten-aus-einem-ordner-auslesen/1706149#m1706149
Robert B.
2017-10-13T09:04:22Z
2017-10-13T09:04:22Z
Mit PHP Bild-Daten aus einem Ordner auslesen
<p>Moin,</p>
<p>in deinem Code <a href="https://forum.selfhtml.org/m1706094" rel="noopener noreferrer">fehlt</a> <a href="https://forum.selfhtml.org/m1706097" rel="noopener noreferrer">etwas</a>.</p>
<p>Viele Grüße<br>
Robert</p>
https://forum.selfhtml.org/self/2017/oct/12/mit-php-bild-daten-aus-einem-ordner-auslesen/1706171#m1706171
einsiedler
2017-10-13T23:11:57Z
2017-10-13T23:11:57Z
Mit PHP Bild-Daten aus einem Ordner auslesen
<p>Soweit, so gut!</p>
<p>Gut sieht es aus, und ich hoffe es ist nun alles richtig!</p>
<pre><code class="block language-php"><span class="token php language-php"><span class="token delimiter important"><?php</span>
<span class="token variable">$entry</span> <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token punctuation">;</span>
<span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token variable">$handle</span> <span class="token operator">=</span> <span class="token function">opendir</span><span class="token punctuation">(</span><span class="token string single-quoted-string">'img/'</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
<span class="token keyword">while</span> <span class="token punctuation">(</span><span class="token constant boolean">false</span> <span class="token operator">!==</span> <span class="token punctuation">(</span><span class="token variable">$verzeichnis</span> <span class="token operator">=</span> <span class="token function">readdir</span><span class="token punctuation">(</span><span class="token variable">$handle</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
<span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token variable">$verzeichnis</span> <span class="token operator">!=</span> <span class="token string double-quoted-string">"."</span> <span class="token operator">&&</span> <span class="token variable">$verzeichnis</span> <span class="token operator">!=</span> <span class="token string double-quoted-string">".."</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
<span class="token variable">$entry</span><span class="token punctuation">[</span><span class="token variable">$verzeichnis</span><span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token punctuation">[</span>
<span class="token string single-quoted-string">'name'</span> <span class="token operator">=></span> <span class="token variable">$verzeichnis</span><span class="token punctuation">,</span>
<span class="token string single-quoted-string">'verzeichnis+name'</span> <span class="token operator">=></span> <span class="token string single-quoted-string">'img/'</span> <span class="token operator">.</span> <span class="token variable">$verzeichnis</span><span class="token punctuation">,</span>
<span class="token string single-quoted-string">'bildabmessungen'</span> <span class="token operator">=></span> <span class="token function">getImageSize</span><span class="token punctuation">(</span><span class="token string single-quoted-string">'img/'</span> <span class="token operator">.</span> <span class="token variable">$verzeichnis</span><span class="token punctuation">)</span><span class="token punctuation">,</span>
<span class="token string single-quoted-string">'berechnungen'</span> <span class="token operator">=></span> <span class="token string single-quoted-string">'berechnungen'</span>
<span class="token punctuation">]</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
<span class="token function">ksort</span><span class="token punctuation">(</span><span class="token variable">$entry</span><span class="token punctuation">,</span> <span class="token class-name">SORT_NATURAL</span> <span class="token operator">|</span> <span class="token class-name">SORT_FLAG_CASE</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">foreach</span> <span class="token punctuation">(</span><span class="token variable">$entry</span> <span class="token keyword">as</span> <span class="token variable">$verzeichnis</span> <span class="token operator">=></span> <span class="token variable">$eintrag</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
<span class="token keyword">echo</span> <span class="token string double-quoted-string">"name : <span class="token interpolation"><span class="token punctuation">{</span><span class="token variable">$verzeichnis</span><span class="token punctuation">}</span></span>\n"</span><span class="token punctuation">;</span>
<span class="token keyword">echo</span> <span class="token string double-quoted-string">" \n"</span><span class="token punctuation">;</span>
<span class="token keyword">echo</span> <span class="token string double-quoted-string">"pfad & name : <span class="token interpolation"><span class="token punctuation">{</span><span class="token variable">$entry</span><span class="token punctuation">[</span><span class="token variable">$verzeichnis</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'verzeichnis+name'</span><span class="token punctuation">]</span><span class="token punctuation">}</span></span>\n"</span><span class="token punctuation">;</span>
<span class="token keyword">echo</span> <span class="token string double-quoted-string">" \n"</span><span class="token punctuation">;</span>
<span class="token keyword">echo</span> <span class="token string double-quoted-string">"Bildabmessungen == width: <span class="token interpolation"><span class="token punctuation">{</span><span class="token variable">$entry</span><span class="token punctuation">[</span><span class="token variable">$verzeichnis</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'bildabmessungen'</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">}</span></span> height: <span class="token interpolation"><span class="token punctuation">{</span><span class="token variable">$entry</span><span class="token punctuation">[</span><span class="token variable">$verzeichnis</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'bildabmessungen'</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span><span class="token punctuation">}</span></span>\n"</span><span class="token punctuation">;</span>
<span class="token keyword">echo</span> <span class="token string double-quoted-string">" \n"</span><span class="token punctuation">;</span>
<span class="token keyword">echo</span> <span class="token string double-quoted-string">"<a href=\"img/<span class="token interpolation"><span class="token variable">$verzeichnis</span></span>\"><span class="token interpolation"><span class="token variable">$verzeichnis</span></span></a><br>\n"</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token function">closedir</span><span class="token punctuation">(</span><span class="token variable">$handle</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token delimiter important">?></span></span>
</code></pre>
<p>Er gibt mir folgendes aus: <a href="http://www.welten-bau.de/test/testseite_uebung1/bildausgabe_demo_B.php" rel="nofollow noopener noreferrer">DEMO </a></p>
<p>An diese Kurzschreibweise kann ich mich irgendwie nicht gewöhnen!</p>
<p>Bitte nocheinmal kurz drübergucken…</p>
<p>Morgen gehts weiter…</p>
<p>Gruß der einsiedelnde</p>
https://forum.selfhtml.org/self/2017/oct/12/mit-php-bild-daten-aus-einem-ordner-auslesen/1706176#m1706176
TS
ts-self@online.de
https://bitworks.de
2017-10-14T08:14:43Z
2017-10-14T12:42:18Z
Mit PHP Bild-Daten aus einem Ordner auslesen
<p>Hello,</p>
<p>sieht doch schon besser aus. Ein paar "Kleinigkeiten" sollten aber noch verbessert werden. :-)</p>
<p>Grundsätzlich solltest Du dich dazu durchringen, abgrenzbare Funktionen aus dem Code zu machen. Dann lassen sich die Fehler, notwenige Änderungen am Code, usw. besser zuordnen. Und auch anderenfalls sollten die "IF-Blöcke" auch immer das umschließen, was sie denn abfragen.</p>
<p>Beispiel: Wenn kein Handle für das Verzeichnis erstellt werden konnte, kann man auch keinen Kanal für dieses Handle wieder schließen. Es gibt ja keinen!</p>
<p>Und Variablen sollen das enthalten, was ihre Namen suggerieren. <code>$verzeichnis</code> ist daher ein irreführender Name. Du solltest z. B. lieber <code>$dateiname</code> dafür benutzen.</p>
<p>Ich ändere deshalb nicht grundsätzlich deinen Code, sondern sortiere ihn nur etwas.</p>
<pre><code class="block language-php">
<span class="token php language-php"><span class="token delimiter important"><?php</span>
<span class="token keyword">function</span> <span class="token function-definition function">get_image_filenames</span><span class="token punctuation">(</span><span class="token variable">$verzeichnis</span><span class="token operator">=</span><span class="token constant boolean">false</span><span class="token punctuation">)</span>
<span class="token punctuation">{</span>
<span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token variable">$verzeichnis</span> <span class="token operator">===</span> <span class="token constant boolean">false</span><span class="token punctuation">)</span> <span class="token keyword">return</span> <span class="token constant boolean">false</span><span class="token punctuation">;</span> <span class="token comment">## Daisy-Chain-Skip</span>
<span class="token variable">$verzeichnis</span> <span class="token operator">=</span> <span class="token function">rtrim</span><span class="token punctuation">(</span><span class="token variable">$verzeichnis</span><span class="token punctuation">,</span> <span class="token string single-quoted-string">'/'</span><span class="token punctuation">)</span> <span class="token operator">.</span> <span class="token string single-quoted-string">'/'</span><span class="token punctuation">;</span> <span class="token comment">## Normierung nach POSIX</span>
<span class="token variable">$_liste</span> <span class="token operator">=</span> <span class="token keyword">array</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token variable">$vhandle</span> <span class="token operator">=</span> <span class="token function">opendir</span><span class="token punctuation">(</span><span class="token variable">$verzeichnis</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
<span class="token punctuation">{</span>
<span class="token keyword">while</span> <span class="token punctuation">(</span><span class="token constant boolean">false</span> <span class="token operator">!==</span> <span class="token punctuation">(</span><span class="token variable">$filename</span> <span class="token operator">=</span> <span class="token function">readdir</span><span class="token punctuation">(</span><span class="token variable">$vhandle</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
<span class="token punctuation">{</span>
<span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token function">is_file</span><span class="token punctuation">(</span><span class="token variable">$filename</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
<span class="token punctuation">{</span>
<span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token constant boolean">false</span> <span class="token operator">!==</span> <span class="token punctuation">(</span><span class="token variable">$imgsize</span> <span class="token operator">=</span> <span class="token function">getImageSize</span><span class="token punctuation">(</span><span class="token variable">$verzeichnis</span> <span class="token operator">.</span> <span class="token variable">$filename</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment">## ist es ein Bild?</span>
<span class="token punctuation">{</span>
<span class="token variable">$_liste</span><span class="token punctuation">[</span><span class="token variable">$filename</span><span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token keyword">array</span><span class="token punctuation">(</span>
<span class="token string single-quoted-string">'name'</span> <span class="token operator">=></span> <span class="token variable">$filename</span><span class="token punctuation">,</span>
<span class="token string single-quoted-string">'pfad'</span> <span class="token operator">=></span> <span class="token punctuation">(</span><span class="token variable">$verzeichnis</span> <span class="token operator">.</span> <span class="token variable">$filename</span><span class="token punctuation">)</span><span class="token punctuation">,</span>
<span class="token string single-quoted-string">'bildabmessungen'</span> <span class="token operator">=></span> <span class="token variable">$imgsize</span><span class="token punctuation">,</span>
<span class="token string single-quoted-string">'berechnungen'</span> <span class="token operator">=></span> <span class="token string single-quoted-string">'berechnungen'</span>
<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token comment">## Berechnungen ist deine nächste Baustelle? </span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
<span class="token function">ksort</span><span class="token punctuation">(</span><span class="token variable">$entry</span><span class="token punctuation">,</span> <span class="token class-name">SORT_NATURAL</span> <span class="token operator">|</span> <span class="token class-name">SORT_FLAG_CASE</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">closedir</span><span class="token punctuation">(</span><span class="token variable">$handle</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">return</span> <span class="token variable">$_liste</span>
<span class="token punctuation">}</span>
<span class="token keyword">return</span> <span class="token constant boolean">false</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token comment">#------------------------------------------------------------------------------- </span>
<span class="token keyword">function</span> <span class="token function-definition function">html_list_filename</span><span class="token punctuation">(</span><span class="token variable">$_liste</span><span class="token operator">=</span><span class="token constant boolean">false</span><span class="token punctuation">)</span>
<span class="token punctuation">{</span>
<span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token variable">$_liste</span> <span class="token operator">===</span> <span class="token constant boolean">false</span><span class="token punctuation">)</span> <span class="token keyword">or</span> <span class="token punctuation">(</span><span class="token operator">!</span><span class="token function">is_array</span><span class="token punctuation">(</span><span class="token variable">$_liste</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token keyword">return</span> <span class="token constant boolean">false</span><span class="token punctuation">;</span> <span class="token comment">## Daisy-Chain-Skip</span>
<span class="token variable">$htmlout</span> <span class="token operator">=</span> <span class="token string single-quoted-string">''</span><span class="token punctuation">;</span>
<span class="token keyword">foreach</span> <span class="token punctuation">(</span><span class="token variable">$_liste</span> <span class="token keyword">as</span> <span class="token variable">$filename</span> <span class="token operator">=></span> <span class="token variable">$_fileinfo</span><span class="token punctuation">)</span>
<span class="token punctuation">{</span>
<span class="token variable">$htmlout</span> <span class="token operator">=</span> <span class="token string double-quoted-string">"\n<pre>\n"</span><span class="token punctuation">;</span>
<span class="token variable">$htmlout</span> <span class="token operator">.=</span> <span class="token string double-quoted-string">"name:\t <span class="token interpolation"><span class="token punctuation">{</span><span class="token variable">$filename</span><span class="token punctuation">}</span></span>\n"</span><span class="token punctuation">;</span>
<span class="token variable">$htmlout</span> <span class="token operator">.=</span> <span class="token string double-quoted-string">"\n"</span><span class="token punctuation">;</span>
<span class="token variable">$htmlout</span> <span class="token operator">.=</span> <span class="token string double-quoted-string">"pfad & name:\t <span class="token interpolation"><span class="token punctuation">{</span><span class="token variable">$_fileinfo</span><span class="token punctuation">[</span>path<span class="token punctuation">]</span><span class="token punctuation">}</span></span>\n"</span><span class="token punctuation">;</span>
<span class="token variable">$htmlout</span> <span class="token operator">.=</span> <span class="token string double-quoted-string">"\n"</span><span class="token punctuation">;</span>
<span class="token variable">$htmlout</span> <span class="token operator">.=</span> <span class="token string double-quoted-string">"Bildabmessungen:\n"</span><span class="token punctuation">;</span>
<span class="token variable">$htmlout</span> <span class="token operator">.=</span> <span class="token string double-quoted-string">"\twidth:\t <span class="token interpolation"><span class="token punctuation">{</span><span class="token variable">$entry</span><span class="token punctuation">[</span><span class="token variable">$verzeichnis</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'bildabmessungen'</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">}</span></span>\n"</span><span class="token punctuation">;</span>
<span class="token variable">$htmlout</span> <span class="token operator">.=</span> <span class="token string double-quoted-string">"\theight:\t <span class="token interpolation"><span class="token punctuation">{</span><span class="token variable">$entry</span><span class="token punctuation">[</span><span class="token variable">$verzeichnis</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'bildabmessungen'</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span><span class="token punctuation">}</span></span>\n"</span><span class="token punctuation">;</span>
<span class="token variable">$htmlout</span> <span class="token operator">.=</span> <span class="token string double-quoted-string">"\n"</span><span class="token punctuation">;</span>
<span class="token variable">$htmlout</span> <span class="token operator">.=</span> <span class="token string double-quoted-string">"<a href=\"<span class="token interpolation"><span class="token variable">$path</span></span>\"><span class="token interpolation"><span class="token variable">$path</span></span></a>\n"</span><span class="token punctuation">;</span>
<span class="token variable">$htmlout</span> <span class="token operator">.=</span> <span class="token string double-quoted-string">"</pre>\n"</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token keyword">return</span> <span class="token variable">$htmlout</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token comment">#------------------------------------------------------------------------------- </span>
<span class="token variable">$_liste</span> <span class="token operator">=</span> <span class="token function">get_image_filenames</span><span class="token punctuation">(</span><span class="token string single-quoted-string">'img/'</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">echo</span> <span class="token function">html_list_filename</span><span class="token punctuation">(</span><span class="token variable">$_liste</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token delimiter important">?></span></span>
</code></pre>
<p>Das lässt sich bestimmt alles noch viel hübscher schreiben. Mindestens für den Anfang würde ich aber auf jeden Fall von Kurzschreibweisen absehen!</p>
<p>Man könnte es als nächsts nun noch durch Error-Logging ergänzen, oder den berüchtigten Filter auf MIME-Types. Da getimagesize() hierfür schon sehr viele Informationen zur Verfügung stellt (im zweiten, bisher ungenutzten Parameter), würde ich dort ansetzen.</p>
<p>Bitte selber den/die Fehler suchen, der/die laut Highlighter noch drinstecken. Ich kann es jetzt so nicht testen.</p>
<p>Liebe Grüße<br>
Tom S.</p>
<div class="signature">-- <br>
Es gibt nichts Gutes, außer man tut es!<br>
Das Leben selbst ist der Sinn.<br>
</div>
https://forum.selfhtml.org/self/2017/oct/12/mit-php-bild-daten-aus-einem-ordner-auslesen/1706178#m1706178
TS
ts-self@online.de
https://bitworks.de
2017-10-14T09:03:11Z
2017-10-14T12:42:28Z
Mit PHP Bild-Daten aus einem Ordner auslesen
<p>Hello,</p>
<p>die zweite Funktion tauschen wir mal aus...</p>
<pre><code class="block language-php"><span class="token keyword">function</span> <span class="token function-definition function">html_list_filename</span><span class="token punctuation">(</span><span class="token variable">$_liste</span><span class="token punctuation">)</span>
<span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token variable">$_liste</span> <span class="token operator">===</span> <span class="token constant boolean">false</span><span class="token punctuation">)</span> <span class="token keyword">or</span> <span class="token punctuation">(</span><span class="token operator">!</span><span class="token function">is_array</span><span class="token punctuation">(</span><span class="token variable">$_liste</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token keyword">return</span> <span class="token constant boolean">false</span><span class="token punctuation">;</span> <span class="token comment">## Daisy-Chain-Skip</span>
<span class="token variable">$htmlout</span> <span class="token operator">=</span> <span class="token string single-quoted-string">''</span><span class="token punctuation">;</span>
<span class="token keyword">foreach</span> <span class="token punctuation">(</span><span class="token variable">$_liste</span> <span class="token keyword">as</span> <span class="token variable">$filename</span> <span class="token operator">=></span> <span class="token variable">$_fileinfo</span><span class="token punctuation">)</span>
<span class="token punctuation">{</span>
<span class="token variable">$htmlout</span> <span class="token operator">=</span> <span class="token string double-quoted-string">"\n<pre>\n"</span><span class="token punctuation">;</span>
<span class="token variable">$htmlout</span> <span class="token operator">.=</span> <span class="token string double-quoted-string">"name:\t <span class="token interpolation"><span class="token punctuation">{</span><span class="token variable">$filename</span><span class="token punctuation">}</span></span>\n"</span><span class="token punctuation">;</span>
<span class="token variable">$htmlout</span> <span class="token operator">.=</span> <span class="token string double-quoted-string">"\n"</span><span class="token punctuation">;</span>
<span class="token variable">$htmlout</span> <span class="token operator">.=</span> <span class="token string double-quoted-string">"pfad & name:\t <span class="token interpolation"><span class="token punctuation">{</span><span class="token variable">$_fileinfo</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'path'</span><span class="token punctuation">]</span><span class="token punctuation">}</span></span>\n"</span><span class="token punctuation">;</span>
<span class="token variable">$htmlout</span> <span class="token operator">.=</span> <span class="token string double-quoted-string">"\n"</span><span class="token punctuation">;</span>
<span class="token variable">$htmlout</span> <span class="token operator">.=</span> <span class="token string double-quoted-string">"Bildabmessungen:\n"</span><span class="token punctuation">;</span>
<span class="token variable">$htmlout</span> <span class="token operator">.=</span> <span class="token string double-quoted-string">"\twidth:\t <span class="token interpolation"><span class="token punctuation">{</span><span class="token variable">$_fileinfo</span><span class="token punctuation">[</span><span class="token variable">$filename</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'bildabmessungen'</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">}</span></span>\n"</span><span class="token punctuation">;</span>
<span class="token variable">$htmlout</span> <span class="token operator">.=</span> <span class="token string double-quoted-string">"\theight:\t <span class="token interpolation"><span class="token punctuation">{</span><span class="token variable">$_fileinfo</span><span class="token punctuation">[</span><span class="token variable">$filename</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'bildabmessungen'</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span><span class="token punctuation">}</span></span>\n"</span><span class="token punctuation">;</span>
<span class="token variable">$htmlout</span> <span class="token operator">.=</span> <span class="token string double-quoted-string">"\n"</span><span class="token punctuation">;</span>
<span class="token variable">$htmlout</span> <span class="token operator">.=</span> <span class="token string double-quoted-string">"<a href=\""</span><span class="token operator">.</span> <span class="token function">htmlspecialchars</span><span class="token punctuation">(</span><span class="token variable">$_fileinfo</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'path'</span><span class="token punctuation">]</span><span class="token punctuation">,</span> <span class="token constant">ENT_QUOTES</span><span class="token punctuation">)</span> <span class="token operator">.</span> <span class="token string double-quoted-string">"\">"</span> <span class="token operator">.</span> <span class="token function">htmlspecialchars</span><span class="token punctuation">(</span><span class="token variable">$_fileinfo</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'path'</span><span class="token punctuation">]</span><span class="token punctuation">,</span> <span class="token constant">ENT_QUOTES</span><span class="token punctuation">)</span> <span class="token operator">.</span> <span class="token string double-quoted-string">"</a>\n"</span><span class="token punctuation">;</span>
<span class="token variable">$htmlout</span> <span class="token operator">.=</span> <span class="token string double-quoted-string">"</pre>\n"</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token keyword">return</span> <span class="token variable">$htmlout</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
</code></pre>
<p>Ich hoffe, dass nun die Fehler beseitigt sind. Insbesondere bei der Ausgabe von Dateipfaden muss der Kontextwechsel beachtet werden.</p>
<p>Liebe Grüße<br>
Tom S.</p>
<div class="signature">-- <br>
Es gibt nichts Gutes, außer man tut es!<br>
Das Leben selbst ist der Sinn.<br>
</div>
https://forum.selfhtml.org/self/2017/oct/12/mit-php-bild-daten-aus-einem-ordner-auslesen/1706193#m1706193
einsiedler
2017-10-14T12:40:58Z
2017-10-14T12:40:58Z
Mit PHP Bild-Daten aus einem Ordner auslesen
<p>Vielen Dank! Das sieht prima aus! DANKE!</p>
<p>Leider steckt da wohl noch ein Fehler drinnen den ich nicht finde!</p>
<p>Die "Ausgabe-Funktion" braucht eigentlich nicht so umfangreich perfekt sein denn
sie diente mir jetzt lediglich dazu, zu sehen ob auch wirklich auch alles in den
Variablen enthalten ist. Später brauche ich diese "Ausgabe" nicht, sondern
möchte nur mit den Variablen weiter "rechnen" bzw. den Pfad ins
'<img scr="'<?php{$_fileinfo['path']}?>'>' hineinschreiben.</p>
<p>Villeicht findest Du den Fehler!</p>
<p>Grüsse der einsiedelnde</p>
https://forum.selfhtml.org/self/2017/oct/12/mit-php-bild-daten-aus-einem-ordner-auslesen/1706196#m1706196
einsiedler
2017-10-14T13:10:46Z
2017-10-14T13:10:46Z
Mit PHP Bild-Daten aus einem Ordner auslesen
<p><a href="http://www.welten-bau.de/test/testseite_uebung1/bildausgabe_demo_C.php" rel="nofollow noopener noreferrer">Fehlerseite NEU</a></p>
<p>Ich hab soweit dies: Hab 2-3 Sachen koregiert:</p>
<p>(Da steckt wohl noch ein Fehler drinnen, den ich einfach nicht finde:</p>
<pre><code class="block language-php"><span class="token php language-php"><span class="token delimiter important"><?php</span>
<span class="token keyword">function</span> <span class="token function-definition function">get_image_filenames</span><span class="token punctuation">(</span><span class="token variable">$verzeichnis</span><span class="token operator">=</span><span class="token constant boolean">false</span><span class="token punctuation">)</span>
<span class="token punctuation">{</span>
<span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token variable">$verzeichnis</span> <span class="token operator">===</span> <span class="token constant boolean">false</span><span class="token punctuation">)</span> <span class="token keyword">return</span> <span class="token constant boolean">false</span><span class="token punctuation">;</span> <span class="token comment">## Daisy-Chain-Skip</span>
<span class="token variable">$verzeichnis</span> <span class="token operator">=</span> <span class="token function">rtrim</span><span class="token punctuation">(</span><span class="token variable">$verzeichnis</span><span class="token punctuation">,</span> <span class="token string single-quoted-string">'/'</span><span class="token punctuation">)</span> <span class="token operator">.</span> <span class="token string single-quoted-string">'/'</span><span class="token punctuation">;</span> <span class="token comment">## Normierung nach POSIX</span>
<span class="token variable">$_liste</span> <span class="token operator">=</span> <span class="token keyword">array</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token variable">$vhandle</span> <span class="token operator">=</span> <span class="token function">opendir</span><span class="token punctuation">(</span><span class="token variable">$verzeichnis</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
<span class="token punctuation">{</span>
<span class="token keyword">while</span> <span class="token punctuation">(</span><span class="token constant boolean">false</span> <span class="token operator">!==</span> <span class="token punctuation">(</span><span class="token variable">$filename</span> <span class="token operator">=</span> <span class="token function">readdir</span><span class="token punctuation">(</span><span class="token variable">$vhandle</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
<span class="token punctuation">{</span>
<span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token function">is_file</span><span class="token punctuation">(</span><span class="token variable">$filename</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
<span class="token punctuation">{</span>
<span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token constant boolean">false</span> <span class="token operator">!==</span> <span class="token punctuation">(</span><span class="token variable">$imgsize</span> <span class="token operator">=</span> <span class="token function">getImageSize</span><span class="token punctuation">(</span><span class="token variable">$verzeichnis</span> <span class="token operator">.</span> <span class="token variable">$filename</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment">## ist es ein Bild?</span>
<span class="token punctuation">{</span>
<span class="token variable">$_liste</span><span class="token punctuation">[</span><span class="token variable">$filename</span><span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token keyword">array</span><span class="token punctuation">(</span>
<span class="token string single-quoted-string">'name'</span> <span class="token operator">=></span> <span class="token variable">$filename</span><span class="token punctuation">,</span>
<span class="token string single-quoted-string">'pfad'</span> <span class="token operator">=></span> <span class="token punctuation">(</span><span class="token variable">$verzeichnis</span> <span class="token operator">.</span> <span class="token variable">$filename</span><span class="token punctuation">)</span><span class="token punctuation">,</span>
<span class="token string single-quoted-string">'bildabmessungen'</span> <span class="token operator">=></span> <span class="token variable">$imgsize</span><span class="token punctuation">,</span>
<span class="token string single-quoted-string">'berechnungen'</span> <span class="token operator">=></span> <span class="token string single-quoted-string">'berechnungen'</span>
<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token comment">## Berechnungen ist deine nächste Baustelle? </span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
<span class="token function">ksort</span><span class="token punctuation">(</span><span class="token variable">$_liste</span><span class="token punctuation">[</span><span class="token variable">$filename</span><span class="token punctuation">]</span><span class="token punctuation">,</span> <span class="token class-name">SORT_NATURAL</span> <span class="token operator">|</span> <span class="token class-name">SORT_FLAG_CASE</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">closedir</span><span class="token punctuation">(</span><span class="token variable">$vhandle</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">return</span> <span class="token variable">$_liste</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token keyword">return</span> <span class="token constant boolean">false</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token comment">#------------------------------------------------------------------------------- </span>
<span class="token keyword">function</span> <span class="token function-definition function">html_list_filename</span><span class="token punctuation">(</span><span class="token variable">$_liste</span><span class="token punctuation">)</span>
<span class="token punctuation">{</span>
<span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token variable">$_liste</span> <span class="token operator">===</span> <span class="token constant boolean">false</span><span class="token punctuation">)</span> <span class="token keyword">or</span> <span class="token punctuation">(</span><span class="token operator">!</span><span class="token function">is_array</span><span class="token punctuation">(</span><span class="token variable">$_liste</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token keyword">return</span> <span class="token constant boolean">false</span><span class="token punctuation">;</span> <span class="token comment">## Daisy-Chain-Skip</span>
<span class="token variable">$htmlout</span> <span class="token operator">=</span> <span class="token string single-quoted-string">''</span><span class="token punctuation">;</span>
<span class="token keyword">foreach</span> <span class="token punctuation">(</span><span class="token variable">$_liste</span> <span class="token keyword">as</span> <span class="token variable">$filename</span> <span class="token operator">=></span> <span class="token variable">$_fileinfo</span><span class="token punctuation">)</span>
<span class="token punctuation">{</span>
<span class="token variable">$htmlout</span> <span class="token operator">=</span> <span class="token string double-quoted-string">"\n<pre>\n"</span><span class="token punctuation">;</span>
<span class="token variable">$htmlout</span> <span class="token operator">.=</span> <span class="token string double-quoted-string">"name:\t <span class="token interpolation"><span class="token punctuation">{</span><span class="token variable">$filename</span><span class="token punctuation">}</span></span>\n"</span><span class="token punctuation">;</span>
<span class="token variable">$htmlout</span> <span class="token operator">.=</span> <span class="token string double-quoted-string">"\n"</span><span class="token punctuation">;</span>
<span class="token variable">$htmlout</span> <span class="token operator">.=</span> <span class="token string double-quoted-string">"pfad & name:\t <span class="token interpolation"><span class="token punctuation">{</span><span class="token variable">$_fileinfo</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'path'</span><span class="token punctuation">]</span><span class="token punctuation">}</span></span>\n"</span><span class="token punctuation">;</span>
<span class="token variable">$htmlout</span> <span class="token operator">.=</span> <span class="token string double-quoted-string">"\n"</span><span class="token punctuation">;</span>
<span class="token variable">$htmlout</span> <span class="token operator">.=</span> <span class="token string double-quoted-string">"Bildabmessungen:\n"</span><span class="token punctuation">;</span>
<span class="token variable">$htmlout</span> <span class="token operator">.=</span> <span class="token string double-quoted-string">"\twidth:\t <span class="token interpolation"><span class="token punctuation">{</span><span class="token variable">$_fileinfo</span><span class="token punctuation">[</span><span class="token variable">$filename</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'bildabmessungen'</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">}</span></span>\n"</span><span class="token punctuation">;</span>
<span class="token variable">$htmlout</span> <span class="token operator">.=</span> <span class="token string double-quoted-string">"\theight:\t <span class="token interpolation"><span class="token punctuation">{</span><span class="token variable">$_fileinfo</span><span class="token punctuation">[</span><span class="token variable">$filename</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'bildabmessungen'</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span><span class="token punctuation">}</span></span>\n"</span><span class="token punctuation">;</span>
<span class="token variable">$htmlout</span> <span class="token operator">.=</span> <span class="token string double-quoted-string">"\n"</span><span class="token punctuation">;</span>
<span class="token variable">$htmlout</span> <span class="token operator">.=</span> <span class="token string double-quoted-string">"<a href=\""</span><span class="token operator">.</span> <span class="token function">htmlspecialchars</span><span class="token punctuation">(</span><span class="token variable">$_fileinfo</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'path'</span><span class="token punctuation">]</span><span class="token punctuation">,</span> <span class="token constant">ENT_QUOTES</span><span class="token punctuation">)</span> <span class="token operator">.</span> <span class="token string double-quoted-string">"\">"</span> <span class="token operator">.</span> <span class="token function">htmlspecialchars</span><span class="token punctuation">(</span><span class="token variable">$_fileinfo</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'path'</span><span class="token punctuation">]</span><span class="token punctuation">,</span> <span class="token constant">ENT_QUOTES</span><span class="token punctuation">)</span> <span class="token operator">.</span> <span class="token string double-quoted-string">"</a>\n"</span><span class="token punctuation">;</span>
<span class="token variable">$htmlout</span> <span class="token operator">.=</span> <span class="token string double-quoted-string">"</pre>\n"</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token keyword">return</span> <span class="token variable">$htmlout</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token comment">#------------------------------------------------------------------------------- </span>
<span class="token variable">$_liste</span> <span class="token operator">=</span> <span class="token function">get_image_filenames</span><span class="token punctuation">(</span><span class="token string single-quoted-string">'img/'</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">echo</span> <span class="token function">html_list_filename</span><span class="token punctuation">(</span><span class="token variable">$_liste</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token delimiter important">?></span></span>
</code></pre>
<p>Was ist dort noch falsch: <a href="http://www.welten-bau.de/test/testseite_uebung1/bildausgabe_demo_C.php" rel="nofollow noopener noreferrer">Fehlerseite NEU</a></p>
<p>Gruss der einsiedelnde</p>
https://forum.selfhtml.org/self/2017/oct/12/mit-php-bild-daten-aus-einem-ordner-auslesen/1706195#m1706195
TS
ts-self@online.de
https://bitworks.de
2017-10-14T13:04:34Z
2017-10-14T13:04:34Z
Mit PHP Bild-Daten aus einem Ordner auslesen
<p>Hello,</p>
<blockquote>
<p>Vielen Dank! Das sieht prima aus! DANKE!</p>
<p>Leider steckt da wohl noch ein Fehler drinnen den ich nicht finde!</p>
</blockquote>
<p>wie lauten denn die Fehlermeldungen?</p>
<p>Liebe Grüße<br>
Tom S.</p>
<div class="signature">-- <br>
Es gibt nichts Gutes, außer man tut es!<br>
Das Leben selbst ist der Sinn.<br>
</div>
https://forum.selfhtml.org/self/2017/oct/12/mit-php-bild-daten-aus-einem-ordner-auslesen/1706197#m1706197
einsiedler
2017-10-14T13:11:36Z
2017-10-14T13:11:36Z
Mit PHP Bild-Daten aus einem Ordner auslesen
<p>Geh mal auf: <a href="http://www.welten-bau.de/test/testseite_uebung1/bildausgabe_demo_C.php" rel="nofollow noopener noreferrer">Fehlerseite NEU</a></p>
https://forum.selfhtml.org/self/2017/oct/12/mit-php-bild-daten-aus-einem-ordner-auslesen/1706198#m1706198
TS
ts-self@online.de
https://bitworks.de
2017-10-14T13:14:34Z
2017-10-14T13:14:52Z
Mit PHP Bild-Daten aus einem Ordner auslesen
<p>Hello,</p>
<blockquote>
<p>Geh mal auf: <a href="http://www.welten-bau.de/test/testseite_uebung1/bildausgabe_demo_C.php" rel="nofollow noopener noreferrer">Fehlerseite NEU</a></p>
</blockquote>
<p>Ich bekomme gar keine Ausgabe.<br>
Also hast Du wohl die Fehlerausgabe abgeschaltet. Das ist für den produktiven Betrieb auch richtig. Fürs Debuggen benötigen wir aber die Fehlermeldungen.</p>
<p>Schreib mal (übergangsweise) oben in dein Skript <code>error_reporting(E_ALL);</code> rein. Sonst müsstest Du das ggf. Log anschauen.</p>
<p>Liebe Grüße<br>
Tom S.</p>
<div class="signature">-- <br>
Es gibt nichts Gutes, außer man tut es!<br>
Das Leben selbst ist der Sinn.<br>
</div>
https://forum.selfhtml.org/self/2017/oct/12/mit-php-bild-daten-aus-einem-ordner-auslesen/1706199#m1706199
einsiedler
2017-10-14T13:19:52Z
2017-10-14T13:22:15Z
Mit PHP Bild-Daten aus einem Ordner auslesen
<p>Da tut sich nichts.
Wie mache ich das?</p>
<p>Anm.: Hab da eventuell etwas:
Im developer-tool:
Failed to load resource: the server responded with a status of 500 (Internal Server Error)</p>
https://forum.selfhtml.org/self/2017/oct/12/mit-php-bild-daten-aus-einem-ordner-auslesen/1706200#m1706200
TS
ts-self@online.de
https://bitworks.de
2017-10-14T13:32:10Z
2017-10-14T13:34:59Z
Mit PHP Bild-Daten aus einem Ordner auslesen
<p>Hello,</p>
<p>debuggen, debuggen, debuggen ...</p>
<p>Die Funktionen einzeln testen. Dazu muss man sich passende Umgebungen schaffen. Du könntest z. B. erst einmal <code>function get_image_filenames()</code>testen, indem Du dir das resultierende Array mit print_r() anzeigen lässt.</p>
<p>Aber ich sehe schon einen Fehler:</p>
<pre><code class="block language-php"><span class="token php language-php"><span class="token delimiter important"><?php</span>
<span class="token keyword">function</span> <span class="token function-definition function">get_image_filenames</span><span class="token punctuation">(</span><span class="token variable">$verzeichnis</span><span class="token operator">=</span><span class="token constant boolean">false</span><span class="token punctuation">)</span>
<span class="token punctuation">{</span>
<span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token variable">$verzeichnis</span> <span class="token operator">===</span> <span class="token constant boolean">false</span><span class="token punctuation">)</span> <span class="token keyword">return</span> <span class="token constant boolean">false</span><span class="token punctuation">;</span> <span class="token comment">## Daisy-Chain-Skip</span>
<span class="token variable">$verzeichnis</span> <span class="token operator">=</span> <span class="token function">rtrim</span><span class="token punctuation">(</span><span class="token variable">$verzeichnis</span><span class="token punctuation">,</span> <span class="token string single-quoted-string">'/'</span><span class="token punctuation">)</span> <span class="token operator">.</span> <span class="token string single-quoted-string">'/'</span><span class="token punctuation">;</span> <span class="token comment">## Normierung nach POSIX</span>
<span class="token variable">$_liste</span> <span class="token operator">=</span> <span class="token keyword">array</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token variable">$vhandle</span> <span class="token operator">=</span> <span class="token function">opendir</span><span class="token punctuation">(</span><span class="token variable">$verzeichnis</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
<span class="token punctuation">{</span>
<span class="token keyword">while</span> <span class="token punctuation">(</span><span class="token constant boolean">false</span> <span class="token operator">!==</span> <span class="token punctuation">(</span><span class="token variable">$filename</span> <span class="token operator">=</span> <span class="token function">readdir</span><span class="token punctuation">(</span><span class="token variable">$vhandle</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
<span class="token punctuation">{</span>
<span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token function">is_file</span><span class="token punctuation">(</span><span class="token variable">$verzeichnis</span> <span class="token operator">.</span> <span class="token variable">$filename</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
<span class="token punctuation">{</span>
<span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token constant boolean">false</span> <span class="token operator">!==</span> <span class="token punctuation">(</span><span class="token variable">$imgsize</span> <span class="token operator">=</span> <span class="token function">getImageSize</span><span class="token punctuation">(</span><span class="token variable">$verzeichnis</span> <span class="token operator">.</span> <span class="token variable">$filename</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment">## ist es ein Bild?</span>
<span class="token punctuation">{</span>
<span class="token variable">$_liste</span><span class="token punctuation">[</span><span class="token variable">$filename</span><span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token keyword">array</span><span class="token punctuation">(</span>
<span class="token string single-quoted-string">'name'</span> <span class="token operator">=></span> <span class="token variable">$filename</span><span class="token punctuation">,</span>
<span class="token string single-quoted-string">'pfad'</span> <span class="token operator">=></span> <span class="token punctuation">(</span><span class="token variable">$verzeichnis</span> <span class="token operator">.</span> <span class="token variable">$filename</span><span class="token punctuation">)</span><span class="token punctuation">,</span>
<span class="token string single-quoted-string">'bildabmessungen'</span> <span class="token operator">=></span> <span class="token variable">$imgsize</span><span class="token punctuation">,</span>
<span class="token string single-quoted-string">'berechnungen'</span> <span class="token operator">=></span> <span class="token string single-quoted-string">'berechnungen'</span>
<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token comment">## Berechnungen ist deine nächste Baustelle? </span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
<span class="token function">ksort</span><span class="token punctuation">(</span><span class="token variable">$entry</span><span class="token punctuation">,</span> <span class="token class-name">SORT_NATURAL</span> <span class="token operator">|</span> <span class="token class-name">SORT_FLAG_CASE</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">closedir</span><span class="token punctuation">(</span><span class="token variable">$handle</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">return</span> <span class="token variable">$_liste</span>
<span class="token punctuation">}</span>
<span class="token keyword">return</span> <span class="token constant boolean">false</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token comment">#-------------------------------------------------------------—</span>
<span class="token variable">$_liste</span> <span class="token operator">=</span> <span class="token function">get_image_filenames</span><span class="token punctuation">(</span><span class="token string single-quoted-string">'img/'</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">echo</span> <span class="token string double-quoted-string">"<pre>\n"</span><span class="token punctuation">;</span>
<span class="token keyword">echo</span> <span class="token function">print_r</span><span class="token punctuation">(</span><span class="token variable">$_liste</span><span class="token punctuation">,</span> <span class="token number">1</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">echo</span> <span class="token string double-quoted-string">"</pre>\n"</span><span class="token punctuation">;</span>
<span class="token delimiter important">?></span></span>
</code></pre>
<p>Es muss wohl <code>if (is_file($verzeichnis . $filename))</code> heißen, da das Skript ja im aktuellen Working Directory ausgeführt wird, und die Files im Unterverzeichnis "$verzeichnis" liegen.</p>
<p>Liebe Grüße<br>
Tom S.</p>
<div class="signature">-- <br>
Es gibt nichts Gutes, außer man tut es!<br>
Das Leben selbst ist der Sinn.<br>
</div>
https://forum.selfhtml.org/self/2017/oct/12/mit-php-bild-daten-aus-einem-ordner-auslesen/1706201#m1706201
einsiedler
2017-10-14T13:43:24Z
2017-10-14T13:43:24Z
Mit PHP Bild-Daten aus einem Ordner auslesen
<p>Ich werd noch bekloppt!</p>
<p>Hab bis jetzt dies:</p>
<pre><code class="block language-php"><span class="token php language-php"><span class="token delimiter important"><?php</span>
<span class="token keyword">function</span> <span class="token function-definition function">get_image_filenames</span><span class="token punctuation">(</span><span class="token variable">$verzeichnis</span><span class="token operator">=</span><span class="token constant boolean">false</span><span class="token punctuation">)</span>
<span class="token punctuation">{</span>
<span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token variable">$verzeichnis</span> <span class="token operator">===</span> <span class="token constant boolean">false</span><span class="token punctuation">)</span> <span class="token keyword">return</span> <span class="token constant boolean">false</span><span class="token punctuation">;</span> <span class="token comment">## Daisy-Chain-Skip</span>
<span class="token variable">$verzeichnis</span> <span class="token operator">=</span> <span class="token function">rtrim</span><span class="token punctuation">(</span><span class="token variable">$verzeichnis</span><span class="token punctuation">,</span> <span class="token string single-quoted-string">'/'</span><span class="token punctuation">)</span> <span class="token operator">.</span> <span class="token string single-quoted-string">'/'</span><span class="token punctuation">;</span> <span class="token comment">## Normierung nach POSIX</span>
<span class="token variable">$_liste</span> <span class="token operator">=</span> <span class="token keyword">array</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token variable">$vhandle</span> <span class="token operator">=</span> <span class="token function">opendir</span><span class="token punctuation">(</span><span class="token variable">$verzeichnis</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
<span class="token punctuation">{</span>
<span class="token keyword">while</span> <span class="token punctuation">(</span><span class="token constant boolean">false</span> <span class="token operator">!==</span> <span class="token punctuation">(</span><span class="token variable">$filename</span> <span class="token operator">=</span> <span class="token function">readdir</span><span class="token punctuation">(</span><span class="token variable">$vhandle</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
<span class="token punctuation">{</span>
<span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token function">is_file</span><span class="token punctuation">(</span><span class="token variable">$verzeichnis</span> <span class="token operator">.</span> <span class="token variable">$filename</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
<span class="token punctuation">{</span>
<span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token constant boolean">false</span> <span class="token operator">!==</span> <span class="token punctuation">(</span><span class="token variable">$imgsize</span> <span class="token operator">=</span> <span class="token function">getImageSize</span><span class="token punctuation">(</span><span class="token variable">$verzeichnis</span> <span class="token operator">.</span> <span class="token variable">$filename</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment">## ist es ein Bild?</span>
<span class="token punctuation">{</span>
<span class="token variable">$_liste</span><span class="token punctuation">[</span><span class="token variable">$filename</span><span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token keyword">array</span><span class="token punctuation">(</span>
<span class="token string single-quoted-string">'name'</span> <span class="token operator">=></span> <span class="token variable">$filename</span><span class="token punctuation">,</span>
<span class="token string single-quoted-string">'pfad'</span> <span class="token operator">=></span> <span class="token punctuation">(</span><span class="token variable">$verzeichnis</span> <span class="token operator">.</span> <span class="token variable">$filename</span><span class="token punctuation">)</span><span class="token punctuation">,</span>
<span class="token string single-quoted-string">'bildabmessungen'</span> <span class="token operator">=></span> <span class="token variable">$imgsize</span><span class="token punctuation">,</span>
<span class="token string single-quoted-string">'berechnungen'</span> <span class="token operator">=></span> <span class="token string single-quoted-string">'berechnungen'</span>
<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token comment">## Berechnungen ist deine nächste Baustelle? </span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
<span class="token function">ksort</span><span class="token punctuation">(</span><span class="token variable">$_liste</span><span class="token punctuation">[</span><span class="token variable">$filename</span><span class="token punctuation">]</span><span class="token punctuation">,</span> <span class="token class-name">SORT_NATURAL</span> <span class="token operator">|</span> <span class="token class-name">SORT_FLAG_CASE</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">closedir</span><span class="token punctuation">(</span><span class="token variable">$vhandle</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">return</span> <span class="token variable">$_liste</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token keyword">return</span> <span class="token constant boolean">false</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token comment">#------------------------------------------------------------------------------- </span>
<span class="token keyword">function</span> <span class="token function-definition function">html_list_filename</span><span class="token punctuation">(</span><span class="token variable">$_liste</span><span class="token punctuation">)</span>
<span class="token punctuation">{</span>
<span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token variable">$_liste</span> <span class="token operator">===</span> <span class="token constant boolean">false</span><span class="token punctuation">)</span> <span class="token keyword">or</span> <span class="token punctuation">(</span><span class="token operator">!</span><span class="token function">is_array</span><span class="token punctuation">(</span><span class="token variable">$_liste</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token keyword">return</span> <span class="token constant boolean">false</span><span class="token punctuation">;</span> <span class="token comment">## Daisy-Chain-Skip</span>
<span class="token variable">$htmlout</span> <span class="token operator">=</span> <span class="token string single-quoted-string">''</span><span class="token punctuation">;</span>
<span class="token keyword">foreach</span> <span class="token punctuation">(</span><span class="token variable">$_liste</span> <span class="token keyword">as</span> <span class="token variable">$filename</span> <span class="token operator">=></span> <span class="token variable">$_fileinfo</span><span class="token punctuation">)</span>
<span class="token punctuation">{</span>
<span class="token variable">$htmlout</span> <span class="token operator">=</span> <span class="token string double-quoted-string">"\n<pre>\n"</span><span class="token punctuation">;</span>
<span class="token variable">$htmlout</span> <span class="token operator">.=</span> <span class="token string double-quoted-string">"name:\t <span class="token interpolation"><span class="token punctuation">{</span><span class="token variable">$filename</span><span class="token punctuation">}</span></span>\n"</span><span class="token punctuation">;</span>
<span class="token variable">$htmlout</span> <span class="token operator">.=</span> <span class="token string double-quoted-string">"\n"</span><span class="token punctuation">;</span>
<span class="token variable">$htmlout</span> <span class="token operator">.=</span> <span class="token string double-quoted-string">"pfad & name:\t <span class="token interpolation"><span class="token punctuation">{</span><span class="token variable">$_fileinfo</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'path'</span><span class="token punctuation">]</span><span class="token punctuation">}</span></span>\n"</span><span class="token punctuation">;</span>
<span class="token variable">$htmlout</span> <span class="token operator">.=</span> <span class="token string double-quoted-string">"\n"</span><span class="token punctuation">;</span>
<span class="token variable">$htmlout</span> <span class="token operator">.=</span> <span class="token string double-quoted-string">"Bildabmessungen:\n"</span><span class="token punctuation">;</span>
<span class="token variable">$htmlout</span> <span class="token operator">.=</span> <span class="token string double-quoted-string">"\twidth:\t <span class="token interpolation"><span class="token punctuation">{</span><span class="token variable">$_fileinfo</span><span class="token punctuation">[</span><span class="token variable">$filename</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'bildabmessungen'</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">}</span></span>\n"</span><span class="token punctuation">;</span>
<span class="token variable">$htmlout</span> <span class="token operator">.=</span> <span class="token string double-quoted-string">"\theight:\t <span class="token interpolation"><span class="token punctuation">{</span><span class="token variable">$_fileinfo</span><span class="token punctuation">[</span><span class="token variable">$filename</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'bildabmessungen'</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span><span class="token punctuation">}</span></span>\n"</span><span class="token punctuation">;</span>
<span class="token variable">$htmlout</span> <span class="token operator">.=</span> <span class="token string double-quoted-string">"\n"</span><span class="token punctuation">;</span>
<span class="token variable">$htmlout</span> <span class="token operator">.=</span> <span class="token string double-quoted-string">"<a href=\""</span><span class="token operator">.</span> <span class="token function">htmlspecialchars</span><span class="token punctuation">(</span><span class="token variable">$_fileinfo</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'path'</span><span class="token punctuation">]</span><span class="token punctuation">,</span> <span class="token constant">ENT_QUOTES</span><span class="token punctuation">)</span> <span class="token operator">.</span> <span class="token string double-quoted-string">"\">"</span> <span class="token operator">.</span> <span class="token function">htmlspecialchars</span><span class="token punctuation">(</span><span class="token variable">$_fileinfo</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'path'</span><span class="token punctuation">]</span><span class="token punctuation">,</span> <span class="token constant">ENT_QUOTES</span><span class="token punctuation">)</span> <span class="token operator">.</span> <span class="token string double-quoted-string">"</a>\n"</span><span class="token punctuation">;</span>
<span class="token variable">$htmlout</span> <span class="token operator">.=</span> <span class="token string double-quoted-string">"</pre>\n"</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token keyword">return</span> <span class="token variable">$htmlout</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token comment">#------------------------------------------------------------------------------- </span>
<span class="token variable">$_liste</span> <span class="token operator">=</span> <span class="token function">get_image_filenames</span><span class="token punctuation">(</span><span class="token string single-quoted-string">'img/'</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">echo</span> <span class="token function">html_list_filename</span><span class="token punctuation">(</span><span class="token variable">$_liste</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token delimiter important">?></span></span>
</code></pre>
<p>Aber es geht noch nicht!</p>
<p><a href="http://www.welten-bau.de/test/testseite_uebung1/bildausgabe_demo_C.php" rel="nofollow noopener noreferrer">Link zur Fehlerseite</a></p>
<p>Grüsse T.</p>
https://forum.selfhtml.org/self/2017/oct/12/mit-php-bild-daten-aus-einem-ordner-auslesen/1706202#m1706202
Regina Schaukrug
2017-10-14T13:54:13Z
2017-10-14T13:54:13Z
Debuggen
<blockquote>
<p>debuggen, debuggen, debuggen …</p>
</blockquote>
<p>Aus ja. Ich habe heute was schöneres als <code>print_r()</code> gesucht. Und weil ich nichts wirklich schönes gefunden habe, naja, <a href="https://code.fastix.org/Projekte/PHP%3ADebug2JsConsole/" rel="nofollow noopener noreferrer">da hab ich mir selbst was gebaut</a>.</p>
https://forum.selfhtml.org/self/2017/oct/12/mit-php-bild-daten-aus-einem-ordner-auslesen/1706203#m1706203
TS
ts-self@online.de
https://bitworks.de
2017-10-14T14:10:36Z
2017-10-14T14:10:36Z
Mit PHP Bild-Daten aus einem Ordner auslesen
<p>Hello,</p>
<p>wenn Du alle Fehler gefunden hast (das dauert keine 60 Sekunden), kommt z. B. sowas dabei heraus:</p>
<pre><code class="block language-text">Array
(
[gehirn.php.jpg] => Array
(
[name] => gehirn.php.jpg
[pfad] => img/gehirn.php.jpg
[bildabmessungen] => Array
(
[0] => 207
[1] => 286
[2] => 2
[3] => width="207" height="286"
[bits] => 8
[channels] => 3
[mime] => image/jpeg
)
[berechnungen] => berechnungen
)
[Gehirn_einschalten.png] => Array
(
[name] => Gehirn_einschalten.png
[pfad] => img/Gehirn_einschalten.png
[bildabmessungen] => Array
(
[0] => 165
[1] => 211
[2] => 3
[3] => width="165" height="211"
[bits] => 8
[mime] => image/png
)
[berechnungen] => berechnungen
)
[grunes-hakchen-im-kreis.jpg] => Array
(
[name] => grunes-hakchen-im-kreis.jpg
[pfad] => img/grunes-hakchen-im-kreis.jpg
[bildabmessungen] => Array
(
[0] => 540
[1] => 626
[2] => 2
[3] => width="540" height="626"
[bits] => 8
[channels] => 3
[mime] => image/jpeg
)
[berechnungen] => berechnungen
)
[Haustürschloss_978X-652X-TZ-gross.jpg] => Array
(
[name] => Haustürschloss_978X-652X-TZ-gross.jpg
[pfad] => img/Haustürschloss_978X-652X-TZ-gross.jpg
[bildabmessungen] => Array
(
[0] => 576
[1] => 800
[2] => 2
[3] => width="576" height="800"
[bits] => 8
[channels] => 3
[mime] => image/jpeg
)
[berechnungen] => berechnungen
)
[IP-Classes.png] => Array
(
[name] => IP-Classes.png
[pfad] => img/IP-Classes.png
[bildabmessungen] => Array
(
[0] => 400
[1] => 153
[2] => 3
[3] => width="400" height="153"
[bits] => 8
[mime] => image/png
)
[berechnungen] => berechnungen
)
[LadyBiker.jpg] => Array
(
[name] => LadyBiker.jpg
[pfad] => img/LadyBiker.jpg
[bildabmessungen] => Array
(
[0] => 400
[1] => 400
[2] => 2
[3] => width="400" height="400"
[bits] => 8
[channels] => 3
[mime] => image/jpeg
)
[berechnungen] => berechnungen
)
[Neues Bild (1).png] => Array
(
[name] => Neues Bild (1).png
[pfad] => img/Neues Bild (1).png
[bildabmessungen] => Array
(
[0] => 795
[1] => 622
[2] => 3
[3] => width="795" height="622"
[bits] => 8
[mime] => image/png
)
[berechnungen] => berechnungen
)
[Neues Bild.png] => Array
(
[name] => Neues Bild.png
[pfad] => img/Neues Bild.png
[bildabmessungen] => Array
(
[0] => 605
[1] => 341
[2] => 3
[3] => width="605" height="341"
[bits] => 8
[mime] => image/png
)
[berechnungen] => berechnungen
)
[Protocols.bmp] => Array
(
[name] => Protocols.bmp
[pfad] => img/Protocols.bmp
[bildabmessungen] => Array
(
[0] => 590
[1] => 775
[2] => 6
[3] => width="590" height="775"
[bits] => 24
[mime] => image/x-ms-bmp
)
[berechnungen] => berechnungen
)
)
</code></pre>
<p>Es stecken aber tatsächlich noch ein Schusselfehler drin. Ich hatte es ja vorhin nicht testen können...</p>
<p>Und in der zweiten Funktion sind auch noch ein paar Fehler. Wenn man ein Array-Eleemtn mit dem Namen "pfad" anlegt, muss man es nachher auch so benutzten und nicht unter "path" suchen ;-O</p>
<p>Viel Erfolg bei den Debug-Übungen.<br>
Wenn Du die erst einmal drauf hast, geht in Zukunft alles viel schneller ;-)</p>
<p>Liebe Grüße<br>
Tom S.</p>
<div class="signature">-- <br>
Es gibt nichts Gutes, außer man tut es!<br>
Das Leben selbst ist der Sinn.<br>
</div>
https://forum.selfhtml.org/self/2017/oct/12/mit-php-bild-daten-aus-einem-ordner-auslesen/1706206#m1706206
einsiedler
2017-10-14T15:42:10Z
2017-10-14T15:58:26Z
Mit PHP Bild-Daten aus einem Ordner auslesen
<p>O.K. bei der zweiten Funktion sieht man es auch ohne debuggen:</p>
<pre><code class="block language-php"><span class="token keyword">function</span> <span class="token function-definition function">html_list_filename</span><span class="token punctuation">(</span><span class="token variable">$_liste</span><span class="token punctuation">)</span>
<span class="token punctuation">{</span>
<span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token variable">$_liste</span> <span class="token operator">===</span> <span class="token constant boolean">false</span><span class="token punctuation">)</span> <span class="token keyword">or</span> <span class="token punctuation">(</span><span class="token operator">!</span><span class="token function">is_array</span><span class="token punctuation">(</span><span class="token variable">$_liste</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token keyword">return</span> <span class="token constant boolean">false</span><span class="token punctuation">;</span> <span class="token comment">## Daisy-Chain-Skip</span>
<span class="token variable">$htmlout</span> <span class="token operator">=</span> <span class="token string single-quoted-string">''</span><span class="token punctuation">;</span>
<span class="token keyword">foreach</span> <span class="token punctuation">(</span><span class="token variable">$_liste</span> <span class="token keyword">as</span> <span class="token variable">$filename</span> <span class="token operator">=></span> <span class="token variable">$_fileinfo</span><span class="token punctuation">)</span>
<span class="token punctuation">{</span>
<span class="token variable">$htmlout</span> <span class="token operator">=</span> <span class="token string double-quoted-string">"\n<pre>\n"</span><span class="token punctuation">;</span>
<span class="token variable">$htmlout</span> <span class="token operator">.=</span> <span class="token string double-quoted-string">"name:\t <span class="token interpolation"><span class="token punctuation">{</span><span class="token variable">$filename</span><span class="token punctuation">}</span></span>\n"</span><span class="token punctuation">;</span>
<span class="token variable">$htmlout</span> <span class="token operator">.=</span> <span class="token string double-quoted-string">"\n"</span><span class="token punctuation">;</span>
<span class="token variable">$htmlout</span> <span class="token operator">.=</span> <span class="token string double-quoted-string">"pfad & name:\t <span class="token interpolation"><span class="token punctuation">{</span><span class="token variable">$_fileinfo</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'dort==>pfad<=='</span><span class="token punctuation">]</span><span class="token punctuation">}</span></span>\n"</span><span class="token punctuation">;</span>
<span class="token variable">$htmlout</span> <span class="token operator">.=</span> <span class="token string double-quoted-string">"\n"</span><span class="token punctuation">;</span>
<span class="token variable">$htmlout</span> <span class="token operator">.=</span> <span class="token string double-quoted-string">"Bildabmessungen:\n"</span><span class="token punctuation">;</span>
<span class="token variable">$htmlout</span> <span class="token operator">.=</span> <span class="token string double-quoted-string">"\twidth:\t <span class="token interpolation"><span class="token punctuation">{</span><span class="token variable">$_fileinfo</span><span class="token punctuation">[</span><span class="token variable">$filename</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'bildabmessungen'</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">}</span></span>\n"</span><span class="token punctuation">;</span>
<span class="token variable">$htmlout</span> <span class="token operator">.=</span> <span class="token string double-quoted-string">"\theight:\t <span class="token interpolation"><span class="token punctuation">{</span><span class="token variable">$_fileinfo</span><span class="token punctuation">[</span><span class="token variable">$filename</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'bildabmessungen'</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span><span class="token punctuation">}</span></span>\n"</span><span class="token punctuation">;</span>
<span class="token variable">$htmlout</span> <span class="token operator">.=</span> <span class="token string double-quoted-string">"\n"</span><span class="token punctuation">;</span>
<span class="token variable">$htmlout</span> <span class="token operator">.=</span> <span class="token string double-quoted-string">"<a href=\""</span><span class="token operator">.</span> <span class="token function">htmlspecialchars</span><span class="token punctuation">(</span><span class="token variable">$_fileinfo</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'dort==>pfad<=='</span><span class="token punctuation">]</span><span class="token punctuation">,</span> <span class="token constant">ENT_QUOTES</span><span class="token punctuation">)</span> <span class="token operator">.</span> <span class="token string double-quoted-string">"\">"</span> <span class="token operator">.</span> <span class="token function">htmlspecialchars</span><span class="token punctuation">(</span><span class="token variable">$_fileinfo</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'dort==>pfad<=='</span><span class="token punctuation">]</span><span class="token punctuation">,</span> <span class="token constant">ENT_QUOTES</span><span class="token punctuation">)</span> <span class="token operator">.</span> <span class="token string double-quoted-string">"</a>\n"</span><span class="token punctuation">;</span>
<span class="token variable">$htmlout</span> <span class="token operator">.=</span> <span class="token string double-quoted-string">"</pre>\n"</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token keyword">return</span> <span class="token variable">$htmlout</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
</code></pre>
<p>Aber wo bitte ist der Fehler in der ersten funktion?</p>
<pre><code class="block language-php"><span class="token function">ksort</span><span class="token punctuation">(</span><span class="token variable">$_liste</span><span class="token punctuation">[</span><span class="token variable">$filename</span><span class="token punctuation">]</span><span class="token punctuation">,</span> <span class="token class-name">SORT_NATURAL</span> <span class="token operator">|</span> <span class="token class-name">SORT_FLAG_CASE</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">closedir</span><span class="token punctuation">(</span><span class="token variable">$vhandle</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
</code></pre>
<p>habe ich berichtigt aber da ist immer noch der Fehler!</p>
<p>BITTE BITTE sag mir die Lösung, das mit diesem debuggen kapier ich nicht!</p>
<p>Gruss verzweifelt t.</p>
https://forum.selfhtml.org/self/2017/oct/12/mit-php-bild-daten-aus-einem-ordner-auslesen/1706278#m1706278
einsiedler
2017-10-15T16:19:36Z
2017-10-15T16:19:36Z
Mit PHP Bild-Daten aus einem Ordner auslesen
<p>SORRY!
Ja, es ist wunderbar das es bei Dir läuft!</p>
<p>Entweder nehm ich jetzt mein allererstes, auch wenn es fehlerhaft sein sollte,</p>
<p>zumindest funktioniert es aber so wie es soll, nicht so diese komplizierte letzte Version…</p>
<p>Oder bitte macht mir das jetzt jemand, verdammt ich bezahle auch dafür.</p>
<p>Es ist Tag 3 und ich komme nicht weiter und ich hab keine Geduld mehr!</p>
<p><seufZ> grummel </seufZ></p>
<p>der einsiedelnde</p>
https://forum.selfhtml.org/self/2017/oct/12/mit-php-bild-daten-aus-einem-ordner-auslesen/1706209#m1706209
TS
ts-self@online.de
https://bitworks.de
2017-10-14T16:28:32Z
2017-10-14T16:28:32Z
Mit PHP Bild-Daten aus einem Ordner auslesen
<p>Hello,</p>
<p>zum Sortieren des Arrays nach den Schlüsseln: <code>ksort($_liste)</code></p>
<p>Das müsste es dann gewesen sein.</p>
<p>Du ,usst das Skripg doch nur laufen lassen mit eingeschalteter Fehlerausgabe. Dann sagt dir PHP doch, wo es noch kneift ;-)</p>
<p>Liebe Grüße<br>
Tom S.</p>
<div class="signature">-- <br>
Es gibt nichts Gutes, außer man tut es!<br>
Das Leben selbst ist der Sinn.<br>
</div>
https://forum.selfhtml.org/self/2017/oct/12/mit-php-bild-daten-aus-einem-ordner-auslesen/1706210#m1706210
einsiedler
2017-10-14T16:33:49Z
2017-10-14T16:41:06Z
Mit PHP Bild-Daten aus einem Ordner auslesen
<p>NO, läuft nicht…</p>
<p>hab dort jetzt:</p>
<pre><code class="block language-php"> <span class="token function">ksort</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token variable">$_liste</span><span class="token punctuation">)</span><span class="token punctuation">,</span> <span class="token class-name">SORT_NATURAL</span> <span class="token operator">|</span> <span class="token class-name">SORT_FLAG_CASE</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">closedir</span><span class="token punctuation">(</span><span class="token variable">$vhandle</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">return</span> <span class="token variable">$_liste</span><span class="token punctuation">;</span>
</code></pre>
<p>dort stehn und immer noch ein Fehler! <a href="http://www.welten-bau.de/test/testseite_uebung1/bildausgabe_demo_C.php" rel="nofollow noopener noreferrer">Fehler</a></p>
<p>Wie macht man das mit der Fehleranzeige?</p>
<p><seufZ></seufZ></p>
https://forum.selfhtml.org/self/2017/oct/12/mit-php-bild-daten-aus-einem-ordner-auslesen/1706211#m1706211
TS
ts-self@online.de
https://bitworks.de
2017-10-14T16:48:29Z
2017-10-14T16:48:56Z
Mit PHP Bild-Daten aus einem Ordner auslesen
<p>Hello,</p>
<pre><code class="block language-php"><span class="token php language-php"><span class="token delimiter important"><?php</span>
<span class="token function">error_reporting</span><span class="token punctuation">(</span><span class="token constant">E_ALL</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token operator">...</span>
<span class="token delimiter important">?></span></span>
</code></pre>
<p>Einfach nur als erste Zeile ins Skript aufnehmen.</p>
<p>Liebe Grüße<br>
Tom S.</p>
<div class="signature">-- <br>
Es gibt nichts Gutes, außer man tut es!<br>
Das Leben selbst ist der Sinn.<br>
</div>
https://forum.selfhtml.org/self/2017/oct/12/mit-php-bild-daten-aus-einem-ordner-auslesen/1706213#m1706213
einsiedler
2017-10-14T17:14:13Z
2017-10-14T17:14:13Z
Mit PHP Bild-Daten aus einem Ordner auslesen
<p>Ich habe folgendes im meinem notepad++ stehen:</p>
<p><a href="http://www.welten-bau.de/test/img/screen_notepad++.jpg" rel="nofollow noopener noreferrer">Link zum Screen meines Notepad++</a></p>
<p>Aber es funzt nicht.</p>
<p>Ich geb auf, würde für etwas fertiges zahlen. Ich hab heute nicht mehr den Nerv dazu
ein Phantom-Fehler zu suchen.
Nichts funktioniert!!! Dorriiiiiiee…</p>
<p><a href="http://www.welten-bau.de/test/testseite_uebung1/bildausgabe_demo_C.php" rel="nofollow noopener noreferrer">Link zum Fehler</a></p>
<p><seufZ> </seufZ></p>
https://forum.selfhtml.org/self/2017/oct/12/mit-php-bild-daten-aus-einem-ordner-auslesen/1706214#m1706214
TS
ts-self@online.de
https://bitworks.de
2017-10-14T17:24:03Z
2017-10-14T17:24:03Z
Letzter Versuch?
<p>Hello,</p>
<p>im ersten Teil ist bei ksort() eine Klammer zuviel.</p>
<p>Wenn keine Fehler angezeigt werden, muss ggf. noch die Zeile</p>
<p><code>ini_set('display_errors', 1); </code></p>
<p>eingefügt werden.</p>
<p>Liebe Grüße<br>
Tom S.</p>
<div class="signature">-- <br>
Es gibt nichts Gutes, außer man tut es!<br>
Das Leben selbst ist der Sinn.<br>
</div>
https://forum.selfhtml.org/self/2017/oct/12/mit-php-bild-daten-aus-einem-ordner-auslesen/1706215#m1706215
einsiedler
2017-10-14T17:43:11Z
2017-10-14T17:43:11Z
Letzter Versuch?
<p>NOPE, liegt es villeicht an der PHP Version? Eingestellt ist mom. V5.6 ?</p>
https://forum.selfhtml.org/self/2017/oct/12/mit-php-bild-daten-aus-einem-ordner-auslesen/1706246#m1706246
einsiedler
2017-10-14T21:34:37Z
2017-10-14T21:34:37Z
Letzter Versuch?
<p>Von wegen 60 Sekunden Arbeit, ich sitze hier und rätsel seid Stunden
und ich möchte endlich mal damit fertig werden:</p>
<p>Hier das Screen von meinem Notepad++ (AKTUALISIERT & letzte Version!!!)</p>
<p><a href="http://www.welten-bau.de/test/img/screen_notepad++.jpg" rel="nofollow noopener noreferrer">SCREEN vom == notepad++ ==</a></p>
<p>Aktuell tauchen folgende Fehlermeldungen auf:
<a href="http://www.welten-bau.de/test/testseite_uebung1/bildausgabe_demo_C.php" rel="nofollow noopener noreferrer">DEMO SEITE (fehlerhaft)</a></p>
<p>Was bedeutet dies nun wieder?</p>
<p>Abendlichen Gruß</p>
<p><seufZ> der einsiedelnde</p>
https://forum.selfhtml.org/self/2017/oct/12/mit-php-bild-daten-aus-einem-ordner-auslesen/1706223#m1706223
TS
ts-self@online.de
https://bitworks.de
2017-10-14T18:34:43Z
2017-10-14T18:37:30Z
Letzter Versuch?
<p>Hello,</p>
<p>dann fällt mir jetzt nur noch</p>
<p><code>ini_set('display_startup_errors', 1);</code></p>
<p>ein als weitere Direktive am Amfang.</p>
<p>Ob man das überhaupt IM Skript einstellen kann, oder ob es nicht schon vorher eingestellt sein muss (meine Vermutung), weiß ich im Moment nicht.</p>
<p>Sonst stehen dort zur Testzeit also drei Fehlerdirektiven.</p>
<p>Und noch was: hast Du vielleicht eine BOM am Anfang der Datei?</p>
<p>Liebe Grüße<br>
Tom S.</p>
<div class="signature">-- <br>
Es gibt nichts Gutes, außer man tut es!<br>
Das Leben selbst ist der Sinn.<br>
</div>
https://forum.selfhtml.org/self/2017/oct/12/mit-php-bild-daten-aus-einem-ordner-auslesen/1706224#m1706224
einsiedler
2017-10-14T18:45:08Z
2017-10-14T18:50:06Z
Letzter Versuch?
<p>Also, laut meinem PLESK Onyx hab ich
Version</p>
<p>5.6.30</p>
<p>7.0.18</p>
<p>7.1.4</p>
<p>Dann kann ich einstellen:</p>
<p>FastCGI_Anwendung von Apache bedient</p>
<p>FPM_Anwendung von Apache bedient (bei mir grad eingestellt!!!)</p>
<p>FPM-Anwendung von Nginx bedient</p>
<p>error_reporting: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED</p>
<p>aahhhhhhhhhh:</p>
<p>display_errors: off (standart)</p>
<p>das muss ich wohl on schalten aber ist die art error-reporting richtig</p>
<p>oder ich kann dort einstellen:</p>
<p>E_ALL & ~E_STRICT & ED~E_DEPRECAT</p>
<p>E_ALL & ~E_NOTICE</p>
<p>E_ALL</p>
<p>hab aber jetzt ersteinmal log-errors auf : on gesetzt!!!</p>
<p>zusätzliche Anmerkung 20:43h</p>
<p>das auf on setzen war richtig:</p>
<p>Fehlermeldung:
Parse error: syntax error, unexpected ',' in /var/www/vhosts/welten-bau.de/httpdocs/test/testseite_uebung1/bildausgabe_demo_C.php on line 30</p>
<p><a href="http://www.welten-bau.de/test/img/screen_notepad++.jpg" rel="nofollow noopener noreferrer">SCREEN notepad++</a></p>
<p>grüsse</p>
https://forum.selfhtml.org/self/2017/oct/12/mit-php-bild-daten-aus-einem-ordner-auslesen/1706226#m1706226
einsiedler
2017-10-14T20:06:18Z
2017-10-14T20:06:18Z
Letzter Versuch?
<p>OOOOOkaaaaay:</p>
<p>hab im Plesk log-errors auf == on == gesetzt!!!</p>
<p>erste Fehlermeldung 20:45h</p>
<p>Fehlermeldung: Parse error: syntax error, unexpected ',' in /var/www/vhosts/welten-bau.de/httpdocs/test/testseite_uebung1/bildausgabe_demo_C.php on line 30</p>
<p>Fehlermeldung behoben! Es fehlte eine Anfangs-(</p>
<p>22:05h</p>
<p>Fehlermeldung
Parse error: syntax error, unexpected 'return' (T_RETURN) in /var/www/vhosts/welten-bau.de/httpdocs/test/testseite_uebung1/bildausgabe_demo_C.php on line 39</p>
<p>Nun komme ich aber nicht weiter!</p>
<p><a href="http://www.welten-bau.de/test/img/screen_notepad++.jpg" rel="nofollow noopener noreferrer">Screen vom Notepad++</a></p>
<p>Abendliche Grüsse T.</p>
https://forum.selfhtml.org/self/2017/oct/12/mit-php-bild-daten-aus-einem-ordner-auslesen/1706227#m1706227
Tabellenkalk
2017-10-14T20:10:54Z
2017-10-14T20:10:54Z
Letzter Versuch?
<p>Hallo,</p>
<blockquote>
<p>Fehlermeldung behoben! Es fehlte eine Anfangs-(</p>
</blockquote>
<p>gewöhn dir bitte an, Klammern <em>immer</em> paarweise zu schreiben.</p>
<blockquote>
<p>Nun komme ich aber nicht weiter!</p>
</blockquote>
<p>gewöhn dir bitte an, Klammern <em>immer</em> paarweise zu schreiben.</p>
<p>Gruß<br>
Kalk</p>
https://forum.selfhtml.org/self/2017/oct/12/mit-php-bild-daten-aus-einem-ordner-auslesen/1706228#m1706228
einsiedler
2017-10-14T20:24:41Z
2017-10-14T20:24:41Z
Letzter Versuch?
<p>Das verstehe ich jetzt nicht?</p>
https://forum.selfhtml.org/self/2017/oct/12/mit-php-bild-daten-aus-einem-ordner-auslesen/1706229#m1706229
Tabellenkalk
2017-10-14T20:28:47Z
2017-10-14T20:30:48Z
Letzter Versuch?
<p>Hallo,</p>
<blockquote>
<p>Das verstehe ich jetzt nicht?</p>
</blockquote>
<p>zu einer öffnenden Klammer gehört immer eine schließende.</p>
<p><a href="https://forum.selfhtml.org/cites/964" rel="noopener noreferrer">wusste schon Noah</a></p>
<p>Gruß<br>
Kalk</p>
https://forum.selfhtml.org/self/2017/oct/12/mit-php-bild-daten-aus-einem-ordner-auslesen/1706231#m1706231
einsiedler
2017-10-14T20:32:00Z
2017-10-14T20:33:54Z
Letzter Versuch?
<p>und wo jetzt bitteschön in meinem Fall, ab Zeile 39???</p>
<p>achso... das hier:</p>
<pre><code class="block language-php"><span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token variable">$_liste</span> <span class="token operator">===</span> <span class="token constant boolean">false</span><span class="token punctuation">)</span> <span class="token keyword">or</span> <span class="token punctuation">(</span><span class="token operator">!</span><span class="token function">is_array</span><span class="token punctuation">(</span><span class="token variable">$_liste</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token keyword">return</span> <span class="token constant boolean">false</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">## Daisy-Chain-Skip</span>
</code></pre>
<p>ist schon behoben, es gibt aber immer noch dieselbe Fehlermeldung!</p>
https://forum.selfhtml.org/self/2017/oct/12/mit-php-bild-daten-aus-einem-ordner-auslesen/1706232#m1706232
Rolf B
2017-10-14T20:37:25Z
2017-10-14T20:37:25Z
Letzter Versuch?
<p>Hallo einsiedler,</p>
<p>Die klammer hinter dem false gehört da nicht hin, die gehört zum if und deshalb vor das return</p>
<p><em>Rolf</em></p>
<div class="signature">-- <br>
sumpsi - posui - clusi
</div>
https://forum.selfhtml.org/self/2017/oct/12/mit-php-bild-daten-aus-einem-ordner-auslesen/1706233#m1706233
Tabellenkalk
2017-10-14T20:40:20Z
2017-10-14T20:40:20Z
Letzter Versuch?
<p>Hallo,</p>
<blockquote>
<p>ist schon behoben, es gibt aber immer noch dieselbe Fehlermeldung!</p>
</blockquote>
<p>offensichtlich ists wohl eben doch nicht behoben…</p>
<p>Es kommt dann nicht nur auf das paarweise Auftreten, sondern auch auf die richtige Position an.</p>
<p>Gruß<br>
Kalk</p>
https://forum.selfhtml.org/self/2017/oct/12/mit-php-bild-daten-aus-einem-ordner-auslesen/1706251#m1706251
TS
ts-self@online.de
https://bitworks.de
2017-10-15T01:25:20Z
2017-10-15T01:25:20Z
Letzter Versuch?
<p>Hello,</p>
<p>ja, das ist klar.</p>
<p>es darf nur <code>$_fileinfo['bildabmessungen']</code> heißen, oder aber<br>
<code>$_liste[$filename]['bildabmessungen']</code>, je nachdem, ob Du auf die Elementkopie des Arrays in der foreach()-Schleife, oder auf das Originalelement in der Gesa,tliste zugreifen willst.</p>
<p>Liebe Grüße<br>
Tom S.</p>
<div class="signature">-- <br>
Es gibt nichts Gutes, außer man tut es!<br>
Das Leben selbst ist der Sinn.<br>
</div>
https://forum.selfhtml.org/self/2017/oct/12/mit-php-bild-daten-aus-einem-ordner-auslesen/1706252#m1706252
einsiedler
2017-10-15T02:42:40Z
2017-10-15T02:52:35Z
Letzter Versuch?
<p>Okay, das ist nun klar! :o) SUPI! Es läuft ... (anscheinend...!)</p>
<p><a href="http://www.welten-bau.de/test/testseite_uebung1/bildausgabe_demo_C.php" rel="nofollow noopener noreferrer">funktionierendes PHP JUHUUUUU...</a></p>
<p>Aber werden nur die allerletzten Daten vom letzten Bild ausgegeben oder</p>
<p>müsste die == funktion html_list_filename($_liste) == alle , von allen</p>
<p>Bildern die sich im Ordner befinden, ausgeben?</p>
<p>Ich meine, ist das nun korrekt so?</p>
<p>Solch eine Ausgabe ist für mich eigentlich nicht so wichtig, Hauptsache das Array speichert</p>
<p>die Variablen in der richtigen Folge.</p>
<p>Um das zu überprüfen hab ich damit angefangen die Variablen einzeln per echo auszugeben.</p>
<p>Darum eigentlich die zweite Funktion... die Du daraus gemacht hast...</p>
<p>(Siehe Link oben! Da stehen nur die Infos vom letzten IMG!)</p>
<p>Hier nun noch das aktuelle Screen vom Notepad++ (Mit Änderungen!)</p>
<p><a href="http://www.welten-bau.de/test/img/screen_notepad++.jpg" rel="nofollow noopener noreferrer">Screen vom Notepad++</a></p>
<p>Gute N8
der einsiedelnde</p>
https://forum.selfhtml.org/self/2017/oct/12/mit-php-bild-daten-aus-einem-ordner-auslesen/1706262#m1706262
TS
ts-self@online.de
https://bitworks.de
2017-10-15T08:38:12Z
2017-10-15T22:39:04Z
Letzter Versuch?
<p>Hello,</p>
<p>Du hast noch den Hierarchiefehler in den Bezeichnern des Arrays. Hatte ich Dir aber schon geschrieben.</p>
<p>Es muss in der foreach()-Schleife nur</p>
<pre><code class="block language-php">
<span class="token keyword">echo</span> <span class="token variable">$_fileinfo</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'berechnungen'</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">;</span>
<span class="token comment">### usw.</span>
</code></pre>
<p>Ich würde es Dir ja fertigschreiben, aber mit dem Tablet ist das zu mühseöig...
Vielleicht ist ja jemand Anderes so nett? </p>
<p>Liebe Grüße<br>
Tom S.</p>
<div class="signature">-- <br>
Es gibt nichts Gutes, außer man tut es!<br>
Das Leben selbst ist der Sinn.<br>
</div>
https://forum.selfhtml.org/self/2017/oct/12/mit-php-bild-daten-aus-einem-ordner-auslesen/1706270#m1706270
einsiedler
2017-10-15T13:14:10Z
2017-10-15T13:14:10Z
Letzter Versuch?
<p><seufZ> </seufZ></p>
https://forum.selfhtml.org/self/2017/oct/12/mit-php-bild-daten-aus-einem-ordner-auslesen/1706303#m1706303
TS
ts-self@online.de
https://bitworks.de
2017-10-15T19:20:36Z
2017-10-15T22:38:48Z
Letzter Versuch?
<p>Hello,</p>
<p>hier die kurze lauffähige Version in der Testumgebung.<br>
Du siehst daran, dass nur drei Zeilen zum Test-Anzeigen des erzeugten Datenarrays notwendig sind.</p>
<pre><code class="block language-php"><span class="token php language-php"><span class="token delimiter important"><?php</span> <span class="token comment">### getImageFilenames.php ### utf-8 ### ÄÖÜäöü</span>
<span class="token keyword">function</span> <span class="token function-definition function">get_image_filenames</span><span class="token punctuation">(</span><span class="token variable">$verzeichnis</span><span class="token operator">=</span><span class="token constant boolean">false</span><span class="token punctuation">)</span>
<span class="token punctuation">{</span>
<span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token variable">$verzeichnis</span> <span class="token operator">===</span> <span class="token constant boolean">false</span><span class="token punctuation">)</span> <span class="token keyword">return</span> <span class="token constant boolean">false</span><span class="token punctuation">;</span> <span class="token comment">## Daisy-Chain-Skip</span>
<span class="token variable">$verzeichnis</span> <span class="token operator">=</span> <span class="token function">rtrim</span><span class="token punctuation">(</span><span class="token variable">$verzeichnis</span><span class="token punctuation">,</span> <span class="token string single-quoted-string">'/'</span><span class="token punctuation">)</span> <span class="token operator">.</span> <span class="token string single-quoted-string">'/'</span><span class="token punctuation">;</span> <span class="token comment">## Normierung nach POSIX</span>
<span class="token variable">$_liste</span> <span class="token operator">=</span> <span class="token keyword">array</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token variable">$vhandle</span> <span class="token operator">=</span> <span class="token function">opendir</span><span class="token punctuation">(</span><span class="token variable">$verzeichnis</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
<span class="token punctuation">{</span>
<span class="token keyword">while</span> <span class="token punctuation">(</span><span class="token constant boolean">false</span> <span class="token operator">!==</span> <span class="token punctuation">(</span><span class="token variable">$filename</span> <span class="token operator">=</span> <span class="token function">readdir</span><span class="token punctuation">(</span><span class="token variable">$vhandle</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
<span class="token punctuation">{</span>
<span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token function">is_file</span><span class="token punctuation">(</span><span class="token variable">$verzeichnis</span> <span class="token operator">.</span> <span class="token variable">$filename</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
<span class="token punctuation">{</span>
<span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token constant boolean">false</span> <span class="token operator">!==</span> <span class="token punctuation">(</span><span class="token variable">$imgsize</span> <span class="token operator">=</span> <span class="token function">getImageSize</span><span class="token punctuation">(</span><span class="token variable">$verzeichnis</span> <span class="token operator">.</span> <span class="token variable">$filename</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment">## ist es ein Bild?</span>
<span class="token punctuation">{</span>
<span class="token variable">$_liste</span><span class="token punctuation">[</span><span class="token variable">$filename</span><span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token keyword">array</span><span class="token punctuation">(</span>
<span class="token string single-quoted-string">'name'</span> <span class="token operator">=></span> <span class="token variable">$filename</span><span class="token punctuation">,</span>
<span class="token string single-quoted-string">'pfad'</span> <span class="token operator">=></span> <span class="token punctuation">(</span><span class="token variable">$verzeichnis</span> <span class="token operator">.</span> <span class="token variable">$filename</span><span class="token punctuation">)</span><span class="token punctuation">,</span>
<span class="token string single-quoted-string">'bildabmessungen'</span> <span class="token operator">=></span> <span class="token variable">$imgsize</span><span class="token punctuation">,</span>
<span class="token string single-quoted-string">'berechnungen'</span> <span class="token operator">=></span> <span class="token string single-quoted-string">'berechnungen'</span>
<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token comment">## Berechnungen ist deine nächste Baustelle? </span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
<span class="token function">ksort</span><span class="token punctuation">(</span><span class="token variable">$_liste</span><span class="token punctuation">,</span> <span class="token class-name">SORT_NATURAL</span> <span class="token operator">|</span> <span class="token class-name">SORT_FLAG_CASE</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">closedir</span><span class="token punctuation">(</span><span class="token variable">$vhandle</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">return</span> <span class="token variable">$_liste</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token keyword">return</span> <span class="token constant boolean">false</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token comment">#-------------------------------------------------------------—</span>
<span class="token variable">$_liste</span> <span class="token operator">=</span> <span class="token function">get_image_filenames</span><span class="token punctuation">(</span><span class="token string single-quoted-string">'img/'</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">echo</span> <span class="token string double-quoted-string">"<pre>\n"</span><span class="token punctuation">;</span>
<span class="token keyword">echo</span> <span class="token function">print_r</span><span class="token punctuation">(</span><span class="token variable">$_liste</span><span class="token punctuation">,</span> <span class="token number">1</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">echo</span> <span class="token string double-quoted-string">"</pre>\n"</span><span class="token punctuation">;</span>
<span class="token delimiter important">?></span></span>
</code></pre>
<p>Wichtig ist noch zu erwähnen, dass obige Funktion in dieser Form noch nicht nebenläufigkeitsfest ist!</p>
<p>Wenn Du mehr brauchst, dann schreib mit eine eMail mit deinen Anforderungen an selfhtml@bitworks.de</p>
<p>Liebe Grüße<br>
Tom S.</p>
<div class="signature">-- <br>
Es gibt nichts Gutes, außer man tut es!<br>
Das Leben selbst ist der Sinn.<br>
</div>
https://forum.selfhtml.org/self/2017/oct/12/mit-php-bild-daten-aus-einem-ordner-auslesen/1706317#m1706317
Camping_RIDER
janosch.zoller@gmx.de
http://www.campingrider.de
2017-10-15T21:51:57Z
2017-10-16T17:37:24Z
Aufforderung zu mehr Geduld
<p>Aloha ;)</p>
<blockquote>
<p>SORRY!
Ja, es ist wunderbar das es bei Dir läuft!</p>
</blockquote>
<blockquote>
<p>[...]</p>
</blockquote>
<blockquote>
<p>Oder bitte macht mir das jetzt jemand, verdammt ich bezahle auch dafür.</p>
<p>Es ist Tag 3 und ich komme nicht weiter und ich hab keine Geduld mehr!</p>
<p><seufZ> grummel </seufZ></p>
</blockquote>
<p>Deine Frustration aufgrund eines bei dir auftretenden Problems in allen Ehren, aber ich muss dich nachdrücklich darauf hinweisen, dass es die hier Antwortenden verdient haben, dass du deinem Frust nicht hier und vor allem nicht in einer solchen Deutlichkeit über mehrere Postings hinweg Luft machst.</p>
<p>Ich würde dich nur ungern durch einen moderierenden Eingriff der Hilfe berauben, die dir hier widerfährt, und bitte dich deshalb ultimativ einen Gang runterzuschalten und geduldig zu sein.</p>
<p>Ich wünsche dir weiterhin viel Glück bei der Lösungssuche zu deinem fachlichen Problem.</p>
<p>Grüße,</p>
<p>RIDER</p>
<div class="signature">-- <br>
Camping_RIDER a.k.a. Riders Flame a.k.a. Janosch Zoller<br>
# <a href="https://twitter.com/Camping_RIDER" rel="nofollow noopener noreferrer">Twitter</a> # <a href="http://steamcommunity.com/id/Camping_RIDER" rel="nofollow noopener noreferrer">Steam</a> # <a href="https://www.youtube.com/user/RidersFlame" rel="nofollow noopener noreferrer">YouTube</a> # <a href="http://wiki.selfhtml.org/wiki/Benutzer:Camping_RIDER" rel="nofollow noopener noreferrer">Self-Wiki</a> #
<a href="http://community.de.selfhtml.org/fanprojekte/selfcode.htm" rel="nofollow noopener noreferrer">Selfcode</a>: sh:) fo:) ch:| rl:) br:^ n4:? ie:% mo:| va:) js:) de:> zu:} fl:( ss:) ls:[
</div>
https://forum.selfhtml.org/self/2017/oct/12/mit-php-bild-daten-aus-einem-ordner-auslesen/1706314#m1706314
einsiedler
2017-10-15T20:47:17Z
2017-10-15T20:47:17Z
Letzter Versuch?
<p>Vielen Dank! Super! :o)</p>