WinFuture-Forum.de: Simples PHP Script // Nur Bild soll über ganzen Bildschirm angezeigt w - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

Simples PHP Script // Nur Bild soll über ganzen Bildschirm angezeigt w


#1 Mitglied ist offline   sandronesta 

  • Gruppe: Mitglieder
  • Beiträge: 10
  • Beigetreten: 29. Juni 15
  • Reputation: 0

geschrieben 27. April 2016 - 12:37

Liebe Community,

ich habe ein simples PHP Script geschrieben, welches ein Bild zurück geben soll. Das einzige was ich noch nicht hinbekomme, dass Bild soll über die ganze Seite angezeigt werden, also sich selber skalieren.

Das Script sieht momentan folgendermaßen aus:

<?php
$bilder = array(
  '1.jpg',
  '2.jpg',
  '3.jpg',
  '4.jpg',
  '5.jpg',
  '6.jpg',
  '7.jpg',
  '8.jpg',
  '9.jpg',
  '10.jpg',
  '11.jpg',
  '12.jpg',
  '13.jpg',
  '14.jpg',
  '15.jpg',
  '16.jpg',
  '17.jpg',
  '18.jpg',
  '19.jpg',
  '20.jpg',
  '21.jpg',
  '22.jpg',
  '23.jpg',
  '24.jpg',
  '25.jpg',
  '26.jpg',
  '27.jpg',
  '28.jpg',
  '29.jpg',
  '30.jpg',
  '31.jpg',
  '32.jpg',
  '33.jpg',
  '34.jpg',
  '35.jpg',
  '36.jpg',
  '37.jpg',
  '38.jpg',
  '39.jpg',
  '40.jpg',
  '41.jpg',
  '42.jpg',
  '43.jpg',
  '44.jpg',
  '45.jpg',
  '46.jpg',
  '47.jpg',
  '48.jpg',
  '49.jpg',
  '50.jpg',
  '51.jpg',
  '52.jpg',
  '53.jpg',
  '54.jpg',
  '55.jpg',
  '56.jpg',
  '57.jpg',
  '58.jpg',
  '59.jpg',
  '60.jpg',
  '61.jpg',
  '62.jpg',
  '63.jpg',
  '64.jpg',
  '65.jpg',
  '66.jpg',
  '67.jpg',
  '68.jpg',
  '69.jpg',
  '70.jpg',
  '71.jpg',
  '72.jpg',
  '73.jpg',
  '74.jpg',
  '75.jpg',
  '76.jpg',
  '77.jpg',
  '78.jpg',
  '79.jpg',
  '80.jpg',
  '81.jpg',
  '82.jpg',
  '83.jpg',
  '84.jpg',
  '85.jpg',
  '86.jpg',
  '87.jpg',
  '88.jpg',
  '89.jpg',
  '90.jpg',
  '91.jpg',
  '92.jpg',
  '93.jpg',
  '94.jpg',
  '95.jpg',
  '96.jpg',
  '97.jpg',
  '98.jpg',
  '99.jpg',
  '100.jpg',
);
echo '<img src="'.$bilder[array_rand($bilder)].'" alt="" />';
?>



Herzlichen Dank!

LG - Nesta
0

Anzeige



#2 Mitglied ist offline   RalphS 

  • Gruppe: VIP Mitglieder
  • Beiträge: 8.895
  • Beigetreten: 20. Juli 07
  • Reputation: 1.126
  • Geschlecht:Männlich
  • Wohnort:Zuhause
  • Interessen:Ja

geschrieben 27. April 2016 - 12:48

Über HTML. IMG kennt "width"; das einfach auf 100% setzen, evtl ein bissel kleiner.

Allerdings ist img inline. Die 100% beziehen sich also auf den übergeordneten Container, nicht auf das Bild selber => "img width=100%" heißt also, "fülle den beinhaltenden Container zu 100% aus". Dabei wird das Bild skaliert.
"If you give a man a fish he is hungry again in an hour. If you teach him to catch a fish you do him a good turn."-- Anne Isabella Thackeray Ritchie

Eingefügtes Bild
Eingefügtes Bild
0

