Fejlbeskeder fra get_headers()

Her kan du få hjælp og stille spørgsmål til PHP!
Besvar
Brugeravatar
scootergrisen
Moderator
Moderator
Indlæg: 709
Tilmeldt: 21. jun 2012, 23:40
Kontakt:

Fejlbeskeder fra get_headers()

Indlæg af scootergrisen » 9. jan 2015, 23:07

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.

Jepsen
Begynder
Indlæg: 18
Tilmeldt: 8. jan 2015, 03:53

Re: Fejlbeskeder fra get_headers()

Indlæg af Jepsen » 10. jan 2015, 16:03

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.

Brugeravatar
scootergrisen
Moderator
Moderator
Indlæg: 709
Tilmeldt: 21. jun 2012, 23:40
Kontakt:

Re: Fejlbeskeder fra get_headers()

Indlæg af scootergrisen » 10. jan 2015, 17:02

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.

Jepsen
Begynder
Indlæg: 18
Tilmeldt: 8. jan 2015, 03:53

Re: Fejlbeskeder fra get_headers()

Indlæg af Jepsen » 10. jan 2015, 17:32

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.
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?

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()
}

Brugeravatar
scootergrisen
Moderator
Moderator
Indlæg: 709
Tilmeldt: 21. jun 2012, 23:40
Kontakt:

Re: Fejlbeskeder fra get_headers()

Indlæg af scootergrisen » 10. jan 2015, 17:50

Ja det er lokalt.

Giver fsockopen så ikke fejl ligesom get_headers ?

Jepsen
Begynder
Indlæg: 18
Tilmeldt: 8. jan 2015, 03:53

Re: Fejlbeskeder fra get_headers()

Indlæg af Jepsen » 10. jan 2015, 18:11

scootergrisen skrev:Ja det er lokalt.

Giver fsockopen så ikke fejl ligesom get_headers ?
Nej, fsockopen bruger php_stream_xport_create, hvorimod fopen, file osv bruger php_stream_open_wrapper_ex.

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.

Jepsen
Begynder
Indlæg: 18
Tilmeldt: 8. jan 2015, 03:53

Re: Fejlbeskeder fra get_headers()

Indlæg af Jepsen » 31. jan 2015, 10:11

Hvad så? Fik du det til at fungere? :-)

Brugeravatar
scootergrisen
Moderator
Moderator
Indlæg: 709
Tilmeldt: 21. jun 2012, 23:40
Kontakt:

Re: Fejlbeskeder fra get_headers()

Indlæg af scootergrisen » 31. jan 2015, 17:27

Jeg prøver med curl men jeg har ikke helt gennem testet det.

Besvar