-1

symfony2 フレームワークを使用してプロジェクトを構築しています。ユーザーが入力した URL を解析して分析する必要があります。たとえば、ユーザーが「http://www.amazon.com/Samsung-Galaxy-GT-I9300-Factory-Unlocked/dp/B007VCRRNS/ref=sr_1_1?s=wireless&ie=UTF8&qid=1362207625&sr=1- 」のような URL を入力するとします。 1&keywords=samsung+galaxy+s3 " プログラムは、モデル名、価格、画像などを抽出する必要があります。

使用できるバンドルやプラグインはありますか?

4

2 に答える 2

1

また、File_get_contents を使用してデータをフェッチしたり、Javascript を使用してデータをフェッチしたりすることもできます。利用可能なオプションは多数あります。

<?php
    $output = file_get_contents(
        'http://www.website.com/');
    $output = str_replace('rhs','"rhs"',$output);
    $output = str_replace('lhs','"lhs"',$output);
    $output = str_replace('error','"error"',$output);
    $output = str_replace('icc','"icc"',$output);

    $json = json_decode($output);
    $rhs = $json->rhs;
?>

jQuery ajaxを使用する

jQuery.ajax( url [, settings] )
jQuery.get( url [, data] [, success(data, textStatus, jqXHR)] [, dataType] )

および純粋な JavaScript スクリプト

function parseURLParams(url) {
  var queryStart = url.indexOf("?") + 1;
  var queryEnd   = url.indexOf("#") + 1 || url.length + 1;
  var query      = url.slice(queryStart, queryEnd - 1);

  if (query === url || query === "") return;

  var params  = {};
  var nvPairs = query.replace(/\+/g, " ").split("&");

  for (var i=0; i<nvPairs.length; i++) {
    var nv = nvPairs[i].split("=");
    var n  = decodeURIComponent(nv[0]);
    var v  = decodeURIComponent(nv[1]);
    if ( !(n in params) ) {
      params[n] = [];
    }
    params[n].push(nv.length === 2 ? v : null);
  }
  return params;
}

次のように使用します。

var urlString = "http://www.foo.com/bar?a=a+a&b%20b=b&c=1&c=2&d#hash";
var urlParams = parseURLParams(urlString);

次のようなオブジェクトを返します。

{
  "a"  : ["a a"],     /* param values are always returned as arrays */
  "b b": ["b"],       /* param names can have special chars as well */
  "c"  : ["1", "2"]   /* an URL param can occur multiple times! */
  "d"  : [null]       /* params without values are set to null */ 
} 

そう

parseURLParams("www.mints.com?name=something")

与える

{name: ["something"]}
于 2013-03-02T07:33:39.947 に答える
0

どのように行うかはまだ厳密にはわかりませんが、現在の URL がどのように分析され、Request() オブジェクトにバインドされ、すべての GET および POST パラメーターが抽出されるかを symfony コードで確認できれば素晴らしいと思います。

サービス/コントローラー内で URL を分析するために再利用できる場合があり、$request->query の GET パラメータで生成された Request オブジェクトを操作するだけです。

ただの考え =)

于 2013-03-02T15:16:02.130 に答える