スポンサーサイト

一定期間更新がないため広告を表示しています

at , スポンサードリンク, -

-, -, - -

XML サーバーへのパラメータ日本語対策

PHPでXMLサーバーにリクエストを送り結果にてHTMLを生成するプログラムが最近多くなってきてるようですが、リクエストパラメータに日本語を扱う場合問題が多いです。

<?php
  $parm = "テスト";
  $url = "http://xmlserver/testxml.php?parm=" .  $parm ;
  $data = @simplexml_load_file($url);
?>

この場合、$parmの文字によっては正しく送る事が出来ません。

日本語をパラメータで送る場合は、 urlencode() の関数を使う事により解決します。

<?php
  $parm = "テスト";
  $url = "http://xmlserver/testxml.php?parm=" .  urlencode($parm) ;
  $data = @simplexml_load_file($url);
?>

これで解決!と思いきや問題が・・・・・
エンコードしても受け側が認識できていない!

原因は、PHPソースの文字形式に問題がありました。
urlencode関数は、PHPソースの文字コード形式によりエンコードされます。
PHPソースがSJISの場合SJISでエンコードされるってことです。
サーバーがUTF-8Nで受ける場合は、送り側ソースもUTF-8N形式でエンコードしないと駄目でした。

もし、ソース中に日本語がない場合、文字コードが判断できませんので、コメント行で日本語を入れておきましょう!これで、文字コードが判断されるようです。

文字コードが色々あるので色々起こりますね。

at 15:29, tom7650, php

comments(0), trackbacks(0), - -

PHP 切り上げ、切り捨て、四捨五入

割り算の計算する時によく使う関数で、切り上げ、切り捨て、四捨五入がありますが、
言語によって違い使いたい時に思い出せない事があります。ので、メモ書きをしておこうと思います。

ceil( m/n )         // 切り上げ
floor( m/n )       // 切捨て
round( m/n )    // 四捨五入

例)
  $A = ceil($m / $n);
  $A = floor($m / $n);
  $A = round($m / $n);
 

at 15:17, tom7650, php

comments(0), trackbacks(0), - -

姉妹店のブログOPEN

姉妹店『えーお店(総合 通販 ショップ)』のブログをOPENしました。
宣伝として紹介させて頂きました。
「えーお店と言われるお店」をモットーに頑張っているそうです。
ブログのアドレスは えーお店 商品紹介 ブログこちらです。
ぜひこちらのショップもよろしくお願いします。

at 16:01, tom7650, ドロップシッピング

comments(0), trackbacks(0), - -

PHPで warning: invalid argument supplied for foreach() のエラー

PHPで、warning: invalid argument supplied for foreach() のエラーが出た!
XMLデータを配列化しているんだけどエラーになる!

XMLサンプルデータ----------------------
<?xml version="1.0" encoding="UTF-8" ?>
<Items>
  <Image><img src="test1.jpg"><br /><img src="test2.jpg"><br /></Image>
  <Ocur>
    <ItemCd>111111</ItemCd>
    <ItemName>商品1</ItemName>
  </Ocur>
  <Ocur>
    <ItemCd>222222</ItemCd>
    <ItemName>商品2</ItemName>
  </Ocur>
</Items>

PHPサンプルプログラム----------------------
$items = @simplexml_load_file("text.xml");
foreach ($items->Ocur as $Ocur) {
  echo $Ocur-> ItemCD;
}

このサンプルだとforeachでwarning: invalid argument supplied for foreach() のエラーが出ます。

var_dumpで出力すると$items->Ocurは、Nullになっていました。

is_arrayにて配列かチェックしてエラーにならないように対策をしました。
PHPサンプルプログラム(配列エラー対策)----------------------
$items = @simplexml_load_file("text.xml");
if (!is_array($items->Kanren)) {
  foreach ($items->Ocur as $Ocur) {
    echo $Ocur-> ItemCD;
  }
}

しかし、色々調べると、別の所に問題がありました。
XMLデータ内にHTMLタグを入れているのに問題があったようです。
XMLデータ内にHTMLタグを入れるにはどうしたらいいのか?
<![CDATA[・・・・・]]>で囲むことによりタグを記述することが出来ました。

  <Image><![CDATA[<img src="test1.jpg"><br /><img src="test2.jpg"><br />]]></Image>

いろんな事をやり出すと意外なトラブルも起こりますね。

at 13:41, tom7650, -

comments(0), trackbacks(0), - -

