在不可用的情况下,使用PHP将Javascript从CDN回退到本地存储
我需要一些帮助。我想为我的源代码创建一个回退。我正在使用cdn来承载我的javascript、css和图像。我试图做的是在php中创建一个回退,例如ip 123.456.789在400ms内不可用。php将回退以获取我的本地存储(987.654.321) 我在想这样的事情:在不可用的情况下,使用PHP将Javascript从CDN回退到本地存储,php,javascript,html,cdn,fallback,Php,Javascript,Html,Cdn,Fallback,我需要一些帮助。我想为我的源代码创建一个回退。我正在使用cdn来承载我的javascript、css和图像。我试图做的是在php中创建一个回退,例如ip 123.456.789在400ms内不可用。php将回退以获取我的本地存储(987.654.321) 我在想这样的事情: if ip 123.456.789 in 400ms //show this file from 123.456.789 else //show this file from 987.654.321 我的源代码已硬
if ip 123.456.789 in 400ms
//show this file from 123.456.789
else
//show this file from 987.654.321
我的源代码已硬编码,例如:
<script type="text/javascript" src="123.456.789/js/jquery.js"></script>
因此,如果123.456.789在400ms内不可用,我希望加载这个
<script type="text/javascript" src="987.654.321/js/jquery.js"></script>
我刚才回答了自己的问题。所以决定在这里分享。
<?php
//debug off by default
error_reporting(0);
//cdn fallback
if (!isset($_GET['aws_cdn'])) {
$cdn_fallback = curl_init('http://123.456.789/'); //Set to CDN IP or URL
curl_setopt($cdn_fallback, CURLOPT_RETURNTRANSFER, true);
curl_setopt($cdn_fallback, CURLOPT_NOSIGNAL, 1);
curl_setopt($cdn_fallback, CURLOPT_TIMEOUT_MS, 400); //How many milliseconds before fallback to local storage
$data = curl_exec($cdn_fallback);
$curl_errno = curl_errno($cdn_fallback);
$curl_error = curl_error($cdn_fallback);
curl_close($cdn_fallback);
if ($curl_errno > 0) { ?>
<script type="text/javascript" src="http://example.com/js/jquery.js"></script>
<?php } else { ?>
<script type="text/javascript" src="http://123.456.789/cdn/js/jquery.js"></script>
<?php }} ?>
你是如何连接到123.456.789的?问题是你如何访问可能需要400毫秒以上的数据,我知道我可以建议最好的方法是使用纯js,或者在php中使用带有超时设置的curl请求。我的回答是一个很好的问题++++++