0

私はAndroidアプリケーションのパブリッシャーです。

私のウェブサイトはAndroidアプリケーションデータを自動的に取得する必要がありますが、GooglePlayはiTunesStoreのようなAPIシステムをサポートしていません。したがって、Androidデータの取得に役立つPHPコマンドを作成する必要があります。タイトル、アプリの画像、説明、メールアドレスを取得する必要があります。

まず、GooglePlayのURLアドレスを知っているときにメールアドレスを取得しようとしていました。これが私が作った例です。これはウォールストリートジャーナルアプリ用です。

ウォールストリートジャーナルのAndroidアプリのURL- https://play.google.com/store/apps/details?id =wsj.reader_sp

<a href="mailto:mobilereader@wsj.com" rel="nofollow">Email Developer</a>

ウェブサイトをクリックすると、上記のようなHTMLコードが見つかります。

$Google_Play_URL = 'https://play.google.com/store/apps/details?id=wsj.reader_sp';
$string = file_get_contents($Google_Play_URL);

$parsing = new SimpleXmlElement($string); 
$attrs = (array)$parsing->attributes(); 
$mail = str_replace('mailto:','',$attrs['href']); 
if(filter_var($mail,FILTER_VALIATE_MAIL))
{
   echo $mail;
}

結果は「mobilereader@wsj.com」になるはずですが、失敗しました。問題がわかりますか?ありがとうございました。

4

2 に答える 2

3

次のようなPHPDOMDocumentを使用してこれを行うことができます。

$Google_Play_URL = 'https://play.google.com/store/apps/details?id=wsj.reader_sp';
$string = file_get_contents($Google_Play_URL);

$dom = new DOMDocument();
$dom->loadHTML($string);
$anchors = $dom->getElementsByTagName('a');

foreach ($anchors as $anchor) {
    if ($anchor->nodeValue === 'Email Developer') {
        $email = str_replace('mailto:', '', $anchor->getAttribute('href'));

        if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
            echo $email;
        }
    }
}

指定したURLの出力例は次のようになります。mobilereader@wsj.com

于 2013-01-02T03:17:51.127 に答える
1

正規表現を使用してメールアドレスを照合します。また、フィルター名にタイプミスがありました。

これを試して:

$Google_Play_URL = 'https://play.google.com/store/apps/details?id=wsj.reader_sp';
$string = file_get_contents($Google_Play_URL);

preg_match('/<a href="mailto\:(.*)" rel="nofollow">Email Developer<\/a>/s', $string, $matches);
if (count($matches) > 0 && filter_var($matches[1], FILTER_VALIDATE_MAIL))
{
   echo $matches[1];
}
于 2013-01-02T03:12:40.113 に答える