プロフィールの URL からスクレイピングされ、画像として出力されるメンバーのリストを表示するメンバー カードを作成しています。
私が達成しようとしていることを説明する最良の方法は、あなたに示すことです:
プレーヤーのエイリアス、レベル、およびランクは、 Simple HTML DOM パーサーを使用してプロファイルから取得されます。
これは、次のコードを使用してこれまでに達成できたことです。
<?php
include_once('simple_html_dom.php');
function extract_numbers($string) {
preg_match_all('/([\d]+)/', $string, $match);
return $match[0];
}
function scraping_uberstrike($url) {
// create HTML DOM
$html = file_get_html($url);
// Find rank, level and xp
$string = $html->find("h2 p", 0)->innertext;
$numbers_array = extract_numbers($string);
// get name
$ret['Alias'] = $html->find('span[id="uberstrikeUserName"]', 0)->innertext;
// get level
$ret['Level'] = $numbers_array['1'];
// get rank
$ret['Rank'] = $numbers_array['0'];
// clean up memory
$html->clear();
unset($html);
return $ret;
}
// スクレイピングする URL
$links = array (
'http://uberstrike.cmune.com/CommonChannel/Profile?cmid=4758758&channelType=WebPortal&appCallbackUrl=http%3a%2f%2fuberstrike.cmune.com%2fProfile',
'http://uberstrike.cmune.com/CommonChannel/Profile?cmid=5909289&channelType=WebPortal&appCallbackUrl=http%3a%2f%2fuberstrike.cmune.com%2fProfile'
);
$image = imagecreatefrompng("eQ.png");
$color = ImageColorAllocate($image, 203,203,203);
$shadow = ImageColorAllocate($image, 25,25,25);
$font = "ColabBol.otf";
$a=2;
$b=1;
// Outputs the scrape
foreach ($links as $link) {
$ret = scraping_uberstrike($link);
foreach($ret as $k=>$v) {
$a = $a + 40;
$b = $b + 40;
imagettftext($image, 14, 0, 106, $a, $shadow, $font, $v);
imagettftext($image, 14, 0, 105, $b, $color, $font, $v);
}
}
header("content-type: image/png");
imagepng($image);
imagedestroy($image);
?>
foreach ループを使用してプレーヤーの詳細がどのように配置されているかに注目してください。私がしようとしている jpg と同じように出力を取得するのが困難です。
foreach ループで詳細を正しく表示するには、何か問題があるか、別の方法を使用する必要があります。
これが私のコードを理解するのに役立つ場合は、必要なすべてのファイルを zip アーカイブに入れました。
http://lifeofstrange.com/scrape/scrape.zip
私はこれを明確にしたことを願っています。
そして、あなたの解決策を楽しみにしています。
ありがとうございました :)