1

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

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

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

4

3 回答 3

1

您需要一个运行 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 代码中调用此页面,您需要序列化具有 url 列表的 JS 数组。

您可以为此使用此代码。

/*
* 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;
}

输出网址将像yourphppage.php?urls=""a:3{i:0;s:4:"URL1";i:1;s:8:"URL2";i:2;s:7:"URL2";}

于 2015-01-06T00:21:19.623 回答
1

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

于 2013-07-13T06:22:08.820 回答
0

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

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

一般如何创建 URL?

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

于 2013-07-13T06:14:28.450 回答