我有一个缩短多个链接的代码,但该代码(带可选后缀)只能从第二个链接工作:
$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";
}
}
我需要那个代码为所有的链接工作。有什么帮助吗
关于
我想问题出在下一块代码中:
$chars = $Suffix;
while (!shortisUnique($chars)) {
if ($ownshuf != "") {
$chars = shortgenerate_chars() . "-" . $ownshuf;
}
else {
$chars = shortgenerate_chars();
}
}
你给$chars变量后缀的值,然后检查它是否是唯一的(猜测不是因为它进入了循环),并且$ownshuf != ""
的条件出于某种原因返回false
(考虑与我们共享该参数的值),否则$chars
的输出将返回一个带"-"的字符串。
提醒:与我们分享该参数的值