Hvad er den bedste måde til at undgå fejlbeskeder fra get_headers() når funktionen forsøger at forbinde til en hjemmeside og man ikke har internetforbindelse.
Jeg får fejlbeskeder i min log fil hver gang det sker som jeg gerne vil undgå.
@ foran get_headers() ser ikke ud til at undertrykke fejlbeskeder.
På et tidspunkt slog jeg error logging fra før get_headers() og tilbage til tidligere indstilling efter, men det er jo ikke så flot selvom det virker.
Fejlbeskeder fra get_headers()
- scootergrisen
- Moderator
- Indlæg:709
- Tilmeldt:21. jun 2012, 23:40
- Kontakt:
Re: Fejlbeskeder fra get_headers()
Jeg er ikke helt med på hvad du mener? Hvis ikke du har internet forbindelse, så kan du vel slet ikke besøge siden i første omgang?
Kan du uddybe herpå?
Årsagen til, at du får fejl selvom du suppresser get_headers() eventuelle fejl er, at get_headers bruger den interne funktion, php_stream_open_wrapper_ex, som kaster fejl hvis der er tale om en invalid adresse, eller om en adresse, som ikke kan nås. Du vil opleve det samme med samtlige funktioner, der ligeledes bruger php_stream_open_wrapper_ex.
Et alternativ til get_headers() vil vel være cURL, hvor du også kan fange headers. Der vil du ikke få nogle fejlbeskeder, da cURL bruger libcurl, og ikke har nogen tilknytning til PHPs error handling.
Kan du uddybe herpå?
Årsagen til, at du får fejl selvom du suppresser get_headers() eventuelle fejl er, at get_headers bruger den interne funktion, php_stream_open_wrapper_ex, som kaster fejl hvis der er tale om en invalid adresse, eller om en adresse, som ikke kan nås. Du vil opleve det samme med samtlige funktioner, der ligeledes bruger php_stream_open_wrapper_ex.
Et alternativ til get_headers() vil vel være cURL, hvor du også kan fange headers. Der vil du ikke få nogle fejlbeskeder, da cURL bruger libcurl, og ikke har nogen tilknytning til PHPs error handling.
- scootergrisen
- Moderator
- Indlæg:709
- Tilmeldt:21. jun 2012, 23:40
- Kontakt:
Re: Fejlbeskeder fra get_headers()
Det virker med internetforbindelse uden at jeg får fejlbeskeder, men når jeg tester min hjemmeside uden internetforbindelse så vil jeg gerne slippe for fejlbeskeden.
Re: Fejlbeskeder fra get_headers()
Hvis ikke du har internet forbindelse, har du vel heller ikke adgang til din egen hjemmeside? Med mindre du køre den lokalt, er dette tilfældet?scootergrisen skrev:Det virker med internetforbindelse uden at jeg får fejlbeskeder, men når jeg tester min hjemmeside uden internetforbindelse så vil jeg gerne slippe for fejlbeskeden.
Anyway. Du kan jo tjekke hvorvidt der er internet forbindelse først, såfremt der er, så kan du bruge get_headers.
Prøv noget ala:
Kode: Vælg alt
<?php
function _checkConnection() {
// Open a socket to google.com, port 80.
// fsockopen returns false if the call fails.
$_check = fsockopen('http://google.com', 80);
if($_check)
return true;
else
return false;
}
if(_checkConnection()) {
get_headers()
}
- scootergrisen
- Moderator
- Indlæg:709
- Tilmeldt:21. jun 2012, 23:40
- Kontakt:
Re: Fejlbeskeder fra get_headers()
Ja det er lokalt.
Giver fsockopen så ikke fejl ligesom get_headers ?
Giver fsockopen så ikke fejl ligesom get_headers ?
Re: Fejlbeskeder fra get_headers()
Nej, fsockopen bruger php_stream_xport_create, hvorimod fopen, file osv bruger php_stream_open_wrapper_ex.scootergrisen skrev:Ja det er lokalt.
Giver fsockopen så ikke fejl ligesom get_headers ?
Jeg er ikke sikker på, om det giver fejl, men jeg tror det er et work-around. Ellers må du gøre brug af cURL som jeg skrev i en tidligere post.
Re: Fejlbeskeder fra get_headers()
Hvad så? Fik du det til at fungere?
- scootergrisen
- Moderator
- Indlæg:709
- Tilmeldt:21. jun 2012, 23:40
- Kontakt:
Re: Fejlbeskeder fra get_headers()
Jeg prøver med curl men jeg har ikke helt gennem testet det.