网址截止通过在Drupal 7链路模块或pagepeeker格式化问题(url cutoff by

2019-09-17 15:57发布

我有Drupal 7的问题,可能涉及到一些PHP的帮助。 从谷歌快讯,我映射到领域我已经创建了一个RSS提要。 我已经成功映射到不同的链路模块领域,我已经把通过安装相应的URL服务器查询到提要URL创建一个pagepeeker屏幕截图场格式的所有字段。 饲料是通过采取项目URL(链接),并把它进入该领域做正确的工作。 我有与任何pagepeeker或链路模块因为低于持续发生的问题。

为了recap-

谷歌快讯饲料 - > Link模块场 - > pagepeeker截图格式

这里的错误

那谷歌快讯提供的网址是

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

当显示的链接,我得到:

http://pagepeeker.com/thumbs.php?size=m&url=www.google.com/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,而不仅仅是一个被截断

谢谢 !

Answer 1:

我在这里看到一个非常类似的问题在SO或SO Drupal的页面,但无法找到它,所以我正在写“我的路”在这里再次回答。

<?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'];
}


文章来源: url cutoff by link module or pagepeeker formatter issue in drupal 7