ポケモンカードゲームBW拡張パックをBOXで買ってみました。

 ポケモンカードゲームBW拡張パックをBOXで買ってみました。
クリックで挿入クリックで挿入

BOXを買ったらプロモーション用カード 「ゾロアーク」(024/BW-P)をもらうことが出来ました。(^_^)v
なぞのたまごのプロモーション用カード「ヤナップ」(001/BW-P)、「マメパト」(002/BW-P)、「キバゴ」(003/BW-P)ももらいました。

BOXで全部のカード揃うのかと期待しましたが、ブラックのBOXは、スーパーレア「トルネロス、レシラム」(054/53SR,055/53SR)を省き揃いましたが、ホワイトのBOXは、スーパーレア「ボルトロス、ゼクロム」(054/53SR,055/53SR)、ウルトラレア(056/53UR)を省き、050/53Uが揃わなかったです。

ちなみに、スーパーレア「トルネロス、レシラム、ボルトロス、ゼクロム」(054/53SR,055/53SR)は、2BOXに1個ぐらいの確率で出るそうです。なので、4BOXづつ買わないと揃わない!ウルトラレア「ピカチュー」(056/53UR)の確率は4〜5BOXに1枚らしいです。

開封した結果は、 ポケモンカードBW拡張パックBOX買いしてみました にUPしています。
研究用にでも見て下さい。

at 10:14, tom7650, ポケモンカード

comments(0), trackbacks(0), - -

vba UTF-8Nで出力する方法(bomなし)

だいぶ前に  vba UTF-8で出力する方法 を書いて検索エンジン経由でよく見に来られています。
そこで、もう一つメモ書きをしておきましょう。
UTF-8には、もう一つUTF-8Nと言う形式があります。
UTF-8とUTF-8Nは何が違うんだろう?と思いますね。
この違いは、UTF-8は、BOMコードが先頭に2バイト入っていて、UTF-8Nは入っていないです。

と言うことで、今回は、vbaでUTF-8Nを出力する方法をメモしておきます。
これが一番良い方法か分かりませんが、あくまでサンプルとしておきます。
処理の流れ、いったんバッファにUTF-8で貯め込み、バイナリでバッファを3バイト目から読み込み、
読み込んだ値をそのまま出力する方法です。

出力先 = "C:¥test.html"
Dim ADOobj    Set ADOobj = CreateObject("ADODB.Stream") 'ADOのストリームオブジェクトを用意
    ADOobj.Charset = "UTF-8"                          '出力する文字コード
    ADOobj.Open                                              'オープン
    ADOobj.WriteText "出力したい文字"  & vbLf   '出力する部分
    ADOobj.WriteText "出力したい文字"  & vbLf
' 先頭のBOM取り
    ADOobj.Position = 0
    ADOobj.Type = 1                   'TypeBinary
    ADOobj.Position = 3              '3バイト目
    byte_data = ADOobj.Read
    ADOobj.Close
' UTF-8Nコードのデータを保存
    ADOobj.Open
    ADOobj.Type = 1                   'TypeBinary
    ADOobj.Write byte_data
    ADOobj.SaveToFile 出力先, 2    '1:ファイル有り時上書きしない、2:上書きする
    ADOobj.Close
    Set ADOobj = Nothing                      '解放

at 09:42, tom7650, vba

comments(0), trackbacks(0), - -

ドロップシッピングセミナー in 神戸 2011年 2月12日(土)

 もしもドロップシッピングされている方必見!

竹内正弘さん主催!神戸でセミナー開催します!

気になった方是非参加しましょう!


ドロップシッピング 神戸 セミナー ←こちらに詳しい内容があります是非見てね。

セミナーの主な内容は、

現役凄腕 ドロップシッパー の体験談が聞ける!

「全くの初心者様が一気に売り上げる為のPPC集客と、月商100万突破のPPC集客の鉄則

「あなたにもできる魅力のSEO集客についてのテクニック」

at 18:47, tom7650, セミナー

comments(1), trackbacks(0), - -

明けましておめでとう御座います。

去年は色々なことがありました。
ショップの方も多数のお客さんが来て頂きまして大変感謝しております。
今年はもっと良い年になるように頑張りますのでよろしくお願いします。

PR
総合通販 えーお店
炭火 焼き肉 亀山社中 通販
こだわり焼き肉
メイソンピアソン

at 08:34, tom7650, もしも

comments(1), trackbacks(0), - -