sodele nachdem das hier nun endlich funktioniert mal zusammengefasst der code mit erklärung.
inhalt von microbanner.php
|
PHP Source code
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
|
<?
// Warnings ausschalten
ini_set("display_errors", 0);
// Host anpingen um zu prüfen ob er verfügbar ist.
$host = parse_url($loadimg);
$ip = gethostbyname($host['host']);
$ping = `ping -c 1 -q $ip`;
$ping = explode("\n", $ping);
$pos = strlen($ping) - 2;
$res = '1 packets transmitted, 1 packets received, 0% packet loss';
// Wenn ping erfolgreich, dann das eigentliche Bild laden
if(!!!strpos($ping[$pos], $res))
{
$data = "";
$bild = fopen("$loadimg","r");
// sofern es unter angegebener URL ein Bild gibt
if($bild)
{
// Timeout für den Ladevorgang (Stream) setzen
stream_set_timeout($bild, 2);
$data = "";
$status = socket_get_status($bild);
// Bild in die Variable $data laden sofern kein timeout eintritt
while(!feof($bild) && !$status['timed_out'])
{
$data .= fgets($bild, 1000);
$status = socket_get_status($bild);
}
// wenn ein timeout eingetreten ist ein ersatzbild laden
if ( $status['timed_out'] )
{
$data = "";
$ersatzbild = fopen("http://www.coder-board.info/images/spacer.gif","r");
while(!feof($ersatzbild))
{
$data .= fgets($ersatzbild,1000);
}
fclose($ersatzbild);
}
fclose($bild);
// wenn keine bilddatei verfügbar unter angegebener url sofort ersatzbild laden
} else {
$data = "";
$ersatzbild = fopen("http://www.coder-board.info/images/spacer.gif","r");
while(!feof($ersatzbild))
{
$data .= fgets($ersatzbild,1000);
}
fclose($ersatzbild);
}
// wenn host nicht erreichbar sofort ersatzbild laden
} else {
$data = "";
$ersatzbild = fopen("http://www.coder-board.info/images/spacer.gif","r");
while(!feof($ersatzbild))
{
$data .= fgets($ersatzbild,1000);
}
fclose($ersatzbild);
}
// bilddaten in der variable $data ausgeben
echo $data;
?>
|
der teil innerhalb des codes vom wbb welcher mir die einträge aus der db ausließt
|
PHP Source code
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
// Microbanner //
$count=1;
$cb_microbannerbit.="<tr>";
$microbanner=$db->unbuffered_query("SELECT * FROM bb".$n."_microbanner WHERE active = '1'");
while($microbannerfound=$db->fetch_array($microbanner))
{
$cb_microbannerbit .= "<td align=\"center\" class=\"tablea\" width=\"10%\"><span class=\"smallfont\">";
eval ("\$cb_microbannerbit .= \"".$tpl->get("cb_microbannerbit")."\";");
$cb_microbannerbit .= "</span></td>";
if($count==10)
{
$cb_microbannerbit.="</tr><tr>";
$count=1;
} else {
$count++;
}
}
if($count<11)
{
while($count<11)
{
$count++;
$cb_microbannerbit.="<td class=\"tablea\"> </td>";
}
}
$cb_microbannerbit.="</tr>";
// Microbanner //
|
(für nutzer des wbb: diesen code in der global.php einbauen)
und zu guterletzt noch der inhalt des templates welches die microbanner.php nutzt bzw. wo ersichtlich ist wie man nun diese funktion nutzt.
|
PHP Source code
|
1
|
<a href="$microbannerfound[link]" target="_blank">$microbannerfound[titel]<br /><img src="microbanner.php?loadimg=$microbannerfound[banner]" width="88" height="31" border="0" alt=""></a>
|
und für die wbb nutzer hier noch der code der im footer template einfach am ende angefügt werden muß für die ausgabe.
|
PHP Source code
|
1
2
3
4
5
6
7
|
<br />
<table cellpadding="{$style['tableincellpadding']}" cellspacing="{$style['tableincellspacing']}" border="{$style['tableinborder']}" class="tableinborder" align="center" style="width:{$style['tableinwidth']}">
<tr>
<td class="tablea" align="center" colspan="10"><span class="smallfont">Microbanner Links</span></td>
</tr>
$cb_microbannerbit
</table>
|
das wars auch schon

.. das php skript kann man natürlich auch für jeglichen anderen bilder nutzen und damit prüfen ob die bilder geladen werden können.