【PHP】次の条件を満たすソースコードを書いてください


お世話になります。
楽天などのショッピングサイトのAPIを利用しています。

次の条件で検索をしたいのですが、PHPのコードを書いていただけませんでしょうか。

■前提
・検索キーワードに「○○%OFF」という言葉を含める("vaio 50%OFF")
・固定のキーワード+「○○%OFF」という複数の固定リンクが存在し、検索契機になっている
例:
vaioの商品一覧
割引率から絞り込む:10%OFF 20%OFF ……(←文字リンク)

→この状態は実現済み

■やりたいこと
・例えば「50%OFF」をキーワードとして検索した場合、キーワードに「50%OFF」と含まれているものしか検索されない。しかし実際は、「50%~99%OFF」の商品を検索したい。同じように、10%は「10%~99%OFF」、20%は「20%~99%OFF」としたい。
・そのため、表示されるリンクは
vaioの商品一覧
割引率から絞り込む:10%以上OFF 20%以上OFF ……(←文字リンク)

となるのが理想。


以上、よろしくお願いいたします。

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2014/02/04 23:10:03
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答0件)

回答はまだありません

  • id:tobeoscontinue
    質問が十分理解出来ていないのでコメントにて

    一つの方法として"vaio 20%OFF"という文字列から
    "vaio 20%OFF"
    "vaio 30%OFF"
    "vaio 40%OFF"
    "vaio 50%OFF"
    "vaio 60%OFF"
    "vaio 70%OFF"
    "vaio 80%OFF"
    "vaio 90%OFF"
    "vaio 99%OFF"
    を生成してそれぞれについて検索するというものです。
    正規表現を使えば可能と思われます。
    function discount($query, $s=10) {
    $d = array();
    if (0 < preg_match('/(\d+)\%OFF/i', $query,$m)) {
    list($t, $p) = $m;
    foreach (array_merge(range($p, 98, $s), array(99)) as $r)
    $d[] = str_replace($p, $r, $query);
    }
    return $d;
    }
    ただ数%についても検索するとなると検索回数が増えるのが難点です。

    もう一つの方法は"vaio %OFF"で検察して割引のあるものを一旦すべて受け取り
    指定割引未満のものを捨てる方法です。これなら検索回数は少ないのですが、
    Yahooショッピングで"vaio %OFF"を検索するとヒットするのですがその内容が何か変です。
    そもそも検索した後でそのデータから割引率を調べることが可能なのか。
    Yahooショッピングの商品検索ではdiscontパラメータを指定することでセール中商品絞り込みができるようです。
    定価(設定価格)?とセール価格から割引率は計算できますがそれは求めているものとは違うような。
  • id:cafe-beret
    tobeoscontinueさん

    自分でコードも書かず、無茶なお願いをしてしまい申し訳ありませんでした。

    正規表現について経験が浅いため、教えていただいた内容を噛み砕いてみたいと思います。


    仰るとおり、ヤフーのキーワード検索は結果がなんだかおかしいんです。
    ある程度諦めていた部分だったのですが、セール価格と比較するというのは、試してみたいと思います。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません