Pergunta

Eu escrevi a classe Fazer a ligação que tem um método shortTolong () esta deve retornar a URL real para um URL encurtado, devolvendo o 'local' cabeçalho de resposta. Eu testei e funciona OK aqui está o código

public function shortTolong()
    {
        $urlMatch = array();
        $ch = curl_init();

        $options = array
        (
            CURLOPT_URL=>$this->getUrl(),
            CURLOPT_HEADER=>true,
            CURLOPT_RETURNTRANSFER=>true,
            CURLOPT_FOLLOWLOCATION=>false,
            CURLOPT_NOBODY=>true);
        curl_setopt_array($ch, $options);
        $server_output = curl_exec($ch);
        preg_match_all(LINK, $server_output,&$urlMatch,PREG_SET_ORDER);
        if($urlMatch)
        {
            foreach($urlMatch as $set)
            {
                $extracted_url = $set[2].'://'.$set[3];
            }
            return $extracted_url;
        }
        else
        {
            return $this->getUrl();
        }
    }

O problema começa quando eu tento usar este método em outro arquivo que usa feedparser para obter entradas de feed que contenham este curto urls i nidas para analisar a partir de alguma razão eu recebo como resultado a curto url em vez do longo aqui é o código:

foreach($parser->getItems() as $item)
{
    $idpreg = '/\d+/';
    preg_match_all($idpreg, $item['ID'],$statusid);
    $retweetid = ($statusid[0][1]);
    $datetime = $item['PUBLISHED'];
    $user = $item['AUTHOR']['NAME'];
    preg_match_all(LINK, $item['TITLE'], &$linkMatch);
    $final = $linkMatch[0][0];
    //if($linkMatch[0][0])
        echo '<p>';
        $link = new Link($final);
        echo $link->getUrl();
        echo '<br>';
        echo $link->shortTolong();
        echo '<br>';
        echo $user;
        echo '<br>';
        echo $retweetid;
        echo '</p>';


}

de alguma razão eu obter o mesmo resultado para getUrl () e shortTolong () e eu sei com certeza isso é um erro.

alguma idéia porque isso está acontecendo? Graças

Edit- eu adicionei um aviso de erro para o método com curl_eror eu recebo esta mensagem de erro: "Protocolo não http suportado ou deficientes em libcurl" como eu disse eu testei este método do e está muito bem como como autônomo no mesmo ambiente (sem alterações) eu suspeito que tem algo a ver com feedparser usando curl muito trabalho ....

Foi útil?

Solução

eu acho que você deve aparar () a url e que deve resolver o problema.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top