那么,让我简要介绍一下我要做的事情。
现在,这是一个技巧。如果给定的URL是公共存储库,它只是克隆而不要求任何密码或任何东西。但是,如果这是私人回购,那么它会提示输入密码。
我想确定提示是否要求输入密码并通过我的PHP代码输入密码。
有没有办法在PHP中实现这一点? 有什么办法我可以告诉shell_exec()提示我命令是否提示输入密码? PHP中有另一个函数而不是shell_exec(),它允许我这样做吗?
请帮助!!!
答案 0 :(得分:0)
看起来通过CURL对私有存储库执行HEAD请求会生成404 Not Found错误。您可以按照@DarkBee的建议检查此错误代码。
curl -I https://github.com/EvansDaniel/LocalLocker
此命令产生此输出(这是我的私有存储库):
HTTP/1.1 404 Not Found
Server: GitHub.com
Date: Wed, 21 Mar 2018 09:57:32 GMT
Content-Type: text/plain; charset=utf-8
Status: 404 Not Found
X-Frame-Options: deny
X-XSS-Protection: 1; mode=block
X-Content-Type-Options: nosniff
Cache-Control: no-cache
Vary: X-PJAX
Set-Cookie: _gh_sess=eyJzZXNzaW9uX2lkIjoiNTE5YmE5NmI3ZjNhNDkzZTI3ODkyMmJjNTc2ZDU2YzYiLCJsYXN0X3dyaXRlIjoxNTIxNjI2MjUyMjc4fQ%3D%3D--896b8c3727dd9159a46262b6bd6fa2f405f2e674; path=/; secure; HttpOnly
X-Request-Id: 1fbd5a0c-2114-413b-b0f3-5b23bf1b6a43
X-Runtime: 0.016399
Strict-Transport-Security: max-age=31536000; includeSubdomains; preload
Referrer-Policy: origin-when-cross-origin, strict-origin-when-cross-origin
Expect-CT: max-age=2592000, report-uri="https://api.github.com/_private/browser/errors"
Content-Security-Policy: default-src 'none'; base-uri 'self'; connect-src 'self'; form-action 'self'; img-src data:; script-src 'self'; style-src 'unsafe-inline'
X-Runtime-rack: 0.021113
X-GitHub-Request-Id: 404D:3341:9F6864:11DFCD2:5AB22C8C
如果您收到404错误代码,您可以尝试使用用户的用户名和密码,使用git clone url命令尝试shell_exec
,如果这样做不成功,告诉用户存储库不存在,即404的真正原因是该URL没有存储库。