スナックelve 本店

バツイチ40代女の日記です

バリューコマースアフィツール改良

トークンについて追記
バリューコマースのトークンの話 - スナックelve 本店


snack.elve.club
これのあとあれこれ弄ってだいぶ使いやすくなったと思う。
あんまりカテゴリとか効かない気がする(;´Д`) もともとものデータが入力適当だろこれ(;´Д`)

PHPファイルのみで良かったわ

<?php
//UTF-8のおまじない
header("Content-type: text/html; charset=UTF-8");
mb_language("Japanese");
mb_internal_encoding("UTF-8");
?>
<!doctype html>
<html>
	<head>
		<html lang="ja">
		<meta charset="UTF-8">
	</head>
	<body>

		<form action="" method="post">
<?php
	//受信済みのデータが有れば入力
    if(isset($_POST["search"])) {
		echo '<p><label for="search">検索文字</label><input type="text" id="search" name="search" value="' . $_POST["search"] . '"></p>';
	}else{
		echo '<p><label for="search">検索文字</label><input type="text" id="search" name="search" placeholder="検索文字"></p>';
	}
?>
			<p><label for="category">カテゴリ</label><input type="text" id="category" name="category" placeholder="カテゴリ"></p>
			<p><label for="ec_code">対象ショップ</label><input type="text" id="ec_code" name="ec_code" placeholder="0za6u"></p>
			<p><label for="page">ページ</label><input type="text" id="page" name="page" value="1"></p>
			<p><label for="items_count_of_page">1ページのアイテム数</label><input type="text" id="items_count_of_page" name="items_count_of_page" value="50"></p>
			<p><label for="adult">成人対象</label><input type="text" id="adult" name="adult" value="n"></p>
			<p><label for="rank_from">○位から</label><input type="text" id="rank_from" name="rank_from" value="1"></p>
			<p><label for="rank_to">○位まで</label><input type="text" id="rank_to" name="rank_from" value="50"></p>
			<input type="submit">
		</form>
<?php

// トークンを指定
$value_token = 'ご自分のトークンを指定してね'; 
//検索文字とか。本当は入力値の妥当性チェックしたほうがいい
$search = urlencode($_POST["search"]);
$category = $_POST["category"];
$ec_code = $_POST["ec_code"];
$page = $_POST["page"];
$items_count_of_page = $_POST["items_count_of_page"];
$adult = $_POST["adult"];
$rank_from = $_POST["rank_from"];
$rank_to = $_POST["rank_to"];


// 「商品API」のリクエストURL
$url = "http://webservice.valuecommerce.ne.jp/productdb/search?token={$value_token}&keyword={$search}&category={$category}&product_id=&sub_store=&merchant=&ec_code={$ec_code}&price_min=&price_max=&size=&color=&stock=&gender=&vcptn=&page={$page}&results_per_page={$items_count_of_page}&maxhits=&sort_by=score&sort_order=desc&adult={$adult}&rank=monthly&rank_from={$rank_from}&rank_to={$rank_to}&format=JSON&callback=";

// JSONデータを取得・エンコードしオブジェクトに変換
$json = file_get_contents($url);
$obj = json_decode( $json );

if($obj->resultcount=0){
	//検索条件に該当する商品がない
	echo '<p>商品はありません。</p></br><p>' . '</p>';
}elseif( $obj->status == "OK" ){
	// 取得した商品データの配列を変数$itemsに格納
	$items = $obj->items;
	foreach( $items as $item ){
		$title = $item->title; // 商品タイトルを取得
		$link = $item->link; // 商品へのリンクを取得
		$ad_tag = $item->pvImg; // 広告表示数カウント用のadタグを取得
		$image = $item->imageLarge->url; // ラージサイズの商品画像を取得
		if($image==""){$image = $item->imageFree->url;}
		$price = $item->price;//価格
		$merchant_name=$item->merchantName;//広告元のお店
		$description = $item->description;//商品説明

		//以下特に使っていない
		$sale_price = $item->sale_price;
		$sale_start_date = $item->sale_start_date;
		$sale_end_date = $item->sale_end_date;
		$product_update_day = $item->product_update_day;
		
		//説明が長いとき省略
		if(strlen($description)>100){$description = mb_substr($description, 0, 99)."…";}

		// 商品情報を出力する際のHTML
		$link="http:" . urldecode($link);
		$output ="";
		$output = '<div class="elve_affiliate_tool" style="display: flex"><div class="affi_image"  style="width:200; margin: 0; padding: 0; overflow: hidden; position: relative;"><a href="' . $link . '" target="_blank"><img src="' . $image . '" alt="' . $title .'" width="200"></a></div><div class="right" style="width:auto; margin: 0 0 0 20px; padding: 0;"><a href="' . $link . '" target="_blank"><p class="title" style="margin: 0; padding: 0; font-weight: bold; font-size: x-large;">' . $title . '</p><p class="text" style=" margin: 10px 0 0; padding: 0;">' . $description . '(' . $price . '円)</p></a>by ' . $merchant_name .  $ad_tag . '<p class="caution" style="font-size: x-small;">※価格はデータ取得時のものです</p></div></div>';

		//コード出力
		echo '<p>' . htmlspecialchars($output, ENT_QUOTES|ENT_XML1) . '</p>' . "\n";
		//テスト表示
		echo $output;
	}
}else{
	//リクエストエラー
	echo '<p>商品はありません。</p></br><p>' . $obj->status . '</p>';
}

?>
	</body>
</html>

これで検索するとさー

こういう感じで出てくる。いいじゃーんってソースコピペすると・・・
画像が何をどうしても小さくなる(´;ω;`)
なんで???

・・・ここで見たらきれいに出たわ・・・過去記事直してたらどうしても画像が小さくなって・・・より一層の謎ですwwwww