我正在使用 TinySong api 生成链接,它可以工作,现在我尝试使用 linkify 来生成链接。事实并非如此。我不确定为什么它没有链接,我相信我使用了正确的变量。这是代码。
<?php
// linkify URLs
$pre = preg_replace(
'/(https?:\/\/\S+)/',
'<a href="\1">\1</a>',
$pre
);
?>
<script src="http://platform.twitter.com/anywhere.js?id= MY API KEY&v=1" type="text/javascript"></script>
<?php
class Tinysong
{
protected $api_key = '';
protected $method = '';
protected $limit = '';
protected $query_string = '';
public static $CURL_OPTS = array(
CURLOPT_CONNECTTIMEOUT => 10,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 60,
CURLOPT_USERAGENT => 'tinysong-php-0.7',
);
public function __construct($api_key)
{
$this->api_key = $api_key;
}
/**
* A wrapper for RESTful method /a/ (single
* @return @Tinysong
*/
public function single_tinysong_link($query_string)
{
$this->query_string($query_string);
return $this->method('a');
}
public function search($query_string)
{
$this->query_string($query_string);
return $this->method('a');
}
/**
* A wrapper for RESTful method /s/ (search)
* @return Tinysong
*/
/**
* Sets the query string
* @return Tinysong
*/
public function query_string($query_string)
{
$this->query_string = urlencode($query_string);
return $this;
}
/**
*
* @param type $method
* @return Tinysong
*/
public function method($method)
{
$this->method = $method;
return $this;
}
/**
* Fetchs the data based on the parameters
* @param bool $clean_params cleans the params after build the url
* @param resource $ch a custom php curl resource
* @return array an associative array with the data
*/
public function execute($clean_params = true, $ch = null)
{
$url = $this->build_query();
if ($clean_params)
{
$this->clean_params();
}
if (!$ch)
{
$ch = curl_init($url);
curl_setopt_array($ch, self::$CURL_OPTS);
}
$query_result = curl_exec($ch);
curl_close($ch);
return json_decode($query_result, true);
}
/**
* Builds an API query based on the parameters
* @return string the query
*/
public function build_query()
{
$url = "http://tinysong.com";
$url .= '/'.$this->method.'/';
$url .= $this->query_string.'?';
if ($this->limit)
{
$url .= 'limit='.$this->limit;
}
$url .= '&key='.$this->api_key;
$url .= '&format=json';
return $url;
}
/**
* Cleans the params (method, query string and limit)
* @return Tinysong
*/
public function clean_params()
{
$this->method = '';
$this->query_string = '';
$this->limit = '';
}
}
?>
如何使结果链接可点击?我是否使用了正确的代码?谢谢
这是我发现的唯一一个可以与 www.
function link_it($text)
{
$text= preg_replace("/(^|[\n ])([\w]*?)((ht|f)tp(s)?:\/\/[\w]+[^ \,\"\n\r\t<]*)/is", "$1$2<a href=\"$3\" >$3</a>", $text);
$text= preg_replace("/(^|[\n ])([\w]*?)((www|ftp)\.[^ \,\"\t\n\r<]*)/is", "$1$2<a href=\"http://$3\" >$3</a>", $text);
$text= preg_replace("/(^|[\n ])([a-z0-9&\-_\.]+?)@([\w\-]+\.([\w\-\.]+)+)/i", "$1<a href=\"mailto:$2@$3\">$2@$3</a>", $text);
return($text);
}
希望这会帮助别人
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)