2012-03-26 78 views
1

我有一个代码,以缩短多个环节,但这些代码(带有可选后缀)代码仅来自第二个环节的工作:多个缩短网址的问题

$url_to_shorten = $_POST[links]; 
$ownshuff  = $_POST[shuff]; 
$theurls = explode("\n",$url_to_shorten); 
foreach($theurls as $urlmulti){ 
shortcreate($urlmulti,$shuffss,$ownshuff); 
} 

这里有一个例子:

我的链接是

http://www.123.com 
http://www.1234.com 
http://www.1235.com 

和我的后缀是:(Hello_Man)。

与上面的代码它打印

http://www.mysite.com/IUo 
http://www.mysite.com/kOl-Hello_Man 
http://www.mysite.com/Rww-Hello_Man 

和它不打印后缀用于第一链路。

的shortcreate功能是:

function shortcreate($url_long, $Suffix, $ownshuf){ 
    global $db; 
    $chars = $Suffix; 
    while (!shortisUnique($chars)) { 
     if ($ownshuf != "") { 
      $chars = shortgenerate_chars() . "-" . $ownshuf; 
     } 
     else { 
      $chars = shortgenerate_chars(); 
     } 
    } 
    $url = $url_long; 
    $url = trim($url); 
    $url = mysql_real_escape_string($url); 
    if (!shortisThere($url)) { 
     $q = "INSERT INTO `shorturls` (url, unique_chars) VALUES ('" . $url . "', '" . $chars . "')"; 
     //echo $q; 
     $r = $db->query($q); 
     if (mysql_affected_rows()): 
      $q  = "SELECT * FROM `shorturls` WHERE `url`='" . $url . "'"; 
      $r  = $db->query($q); 
      $row  = $db->fetch($r); 
      $the_url = SITE_URL . "" . $row[2]; 

      echo "$the_url\n"; 

     else: 
      $the_url = NULL; 
      return false; 
     endif; 
    } 
    else { 
     $q  = "SELECT * FROM `shorturls` WHERE `url` = '" . $url . "'"; 
     $r  = mysql_query($q); 
     $row  = mysql_fetch_row($r); 
     $the_url = SITE_URL . "" . $row[2]; 

     echo "$the_url\n"; 

    } 
} 

我需要的代码为所有环节的工作。任何帮助

问候

+1

你是如何缩短链接时输出大于输入长? – 2012-03-26 16:44:15

+0

'shortcreate'做什么?你为什么不把字符串数组键放在引号中?你为什么在第2行获得'$ _POST_'? – 2012-03-26 16:44:58

+0

预期产量是多少? – 2012-03-26 16:45:30

回答

1

我想这个问题是在一个代码块:

$chars = $Suffix; 
while (!shortisUnique($chars)) { 
    if ($ownshuf != "") { 
     $chars = shortgenerate_chars() . "-" . $ownshuf; 
    } 
    else { 
     $chars = shortgenerate_chars(); 
    } 
} 

你给$字符变量后缀的值,你检查它是否是唯一的(猜测不是因为它进入循环),并且$ownshuf != ""的条件从某种原因返回false(考虑与我们分享该参数的值是多少),否则$chars的输出将返回带“ - ”的字符串。

提醒:与我们分享什么是该参数的值