创建一个要使用的URL而不是许多URL

时间:2013-07-13 06:10:45

标签: javascript url web-applications web

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

我不知道如何实现这一点,如何创建一般的URL?以及如何让它做这样的事情。

这可能是一个基本问题!! 但我是网络应用程序中的菜鸟,如果不够清楚也很抱歉

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

您需要一个运行php,jsp或任何其他后端语言的网络服务器。然后你需要用这些语言之一编写一个页面,它将一个链接数组作为一个get变量,并返回一个javascript体,在标签页中打开这个url列表。

例如在php

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

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

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

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

答案 2 :(得分:0)

  

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

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

  

如何创建URL?

运行Web服务器。然后将其运行的计算机的地址(其IP地址或使用DNS设置的主机名)与本地部分组合,该部分由您选择的Web服务器软件处理。