Как да направя това ?

bilbe

Registered
Добър ден. Имам следния линк :
http://site.com/download.php?id=9C2A19581

и искам да си направя код който автоматично да направи от линка горе този линк:

http://site.com:82/admin/download.php?f=/home/lighty/files/9c2a1958.1_mp3

Както виждате втория линк сваля директно и всичко което трябва да се направи е края на първия код 9C2A19581 да стане така 9c2a1958.1_mp3 , главните букви да станат малки и преди последното число да се сложи . и да се добави _mp3

Това е кодето търса.

Мерси предварително за помощта :)
 
Код:
<form method="POST" action="">

Линк - <input type="text" name="url"/> <input type="submit" name="submit" value="Изтегли"/>

</form>

<?
if (isset($_POST['submit']))
{
$url=$_POST['url'];

if (empty($url))
{
echo "Prazno pole !";
}
else
{
$id=explode("id=", $url);
$id=$id[1];
$id=strtolower($id);
$idbec=substr($id, 0, -1);

$lastid=substr($id, -1);



$link=explode("/download.php", $url);
$link=$link[0];

$afterlink="/admin/download.php?f=/home/lighty/files/";

$real="$link:82$afterlink$idbec.$lastid"."_mp3";

echo "<a href='$real'>Директен линк</a>";

}
}
?>
 
Мерси работи перфектно, а само да попитам как да го направя да изкарва резултата без http:// ?
 
Еми ето така, но без http:// дава грешка ето виж :


Код:
 <form method="POST" action="">

Линк - <input type="text" name="url"/> <input type="submit" name="submit" value="Изтегли"/>

</form>

<?
if (isset($_POST['submit']))
{
$url=$_POST['url'];

if (empty($url))
{
echo "Prazno pole !";
}
else
{
$id=explode("id=", $url);
$id=$id[1];
$id=strtolower($id);
$idbec=substr($id, 0, -1);

$lastid=substr($id, -1);




$link=explode("http://", $url);
$link=explode("/download.php", $link[1]);
$link=$link[0];

$afterlink="/admin/download.php?f=/home/lighty/files/";

$real="$link:82$afterlink$idbec.$lastid"."_mp3";

echo "<a href='$real'>Директен линк</a>";

}
}
?>
 
Супер супер. А как да направя примерно някой пут като се копира линка се копва с 2 3 интервала след него и прави проблем, как да ги пренебрегва тия интервали ако се поставят случайно, защото иначе слага и в новия код и не работи коректно
 
Код:
  <form method="POST" action="">

Линк - <input type="text" name="url"/> <input type="submit" name="submit" value="Изтегли"/>

</form>

<?
if (isset($_POST['submit']))
{
$url=trim($_POST['url']);

if (empty($url))
{
echo "Prazno pole !";
}
else
{
$id=explode("id=", $url);
$id=$id[1];
$id=strtolower($id);
$idbec=substr($id, 0, -1);

$lastid=substr($id, -1);




$link=explode("http://", $url);
$link=explode("/download.php", $link[1]);
$link=$link[0];

$afterlink="/admin/download.php?f=/home/lighty/files/";

$real="$link:82$afterlink$idbec.$lastid"."_mp3";

echo "<a href='$real'>Директен линк</a>";

}
}
?>
ето така
 
Използва се функцията trim(); в такъв случай, и по-точно ето :


Код:
	 <form method="POST" action="">

Линк - <input type="text" name="url"/> <input type="submit" name="submit" value="Изтегли"/>

</form>

<?
if (isset($_POST['submit']))
{
$url=trim($_POST['url']);

if (empty($url))
{
echo "Prazno pole !";
}
else
{
$id=explode("id=", $url);
$id=$id[1];
$id=strtolower($id);
$idbec=substr($id, 0, -1);

$lastid=substr($id, -1);




$link=explode("http://", $url);
$link=explode("/download.php", $link[1]);
$link=$link[0];

$afterlink="/admin/download.php?f=/home/lighty/files/";

$real="$link:82$afterlink$idbec.$lastid"."_mp3";

echo "<a href='$real'>Директен линк</a>";

}
}
?>
 
Хиляди редове за нещо, което ....
Може и така.

Код:
$url='http://space4sharing.com/download.php?id=9C2A19581  ';
print preg_replace('/http:\/\/(\S+)(\/)download.php\?id=(\S+)(\S{1})/','$1:82/admin/download.php?f=/home/lighty/files/$3.$4_mp3',strtolower(trim($url)));
 
