wordpressサーバー引っ越しなどでphpMyAdminでインポートエラー時、データベースの文字コード変更する方法

utf8という文字コードなんだけど、新しいphpMyAdminは utf8mb4というコード。古い方は、utf8。なんか記述の仕方も特殊。

そんなときはテキストエディタで開いて、コードの表記を一括置換
 →「utf8mb4_unicode_520_ci」を「utf8_general_ci」 に変更
 →「utf8mb4」を、「utf8」に変更

すればエラー回避できるよ

ネタ元

PHPでファイル入出力

ファイル読み込み

<?php

$data = file_get_contents("sample.txt");

?>
<?php

$fp = fopen("sample.txt", "r");
while ($line = fgets($fp)) {
  echo "$line<br />";
}
fclose($fp);

?>

ファイル書き込み

<?php

file_put_contents("sample.txt", "ファイルへの書き込みサンプル");

?>
<?php

$fp = fopen("sample.txt", "w");
fwrite($fp, "ファイルへの書き込みサンプル");
fclose($fp);

?>

ファイル追記

<?php

$fp = fopen("sample.txt", "a");
fwrite($fp, "ファイルへの追記サンプル");
fclose($fp);

?>

ネタ元

PHPでXPathスクレイピング

CME日経先物の最新四本値取得

$html = file_get_contents("http://www.cmegroup.com/trading/equity-index/international-index/nikkei-225-yen_quotes_settlements_futures.html");

$dom = new DOMDocument();
@$dom->loadHTML($html);
$xml = simplexml_import_dom($dom);


$ret = $xml->xpath("//*[@id=\"cmeTradeDate\"]/option[@selected='selected']");
//var_dump($ret);

$yyyymmdd = "19000101";
foreach( $ret as $e  ){
	$yyyy = substr($e["value"],6,4);
	$mm = substr($e["value"],0,2);
	$dd = substr($e["value"],3,2);

	$yyyymmdd = $yyyy . $mm . $dd;

	//echo $yyyymmdd;
	//echo $e;
}

$ret = $xml->xpath("//*[@id=\"settlementsFuturesProductTable\"]/tbody/tr[1]");
//var_dump($ret);

$outStr = "";
foreach( $ret as $e  ){

	$open = $e->td[0];
	$high = $e->td[1];
	$low = $e->td[2];
	$last = $e->td[3];
	$last = substr($last,0,-1);
	$volume = $e->td[6];
	$volume = str_replace(",","",$volume);

	$outStr = "," . $yyyymmdd . "," . $open . "," . $high . "," . $low . "," . $last . "," . $volume;
}

追記

ChromeでXpath取得したとき、tbody入ってる場合、抜かないとエラーになることある

Html Agility PackとXPathでスクレイピング

HtmlAgilityPackを使うにはプロジェクトごとにNuGetから導入する。

  • ソリューションエクスプローラーで導入したいプロジェクトを選択しておいて、メニューバーから[プロジェクト]-[NuGet パッケージの管理]を選ぶ
  • すると、[NuGet パッケージの管理]ダイアログが表示されるので、左側のペーンで[オンライン]を選択してから、右上の検索ボックスに「HtmlAgilityPack」(空白なし)と入力して[Enter]キーを押す。
  • いくつかのパッケージが表示されるので、その中から[HtmlAgilityPack]を選び、そこに表示された[インストール]ボタンをクリックする


コード例

Dim wc As WebClient = New WebClient()
Dim htmlStr As String
htmlStr = wc.DownloadString("http://www.cmegroup.com/trading/equity-index/international-index/nikkei-225-yen_quotes_settlements_futures.html#tradeDate=11/22/2016")

Dim html As HtmlAgilityPack.HtmlDocument = New HtmlAgilityPack.HtmlDocument()
html.LoadHtml(htmlStr)

Dim tags As HtmlAgilityPack.HtmlNodeCollection
tags = html.DocumentNode.SelectNodes("//*[@id=""settlementsFuturesProductTable""]/tbody/tr[1]")

Dim node As HtmlAgilityPack.HtmlNode
For Each node In tags
    Trace.WriteLine(node.InnerText)
Next


ネタ元