ホストをIPアドレスに変換、IPアドレスをホスト名に変換する
<?php
$host = ‘patareru.net’;
// URLのpatareru.netをIPアドレスに変換
$ip = gethostbyname($host);
echo “IPは”.$ip;
$ip = $ip;
// ホスト名に変換
$host = gethostbyaddr($ip);
echo “ホストは”.”$host”;
php、MySQLそれにかかわるweb全般自分用メモ
phpについてのメモ
ホストをIPアドレスに変換、IPアドレスをホスト名に変換する
<?php
$host = ‘patareru.net’;
// URLのpatareru.netをIPアドレスに変換
$ip = gethostbyname($host);
echo “IPは”.$ip;
$ip = $ip;
// ホスト名に変換
$host = gethostbyaddr($ip);
echo “ホストは”.”$host”;
昔のgoogleのページランクを調べるがつかえないようなので
<?php
$url = “http://patareru.net”; //チェックするURLを指定
echo “$url”.”のページランクは”;
echo GetPageRank($url);
/**
* PageRank Lookup (Based on Google Toolbar for Mozilla Firefox)
*
* @copyright 2012 HM2K <hm2k@php.net>
* @link http://pagerank.phurix.net/
* @author James Wade <hm2k@php.net>
* @version $Revision: 2.1 $
* @require PHP 4.3.0 (file_get_contents)
* @updated 06/10/11
*/
function GetPageRank($q,$host=’toolbarqueries.google.com’,$context=NULL) {
$seed = “Mining PageRank is AGAINST GOOGLE’S TERMS OF SERVICE. Yes, I’m talking to you, scammer.”;
$result = 0x01020345;
$len = strlen($q);
for ($i=0; $i<$len; $i++) {
$result ^= ord($seed{$i%strlen($seed)}) ^ ord($q{$i});
$result = (($result >> 23) & 0x1ff) | $result << 9;
}
if (PHP_INT_MAX != 2147483647) { $result = -(~($result & 0xFFFFFFFF) + 1); }
$ch=sprintf(‘8%x’, $result);
$url=’http://%s/tbr?client=navclient-auto&ch=%s&features=Rank&q=info:%s’;
$url=sprintf($url,$host,$ch,$q);
@$pr=file_get_contents($url,false,$context);
return $pr?substr(strrchr($pr, ‘:’), 1):false;
}
スマホページからPCページが見たいとき
.htaccessにて
<IfModule mod_rewrite.c>
RewriteEngine On
#ユーザーエージェントがスマホやアンドロイドの場合
RewriteCond %{HTTP_USER_AGENT} (iPhone|Android.*Mobile|Windows.*Phone) [NC]
#URLクエリがhage=pc の場合PC表示になる
RewriteCond %{QUERY_STRING} !hage=pc
#スマホから閲覧した場合、またはクエリにhage=pcがないとスマホ表示
RewriteRule ^$ /smart/ [R,L]
</IfModule>
<?php
//今年
$toyear = date(“Y”);
$toyear1=”$toyear”.”-01-01″;
$toyear2=”$toyear”.”-12-31″;
$holidays_url = sprintf(
‘http://www.google.com/calendar/feeds/%s/public/full-noattendees?start-min=%s&start-max=%s&max-results=%d&alt=json’ ,
‘outid3el0qkcrsuf89fltf7a4qbacgt9@import.calendar.google.com’ , ,
“$toyear1” , // 取得開始日
“$toyear2″ , // 取得終了日
50 // 最大取得数
);
if ( $results = file_get_contents($holidays_url) ) {
$results = json_decode($results, true);
$holidays = array();
foreach ($results[‘feed’][‘entry’] as $val ) {
$date = $val[‘gd$when’][0][‘startTime’];
$title = $val[‘title’][‘$t’];
$title = preg_replace(‘!/[^/]*!’, ‘/’, $title);
$title = str_replace(‘/’, ”, $title);
$holidays[$date] = $title;
}
ksort($holidays);
foreach($holidays as $key => $value){
echo $key.” “.$value.”<br />”;
}
POSTされたデータ確認。
echo “<pre>”;
print_r($_POST);
echo “</pre>”;
php.ini precision のデフォルトが12だったので13桁の数値計算ができず
.htaccessに以下追加
php_value precision 16
precision integer
浮動小数点数に関して表示される最大桁数を指定します。
<?php
$smarty->assign(‘year1’, strtotime(‘+1 year’));
テンプレート
{$year1|date_format:’%Y’}
MySQLダウンロードその2
テーブルデータを全てダウンロードする。
test_table.php
<?php
header(“Content-Type: application/octet-stream”);
header(“Content-Disposition: attachment; filename=test_table.csv”);
$server = “localhost”; // サーバー名
$id = “test_id”; // ユーザーID
$passwd = “pass”; // パスワード
$dbname = “test_db”; // データベース名
$sql = “SELECT * FROM test_table”; // SQL文
$db=mysql_connect($server,$id,$passwd);
mysql_select_db($dbname,$db);
mysql_query(“SET NAMES sjis”)
or die(“can not SET NAMES sjis”);
$rs=mysql_query($sql,$db);
$fields = mysql_num_fields($rs);
if(!$fields) return;
while($row = mysql_fetch_array($rs)) {
for($j=0; $j<$fields; $j++) {
echo ‘”‘.addslashes($row[$j]).'”‘;
if($j<$fields-1) echo ‘,’;
}
echo “\n”;
}
exit;
今日から3日前の日付け
<?php
$todays = date(“Y-m-d H:i:s”);
$days = date(“Y-m-d H:i:s”, strtotime(“$todays -3 day”));
echo “$days”;
?>
今日から1週間前の日付
<?php
$todays = date(“Y-m-d H:i:s”);
$days = date(“Y-m-d H:i:s”, strtotime(“$todays -1 week”));
echo “$days”;
今日から1ヶ月前の日付け
$todays = date(“Y-m-d H:i:s”);
$days = date(“Y-m-d H:i:s”, strtotime(“$todays -1 month”));
echo “$days”;
今日から1年前の日付け
$todays = date(“Y-m-d H:i:s”);
$days = date(“Y-m-d H:i:s”, strtotime(“$todays -1 year”));
echo “$days”;