silicon valleyの人気テックニュースをphp x crontabで毎日自分のメールに送る

評価が高いフィードはこちら
https://www.techmeme.com/feed.xml
techmeme@sanfransisco

英語のニュースはブラウザで見ようと思っても長続きしないので、毎日メール&Cronで強制的に読む習慣をつける
フィードを見ると、画像はdescription内のIMGタグの中にあるので、正規表現preg_match_allで画像URLを取得する。
titleは見やすいように工夫。
クライアントからのリクエストはないので、ファイルはローカルに置いて、cron設定。

$rss = simplexml_load_file('https://www.techmeme.com/feed.xml');

mb_language("Japanese");
mb_internal_encoding("UTF-8");

$to = "notwatch@gmail.com";
$date = date("m月d日");
$subject = "Techmeme (" . $date.")";

$mime_type = "application/octet-stream";

$boundary = "__BOUNDARY__";

$additional_headers = "Content-Type: multipart/mixed;boundary=\"".$boundary."\"\n";
$message = "--" . $boundary . "\n";
$message .= "Content-Type: text/plain; charset=\"ISO-2022-JP\"\n\n";
$i =0;
foreach($rss->channel->item as $value){
	if($i < 10){
	$k = $i + 1;
	$message .= $k.".".$value->title ."\n";
	$message .= $value->link . "\n";
	}
	$i++;
}
$message .="--" . $boundary . "\n";

$i = 0;
foreach($rss->channel->item as $value){
	if($i < 10){
	$description = $value->description;
    preg_match_all('|SRC=\"(.*?).jpg\"|', $description, $match);
    $url = $match[1][0].".jpg";
	$data = file_get_contents($url);
	$pass = "image/tech".$i.".jpg";
	file_put_contents($pass, $data);
	$message .="Content-Type:". $mime_type . "; name=\"" .basename($pass) . "\"\n";
	$message .="Content-Disposition: attachment; filename=\"" .basename($pass) ."\"\n";
	$message .="Content-Transfer-Encoding: base64\n";
	$message .= "\n";
	$message .= chunk_split(base64_encode(file_get_contents($pass)))."\n";
	$message .="--" . $boundary . "\n";
	}
	$i++;	
}

 
mb_send_mail($to, $subject, $message, $additional_headers);

話題は基本アメリカか中国かsamsungですね。日本終わってるなwww