2013-08-21 5 views
1

Begginer здесь, люди. Может ли кто-нибудь предложить какое-либо решение? У меня введенный пользователем текст. Прежде всего я проверяю, если текст имеет какие-либо URLs:Как создать bitly укороченный URL из введенного пользователем текста?

$post = preg_replace('/https?:\/\/[\w\-\.!~?&+\*\'"(),\/]+/','<a class="post_link"   
href="$0">$0</a>',$post); 

И после того, что мне нужно получить, что URL-адрес и поставить в качестве переменной ($ URL) этой функции:

$short=make_bitly_url('$url','o_6sgltp5sq4as','R_f5212f1asdads1cee780eed00d2f1bd2fd794f','xml'); 

И наконец, эхо и url, и текст пользователя. Заранее благодарим за идеи и критику.

Я пытался что-то вроде этого:

$post = preg_replace('/https?:\/\/[\w\-\.!~?&+\*\'"(),\/]+/e',$url,$post){ 
$shorten = make_bitly_url($url,'o_6sgltpmm5sq4','R_f5212f11cee780ekked00d2f1bd2fd794f','json'); 
return '<a class="post_link" href="$shorten">$shorten</a>'; 
}; 

Но даже для меня это выглядит какой-то нонсенс.

+2

Что именно вы хотите сделать и что вы уже пытались достичь указанной цели? – kero

+0

@kingkero Я добавил, что я пытался сделать. – user2699508

+0

Пожалуйста, поддержите все ответы, которые вам полезны, и выберите правильный ответ, когда это будет сделано (чтобы закрыть вопрос). – gibberish

ответ

1

Вот как использовать bit.ly API из PHP:

/* make a URL small */ 
function make_bitly_url($url,$login,$appkey,$format = 'xml',$version = '2.0.1') 
{ 
    //create the URL 
    $bitly = 'http://api.bit.ly/shorten?version='.$version.'&longUrl='.urlencode($url).'&login='.$login.'&apiKey='.$appkey.'&format='.$format; 

    //get the url 
    //could also use cURL here 
    $response = file_get_contents($bitly); 

    //parse depending on desired format 
    if(strtolower($format) == 'json') 
    { 
     $json = @json_decode($response,true); 
     return $json['results'][$url]['shortUrl']; 
    } 
    else //xml 
    { 
     $xml = simplexml_load_string($response); 
     return 'http://bit.ly/'.$xml->results->nodeKeyVal->hash; 
    } 
} 

/* usage */ 
$short = make_bitly_url('http://davidwalsh.name','davidwalshblog','R_96acc320c5c423e4f5192e006ff24980','json'); 
echo 'The short URL is: '.$short; 

// returns: http://bit.ly/11Owun 

Source: David Walsh article


ОДНАКО, если вы хотите создать свою собственную систему URL укорочение (по аналогии с bit.ly - - и на удивление легко сделать), вот учебник из 8 частей от PHPacademy о том, как это сделать:

Уровень сложности: начинающий/средний

Каждое видео длится около десяти минут.

Part 1 Part 2 Part 3 Part 4 Part 5 Part 6 Part 7 Part 8

+0

Ну, я знаю, как создавать bit.ly URL-адреса и т. Д. Вопрос в том, как получить эту функцию preg_replace, сгенерированную url из текста пользователя, и передать ее функции bit.ly, а затем вернуть как сокращенный URL-адрес, так и текст. Но в любом случае спасибо за источник :) – user2699508

1

Bitly действительно есть API, доступных для использования. Вы должны зарегистрироваться API Documentation

+0

Хороший вопрос: +1 – gibberish

+0

@Izodn Я проверил. И, как я понял, в первую очередь мне нужно получить этот url из строки, а затем передать его bit.ly. – user2699508

Смежные вопросы