检查HTML页面是否存在

发布于 2024-11-26 18:33:56 字数 386 浏览 0 评论 0原文

我想检查另一个网站上是否存在 HTML 页面。更准确地说,我的用户需要将 .html 页面上传到他们自己的网站上,然后他们需要在我的网站上按“立即验证”。然后我的网站需要确认该 html 页面存在于其网站上。

我找到了这段代码:

$url = 'http://domain.tld/my_page.html';
$handle = @fopen($url,'r');
if($handle !== false){
   echo 'Page Exists';
}  else {
   echo 'Page Not Found';
}

但是如果 my_page.html 不存在,则此代码仅返回“Page Exists”。

I want to check whether a HTML page exists on another site. More exactly, my users need to upload a .html page onto their own site and after that they need to press "verify now" on my site. My site then needs to confirm that the html page exists on their site.

I found this code:

$url = 'http://domain.tld/my_page.html';
$handle = @fopen($url,'r');
if($handle !== false){
   echo 'Page Exists';
}  else {
   echo 'Page Not Found';
}

But if my_page.html don't exist, this code returns just "Page Exists".

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

呆橘 2024-12-03 18:33:56

编辑1
抱歉编辑...不要先回答这个问题。

您需要了解服务器将以任何方式答复。您只需要检查然后响应的代码,而不是响应文本。或解析文本。

在您的情况下,服务器回答如下:

Object not found!

 The requested URL was not found on this server. If you entered the URL manually please check your spelling and try again. 

 If you think this is a server error, please contact the webmaster. 
Error 404
work.local
Thu Jul 28 13:22:49 2011
 Apache/2.2.15 (Linux/SUSE)

编辑 2
您可能希望更好地使用 socket_connect 而不是 fopen 来检查是否文件存在

EDIT 1:
sorry fo edditing... do not get the question an first.

you need to understand that server will answer in any way. you just need to check then responsed code, not response text. or to parse text.

in your case server answer like follow:

Object not found!

 The requested URL was not found on this server. If you entered the URL manually please check your spelling and try again. 

 If you think this is a server error, please contact the webmaster. 
Error 404
work.local
Thu Jul 28 13:22:49 2011
 Apache/2.2.15 (Linux/SUSE)

Edit 2 :
you may want better to use socket_connect instead of fopen to check if the file exist

只是在用心讲痛 2024-12-03 18:33:56

假设您在 PHP 中安装了 curl 扩展,我认为这是迄今为止您最好的选择:
测试 404 网址的简单方法在 PHP 中?

Assuming that you have the curl extension installed in your PHP, I think this by far your best option:
Easy way to test a URL for 404 in PHP?

鯉魚旗 2024-12-03 18:33:56

如果资源不存在,Web 服务器将返回 404 HTTP 状态代码。资源是您问题中的 html 文件。

您可以向服务器发出 head 请求以了解状态 - 或者只是一个 get 请求。

PHP 也为此操作内置了一个函数,称为 get_headers演示):

$headers = get_headers($url, 1);
$statusLine = $headers[0];
list(,$statusCode) = explode(' ', $statusLine, 3);

A webserver returns the 404 HTTP status code if a resource does not exists. Resource is the html file in your question.

You can do a head request to the server to learn about the status - or just a get request.

PHP has a function build in for this operation as well, it's called get_headers (Demo):

$headers = get_headers($url, 1);
$statusLine = $headers[0];
list(,$statusCode) = explode(' ', $statusLine, 3);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文