Foreach Loop -PHP 내부에서 작동하는 클래스 방법을 얻을 수 없습니다.

StackOverflow https://stackoverflow.com/questions/1515099

  •  19-09-2019
  •  | 
  •  

문제

나는 '위치'응답 헤더를 반환하여 단축 된 URL에 대한 실제 URL을 반환 해야하는 메소드 ShortToLong ()이있는 클래스 링크를 작성했습니다. 나는 그것을 테스트했고 그것은 여기서 잘 작동합니다. 여기에 코드가 있습니다.

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();
        }
    }

문제는 FeedParser를 사용하여 다른 파일 에서이 방법을 사용 하여이 짧은 URL을 포함하는 피드 항목을 가져 오기 위해이 방법을 사용하여 어떤 이유로 든 간단한 URL이 아닌 짧은 URL이 코드입니다.

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>';


}

어떤 이유로부터 나는 geturl () 및 shorttolong ()에 대해 동일한 결과를 얻습니다.

왜 이런 일이 일어나고 있는지 아이디어가 있습니까? 감사

편집- Curl_eror와 함께 메소드에 오류 통지를 추가했습니다.이 오류 메시지가 표시됩니다. "Libcurl에서 지원되지 않거나 비활성화되지 않은 프로토콜 HTTP"라고 말했듯이 동일한 환경에서 독립형으로 잘 작동합니다. 변경 사항 없음) Curl을 사용하여 FeedParser와 관련이 있다고 생각합니다 ....

도움이 되었습니까?

해결책

URL ()를 트림해야한다고 생각하며 문제를 해결해야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top