Scriptje gezocht
Voor een website die ik onderhoud zoek ik een php scriptje.
Op de mainpage staat een iframe met content van een derde partij daarin. Nu wil het zo zijn dat die server daar nogal een crasht waardoor de site een foutmelding geeft. Omdat ik soms weinig tijd heb duurt het wel eens een tijd eer dat opgelost is. Is er iemand die een stukje PHP kan maken zodat ik vanaf een externe webpagina dat iframe gemakkelijk onzichtbaar kan maken?
Bij voorbaat dank,
Ronald.
topic verplaatst naar juiste categorie.[/modedit]
Gewijzigd op 25/06/2013 09:57:50 door Bas IJzelendoorn
Ronald Broos op 25/06/2013 07:45:34:
Is er iemand die een stukje PHP kan maken zodat ik vanaf een externe webpagina dat iframe gemakkelijk onzichtbaar kan maken?
Waarom op de handbediening als het helemaal automatisch kan :)
Code (php)
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
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
<?php
// Inline frame alleen tonen als www.example.com online is.
if (isOnline('http://www.example.com/')) {
echo '<iframe>...</iframe>';
}
/**
* @param string $url Te controleren URL.
* @return bool True als $url online is en anders false.
*/
function isOnline($url)
{
if(!filter_var($url, FILTER_VALIDATE_URL)) {
return false;
}
// cURL initialiseren
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_NOBODY, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// HTTP-verzoek verzenden en afhandelen
$respons = curl_exec($ch);
curl_close($ch);
if ($respons) {
return true;
} else {
return false;
}
}
?>
// Inline frame alleen tonen als www.example.com online is.
if (isOnline('http://www.example.com/')) {
echo '<iframe>...</iframe>';
}
/**
* @param string $url Te controleren URL.
* @return bool True als $url online is en anders false.
*/
function isOnline($url)
{
if(!filter_var($url, FILTER_VALIDATE_URL)) {
return false;
}
// cURL initialiseren
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_NOBODY, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// HTTP-verzoek verzenden en afhandelen
$respons = curl_exec($ch);
curl_close($ch);
if ($respons) {
return true;
} else {
return false;
}
}
?>
Alvast bedankt, echter zou het wel handmatig moeten worden uitgeschakeld, de pagina in de iframe continu herschreven wordt. Wanneer de pc die dit aanstuurt uitvalt zou er dan constant dezelfde gegevens te zien zijn, wat storend is op de site zelf.
Je kunt het namelijk op verschillende manieren oplossen. Registreer bijvoorbeeld hoe vaak en hoe lang de externe server eruit ligt; daarmee kun je dan gerichter beslissingen nemen. En die beslissingsregels kun je vervolgens inbouwen met een timer. Je wilt er immers, denk ik zo, niet zelf 24 uur per dag bovenop zitten.
Wat je daarnaast kunt doen, is een lokale kopie bijhouden als back-up van de pagina in het iframe. Daarvoor kun je dezelfde opzet met cURL gebruiken. Ligt de externe server eruit, dan val je tijdelijk terug op de kopie. Misschien is dat ook een werkbare oplossing?
of overstappen naar een degelijke server die constant is en bijna nooit uit crasht.