【PHP】下らねぇ質問はID出して書き込みやがれ 110
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2011/08/30(火) 17:23:31.78ID:???過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 109
http://hibari.2ch.net/test/read.cgi/php/1311803617/
◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0787nobodyさん
2011/09/20(火) 11:58:22.29ID:???0788nobodyさん
2011/09/20(火) 11:58:30.75ID:Y5iB+vf4改めて・・・
PHPの勉強をしたいのですが、パソコン内部で文法があってるかどうかチェックする方法ってないですか?
レンタルスペースで記述を間違えてしまって、万が一他の方の迷惑になるのは避けたいんです
でもこの質問ってここでいいんでしょうか?
違いましたら誘導お願いします
0789nobodyさん
2011/09/20(火) 12:08:30.06ID:???バグは自分でテストしないと見つけられない
(プログラムはプログラマが書いたとおりに動くもので、
プログラムの動きが正常な動作かバグであるかは人間が判断するものだから)
そして、バグがないことを証明する方法はない(悪魔の証明)
0790nobodyさん
2011/09/20(火) 12:18:25.27ID:???構文チェックだけならphp -l path/to/hoge.php
無限ループだとかすさまじく重いだとかは事前のチェックは無理
0791nobodyさん
2011/09/20(火) 12:25:27.23ID:Y5iB+vf4それは実際にやるしか方法がないってことですか?
>>790
凄まじく重い・・・
ツイッターでEasyBotterを使いたくて、その前にチェックしたいのが目的です
これくらいだったら大丈夫なのでしょうか?
0792nobodyさん
2011/09/20(火) 12:29:32.84ID:???0793nobodyさん
2011/09/20(火) 12:32:32.19ID:???0794nobodyさん
2011/09/20(火) 12:43:34.88ID:???レンタルスペースと同じ環境を作ってテストする。
仮想マシンも無料。OSもどうせ無料のLinuxとかFreeBSDでしょ?
0795nobodyさん
2011/09/20(火) 12:46:44.92ID:Y5iB+vf4まずもっと基本からの勉強が必要なようですね・・・
正直生活は今キツイですが、雑誌でも買って基本から勉強するとします
0796nobodyさん
2011/09/20(火) 12:51:35.77ID:???http://www.apachefriends.org/jp/xampp.html
自分のPC内に環境作ってテストするのが一番良いよ
0797nobodyさん
2011/09/20(火) 12:55:21.09ID:Y5iB+vf4ありがとうございます!
これで迷惑かけずに勉強できそうです
0798nobodyさん
2011/09/20(火) 13:00:44.87ID:???エラーだけどプログラムの実行はつづけられる場合はerror_reporting()関数の設定で
warning やnoticeというエラー文が表示される
これはローカルのテスト中は表示させておくのがいいが、
実際の運用ではエラーメッセージを一切表示させないようにする
(セキュリティ上問題がある内容が外部に表示されてしまうのを防ぐため)
その場合のエラー報告はサーバのログで確認する
無限ループは、PHPの設定ファイルでプログラムの実行時間が限定されているため、
それをオーバーするとプログラムの実行が止まるが、
それに頼らず、無限ループをしないようにプログラム内できちんとチェックしておく
0799nobodyさん
2011/09/20(火) 14:00:00.67ID:???0800nobodyさん
2011/09/20(火) 16:20:41.83ID:???とか
10 run
を思い出した
0801nobodyさん
2011/09/20(火) 16:24:58.91ID:???20 DIM A$(10)
30 FOR B$ = 1 TO 10
40 PRINT B$,
50 NEXT
0802nobodyさん
2011/09/20(火) 19:39:30.21ID:lfjrrv56<?php
echo 'Hello, world!';
exit;
?>
とかやるときexit;とか入れてなかったんですが
入れたほうがいいんでしょうか?
最後に入れてないと何か問題発生したりするんでしょうか?
0803nobodyさん
2011/09/20(火) 19:49:23.45ID:???入れたらそこでスクリプトが終了する。
入れなかったら最後まで実行(解釈)される。
好きにしろ。
例えばrequireで読み込まれるスクリプトの最後にexitが入ってたらそこで終了しちゃう。
あるいはデバッグのため途中にわざとexitを入れてテストすることもある。
0804nobodyさん
2011/09/20(火) 19:50:34.77ID:???0805nobodyさん
2011/09/20(火) 19:51:11.83ID:lfjrrv560806nobodyさん
2011/09/20(火) 19:53:02.38ID:???それを出力しちゃうから、それを避けるために敢えてexitを入れることはある。
0807nobodyさん
2011/09/20(火) 20:02:57.03ID:lfjrrv56メモリとかの問題で最後にいれないとヤバイのかなと不安になってました、あざっす
0808nobodyさん
2011/09/20(火) 20:21:30.09ID:+cR/U5eKコマンドモードがあるにせよ、PHPは基本はブラウザからの挙動が主な反面、Perlはスクリプトからそういうの作れると思うのですが、PHPではどうなのでしょうか?
0809nobodyさん
2011/09/20(火) 20:23:37.06ID:???http://php.net/manual/ja/function.file-get-contents.php
http://www.php.net/manual/ja/function.file-put-contents.php
PerlもPHPも動作の基本は変わらんよ
0810nobodyさん
2011/09/20(火) 20:26:45.10ID:???ネットにつながるからスクリプト言語から昇格するんだ。
0811nobodyさん
2011/09/20(火) 20:29:01.83ID:???0812nobodyさん
2011/09/20(火) 20:39:56.48ID:???Webプログラミングでは、サーバ側で動作するプログラムとクライアント側で動作するプログラムの両方を開発しなければならない。
]それぞれの側のプログラムで利用される技術は異なり、さらにAjaxを採用するプログラムであれば、
サーバ側・クライアント側のプログラムが複雑に連携して機能を実現するので、それぞれの側のプログラムを別々に開発することが難しく、
プログラマには両方の側で用いられる技術を深く習得することが求められる。
サーバ側でのプログラミングは、ウェブサーバ上で動くプログラミング言語を用いて行われる。
このプログラミングは「サーバ・サイド・プログラミング」とも呼ばれる。
例としてサーバサイトにつかう言語と環境としてCGI + PerlやPHP、Ruby、
Java Servlet + JSP + Enterprise JavaBeans + Spring Framework + Apache Struts(Java EE)、.NET(ASP.NET(C#,VB.NET))などが挙げられる。
Webプログラミング - Wikipedia
0813808
2011/09/20(火) 20:58:23.64ID:???ではPHPとPerlの違いはWebのプログラムでは差異はないということですね
Linuxでのインストールとかで使われるスクリプトではPerlに分があるようですが
0814nobodyさん
2011/09/20(火) 23:03:08.90ID:???08151/2
2011/09/20(火) 23:59:28.45ID:LY2lMq1E少し前に話題に上がった、echo と print どっちが早いのか
シングルクオーテーションと、ダブルクオーテーションでは、どっちが早いのか
ソース及び結果をグラフ化した画像:
ttp://www.dotup.org/uploda/www.dotup.org2047559.zip
やったこと:
コマンドラインより print_and_echo.php を実行
結果:
echo でシングルクオーテーションを使って表示したのが1番早い。
但し、その差はとても小さい。
(グラフ print_and_echo.jpg)
08162/2
2011/09/21(水) 00:00:17.79ID:???Pentium4 2.8GHz HT対応(古くてスマンw)
debian squeeze を実機にインストールし、php (version 5.3.3-7+squeeze3)をインストール
デスクトップ環境はインストールせずに、phpスクリプトをコマンドラインより実行
ソース内容:
以下の4つのパターンを使用して、アルファベット a-z を 1万回表示
1. echoを使って表示、アルファベットをシングルクオーテーションで囲む
2. echo ダブルクオーテーション
3. printを使って表示、アルファベットをシングルクオーテーションで囲む
4. print ダブルクオーテーション
実行する順序によって、実行速度が変わる可能性を考慮し、上記パターンをランダムで実行する。
さらに繰り返し実行する事により、実行速度が変化するのかを確かめる為、上記を100回繰り返し実行する。
グラフを見ると、実行速度が跳ね上がる(遅くなる)箇所が有る。何故この様な事が起こるのか?
0817nobodyさん
2011/09/21(水) 00:39:25.44ID:???0819nobodyさん
2011/09/21(水) 03:28:32.74ID:???HTTPに特化してるPHPをシェルスクリプトとして使う必要性がないからであって
作れないという訳ではない
$ cat a.php
#!/usr/bin/php
<?php
$url = $argv[1];
$doc = new DOMDocument();
$doc->loadHTMLFile($url);
$xpath = new DOMXPath($doc);
foreach ($xpath->query('//img[@src]') as $img) {
echo $img->attributes->getNamedItem('src')->value, PHP_EOL;
}
$ php a.php http://www.example.com/
/_img/iana-logo-pageheader.png
/_img/icann-logo-micro.png
>>815
次からはソースを読めば無駄な時間を過ごさずに済むぞ
https://svn.php.net/repository/php/php-src/branches/PHP_5_3/Zend/zend_language_parser.y
https://svn.php.net/repository/php/php-src/branches/PHP_5_3/Zend/zend_compile.c
https://svn.php.net/repository/php/php-src/branches/PHP_5_3/Zend/zend_vm_def.h
* どちらも関数ではなく文法の一部。
* echoは文として扱われ出力する式をカンマ区切りで複数受け取る事ができる。
* printは式として扱われ出力する式を一つだけ受け取る事ができ、戻り値として 1 を返す。
* 処理時間はprintが「極僅かに」遅い。printはechoに処理を委譲するのと戻り値があるため。
結論から言えば式として扱う必要がなければprintを使う意味はない。
0820nobodyさん
2011/09/21(水) 03:44:28.89ID:???0821nobodyさん
2011/09/21(水) 03:45:42.29ID:???P131の本文1〜2行目(2刷りにて修正)
誤:Fig2 のように横軸を「列」、縦軸を「行」などと呼びますが、
正:Fig2 のように横軸を「行」、縦軸を「列」などと呼びますが、
これって元がどうなんだろ。
図に記載されてる横軸と縦軸がすでに逆ってことだろうか
0822nobodyさん
2011/09/21(水) 05:05:02.07ID:???コマンドラインで実行中スクロールバーをマウスで動かしてるとプログラムが停止するけど
おかしくないですか?
0825nobodyさん
2011/09/21(水) 11:00:29.26ID:8+iCvqLi$_FILES[パラメータ名]['name'] だったり $_FILES[パラメータ名][name] だったりとまちまちです
どっちを使ったら良いんでしょうか?
というか、プロパティ?は''で囲むべきですよね?
0826nobodyさん
2011/09/21(水) 11:22:32.28ID:???0827nobodyさん
2011/09/21(水) 11:26:29.67ID:???PHPはスーパー全自動だから、クォートされてないキーは定数として評価されたあと、
その定数が存在しない場合は文字列として扱われる
http://jp2.php.net/manual/ja/language.types.array.php
0828nobodyさん
2011/09/21(水) 11:27:14.98ID:???クォートなしの記述は昔の名残
http://www.php.net/manual/ja/language.types.array.php#language.types.array.donts
0829nobodyさん
2011/09/21(水) 11:27:59.06ID:???0830nobodyさん
2011/09/21(水) 11:31:09.34ID:???0831nobodyさん
2011/09/21(水) 11:47:37.95ID:???0832nobodyさん
2011/09/21(水) 11:54:32.24ID:???0833nobodyさん
2011/09/21(水) 12:45:50.21ID:???0834nobodyさん
2011/09/21(水) 12:58:59.95ID:8+iCvqLiありがとうございました
0835nobodyさん
2011/09/21(水) 14:06:27.53ID:???0836nobodyさん
2011/09/21(水) 14:57:20.16ID:???0837nobodyさん
2011/09/21(水) 17:37:52.74ID:???HTML文取ってきて正規表現でURLの部分とるとかですか?
あとログインが必要なサイトの場合はどうすればいいんでしょうか
0838nobodyさん
2011/09/21(水) 17:47:47.88ID:???Apacheに入れてた時はApacheから設定出来たけど、php単体ではどこから設定したらよいのでしょうか
win7 64bitです
0839nobodyさん
2011/09/21(水) 18:01:11.18ID:???素直にサーバーいれて動作チェックすればいいじゃん。
0840nobodyさん
2011/09/21(水) 18:10:08.09ID:???0841838
2011/09/21(水) 18:23:40.45ID:???http://php.net/manual/ja/features.commandline.webserver.php のビルトインウェブサーバー です
php -S localhost:80 -t "C:\_MyProgram\php\docRoot"
で立ち上げています。このマニュアルには
>>URI リクエストにファイルが含まれない場合は、指定したディレクトリにある index.php あるいは index.html を返します。どちらも存在しない場合はレスポンスコード 404 を返します。
とあるのに、index.phpしか存在しないディレクトリに http://localhost/ でアクセスした時、コンソールには
PHP 5.4.0beta1 Development Server started at Wed Sep 21 18:19:36 2011
Listening on localhost:80
Document root is C:\_MyProgram\php\docRoot
Press Ctrl-C to quit.
[Wed Sep 21 18:19:38 2011] ::1:54834 [200]: /index.php
[Wed Sep 21 18:19:38 2011] ::1:54835 [200]: /index.php?=PHPE9568F34-D428-11d2-A769-00AA001ACF42
[Wed Sep 21 18:19:38 2011] ::1:54836 [200]: /index.php?=PHPE9568F35-D428-11d2-A769-00AA001ACF42
[Wed Sep 21 18:19:39 2011] ::1:54838 [404]: /favicon.ico - No such file or directory
[Wed Sep 21 18:19:40 2011] ::1:54843 [404]: / - No such file or directory
[Wed Sep 21 18:19:40 2011] ::1:54844 [404]: /favicon.ico - No such file or directory
と、表示され
Not Found
The requested resource / was not found on this server.
とブラウザに表示されます
0842838
2011/09/21(水) 18:25:08.27ID:???PHP 5.4.0beta1 Development Server started at Wed Sep 21 18:24:14 2011
Listening on localhost:80
Document root is C:\_MyProgram\php\docRoot
Press Ctrl-C to quit.
[Wed Sep 21 18:24:15 2011] ::1:55038 [404]: / - No such file or directory
[Wed Sep 21 18:24:15 2011] ::1:55039 [404]: /favicon.ico - No such file or directory
の間違いでした。>>841はhttp://localhost/index.phpを指定した時の物でした
0843nobodyさん
2011/09/21(水) 18:51:25.69ID:WzjWBGg6正規表現で弾けばいいのかなと思ったんですが、こういうときってどういう正規表現を書けばいいんですか?
日本語正規表現で検索してもこれだっていうのがなかったのでどなたか教えてください。
ちなみに文字コードはUTF-8でデータベースには文字化けしないでファイル名が入るんですが
日本語のファイル名だと画像ディレクトリに送ったファイルが文字化けしてしてしまいます。
また正規表現で弾く以外に解決法があれば教えて下さい。
環境はPHP 5 mysql windowsXPです。
XAMMPでローカルでやってます。
0844nobodyさん
2011/09/21(水) 19:29:03.72ID:X6W74pr3見よう見まねでページャを作ってみました。以下ソース
for($n = 1; $n <= $pages; $n++ ) {
if($n == $page){
$link .= '<li><div class=""><div class="">'.$n.'</div></div></li>';
} else {
$link .= '<li><div class=""><a href="'.$script.'?page='. $n .'">'.$n.'</a></div></li>';
}
このままだと50ページあったら1〜50までダーッと表示されてしまいます。↓
123456789101112131415161171819202122232425...
これを、任意の数までしか表示されないようにするにはどうすればいいでしょうか。こんな感じです↓
12345 5ページ目まで行くと 34567
このように、ある程度まで行くと中心に現在のページがくるようにもしたいです。つまるところのxvideosのページャです
xvideos → http://www.xvideos.com/
よろしくお願いします
0846nobodyさん
2011/09/21(水) 19:41:36.04ID:???$first_page = $pages - ($pages - 1) % 50;
$last_page = $first_page + 49;
for($n = $first_page; $n <= $last_pages; $n++ ) {
・・・
}
0847nobodyさん
2011/09/21(水) 19:51:35.67ID:???DOM使うと楽
文法違反のサイトなら読み込む時だけエラー抑制
ログインは普通にログインして取ればいい
>>843
半角でもURLに使えん文字はあるよ。 [^URLに使える文字] で弾けば?
もしくは文字コード揃えてパーセントエンコーディングするか
0848nobodyさん
2011/09/21(水) 20:46:54.04ID:WzjWBGg6ありがとうございます!
("/[^-_.!~*\'()a-zA-Z0-9;\/?:\@&=+\$,%#]/")
とりあえず上のように書いたら、日本語ファイル名は弾かれて、普通の半角英数字のファイル名はアップロードできるようになりました。
0850nobodyさん
2011/09/21(水) 22:06:38.59ID:X6W74pr3うーん...できないですね
とりあえず試行錯誤して頑張ってみます
もし他の方法があったら教えて下さい
0851nobodyさん
2011/09/21(水) 23:32:37.71ID:???と
<?php echo $a ?>
ってどっちがいいですか?
0853nobodyさん
2011/09/22(木) 00:26:27.94ID:3wgxkSpf【PHPのバージョン】5.35
【連携ソフトウェア】XAMMP
【質問内容】
PHPでユーザログインのシステムを作成中です。
重複したユーザ名が登録された時、はじく仕組みを作りたいのですが、
mysql_query()で取得した結果があるかないかを判定する関数はあるのでしょうか?
mysql_result()などを使うと、存在しない場合はエラーが出てしまいます(存在しない行を参照するため)
何かいい方法、適当な関数があればご教授願います。よろしくお願いします。
0855nobodyさん
2011/09/22(木) 00:45:18.76ID:???fetchでぶんぶん回すのが一般的じゃね?
イテレーターのインターフェースだとカウントなんて基本考えない。
(postgresだが、石井さんの本にも確かカウント数えるのにぶんぶん回して$i++とかやってるのあったよーな。)
ほんとにレコード数が欲しいだけなら、SQLのcount()を使う。
(と、いう事を覚えておけば、ORMとか見ると合点いくところあるんじゃないかねぇ?)
0856nobodyさん
2011/09/22(木) 00:49:51.04ID:4MH/JO69$piyo_array = array_diff( $hoge_array, array( "" ) );
$out = array_merge(array_diff($in, array("")));
どちらがいいのでしょうか?
0857853
2011/09/22(木) 00:52:35.29ID:3wgxkSpf>>855
回答有り難うございました。count試してみます。
fetchを使うと行数が長くなるのでスマートな書き方があるのかな?
と思って質問させて頂きました。
0858nobodyさん
2011/09/22(木) 02:09:20.51ID:???カウントするのがメインでぐるぐる回してたのなら石井さんがトチ狂ったんだろうと思う
でも石井さんはトチ狂わないので>>855が何か勘違いしている
0859nobodyさん
2011/09/22(木) 03:41:06.87ID:???一致するレコードがあるかどうかを総当たりする以外に方法はないと思うので、ぐるぐる回しはやむを得ないのでは?
0861nobodyさん
2011/09/22(木) 06:03:16.97ID:???>>856
http://php.net/manual/ja/function.array-filter.php#example-4210
もしくは明示的に
$a = array('a', '', 'b', 'c');
$b = array_filter($a, 'strlen');
キーを振りなおしたいなら更に
$c = array_values($b);
0862nobodyさん
2011/09/22(木) 12:41:44.45ID:4MH/JO69ありがとうこざいます
0863nobodyさん
2011/09/22(木) 14:21:43.73ID:???0864nobodyさん
2011/09/22(木) 14:57:56.86ID:wgnnkyS+PHPで絵文字対応の日記サイトみたいなのを作っています。
携帯からも投稿出来るようにしており、携帯のウェブフォームから入力するときに、絵文字は[[hare]]みたいな感じに変換して
PC上ではそれに対応した画像を表示するようにしています。
携帯のメールでも日記が書けるように対応したのですが、絵文字関連で困っています。
メールを送ったら日記が登録出来る部分は完成したのですが、絵文字を入れてしまうと絵文字の部分が「(太い)=」(ゲタというのかな)になってしまいます。
携帯Webフォームと携帯メールでは絵文字の送出コードが違うのでしょうか?
ちなみにWebサイトはUTF-8で作っており、絵文字コードもUTF-8を使っています。
0865nobodyさん
2011/09/22(木) 15:04:36.80ID:???回答できなくてもうしわけないんだけれど
> 携帯Webフォームと携帯メールでは絵文字の送出コードが違うのでしょうか?
これに関しては、そこで保存されてるデータを見れば分かるんじゃないですか
0866nobodyさん
2011/09/22(木) 15:18:48.13ID:???恐らくauで問題が出てるんだろうが
PHPに関係ないから他の板で聞いて
http://www.au.kddi.com/ezfactory/tec/spec/3.html
0867nobodyさん
2011/09/22(木) 17:17:56.46ID:GYZEFe+Rこういう風に複数個指定したいのですが↑これではエラーになります。
どういう風に記述したら良いんでしょうか?
0868nobodyさん
2011/09/22(木) 17:31:32.29ID:???strstr($_SERVER['HTTP_USER_AGENT'],"Android") ||
strstr($_SERVER['HTTP_USER_AGENT'],"blackberry")){
0869nobodyさん
2011/09/22(木) 18:00:11.60ID:wgnnkyS+ありがとうございます。
あれから色々調べてみましたが、どうもドコモとSBではPC宛のメールで絵文字が使われていた場合、絵文字を「=」に変換してしまうそうで、
完全に絵文字に対応させる事は出来なさそうですので、あきらめました・・・。
絵文字は奥が深いなぁ・・・。
0870nobodyさん
2011/09/22(木) 18:25:42.65ID:???0871nobodyさん
2011/09/22(木) 18:38:32.54ID:GYZEFe+Rやはりそれしかだめですか・・・
ありがとうございました!
0872nobodyさん
2011/09/22(木) 19:08:12.41ID:???0873nobodyさん
2011/09/22(木) 19:19:48.23ID:???・正規表現を使う
・iPhone Android blackberryを配列にいれて、ループでまわす
代替手段としてこういうのがありはするけれど、UA判別ならベタでいいんじゃないかなーと
0874nobodyさん
2011/09/22(木) 22:38:37.73ID:oifAShVU100行以内ぐらいのサンプルスクリプトとか乗ってるお勧めのサイトおしえてください
0875nobodyさん
2011/09/22(木) 23:08:34.61ID:???0876nobodyさん
2011/09/22(木) 23:10:43.08ID:???トチ狂っててスマンカッタ。
カウントするのがメインじゃない事は覚えてたんだが、$i++が印象に残っていたもんでついつい書いちまっただけなんだ。
よくよく思い出すと、データベースのoffset対応が怪しかった時代に、ページネートするソースの一部だった気がする。
オレがPostgresいじりだした時にはすでにoffset対応してたから、石井さんのソースだったじゃなかったかもしれん。
0877nobodyさん
2011/09/23(金) 00:44:14.87ID:Qj3Cu7pD$str=”60*60*24”;
のように、文字列型になってしまったものを、再度、60*60*24 のように数式に変換することは可能でしょうか
具体的には、Queryで渡って来た文字列を数式として実行し、60*60*24 の解を返したいんですが
0878nobodyさん
2011/09/23(金) 00:44:24.57ID:y6S3nqex鬼のように怖い図書室のおばちゃんにどんな言い訳したらいいですか?
0879nobodyさん
2011/09/23(金) 01:29:11.83ID:???どういうバトルが繰り広げられるんだ?
0880nobodyさん
2011/09/23(金) 01:29:46.81ID:???0881nobodyさん
2011/09/23(金) 02:14:10.27ID:/HZvV+Unfunction doFire(){
httpoj = new XMLHttpRequest();
httpoj.open("POST","do.php",true);
httpoj.setRequestHeader("content-type","application/x-www-form-urlencoded");
httpoj.onreadystatechange = function(){
var res="readyState="+httpoj.readyState+" / response="+httpoj.response;
console.log(res);
}
httpoj.send("key=hoge&file=DESKTOPBASENAME");
}
サーバーサイドで
header("Content-Type:text/html;charset=UTF-8");
header("Cache-Control: no-cache, must-revalidate");
if(!$_POST["key"]){print("NG");}else{print("OK");}
print("/".date(DATE_ISO8601));
exit();
と、あります。
クライアント側でdoFire()を十分な時間を開けて(httpoj.readyStateが4になって受信完了したのを確認して)何度か実行しているのですが
OKとNGが全く規則性なく、酷い時は交互に返って来るのですがどうすれば確実に$_POSTを渡せるのでしょうか
ググると"application/x-www-form-urlencoded"のヘッダーを付けるんだよというのが沢山引っかかるのですが、付けても確実に値を渡すことは出来ませんでした
0882nobodyさん
2011/09/23(金) 02:45:20.82ID:???for Linux
<?php
//php で四則演算を解読させるのが面倒臭いので
//計算自体はシェルコマンド(expr)にやらせる。
//但し、exprが解読出来るように整形する必要がある
//
//注:exprは、整数しか処理できない。
$str = "60*60*25";
$pattern = array('#\+#', '#-#', '#\*#', '#/#');
$replace = array(' + ', ' - ', ' \* ', ' / ');
$formatted = preg_replace($pattern, $replace, $str);
$result = exec ('expr ' . $formatted);
echo $result;
?>
Windows の場合はシラネ
0883nobodyさん
2011/09/23(金) 02:47:06.18ID:???http://php.net/manual/ja/function.eval.php
0884nobodyさん
2011/09/23(金) 04:20:43.21ID:???構文解析でやるのが妥当かと
0885nobodyさん
2011/09/23(金) 06:09:58.76ID:???見たところ、シェルにやらせるよりはスマートだと思ったけど。
0886nobodyさん
2011/09/23(金) 08:37:04.75ID:???(評価させる変数が外部から来ている場合、なんやらinjectionとか発生するってーこと)
まぁ、そんなの関係なく「構文解析はロマンだぜ!」という意図なら、オレも同意だがw
0887nobodyさん
2011/09/23(金) 15:05:42.33ID:???ヘキサダンプの文字列をバイナリに変換して、ファイルに保存したいのですが、ヘキサダンプをバイナリに変換する方法
がわかりません。ご存知の方がいましたら教えていただけないでしょうかm(_ _)m
■ このスレッドは過去ログ倉庫に格納されています