Мерси и на двамата и по 2-та начина работи супер, но това с разстоянието не става. Като сложа примерно линка и 2 интервала и новия линк нещо се прецеква незнам защо.
 
Предполагам, че оставяш празно място някаде в средата, докато trim премаха интервалите само в началото и края мисля, че беше :D ако не се бъркам, затова ето така ще премаха интервалите навсякаде :

Код:
  <form method="POST" action="">

Линк - <input type="text" name="url"/> <input type="submit" name="submit" value="Изтегли"/>

</form>

<?
if (isset($_POST['submit']))
{
$url=trim($_POST['url']);

if (empty($url))
{
echo "Prazno pole !";
}
else
{
$id=explode("id=", $url);
$id=$id[1];
$id=strtolower($id);
$idbec=substr($id, 0, -1);

$lastid=substr($id, -1);




$link=explode("http://", $url);
$link=explode("/download.php", $link[1]);
$link=$link[0];

$afterlink="/admin/download.php?f=/home/lighty/files/";

$real="$link:82$afterlink$idbec.$lastid"."_mp3";


$rem=preg_replace('/ /', '', $real);


echo "<a href='$rem'>Директен линк</a>";

}
}


?>
 
Ами незнам, нещо пак не ми работи както трябва. Линка е този :
http://space4sharing.com/download.php?id=9C2A19581 2 интервала
и ми прави такъв линк :
space4sharing.com:82/admin/download.php?f=/home/lighty/files/9c2a19581 . _mp3
и не работи
 
<form method="POST" action="">
Линка: <br />
<input type="text" name="link"/> <br />
<input type="submit" value="Изтегли"/>
<input type="hidden" name="submit" value="1"><br />
</form>
<?php
if($_POST['submit']==1)
{
$link= trim($_POST['link']);
if($link == NULL)
{
echo "Полето е празно!";
}
else
{
$id_link = explode("?id=", $link);
$id_link = $id_link['1'];
$id_link = strtolower ($id_link);
$ids = substr($id_link, -1, 0);
$last_id = substr($id_link, -1);
$link = explode("http://", $url);
$link = explode('/download.php', $link[1]);
$link = $link[0];
$alink = '/admin/download.php?f=/home/lighty/files/';
$real_link = "$link:82$alink$ids.$last_id"."_mp3";
$direct = preg_replace('/ /', '', $real_link);
echo "<a href='$direct'>Директен линк</a>";
}
}
?>

Така?
 
Код:
<form method="post" action="">
<input type="text" name="link" size="35" />
<input type="submit" name="btn" value="Go!"/>
</form>
<?php
$link = $_POST['link'];
$link = str_replace(" ", "", $link);
if(isset($_POST['btn']) AND strlen($link) > 0 AND preg_match("/^http:\/\/space4sharing.com\/download.php?id=(.*)$/", $link)){
$c = file_get_contents($link);
$link = explode("id=", $link);
$l = strtolower(substr($link[1], 0, -1));
$la = strtolower(substr($link[1], -1));
$id = $l.".".$la."_mp3";
preg_match("/<title>(.*)<\/title>/", $c, $m);
$file = "http://space4sharing.com:82/admin/download.php?f=/home/lighty/files/$id";
echo "<b>Име:</b> $m[1] <br /> <b>Линк:</b> $file";
}else{
echo "Невалиден линк!!";
}
ето какво ти предлагам аз. И трим служи за премахване на интервали в началото и края на текста
 
baso нещо не работи изкарва линка .1_mp3
а на sorRy постоянно изкарва невалиден линк :S
 
е при мен нямаше проблем пробвай това
Код:
<form method="post" action="">
<input type="text" name="link" size="35" />
<input type="submit" name="btn" value="Go!"/>
</form>
<?php
$link = $_POST['link'];
$link = str_replace(" ", "", $link);
if(isset($_POST['btn']) AND strlen($link) > 0 ){
$c = file_get_contents($link);
$link = explode("id=", $link);
$l = strtolower(substr($link[1], 0, -1));
$la = strtolower(substr($link[1], -1));
$id = $l.".".$la."_mp3";
preg_match("/<title>(.*)<\/title>/", $c, $m);
$file = "http://space4sharing.com:82/admin/download.php?f=/home/lighty/files/$id";
echo "<b>Име:</b> $m[1] <br /> <b>Линк:</b> $file";
}else{
echo "Невалиден линк!!";
}
 

Back
Горе