ajaxでクロスドメイン通信を実現するphp

html

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
<script src="//code.jquery.com/jquery-migrate-1.2.1.min.js"></script>
<script>
$(document).ready(function(){
    $('#getbtn').click(function(){
        var url = encodeURIComponent($('#url').val());
        $('#restxt').val('通信中...');
        $.ajax({
            type: "GET",
            url: "ajax.php?url="+url,
            dataType: "text",
            success: function(res){
                $('#restxt').val(res);
            }
        });
    });
});
</script>
</head>
<body>
<p>取得先URL</p>
<input type="text" id="url"></input>
<button id="getbtn">GET</button>
<p>結果領域</p>
<textarea id="restxt" style="width:100%;height:300px;"></textarea>
</body>
</html>

php

<?php
if(isset($_GET["url"]) && preg_match("/^https?:/",$_GET["url"])){

    echo file_get_contents($_GET["url"]);
}else{
    echo "error";
}

MFC CArray を qsort する

struct StructHoge
{
    int number;
};
・・・

CArray <StructHoge, StructHoge> arrayHoge;

・・・


int compareHoge(void* context, const void* a1, const void* a2)
{
    StructHoge* p1 = (StructHoge*)a1;
    StructHoge* p2 = (StructHoge*)a2;

    if (p1->number != p2->number)
    {
        return p1->number - p2->number;
    }

    return 0;
}


・・・

StructHoge* pHoge = arrayHoge.GetData();

qsort_s((LPVOID)pHoge, arrayHoge.GetCount(), sizeof(StructHoge), compareHoge, NULL);

.NETのHttpClientの取り扱いには要注意という話

HTTPアクセスのたびにnewして使うと大量アクセス時にボトルネックになるらしい。

staticで宣言して、使いまわすのがよいそうです。

1ホストにつき1HttpClientオブジェクトがルール。

使いまわすとなると同時アクセスの心配がでるけど、それはHttpClient的には想定済なのだそうです。 どこまで大丈夫なんだろうか・・・?

javascriptでGETパラメータを取得する

function getUrlVars()
{
    var vars = [], hash;
    var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
    for(var i = 0; i < hashes.length; i++)
    {
        hash = hashes[i].split('=');
        vars.push(hash[0]);
        vars[hash[0]] = hash[1];
    }
    return vars;
}

例えば http://www.example.com/?me=myValue&name2=SomeOtherValue なら

//最初のパラメータ(me)
var first = getUrlVars()["me"];
 
//2つ目のパラメータ(name2)
var second = getUrlVars()["name2"];

javascriptで選択肢によってドロップダウンのメニュー項目を変える

javascript部

<script type = "text/javascript">
<!--
function functionName()
{
var select1 = document.forms.formName.selectName1; //変数select1を宣言
var select2 = document.forms.formName.selectName2; //変数select2を宣言

select2.options.length = 0; // 選択肢の数がそれぞれに異なる場合、これが重要

if (select1.options[select1.selectedIndex].value == "果物")
{
select2.options[0] = new Option("りんご");
select2.options[1] = new Option("みかん");
select2.options[2] = new Option("オレンジ");
}

else if (select1.options[select1.selectedIndex].value == "野菜")
{
select2.options[0] = new Option("キャベツ");
select2.options[1] = new Option("きゅうり");
select2.options[2] = new Option("にんんじん");
select2.options[3] = new Option("たまねぎ");
}

else if (select1.options[select1.selectedIndex].value == "肉類")
{
select2.options[0] = new Option("豚肉");
select2.options[1] = new Option("牛肉");
}
} 
//-->
</script>

HTML部

<body bgcolor onLoad="functionName()">
<form name="formName" method="post" action="./pathToProgramFile">
<!--選択肢その1-->
<select name = "selectName1" onChange="functionName()">
<option value = "果物">くだもの</option>
<option value = "野菜">やさい</option>
<option value = "肉類">にくるい</option>
</select>

<!--選択肢その2(選択肢その1の項目によって変化)-->
<select name = "selectName2">
</select>

</body>