#3 Mitglied ist offline   sandronesta 

  • Gruppe: Mitglieder
  • Beiträge: 10
  • Beigetreten: 29. Juni 15
  • Reputation: 0

geschrieben 27. April 2016 - 14:08

Herzlichen Dank RalphS.

Ich hab es jetzt so probiert, aber das klappt noch nicht so recht.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<title>Untitled 1</title>
</head>

<body>
img {
    width: 100%;
    height: auto;
    max-width: 100%;
}
<?php
$bilder = array(
  '1.jpg',
  '2.jpg',
  '3.jpg',
  '4.jpg',
  '5.jpg',
  '6.jpg',
  '7.jpg',
  '8.jpg',
  '9.jpg',
  '10.jpg',
  '11.jpg',
  '12.jpg',
  '13.jpg',
  '14.jpg',
  '15.jpg',
  '16.jpg',
  '17.jpg',
  '18.jpg',
  '19.jpg',
  '20.jpg',
  '21.jpg',
  '22.jpg',
  '23.jpg',
  '24.jpg',
  '25.jpg',
  '26.jpg',
  '27.jpg',
  '28.jpg',
  '29.jpg',
  '30.jpg',
  '31.jpg',
  '32.jpg',
  '33.jpg',
  '34.jpg',
  '35.jpg',
  '36.jpg',
  '37.jpg',
  '38.jpg',
  '39.jpg',
  '40.jpg',
  '41.jpg',
  '42.jpg',
  '43.jpg',
  '44.jpg',
  '45.jpg',
  '46.jpg',
  '47.jpg',
  '48.jpg',
  '49.jpg',
  '50.jpg',
  '51.jpg',
  '52.jpg',
  '53.jpg',
  '54.jpg',
  '55.jpg',
  '56.jpg',
  '57.jpg',
  '58.jpg',
  '59.jpg',
  '60.jpg',
  '61.jpg',
  '62.jpg',
  '63.jpg',
  '64.jpg',
  '65.jpg',
  '66.jpg',
  '67.jpg',
  '68.jpg',
  '69.jpg',
  '70.jpg',
  '71.jpg',
  '72.jpg',
  '73.jpg',
  '74.jpg',
  '75.jpg',
  '76.jpg',
  '77.jpg',
  '78.jpg',
  '79.jpg',
  '80.jpg',
  '81.jpg',
  '82.jpg',
  '83.jpg',
  '84.jpg',
  '85.jpg',
  '86.jpg',
  '87.jpg',
  '88.jpg',
  '89.jpg',
  '90.jpg',
  '91.jpg',
  '92.jpg',
  '93.jpg',
  '94.jpg',
  '95.jpg',
  '96.jpg',
  '97.jpg',
  '98.jpg',
  '99.jpg',
  '100.jpg',
);
echo '<img src="'.$bilder[array_rand($bilder)].'" alt="" />';
?>
</body>

</html>



0

#4 Mitglied ist offline   RalphS 

  • Gruppe: VIP Mitglieder
  • Beiträge: 8.895
  • Beigetreten: 20. Juli 07
  • Reputation: 1.126
  • Geschlecht:Männlich
  • Wohnort:Zuhause
  • Interessen:Ja

geschrieben 27. April 2016 - 15:28

Natürlich nicht. Der style wandert in den <style> Tag im Header. :)

Wobei ein simples <img width="95%" auch reichen sollte.

Übrigens, warum /Transitional/? Ist das nicht für XHTML ein bissel albern? :unsure:
"If you give a man a fish he is hungry again in an hour. If you teach him to catch a fish you do him a good turn."-- Anne Isabella Thackeray Ritchie

Eingefügtes Bild
Eingefügtes Bild
0

#5 Mitglied ist offline   aeris 

  • Gruppe: aktive Mitglieder
  • Beiträge: 129
  • Beigetreten: 06. September 08
  • Reputation: 12
  • Geschlecht:unbekannt

geschrieben 27. April 2016 - 21:10

Ich würde das ganze ja so lösen.
Statt ein img Element das Bild einfach als Hintergrund setzen.
Und statt alle Bilder einzeln, sofern diese wirklich 1-99 benannt werden, mit einer kleinen Schleife auffüllen.

