不可用时从CDN到本地存储的带有PHP的回退Javascript


Fallback Javascript with PHP from CDN to Local Storage on Unavailable

我需要一些帮助。我想为我的源代码创建一个回退。我正在使用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

我有我的源代码硬编码,如:

<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 }} ?>