コード例 #1
0
#!/usr/bin/env php
<?php 
require_once '../URLResolver.php';
/*******************************************************************************
* Copyright (c) 2011-2014 by Matt Wright
* https://github.com/mattwright/URLResolver.php
*
* Licensed under The MIT License
* See URLResolver.php for full license text
*******************************************************************************/
if (count($argv) != 2 || !preg_match('/^https?:\\/\\//i', $argv[1])) {
    print "You must supply a URL:\n  ./resolve_url.php http://goo.gl/0GMP1\n";
    exit;
}
$resolver = new URLResolver();
$resolver->isDebugMode(true);
$resolver->setUserAgent('Mozilla/5.0 (compatible; URLResolver.php/1.0; +https://github.com/mattwright/URLResolver.php)');
$resolver->resolveURL($argv[1]);
コード例 #2
0
 /**
  * Examine a URL and resolve it as needed.
  *
  * @since 3.4.5
  *
  * @param string $url A web address URI.
  * @return bool True value for a submitted URL that matches an aggregation service.
  *
  */
 public static function resolve_a_url($url)
 {
     $url_array = parse_url($url);
     if (empty($url_array['host'])) {
         return;
     } else {
         $check = self::url_is_aggregation_service($url);
         if ($check) {
             $resolver = new URLResolver();
             $url = $resolver->resolveURL($url)->getURL();
         }
     }
     return $url;
 }
コード例 #3
0
 private function construct_content($entry)
 {
     // lets make this a setting?
     $unshorten_urls = true;
     $post_content = $entry['text'];
     //$post_content = html_entity_decode($post_content); // ohne trim?
     $post_content = $post_content;
     // ohne trim?
     //replace t.co links
     if (count($entry['entities']['urls'])) {
         foreach ($entry['entities']['urls'] as $url) {
             if ($unshorten_urls) {
                 $resolver = new URLResolver();
                 $expanded_url = $resolver->resolveURL($url['expanded_url'])->getURL();
                 $display_url = parse_url($expanded_url);
                 // minus protocol, no longer that 30 chars
                 $display_url = $display_url['host'] . $display_url['path'];
                 if (strlen($display_url) > 30) {
                     $display_url = substr($display_url, 0, 30) . "&hellip;";
                 }
             } else {
                 $expanded_url = $url['expanded_url'];
                 $display_url = $url['display_url'];
             }
             $post_content = str_replace($url['url'], '<a href="' . $expanded_url . '">' . $display_url . '</a>', $post_content);
         }
     }
     // any embeded media/images?
     $image_url = "";
     $image_html = "";
     if (isset($entry['entities']['media']) && $entry['entities']['media']) {
         foreach ($entry['entities']['media'] as $media) {
             $post_content = str_replace($media['url'], '<a href="' . $media['expanded_url'] . '">' . $media['display_url'] . '</a>', $post_content);
             if ($media['type'] == "photo") {
                 $image_url = $media['media_url'];
                 $image_html = '<div class="twitter-image">' . '[gallery size="large" columns="1" link="file"]' . '</div>';
             }
         }
     }
     $post_content = preg_replace("/\\s((http|ftp)+(s)?:\\/\\/[^<>\\s]+)/i", " <a href=\"\\0\" target=\"_blank\">\\0</a>", $post_content);
     $post_content = preg_replace('/[@]+([A-Za-z0-9-_]+)/', '<a href="http://twitter.com/\\1" target="_blank">\\0</a>', $post_content);
     // Autolink hashtags (wordpress funktion)
     $post_content = preg_replace('/(^|[^0-9A-Z&\\/]+)(#|\\xef\\xbc\\x83)([0-9A-Z_]*[A-Z_]+[a-z0-9_\\xc0-\\xd6\\xd8-\\xf6\\xf8\\xff]*)/iu', '${1}<a href="http://twitter.com/search?q=%23${3}" title="#${3}">${2}${3}</a>', $post_content);
     // original twitter embed code (more or less), will be shown as native embed
     $embed_code_twitter = '<blockquote class="twitter-tweet imported"><p>' . $post_content . '</p>' . $image_html . '&mdash; ' . $entry['user']['name'] . ' (<a href="https://twitter.com/' . $entry['user']['screen_name'] . '/">@' . $entry['user']['screen_name'] . '</a>) <a href="http://twitter.com/' . get_option('twitter_username') . '/status/' . $entry["id_str"] . '">' . date('d.m.Y H:i', strtotime($entry["created_at"])) . '</a></blockquote><script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>';
     // if these are one's *own* tweets, there is no point to mark the username or blockqoue. also the date and time is supeficial.
     //$embedcode_reclaim = '<blockquote class="twitter-tweet imported"><p>'.$post_content.'</p><div class="twimage">'.$image_html.'</div><span style="display: none;">&mdash; '.$entry['user']['name'].' (<a href="https://twitter.com/'.$entry['user']['screen_name'].'/">@'.$entry['user']['screen_name'].'</a>) <a href="http://twitter.com/'.get_option('twitter_username').'/status/'.$entry["id_str"].'">'.date('d.m.Y H:i', strtotime($entry["created_at"])).'</a></span><p class="twviewpost-twitter">(<a href="http://twitter.com/'.get_option('twitter_username').'/status/'.$entry["id_str"].'">'.__('View on Twitter', 'reclaim').'</a>)</p></blockquote>';
     $embed_code_reclaim = '<div class="twitter-tweet imported">' . $post_content . '<div class="twimage">' . $image_html . '</div><p class="twviewpost-twitter">(<a href="http://twitter.com/' . get_option('twitter_username') . '/status/' . $entry["id_str"] . '">' . __('View on Twitter', 'reclaim') . '</a>)</p></div>';
     /*
             setlocale (LC_ALL, get_bloginfo ( 'language' ) );
             $embedcode = sprintf(
                     self::TWITTER_TWEET_TPL,
                     $post_content,
                     $image_html,
                     $entry['user']['name'],
                     $entry['user']['screen_name'],
                     $entry['user']['screen_name'],
                     get_option('twitter_username'),
                     $entry["id_str"],
                     date('d.m.Y H:i', strtotime($entry["created_at"]))
                     date(get_option('date_format'), strtotime($entry["created_at"]))
             );
     */
     $content = array('original' => $post_content, 'embed_code_twitter' => $embed_code_twitter, 'embed_code' => $embed_code_reclaim, 'image' => $image_url);
     return $content;
 }