(Achtung ungetestet)
<?php
    $bilder = array();
    for($i = 1; $i <= 100; $i++) {
        $bilder[] = $i . '.jpg';
    }
    
    $bild = $bilder[array_rand($bilder)];
?>

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>Untitled 1</title>
        <style>
            html, body
            {
                margin:0;
                padding:0;
                height:100%
            }
            body
            {
                background-image: url('<?=$bild?>');
                background-position: center;
                background-repeat: no-repeat;
                background-color: #000;
                background-size: contain;
            }
        </style>
    </head>
    <body></body>
</html>


Damit ist das Bild mit korrektem Maßstab komplett ausgefüllt zu sehen.

Dieser Beitrag wurde von aeris bearbeitet: 27. April 2016 - 21:11

0

#6 Mitglied ist offline   RalphS 

  • Gruppe: VIP Mitglieder
  • Beiträge: 8.895
  • Beigetreten: 20. Juli 07
  • Reputation: 1.126
  • Geschlecht:Männlich
  • Wohnort:Zuhause
  • Interessen:Ja

geschrieben 28. April 2016 - 05:09

Ja, wenn's wirklich *nur* das Bild sein soll, ist das so sicherlich die sauberste Variante. :)

Ist jetzt die Frage, ob sich bewußtes Bild noch in weitere Inhalte einfügen soll oder nicht. Als body background-image läßt sich da nicht mehr so viel ums Bild herum positionieren.
"If you give a man a fish he is hungry again in an hour. If you teach him to catch a fish you do him a good turn."-- Anne Isabella Thackeray Ritchie

Eingefügtes Bild
Eingefügtes Bild
0

#7 Mitglied ist offline   sandronesta 

  • Gruppe: Mitglieder
  • Beiträge: 10
  • Beigetreten: 29. Juni 15
  • Reputation: 0

geschrieben 28. April 2016 - 07:20

Perfekt, Danke Euch beiden ich hab es hinbekommen einfach width="95% hat gereicht. Danke nochmal.
0

#8 Mitglied ist offline   Holger_N 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.111
  • Beigetreten: 11. September 10
  • Reputation: 458
  • Geschlecht:Männlich

geschrieben 06. Mai 2016 - 14:30

Funktioniert das denn überhaupt noch mit

<?=$bild?>


Ich meine, dass das seit PHP5 gar nicht mehr geht oder »mein« Provider hat bei der Umstellungen von 4 auf 5 nur irgendwas Globales strenger eingestellt.
Bauernregel: Regnets mächtig im April, passiert irgendwas, was sich auf April reimt.
0

#9 Mitglied ist offline   RalphS 

  • Gruppe: VIP Mitglieder
  • Beiträge: 8.895
  • Beigetreten: 20. Juli 07
  • Reputation: 1.126
  • Geschlecht:Männlich
  • Wohnort:Zuhause
  • Interessen:Ja

geschrieben 06. Mai 2016 - 17:50

Kommt drauf an, was Deine $bild hält.

Simpler Text ist kein Problem, auch unter 706 nicht, bereits getestet. Oder genauer, Skalarwerte funktionieren so.

Was aber nicht geht, sind Ressourcen oder Arrayinhalte oder Objekte bzw Objektreferenz etc pp. Also
 <?=$mysql->query('SELECT 1')?> 
geht nicht. Und wenn Dein Bild ein Binärobjekt hält, also zB binäre Bilddaten, die sich per
header('Content-Type: image/gif'); echo $bild) ?<
abschicken lassen, sowas geht in die <?= Konstrukte nicht rein. Ging es aber auch nie.

Mir war ja so, als ob dafür Short Tags = On sein mußten. Aber ich hab das aus und es geht. Müßte also grad passen... geht sicher per irgendeiner Option auszustellen, aber welche genau :huh:

Dieser Beitrag wurde von RalphS bearbeitet: 06. Mai 2016 - 17:52

"If you give a man a fish he is hungry again in an hour. If you teach him to catch a fish you do him a good turn."-- Anne Isabella Thackeray Ritchie

Eingefügtes Bild
Eingefügtes Bild
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0