Ich wurde damit beauftragt, wöchentlich eine Datenbank durchzugehen und alle Links zu überprüfen. Ich arbeite normalerweise in PHP, aber in PHP wäre das sehr langsam (es würde die Seite nach ungefähr 100 URLs automatisch auslaufen lassen), also entschied ich mich für eine schnelle C++ App.Link Checker mit ShellExecute?
Admitidly, ich habe nicht C++ seit dem College verwendet, also bin ich ein bisschen eingerostet.
Ich fand die ShellExecute-Funktion, und dass es die Seite kein Problem öffnen würde. Hier ist, was ich bisher:
#include <shlobj.h>
#include <iostream>
using namespace std;
int main()
{
if( ShellExecute(NULL,"find","http://example.com/fdafdafda.php",NULL,NULL,SW_SHOWDEFAULT))
{
cout << "Yes";
} else {
cout << "No";
}
cout << endl;
system("PAUSE");
return 0;
}
Das Problem ist, dass es immer true zurück, ob es sich um eine gültige Seite oder nicht öffnen. Es scheint zu prüfen, ob die zugehörige App (in diesem Fall ein Browser) in der Lage ist, das Dokument ohne Probleme zu öffnen, und gibt dann true zurück. Es sieht nicht aus, ob der Browser 404 bekommt oder nicht, er sieht es einfach offen und läuft und es geht ihm gut.
Gibt es einen besseren Weg, dies zu tun? Vermisse ich einen Schritt?
Nebenbei habe ich versucht, das cURLcpp-Zeug zu verwenden, aber ich kann es nicht herausfinden. Alle Beispiele verweisen auf Header-Dateien, die nicht im Download vorhanden sind. Ich habe das Gefühl, cURLcpp ist die besser Weg, dies zu tun.
Danke für jede Hilfe.
ShellExecute, auch wenn Sie es erhalten, zu arbeiten, wird auch unglaublich langsam sein. cURL ist der Weg zu gehen. Versuchen Sie es noch einmal und schreiben Sie eine Frage, wenn Sie nicht weiterkommen. – ravenspoint