【问题标题】:Create one URL to be used instead of many URLs创建一个要使用的 URL,而不是多个 URL
【发布时间】:2013-07-13 06:10:44
【问题描述】:

我需要从许多 URL 中创建一个通用 URL,例如,如果我有 5 个 URL 用于某些页面,我想创建一个新的 URL 用作这 5 个 URL 的缩短 URL,换句话说,我需要这些 URL以某种方式保存其他 URL 并在我将其放在地址栏中时将它们返回给我,如果它在选项卡中打开它们将是完美的

我不知道我怎么能做到这一点,一般如何创建一个 URL?以及如何让它做这样的事情。

这可能是一个基本问题! 但是我是网络应用程序的菜鸟,如果还不够清楚,请见谅

【问题讨论】:

    标签: javascript url web-applications web


    【解决方案1】:

    您可以使用 PaseteBin 及其 API。 他们有一个list 的 API,您的 Web 应用可以使用这些 API 以纯文本格式存储 URL 并将它们返回给您。 生成的 pastebin URL 将是您的 URL,其中包含其他 URL。

    【讨论】:

      【解决方案2】:

      您需要一个运行 php、jsp 或任何其他后端语言的网络服务器。那么您需要使用其中一种语言编写一个页面,该页面将链接数组作为获取变量并返回一个 javascript 主体,该主体在选项卡中打开此 url 列表。

      例如在 php 中

      使用序列化和反序列化 PHP 函数将链接数组发送到 php 页面。此函数为您提供数组类型的可存储(字符串)版本。有关使用情况的更多信息,请阅读 http://php.net/manual/en/function.serialize.phphttp://www.php.net/manual/en/function.unserialize.php

      然后循环url并为每个url添加这样的回显消息。

      <?php
              foreach ($arrayOfUrls as $url) {
              echo '<script type="text/javascript">var win = window.open('.$url.', "_blank"); </script>';
      
      ?>
      

      最后你需要从你的javascript代码中调用这个页面,你需要序列化你的JS数组,其中包含url列表。

      您可以使用此代码。

      /*
      * PHP Serialize
      * Morten Amundsen
      * mor10am@gmail.com
      */
      function php_serialize(obj)
      {
          var string = '';
      
          if (typeof(obj) == 'object') {
              if (obj instanceof Array) {
                  string = 'a:';
                  tmpstring = '';
                  count = 0;
                  for (var key in obj) {
                      tmpstring += php_serialize(key);
                      tmpstring += php_serialize(obj[key]);
                      count++;
                  }
                  string += count + ':{';
                  string += tmpstring;
                  string += '}';
              } else if (obj instanceof Object) {
                  classname = obj.toString();
      
                  if (classname == '[object Object]') {
                      classname = 'StdClass';
                  }
      
                  string = 'O:' + classname.length + ':"' + classname + '":';
                  tmpstring = '';
                  count = 0;
                  for (var key in obj) {
                      tmpstring += php_serialize(key);
                      if (obj[key]) {
                          tmpstring += php_serialize(obj[key]);
                      } else {
                          tmpstring += php_serialize('');
                      }
                      count++;
                  }
                  string += count + ':{' + tmpstring + '}';
              }
          } else {
              switch (typeof(obj)) {
                  case 'number':
                      if (obj - Math.floor(obj) != 0) {
                          string += 'd:' + obj + ';';
                      } else {
                          string += 'i:' + obj + ';';
                      }
                      break;
                  case 'string':
                      string += 's:' + obj.length + ':"' + obj + '";';
                      break;
                  case 'boolean':
                      if (obj) {
                          string += 'b:1;';
                      } else {
                          string += 'b:0;';
                      }
                      break;
              }
          }
      
          return string;
      }
      

      输出 url 将类似于yourphppage.php?urls=""a:3{i:0;s:4:"URL1";i:1;s:8:"URL2";i:2;s:7:"URL2";}

      【讨论】:

        【解决方案3】:

        我需要这些网址以某种方式保存其他网址并在我将其放入地址栏中时将其返回给我

        这样做的唯一方法是在资源级别。例如,您可以使用 HTML 文档的 URL,它会立即打开 5 个弹出窗口(尽管这会被大多数浏览器阻止)或在框架中打开 5 个页面(这将是一个令人讨厌的 UI)。

        一般如何创建网址?

        运行网络服务器。然后将运行它的机器的地址(其 IP 地址或使用 DNS 设置的主机名)与您选择的 Web 服务器软件处理的本地部分结合起来。

        【讨论】:

          猜你喜欢
          • 2014-07-02
          • 1970-01-01
          • 1970-01-01
          • 2012-04-25
          • 1970-01-01
          • 1970-01-01
          • 2013-04-17
          • 2019-11-19
          • 1970-01-01
          相关资源
          最近更新 更多