トップページphp
1001コメント300KB

【PHP】下らねぇ質問はID出して書き込みやがれ 102

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2010/12/18(土) 20:07:33ID:???
質問者はまず>>1を良く読むこと(必須!)
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。

◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 101
http://hibari.2ch.net/test/read.cgi/php/1289793607/
◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】

◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)

◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)

◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。

【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0010nobodyさん2010/12/20(月) 23:52:54ID:???
hage
0011nobodyさん2010/12/21(火) 00:20:51ID:???
>>1
1乙。Ajaxの教育効果があったようだな。
0012nobodyさん2010/12/21(火) 00:21:45ID:???
>>1(・ω・`)X  これはAjaxじゃなくてJAXAなんだからね!
0013nobodyさん2010/12/21(火) 01:04:57ID:WU1Jm8ey
OS:CentOS
PHP:5.2.12
連携ソフトウェア:GoogleIME
確認ブラウザ:Chrome Opera IE

Google変換のAPIを試してみてもうまくいきません

$res = file_get_contents("http://www.google.com/transliterate?langpair=ja-Hira|ja&text=".urlencode("すいせいせき"));
print $res;

ブラウザで同じURLに行ってみたらうまくいくのですが
PHPを通すと
[ [ "\u3059\u3044\u305B\u3044\u305B\u304D", [ "\u7FE0\u661F\u77F3","\u7FC6\u661F\u77F3","\u5F57\u661F\u77F3","\u3059\u3044\u6210\u7E3E","\u3059\u3044\u305B\u3044\u305B\u304D", ], ], ]
と、文字化けみたいなことになります

エンコードとか色々してみたんですがダメでした。
原因を教えてください。
よろしくお願いします。
http://www.google.com/intl/ja/ime/cgiapi.html
0014nobodyさん2010/12/21(火) 01:33:24ID:???
json_decode
0015nobodyさん2010/12/21(火) 01:46:57ID:???
そんくらいぱっとみてjson関連ってわからないとAPIを使うのはむずかしい
0016nobodyさん2010/12/21(火) 01:54:14ID:???
これJSON形式か?
0017nobodyさん2010/12/21(火) 02:44:15ID:???
>レスポンス
>JSON 形式の配列が返されます。

おもいっきり説明に書いてあるし書き方的にもJSON
0018nobodyさん2010/12/21(火) 03:08:43ID:???
>>17
違います。Ajaxです。
0019nobodyさん2010/12/21(火) 03:31:53ID:???
池沼は放置
0020132010/12/21(火) 09:52:18ID:???
いえ、JSONってことはわかるんですが、文字化けの解決法がわかりません。
JSONのデコード以前の問題かと
0021nobodyさん2010/12/21(火) 09:59:53ID:???
文字化けじゃなくてunicodeエスケープされてるだけなのでjson_decodeすればOK
json_decode使わないならpackとかめんどくさい事しないとダメ
0022nobodyさん2010/12/21(火) 10:11:02ID:???
文字化けしてないじゃん。
0023nobodyさん2010/12/21(火) 10:27:36ID:???
これJson+Urlencodeだっけ
Json_decode+Urldecodeすれば解決すんじゃないのん?
0024nobodyさん2010/12/21(火) 10:29:57ID:???
urlencodeだと%〜になるので関係なし
json_decodeだけでいい
0025nobodyさん2010/12/21(火) 10:31:49ID:???
そうなのか
俺の時、サーバサイドでjson_encodeしたら日本語のままだったから、
恐らくFirefox(Firebug)で自動的に日本語変換でもされてたのかな、まぁいいや
0026nobodyさん2010/12/21(火) 11:00:42ID:???
PHPで使うことを想定してるならシリアライズしてくれたらいいのにな
0027nobodyさん2010/12/21(火) 11:04:56ID:???
どこにもPHPで使うことを想定してるような事は書いてないが・・・
どちらかと言えばJSONPが使えればとは思う・・・
0028nobodyさん2010/12/21(火) 11:26:54ID:???
<!DOCTYPE html>
<head>
<meta charset="UTF-8">
<script>
<?php
$res = file_get_contents("http://www.google.com/transliterate?langpair=ja-Hira|ja&text=".urlencode("ゆうらくちょう"));
echo "var json = unescape(".$res.");\n";
echo "document.write(json);\n";
?>
</script>
</head>
0029282010/12/21(火) 11:30:57ID:???
理屈はこうなんだけど
JavaScriptのunescapeに相当するPHPの関数を知らない
0030nobodyさん2010/12/21(火) 11:35:15ID:???
>>29
その辺はPEARライブラリがサポートしてるな

そういやGoogle変換APIって商用利用不可能だっけ
0031282010/12/21(火) 11:51:01ID:???
http://jp2.php.net/utf8_encode#58442
この関数コピペしていけた
使う前に$resの\を%に置き換える必要があるけど
まぁJavaScript側でやっていいんじゃないかと思うけどね

//上の関数群をコピペ
$res = preg_replace("/\\\/", "%", file_get_contents("http://www.google.com/transliterate?langpair=ja-Hira|ja&text=".urlencode("すいせいせき")));
echo unescape($res);
0032282010/12/21(火) 11:55:01ID:???
荒れないうちに訂正しておく
preg_replace("/\\\/"→str_replace("\\"
0033nobodyさん2010/12/21(火) 12:00:30ID:???
いやだからjson_decodeで十分だろ・・・
0034nobodyさん2010/12/21(火) 12:04:40ID:???
json_decodeが何をする関数か調べてからいいなよ
0035nobodyさん2010/12/21(火) 12:20:11ID:???
その用途ならunescapeする必要なくないか・・・?
0036282010/12/21(火) 12:24:58ID:???
いやただ単に俺の環境じゃjson_decode使えなかったからw
使えるなら簡単にできるんだろうね
0037nobodyさん2010/12/21(火) 12:31:48ID:???
5.2以降ならデフォルトでjson_decode使えるけど
>>13とは別人なのか・・・ややこしい
0038nobodyさん2010/12/21(火) 12:44:55ID:???
$res = file_get_contents("http://www.google.com/transliterate?langpair=ja-Hira|ja&text=".urlencode("すいせいせき"));
print_r(json_decode(str_replace(",]", "]", preg_replace(array("/\x20/", "/\\t/", "/\\n/"), array("", "", ""), $res))));

まぁこんなかんじっすかね
0039nobodyさん2010/12/21(火) 12:47:43ID:???
>preg_replace(array("/\x20/", "/\\t/", "/\\n/"), array("", "", ""), $res)
preg_replace("/[[:space:]]/", "", $res)
でおk
0040nobodyさん2010/12/21(火) 14:43:46ID:???
$res = Ajax("http://www.google.com/transliterate?langpair=ja-Hira|ja&text=すいせいせき");
でおk
0041nobodyさん2010/12/21(火) 15:43:31ID:???

Ajax については、【PHP】下らねぇ質問はID出さずに書き込みやがれ 1
http://hibari.2ch.net/test/read.cgi/php/1289117484/l50

こちらで解説付きで書いてください。
0042nobodyさん2010/12/21(火) 17:09:15ID:???
未だにfile()かfgetsか迷うな
0043nobodyさん2010/12/21(火) 18:25:35ID:???
いやだからAjaxで十分だろ・・・
0044nobodyさん2010/12/21(火) 19:00:41ID:???
えーっ?十分も掛かったらやだなあ、もっと早く動作させられる物をキボンヌ!
0045nobodyさん2010/12/21(火) 19:23:47ID:???
いい加減荒らすのやめろよカスが
そろそろぶちきれますよ
0046132010/12/21(火) 20:38:03ID:WU1Jm8ey
json_decode関数の使い方がいまいちわかりません

<?php
$res = file_get_contents("http://www.google.com/transliterate?langpair=ja-Hira|ja&text=".urlencode("すいせいせき"));
$aryres=json_decode($res);

print_r($res);

とすると何も表示されません
print_rの代わりにvar_dumpを使うとNULLが帰ってきます
なんどもすみません。よろしくお願いします。
0047nobodyさん2010/12/21(火) 20:41:43ID:???
$aryres=json_decode($res);

print_r($res);

え?
0048nobodyさん2010/12/21(火) 20:46:25ID:???
注)釣り針が大きすぎる
0049132010/12/21(火) 20:52:06ID:???
大変失礼しました。
2chに転記する時のミスです。

print_r($aryres);
です。
0050nobodyさん2010/12/21(火) 21:54:51ID:???
マニュアルと>>38のコード読めよ・・・
なんで",]"を"]"にわざわざ置き換えてるのか考えろ
0051nobodyさん2010/12/21(火) 22:05:02ID:???
javascriptの場合,つけてても平気だけどPHPのjson_decodeの場合エラー扱いになるのか・・・
0052132010/12/21(火) 22:25:16ID:WU1Jm8ey
>>38-39を使って
$res = file_get_contents("http://www.google.com/transliterate?langpair=ja-Hira|ja&text=".urlencode("すいせいせき"));
print $res."\n";
$res = preg_replace("/[[:space:]]/", "", $res) ;
print $res."\n";
$res = str_replace(",]", "]",$res);
print $res."\n";
print_r(json_decode($res));

で出来ました。
ありがとうございました。
0053nobodyさん2010/12/21(火) 23:27:20ID:???
つまりJSON形式じゃなかったってことだな
0054nobodyさん2010/12/21(火) 23:52:25ID:zPMGCBk8
すいません。他のスレで質問したんですが、ID出してしまって怒られたので
こちらで質問させてください。
実は今個人でPHPの勉強しようと思ってます
演算子や関数などと出てきて、覚える必要はあるんでしょうか?
数式や数字はすごく苦手です…
やはりよく使う物なんでしょうか?
マルチになってしまいますがどうか教えてください
0055nobodyさん2010/12/21(火) 23:58:43ID:???
>>54
Ajaxを学ぶのがおすすめ。Ajaxさえできれば何でも出来るよ。
0056nobodyさん2010/12/22(水) 00:11:21ID:???
>>55さん
レスありがとうございます
Ajaxは聞きなれたことがなかったので調べてみました
簡単に言うとHTMLとCSSとJavaScriptを混ぜたものと考えてもいいんでしょうか?
面白そうとは思うんですが
PHPの方が興味あります…
0057nobodyさん2010/12/22(水) 01:03:24ID:???
>>54
入門書の基本的な文法の部分をざっと読んでみると良いと思います。
演算子なんて小学校の算数レベルのものが理解できれば何とかなります。
「関数」も数学の関数と混同している気がします。
難しいという先入観なしでやってみてはいかがでしょう。
0058nobodyさん2010/12/22(水) 01:06:43ID:???
>>57さん
ありがたいレスありがとうございます
なんとなく先入観で難しいと思ってしまっていたのかも知れないですね(汗)
独学で頑張ってみようと思います
ありがとうございました!
0059nobodyさん2010/12/22(水) 02:13:12ID:???
>>53
いやJSONはJSONで問題ない
JavaScript的にはあれでOKなんだよ
ただJSONの仕様が書いてあるところにその事が明記されてないから
サポートされてないだけだよ

javascriptとしては
[,].lengthこれで1で
[,""].lengthこれだと2になる
この仕様はあんまり好きじゃないがこういう仕様
0060nobodyさん2010/12/22(水) 02:50:32ID:2qC3xXMO
【OS名】windows7
【PHPのバージョン】5.3
【連携ソフトウェア 特になし
【質問内容】
独学でPHPを学んでいて、演習のネタに困ってます。
2ちゃんでは評判があまり良くなかったようですが、「PHPによるECサイトプログラミング」
を参考にECサイトを組んでみて、記述抜けや記述間違いも含め、すごく勉強になりました。
次は自分でWEBサービスを組んでみようかとやっているんですが、まだ力不足のようです。
何か入門書ではなく、またサンプルやクックブックのようなものではなく、
纏まったボリュームのアプリケーションを組むといった内容の参考書をどなたか
ご存知でないでしょうか。日本語か英語でお願いしたいです。
よろしければご教授下さい。
0061nobodyさん2010/12/22(水) 07:31:22ID:???
>>60
オープンソースのPHPアプリケーション
0062nobodyさん2010/12/22(水) 08:17:58ID:???
http://www.jnj.co.jp/
0063nobodyさん2010/12/22(水) 08:59:42ID:???
>>60
このスレの住人に英語が理解できるはずないから。
Ajaxすら理解できないのに。
0064nobodyさん2010/12/22(水) 10:18:27ID:???
なんか言わないと気が済まない低レベル野郎は黙ってろ
あんま荒らすといい加減BANしてもらいますよ
0065nobodyさん2010/12/22(水) 11:17:43ID:???
BANとかあるんだ
こえーな
0066nobodyさん2010/12/22(水) 12:11:35ID:???
>>64
精神病患者の特徴そのまま
他人の言動はまるで耳に入らない

言うだけ無駄
0067nobodyさん2010/12/22(水) 14:21:35ID:???
よくもそんなひどいことが言えますね。
あなたがたの民度の低さが伺えます。
0068nobodyさん2010/12/22(水) 15:30:47ID:6F24ohpm
Postで移動した先で更新を押しても再度値が送信される的なメッセージが表示されない方法ってあるんですかね?
ショッピングカートみて研究してたら、POSTで移動してるはずなのに更新おしてもメッセージが表示されないところがあるんです。
これってどうやってるんでしょうか?
0069nobodyさん2010/12/22(水) 15:43:48ID:???
そこら辺はブラウザの仕様だから勘違いだろう
0070nobodyさん2010/12/22(水) 15:49:55ID:???
キャッシュさせないかなにかで出来たはず
とりあえずヘッダ見てみる事をおすすめする
0071nobodyさん2010/12/22(水) 15:53:23ID:???
POSTされたページでSESSIONにPOSTされたデータを格納だけして
headerで別ページに飛ばすというのも良くある
飛ばされたページでリロードしても問題無い
0072nobodyさん2010/12/22(水) 15:55:51ID:???
決済後に戻るボタンおして再送信したら二重決済とか
そういう風にならないようにちゃんとなってるはずだから基本気にしなくていいよねタブン
0073nobodyさん2010/12/22(水) 16:01:09ID:???
戻るボタン対策も考えると

・処理後にheaderで飛ばす
・tokenを生成する

これらをやっとけば平気

tokenについては、「php 2重送信」とかで検索すると具体例がでてくる
0074nobodyさん2010/12/22(水) 17:02:47ID:???
リダイレクトで解決しました。
ありがとうございました。
0075nobodyさん2010/12/22(水) 18:56:09ID:???
>>72

二重決済は決済を受付る側での抑止に関するお話です。
0076nobodyさん2010/12/22(水) 18:57:24ID:???
>>73

適切な回答に感動しました。
0077nobodyさん2010/12/22(水) 19:00:19ID:???
>>74

解決して礼を述べる時にもIDを出す配慮が欲しい。

質問と同じIDならば質問者が理解したと判断できるから。

そうした配慮に人は喜びを感じます。
0078nobodyさん2010/12/22(水) 19:26:52ID:LZXfpwRk
たまに嵐なのか、単なるいたずらのつもりなのか、矛盾した回答があって困っています。
また、回答者とのやりとりを何回か行う場合に、複数の回答者がてんでにバラバラな
ことを言っているのか、単一の回答者が(半端な知識の為に)矛盾した回答を複数して
いるのかが判然としません。

IDを出していない書込をすべて排除するべきではありませんか?
つまり、「【PHP】下らねぇ質問も回答も雑談もID出して書き込みやがれ」に
変えるべきではないですか?
0079602010/12/22(水) 19:35:16ID:2qC3xXMO
>>61
素早いお返事ありがとうございます。
確かにオープンになってるソースを読めば十分勉強できますね。
迂闊にも気付きませんでした。

>>62
このページのPHP部分が面白いのですね。ツールを探して見てみようと思います。

ありがとうございました。
0080nobodyさん2010/12/22(水) 23:35:31ID:???
丁寧語で喋ってるやつってID出せとかAjaxとか言ってるやつだろ?
多重面相は大変ですね
0081nobodyさん2010/12/23(木) 02:35:07ID:???
発言が低能だからまるわかりなんだよな
マジでリアルIQ低そう
0082nobodyさん2010/12/23(木) 02:42:49ID:???
>>73見てひろみちゅの記事思い出したわ
ttp://takagi-hiromitsu.jp/diary/20060409.html
0083nobodyさん2010/12/23(木) 09:04:58ID:???
ひろみちゅの記事なんか紹介するなよ

間違えて読んじやったじゃないか!
他人の手柄を横取りする ひろみちゅは嫌いなんだよね〜
0084nobodyさん2010/12/23(木) 09:52:28ID:???
見れればわかるしな。回答も質問もしないし。
0085nobodyさん2010/12/23(木) 11:36:45ID:???
あなた方の民度の低さにはうんざりです。
私これまでいくつ回答したと思っているの、
もtっとAjaxxを基礎から勉強しなおしたほうがいいのではないでしょうか
0086nobodyさん2010/12/23(木) 11:37:55ID:???
×回答
○オナニー論評
0087nobodyさん2010/12/23(木) 11:52:46ID:???
あなたのような荒らしにみんなうんざりしてるbの
がわからないのですか、だから低脳といわれるのですよ
0088nobodyさん2010/12/23(木) 12:42:12ID:???
荒らされたらAjax覚えて見返してやればいい
0089nobodyさん2010/12/23(木) 13:36:39ID:???
ここを荒らす奴って、隔離スレにも書いてる奴なの?
両方に書いているかと想像したら、哀れみを感じました。
0090nobodyさん2010/12/23(木) 14:01:23ID:???
ここを荒らしてる奴があっちもついでに荒らしてる感じでしょ多分
0091nobodyさん2010/12/23(木) 14:03:16ID:???
お金が絡んでるってわからないのかな
0092nobodyさん2010/12/23(木) 14:13:46ID:???
先生方へるぷみー。

先生方も大好きなSOAPなんだけど
 <xsd:element ref="tns:hoge" nillable="true"/>
みたく、ひとつの要素に ref と nillable が両方登場するような WSDL を SoapClient に指定すると
 PHP Fatal error: SOAP-ERROR: Parsing Schema: element has both 'ref' and 'nillable' attributes
って怒られる・・・

これWSDLが悪いんですっけ?
ええ確かに、refとnillableって意味的にそぐわないよなあとは思うんだけども・・・
それともSoapClientへのパラメータでなんとかなったりしますのん?
0093922010/12/23(木) 14:17:59ID:RvWW4NaD
いつものクセでsageちゃったage
0094nobodyさん2010/12/23(木) 14:21:25ID:???
>>92
態度が気に入らない
0095nobodyさん2010/12/23(木) 14:21:55ID:???
自分で答えだしてるじゃん
0096922010/12/23(木) 14:23:56ID:RvWW4NaD
っていうかテンプレがあったのか・・連投失礼
【OS名】WindowsXP, Windows7
【PHPのバージョン】5.2.16, 5.3.4
【連携ソフトウェア】なし
【質問内容】
<xsd:element ref="tns:hoge" nillable="true"/>
と、ひとつの要素に ref と nillable が両方登場するような WSDL を SoapClient に指定すると
PHP Fatal error: SOAP-ERROR: Parsing Schema: element has both 'ref' and 'nillable' attributes
とエラーメッセージが表示されます。
WSDLを修正すべき?
それともSoapClientへのパラメータで何とか?
0097922010/12/23(木) 14:24:48ID:???
あーもうなんかいろいろすんません。
答え出てますよね。
消えます・・・
0098nobodyさん2010/12/23(木) 17:09:03ID:kptdGBbq
「aeeea」などにマッチする正規表現を
preg_match('/(.)e+\1/', 'aeeea')
のように書きたいのですが、マッチしません。
一度括弧で取り込んだ値をそのまま使う方法はないでしょうか?
0099nobodyさん2010/12/23(木) 17:16:03ID:???
おれの環境ではそれでマッチするからたぶん壊れてるよ
インストールしなおしだな
0100nobodyさん2010/12/23(木) 17:47:50ID:???
/i にするの忘れてました…
有り難うございました。
0101nobodyさん2010/12/23(木) 17:55:06ID:???
出来る限り実装に近い例を質問に用いろという好例だな。
preg_match('/(.)jax\1/', 'Ajaxa')
ではマッチしないというわけだ。
0102nobodyさん2010/12/23(木) 19:15:29ID:???
>>101

   ∩___∩         |
   | ノ\     ヽ        |
  /  ●゛  ● |        |
  | ∪  ( _●_) ミ       j
 彡、   |∪|   |        Ajax
/     ∩ノ ⊃  ヽ
(  \ / _ノ |  |
.\ “  /__|  |
  \ /___ /

0103nobodyさん2010/12/23(木) 22:13:41ID:???
いつもの低レベルな論評ですね(笑
0104nobodyさん2010/12/24(金) 05:19:37ID:???
そういえば高木はGijoeって人に論破された後だんまりぶっこいててわろた記憶があるな。
0105nobodyさん2010/12/24(金) 14:18:49ID:YocMDy8V
リファラーのチェックって必要なんでしょうか?
昔セキュリティソフトの類を使ってると、そのソフトがその辺の情報を自動的に消してしまってて使えないとか聞いたことがあるんですが。
0106nobodyさん2010/12/24(金) 14:25:53ID:???
>>105
refererは簡単に変えられるから
refererに依存した作りはしないほうがいい

他のチェックと合わせてrefererもチェックするというのは有り
0107nobodyさん2010/12/24(金) 18:09:30ID:???
>>105
CSRFされると困るようなものなら,チェックした方がいいよ
0108nobodyさん2010/12/24(金) 19:36:17ID:CPjE3COu
どちらかというと正規表現なのでしょうか


住所の一覧.txtがあるのでそれを市町村や都道府県等の単位で配列につっこんで利用したいと考えております

持っているデータはただひたすら住所がフルパスで列挙されたもので
北海道札幌市中央区
北海道札幌市中央区旭ケ丘
...
沖縄県八重山郡与那国町与那国

hairetu[0][0]=北海道
hairetu[0][2]=札幌市
hairetu[0][3]=中央区

hairetu[1][0]=北海道
hairetu[1][2]=札幌市
hairetu[1][3]=中央区
hairetu[1][4]=旭ヶ丘
...
hairetu[X][0]=沖縄県
hairetu[X][1]=八重山郡
hairetu[X][2]=与那国町
hairetu[X][3]=与那国


こんな感じに格納するのが目標です
preg_match('/^(.+?[都道府県])(.+?[市町村区])((.+?[市町村区])|(.+?[^市町村区]))((.+?[市町村区])|(.+?[^市町村区]))(.+)/u', $plan_text, $addresses, PREG_OFFSET_CAPTURE);
こんな感じで正規表現試してみたのですが望んだ結果が得られません
どなたかアドバイスをお願いします
0109nobodyさん2010/12/24(金) 19:56:28ID:???
$s = '沖縄県八重山郡与那国町与那国';
preg_match('/(.*?(?:都|道|府|県))(.*?(?:郡|市|区|町|村))(.*?(?:区|町|村))(.*)/', $s, $match);
array_shift($match);
foreach ($match as $value) {
echo $value,"<br />\n";
}
■ このスレッドは過去ログ倉庫に格納されています