簡體   English   中英

Linkify PHP文字

[英]Linkify PHP text

我正在使用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);
}

希望這會幫助別人

這在我將其用於...的網站上運行良好

function find_urls($t){
    $reg_exUrl = "/(http|https|ftp|ftps)\:\/\/[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(\/\S*)?/";
    // Check if there is a url in the text
    if(preg_match($reg_exUrl, $t, $url)) {
        $add='';
        if (substr($url[0],(strlen($url[0])-1),strlen($url[0]))==")"){
            $url[0]=substr($url[0],0,(strlen($url[0])-1));
            $add=')';
        } else if (substr($url[0],(strlen($url[0])-1),strlen($url[0]))=="]"){
            $url[0]=substr($url[0],0,(strlen($url[0])-1));
            $add=']';
        }
        // make the urls hyper links
        return preg_replace($reg_exUrl, '<a href="'.$url[0].'">'.$url[0].'</a>'.$add, $t);
    } else {
        // if no urls in the text just return the text
        return $t;
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM