обрезание URL-адреса по модулю связи или проблеме форматирования страниц в drupal 7

У меня есть вопрос с drupal 7, который может включать некоторую помощь php. Я создал rss-канал из оповещений Google, которые я собираю в полях. У меня было успешное сопоставление во всех полях, кроме поля модуля связи, в котором я поместил форматировщик полей, который создает скриншот страницы, путем привязки соответствующего запроса сервера url к URL-адресам фидов. Feeds выполняет свою работу, беря URL-адрес Item (ссылка) и правильно помещая его в поле. У меня проблема с каким-либо модулем pagepeeker или link, потому что ниже продолжает происходить.

Напомним,

Канал оповещения Google -> Поле модуля ссылки -> скриншот страницы pagepeeker

вот ошибка

URL-адрес, который предоставляет

http://www.google.com/url?sa=X&q=http://www.beautyjunkiesunite.com/WP/2012/05/30/whats-new-anastasia-beverly-hills-lash-genius/&ct= га & CAD = CAcQARgAIAEoATAAOABA3t-Y_gRIAlgBYgVlbi1VUw & кд = F7w9TwL-6ao & USG = AFQjCNG2rbJCENvRR2_k6pL9RntjP66Rvg

Когда отображается ссылка, я получаю:

http://pagepeeker.com/thumbs.php?size=m&url=www.google.com/url

Его разрезают url на url и не получают остальную часть url.

Вот код, который использует pagepeeker для анализа URL-адреса?

<?php function _pagepeeker_format_url($url, $domain_only = FALSE) { if (filter_var($url, FILTER_VALIDATE_URL) === FALSE) { return FALSE; } // try to parse the url $parsed_url = parse_url($url); if (!empty($parsed_url)) { $host = (!empty($parsed_url['host'])) ? $parsed_url['host'] : ''; $port = (!empty($parsed_url['port'])) ? ':' . $parsed_url['port'] : ''; $path = (!empty($parsed_url['path'])) ? $parsed_url['path'] : ''; $query = (!empty($parsed_url['query'])) ? '?' . $parsed_url['query'] : ''; $fragment = (!empty($parsed_url['fragment'])) ? '#' . $parsed_url['fragment'] : ''; if ($domain_only) { return $host . $port; } else { return $host . $port . $path . $query . $fragment; } } return FALSE; } 

Это может быть проблема?

Пожалуйста, дайте мне знать, что я могу прояснить.

Мне нужно, чтобы весь URL обрабатывался, а не только усеченный

Благодаря !

Solutions Collecting From Web of "обрезание URL-адреса по модулю связи или проблеме форматирования страниц в drupal 7"

Я видел очень похожий вопрос здесь на SO или странице drupal SO, но не смог найти его, поэтому я снова пишу «мой путь».

 <?php function _pagepeeker_format_url($url, $domain_only = FALSE) { if (filter_var($url, FILTER_VALIDATE_URL) === FALSE) { return FALSE; } //$url = 'http://www.google.com/url?sa=X&q=http://www.beautyjunkiesunite.com/WP/2012/05/30/whats-new-anastasia-beverly-hills-lash-genius/&ct=ga&cad=CAcQARgAIAEoATAAOABA3t-Y_gRIAlgBYgVlbi1VUw&cd=F7w9TwL-6ao&usg=AFQjCNG2rbJCENvRR2_k6pL9RntjP66Rvg'; // Now we use parse_url to split the url to an array with url parts. $parsed_url = parse_url($url); // $parsed_url['query'] is 'sa=X&q=http://www.beautyjunkiesunite.com/WP/2012/05/30/whats-new-anastasia-beverly-hills-lash-genius/&ct=ga&cad=CAcQARgAIAEoATAAOABA3t-Y_gRIAlgBYgVlbi1VUw&cd=F7w9TwL-6ao&usg=AFQjCNG2rbJCENvRR2_k6pL9RntjP66Rvg' // ";" can also be used to separate params. But & is the usual one so using it. $queryParts = explode('&', $parsed_url['query']); $params = array(); foreach ($queryParts as $param) { $item = explode('=', $param); // sa = X, etc. $params[$item[0]] = $item[1]; } //$params is now an array with query parts. // $params['sa'] = 'X' , q = 'http://www.beautyjunkiesunite.com/WP/2012/05/30/whats-new-anastasia-beverly-hills-lash-genius', etc. if ($domain_only){ $new_url_parsts = parse_url($params['q']); return $new_url_parts['host']; } else{ return $params['q']; }