检查HTML页面是否存在
我想检查另一个网站上是否存在 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
编辑1:
抱歉编辑...不要先回答这个问题。
您需要了解服务器将以任何方式答复。您只需要检查然后响应的代码,而不是响应文本。或解析文本。
在您的情况下,服务器回答如下:
编辑 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:
Edit 2 :
you may want better to use socket_connect instead of fopen to check if the file exist
假设您在 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?
如果资源不存在,Web 服务器将返回 404 HTTP 状态代码。资源是您问题中的 html 文件。
您可以向服务器发出 head 请求以了解状态 - 或者只是一个 get 请求。
PHP 也为此操作内置了一个函数,称为
get_headers
(演示):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):