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

このエントリーをはてなブックマークに追加
1nobodyさん
質問者はまず>>1を良く読むこと(必須!)
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。

◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 90
http://pc11.2ch.net/test/read.cgi/php/1258187482/

◆質問用テンプレ
【OS名】vine linux
【PHPのバージョン】php5.26
【連携ソフトウェア】mysql
【質問内容】

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

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

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

【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
2nobodyさん:2009/12/08(火) 13:54:07 ID:???
■過去ログ
【PHP】下らねぇ質問はID出して書き込みやがれ 89
http://pc11.2ch.net/test/read.cgi/php/1255263534/
【PHP】下らねぇ質問はID出して書き込みやがれ 88
http://pc11.2ch.net/test/read.cgi/php/1253061577/
【PHP】下らねぇ質問はID出して書き込みやがれ 87
http://pc11.2ch.net/test/read.cgi/php/1251447028/
【PHP】下らねぇ質問はID出して書き込みやがれ 86
http://pc11.2ch.net/test/read.cgi/php/1249042741/
【PHP】下らねぇ質問はID出して書き込みやがれ 85
http://pc11.2ch.net/test/read.cgi/php/1245074032/
【PHP】下らねぇ質問はID出して書き込みやがれ 84
http://pc11.2ch.net/test/read.cgi/php/1240835951/
【PHP】下らねぇ質問はID出して書き込みやがれ 83
http://pc11.2ch.net/test/read.cgi/php/1238958898/
【PHP】下らねぇ質問はID出して書き込みやがれ 82
http://pc11.2ch.net/test/read.cgi/php/1236532468/
【PHP】下らねぇ質問はID出して書き込みやがれ 81
http://pc11.2ch.net/test/read.cgi/php/1234958956/
【PHP】下らねぇ質問はID出して書き込みやがれ 80
http://pc11.2ch.net/test/read.cgi/php/1233479457/
【PHP】下らねぇ質問はID出して書き込みやがれ 79
http://pc11.2ch.net/test/read.cgi/php/1231850905/
3nobodyさん:2009/12/08(火) 13:54:48 ID:???
関連リンク
■本家マニュアル   http://www.php.net/manual/ja/
■日本PHPユーザ会 http://www.php.gr.jp/
■PEARマニュアル  http://pear.php.net/manual/ja/
■メーリングリスト   http://ns1.php.gr.jp/mailman/listinfo/
■ZFマニュアル    http://framework.zend.com/manual/ja/
■Smartyマニュアル  http://www.smarty.net/manual/ja/

(以下英語)
■Zend本家      http://www.zend.com/
■Zend Framework  http://framework.zend.com/
■php | architect   http://www.phparch.com/
■Smarty       http://www.smarty.net
■Smartyマニュアル http://smarty.php.net/manual/en/
■PECL本家(英語) http://pecl.php.net/
4nobodyさん:2009/12/08(火) 13:55:28 ID:???
【簡易FAQ】
1.文字コードは何を使えばいいの?
 →1.UTF-8 2.EUC-JP のどちらか。迷うようなやつはShift_JISは使っちゃダメ。
2. このスレに書き込むときに自分のサイト名を晒したくない
 → http://example.com/が例文などのために予約されている。hogehoge.comは使っちゃダメ。
3. ブラウザに何も表示されないんだけど・・・
 → Apacheの設定を見直せ。ファイルの拡張子は何にしてて、その拡張子でPHPを呼ぶようになっているか?
4. 記号の意味がわからないけどググりようがない
 → 「@」 エラー表示を抑制、「->」 オブジェクトのメンバにアクセス、「::」 静的なメソッド呼び出し、
  「==」は暗黙の型変換をしてゆるい比較、「===」は型情報も含めた厳密な比較
5. echo "$arr['hoge']['fuga']"; と書いたらエラーになった
 → {おっぱい括弧}でくくって"{$arr['hoge']['fuga']}"にする
6. 一定時間ごとに自動的に何かしたいんだけど
 → cronかタスクスケジューラを使え。
7.extractって危険なの?
 →変数上書き&初期化忘れなどで危険。楽だからという理由だけで安易に使わない。
8. include/requireに「〜.php?a=b&c=d」のようなパラメータをつけたい
 → URL呼び出しなら可能だけど、普通のファイル呼び出しではできません
9.include/requireでURLを指定しても何も起きない
 → .phpの拡張子のファイルをURLで呼び出すと、1度PHPプログラムとして実行された結果になる。
5nobodyさん:2009/12/08(火) 13:56:11 ID:???
10. そもそもインストールの時点でうまくいかない
 → 確認すべきはPHPのconfigureの引数、php.iniの内容と置き場所、
  Webサーバの設定(Apacheならhttpd.conf)、起動&再起動あたり
11. SQLの質問はどこで?
 → データベース板に誘導されるのが嫌ならPHPにうまく関連させて質問する
12. 文字列のなかに、英字のみとか数字のみとか記号が入っちゃいやんとかはどうしたらいいの?
 → ctype_〜()が手軽。複雑なパターンはpreg_〜()あたりで正規表現を使う。
13. $a1, $a2, $a3 ... のような変数名をうまく扱いたい
 → 可変変数で実現できるけど、むしろ配列を使って$a[1], $a[2], $a[3]等とするのがベター
14. echoとprintってどう違うの?
 → よく議論される話題であるが基本的に両者とも同じ。 以下ちょっとした議論。
  http://www.faqts.com/knowledge_base/view.phtml/aid/1/fid/40
15. クッキーの情報をユーザから隠したい
 → セッション使え。ただしクッキーとセッションは仕組みが違うから同じように扱うな
16. strip_tags()で削除しないタグを複数指定したい
 → strip_tags($html, '<a><p><font>'); // htmlspecialchars()も検討すべし
17. CSVやTSVのファイルをスマートに扱いたい
 → まずはfgetcsv()。ただし日本語を含むと正常に動作しない場合があるので注意だ。
18. 値渡しと参照渡し(「&」を使う)のパフォーマンスの違い
 → C言語じゃないので、パフォーマンス目的で使いわけたらダメ。参照渡しにすると逆に遅くなったりする
  参照渡しは引数に戻り値を設定したり引数を関数内で変更するなど、正しい目的に使うこと
19. ファイル入出力関数(fopen等)でリモートファイル(http://〜とか)を扱う際の限界
 → fsockopen()でソケット通信 or PEARのHTTP系 or CURLで解決
  必要ならHTTPをはじめとする各種プロトコル(どんなデータを送受信するか)はRFCなどで調べる
20. PHPからPOSTリクエストしたい
 →19.を参照
21. 画像処理一般 or GDの限界
 → ImageMagick(PECLのやつ or シェルから実行)
22. 画像・音・動画はファイルで保存?DBに保存?
 → 好きにしてください
6nobodyさん:2009/12/08(火) 14:32:10 ID:???
>>1-5乙これはお疲れ様って意味とかなんとか
7nobodyさん:2009/12/08(火) 16:22:42 ID:???
>>1
}はおっぱい括弧ってよぶのか
いいこと知った
8Neet:2009/12/08(火) 16:45:50 ID:bw06sTbP
Webプログラマとして就職活動を始めている26歳男です。
独学で勉強して実際に面接に挑む予定です。

もしここにいる人で、仕事でプログラム書いている方
あなたが面接官だった場合どのようなことで採用の判断決めますか?
9nobodyさん:2009/12/08(火) 17:23:21 ID:???
スレチな上にアホなこと質問してるやつが同い年とは思いたくないわw
10nobodyさん:2009/12/08(火) 17:26:52 ID:???
26歳の取るんだったら、実績見たいとこだなあ。どんなサイトつくったことある?と。
11sage:2009/12/08(火) 17:40:40 ID:+lXW3oI0
質問させてください。
PHP 5.2.9のレンタルサーバなのですが、
$context = stream_context_create(
 array(
  'http'=>array(
   'method'=>'POST',
   'header'=>"X-Server-Address: ".$_SERVER['SERVER_ADDR']."\r\n".
   "User-Agent: Mozilla/4.0\r\n"
  )
 )
);

上記のcontext設定でfile_get_contentsをしたときに、
methodは書き換わるのですが、headerの内容が書き換わりません。
headerの設定を適当に
"Accept-language: en"
などに変えてみても、反映されないのですが、
headerの書き換えが禁止されるようなphp.iniの設定など
あるのでしょうか?
methodは書き換わっているだけに、不可思議なんです。
よろしくお願いします。
1211:2009/12/08(火) 17:42:54 ID:???
sageミスしました。
申し訳ない
13nobodyさん:2009/12/08(火) 18:07:51 ID:???
PHP 5.2.6, Apache/2.2.9 @ debian lenny
で質問です。パッケージでインストールしてます。

<?php echo SQLITE_BOTH; ?>をcliで実行すると3が返ってくるのですが、
ブラウザで開くと SQLITE_BOTH という文字が返ってきます。
モジュールの場合なぜか未定義となってしまうようなのです。

<?php phpinfo(); ?> をブラウザで見ると SQLiteがちゃんと存在します。
$ php -i したときの結果と比べても同じ内容です。

このような違いはなぜ起こるのでしょうか?
どのようにしたら SQLITE_BOTH を定義済みとして参照できるでしょうか?

よろしくお願いします。
1413:2009/12/08(火) 18:18:21 ID:???
mbstring や oci8 の定数も同様に比べてみたところ、これらは
cliでもモジュールでも定数として見えました。

SQLiteのモジュールの定数だけがおかしいみたいです。
なんなんだろう。。。
Debian(php5-sqlite)の問題だったらごめんなさい。
15nobodyさん:2009/12/08(火) 18:31:46 ID:GGPotsAy
tortoiseSVNってインストールするとパソコンの動作が結構重くなるのですか?
16nobodyさん:2009/12/08(火) 18:32:21 ID:???
>>12-14
っ スレタイ
17nobodyさん:2009/12/08(火) 18:33:43 ID:???
>>14
他の定数はどうなん?
print_r(get_defined_constants(true));
1813:2009/12/08(火) 18:50:58 ID:ppGwYCe4
>>16
すみません、名前を書けば出ると勘違いしてました。気をつけます。

>>17
こんな関数あるんですね。
preで括ってブラウザに出たものとcliで実行した物を保存して
diffしてみたところ、[pcntl], [ncurses], [SQLite] の3つが
cli にしか存在しませんでした。

あと違いがあった中でこんなのがありましたが、
ブラウザ: [PHP_CONFIG_FILE_SCAN_DIR] => /etc/php5/apache2/conf.d
CLI   : [PHP_CONFIG_FILE_SCAN_DIR] => /etc/php5/cli/conf.d
これはどちらもsymlinkで /etc/php5/conf.d を参照してます。
あとは関係がありそうな差異は見られませんでした。

peclから手でインストールしてみようかと思ったら、あれはもう
メンテナンスされてないんですね。。。
19nobodyさん:2009/12/08(火) 19:20:17 ID:???
>>13
そもそもSQLiteは動くのかな?
定数無くてもさ
2013:2009/12/08(火) 19:32:38 ID:ppGwYCe4
get_defined_functionsも比べてみました。
pcntlとncurses 関係はcliのみ存在しました。
sqlite_* は両方に存在します。
その他、
modのみ: apache_lookup_uri virtual apache_request_headers apache_response_headers apache_setenv apache_getenv apache_note apache_get_version apache_get_modules getallheaders
cliのみ: chroot, pdo_drivers
という違いがありました。 pdo_drivers が気になる。。。

>>19
sqlite_*に未定義の定数を指定したりしなければ動くのです。
rhacoというのを試していたのですが、いっこうにうまく動かず、
やっと見つけた原因が「定数が未定義」というものでして。。。
定数指定してるところをばさっと消すと一応動作しました。
2113:2009/12/08(火) 19:52:42 ID:ppGwYCe4
似たような環境で関数をチェックしてみたところ、
apacheのモジュールでもpdo_drivers関数は存在していました。

実はPDO_OCIを入れようとして、pecl install PDO_OCIしたところ
 pear/PDO_OCI requires PHP extension "pdo" (version >= 1.0)
と言われたので、てっきり古いんだと思い、
pecl install PDO してしまいました。
うまく動かず、元に戻したつもりだったのですが、なにかおかしい
状態になっているのかもしれないです。

たぶん私の環境の問題だと思いますので、質問は取り下げます。
お騒がせして申し訳ありません。
22nobodyさん:2009/12/08(火) 20:14:06 ID:GGPotsAy
MySQLにShift_JISで登録したところ、EUCで保存しているPHPコードを実行すると、
そのデータベース部がブラウザで文字化けしました
解決方法が分からず、とりあえずmb_convert_encoding($row['name'],'EUC-JP','auto')のようにした所ブラウザ上は文字化けは収まりました
しかし、元々htmlspecialchars($row['country'])のようにしていたのですが、上記のやり方だとHTML エンティティに変換するにはどのようにすればいいのか分かりません
どのようにすればいいのでしょうか?
一個一個の個別の変換ならば変数に定義してそれを引数に入れればいいのでしょうが、大量にあるのでどう対処すればいいのか分かりませんでした
23nobodyさん:2009/12/08(火) 20:48:20 ID:???
データベースのデータの文字コードをまず全部変換しちゃえばいいんじゃない?

Shift_JISやEUCを使う理由はあるの?
24nobodyさん:2009/12/08(火) 21:54:43 ID:???
UTF-8つかえよ
25Neet:2009/12/08(火) 21:59:25 ID:bw06sTbP
>>9
すれ違いなのは分かりましたが、あほっていうのはなぜですか?
26nobodyさん:2009/12/08(火) 22:09:44 ID:GGPotsAy
>>23-24
皆さんは、データベース登録時、PHPコードの文字コードはそれぞれ何で保存されているのですか?
UTF-8でしょうか?

あっ、ちなみに自分はLinuxではなく、WindowsXPです
27nobodyさん:2009/12/08(火) 22:11:07 ID:???
>>26
皆が使っているから自分もという安直な発想はやめたほうがいい
28Neet:2009/12/08(火) 22:13:30 ID:bw06sTbP
>>22
PHPのソースコードの文字コードは文字化けの直接原因でなく
header関数,htmlの文字コード指定をShift_JISで出力してあげればいいと

php.iniファイルの文字コード関連の設定を一度確認しないと解決しない
29nobodyさん:2009/12/08(火) 22:15:38 ID:GGPotsAy
>>27
確かにそうですよね
しかし、文字化けが解消しなくて困っています
色々なコードで保存しなおしたり、php.iniなどの設定を見直したり・・・
ですから、参考にでもと思ったもので
DB : Shift_JIS 、 PHP : EUCで何がおかしいのかなと思いまして
30nobodyさん:2009/12/08(火) 22:16:42 ID:GGPotsAy
>>28
>header関数,htmlの文字コード指定をShift_JISで出力してあげればいいと

それはまだ試しておりませんでした
ブラウザの文字コードを変えるような事は行っていましたが
ちょっと試してみます
31Neet:2009/12/08(火) 22:23:25 ID:bw06sTbP
php.iniのdefault_charsetの機能はon/off?
文字コードは何にしています?
32nobodyさん:2009/12/08(火) 22:34:45 ID:GGPotsAy
>>31

めぼしい所の設定を書かせて頂きます

((php.ini))
default_charset = Shift_JIS
mbstring.language = Japanese
mbstring.internal_encoding = EUC-JP
mbstring.http_input = auto
mbstring.http_output = SJIS
mbstring.encoding_translation = On
mbstring.detect_order = auto
mbstring.substitute_character = auto;
mbstring.script_encoding = EUC-JP

((MySQL))
[mysql]
default-character-set=sjis
[mysqld]
default-character-set=sjis
skip-character-set-client-handshake

となっております
33nobodyさん:2009/12/08(火) 22:41:08 ID:???
>>26
Shift-JISは何かと問題が多いって聞いたから、最初からUTF-8を使ってる。
3432:2009/12/08(火) 22:42:32 ID:GGPotsAy
追記させていただきますが、コマンドプロンプトにて
mysql> SHOW VARIABLES LIKE 'char%';
を行ったところ、


| character_set_client | sjis
| character_set_connection | sjis
| character_set_database | sjis
| character_det_filesystem | binary
| character_set_results | sjis
| character_set_server | sjis
| character_set_system | utf8

等となっております


>>33
そうなのですか・・・
自分もちょっとUTF-8の方を試してみようかと思います
結構この文字化け問題、色んな所でぶつかっていて・・・
35Neet:2009/12/08(火) 22:46:11 ID:bw06sTbP
default_charset = Shift_JIS は自動でheader関数を実行してくれる機能。
つまりブラウザーに出力するさいにShift_JIS指定してくれとお願いしている。

htmlタグに<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
と記入するのもブラウザーに出力する際にShift_JISでお願いしている。

これで直らない?

Mysqlにデータを登録する際にフォームの文字コードは?

36nobodyさん:2009/12/08(火) 23:06:16 ID:GGPotsAy
>>35
今回はフォームからMySQLに登録したのではなく、コマンドプロンプトから読み込んでデータベースに登録しました

mb_internal_encoding("Shift_JIS"); を書き加えたらデータベースからの出力内容はちゃんと日本語で出ましたが、今度はその他の<table>要素とかの文字が文字化けしてしまいました・・・


>htmlタグに<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">

一応やってみましたが残念ながら改善致しませんでした
37Neet:2009/12/08(火) 23:17:34 ID:bw06sTbP
データベースから取得して出力しているファイル見せてもらえませんか?
38nobodyさん:2009/12/08(火) 23:21:23 ID:???
headerいじっても内部コードが違うなら意味ない
内部コードがどうなってるか調べてみ
39nobodyさん:2009/12/08(火) 23:26:03 ID:GGPotsAy
>>37
例えばなのですが、
<?php
require_once("DB.php");
$dsn="mysqli://pearusr:pearpass@localhost/pear";
$db=DB::connect($dsn);
$rs=$db->limitQuery("SELECT * FROM composer ORDER BY birth ASC",2,3);
?>

<table border="1">
<tr>
<th>名前</th><th>出身国</th><th>誕生日</th>
<th>享年</th><th>代表作</th>
</tr>
<?php while($row=$rs->fetchRow(DB_FETCHMODE_ASSOC)){ ?>
<tr>
<td><?php print(htmlspecialchars($row['name'])); ?></td>
<td><?php print(htmlspecialchars($row['country'])); ?></td>
<td><?php print($row['birth']); ?></td>
<td><?php print($row['old']); ?>歳</td>
<td><?php print(htmlspecialchars($row['work'])); ?></td>
</tr>
<?php } ?>
</table>

です
40Neet:2009/12/08(火) 23:34:05 ID:bw06sTbP
あ、ごめん
shift_jisでphpファイルを保存するとどうなりますか?
41nobodyさん:2009/12/08(火) 23:38:51 ID:???
>>39
metaタグはどこ行った
42nobodyさん:2009/12/08(火) 23:42:48 ID:???
htmlspecialchars(mb_convert_encoding($row['name'], "EUC", "SJIS"))
43nobodyさん:2009/12/08(火) 23:44:10 ID:GGPotsAy
>>40
テーブル上の全ての文字、名前とかも文字化けします
データベースからの文字は変換されるのかと思っていたら、それすらも文字化けしてしまいます

>>41
すみません
一応自分でも<table>の上に、<html><meta〜><body>など書いてタグを閉じてみたのですが、元々がこのコードでしてそれを出しました

44nobodyさん:2009/12/08(火) 23:48:31 ID:GGPotsAy
>>42
自分でも、htmlspecialchars(mb_convert_encoding($row['name'], "EUC-JP", "auto"))
としたら上手くいったのですが、mb_convert_encoding()を全てに書かなきゃいけませんでした
もう結構な日数、設定を見直そうと色々とやったり検索してみたのですが、迷宮に迷い込んでしまいました
45nobodyさん:2009/12/08(火) 23:53:02 ID:???
>mb_convert_encoding()を全てに書かなきゃいけませんでした
htmlspecialcharsも全部に書いてるじゃないか
ていうかそういうもんだし・・・
いやなら$row全部にかければいいんじゃね
46nobodyさん:2009/12/08(火) 23:58:35 ID:???
迷宮に迷い込むぐらいならDB側もPHP側も全てUTF-8にしとけ
というのがこのスレのスタンス
たまに出るが>>4の1のEUC-JPはそろそろはずしたほうがいいと思う
47nobodyさん:2009/12/09(水) 06:25:37 ID:AEdsXhEH
PHP 6 では safe_mode が廃止されるようですが、
では共用サーバにおいて各ユーザが自分に割り当てられた
ディレクトリ以下にしか読み書きできないようにするには
どうすればいいのでしょうか? apache + mod_php です。
48nobodyさん:2009/12/09(水) 06:35:27 ID:LJm/OnIu
正規表現でfilename_150x100.jpgのようなファイル名の時に
filename.jpgでもfilename_150x100.jpgでもマッチさせたいんですがうまくいきません。

preg_match('/^([0-9a-z]+)_([¥d+]{2,3})x([¥d+]{2,3})¥.(jpg|gif|png)$/', $file, $ret)

↑まではなんとか辿りつきましたがこれだと_150x100がないとマッチしてくれなくて困っています。
多分初歩的なことだと思いますが、どなたかここから先を教えてください。

49nobodyさん:2009/12/09(水) 07:34:34 ID:???
^abc(|[12])$ は abc, abc1, abc2 とマッチするよ。
50nobodyさん:2009/12/09(水) 07:42:02 ID:???
<?php
while($row=$rs->fetchRow(DB_FETCHMODE_ASSOC)){
  foreach ( $row as $eachvar=>$eachval){
$row[$eachvar] = htmlspecialchars(mb_convert_encoding($reachval, "EUC", "SJIS"));
}
?>
<tr>
<td><?php print($row['name']); ?></td>
51nobodyさん:2009/12/09(水) 08:57:19 ID:???
>>47
ログインはさめばいいよ
ダイレクトにアクセスしてもはじけばいいだけ
5232:2009/12/09(水) 09:36:23 ID:anat6YPp
昨夜は色々とありがとうございました
結局問題が解決しなかったので、ご指摘の通りphp.iniもmy.cnfもUTF-8に統一しました
テキストエディタの初期文字コード、保存文字コード共にUTF-8に、ブラウザも自動判別(+UTF-8)にしたところ何とか文字化けは起こらなくなりました
これで文字化け問題は解決したのか分かりませんが、一応このままやってみようと思います
ありがとうございました
53nobodyさん:2009/12/09(水) 11:29:07 ID:???
その程度の知識じゃUTF−8特有の問題にそのうち陥るw
54nobodyさん:2009/12/09(水) 11:44:36 ID:zpeYVRKK
以下の処理をするとファイルの一番上の行で処理が終わってしまうのですが、
複数行読み込ませて「<>」の左の要素と「$_POST['button']」が一致した時ループを終了して$dataに代入するにはどのようにすればいいでしょうか?

if($_POST['button'] === 'NOT') $_POST['button'] = '';
$fhy = fopen("data.cgi","r");
@flock($fhy,"2");
while(!feof($fhy)) {
$fline = fgets($fhy);
$textline = explode('<>',$fline);
if($_POST['button'] === $textline[0]) {
$flag = 1;
breack;
}
}
if($flag == 1) $data = $textline[1];
55nobodyさん:2009/12/09(水) 11:48:35 ID:zpeYVRKK
すみません、$dataに代入するのは「<>」の右の要素です。
要素は二つのみです。
56nobodyさん:2009/12/09(水) 12:00:08 ID:???
>>54
$_POST['button'] = '';
んん?

if($_POST['button'] === $textline[1]) {
$data = $textline[1];
break;
}

でいいのでは?
57nobodyさん:2009/12/09(水) 12:02:44 ID:mJCDNQBS
【OS名】Winxp SP2
【PHPのバージョン】php5.045
【連携ソフトウェア】-
【質問内容】
コードを記述します。


<html>
<head><title>Hello</title></head>
<body>

<?php
$now = gettimeofday();
$weekday = array( "日", "月", "火", "水", "木", "金", "土" );
echo date('Y/m/d') .' '. '(' . $weekday[date("w")].')'.' ' . strftime('%H:%M:%S',time()) . '.<font size="2">'.$now['usec'];
?>

</body>
</html>


上記に於いて、タイミングによってマイクロ秒の部分の桁数が4桁とか3桁とかに
変わってしまうんですが、これを常に6桁に固定させることは可能でしょうか?
よろしくお願いします。
58nobodyさん:2009/12/09(水) 12:03:05 ID:zpeYVRKK
お、ありがとうです。試してみます
59nobodyさん:2009/12/09(水) 12:05:49 ID:???
>>57
sprintfとか使って0埋めすれば?
60nobodyさん:2009/12/09(水) 12:11:43 ID:zpeYVRKK
>>56さん
マジでありがとうございました!
61nobodyさん:2009/12/09(水) 12:59:57 ID:mJCDNQBS
>>59
やてみたんですがどうもうまくいきません…
大変お手数ですがコードを記述していただけないでしょうか?
62nobodyさん:2009/12/09(水) 13:02:04 ID:???
安易に答えを求めるな 試行錯誤しろ
63nobodyさん:2009/12/09(水) 13:04:53 ID:???
>>61
わかんなかった?マニュアルに書いてるから出来ると思ったが
$now['usec']を
sprintf("%06d", $now['usec'])
64nobodyさん:2009/12/09(水) 14:56:51 ID:???
PHPって簡単とかちまたで言われているが(まぁ記述に関しては特別難しいとは思わないけれど)、PHP、SQL、PEAR、Smarty、ZendFramework、データベースとの連携とかやると結構大変だなぁ
参考書だけでいいってのならば数ヶ月でいいだろうけれど、ちゃんと本家に行ってマニュアル読んでってなるとめっちゃ大変だった
設定などにもかなりてこずったし、学習量は少ないとは思えなかった

コレで大変ならばJavaとかCとかもっと大変なんだろうな・・・

65nobodyさん:2009/12/09(水) 15:02:28 ID:mJCDNQBS
>>63
すいません、まだ勉強し始めなものでして。精進します
>>62
うまくいきました!ありがとうございました!
66nobodyさん:2009/12/09(水) 16:04:19 ID:???
>>64
データベースはPHPに限ったことじゃないし、PEAR、Smarty、ZFはあくまでもツールだから
使わない方法もある。全部PHPで作れるし
67nobodyさん:2009/12/09(水) 16:27:18 ID:???
>>66
PHPだけで全てまかなえる実力のある人間はそう多くないと思うな
確かに一人で作れば別にいらないけれど、グループで作るときなんかは・・・
68nobodyさん:2009/12/09(水) 18:29:40 ID:???
>>48
[A-Za-z0-9]+(_[0-9]+x[0-9]+)*\.(jpg|png)
69nobodyさん:2009/12/09(水) 18:42:13 ID:wpJ/zGII
ども Smartyを使っていないかたはデザインはどうしてるんでしょうか?
includeでも使ってページを構成してるんですか?
教えてください
70nobodyさん:2009/12/09(水) 18:43:37 ID:???
smarty以外にもテンプレートエンジンはあるけどそれも含めないの?
71nobodyさん:2009/12/09(水) 20:00:28 ID:???
>>69
これとか。
http://q.hatena.ne.jp/1202225691

フレームワーク使っているなら、ヘルパーで簡潔に記述できるようになっているので
ビューの部分にわざわざテンプレートを使う事が無くなってきた。
72taigo ◆RpNs8sZ5pNfE :2009/12/09(水) 21:29:11 ID:zqrOwFPJ BE:771196537-2BP(2)
html中にphpファイルをincludeしてるんですが
ブラウザでみるとそのスクリプト直前に一行改行が入ってしまいます。
phpファイルでは、いろいろ定義したりしていますが
html形成部分(echo "<div>〜</div>")中では<br>や\nなどの
改行指定はしていません。
考えられる原因はなんでしょうか。
73nobodyさん:2009/12/09(水) 21:36:23 ID:???
先頭部分を抜粋して書いたほうが回答がつきやすいよ
74taigo ◆RpNs8sZ5pNfE :2009/12/09(水) 21:55:20 ID:zqrOwFPJ BE:440683834-2BP(2)
>>73
アドバイスサンクス

このページのスクリプト(サンプル1)を改造して使ってるんですが、
改造前のサンプル動作でも改行が入っていたのでそのまま
載せさせてもらいます。

(スクリプトの説明&ダウンロードページ)
ttp://www.geekpage.jp/web/valuecommerce-api/search-1.php
(動作しているところ:一番上に改行がはいっています)
ttp://www.geekpage.jp/web/valuecommerce-api/sample1/
75taigo ◆RpNs8sZ5pNfE :2009/12/09(水) 22:00:29 ID:??? BE:1028261074-2BP(2)
連投申し訳ない、ちなみに「改行」はhtmlのソースでは確認できません。
ページ上で1行程度隙間ができてしまうことを「改行」といっています。
76nobodyさん:2009/12/09(水) 22:32:56 ID:???
>>74
無駄なものを消してみたけど、下のHTMLだけでも改行が入るみたい。

<html>
<head><title>タイトル</title></head>
<body>
?<table border="1"><tr><td>テスト</td></tr></table>
</body>

テーブルの一行だけにすると改行が消える。
テーブルの仕様なんじゃ・・?


ていうか、リンク先のサンプル酷すぎ。
汚いし、リンクが全部アフィじゃん。
7776:2009/12/09(水) 22:34:12 ID:???
余計な?が入ったので、消してね。
78nobodyさん:2009/12/09(水) 22:34:44 ID:???
スタイルシートの問題では?
79nobodyさん:2009/12/09(水) 23:05:37 ID:???
よけいな?が入ったのがヒントだね。
8076:2009/12/09(水) 23:24:00 ID:???
>>79
あー、そのとおりだわw
81taigo ◆RpNs8sZ5pNfE :2009/12/09(水) 23:26:32 ID:??? BE:587578728-2BP(2)
>>76
提示してもらったhtmlでは私のいう「改行」は入りませんでした。
改行というより上のボックスとの「隙間」という感じです。画像にしたので確認できたらお願いします。
ちなみにhtmlの出力部分はdivに書き換えているので、テーブルは一切使っていません。
出力されたhtmlのソースをコピって手書きで同じように書き直すと改行が
入らなくなりますので、phpで出力された際になにががまぎれてしまうのかと。。。

・すきまができる状態
ttp://www1.axfc.net/uploader/Img/view.pl?dr=2588291470&file=Img_67091.jpg
・すきまができない状態(html手書き)
ttp://www1.axfc.net/uploader/Img/view.pl?dr=9055896527&file=Img_67092.jpg

>>78
手書きしたら隙間ができないうえに、phpからの出力時は
スタイルシートをはずしても改行がはいってしまいます。
82taigo ◆RpNs8sZ5pNfE :2009/12/09(水) 23:28:43 ID:??? BE:734472645-2BP(2)
失礼、うpろだが直接参照できないみたいなので、もう一回張ります。
すきまあり:ttp://www1.axfc.net/uploader/Img/so/67091
すきまなし:ttp://www1.axfc.net/uploader/Img/so/67092
8376:2009/12/09(水) 23:34:50 ID:???
改行の入る部分に、見えない余計な文字が入ってるみたい。

改行部分の前の行の最後の文字( > とか)から
改行文字の後の行の最初の文字まで
選択して削除して、消した文字を手入力してみて。
84nobodyさん:2009/12/09(水) 23:34:59 ID:???
includeするphpファイルの閉じタグの後の空白行では?
85nobodyさん:2009/12/09(水) 23:43:45 ID:???
サンプルが悪いということだ
86taigo ◆RpNs8sZ5pNfE :2009/12/10(木) 00:00:59 ID:??? BE:734472454-2BP(2)
>>83
消してから手書きみましたがやはり隙間は消えませんでした。。
ただ、IE5.5、IE6、IE7でソースをみると
隙間部分に文字化けした「・ソ」という文字が入っているので、
なんらかしら不可視の文字が入っていることは確かなようです。
※firefox、safari、chrome、opera、IE8ではソース上にもなにも表示されません。

>>84
閉じタグ後の空白行も調べましたがありませんでした。念のため周辺前後を
消してから手書きしましたがだめでした。。
87nobodyさん:2009/12/10(木) 00:04:43 ID:???
UTF-8のBOMとか?
88taigo ◆RpNs8sZ5pNfE :2009/12/10(木) 00:09:36 ID:??? BE:587578728-2BP(2)
>>87
まさにBOMでした!!BOMを含めないようにしたらすきまがきえました!
しかしほんとに単純なミスで申し訳ないです。。。
ほかの方も色々とありがとうございます。非常に助かりました!
89nobodyさん:2009/12/10(木) 00:18:38 ID:???
乙乙
9048:2009/12/10(木) 01:03:02 ID:R7rC19iD
>>68

できました!ありがとうございました!
91nobodyさん:2009/12/10(木) 01:41:39 ID:At+7lyq4
【OS名】WinXP SP2
【PHPのバージョン】まだ
【連携ソフトウェア】-
【質問内容】
webページを読み取るプログラムを組もうと思っているのですが、
・このページのメール欄にsageと入っている数をカウントしたい。
・同様にsageと入っているNoを集計したい
こういったときにphpで組むことは可能でしょうか?
また、そういう時は一度cvsに落とすのが良いのでしょうか?
92nobodyさん:2009/12/10(木) 01:44:29 ID:???
可能だよ
9391:2009/12/10(木) 02:05:12 ID:At+7lyq4
回答ありがとうございます。

可能ということは、
1.対象のWebページを指定してソースコードを取得する。
2.ソースコードから"mailto:sage"を探す
こういう流れになるのでしょうか?
その場合、ソースコードを取得する関数が解らないので教えて頂きたいです。
94nobodyさん:2009/12/10(木) 02:23:08 ID:???
>>93
超手抜きな方法
 1.JavaScriptでPHPに対象のウェブページを取ってくるように要求する(クライアントサイド)
 2.file_get_contentsとかでHTMLを取る(プロキシ的な役割)(サーバーサイド)
 3.HTMLをもらったらJavaScriptでパース(クライアントサイド)
 4.DOM使ってリンクをカウント(クライアントサイド)
 
95nobodyさん:2009/12/10(木) 12:55:29 ID:wtg1lapo
chmodみたいなWindows上で動かすとエラー吐き出すけど、
鯖に上げる時は必須になる関数ってどうしてますか?
わざわざコメントにするのも手間ですし、
簡単に対応する方法ってありませんか?
96nobodyさん:2009/12/10(木) 12:56:36 ID:???
if (windows環境かどうか)
97nobodyさん:2009/12/10(木) 13:21:42 ID:???
公式以外で__set __getについて正確に解説してくれているサイトを紹介してくれませんか
よく理解できないのですよ。
98nobodyさん:2009/12/10(木) 13:23:01 ID:iDoAb1SC
おっとあげるんでしたかすみません
99nobodyさん:2009/12/10(木) 13:23:25 ID:???
俺のアフィブログで詳しく解説してもいいけど
100nobodyさん:2009/12/10(木) 13:30:13 ID:???
101nobodyさん:2009/12/10(木) 13:47:04 ID:iDoAb1SC
レスありがとう。

メンバ変数がpublicってどうなの?
直接参照できる時点で意味がないと思います。
102nobodyさん:2009/12/10(木) 13:51:32 ID:???
君にとっては意味が無いのかもしれないが
それを全体の全否定するのはどうか
103nobodyさん:2009/12/10(木) 13:52:19 ID:???
>>94

>>93じゃないんだが↓ってどういうこと?

>1.JavaScriptでPHPに対象のウェブページを取ってくるように要求する(クライアントサイド)
104nobodyさん:2009/12/10(木) 14:26:18 ID:iDoAb1SC
>>102
よくわかっていないためすみません
例えば、__setは値をセットされる前に検証できることが利点だと理解していますが
その対象が直接セットできてしまうのでは意味がないと思ったからです。
105nobodyさん:2009/12/10(木) 14:26:47 ID:???
__set __getなんてPHPルール使わないから放置でおk
106nobodyさん:2009/12/10(木) 14:34:51 ID:???
>>104
ここで愚痴ってないで開発者に直接言えよ、負け犬
107nobodyさん:2009/12/10(木) 15:04:23 ID:iDoAb1SC
どうしたの興奮して
108nobodyさん:2009/12/10(木) 15:11:18 ID:???
>>104
__setで、直接触れないものを変更すればいいよね?
109nobodyさん:2009/12/10(木) 15:43:02 ID:???
定数をconstで定義するPHPにおいてpublicフィールドは不要と思っていい
110nobodyさん:2009/12/10(木) 16:13:01 ID:Dg41VzRp
WindowsXP環境でeAcceleratorを有効にすると遅くなるんだけど原因分かる?
phpのバージョンが5.2.6なので
ttp://blog.tomnekosoft.com/tomnekosoft.php?itemid=2154
ここで拾ってきたんですが、他人がコンパイルしたものじゃ遅くなったりするんでしょうか?
requests per secondが22→15くらいに落ち込みます、切ってみると戻ります
111nobodyさん:2009/12/10(木) 16:19:49 ID:???
CPUやコンパイラにもよるだろうね
112nobodyさん:2009/12/10(木) 17:40:16 ID:???
>>103
XMLHttpRequest
113nobodyさん:2009/12/10(木) 19:48:37 ID:eaFJEUuE
htmlタグをクラスにして引き出そうとしていたのですが
書いてるうちに利点がわからなくなってしまいました。

始めは、
echo $html->_div($id);

echo $html->_input_text($maxlength, $value, $name, $size, $id);
みたいに引き出せるように、さらにタグの属性は固定して、
(固定されているものの)全体的に統一感が出ていました。
しかし、一つでも新たな属性を追加したいと思ったり
htmlクラスを変更しようとしたときに
不便な点がでてきたので属性の部分は
array('id' => 'test', 'size' => 10);
な感じでforeachすることにして、
echo $html->_input('text', array('id' => 'test', 'maxlength' => 3, 'size' => 10, 'value' => 'test', 'name' => 't1'));
という風にすることにしました。

しかしこれって、わざわざ
echo '<input type="text" ・・・・>';
という風に書いていくのと比較してメリットがあるのかどうか、
と・・振り出しに戻った感じになってしまいました
それならhtmlタグをエディタに単語登録しておいた方がいいんじゃないのか、と。

そこで、みなさんはphpでhtmlタグを出力するときどういう風に管理しているのでしょうか。
何か良い方法ありましたらよろしくお願いします。
114nobodyさん:2009/12/10(木) 20:26:19 ID:???
>>113
結論からいうとただhtmlはくだけでは利点がないどころか工数が多くなってデメリットだけだね
普通にhtmlに組み込んでやったほうがいい
<div id="<?php echo $id; ?>"></div>
<input type="text" maxlength="<?php echo $maxlength; ?>"/>
ただこんなプロパティ(変数)はテンプレート(html)によって変わるはずなので(共通のものならそれでいいが)
<div id="hoge"></div>
<input type="text" maxlength="20"/>
直接記述したほうがいいんでない?

実用的なHTMLを吐くクラスを作るのなら
PEARにHTML_QuickFormってのがあるのでそれを参考にしてみるといいかもしれない
115nobodyさん:2009/12/10(木) 23:17:13 ID:jFiArudI
【OS名】CentOS5.4(同じCentOS5.4上のxenで動いてる仮想OS)
【PHPのバージョン】php5.3.1
【連携ソフトウェア】-
【質問内容】--with-gdでインストールしようとすると、configureには通るのにmakeに失敗します。

行った手順(多少順不同)は、
yum install gd
yum install libpng-dev
ln -s /usr/lib/libpng.so.3.10.0 /usr/lib/libpng.so
ln -s /usr/lib/libjpeg.so.62 /usr/lib/libjpeg.so
ln -s /usr/include/xulrunner-sdk-1.9/png/png.h /usr/include/png.h
./configure --enable-mbstring --with-pear --with-mysql --with-gd --enable-zip --with-apxs2=/usr/local/apache2/bin/apxs --with-jpeg-dir=/usr/lib --with-png-dir=/usr/lib

で、configureは通るのにその後makeするとこんなエラーがでてmakeが中断します。

/tmp/php-5.3.1/ext/gd/libgd/gd_png.c:749: error: expected '{' at end of input
make: *** [ext/gd/libgd/gd_png.lo] Error 1

ぐぐってもこれといったヒットなし。
気になる点としては、最初に一度5.3.1を(GD無しで)インストール後、
5.2.1(やっぱりGDなし)にダウングレードしたということぐらい。
このダウングレードのときは、何も考えずに、
configure→make→make installしただけです。

なお、configureオプションで--with-gd --with-jpeg-dir=/usr/lib --with-png-dir=/usr/libを
はずすと問題なくmake終了します。

何か分かる方いらっしゃいましたら情報提供お願いします。
116nobodyさん:2009/12/11(金) 00:06:46 ID:aUDcqNwN
コニチワ

メールを送りたいんですが
テンプレートエンジンとか、
手動でパースエンジン作るとか
そんなことせずに
お気楽にテンプレートしたい!!

と言うわけで、
メールの内容をtext/plainで返すスクリプトを作って、
それをプログラムで読み込んで出力するというスクリプトを作ったのだけど、
ネットを介さないとパースしてくれないので、

$content = file_get_contents("$protocol://$host:$port/$uri/../$filename",
false, stream_context_create($context));

こんなめんどくさいurlを生成して取得しないといけないの。
環境によって動かなくなりそうで怖いんだけど、
もっとシンプルにphpパースを介す方法ってないかな。

知っていたら教えてくださいよろしくお願いします。
117nobodyさん:2009/12/11(金) 05:38:42 ID:L/oJhkAJ
class Foo {
public $value = 42;

public function &hoge1() {
return $this->value;
}

public function hoge2() {
return $this->value;
}
}

$obj = new Foo;

$myValue1 = &$obj->hoge1();
$myValue2 =& $obj->hoge2();

これの違いを教えてください。
どちらとも参照渡しですよね?

また、以下のようにする事はあるのでしょうか?

$myValue3 =& &$obj->hoge1();
118nobodyさん:2009/12/11(金) 10:33:03 ID:???
ha?
119nobodyさん:2009/12/11(金) 11:44:06 ID:???
hoge1の方は参照が返りますが、
下のはバージョンによって異なるようです。

http://php.net/manual/ja/migration51.references.php
120nobodyさん:2009/12/11(金) 17:00:22 ID:L/oJhkAJ
>>119
なるほど、ありがとうございました!!
121nobodyさん:2009/12/11(金) 17:26:24 ID:0lxZHe3q
PHPでImagickを使っていて、
ImagickDrawの文字の間隔や、太さを変更したいのですが、
どのように指定すればよいのでしょうか?

ImagickDraw::setFontStretch 等を試してみたのですが、
変化はありませんでした。

一日悩んでいます;

どうかよろしくお願いします。
122nobodyさん:2009/12/11(金) 17:27:03 ID:XIp2tuTV
参照について自分も質問
結局参照って分かりづらいくせに使う人がおおいのは
パフォーマンス(速度)を求めてるだけですか?
なんか他にメリットがあるのかな?
123nobodyさん:2009/12/11(金) 17:53:02 ID:???
>>121
使ったことないので動くサンプル乗せてくれればマニュアル見ながらいじってみるけど
124nobodyさん:2009/12/11(金) 17:56:40 ID:???
動かないから聞いてるんですが・・・
125nobodyさん:2009/12/11(金) 17:59:36 ID:???
文字の間隔や太さを変更したいのに変化はないと言ったのでは?
一応はできあがってるものかと
ていうか動かないならソースコードのせなよ
126121:2009/12/11(金) 18:03:58 ID:0lxZHe3q
レスありがとうございます。

>>125
>>124 は自分ではないです。

$img = new Imagick;
$img->newImage(500, 500, new ImagickPixel('white'));

$draw = new ImagickDraw;
$draw->setFont($fontPath);
$draw->setFontSize(14);
$draw->setFillColor(new ImagickPixel('black'));

$img->annotateImage($draw, 50, 50, 0, 'テキスト');

$img->setImageFormat('png');

header('Content-type: image/png');

echo $img->getimageblob();

これで、白背景に黒でテキストを描写できます。
ImagickDraw::>setFontSize や >setFillColorでサイズや色を変えることはできました。

よろしくお願いします。
127nobodyさん:2009/12/11(金) 18:15:58 ID:???
>>122
個人的には
a) 関数で関数外の複数の値を書き換えたいとき
b) 関数の実行によって、引数に使った変数の値が勝手に変わってほしいとき
に使ってる。
aのほうは配列を返す方法でもできるけどね。
bのメリットは、戻り値を気にする必要なく、単に関数を使うだけでいいということくらいかな。

別にわかりづらいとは思わないけど、>>119のようなバージョンによる違いを追うのは辛い。
128nobodyさん:2009/12/11(金) 18:59:29 ID:XIp2tuTV
>>127
ありがとう参考になります
使う人によっては便利だけど返ってややこしく感じる人は無理して使う必要はないですよね?
バージョンが変わったら使えなくなるというのも困るし
129nobodyさん:2009/12/11(金) 19:34:33 ID:???
>>126

太文字はstrokewidthとかで無理やり太くするか、使用したいフォントのボールド版を指定するかかな
文字の間隔は-kerningオプションで可能なんだけど、PHPからどうやって指定するのかわからん。まだ対応してないのかも
130121:2009/12/11(金) 20:28:40 ID:HYLtbe9/
>>129

実は、太文字ではなくて、細くしたいんです。
ブラウザ上で、同じフォントを指定してレンタリングしたものに、
なるべく近づけたいんですよね。

いまの状態だと、太すぎるんです・・・

kerningオプションを調べたら、次期バージョンで
Imagickdraw::settextkerningというメソッドが使えるようになるようです。
おそらく、これで指定できるのかもしれません!

それまでは直に叩くしかないのかなぁ;

いろいろいじってて、また分からないことがでてきたんですが、
setFontで指定したフォントファイルが、
ひとつのファイルにプロポーショナルも等幅も含まれている場合、
どのように切り替えればよいのかということなのですが・・・

もしご存知でしたら、よろしくお願いします。
131nobodyさん:2009/12/11(金) 20:45:26 ID:???
Imagick入ってないから試せないがsetFontWeightってのは?
cssでもfont-weight:が太さ関係のプロパティだし太さいじるのはこれなんじゃないだろうか
132nobodyさん:2009/12/11(金) 21:45:26 ID:q1bq5i1Z
$str = "hoge foo bar";
if (preg_match("/hoge/", $str)) {
preg_replace("/hoge/", "test", $str);
}
echo $str;

これで、test foo barという結果を得たかったのですが、
hoge foo barと表示されてしまいます。
どこが違っているのでしょう?
133132:2009/12/11(金) 21:47:28 ID:q1bq5i1Z
すみません、自己解決しました。
preg_replaceのところで変数に入れなおしてなかったですね。
スレ汚し失礼しました。
134nobodyさん:2009/12/11(金) 22:52:14 ID:???
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
135nobodyさん:2009/12/11(金) 23:29:09 ID:???
>>133
進研模試の偏差値でいうと2ちゃんねるのニュース速報がおよそ45、民放地上波の報道ステーションが約40、
ニュース速報+は35程度の読者を想定しています。
136nobodyさん:2009/12/11(金) 23:32:15 ID:???
破壊型じゃないからね
137nobodyさん:2009/12/12(土) 04:28:31 ID:???
【OS名】Linux と FreeBSD 7.1-RELEASE-p8 i386
【PHPのバージョン】php4.4.8 / 4.4.9 / 5.2.5 (左記3種類ならどれでも可です)
【質問内容】RSSで更新のあったニュースを、自動で次々表示したいです。
次々と表示する部分は下記HTML+JavaScriptで動作しているのですが、
URL部分を常に「RSSで更新のあったニュース最新3件」にする部分でつまずいています。アドバイスお願いしますorz
RSSニュース→http://news.goo.ne.jp/rss/topstories/gootop/index.rdf
RSSをPHPで取得→http://php.s3.to/net/

<html><head><title>ニュースチェッカー</title>
<script type="text/javascript"><!--
function click_btn() {
intTime = parseInt(document.getElementById('time' ).value);
intDilay = parseInt(document.getElementById('dilay' ).value)*1000;
intRandom = parseInt(document.getElementById('random').value)*1000;
arrDilay = new Array();
arrDilay[0] = 0;
for (i = 1; i < 10; i++){
arrDilay[i] = arrDilay[i-1] + intDilay + parseInt(Math.random() * intRandom);
}

if(intTime >= 1) {setTimeout("open_window('http://example.com/')", arrDilay[1-1]);}
if(intTime >= 2) {setTimeout("open_window('http://google.com/')", arrDilay[2-1]);}
if(intTime >= 3) {setTimeout("open_window('http://www.bing.com/')", arrDilay[3-1]);}

}
function open_window(strURL) {window.open(strURL, "okiniiri", "toolbar=yes,menuber=no");}
// -->
</script></head><body>
<input id="time" type="text" size="1" value="3" />件を
<input id="dilay" type="text" size="1" value="30" />秒毎に閲覧(+猶予<input id="random" type="text" size="1" value="1" />秒)
<input type="button" value="チェック" onClick="click_btn()" />
</body></html>
138137:2009/12/12(土) 04:29:01 ID:GfYnJRFD
age忘れ
139nobodyさん:2009/12/12(土) 04:46:23 ID:???
それのどこにPHPが関わってくるの?
140nobodyさん:2009/12/12(土) 04:52:02 ID:iG1HMcs+
検索エンジンからの訪問者の検索キーワードを取得したいんですが、簡単に実現できますか?
HTTP_REFERERからキーワードを抜き出せばいいってことは分かるんですが、
自分にはコードを書く実力ありません。
G、Y!、bingの3社だけ抜き出せればおkなんですが。
141nobodyさん:2009/12/12(土) 04:54:32 ID:???
>>139
PHPでURLを入れたいなと思いまして…。
142nobodyさん:2009/12/12(土) 04:56:21 ID:???
>>141
SimpleXMLやDOMやXMLパーサなど使えば簡単にできるかと
143nobodyさん:2009/12/12(土) 04:57:05 ID:???
>>140
簡単に実現できるよ
144137:2009/12/12(土) 05:45:54 ID:GfYnJRFD
>>142
ありがとうございます。
ぐぐって試行錯誤してみます。

最悪でも、エクセルでコードを手動コピペしてHTML保存すれば数十件分でも対応可能だと判明したので
137は解決としてください
145nobodyさん:2009/12/12(土) 09:38:30 ID:???
>>127
下のやつはつまり使うなってやつなのだが。
146nobodyさん:2009/12/12(土) 10:34:39 ID:koZM8oUM
標準関数で指定したファイルの内部エンコードを調べられるような関数はないでしょうか?
その文章のソースをmb_convert_encodingして取り込む側のPHPにあわせたいのですが、
mb_convert_encoding(file_get_contents("取り込むファイル"), "UTF-8", 内部エンコード調査("取り込むファイル"));
みたいなイメージで。
何か最適な関数があったら教えてください。
147nobodyさん:2009/12/12(土) 10:44:04 ID:???
マニュアル読んだのか?
「文字エンコーディングを検出する」で検索しろ
148nobodyさん:2009/12/12(土) 11:01:52 ID:koZM8oUM
>>147
mb_detect_encodingですか?
これは使ってみましたが全部ASCIIが返ってくるので期待してるのとは違うんです
149nobodyさん:2009/12/12(土) 11:06:14 ID:???
どうせautoにでもしてたんだろう
ttp://www.phppro.jp/qa/1901
150nobodyさん:2009/12/12(土) 11:09:15 ID:koZM8oUM
>>149
わからないからautoにするのではないのですか?
autoのところにSJISといれた時点でそのドキュメントはSJISと分かってることになりますよね?
そのSJISがわからないからそれを調べたいのです
151nobodyさん:2009/12/12(土) 11:09:20 ID:???
>>148
どちらにしろファイルは読むんだから
$str = file_get_contents("file");
mb_convert_encoding($str, "UTF-8", mb_detect_encoding($str));
152nobodyさん:2009/12/12(土) 11:15:45 ID:koZM8oUM
>>151
ありがとうございます
動作はせずIllegal character encoding specifiedというエラーが出ました
しかしそのエラーをぐぐったところ解決方法にあたりました
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1013242835
ユーザ関数になりますがこれを使ってみたいと思います
どうもありがとうございました。
153nobodyさん:2009/12/12(土) 11:17:21 ID:???
>>150
autoの挙動を知ってての反論なら別にいいが
154nobodyさん:2009/12/12(土) 11:19:13 ID:???
>>150
ちなみに君が大好きなautoは>>152では使われて無いぞ
もう少しマニュアルを読んで何故autoを使わないのか偉そうに反論する前に勉強したらいいんじゃないのか
155nobodyさん:2009/12/12(土) 11:20:18 ID:koZM8oUM
>>153
一応SJISのドキュメントにたいしてEUC,SJISとEUCを先頭に指定したところEUCが返ってきたので
どのみちリストの先頭にあるのが返ってきてしまう無意味なものだと思ってました
156nobodyさん:2009/12/12(土) 11:21:13 ID:koZM8oUM
>>154
autoは最初つかってません。使っても使わなくても同じものが返ってきました。
157nobodyさん:2009/12/12(土) 11:28:56 ID:t4/Ge8jX
【OS名】Windows Vista Home Premium
【PHPのバージョン】php5.3.1
【質問内容】
http://cvs.php.net/viewvc.cgi/pecl/chasen/ を入れたいのですが
cvsだとpecl.batを使ってもダメなようです。
これを使えるようにするにはどうしたらいいのでしょうか。
158nobodyさん:2009/12/12(土) 11:32:46 ID:???
viewvc使えばいいじゃん
159nobodyさん:2009/12/12(土) 11:43:32 ID:???
>>154
お前が勉強しろよwwww質の低い回答者どもが
160nobodyさん:2009/12/12(土) 11:52:05 ID:???
質問者が逆上して荒らしになってるw
161nobodyさん:2009/12/12(土) 11:55:40 ID:???
文字エンコーディング関連は話が難しいから回答者に多く求めるのはどうかと思うが
わからないなら黙ってるべきだとは思う
162nobodyさん:2009/12/12(土) 12:02:48 ID:???
また>>1も読めない自治厨型荒らしかよ
> (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
> (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
> (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
163nobodyさん:2009/12/12(土) 13:58:15 ID:???
美乳を思い出した。
164nobodyさん:2009/12/12(土) 14:33:49 ID:???
>>146はマニュアルを見たのだろうか
マニュアルに質問内容の内部エンコードを調べる関数が標準で用意されてるけど見てないんだろうな〜
口答えは一人前だから見てないよな
165nobodyさん:2009/12/12(土) 14:43:44 ID:???
だからそれを質問してるのに的確な答えを出せないで煽ることしかできない低レベル回答者は黙ってろよwwwwww
166nobodyさん:2009/12/12(土) 14:47:45 ID:???
そうやって煽って聞き出そうとしてる態度だと一緒に答えてもらえないのがこのスレの鉄則
167nobodyさん:2009/12/12(土) 14:57:00 ID:???
解決に導けなかった低レベル回答者がほえてるだけだろ
2chの回答者はレベルが低いのを露呈しましたね
質問者はOKWaveかやほーへいきましょう^^;;;;
168nobodyさん:2009/12/12(土) 14:57:30 ID:???
>>164 は mb_internal_encoding() あたりと勘違いしてると見た。
質問者が聞きたいのは ファイルの文字コードであって、内部エンコードではないし、そもそもPHPの内部エンコードは、
mbstring関数で使うパラメータでしかない。
169nobodyさん:2009/12/12(土) 15:04:00 ID:???
匿名なんてそんなもんだろ
まぁたまにまともな質問と回答があって
それを参考にするROMも多いだろうからいいスレだとは思う
170nobodyさん:2009/12/12(土) 15:46:23 ID:???
>>168
横レスだけど、質問者であらせられる>>146氏のレスの1行目を、100万回朗読すると良いとおもう。
171nobodyさん:2009/12/12(土) 15:53:30 ID:???
ファイルっていってる時点で文字コードのことなんだなぁっていうのはわかるのでは?
サーバの話してるわけじゃないでしょうに
172nobodyさん:2009/12/12(土) 16:16:07 ID:cJITsyw7
関数宣言の外に宣言した変数を
関数宣言(function)内に渡すにはどのようにすれば良いですか?
173nobodyさん:2009/12/12(土) 16:19:08 ID:???
引数で渡す
174nobodyさん:2009/12/12(土) 16:19:44 ID:???
>>170
wwwwwwwwwww
低レベルですね^^;
175nobodyさん:2009/12/12(土) 16:20:28 ID:???
>>172
global
176nobodyさん:2009/12/12(土) 16:22:28 ID:cJITsyw7
globalだと関数宣言中に記述するしか無いのですが・・・
177nobodyさん:2009/12/12(土) 16:32:59 ID:???
>>176
関数の外のスコープにある変数を関数内で使いたいんじゃないの?

$a = "hoge";
function hoge() {
global $a;
return $a;
}
echo hoge();
178nobodyさん:2009/12/12(土) 16:37:05 ID:???
global使うのがいやなら>>173の言うとおりにしれ
179nobodyさん:2009/12/12(土) 16:40:28 ID:???
1.関数に大して変数を渡す。渡す値が多すぎるとかったるい。
2.globalで取得。システム設計が独特だったりするとglobalで取得出来ない可能性が高い。
3.関数をクラス化して、値渡しなどを工夫する。
4.$GLOBALSを使う。最終手段。$GLOBALSの変数が重複するバグとか絶対に涙目なので、あくまで最終手段
180nobodyさん:2009/12/12(土) 16:42:08 ID:???
俺の得た教訓
1.グローバス変数は使わない
2.グローバル変数を使わざるを得ないロジックはそもそも設計がおかしい
181nobodyさん:2009/12/12(土) 16:44:12 ID:???
グローバルス(笑)
182nobodyさん:2009/12/12(土) 16:46:00 ID:???
ま、方法はいくらでもあるんだし好きにしろと
183nobodyさん:2009/12/12(土) 16:50:57 ID:UXpI7YC+
ありがとうございました
184140:2009/12/12(土) 21:11:42 ID:iG1HMcs+
>>143
できればスクリプトか詳しいサイトをご紹介いただけないでしょうか。
自分で調べた限りだとgoogle(あっても+Yahoo!)のみ対応で、bingに対応したものが
なかったもので。。
よろしくお願いします。
185nobodyさん:2009/12/12(土) 21:14:17 ID:4mjex3cq
先達様方、さっくり質問です。
class内のメンバ変数の有無を調べる関数ってありますか?

$cname = "HOGE";
class_exists($cname)

みたいな(こっちはclassですが)
186nobodyさん:2009/12/12(土) 21:24:35 ID:???
さっくりじゃなくて真面目に質問してください
187nobodyさん:2009/12/12(土) 21:31:36 ID:???
>>184
んなもbingで検索してurl見ればわかることだろ
188nobodyさん:2009/12/12(土) 21:41:08 ID:???
くだらないから質問したんですが…。

冷血さんですね。

もういいです。さよなら。
189nobodyさん:2009/12/12(土) 21:45:54 ID:???
ルールを守れない自分勝手な人ですね。
さよなら。
190nobodyさん:2009/12/12(土) 21:46:53 ID:???
191nobodyさん:2009/12/12(土) 22:00:01 ID:???
PHPを書くときにおすすめのテキストエディタってなんですか?
192nobodyさん:2009/12/12(土) 22:02:19 ID:???
Eclipse
NetBeans
さあ選べ
193nobodyさん:2009/12/12(土) 22:04:27 ID:???
<textarea>
194nobodyさん:2009/12/12(土) 22:09:10 ID:d/+O720A
ノートとペンで書け
195nobodyさん:2009/12/12(土) 22:21:22 ID:???
古よりの言い伝えでは、

  漢はecho一発

だそうだよ。
196nobodyさん:2009/12/12(土) 23:38:34 ID:+z/QEKQm
2chのレス指定にマッチする正規表現を書きたいのですが、
>>2,4,6
のような表現の数値のみにマッチする正規表現として
preg_match(/(\d+)(?:,(\d+))$/, $body, $match)
としました。

しかし、$matchに格納されるのは2と6のみで、4が欠落しています。
どのように修正すればよろしいでしょうか?
197nobodyさん:2009/12/13(日) 00:51:58 ID:???
へー、それで2・4・6にレス指定できる2chブラウザあるんだ
198nobodyさん:2009/12/13(日) 02:11:52 ID:???
>>196
\d*(,\d*)+$ でとって、 , で区切れば?
199nobodyさん:2009/12/13(日) 02:26:55 ID:???
>>196 このレスみたいに必ずレス指定が文字列の最後に来るとは限らないよ
200nobodyさん:2009/12/13(日) 02:48:11 ID:???
>>1-10,15,20-
こんな指定も出来るよ
201nobodyさん:2009/12/13(日) 03:10:23 ID:???
正規表現の質問が多いが、
PHPでの使い方がわからないならともかく
正しい表現がわからないのなら、PHPの質問ではないな。
202nobodyさん:2009/12/13(日) 05:24:36 ID:G260+aAJ
外部のファイルをそのままサーバー側にダウンロードできる関数はありますか?
以下のように書いていると負荷が余計にかかるような気がします
$lines=file("http://○○");
$fp=fopen("○○","w");
flock($fp,2);
for($j=0;$i<count($lines);$j++){
fputs($fp,$lines[$j]);
}
fclose($fp);
203nobodyさん:2009/12/13(日) 05:29:25 ID:???
>>202
リモートの方も同じfopenで開いて読み込みながら書き込んでいく感じ
while (!foef($remote))
{
fputs($fp, fgets($remote, 4096));
}

204nobodyさん:2009/12/13(日) 05:38:20 ID:G260+aAJ
>>203
ありがとうございます
参考にさせてもらいます
205nobodyさん:2009/12/13(日) 06:02:18 ID:???
>>202
普通にcopy()で出来るのよ。
206nobodyさん:2009/12/13(日) 06:56:34 ID:???
この難読化されたPHPをデコードするには何を使えばいいのでしょうか
<?php if(!function_exists('findsysfolder')){function findsysfolder($fld){$fld1=dirname($fld);$fld=$fld1.'/';clearstatcache();
if(!is_dir($fld))return findsysfolder($fld1);else return $fld;}}require_once(findsysfolder(__FILE__).'/ksky.php');
$REXISTHECAT4FBI='FE50E574D754E76AC679F242F450F768FB5DCB77F34DE341
660C280D176E374DE7FB3B090A782B6B68DBC97BEAD93B681C452F25BE26';
g0666f0acdeed38d4cd9084ade1739498(f0666f0acdeed38d4cd9084ade1739498(__FILE__));
$REXISTHEDOG4FBI='FD7886F4 335AF115A53C3B66FE61CBA14C6 224A72ABC69EF2916663278A03
以下省略
207nobodyさん:2009/12/13(日) 09:20:44 ID:jg9ODR2i
日付変わってしまったのでID違うと思いますが>>157です。
>>158でviewvcを使えばいいといわれ調べてみたんですが
バージョン管理がどうとかいうソフトなのでしょうかこれは。

chasenを入れたいのですがこれをどう使えばPHPに導入できるのかわかりません。
すいませんがもう少しヒントもらえないでしょうか。
208nobodyさん:2009/12/13(日) 10:08:25 ID:???
>>206
どこが難読化なんだと小一時間(ry
209nobodyさん:2009/12/13(日) 10:48:02 ID:???
>>196
/\>*?[0-90-9]+/
210nobodyさん:2009/12/13(日) 10:49:59 ID:???
>>207
viewVC 使い方とかでggってから質問したんですよね
211nobodyさん:2009/12/13(日) 11:02:47 ID:???
>>206 うんこ臭いコードだな

>>209 []内にマルチバイト使うのはどうかと
212nobodyさん:2009/12/13(日) 11:04:07 ID:???
>>211
では正解をどうぞ
213nobodyさん:2009/12/13(日) 11:25:10 ID:???
正解て(笑)
214211:2009/12/13(日) 11:35:26 ID:???
文字コードが書いてないから例えばSJISだったら以下のように書けばマルチバイトに対応できる

$body= "foobar>>2,4,28,6hoge";
preg_match('/>((?:\d|\x82[\x4f-\x58])+(?:,(?:\d|\x82[\x4f-\x58])+)*)/', $body, $match);
foreach (explode(',', $match[1]) as $num){
$num= preg_replace('/\x82([\x4f-\x58])/e', 'chr(ord("$1")-0x1F)', $num);
echo $num,"<br>\n";
}
215nobodyさん:2009/12/13(日) 11:57:11 ID:???
utf-8ならマルチバイトで書き込めるけどそれを否定した君の知識を疑いたい
216211:2009/12/13(日) 12:31:34 ID:???
文字コード後出しして知識を疑われてしまったけど、例えば209の書き方だと
「新潟」にもマッチするぞ。utf-8ならu修飾子付けることをお奨めする。
おれの知識はこの程度だ。
217nobodyさん:2009/12/13(日) 12:34:51 ID:???
PHP
218nobodyさん:2009/12/13(日) 12:56:34 ID:???
>>210
しました。
ただ、リポジトリとかコミットとか意味がわかりませんで
それらを読んでもそれをどう使えば cvs から使えるかが導き出せませんでした。
219nobodyさん:2009/12/13(日) 13:04:25 ID:???
おやおや^^ここのページのトップに分かりやすく書いてあるのにおかしいですね^^
ttp://www.google.co.jp/search?q=viewvc&lr=lang_ja&ie=utf-8&oe=utf-8
220nobodyさん:2009/12/13(日) 13:14:42 ID:???
そういえばクラス使うようになってグローバル変数使わなくなったな。
221196:2009/12/13(日) 13:19:08 ID:iFkYaR3P
文字コードは考慮しなくていいです。
>>196の正規表現だと、最初と最後にしかマッチしないというのが問題なんです。

>>2,4
は2と4が抜き出せますが、
>>2,4,6
は2と6で、
>>2,4,6,8
は2と8しか抜き出せません。

どのように修正すればいいでしょうか?
222nobodyさん:2009/12/13(日) 13:25:03 ID:???
preg_match_all
223196:2009/12/13(日) 16:42:49 ID:iFkYaR3P
>>222
全体のマッチは求めていません。
あくまで単数の>>2,4などにマッチすればいいです。
224nobodyさん:2009/12/13(日) 17:03:44 ID:???
preg_matchにこだわるなら以下のようなものは取れませんよね

>>2
>>4-5
>>300
225196:2009/12/13(日) 17:31:01 ID:iFkYaR3P
>>224
バリデーションに使用するだけなので、レスの置き換えは想定していません。
226nobodyさん:2009/12/13(日) 17:47:20 ID:???
/(\d+)(,|-|\d){1,}/
227196:2009/12/13(日) 18:06:05 ID:iFkYaR3P
>>226
だめです。

<?php
preg_match('/(\d+)(,|-|\d+){1,}/', '2,6,18,11', $match);
print_r($match);

Array ( [0] => 2,6,18,11 [1] => 2 [2] => 11 )
228nobodyさん:2009/12/13(日) 18:17:04 ID:???
preg_replace() 使えよ
229nobodyさん:2009/12/13(日) 18:20:12 ID:???
>>277
君も頑固だねpreg_matchじゃダメっていってるのに


preg_match_all('/(>*?-?\d+)/', '2,6,18,11', $match);
print_r($match);
230nobodyさん:2009/12/13(日) 18:22:07 ID:???
ここは正規表現のスレではありません。
移動してください。

正規表現道場
http://pc11.2ch.net/test/read.cgi/php/1168450843/

正規表現 Part6(@ム板)
http://pc12.2ch.net/test/read.cgi/tech/1241537764/
231196:2009/12/13(日) 18:36:47 ID:iFkYaR3P
>>229
できました。ありがとうございます。
ほかの方も、正解はありませんでしたがありがとうございました。

ただ、なぜだめなのかいまいちよくわかりません。
私は限界ですが、がんばればうまくいきそうな気がします。
232196:2009/12/13(日) 18:41:44 ID:iFkYaR3P
>>229
試したら、,2>4みたいな変なものにもマッチしますね。
あくまでもバリデーションなので、
>>2,4などにはマッチしてほしいですが、不正なものははじきたいです。
233nobodyさん:2009/12/13(日) 18:45:59 ID:???
何でもかんでも聞かないで少しは自分で改良する努力しろよ

preg_match_all('/>*?(\d*\-?\d+)/', '2>4,>>6-9,18,11', $match);
print_r($match);
234196:2009/12/13(日) 19:07:59 ID:iFkYaR3P
>>233
改良し、限界と感じたのでお助けを請うているのです。

バリデーションの意味を勘違いされていると思いますが、2>4は弾くべきなのです。
私が求めているものは、>>2,3,4などのあくまでベーシックなレスのみで、ほかには必要ありません。
235nobodyさん:2009/12/13(日) 19:30:27 ID:???
>>234
改良されちゃいましたか
もうあなたはこのスレのレベルを超えているように感じられます
申し訳ございませんが、他を当たって頂けますでしょうか?

こちらもよりご満足頂ける回答ができるよう日々精進して参りたいと思っております
236nobodyさん:2009/12/13(日) 19:50:24 ID:???
>>196
レスにマッチするものとか書いてるくせに
preg_match(/(\d+)(?:,(\d+))$/, $body, $match)
のどこがするのか聞きたい
何で>が入ってないの?適当に書いとけば誰かがやってくれるとおもってるんでしょ
237nobodyさん:2009/12/13(日) 19:54:50 ID:???
preg_match_all('/>+(\d+\-?\d*)/', '2>4,>>6-9,18,11', $match);
238nobodyさん:2009/12/13(日) 20:06:34 ID:???
>>196はお金出して、言う事聞くやつを探す方がいよさげ。
239nobodyさん:2009/12/13(日) 20:15:23 ID:???
>>238
侮辱してるんですか?
市ねよキチガイ
240196:2009/12/13(日) 20:21:24 ID:iFkYaR3P
>>236
>適当に書いとけば誰かがやってくれるとおもってるんでしょ
私が真剣にやったものを適当と判断されるのは勝手ですが、
誰かの助けを借りるスレではないんですか?

ちょっと修正しましたが、やっぱり1と2しか出てきません。
preg_match('/(\d+)(?:,(\d+))+/', '>>1,3,10,2', $match);
241nobodyさん:2009/12/13(日) 20:25:41 ID:???
もどっちゃったw
242nobodyさん:2009/12/13(日) 20:26:09 ID:???
>>240

>>237
243nobodyさん:2009/12/13(日) 20:27:16 ID:???
>>240
ちった学習しろ
>>229
244nobodyさん:2009/12/13(日) 20:27:15 ID:???
真剣にやってるなら頂いたアドバイスを元に丸一日は考えてからここで聞くべきですね
あなたは他力本願なんですよ
245nobodyさん:2009/12/13(日) 20:29:05 ID:???
まるで秀丸のeigodoo1みたいなやつだな
246nobodyさん:2009/12/13(日) 20:31:13 ID:???
OK そこまで

OKwaveだ
247196:2009/12/13(日) 20:31:58 ID:iFkYaR3P
>>243
あなたも学習してください。
>>229では2>4みたいな意味不明なレスにもマッチします。
私のは下らない質問ですが、下らない回答はいいです。
248nobodyさん:2009/12/13(日) 20:32:03 ID:???
yahoo知恵袋でもこういう態度でかい質問者は結構いるぜw
249nobodyさん:2009/12/13(日) 20:32:53 ID:???
>>247
本質がわかってないようだな
たぶん永久に無理
250nobodyさん:2009/12/13(日) 20:33:37 ID:???
>>247

>>237
251nobodyさん:2009/12/13(日) 20:36:02 ID:???
>>247

229 名前:nobodyさん[sage] 投稿日:2009/12/13(日) 18:20:12 ID:???
>>277
君も頑固だねpreg_matchじゃダメっていってるのに

これ試験にでるお
252nobodyさん:2009/12/13(日) 20:36:23 ID:???
>>247
下らない回答ばかりで申し訳ありませんでした
253nobodyさん:2009/12/13(日) 20:36:26 ID:???
でねーよ
254196:2009/12/13(日) 20:37:51 ID:iFkYaR3P
>>250
見逃していました。
私が求めていたのはあくまでも2,4などの簡素なものですが、これで解決しそうです。
唯一の有効な回答をありがとうございました。
255196:2009/12/13(日) 20:39:07 ID:iFkYaR3P
ちなみにpreg_match()で解決できる方は上級プログラマだと判断します。
256nobodyさん:2009/12/13(日) 20:39:12 ID:???
>>254
ご満足頂けたようでなによりです!
また居らしてくださいね!
257nobodyさん:2009/12/13(日) 20:41:29 ID:???
なんでpreg_matchにこだわるんだろう
なにかallって言葉にコンプレックスでもありそうだなw
258237:2009/12/13(日) 20:42:39 ID:???
自分で言うのもなんですが
何でpreg_matchを使わないでpreg_match_allを使ったのかを勉強することをおすすめします
259nobodyさん:2009/12/13(日) 20:42:48 ID:???
底辺くだ質質問者に上級認定されたかたがたおめでとうございます。
260nobodyさん:2009/12/13(日) 20:44:30 ID:???
>>255
仰せの通りであります
我々もいつか上級プログラマになれるよう努力させて頂きます
261196:2009/12/13(日) 20:51:19 ID:iFkYaR3P
>>258
そもそも、私は複雑なレス指定を望んでいないわけですから>>を取り除くと2,4,6となりますよね?
それを2と4と6に分けるくらい、preg_match_all()でなくてもおそらくできるでしょうって訳です。

preg_match_all()の勝手なイメージとしてはたとえば
$body = <<<TEXT
>>2-4
>>4-6
>>6,9
TEXT;
のように本文中に複数現れるケースに使用することが好ましいと考えています。
単純な文字列分解ごときにallつける必要があるの勝手ことです。
262nobodyさん:2009/12/13(日) 20:53:39 ID:???
>>261
そうでしたか
完全に勉強不足です。
本当にすみませんでした
263nobodyさん:2009/12/13(日) 20:59:02 ID:???
そうだよね、関数は名前で機能を勝手に想像して使うものだし。
264237:2009/12/13(日) 21:22:38 ID:???
>>261
例えばなんですが
>>1
2
3
>>4

というように一行目に>>1で二行目はただの数字だけ・・みたいに検索対象の文字列が固定されてあればpreg_matchで可能です


ただ、>>196さんの残したレスを見る限りではそうではないように見えるのでpreg_matchは適さないんです。
>>227でpreg_match('/(\d+)(,|-|\d+){1,}/', '2,6,18,11', $match);と書いてあるのに
>>247で2>4のようなパターンも登場してます

レス指定にマッチするのは「頭に必ず>がきて(>+)、その後に数字(\d+)、その後にハイフンが来るかもしれない(\-?)、ハイフンが着たら番号が来るかもしれない(\d*)」となります

265196:2009/12/13(日) 21:47:42 ID:iFkYaR3P
>>264
私の説明不足です。

既に、レスを抜き出す処理は完成しています。
抜き出した数値を、パラメータとして渡すのですが、そこのバリデーションでの話です。

2>4は>>229のコードでは不完全だということを表すために提示しただけです。
これにはマッチしないでねーってことです。

あくまで欲しているのは>>2,4,9などから数値を抜き出せるコードで、
>>2-5などの指定にマッチする処理は、必要としていません。


分かりやすいように質問を変えますが、
2,4,6から数値を抜き出す表現を教えていただけますか?
数値は2,4,6,8のように増えることもありますし、2,4のように2つのみの場合もあります。
この場合においてもallなのでしょうか?

266nobodyさん:2009/12/13(日) 21:51:17 ID:???
>>265
低級プログラマの回答で恐縮ですが、どう考えてもallです
267nobodyさん:2009/12/13(日) 22:03:27 ID:???
>>265
allになんかうらみでもあるのかな?
268nobodyさん:2009/12/13(日) 22:07:36 ID:???
269237:2009/12/13(日) 22:18:01 ID:???
>>265
preg_matchはマッチしたら処理が終わります
>>196さんが求める処理はpreg_match_allを使って繰り返し検索を行う必要がありのでpreg_matchでは無理です

>>2,4,9という感じで文字列が現れるルール
preg_matchで/>+(\d+),(\d),(\d)/という風に検索対象の文字列に合わせて正規表現パターンを書かないといけないです

でも2,>>4,9という文字列が現れるかもしれませんね
なので/>*(\d+),>*(\d),>*(\d)/という風に正規表現パターンを改良します


ただ、これまでの正規表現パターンでは>>2,3,4,2,>>4と文字列が長くなってくると対応できません
文字列の長さに合わせて正規表現パターンも書き直さないとだめなんですよ
preg_matchは最初にマッチした時点で処理が終了するのでしょうがないんです

なのでこのように文字列の長さが決まって無くてもいいようにマッチしても処理が終了しないようなことがしたいわけです
そこでpreg_match_allがでるんです

preg_match_allを使うことで>>2,3,4の時も>>2,3,4,5,6,>>2の時も対応できます
270nobodyさん:2009/12/13(日) 22:26:04 ID:???
質問するときは1レスでこういう結果にしたい主を書いていただけたら、求めてる回答がもらいやすいと思います

質問することは恥ずかしいこととは思ってないので前向きに頑張ってください



>>2,4,9
の文字列から
正規表現で2,4,9を取得したい
と求める「結果」を最初に書いていただきたかったです

271nobodyさん:2009/12/13(日) 22:35:13 ID:???
そんな質問の仕方じゃあ、/>>(\d),(\d),(\d)/ これで解決する

対象文字列がどういう範囲で変わるかぐらいは書かないと
272196:2009/12/13(日) 22:41:04 ID:iFkYaR3P
>>269
大変分かりやすかったです。
ただ、>>265の通りそのような単純ではないレス指定は想定していませんので、無視してください


最後にこの解説だけをお願いします。
なぜ、18が欠落するのでしょうか?
<?php
preg_match('/^(\d+)(?:,(\d+))+$/', '9,18,11', $match);
print_r($match);
//Array ( [0] => 9,18,11 [1] => 9 [2] => 11 )
273nobodyさん:2009/12/13(日) 22:52:06 ID:???
>>272 それが自力で解決できたら質問者だと判断します。

とかな。
274nobodyさん:2009/12/13(日) 23:12:49 ID:???
>>272
そらそうだ
275nobodyさん:2009/12/13(日) 23:18:21 ID:???
>>272
こちらこそ大変面白かったです
また来てくださいね
276nobodyさん:2009/12/14(月) 01:02:33 ID:???
正規表現ってスレ違いじゃないのか?
277nobodyさん:2009/12/14(月) 01:07:25 ID:???
>>272
^(\d+) が 先頭からだから9
(?:,(\d))$ が 最後にマッチだから  ,11 にマッチだけど、非格納グループなので入らず
(\d++) の部分の 11 がマッチにはいると。
http://www.rider-n.sakura.ne.jp/regexp/regexp.php
ここで、いろいろいじって遊ぶといいよ。
278nobodyさん:2009/12/14(月) 01:25:14 ID:???
>>276 Pの書き方じゃなくて正規表現の書き方がわからないならスレ違い
279nobodyさん:2009/12/14(月) 01:28:18 ID:???
>>こちらこそ大変面白かったです

吹いたわksg
280nobodyさん:2009/12/14(月) 02:14:08 ID:???
これは酷い…ワロス
>>196はpreg_matchを一から勉強して理解しろ
あと単純な区切りを取得したいならmb_splitでも使っておけば?頭悪そう
281nobodyさん:2009/12/14(月) 07:06:50 ID:h0EDfnnM
DOM関数に関する質問です。

<div id="hoge">
<div id="fuga">fugaの内容</div>
hogeの内容
</div>

このようなドキュメントから
hogeの内容の部分だけを取り出したいのですが、

$xpath = new DOMXpath($dom);
$results = $xpath->query(//div[@id="hoge"]);

var_dump($results->item(0)->nodeValue);

とすると、fugaの内容もふくまれてしまいます。
hogeの内容の部分だけを取り出すには、どうしたらよいでしょうか?

よろしくお願いします。
282nobodyさん:2009/12/14(月) 08:20:24 ID:???
>>281
hogeはfugaを内包しているのだから正しい挙動。
「ドキュメント」の構造を見直しましょう。

「ドキュメント」の構造ママ、文字列「hogeの内容」を取り出したいってなら、旬のpreg_matchで。
283nobodyさん:2009/12/14(月) 10:21:08 ID:???
>>277
この解説あってるの?
284nobodyさん:2009/12/14(月) 10:35:21 ID:???
>>280
おまえの方がひどいし、頭悪い。
mb_splitでどうやってバリデートすんだよ
285nobodyさん:2009/12/14(月) 10:42:14 ID:???
うん
286nobodyさん:2009/12/14(月) 12:33:46 ID:???
また低レベル回答者かwwwww
287nobodyさん:2009/12/14(月) 12:45:39 ID:???
>>284

mb_internal_encoding( 'UTF-8');
mb_regex_encoding( 'UTF-8');

function mbStringToArray
( $string
)
{
$stop = mb_strlen( $string);
$result = array();

for( $idx = 0; $idx < $stop; $idx++)
{
$result[] = mb_substr( $string, $idx, 1);
}

return $result;
}
288nobodyさん:2009/12/14(月) 12:51:46 ID:???
>>287
mb_split()だけでできてないんですけどーw
関数作ってまでやることなんですかーw
289nobodyさん:2009/12/14(月) 12:58:14 ID:???
>>288
じゃあコード書いてから反論どうぞ
290nobodyさん:2009/12/14(月) 13:13:41 ID:???
>>289
いや、ぼくちんはmb_split反対派なんでw
mb_splitでバリデーションと分割はできないつってるんですよーw
291nobodyさん:2009/12/14(月) 13:15:30 ID:???
なんか方向がしあさっての方向に向かってきてるぞ。
292nobodyさん:2009/12/14(月) 13:17:21 ID:???
PHPだもの。
293nobodyさん:2009/12/14(月) 13:18:08 ID:Rd8pmwhF
Sun, 06 Dec 2009 10:21:20 +090021
これを
2009/12/6 10:21:20
に置き換える関数みたいなのはあるのでしょうか?
294nobodyさん:2009/12/14(月) 13:21:24 ID:???
dateとstrtotime使えばいんじゃね。
295nobodyさん:2009/12/14(月) 13:23:49 ID:???
最後の21って何だろ?
296nobodyさん:2009/12/14(月) 13:28:24 ID:???
print date("Y/m/d H:i:s", strtotime(" Sun, 06 Dec 2009 10:21:20 +0900" ));
21は無視した。
297nobodyさん:2009/12/14(月) 13:46:37 ID:Rd8pmwhF
ありがとうございます!!
21は間違いコピペでした・・・すいません・・・
298nobodyさん:2009/12/14(月) 14:08:28 ID:???
21をナメんなよてめーら
299nobodyさん:2009/12/14(月) 14:12:44 ID:???
正規表現クン専用の質問だろw
横鳥スンナ〜
300nobodyさん:2009/12/14(月) 16:35:52 ID:???
>>284
うわ、バカがいる

>>287
お前ちょっとそういうのやめてくれない?
まるで俺が書いたみたいじゃないか
301nobodyさん:2009/12/14(月) 16:36:42 ID:EQ57m/rj
GDを使ってGIFアニメをサムネイルさせると、
静止画になってしまいます
これはどうしたら解決するでしょうかヨロシクお願いします<m(__)m>
環境 FEDORA
PHP Version 5.2.10
gd
GD Support enabled
GD Version bundled (2.0.34 compatible)
FreeType Support enabled
FreeType Linkage with freetype
FreeType Version 2.3.7
T1Lib Support enabled
GIF Read Support enabled
GIF Create Support enabled
JPG Support enabled
PNG Support enabled
WBMP Support enabled
XPM Support enabled
XBM Support enabled
302nobodyさん:2009/12/14(月) 18:54:19 ID:???
>>301
検索したのかい?
ttp://www.google.co.jp/search?q=gd+php+gif+%E3%82%A2%E3%83%8B%E3%83%A1&lr=lang_ja&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:ja:official&client=firefox-a
このページのトップに君が探してるものが見当たるようだけど
303nobodyさん:2009/12/14(月) 18:59:58 ID:EQ57m/rj
>>302
GD Version bundled (2.0.34 compatible)なので、
GIF問題はすでに解決しているのではないでしょうか?

なので、何か設定の問題なのかと思い質問させてもらいました。
304nobodyさん:2009/12/14(月) 19:06:34 ID:???
かわりにggったらそこしかみないのかい?
素晴らしい検索エンジンは惜しみなく使いましょう
ttp://idocsq.net/page/162
305nobodyさん:2009/12/14(月) 19:42:10 ID:???
そこも見ましたが、それはなんの言語化分かりませんが、PHPではないんですね
306nobodyさん:2009/12/14(月) 19:59:03 ID:???
そもそもGDがあにめGIFの読み込みに対応して無いような。
もちろん、animeGIFの書き出しのその関数にPHPは対応して無いし。
307nobodyさん:2009/12/14(月) 21:49:24 ID:???
アニメgifにもいくつか保存形式とかがあるわけで
一応GDでアニメGIF(圧縮してない形式)のリサイズだけは出来るみたいだけど
それ以外はほとんど対応してないみたい

一応リサイズは出来るはずなんだけど
308nobodyさん:2009/12/15(火) 10:56:38 ID:k1G/c/jQ
$test = "abc_1";

$testの前3文字が「abc」の時、trueにして一致しない場合はfalseにしたいと思います。
どういう関数を使えばよいのでしょうか?
strpo($test,"abc")==0
としてみたのですが、上手く行きませんでした。
309nobodyさん:2009/12/15(火) 10:58:55 ID:???
strpo
strpo
strpo
strpo
strpo
strpo
strpo
strpo
strpo
strpo
strpo
strpo
strpo
310nobodyさん:2009/12/15(火) 10:58:56 ID:???
strpos( $test ,"abc") === 0
311nobodyさん:2009/12/15(火) 11:06:39 ID:k1G/c/jQ
>>310
出来ました!
=を3つにしなければいけないんですね。ありがとうございます。
312nobodyさん:2009/12/15(火) 12:58:25 ID:???
おはよ★ミ
313nobodyさん:2009/12/15(火) 14:15:17 ID:???
=を3つにする必要はない
314nobodyさん:2009/12/15(火) 14:32:12 ID:???
315nobodyさん:2009/12/15(火) 14:44:56 ID:???
2つだと0文字目でマッチしてfalse扱い
316nobodyさん:2009/12/15(火) 14:51:30 ID:???
>>315
<?php
$mystring = 'abc';
$findme = 'a';
$pos = strpos($mystring, $findme);

// === を使用していることに注目しましょう。単純に == を使ったのでは
// 期待通りに動作しません。なぜなら 'a' が 0 番目 (最初) の文字だからです。
if ($pos === false) {
echo "文字列 '$findme' は、文字列 '$mystring' の中で見つかりませんでした";
} else {
echo "文字列 '$findme' が文字列 '$mystring' の中で見つかりました";
echo " 見つかった位置は $pos です";
}
?>
317nobodyさん:2009/12/15(火) 15:23:32 ID:oEMc2L99
リンク先のPHPコードで複数検索できるようにするには
どこを弄ればいいんでしょうか
よろしくお願いします

http://q.hatena.ne.jp/1161496002
318nobodyさん:2009/12/15(火) 15:25:14 ID:???
>>317
【 スクリプト改造依頼スレ】(丸投げ) part7再々
http://pc11.2ch.net/test/read.cgi/php/1222645553/
319nobodyさん:2009/12/15(火) 16:16:22 ID:HMx+PrJa
両方の配列に入っている文字列を抜き出すにはどうしたらいいですか?

array(1,2,4,5,7)
array(2,5,8,9,10)

→2,5

っていうようなことをやりたいのですが。1個ずつ確認していくしかない?
320nobodyさん:2009/12/15(火) 16:29:32 ID:???
array_diffとかがあったような
321nobodyさん:2009/12/15(火) 16:32:05 ID:???
array_diffは逆
調べたらarray_intersectがあった
322nobodyさん:2009/12/15(火) 16:39:07 ID:HMx+PrJa
>320
>321
天才!ありがと〜
323nobodyさん:2009/12/15(火) 18:21:21 ID:???
・・・
function set_node($parent,$treeNode){
global $db,$stt;
$flag=FALSE;
$rs=$db->execute($stt,$parent);
while($row=$rs->fetchRow(DB_FETCHMODE_ASSOC)){
$flag=TRUE;
$mid="m".$row['mid'];
$$mid=new HTML_TreeNode( // ← ココです
array('text'=>$row['title'],'link'=>$row['link']));
$result=set_node($row['mid'],$$mid);
if($result){
$$mid->setOption("icon","folder.gif");
$$mid->setOption("expandedIcon","folder-expanded.gif");
}
$treeNode->addItem($$mid);
・・・

質問させて下さい
上記の$$mid=new HTML_TreeNode( )のような、$$はいったいどういう事なのでしょうか?
マニュアルやgoogleで単に「$$」で検索しても出てきません
意味と、こういうものの名称を教えて下さい
324nobodyさん:2009/12/15(火) 18:29:43 ID:???
$mid = "hello";
$$mid = "world";
print $hello;
325nobodyさん:2009/12/15(火) 18:31:10 ID:???
検索するなら「可変変数」で見つかると思うよ
326nobodyさん:2009/12/15(火) 19:41:19 ID:???
持ってる本2冊とも可変変数について触れられてない・・。
あまり使うべきじゃないとか?
327nobodyさん:2009/12/15(火) 19:46:04 ID:???
可読性は悪くなるから、使わないで良いなら使わない方が良いと思うよ
328nobodyさん:2009/12/15(火) 19:49:22 ID:???
register_globalsがonだった頃のやつをoffに対応するときに
$items = array("name","tel","address");
foreach ( $items as $eachval ) {
if ( isset( $_POST( $eachval) ) {
$$eachval = $_POST[ $eachval ];
}
}
ってやってごまかしたなぁ。
329nobodyさん:2009/12/15(火) 20:30:50 ID:???
ZendFramework使ってます。
ビューのHTMLをパーツ化してて、ほとんどのコントローラで最終的に呼ばれるものがあります。
例えばページのメニュー表示の部分とか。
この中身が今は完全にべた書きになっていて、これをDBから取得した値に動的にしたいんだけど
これって全部のコントローラのコンストラクタ内にDB取得の処理入れなくちゃいけないものですか?
もしくはそれぞれアクションの中にとか。。
ただ、メニュー表示のHTMLが読み込まれない場合もあるので
コントローラ内で必ず取得しにいくってのも無駄だなぁって思ってます。

これはメニュー表示のHTMLが読み込まれた時だけ、ajaxで取得して書き換えるようにしといたほうがスマートですか?

なんかフレームワーク使ってなければ、必要なページでメニュー表示のPHPを読み込むだけで済むのにって思いました。
フレームワーク使うと、ビュー側でどうされてもいいように、コントローラ側で全対応しとかなきゃいけないのが
無駄が多いなぁと感じるんですが自分がフレームワークをよく理解してないせいでしょうか??
330nobodyさん:2009/12/15(火) 21:08:49 ID:???
俺に自己解決しますたって書いて欲しいのか?
331nobodyさん:2009/12/15(火) 21:13:55 ID:???
>>1嫁で解決ですね
ID出す出さない以前にヌレ違い
332nobodyさん:2009/12/15(火) 23:53:36 ID:???
>>331
日本語でおっけー♪
333nobodyさん:2009/12/16(水) 00:07:08 ID:???
【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ

テンプレどころかスレタイすら読めないやつって馬鹿なの?死ぬの?
334nobodyさん:2009/12/16(水) 00:25:27 ID:KyqIhUTU
POSTで送られたパスワードが正しければ、ファイルを削除、
間違っていれば、ファイル削除失敗!!、というメッセージを出したいのですが、うまくいきません。


<?php
$user_pass = "0000";
if($passwd == $_POST['pass']) {
unlink( "aaa.log");
echo "ファイルを削除しました";
}
elseif($passwd) {
echo "ファイル削除失敗!!";
}
?>
<form method="post" enctype="multipart/form-data" action="1.php" >
削除パス<input type="txt" size="10" name="pass" value="" maxlength="10" class="box" tabindex="2" accesskey="2" />
<input type="submit" value="削除" tabindex="4" accesskey="4" >
<input type="reset" value="Cancel" tabindex="5" accesskey="5" />
</form>

これをどうしたら良いでしょうか?どうぞヨロシクお願いします
335nobodyさん:2009/12/16(水) 00:27:25 ID:???
$passwd = "0000";
336nobodyさん:2009/12/16(水) 00:29:57 ID:???
> elseif($passwd)

これは何?
337nobodyさん:2009/12/16(水) 00:34:35 ID:???
type="txt"
338nobodyさん:2009/12/16(水) 00:49:50 ID:KyqIhUTU
$passwd = "0000";
if($passwd == $_POST['pass']) {
unlink( "aaa.log");
echo "ファイルを削除しました";
}

echo "ファイル削除失敗!!";

これにしたらできました
ありがとうございました
339nobodyさん:2009/12/16(水) 00:51:52 ID:???
elseがないと「ファイルを削除しましたファイル削除失敗!!」って出ちゃうんじゃ?

$passwd = "0000";
if($passwd == $_POST['pass']) {
unlink( "aaa.log");
echo "ファイルを削除しました";
}
else {
echo "ファイル削除失敗!!";
}
340nobodyさん:2009/12/16(水) 00:52:44 ID:H8S7D90g
PHPとDBでタスク管理アプリ作ってみた
参考になればいいけど
http://www.geocities.jp/retort_curry119/TaskManage.htm
341nobodyさん:2009/12/16(水) 01:04:17 ID:???
何を質問したいんですか?
342nobodyさん:2009/12/16(水) 01:26:48 ID:???
>>340
POSTで受け取った値をそのままSESSIONにいれ
さらにSQLのwhere句に使い、mysql_queryで実行してるのはどうなんだ?
mysql_real_escape_stringがコメントになってるあたり
対策しなければという意志はあるようだが・・・
343nobodyさん:2009/12/16(水) 01:28:19 ID:???
利用者のサイト行って脆弱性突くんだろ
344nobodyさん:2009/12/16(水) 01:39:19 ID:KyqIhUTU
>>339
ありがとうございます
完璧です!
345nobodyさん:2009/12/16(水) 01:45:52 ID:???
>>340
・<script>タグにtype属性は必須、language属性は廃止された
・PHPは厳密等価演算子を使うと等価演算子と比べて10倍程度高速に動作するので厳密等価演算子を使うことをお勧めする
・公開するならコメント書け、コードの3分の1程度が目安
346nobodyさん:2009/12/16(水) 01:52:38 ID:???
>>345
頭の悪いツッコミだな
最後のコメント書けには同意だけどな

拡張したら簡易フレームワークになるな
宿題だフレームワークを作りなさい
347nobodyさん:2009/12/16(水) 01:58:13 ID:???
厳密等価演算子ってJavaScriptやActionScriptの用語では?
348nobodyさん:2009/12/16(水) 02:22:27 ID:???
そんなことはない
意味が通じればおk
349nobodyさん:2009/12/16(水) 10:51:08 ID:???
>>340
いかにも練習で作った程度のレベルなんですけどネタっすか?wwww
世の中にも既に晴らしいスクリプトが素晴らしいソフトが出てますよ?w
ttp://opentask.jp/
ttp://alexking.org/projects/tasks-jr
350nobodyさん:2009/12/16(水) 10:57:13 ID:???
>>349
練習で作った程度の物だから別にいいんじゃないの?
ネタだった?
351329:2009/12/16(水) 11:00:30 ID:KzRQDWcs
スレチすいませんでしたm()m
352nobodyさん:2009/12/16(水) 13:54:56 ID:???
家帰ったらタスク管理のやつ見てみるのさ
おもしろそうだし、コードレビューくらいしてみたい
353nobodyさん:2009/12/16(水) 17:55:00 ID:GOmT2CGy
http://viploader.net/dlc/m.cgi
こういう転送量まではじき出してくれるダウンロードカウンターって、
PHPでありますか?Apacheのログを解析してやってる感じではないので、
スクリプトの処理としてやってる感じなんですけど、やり方が分かりません
354nobodyさん:2009/12/16(水) 18:08:48 ID:???
ファイルサイズxダウンロード数じゃないの?
355nobodyさん:2009/12/16(水) 19:54:38 ID:???
ダウンロードした数ってだけならphpに引数渡して各ファイルダウンロードするような処理にして
カウントしときゃいいだけじゃないの。アクセスカウンタの延長でしょ。
356nobodyさん:2009/12/16(水) 20:50:11 ID:???
>>355
そのサイトはPHPに引数渡してないみたいよ?
357nobodyさん:2009/12/16(水) 21:42:21 ID:???
別に引数渡さなくても出来るよ。
mod_rewriteでも使えば、いくらでも調べれる
358nobodyさん:2009/12/16(水) 23:37:42 ID:???
>>356
viploader.net/geino/read.cgi/vlgeino*****
              ↑
359nobodyさん:2009/12/17(木) 00:14:10 ID:DlTo5u8A
質問です
<a href="URL">リンク先</a>
↑こちらのリンクタグを使い
(html)リンクをクリック→(php)セッションをもたせる→ページ移動
という処理はできるのでしょうか?

<INPUT type="submit" name="" value="リンク先">
↑こちらを使えばできるのはわかるのですが、こちらは使いたくない状況なので・・・
お願いします。
360nobodyさん:2009/12/17(木) 00:18:27 ID:???
そのまま同じ方法でできるよ
361nobodyさん:2009/12/17(木) 00:19:31 ID:???
362nobodyさん:2009/12/17(木) 00:39:22 ID:???
>>359
リンクにパラメタ追加して、ページ移動先でセッション処理書けばいいじゃない。
同じページへのリンク+パラメータでセッション開始のチェック+headerでページ移動でもいいけどさ。
363nobodyさん:2009/12/17(木) 01:11:49 ID:DlTo5u8A
>>360-362
回答ありがとうございます。
うまくいかないのでもう一度質問させていただきます。
このような形じゃだめなのでしょうか?
セッションしたいのはリンクのとこにあるvalueです。

<?php
if(isset($_POST[link])){
session_start();
session_register("sesid");
$_SESSION[sesid] = $_POST[link];
header("location: nextpage.php");
}
?>
<HTML>
<?php
print("<a href='nextpage.php' name'link' value='.$id.'>next</a>");
?>
</HTML>
364nobodyさん:2009/12/17(木) 01:19:00 ID:???
<?php
if(isset($_GET["link"])){
session_start();
session_register("sesid");
$_SESSION["link"] = $_GET["link"];
header("location: nextpage.php");
}
?>
<HTML>
<a href="?link=<?php echo $id ?>">next</a>
</HTML>
365nobodyさん:2009/12/17(木) 01:28:04 ID:???
>>363
一応>>364な感じで直したけど、明らかに正解ではない
具体的に何がしたいの?
366nobodyさん:2009/12/17(木) 01:38:51 ID:???
別にGETリクエストでもセッションは継続すると思うが
パラメータとして必要があるのはCookieがoffの時
367nobodyさん:2009/12/17(木) 01:41:31 ID:???
>>363
a要素にvalue属性は存在しない
368nobodyさん:2009/12/17(木) 01:49:49 ID:???
>>361 >>366  それ違う話じゃ?

あと、この分だと、うまくいかないっていうnextpage.phpもダメじゃないかな。
369nobodyさん:2009/12/17(木) 01:53:43 ID:DlTo5u8A
レスありがとうございます。
>>365
言葉でうまくまとまらなかったので、ソースはりつけます

chdir("Company");
$dirh = opendir(".");
while($companyfile = readdir($dirh)){
if(is_file($companyfile)){
$datafile = file($companyfile);
print("<a href='companydata.php?id=".$companyfile.">".$datafile[2]."</a>");
print("<BR>");
}
else{
}
}
closedir($dirh);

>>364のおかげで少し前進した(と思いたい)のですが
print("<a href='companydata.php?id=".$companyfile.">".$datafile[2]."</a>");
がうまく表示されません。どこが間違っているのでしょうか・・・?
370nobodyさん:2009/12/17(木) 01:54:16 ID:???
>>368
じゃどういう話なん?
371nobodyさん:2009/12/17(木) 01:59:42 ID:???
>>369
うまく表示されないってどういうこと?
print("<a href='companydata.php?id=".$companyfile."'>".$datafile[2]."</a>");
372nobodyさん:2009/12/17(木) 02:00:08 ID:???
>>369
> >>364のおかげで少し前進した(と思いたい)のですが
とあるけどそれにセッションがどう関わってくるのか分からん。
結局関係ないの?
> がうまく表示されません。どこが間違っているのでしょうか・・・?
printの中でカンマ区切りの文字列渡しは使えません。
今回はいいけど、どううまく表示されないのか言ってもらわないとこちらも困るので次からお願いします。
373nobodyさん:2009/12/17(木) 02:09:10 ID:DlTo5u8A
>>371

1個目のdatafile[2]
2個目のdatafile[2]
3個目の...

となってほしいのですが、

最後のdatafile[2]

のみしか表示されませんでした。

>>372
言葉足らずでごめんなさい。
目的はセッションすることではなく、nextpageに$companyfileを渡すことです。
なのでリンクにパラメータもたす方法でもおkということです。
374nobodyさん:2009/12/17(木) 03:18:54 ID:???
何そのきもいコード
375nobodyさん:2009/12/17(木) 03:40:32 ID:???
>>373
どこで変数の中身が想定外の値になっているか出力して確認してみればいいと思うよ
376nobodyさん:2009/12/17(木) 10:32:42 ID:n6lHIqwV
質問です
クロスドメインではセッションの維持はできないのでしょうか?
Cookieを使うしかないのでしょうか?
377nobodyさん:2009/12/17(木) 11:08:42 ID:???
普通のセッションはCookie使って実現してると思うけど
378nobodyさん:2009/12/17(木) 11:23:33 ID:???
違うドメインのクッキーは取得できません。
379nobodyさん:2009/12/17(木) 11:26:24 ID:???
とも言い切れません
380nobodyさん:2009/12/17(木) 11:27:04 ID:???
マルチホストなら簡単だし、別のサーバでもセッションID問い合わせたら
存在するかどうか返すとか簡単にできるだろ
その際、セッション変数があれば同時に返せばいいし、もちろん問い合わせ時の暗号的なものが必要なことは言うまでもない
381nobodyさん:2009/12/17(木) 13:58:35 ID:XErTSTUM
PHPファイルがIFRAMEで読み込まれたか、includeで読み込まれたか
判別する方法はあるのでしょうか?

前者の場合、<html>〜</html>の表示が必要ですし、
後者の場合、コンテンツ部分(<img>とか)だけ出力すればいいです。

やはり2パターンを用意するしかないのでしょうか?
382nobodyさん:2009/12/17(木) 14:02:02 ID:???
>>381
もっとPHPを進めていって、いずれ今の質問を見返したとき、
いかに自分がおかしな質問をしてるのかがわかると思う。
なので基礎をもっと勉強してね。
383nobodyさん:2009/12/17(木) 14:09:44 ID:???
>>381
直接アクセスされたのか、includeされたのか判別は一応可能だけど

#html.php
<html>
<?php include("img.php"); ?>
</html>

#img.php
<img src="">

みたいに作っておけばいいんじゃない?
そもそも直接アクセスされるものと、インクルードする物を一緒にしない方がいいよ
384nobodyさん:2009/12/17(木) 14:53:28 ID:???
>>383
やはりその方法しかありませんか。
ファイルの数を減らしたくて対応策を考えていたのですが
無理だと言う事で理解しました。
385376:2009/12/17(木) 15:12:41 ID:???
376です。
session_idを取得して、そのidをCookieに保存し、次のリクエストで
Cookieからidを取り出して、明示的にsession_startしたけど
情報はとれませんでした・・・

やはり無理なんでしょうか?
386nobodyさん:2009/12/17(木) 15:25:08 ID:???
クッキーそのものは取れてたの?
387376:2009/12/17(木) 15:30:40 ID:???
Cookieは取れました
同サーバー内では問題なく動くのを確認しています。
現在単純にログイン成功時にセッション内に入れたデータを
次のリクエストで読もうとしていますが、成功しません。
cakephpとflashを使用しています。
388nobodyさん:2009/12/17(木) 16:31:12 ID:???
同じサイトだと動くのかな。
クッキーにはドメイン情報もあるからそれをもとにセッション弾いてるんじゃ?
スタート前にsession_set_cookie_paramsとかでドメイン合わせてやれば
389nobodyさん:2009/12/17(木) 19:01:13 ID:LUgkaaFg
phpで作ったアプリケーションの設定ってどういう風に保存すればいいんでしょうか?
iniやxmlやjsonやシリアライズしたものなど
結局全て最終的に連想配列なんかに展開したものをPHP内で使うことになると思うんですけど
どのフォーマットを使うのがベターなんでしょうか?
またなんかそういう設定ファイルを作ることに特化したクラスとか用意されてたら教えてください
390nobodyさん:2009/12/17(木) 19:04:56 ID:???
json_encodeでテキストファイルに保存
json_decodeで復元
391nobodyさん:2009/12/17(木) 19:08:04 ID:???
jsonのどの辺がベターなの?
392nobodyさん:2009/12/17(木) 19:23:30 ID:???
構造が簡単で分かりやすく色々な言語で扱える
393nobodyさん:2009/12/17(木) 19:37:35 ID:LUgkaaFg
>>390-392
xmlにしようと思ってましたがどうしても肥大化してしまうので
jsonかシリアライズがいいかなと思っていました
json_encode()とserialize()の速度を比較してたサイトも発見し
jsonのほうが速度的にも有利なようなので設定ファイルにjsonを使うことにします
どうもレスありがとうございました
394nobodyさん:2009/12/17(木) 19:51:43 ID:DlTo5u8A
header("location: url")
で飛ばす時、どのようにすればターゲットフレーム名を指定できるのでしょうか?
調べてみてもみつからなかったのでお願いします。
395nobodyさん:2009/12/17(木) 20:24:08 ID:???
フレーム使ってるってことだよね
それはサーバ側じゃなくて、ブラウザ側の処理
input action=゙submit゙あたりに何とかって属性を追加したはず
複数のフレームが変わったりする場合はjavascriptで可能
396nobodyさん:2009/12/17(木) 21:10:46 ID:Uf/bDX+R
php5.3.1でmime_content_type()を使うには、何か拡張モジュール必要ですか?
Call to undefined functionと言われてしまうのです。
397nobodyさん:2009/12/17(木) 21:16:20 ID:???
>>396
> 警告
> This function has been deprecated as the PECL extension Fileinfo provides
> the same functionality (and more) in a much cleaner way.
http://jp.php.net/manual/ja/function.mime-content-type.php
398nobodyさん:2009/12/17(木) 21:21:59 ID:Uf/bDX+R
>>397
非推奨である旨は了解してます。
使用できなくなった・標準添付ではなくなった等ありますでしょうか?
399396:2009/12/17(木) 21:25:09 ID:Uf/bDX+R
>>397
ああああすいません、良く見たらPHP5.2.1でした…PECL標準添付は5.3.1から…吊ってきます
400nobodyさん:2009/12/17(木) 21:27:01 ID:???
> mime_content_type
> (PHP 4 >= 4.3.0, PHP 5)
http://jp.php.net/manual/ja/function.mime-content-type.php
401396:2009/12/17(木) 21:43:34 ID:Uf/bDX+R
>>400
PHP5.2.1が入ってるのに5.3.1と勘違いしてました。
PHP5.3.1が(間違いなく)入ってる別マシンで試したら追加インストール等なしでしっかり動きました。
早とちり大変失礼しました。
(5.2.1でも追加インストールすれば使えると思いますが)
402nobodyさん:2009/12/17(木) 21:50:09 ID:???
> ginnsu at arcee dot ca
> 09-Mar-2005 06:14
> The function mime_content_type only worked for me on Microsoft Windows after
> I added the directive "mime_magic.debug" to my php.ini with the value of "On".
> The default value appears to be "Off". Exampe:
>
> [mime_magic]
> mime_magic.debug = On
> mime_magic.magicfile = "c:\php\extras\magic.mime"


> Sune Jensen
> 29-Aug-2007 04:16
> For me mime_content_type didn't work in Linux before I added
>
> mime_magic.magicfile = "/usr/share/magic.mime"
>
> to php.ini (remember to find the correct path to mime.magic)


> mami at madagascarsurlenet dot com
> 14-Nov-2007 06:58
> Since I enabled the mime_magic extension on my IIS, I also got the error message
> "invalid magic file, disabled" in my phpinfo. After I add these lines to my php.ini,
> the message disappeared and it works great!
>
> mime_magic.debug = Off
> mime_magic.magicfile ="D:\PHP5\extras\magic.mime"
>
> mime_magic.debug is by default off but without this line it fails. I'm using PHP

http://jp.php.net/manual/ja/function.mime-content-type.php
403394:2009/12/17(木) 22:10:42 ID:DlTo5u8A
>>395
フレーム使っています。
セッションを持ってないなら、TOPページへ〜
みたいな使い方をしたいので、inputは使わないです
javascriptの知識は全くないのですが、その場合方法をかえるしかないのでしょうか?
(フレームを使わない等)
404nobodyさん:2009/12/17(木) 22:17:41 ID:???
>>403
無理やりだけど、PHPでセッションなりをチェックして
飛ばす場合は、親フレームのURLを変更するJavascriptを書き出す
405nobodyさん:2009/12/17(木) 22:51:17 ID:DlTo5u8A
>>404
別の方法で試してみることにします。
わざわざ答えていただきありがとうございます。
406nobodyさん:2009/12/18(金) 18:18:39 ID:7wQwxBqT
foreach($xml->foo[0]->attributes() as $a => $b) {
echo $a,'="',$b,"\"\n";
}

の$a => $bの => って何ですか?
-> (アロー演算子)とは違うのでしょうか?
407406:2009/12/18(金) 18:20:27 ID:7wQwxBqT
ごめんなさい
foreach{}のマニュアルに載ってました
408nobodyさん:2009/12/18(金) 18:22:25 ID:???
>>406
$arr = array();
$arr["key"] = "val";
foreach ($arr as $k => $v)
{
print $k . ": " . $v;
}
409nobodyさん:2009/12/18(金) 23:35:31 ID:DHX9irph
while ($row = mysql_fetch_array($rec)) {

$data[$row['name']][] = $row['box'];
}
foreach($data as $type=>$size)
{
print $type;

foreach($size as $bon)
{
echo '  <a href="test.php?id='.$row['id'].'">'.$bon."</a>";

}

print "<br />\n";
}
tet.phpのidの数字が表示されません。どこがおかしいのですか?
410nobodyさん:2009/12/18(金) 23:50:15 ID:???
nullが入ってるんじゃね?
411nobodyさん:2009/12/19(土) 00:28:45 ID:???
$row['box']に何が入っているのかわからないけど、

$data[$row['name']][] = $row['box'];
→ $data[$row['name']][] = $row;

echo ' <a href="test.php?id='.$row['id'].'">'.$bon."</a>";
→ echo ' <a href="test.php?id='.$bon['id'].'">'.$bon['name']."</a>";

じゃない?
多次元配列で混乱してるんだと思う。
412nobodyさん:2009/12/19(土) 00:41:54 ID:r/vk1BgH
<?php
$start = microtime(true);
$a = array();
for ($i = 0; $i < 10000; $i++) {
$a[] = $i;
}
echo microtime(true) - $start . "<br>";

$start2 = microtime(true);
$b = array();
$j = 0;
while ($j < 10000) {
array_push($b, $j, $j+1, $j+2, $j+3, $j+4);
$j += 5;
}
echo microtime(true) - $start2;
?>

array_pushが遅いとマニュアルに書いてたのでベンチを取ってるつもりです
いくつpushしたらpushのほうが速いのかという比較なのですが
ベンチマークのとり方ってこんな感じでよいのでしょうか?
一応ちゃんと動いてるような気はします
413nobodyさん:2009/12/19(土) 00:57:29 ID:???
>>412
速度の違いをわかる方法なら何でもいいんじゃない?
でも、forならfor、whileならwhileに統一しないと、正しく評価できないよ。
あと、ループの回数はもっと多くしたほうがいい。
414nobodyさん:2009/12/19(土) 01:06:07 ID:???
>>409
何がしたいか知らんが、なんでそんなややこしくする?
415nobodyさん:2009/12/19(土) 01:08:08 ID:???
>>411
返事が遅くなりすいません。なおしていただき感謝です
今からおかしかったところ調べたいと思います。
またこけたらお願いします
416nobodyさん:2009/12/19(土) 10:37:29 ID:???
>>412
PEAR::Benchmark_Timerというのがあるよ
417nobodyさん:2009/12/19(土) 21:02:45 ID:x0H9DwDh
PHPとあまり関係ないかもしれないけど
DBに入っている画像のバイナリを表示させた場合、それを著作権有りの画像として表示させたい。
GD使えばそういう風にできる?
なんか携帯でメールに添付できない画像があるんだけどそういう風にしたい。
ただ既にDBに入っている画像はコピーライト有りになってない。
それともそういう画像は画像編集ソフトとかでコピーライト有りに編集しなきゃいけないのかな?
教えてよ。
418nobodyさん:2009/12/19(土) 21:05:37 ID:???
できるよ
419nobodyさん:2009/12/19(土) 21:14:43 ID:???
PEARって俺らがPHPの関数組み合わせて適当に作ったクラスを第三者も使ってくれみたいなもんだよね?
420nobodyさん:2009/12/19(土) 21:16:33 ID:???
>>1
421nobodyさん:2009/12/19(土) 21:20:38 ID:???
別に質問じゃないし
422nobodyさん:2009/12/19(土) 21:32:16 ID:x0H9DwDh
>>418
そのやり方を教えて。
関数だけ教えてくれればあと自分でできるから。
でもPHPマニュアル見たけど無かったような
423nobodyさん:2009/12/19(土) 21:43:49 ID:???
>>422
君がそう思うんならそうなんだろう、乙
424nobodyさん:2009/12/19(土) 21:45:24 ID:JB1i7e9b
Aptana Studioについて教えて下さい。
Ctrl+Shift+FのFormat機能をカスタマイズすることは可能でしょうか?
エディタの設定でtab幅を2にしてるのにFormatすると全部4になってしまったり、
pタグが勝手に改行されたりと、いまいち使い辛いのです。
425nobodyさん:2009/12/19(土) 21:46:47 ID:???
426nobodyさん:2009/12/19(土) 21:49:49 ID:???
>>422
画像を表示させる時にパーミッションを変更すれば可能
427nobodyさん:2009/12/19(土) 21:56:23 ID:???
>>422
GDにコメント取得はあっても、セットするのがねーな。
ソフトバンクはヘッダつけるだけなので画像データいじらなくてよし。
428nobodyさん:2009/12/19(土) 21:56:44 ID:JB1i7e9b
>>425
うおーこんなのがあったのか。ありがとうございます!
設定したフォーマットをエクスポートして共有できるとかすご過ぎる
429nobodyさん:2009/12/19(土) 21:58:02 ID:???
430nobodyさん:2009/12/19(土) 23:47:26 ID:???
>>427 >>429
ありがと
431nobodyさん:2009/12/19(土) 23:57:46 ID:5CrPM6Aj
function array_delete($key, $array) {
$val = isset($array[$key]) ? $array[$key] : NULL;
unset($array[$key]);
return $val;
}

みたいな関数は標準でありますか。
ようは、配列から値を取り除きつつ、その取り除いた値を取得したいということです。
432nobodyさん:2009/12/20(日) 00:14:51 ID:???
>>431
http://php.net/manual/ja/ref.array.php
無いっぽいね。
というか、配列は参照渡しにしないと、やりたい事が出来ないよ
function array_delete(&$array,$key){ 〜〜
433340:2009/12/20(日) 00:45:15 ID:???
コメント書けとのレスがあったので
気持ち程度にコメント追加しました

あと、代表的な処理のアクティビティ図と、ER図も追加して
jQueryを使って遊んでみたものをうpしてます

SQLインジェクション対策は必須だと思うけどしてませんw
mysql_real_escape_string()を通すとDBに追加、更新ができなかったので
コメントにしてますが原意を調べる時間をとってません
434nobodyさん:2009/12/20(日) 01:39:39 ID:???
>>433
それはありえない
435nobodyさん:2009/12/20(日) 02:28:58 ID:???
>>433
自分でインジェクションしちゃってるんじゃないの?ww
436nobodyさん:2009/12/20(日) 02:37:27 ID:???
セルフインジェクション
437nobodyさん:2009/12/20(日) 03:03:16 ID:???
よくそんなコードを公開できるな
438nobodyさん:2009/12/20(日) 05:59:44 ID:???
よく2chなんかできるな
439nobodyさん:2009/12/20(日) 08:03:07 ID:???
⊂二(^ω^ )二二二⊃ブーン
440nobodyさん:2009/12/20(日) 11:00:40 ID:???
sql文をそっくりエスケープしてるんじゃね?
441nobodyさん:2009/12/20(日) 11:27:53 ID:???
>>431
標準の関数がなくても、下の2行で済むんじゃない?
自作の関数もいらないような・・。

$val = $array[$key];
unset($array[$key]);
442nobodyさん:2009/12/20(日) 12:20:31 ID:Zrftzoad
皆さんはどのようなライブラリ、テンプレート、フレームワーク等を実際に使ってPHPを開発、構築されているのでしょうか?
443nobodyさん:2009/12/20(日) 12:38:18 ID:???
そんなこと聞いてどうするんだ・・・
444nobodyさん:2009/12/20(日) 12:46:07 ID:???
同じにしたら俺も同じように出来るじゃん。
445nobodyさん:2009/12/20(日) 12:54:54 ID:???
おれのライブラリはグーグル先生、他はなにも要らない
446nobodyさん:2009/12/20(日) 12:55:48 ID:???
一時だけな。
447nobodyさん:2009/12/20(日) 12:57:58 ID:???
>>445
それってライブラリ違いじゃ?
448nobodyさん:2009/12/20(日) 13:09:01 ID:???
PHPを究めたことだし、そろそろ仕事探そうかと思ったけどいいこと思いついた

PHP検定を主催してボロ儲けなんてどうだろ
449nobodyさん:2009/12/20(日) 13:10:54 ID:???
ライブラリ→PEAR(拡張型で遅いがライブラリ数が多い)・PECL(組み込み型で速いがライブラリ数が少ない)
テンプレート→Smarty
フレームワーク→CakePHP・ZendFramework

このあたりが日本で主流だと思われる
フレームワークを使う場合テンプレートエンジンは別に必要ではない
ライブラリは環境依存になることが多いのでなるべく使わないようにする(特にPECLはSUでないとインスコできない)
あとは使用するプログラムのライセンス形態を調べること
SmartyはLGPLなので商用では注意が必要(この辺が面倒で自分はテンプレートは自作したものを使ってる)
450nobodyさん:2009/12/20(日) 13:21:26 ID:???
主流と言われてるけど誰も数えたことがない

フレームワーク使おうが使うまいがテンプレートエンジンは別に必要ではない
451nobodyさん:2009/12/20(日) 13:29:39 ID:???
<?php
$body = "%8F%91%82%AB%8D%9E%82%DE&FROM=%66%75%73%69%61%6E%61%73%61%6E&MESSAGE=test&bbs=php&key=1260247989&time=1";
$length = strlen($body);
$head = "POST /test/bbs.cgi HTTP/1.1\r\nHost: pc11.2ch.net\r\nUser-Agent: monazilla/1.00\r\n".
"Referer: http://pc11.2ch.net/test/read.cgi/php/1260247989/l50\r\nContent-Type: application/x-www-form-urlencoded\r\n";
$out = $head."Content-Length: ".$length."\r\n\r\n".$body;
$fp = fsockopen("pc11.2ch.net", 80, $errno, $errstr, 30);
if (!$fp) {echo "$errstr ($errno)<br>\n";exit;}
fwrite($fp, $out);
$cookie = "Cookie: ";
while (!feof($fp)) {
$str = fgets($fp, 128);
if (strpos($str, "Set-Cookie: ") === 0) {
$str = str_replace("Set-Cookie: ", "", $str);
list($cook, ) = explode(";", $str);
$cookie .= $cook."; ";
}
}
fclose($fp);
$cookie .= "NAME=\"\"; MAIL=\"\"; suka=pontan\r\n";
$out = $head.$cookie."Content-Length: ".$length."\r\n\r\n".$body;
$fp = fsockopen("pc11.2ch.net", 80, $errno, $errstr, 30);
if (!$fp) {echo "$errstr ($errno)<br>\n";exit;}
fwrite($fp, $out);
while (!feof($fp)) {
echo fgets($fp, 128);
}
fclose($fp);
?>
452nobodyさん:2009/12/20(日) 13:33:50 ID:???

これ実行してもなぜか書き込めません><
他の人はどうですヵ?;;
453nobodyさん:2009/12/20(日) 13:35:12 ID:HokspEf/
【OS名】WiindowsXP-Pro(SP2) 【PHPのバージョン】PHP5.2.6
【連携ソフトウェア】Apache2.2 【やりたいこと】 mail()を使ってメールの送信

参照したサイト: ttp://www.php.net/manual/ja/function.mail.php ttp://www.php-labo.net/tutorial/php/mail.html

下記コードでメール送信を試みましたが、2個のエラーメッセージが出ました。
$to = '[email protected]';
$subject = 'the subject';
$message = 'hello';
//
$headers .= 'From: Birthday Reminder <[email protected]>' . "\r\n";
$headers .= 'Cc: [email protected]' . "\r\n";

if (mail($to, $subject, $message, $headers)) {
echo "メールが送信されました。";
} else {
echo "メールの送信に失敗しました。";
}

エラーの内容は以下の通りです。
Notice: Undefined variable: headers in C:\〜\MailTest_01.php on line 10
 *** 
 これは $headers .= 'From: Birthday Reminderの箇所でこれを削っても駄目でした。
 
Warning: mail() [function.mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\〜\MailTest_01.php on line 13
メールの送信に失敗しました。
 ***
 Line13は、if (mail($to, $subject, $message, $headers)) { の所です。

どう修正すべきでしょうか? 
やっぱり、本物のサーバーにUpしないと駄目なのでしょうか?
454nobodyさん:2009/12/20(日) 13:37:33 ID:???
まんまメッセージのとおりじゃないか・・・
ローカル環境でメールサーバ構築してテストしれ
455nobodyさん:2009/12/20(日) 13:43:48 ID:???
もしくは自分が使ってるメールクライアントソフトの送信サーバ設定をそのまま書きこむとか
456nobodyさん:2009/12/20(日) 14:58:46 ID:???
【OS名】 debian lenny
【PHPのバージョン】 php 5.2.6
【質問内容】
php.iniでの
zend_extension=xxx.so
のような設定をhttpd.conf内で記述したい場合、どの様にしたら良いのでしょうか。教えて下さい。
457nobodyさん:2009/12/20(日) 15:06:50 ID:???
>>1
458456:2009/12/20(日) 15:26:32 ID:ruVQmLxH
失礼しました。456は私です。
459nobodyさん:2009/12/20(日) 15:38:17 ID:???
460456:2009/12/20(日) 15:55:24 ID:ruVQmLxH
>>459
試したのですが、どうやらロードされていない雰囲気です、、、(phpinfoで確認しました)
先に言っておくべきだったのですが、ロードしたいのはxdebugです
461nobodyさん:2009/12/20(日) 16:12:44 ID:???
具体的にどう設定してinfoはどうだったのか
462453:2009/12/20(日) 16:14:27 ID:???
>>454-455
ありがとうございます。


>>メールサーバ構築してテスト
>>送信サーバ設定をそのまま書きこむ

すいません。全く手法が分からないのでヒントを下さい。
463nobodyさん:2009/12/20(日) 16:15:10 ID:???
そのPCでメールソフト使ってないの?
そこでアカウントの設定で送信サーバとか入れてるだろ?
464nobodyさん:2009/12/20(日) 16:16:12 ID:Fw0pzpEV
echo $k1 . '=' . $v1 . '&' . $k2 . '=' . $v2 . '&' . $k3 . '=' . $v3;
とするのと、
echo sprintf("%s=%s&%s=%s&%s=%s", $k1, $v1, $k2, $v2, $k3, $v3);
とするのでは、どっちがどのくらい速いでしょうか。
465nobodyさん:2009/12/20(日) 16:17:53 ID:???
自分で計ればいいだろ
466nobodyさん:2009/12/20(日) 16:46:39 ID:???
>>464
つ microtime()
467456:2009/12/20(日) 16:47:24 ID:ruVQmLxH
>>461
php_admin_value zend_extension "/usr/lib/php5/20060613/xdebug.so"
上記の設定を書き加えましたが、phpinfoにはxdebugについての情報が一切吐かれませんでした。
php_admin_valueの部分をphp_valueに書き換えても同様でした。

もちろん、上記のパスが正しいことは確認済みです。
468nobodyさん:2009/12/20(日) 16:52:58 ID:???
試しに一般的なパラメタ指定するとどうなる?
あとその行に文法エラーになるような文を書いてApacheの起動に失敗するかも確認
469456:2009/12/20(日) 17:02:07 ID:ruVQmLxH
同ファイル内で、
php_admin_value error_log /path/to/dir
などの様に他の設定を行っていますが、正しく動作しているようです。

php_admin_value zend_extension "/usr/lib/php5/20060613/xdebug.so"
abcdef
などの不適切な設定をした場合、syntax errorでapacheは起動しませんでした。

そもそも、php_valueを用いて、zend_extensionの設定を行うことは可能なのでしょうか・・・?
470nobodyさん:2009/12/20(日) 17:08:21 ID:???
.htaccessでもできるんだから可能だろ
ちなみに、php_valueだよ
471456:2009/12/20(日) 19:12:14 ID:ruVQmLxH
php_valueでもダメっぽいですね、、、
472nobodyさん:2009/12/20(日) 21:23:11 ID:???
【OS名】Windows
【PHPのバージョン】php5.29
【質問内容】
メッセージを既読の状態で imap_append するにはどうしたらいいのでしょうか?

よろしくお願いします。
473nobodyさん:2009/12/20(日) 22:15:43 ID:???
>>472 ...
4つ目のオプションで "\\Seen"
474nobodyさん:2009/12/21(月) 21:59:39 ID:sxjnmPYw
【やりたいこと】 mail()による誤送信メールの取得
※PHP環境はレンタルサーバーなので不明

CCで複数のメールアドレスに送信する際、(実験で)意図的にエラーメアド
を含ませて、エラーメールを「-f オプション」でメインの宛先に戻そうとしています。
コードは下記です。

$to = 'メインの宛先';
$subject = 'MailTest_02';
$message = 'MailTest_02 desu';
//
$headers .= 'From: Birthday Reminder <送信元メアド>' . "\r\n";
$headers .= 'Cc: 意図的にエラーメアド,正しいメアド@,正しいメアドA' . "\r\n";
$errorTo = "-f送信元メアド"//-f オプションを使用

if (mail($to, $subject, $message, $headers, $errorTo)) {
echo "メールが送信されました。";
} else {
echo "メールの送信に失敗しました。";
}

これだと下の文法エラーが出ます。
 Parse error: syntax error, unexpected T_IF in /〜.php on line 16

該当行は if (mail($to, $subject, $message, $headers, $errorTo) なのですが、
間違いが分かりません。ご指摘願います。
475nobodyさん:2009/12/21(月) 22:18:49 ID:???
$errorTo = "-f送信元メアド"//-f オプションを使用

とりあえず、こいつをセミコロンで締めようか。
476474:2009/12/21(月) 22:41:58 ID:???
>>475
できました! 有難うございます。
477nobodyさん:2009/12/22(火) 00:13:38 ID:2mzdqR1W
Switchについて気になったので・・質問です。
caseの値に演算子は使えますか?
478nobodyさん:2009/12/22(火) 00:15:15 ID:???
つかえる
479nobodyさん:2009/12/22(火) 00:21:17 ID:2mzdqR1W
>>478
即レス感謝です。
480nobodyさん:2009/12/22(火) 01:20:22 ID:???
循環参照にならないとおかしいってことか
481nobodyさん:2009/12/22(火) 13:54:57 ID:???
高速ダウンロードのアルゴリズム考えてたんですが、これであってますか?

1.ダウンロードしたいファイルの全体サイズを要求して、帰ってきた値をn分割する
2.サーバーからn個の塊(セグメント)のそれぞれのバイナリの最初からをダウンロードする
3.最後に保存したバイナリを結合

サーバーに負担かけるけど、これで速くなりますよね?理論上
482nobodyさん:2009/12/22(火) 14:02:13 ID:???
速くなるかどうかはやってみないとわからん
483nobodyさん:2009/12/22(火) 14:33:21 ID:???
スレタイと>>1を読まない子には応えてあげません。
484nobodyさん:2009/12/22(火) 19:26:00 ID:hbkj7edc
true:0,1,゙0゙,゙1゙,゙a゙ など
false:゙゙,null など

変数を文字列にキャストしたときに、一文字目に文字が存在してればok
みたいな判断がしたいのですが
出来るだけ簡潔に書ける方法ってないでしょうか?
一行で書けるくらいの簡潔さが理想です
485nobodyさん:2009/12/22(火) 19:33:36 ID:???
数字の0と文字列の"0"だけ例外にしてあとはそのまま。
486nobodyさん:2009/12/22(火) 19:43:44 ID:???
strlen()>0 でよさそうだけど
487nobodyさん:2009/12/22(火) 22:19:00 ID:CYPjupAH
一応mysql_real_escape_string()を通すようにした
SQL全部を渡したらダメなんだな

あと、firefoxでもタスクリストのソートや検索が動くようにjQueryのメソッドを使うようにした

http://www.geocities.jp/retort_curry119/TaskManage.htm

直接途中のページにアクセスされるのを禁止するには
$_SERVER[HTTP_REFERER] で許可するページかどうかチェックする方法?
もっといい方法ありますか?
488nobodyさん:2009/12/23(水) 00:24:47 ID:???
ウェブサイトの共有部分をphpでインクルードしたいのですが、
何から始めればいいのでしょう・・・ HTMLのソースならあるのですが(´・ω・`)
489nobodyさん:2009/12/23(水) 00:40:17 ID:5FKPpQ9S
fgetsやCURLでgzip圧縮されたHTTP bodyを元の文字列に復号するにはどうしたらいいのでしょうか
490nobodyさん:2009/12/23(水) 00:45:48 ID:5FKPpQ9S
gzdecodeは未定義でgzuncompress、gzinflateはデータエラーになりました。
491nobodyさん:2009/12/23(水) 00:46:12 ID:???
>>489
奇遇だな、俺も今それでなやんでいたんだ
bodyの部分だけバイナリでファイルに書き込んでgzの拡張子にしてもなんだか壊れてるとかで開けなかった
もしわかったらこのスレに書き込んでくれ
俺もわかったら書き込むわ
492nobodyさん:2009/12/23(水) 00:47:49 ID:cvJgDWhA
あ、sageはずすのかスマソ
今日は解決できなかったから寝るけど明日にでもまたやってみるわ
493nobodyさん:2009/12/23(水) 00:57:59 ID:5FKPpQ9S
自己解決しました。
圧縮されたデータをbase64エンコードしてDATAスキームとして読み込みgzopen -> gzreadしました
$data = curl_exec($ch); //gzip圧縮されたデータ
$data = "data:application/x-gzip;base64,".base64_encode($data); // dataスキームに整形
$fp = gzopen($data,"r"); // gzopen
echo gzread($fp,1024); //読み込み
494nobodyさん:2009/12/23(水) 00:59:41 ID:???
file_get_contents("compress.zlib:///home/aaa.gz");
495nobodyさん:2009/12/23(水) 01:19:52 ID:VLbb10P/
age
496nobodyさん:2009/12/23(水) 01:27:35 ID:5FKPpQ9S
URLencodeのほうがわずかに軽い?気がする
$data_scheme = "data:application/x-gzip;charset=iso-8859-7,".urlencode(curl_exec($ch));
$fp = gzopen($data_scheme,"r");
echo gzread($fp,524288);

>>494
この方法だと一度ファイルに書き込む必要が有りますよね
データ取得する度にファイルを生成するのは避けたいのです
497nobodyさん:2009/12/23(水) 05:40:00 ID:9xQ+acVI
サーバーから任意のアドレスにリクエストを発生します。
そして返ってきたヘッダーにsetCookieが有った場合、それを任意のファイルに保存する事が出来、
そのファイルを指定すると、そのクッキー内容をセットして送信してくれる
またその関数はオプションで、レスポンスヘッダーにLocationが存在した場合、自動的にそのURLにリダイレクトもしてくれる
という関数を探しています。
以前使った記憶があるのであるはずなのですが、どうにも検索出来ません。
php cookie ですと、サーバーからクライアントにクッキーを渡す、受ける方法しか出てこないので。

この関数に心当たりの有る方、是非教えてください。
498nobodyさん:2009/12/23(水) 06:20:09 ID:yNzqV2OY
ようわからん
用途を言え
さすれば>>499が答えてくれるはず
499nobodyさん:2009/12/23(水) 07:00:12 ID:???
>>497
ひとつの関数ではないけど、CURLじゃないかね?
500nobodyさん:2009/12/23(水) 07:13:44 ID:9xQ+acVI
>>499
それです。ありがとうございました。

>>498
サイトのソースを取得したかったが、file_get_contentsだと「オメーのアクセス不正だからデータ出してやんねー」
って弾かれるから、セッションとかその辺がいかんのかなぁと思って聞いた。

が、どうもUAが空なのが原因だったらしい。
501nobodyさん:2009/12/23(水) 09:31:57 ID:???
>>496
stream_filter_append で convert.base64-decodeと bzip2.decompress なんて手も。
502nobodyさん:2009/12/23(水) 10:34:14 ID:cvJgDWhA
ID:5FKPpQ9S マジでGJ!!
俺もやってみるわ。なんか書き込んでとか生意気なこといったのに応じてくれてありがとう
503nobodyさん:2009/12/23(水) 10:35:28 ID:GedKCbN8
<?php

function print_current_date($params, &$smarty)
{
if(empty($params['format'])) {
$format = "%b %e, %Y";
} else {
$format = $params['format'];
}
return strftime($format,time());
}
?>

質問させてください。
関数print_current_dateの第2引数 &$smarty の意味が分かりません
参照渡しだと言う事は分かるのですが、引数に指定された時にはいったいどういう挙動をするのでしょうか?
504nobodyさん:2009/12/23(水) 10:41:08 ID:???
>>503
関数内で参照で使えるようになるよ
505nobodyさん:2009/12/23(水) 10:50:58 ID:???
Smartyのテンプレート関数登録 register_functiont使うときのお決まりになってる。
その関数でsmartyの機能を参照できるようにするためで、引数に渡される。
使わないなら何もしない。 その関数の中で $smarty->trigger_error とか使うためのもの。
506nobodyさん:2009/12/23(水) 11:04:44 ID:GedKCbN8
>>504-505
ありがとうございました
507nobodyさん:2009/12/23(水) 17:00:21 ID:NNi2TGwI
IFRAME内で echo $_COOKIE["test_cookie"]としたのですが、
何も表示されません。

クッキーの受け渡しは出来ているのですが、
もしかしてIFRAMEだとクッキーを認識しないのでしょうか?
508nobodyさん:2009/12/23(水) 17:15:07 ID:???
echo print_r($_COOKIE,true);
してみろ
509nobodyさん:2009/12/23(水) 17:28:54 ID:???
なんでわざわざ第二引数trueにしてまで
510507:2009/12/23(水) 17:28:57 ID:NNi2TGwI
>>508
PHPSESSIDはでますが、クッキー用の変数は出ません
511nobodyさん:2009/12/23(水) 17:33:01 ID:???
iframeのドメインが違ったりしない?
512nobodyさん:2009/12/23(水) 17:35:08 ID:???
記入不足等のエラーがある場合に、
ブラウザの戻るボタンと同様の動作はできますか?
リダイレクトheader('Location〜だと新しく読み直してしまうんですが・・
513507:2009/12/23(水) 17:37:59 ID:NNi2TGwI
>>511
クッキーを渡すURLがhttp://localhost/admin/setting.php
クッキーを受け取るURLがhttp://localhost/test.php です。
渡し方はsetcookie("test_cookie","1");としています。
514nobodyさん:2009/12/23(水) 17:39:34 ID:???
>>512
history.back();でググるといいよ
515507:2009/12/23(水) 17:42:05 ID:???
自己レスです。わかりました。
setcookie("test_cookie","1",time()+3600,"/");

とすれば良いみたいです。おさわがせしました。
516nobodyさん:2009/12/23(水) 17:45:16 ID:???
>>514
ありがとう
517nobodyさん:2009/12/23(水) 20:59:16 ID:IsKOC7oo
【PHPのバージョン】5.2.6
【libxslt Version】1.1.24
XSLTProcessorなんだが

【×】
<xsl:variable name="fragment" select="'091223006'"/>
<xsl:template match="a[@name=$fragment]">
 <div><xsl:value-of select="$fragment" /></div>
</xsl:template>

Undefined variable
compilation error: file xxxx.xsl line 2 element template
Failed to compile predicate

【○】
<xsl:variable name="fragment" select="'091223006'"/>
<xsl:template match="a[@name='091223006']">
 <div><xsl:value-of select="$fragment" /></div>
</xsl:template>

<div>091223006</div>

なんで上のがエラーなんだよ。
死ねクソPHP。
518nobodyさん:2009/12/24(木) 03:35:43 ID:???
やっべ自分のコード醜い
ワロタw
519nobodyさん:2009/12/24(木) 03:36:29 ID:???
誤爆
520nobodyさん:2009/12/24(木) 15:58:09 ID:RlAOKAtP
hoge->poge()
hoge::poge()

ってどう使い分ければいいんでしょうか?
521nobodyさん:2009/12/24(木) 16:08:47 ID:K1JQdV/R
->はアロー演算子,::はスコープ解決演算子っていう名前がついてる
ぐぐってみれ
522nobodyさん:2009/12/25(金) 02:20:42 ID:???
SmartIRCを使って
523nobodyさん:2009/12/25(金) 02:21:45 ID:???
途中で書き込んでしまった。
SmartIRCを使ってチャンネルのトピックや参加人数を
変数に取得したいのですが、やりかたがわからず。。

どなたか教えていただけると助かります。
524nobodyさん:2009/12/25(金) 02:39:45 ID:???
スレタイを読んでいただけると助かります。
525nobodyさん:2009/12/25(金) 11:09:57 ID:BJR7sXEG
test.php
<?php
$test=$_GET['key'];
if($test==='aiueo'){
/* srcディレクトリにあるtest.zipをダウンロード開始 */
}else{
/* 何もしない */
}
?>
で、keyをphp側で受け取って'aiueo'と一致すれば
test.zipのダウンロード開始をしたいです。
このダウンロード開始というのは、
ブラウザで右クリック保存を押したときに、
保存画面が表示されるときのような感じです。
(または単に、.zipのようなファイルにアクセスがあったとき
ブラウザ側で勝手に拡張子を判断してダイアログをだしてくれるような)
keyが一致すれば、test.zipまでのファイルのパスを
aタグで指定したのを表示して〜(<a href="http〜〜〜/src/test.zip" title="test">ダウンロード</a>)
みたいに二段階だと簡単にできるのですが、一段階だと思うようにできません。

自分なりに考えたのが、RewriteRuleでtest.zipにアクセスがあったときtest.phpへつなぐようにして、
php側でkeyが一致したとき
echo file_get_contents('./src/test.zip');
を実行、
ダウンロード自体はhttp〜〜/src/test.zip?key=aiueoでアクセス、という感じです。
これなら一応できるにはできたのですが、そのままファイルの内容を表示してしまうので
実質urlの上で右クリックダウンロードしかできないし、そもそも間違った方法のような気がします。
ようは、普通ならhttp〜/src/test.zipへアクセスすれば単純にダウンロードできるところをkey一致の段階を付け足したいというところです。
ファイルのタイプはzip以外にもで、keyのaiueoも一定時間で変化するようにできたら、と考えています。
何か良い方法があればアドバイスお願いします。
PHP5.2.6 Apache2
526nobodyさん:2009/12/25(金) 11:12:03 ID:???
527nobodyさん:2009/12/25(金) 11:21:44 ID:BJR7sXEG
>>526
おぉ、こんな簡単な方法が。
やりたいことができました!
ありがとうございました。
528nobodyさん:2009/12/25(金) 11:31:51 ID:v7rwUytB
質問です。

会社の意向でPHPを2週間で習得しなければならなくなりました。
個人的にはrubyやpythonが使えるので今更PHPみたいな名前も構文も
設計思想も時代遅れの糞言語を習得する時間がもったいなくてたまり
ません。RoRやdjangoの素晴らしさを説明してもアホな上司は何もわ
かってくれないし(泣

僕はどうすればいいのでしょうか?アドバイスお願いします。
529nobodyさん:2009/12/25(金) 11:37:25 ID:???
>>528
スレ違いです
530nobodyさん:2009/12/25(金) 11:40:04 ID:???
>>529
【PHP下らねぇ】質問はID出して書き込みやがれ 91
全然スレちぢゃないけど?
531nobodyさん:2009/12/25(金) 11:53:17 ID:???
>>528
覚えていないのにそんなこと分かるんだ。すごいね。
532nobodyさん:2009/12/25(金) 11:59:22 ID:???
>>530
PHPの質問ですか?
質問内容を理解できずすみませんでした。
533nobodyさん:2009/12/25(金) 12:00:34 ID:???
>>532
ぷっ
534nobodyさん:2009/12/25(金) 12:58:53 ID:???
> 質問です。
>
> 会社   で
>           使え        な
>                        い
>                      アホな
>
>
> 僕はどうすればいいのでしょうか?アドバイスお願いします。

気にせずクリスマスを祝えばいいと思うよ
535nobodyさん:2009/12/25(金) 13:07:56 ID:???
とまあ、ネタに乗ってあげるやさしい回答者達でした。
536nobodyさん:2009/12/25(金) 13:11:14 ID:???
感動した
537nobodyさん:2009/12/25(金) 13:46:55 ID:???
>>528
そんなアホな上司がいる会社は見限って、うちの会社に来ないか?うちの会社は警備会社だが。
538nobodyさん:2009/12/25(金) 13:53:03 ID:9hjXXeKP
警備なら毎日やってますよ
539nobodyさん:2009/12/25(金) 15:22:23 ID:???
imagettftextで数式を表示させたいんですが「+」が表示されません。
表示できるフォントあるいは他の解決法があれば教えてもらえないでしょうか。お願いします。
540539:2009/12/25(金) 16:37:50 ID:???
解決しました!
541nobodyさん:2009/12/25(金) 17:06:12 ID:ODrit1bB
<?php
function smarty_prefilter_no_php($src, &$o_smarty) {
$result=str_replace("{php}","{ldelim}php{rdelim}",$src);
$result=str_replace("{/php}","{ldelim}/php{rdelim}",$result);
return $result;
}
?>

上記の関数内の変数resultはどちらも「=」で代入されていますが、オーバーライドされないのでしょうか?
542nobodyさん:2009/12/25(金) 17:24:54 ID:???
$a = 4
$a = 5 + $a ってだけですね。
543nobodyさん:2009/12/25(金) 17:35:52 ID:ODrit1bB
>>542
すみません
$a .= 5 のように「=」の前にドットを付けるとそのようになるのは知っているのですが、単なる「=」でもそのように出来るのですか?
-> 等は追記していけるのは分かりますが、=がそのような動作を出来るとは知りませんでした

普通に
$a = Hello;
$a = World;
とするとオーバーライドだれると思うのですが、>>541の場合は第2引数の参照渡しとかが何か影響しているのでしょうか?

544nobodyさん:2009/12/25(金) 17:48:40 ID:???
まぁ、オーバーライドはそういう意味で使う事は稀だと思うが。

>>543
$a=4;
$a=5+$a;
//ここで$aは9だ。
545nobodyさん:2009/12/25(金) 17:57:27 ID:???
$result=str_replace("{php}","{ldelim}php{rdelim}",$src);
変数 $src の中の {php}という文字列を  {ldelim}php{rdelim} に置き換えたものを $resultに入れます。

$result=str_replace("{/php}","{ldelim}/php{rdelim}",$result);
変数 $result の中の {/php}という文字列を {ldelim}/php{rdelim} に置き換えたものを $result に入れます。

プログラムの用語でオーバーライドは別の意味に使うので、 ただの変数の上書きの時には使わないです。
546nobodyさん:2009/12/25(金) 18:15:11 ID:???
オーバーwrite(ライト)だな、言うとしたら。
547nobodyさん:2009/12/25(金) 18:19:15 ID:ODrit1bB
>>544-545
わかりました
オーバーライドの意味自体を勘違いしていたようです
自分の言いたかったのは上書きでした


ごめんなさい、まだ良く分かっておりません(苦笑)
<?php
$a = Hello;
$a = World;
print $a;
?>
で試すとブラウザには「Hello」が上書きされて「World」と出力されますが、これと、
>変数 $src の中の {php}という文字列を  {ldelim}php{rdelim} に置き換えたものを $resultに入れます
という今回のコードでの意味との違いは何なのでしょうか?
str_replace()だと違う挙動になるのでしょうか?
548547:2009/12/25(金) 18:21:00 ID:ODrit1bB
ごめんなさい、わかりました
非常に馬鹿でした

$result=str_replace("{/php}","{ldelim}/php{rdelim}",$result);
の$resultが見えていなかったようです
ほんとお騒がせしてすみませんでした
549nobodyさん:2009/12/25(金) 18:27:05 ID:???
$a = 4
$a += 5
//$a:9
550nobodyさん:2009/12/25(金) 18:54:34 ID:+jc140hL
携帯電話で検索フォームを作っているのですが、auのみ結果が文字化けしてしまいます。
(というより検索クエリ自体が化けているらしく結果も正しくありません)
フォームはGETで、ページはUTF-8です。auはフォームからのデータがSJISになってしまうということは
ググってわかったのですが、どうやってSJIS→UTF-8に変更してデータを送るかがわかりません。。。
どのような方法がありますでしょうか。
551nobodyさん:2009/12/25(金) 19:09:37 ID:dFEOAZcl
<?php
define('CARRIER_DOCOMO', 'i');
define('CARRIER_EZWEB', 'e');
define('CARRIER_SOFTBANK', 's');
define('CARRIER_PC', 'pc');function mobileStart()
{
//■php内部文字エンコーディング
mb_internal_encoding('utf-8');

//■header出力
//携帯アクセスでdocomoの場合は、Content-Typeを出力
if (whichCarrier() == CARRIER_DOCOMO) {
header("Content-Type: application/xhtml+xml;");
}
//auのみ、ブラウザキャッシュが効くのでキャッシュ無効にする
if (whichCarrier() == CARRIER_EZWEB) {
header('Cache-Control: no-cache');
}

//■出力バッファ開始
ob_start();
552nobodyさん:2009/12/25(金) 19:31:27 ID:???
>>550
mb_convert_encodingでいいのでは?
553taigo ◆RpNs8sZ5pNfE :2009/12/25(金) 21:52:22 ID:+jc140hL
>>551
ありがとうございます、が。。。やはり文字化けしてしまいます。
ページ変遷がなく、同じページを読み込んでいるのですが
それが原因となることはありますか?
554nobodyさん:2009/12/25(金) 22:38:29 ID:9hjXXeKP
httpのメッセージボディをgzipで取得したとき、デコード(復号)するにはどうすればいいですか?
phpとかrubyだとたくさん資料あるのですが自分はC++つかっててよくわかりませんでした。
わかる方いらっしゃったらぜひともよろしくお願いします
555nobodyさん:2009/12/26(土) 02:04:33 ID:???
556nobodyさん:2009/12/26(土) 06:41:22 ID:3WIBYwDf
サイト内で不特定ユーザーに対してお気に入り登録機能をつけるために、クッキーを使おうと思います。

一つだけならセットできたのですが、違う商品を登録すると上書きされてしまいます。
$_COOKIE[`a`]に登録したいものをarray_pushとかで配列として増やすことは可能ですか?
何度か試したけれどエラーがでて上手くいかないので・・・
557nobodyさん:2009/12/26(土) 07:55:11 ID:???
>>556
代わりに$_SESSIONを使うとよかろうん
558nobodyさん:2009/12/26(土) 08:40:23 ID:???
559nobodyさん:2009/12/26(土) 10:03:43 ID:???
>>556

http://www.php.net/manual/ja/function.setcookie.php

クッキー名で配列を記述することにより、 クッキーの配列を設定することも可能ですが、
複数のクッキー がユーザーのシステム上に保存されることになります。
explode() を使用して ひとつのクッキー上に複数の名前と値をセットすることも 考慮してください。
serialize() の使用はセキュリティーホールになり得るため、 この目的のために使用することはお勧めしません。
560nobodyさん:2009/12/26(土) 11:08:36 ID:wIFCZoqo
>>555
それはおそらくphpの話だと思うのですが
561nobodyさん:2009/12/26(土) 11:32:50 ID:???
だって、このスレは(略
562nobodyさん:2009/12/26(土) 11:33:15 ID:???
わしもそう思う
つまりスレ違い
563nobodyさん:2009/12/26(土) 11:57:21 ID:wIFCZoqo
よくみたらphpでした
すいませんでした
自分で考えます
564nobodyさん:2009/12/26(土) 13:33:40 ID:wnAP/Woh
外部ページへのリンクのみ確認ページをはさみたいのですがphpで可能でしょうか?
イメージは2ちゃんねるの外部リンク「http://ime.nu/」と同じです。
具体的な要件は・・・

外部リンクのURL -> http://自分のサイトドメイン/[外部リンクページのURL]という
ページを自動生成
確認ページに外部リンク先のURLを表示させてクリックすると実際にそのページへ飛ぶ

初心者質問かもしれませんが、どなたかお力をお貸しください。
よろしくお願いいたします。
565nobodyさん:2009/12/26(土) 13:41:29 ID:???
可能。
http://自分のサイトドメイン/index.php?url= [外部リンクページのURL]
確認ページを挟みたいなら、http://自分のサイトドメイン/sure.php?url= [外部リンクページのURL]

566nobodyさん:2009/12/26(土) 14:13:51 ID:cSlUn0mi
fopenでファイルを開いてfwriterで書き込み、fcloseでファイルを閉じるという
ログ保存の処理をしています。(log.phpとします)

このファイルをIFRAMEなどで2つ読み込んだ時、
どちらか一方のログが記録されない場合があります。

同時アクセスが原因だと思いますが、こういう場合どう対処すればいいのでしょうか?
567nobodyさん:2009/12/26(土) 14:19:08 ID:???
キャッシュ
568nobodyさん:2009/12/26(土) 14:25:44 ID:???
>>565
いただいたヒントでなんとか実現できました。
簡単なことだったのですね。。
ありがとうございました!
569nobodyさん:2009/12/26(土) 14:26:53 ID:???
syslog()
570nobodyさん:2009/12/26(土) 17:54:40 ID:7XqYgoy0
mysqlと同じ内容の 接続をPDOで要求した場合、再利用されますか?
571nobodyさん:2009/12/26(土) 18:38:14 ID:w2S23L5n
((ファイル1))
function smarty_resource_db_source($tpl_name, &$tpl_source, &$o_smarty) {}や
function smarty_resource_db_timestamp($tpl_name, &$tpl_timestamp, &$o_smarty) {}の
リソース名dbについて教えて欲しいのですが、

((ファイル2))
require_once("../MySmarty.class.php");
$o_smarty=new MySmarty();
$o_smarty->default_resource_type="db";
$o_smarty->display("resource_db.tpl");

の$o_smarty->default_resource_type="db";のリソースの種類dbと、ファイル1のリソース名dbは同じなのでしょうか?
普段はdefault_resource_typeのデフォルトはfileなようですが、もしdbがデータベースを表しているのであれば適当に付けた(?)dbとは意味が違ってくると思うのですが
572551:2009/12/26(土) 20:21:10 ID:XUPV0oR3
>>553
実はまだつづきがあってね。
それを実行すれば
貼るとながいんだ。
はってもいいかな?
それをrequire_onceして共通関数として
使えば文字化けはなくなるよ。
573551:2009/12/26(土) 20:56:29 ID:XUPV0oR3
>>553できたみたいだな。
はらなくてよさそうだ。
574nobodyさん:2009/12/26(土) 21:07:32 ID:wIFCZoqo
おしりが二つにわれてます
病気でしょうか?
575nobodyさん:2009/12/26(土) 21:08:17 ID:wIFCZoqo
すいません誤爆しました
あああはずかしいいいいいいい
576nobodyさん:2009/12/26(土) 21:24:44 ID:/CwwEmig
内部でexit()を呼んでいるユーティリティ関数があるんですけど、
これのテストコードを書こうとして困っています。
テストするためには当然その関数を呼び出す必要があるわけですが、
そうするとexit()でテストコードが終了してしまいます。
なんかいい方法ないでしょうか。
当方PHP5.2.x使用
577nobodyさん:2009/12/26(土) 21:29:22 ID:???
exit()の頭に//を書くとコメントにできる裏技がある
578nobodyさん:2009/12/26(土) 21:44:59 ID:???
exitを書いた関数のテストがexitで終了するなら正常な動作じゃないかw 
してほしいのかしてほしくないのかどっちなんだw
579nobodyさん:2009/12/26(土) 22:09:18 ID:/CwwEmig
>>578
通常はexit()で終了してほしいけど、テストのときは終了してほしくない、ということです。
たとえば
function redirect_to($url) {
 header('Location: '.$url);
 exit();
}
というのがあって、これをテストしたい場合、
・redirect_to()を呼ぶと引数が Location: ヘッダの値として設定されることをテストする
・(可能なら)exit()が呼ばれることをテストする
ということになると思います。こういうテストがしたいんですけど、PHPでは無理ですか。
580nobodyさん:2009/12/26(土) 22:13:21 ID:???
それできる言語とかあんの?
581nobodyさん:2009/12/26(土) 22:15:48 ID:/CwwEmig
>>580
exit()を上書きできる言語ならできます。RubyとかPythonとか。
582nobodyさん:2009/12/26(土) 22:19:01 ID:???
へー、PHPでやるならrunkitかなぁ
http://www.php.net/manual/ja/book.runkit.php
583nobodyさん:2009/12/26(土) 22:25:16 ID:???
>>574
いつの時代だよw
584nobodyさん:2009/12/26(土) 23:02:30 ID:???
>>153
何言ってるんだよお前ッ!!
お前がチンチンが痒いって言うから親身に相談にのってやってんだろうが!!
俺だっていそがしんだからな、分かったか?
585553:2009/12/26(土) 23:21:13 ID:???
>>573
あれからurlencodeとかdecodeとかhttp_outputとか調べて色々試したのですが
まだ解決できていません...
可能であれば貼ってもらってもよろしいでしょうか。
586nobodyさん:2009/12/27(日) 00:25:23 ID:???
>>585
あんまり読んでないけど、
JavaScriptで変換してから送信すれば?
と言ってみる
587551:2009/12/27(日) 01:12:28 ID:HTyX6aDg
本当にながいぞ
echo '<'.'?xml version="1.0" encoding="Shift_JIS" ?'.'>'."\n";

switch (whichCarrier()) {
case CARRIER_DOCOMO:
case CARRIER_PC:
echo '<!DOCTYPE html PUBLIC "-//i-mode group (ja)//DTD XHTML i-XHTML(Locale/Ver.=ja/2.3) 1.0//EN" "i-xhtml_4ja_10.dtd">';
break;
case CARRIER_EZWEB:
echo '<!DOCTYPE html PUBLIC "-//OPENWAVE//DTD XHTML 1.0//EN" "http://www.openwave.com/DTD/xhtml-basic.dtd">';
break;
case CARRIER_SOFTBANK:
echo '<!DOCTYPE html PUBLIC "-//J-PHONE//DTD XHTML Basic 1.0 Plus//EN" "xhtml-basic10-plus.dtd">';
break;

function mobileFinish()
{

$content = ob_get_contents();
ob_end_clean();
$content = mb_convert_encoding($content, 'sjis-win', 'utf-8');
echo $content;
}


588551:2009/12/27(日) 01:16:51 ID:HTyX6aDg
function varout($str)
{
echo htmlspecialchars($str, ENT_QUOTES);
}

function whichCarrier()
{
global $_mobile_carrier;
//すでに判別済みの場合は前回結果を返す
if ($_mobile_carrier != null) {
return $_mobile_carrier;
}
$uaList = array(
array(
'regexp' => '!^DoCoMo!',
'carrier' => CARRIER_DOCOMO,
),
array(
'regexp' => '!^KDDI-!',
'carrier' => CARRIER_EZWEB,
),
array(
'regexp' => '!^UP\.Browser!',
'carrier' => CARRIER_EZWEB,
),
array(
'regexp' => '!^SoftBank!',
'carrier' => CARRIER_SOFTBANK,
589551:2009/12/27(日) 01:17:37 ID:HTyX6aDg
array(
'regexp' => '!^Vodafone!',
'carrier' => CARRIER_SOFTBANK,
),
array(
'regexp' => '!^J-PHONE!',
'carrier' => CARRIER_SOFTBANK,
),
array(
'regexp' => '!^MOT-!',
'carrier' => CARRIER_SOFTBANK,
),
array(
'regexp' => '!^Semulator!',
'carrier' => CARRIER_SOFTBANK,
),
array(
'regexp' => '!^Vemulator!',
'carrier' => CARRIER_SOFTBANK,
),
array(
'regexp' => '!^J-EMULATOR!',
'carrier' => CARRIER_SOFTBANK,
),
array(
'regexp' => '!^MOTEMULATOR!',
'carrier' => CARRIER_SOFTBANK,
),
);
590551:2009/12/27(日) 01:21:43 ID:HTyX6aDg
$ua = $_SERVER['HTTP_USER_AGENT'];

foreach ($uaList as $item) {
if (preg_match($item['regexp'], $ua)) {
$_mobile_carrier = $item['carrier'];
break;
}
}
if ($_mobile_carrier == null) {
// PCやその他のUAでアクセスされたとき
$_mobile_carrier = CARRIER_PC;
}

return $_mobile_carrier;
}
?>
591551:2009/12/27(日) 01:31:17 ID:HTyX6aDg
はったぞ
592553:2009/12/27(日) 01:33:56 ID:???
>>551
長いコードを貼り付けていただき、ありがとうございます。
これで試してみます!

>>586
ケータイサイトなんです(泣)
593nobodyさん:2009/12/27(日) 01:34:28 ID:NIseTKcN
zamppをインストールして開発環境を整えたいのですが
Installerというのがありません
どこにあるのでしょうか?
【ここにあるはずなのですが】
EXE
ZIP

EXEとZIPしかありません。

http://www.apachefriends.org/en/xampp-windows.html
594nobodyさん:2009/12/27(日) 01:43:26 ID:???
exe
595551:2009/12/27(日) 01:45:37 ID:HTyX6aDg
これでわからなかったらまた聞いてくれ
596553:2009/12/27(日) 01:47:52 ID:???
>>551
何回もすみません。
・・・
array(
'regexp' => '!^MOTEMULATOR!',
'carrier' => CARRIER_SOFTBANK,
),
); ←この行でエラーになってしまいます。
・・・
エラー:Parse error: syntax error, unexpected ';', expecting ')'

括弧の過不足など確認してみましたが、コードが複雑すぎて手に負えませんでした。
どのようなエラーでしょうか。。
597553:2009/12/27(日) 01:49:33 ID:???
unexpectedらしいので「;」を削除してみましたが今度は
unexpected T_VARIABLE, expecting ')'
となってしまいます。
598nobodyさん:2009/12/27(日) 01:51:47 ID:NIseTKcN
>>594
EXEをダウンロードすればいいんでしょうか?
599593:2009/12/27(日) 01:56:11 ID:NIseTKcN
下記サイトの緑色のDownloadNow!というのを
ダウンロードすればいいのでしょうか?

http://sourceforge.net/projects/xampp/

600nobodyさん:2009/12/27(日) 01:58:26 ID:???
>>598
試すという言葉を知らないのか君は
601nobodyさん:2009/12/27(日) 02:04:29 ID:???
>>588の最後は

),

が足りないんじゃない?
あと、

array(
'regexp' => '!^MOTEMULATOR!',
'carrier' => CARRIER_SOFTBANK,
),                 ←ここのカンマはいらない
);
602551:2009/12/27(日) 02:07:55 ID:HTyX6aDg
>>601の通り
), はずした。
603nobodyさん:2009/12/27(日) 02:34:39 ID:???
最後にカンマあっても問題ないよ
604601:2009/12/27(日) 02:42:07 ID:???
>>603
知ってる。
いま見たら、最後だけじゃなく全箇所不要なカンマ(あっても問題はないカンマ)が入ってるね。
新たに追加するときにカンマを入れ忘れることがあるから、それを防ぐための策だろうね。
605nobodyさん:2009/12/27(日) 03:31:03 ID:???
知らなかったのバレバレじゃねぇかw
606nobodyさん:2009/12/27(日) 10:06:19 ID:???
ワロタ
607nobodyさん:2009/12/27(日) 12:30:49 ID:PylzfMP3
フイタw
608nobodyさん:2009/12/27(日) 14:10:44 ID:NIseTKcN
PHPって中卒の俺にもできるんだが。。
609nobodyさん:2009/12/27(日) 14:11:37 ID:???
高卒でないとできない言語があるのか
610中卒:2009/12/27(日) 14:19:30 ID:NIseTKcN
東大出身のやつと一緒仕事することもある
611nobodyさん:2009/12/27(日) 14:40:33 ID:???
給料は?
612nobodyさん:2009/12/27(日) 14:46:41 ID:???
>>610
中卒の天才プログラマーは、一人だけ知ってるw。
お前は、俺の知り合いかw。
613中卒:2009/12/27(日) 15:01:41 ID:NIseTKcN
>>611
70万くらい

>>612
そうかもな
614nobodyさん:2009/12/27(日) 15:03:18 ID:???
ある意味高・大行ってた奴より中卒の方がさえる。
やっぱ好きな分野勉強して好きな仕事した方が良いてことだな

漏れは高卒だが
615nobodyさん:2009/12/27(日) 15:31:33 ID:???
>>614
高校と大学行かないで7年間の間プログラムの勉強するってこと?
616nobodyさん:2009/12/27(日) 15:37:49 ID:???
土方に学歴関係ないよね
617nobodyさん:2009/12/27(日) 15:57:55 ID:???
>>613
あ、ごめん。給与が本当なら、別人だ。

>>615
25年くらい前は、結構いたらしく、新聞とかテレビなんかでも
若年天才プログラマが取り上げられたりもしていた。
高級言語が普及する前だから、基礎学力や、業務知識よりも、
プログラミングそのものの比重が今より高く、中卒でも実力次第で
就職できたし、景気も良かったから、高待遇だったそうだ
618551:2009/12/27(日) 17:20:21 ID:HTyX6aDg
>>553はできたかな?
619nobodyさん:2009/12/27(日) 18:20:11 ID:???
というか、中学時代から経験ある人と大学時代から経験ある人を比べたら
経歴で六年違うんだから、相当な差があっても不思議じゃない
ましてやこの業界は進化スピードが恐ろしく速い業界だし
620nobodyさん:2009/12/27(日) 20:20:57 ID:EZZjGXhz
答えに困る質問だとは百も承知ですがお願いします。

学生時代にFORTRANとCOBOLの経験が1ミリほどある30代後半だけど
出回ってるSNS改造して公開できるようになるには、
1日2時間の勉強時間が取れたとして
どのぐらいの期間勉強が必要でしょうか。
621nobodyさん:2009/12/27(日) 20:38:14 ID:???
やめたほうがいい
622nobodyさん:2009/12/27(日) 20:40:03 ID:???
そうですか。。。
やっぱり、出きる人に頼むか。。。
623nobodyさん:2009/12/27(日) 21:17:32 ID:???
PHPなんて所詮Webサイトを作る為に特化した言語だから
無知でも会社で半年働けば大学で習う程度の技術は身に付く
正直、大卒よりも低学歴でも長年やってる奴の方が使える人材が多い気がする

物理演算などを使ったゲームやグラフィックを開発するとかだとそれ相応の学がないとダメなんだろうがな
あ、でも今の時代充実したオープンソースなライブラリなんかがあるか
624nobodyさん:2009/12/27(日) 22:01:11 ID:???
mb_strlen()の結果とstrlen()の結果が同じようになるようにしたいのですが、
mb_strlen()の第二引数のエンコーディングを何に指定すればお味結果が得られますか?
625nobodyさん:2009/12/27(日) 22:13:25 ID:???
8bit
626nobodyさん:2009/12/27(日) 22:17:19 ID:???
ascii ?  
ただし、 strlen バイト数がでるとも限らない。
http://www.php.net/manual/ja/mbstring.overload.php
627nobodyさん:2009/12/27(日) 22:22:17 ID:???
お味結果
628nobodyさん:2009/12/27(日) 22:22:40 ID:???
PHPって一文字一文字打つのか?
それともコピペ?
629nobodyさん:2009/12/27(日) 22:47:22 ID:???
必要な部分はコピペ
必要な部分は自力
630nobodyさん:2009/12/27(日) 22:54:29 ID:???
JavaやCでいう
char hoge+=1;
っていう感じのをPHPでやりたいんですが、
どのようにすれば書けば良いんでしょう?
631nobodyさん:2009/12/27(日) 22:56:37 ID:???
JavaやCでいう
char hoge+=1;
って書けるのか
632nobodyさん:2009/12/27(日) 23:04:19 ID:???
一応可能でもCやjavaとは仕様が違うらしいね
633nobodyさん:2009/12/27(日) 23:05:49 ID:LlMGF4Xb
sizeof()って型がいまいちよくわかりません。奴は何者ですか?
unsigned longとかいってるHPありますが、引数にint func( unsined long num)なんてあったら引数に渡しても大丈夫なんですか?
今までint func( size_t )こんな関数の引数に渡したことくらいしかないのでわからないんですが
634nobodyさん:2009/12/27(日) 23:06:32 ID:LlMGF4Xb
すいません誤爆しました
635nobodyさん:2009/12/27(日) 23:14:18 ID:???
JavaやCで
char hoge+=1;
すると何が起こるの?
636nobodyさん:2009/12/27(日) 23:15:09 ID:???
お前のchar hoge+=1;で地球がやばい
637nobodyさん:2009/12/27(日) 23:21:00 ID:???
>>635
文字コードに+1される
638nobodyさん:2009/12/27(日) 23:37:31 ID:???
文字コードによってやり方が変わってきそう
639nobodyさん:2009/12/28(月) 01:21:27 ID:TpCjAyY+
PHPでは、リクエストパラメータに「.」が含まれていると、それを自動的に「_」に変換するそうですが、
これをやめさせることはできますか。
640nobodyさん:2009/12/28(月) 01:30:13 ID:???
>>639
過去からのいろいろがあって、ドットは変数名にできないから無理だと思うよ

ドットを使わないようにできないの?
641nobodyさん:2009/12/28(月) 01:40:04 ID:???
今確認したけど変換されないで「.」のままだよ
642nobodyさん:2009/12/28(月) 01:44:01 ID:???
?name=value
のnameはGET,POSTともドットがアンダースコアに変わる
valueは変わらないが

http://www.php.net/manual/ja/language.variables.external.php
重要なことを記述しておくと、このため、外部変数に含まれるドットを PHP は自動的にアンダースコアに変換します。
643nobodyさん:2009/12/28(月) 02:24:21 ID:???
確かに$_GETのキーとしてセットされた段階では変わってる

けど$_SERVER['QUERY_STRING']では勝手に変わる前段階がセットされてるからこれ使って切り分ければいい
644nobodyさん:2009/12/28(月) 04:18:28 ID:TpCjAyY+
>>640-643
結論としては、「できない」ということですね。
残念ですけど、「.」を使わない方法を考えることにします。
ありがとうございました。
645nobodyさん:2009/12/28(月) 07:06:29 ID:361SB18M
flameに飛ばすページで逆アクセスランキング集計のためにログ収集をしたいのですがうまくいきません。
これはどうしたら良いでしょうか?</HEAD>の直下に<script type="text/javascript">〜を書くと表示されなくなります
これをphpによってうまくできる方法はないでしょうか どうぞよろしくお願いします


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=EUC-JP">
<META http-equiv="Content-Style-Type" content="text/css">
<TITLE>pandoravote</TITLE>
</HEAD>
<FRAMESET cols="136,*">
<FRAME name="left" src="./indexb.html">
<FRAME name="bottom2" src="http://hagehagehage.net/">
<script type="text/javascript">
<!--
document.write("<IMG SRC=\"http://hagehage.net/access.cgi?");
document.write(document.referrer+"\" border=0 width=1 height=1>");
// -->
</script>
<NOFRAMES>
<BODY>
<P>このページを表示するには、フレームをサポートしているブラウザが必要です。</P>
</BODY>
</NOFRAMES>
</FRAMESET>
</HTML>
646nobodyさん:2009/12/28(月) 08:14:04 ID:???
マルチ乙
647nobodyさん:2009/12/28(月) 09:16:40 ID:361SB18M
マルチじゃないよ
CGIじゃないと無理だと言われたのであっちを打ち切ってこっちに来たんだもん
648nobodyさん:2009/12/28(月) 10:01:56 ID:???
<FRAME name="bottom2" src="http://hagehagehage.net/">
<IMG SRC="http://example.com/access.cgi?<?php echo isset($_SERVER[HTTP_REFERER])?$_SERVER[HTTP_REFERER]:""?>" border="0" width="1" height="1" />
<NOFRAMES>
649nobodyさん:2009/12/28(月) 10:06:51 ID:EdgvHAjX
デバッグについて教えてください。

環境:WinXP + Eclipse + Xampp + cakePHP + XDebug

デバッグ実行できるのですが、
ローカル変数の値がすべて<Uninitialized>となっていて中身が見れません。
クラス内変数やスーパーグローバル変数は、値を見ることができます。
ローカル変数のみ、値が見れない状況です。
ネット検索しても、レアな現象なのか解決策が見つかりません。。。
650nobodyさん:2009/12/28(月) 10:08:18 ID:???
>>648
ミスった。自分でなおしてね。
651553:2009/12/28(月) 10:35:39 ID:???
>>551
すみません、こちらの元から使っているキャリア判定プログラムなどとの
兼ね合いからそのままコードを丸写しで使用することができず
キャリア判定の部分以外をこちらの既存コードに抜粋&貼り付けして
試行錯誤してしますが、いまだ実現できていません。

貼っていただいたコードが「どのような原理」で動作する
ものなのか(キャリア判定部分以外でGET文字列の文字化け解消に必須な項目)の
ヒントをいただけるとありがたいです。
652nobodyさん:2009/12/28(月) 11:58:07 ID:???
>>651
アドセンススレでやれ
653nobodyさん:2009/12/28(月) 14:03:19 ID:???
>>652
「携帯サイトのphpの文字化けについて」の質問のどこにアドセンスの要素が?
654nobodyさん:2009/12/28(月) 14:34:43 ID:???
だってこいつアドスレの住人だし
655553:2009/12/28(月) 14:39:57 ID:???
>>654
ごめん名前入れなかったが>>653は俺だ。
確かにアドセンススレにいるが、この質問とアドセンスは
関係ないだろと言いたかった。
つーかアドスレ以外のスレにもいるんだがなぜアドスレだけ抜き出すんだ?
656nobodyさん:2009/12/28(月) 14:42:25 ID:???
騙り乙
657nobodyさん:2009/12/28(月) 16:15:51 ID:???
フォームに誤入力があると指摘コメントを加えて
しかもユーザーが既に入力した箇所は残すフォームを
作りたいのですが、既入力を残す為にキャッシュを
使うとコメントを追加できないと思うのですが
既入力を取り込んでフォームを再構成しなければならないのでしょうか?
658nobodyさん:2009/12/28(月) 16:19:10 ID:???
スレタイ
659nobodyさん:2009/12/28(月) 16:22:03 ID:0eE3RWlX
当方超初心者です。
携帯のチャットのユーザーエージェントを表示させる位置についてですが、

fputs($fp, "$_GET[n]><font color=$fc>$msg</font><br><font size=1>($now)★</font><hr size=1>\n");


下記コード単体では成功するのですが、★の部分に下記コードを入れるとエラーが出てしまいます。

include_once('Net/UserAgent/Mobile.php');

$agent = Net_UserAgent_Mobile::factory();
//型番の入手
$model = $agent->getModel();

if ($agent->isDoCoMo()) {
echo("お使いの機種はDoCoMoの{$model}です。");
} else if ($agent->isVodafone()) {
echo("お使いの機種はVodafoneの{$model}です。");
} else if ($agent->isEZweb()) {
echo("お使いの機種はEZwebの{$model}です。");
}


どうにかして★の部分にユーザーエージェントを表示させたいのです。
よろしくお願い致しますm(_ _)m
660nobodyさん:2009/12/28(月) 16:22:51 ID:???
文字列から、最後の文字を取り出す方法の定石というかイディオムはありますか。
今は $str[strlen($str)-1] としているのですが、なんかもっといいイディオムがあれば教えてください。
661nobodyさん:2009/12/28(月) 16:28:08 ID:???
>>659
PHPの基礎から勉強して下さいな
662nobodyさん:2009/12/28(月) 16:29:14 ID:???
663nobodyさん:2009/12/28(月) 16:46:34 ID:???
fputs("〜1★〜2");

fputs("〜1");

fputs("〜2");
になおす
664nobodyさん:2009/12/28(月) 16:51:48 ID:???
>>659
include_once('Net/UserAgent/Mobile.php');

$agent = Net_UserAgent_Mobile::factory();
//型番の入手
$model = $agent->getModel();
$mStr = "";

if($agent->isDoCoMo()) {
$mStr = "お使いの機種はDoCoMoの{$model}です。";
}else if($agent->isVodafone()) {
$mStr = "お使いの機種はVodafoneの{$model}です。";
}else if ($agent->isEZweb()) {
$mStr = "お使いの機種はEZwebの{$model}です。";
}

fputs($fp, "$_GET[n]><font color=$fc>$msg</font><br><font size=1>($now)$mStr</font><hr size=1>\n");

でうごくんでないの(・ω・)

>>660
substr($str,-1)
665nobodyさん:2009/12/28(月) 17:10:43 ID:???
>>661さん
たしかに一から勉強が必要ですね。

>>663さん
二つに分けて表示するんですね。
こうゆう風にすれば色々と応用がききそうですね。

>>664さん
感動しました(>ω<。) 完璧にうごきました。

皆様ありがとうございました!
666nobodyさん:2009/12/28(月) 17:34:16 ID:???
>>645
そのJavascriptは画像を貼るものだから、親フレームには記載できないよ( ・ω・)
なんで子フレームに貼って、その際に親フレームのリンク元を設定してあげればいいんじゃないかな

<script type="text/javascript">
<!--
document.write("<IMG SRC=\"http://hagehage.net/access.cgi?");
document.write(parent.document.referrer+"\" border=0 width=1 height=1>");
// -->
</script>

document.referrer → parent.document.referrer

Javascriptのスレで聞いたほうがいいかと。
667nobodyさん:2009/12/28(月) 17:45:49 ID:???
>>657
はい
668nobodyさん:2009/12/28(月) 18:22:59 ID:???
Smartyが動かないのですが下記のコードに原因ありますかね?

<?php
include_once("Smarty/Smarty.class.php");
include_once("config.php");
include_once("bbslib.php");
header("Expires","-1");
header("Cache-Control","no-store,no-cache,must-revalidate");
header("Cache-Control","post-check=0,pre-check=0");
header("Pragma","no-cache");
$smarty = new Smarty();
//タイトル
$smarty->assign("sitetitle","簡易BBS");
//サイト名
$smarty->assign("sitename","サイト名");
//サイトメニュー
$menuitems[0]['url']= "http:";
$menuitems[0]['text'] = "ダミー";
$smarty->assign("menuitems",$menuitems);
//ヘッダ
$smarty->assign("head","安易掲示板");
//メインコンテンツ
$contents= array();
$dbh = mysql_connect($db_host,$db_username,$db_password);
if($dbh !== false){
$sqlstr="use$db_name";
mysql_query($sqlstr,$dbh);

669nobodyさん:2009/12/28(月) 18:26:20 ID:???
//削除マークのない20件を
$sqlstr= "select"from mybbs where mark = '0'order by bt desclimit20";
$result = mysql_query($aqlstr,$dbh);
while($row = mysql_fetch_assoc($result)){
$row = sanitate(strips($row));
$row['caption']=$row['dt']."wrote by";
if($row['mailaddr']!="")
#row['caption'].= $row['name'];
if($row['mailaddr']!="")
$row['caption'].="</a>";
$form_id = "form_"$row['id'];
$row['caption'].="<form action="delete.php" method="get"id="'.$form_id.'"style="display": none;"> '.
'<input type="hidden" name="id" value="'.$row['id'].'" />'.
'<input type="password" size="10" name="pass" />'.
'<input type="submit" valuee="id" value="削除" />'.
'</form>'.
'<div style="cursor:pointer;"onClick="JavaScript:document.getElementByld(\".$form_id.'\').style.display=\'block\; this.style.display=\'none\';">削除する</div>';
array_push($contents,$row);
}
}
$smarty->assign("contents",$contents );

670551:2009/12/28(月) 18:45:39 ID:8/lFM/nf
>>553
いまいちなにがやりたいのかわからないな。
なにをしたいの?
おれのソース見てもなにしているかわからなかった?
内部文字コードはutf-8であっている?
あのソースは
php内部文字エンコーディング→header出力→出力バッファ開始
XML宣言→出力処理→UAからキャリアを判定する
だけど、検索フォームを作っているなら掲示板をはろうか?
少しは役立つかも。
後あなたphpの開発経験ある?

671551:2009/12/28(月) 18:54:41 ID:8/lFM/nf
>>668
http://www.mdn.co.jp/webcre/PHP/vol88/
これそのままコピッてうごかないの?
smartyの設定はちゃんとできている?
672668:2009/12/28(月) 19:31:15 ID:???
>>671
ありがとうございます。
これは一文字一文字手打ちで打ちました;;
こんなサンプルがあったとは・・・
smarty設定はまだしていません;;
673nobodyさん:2009/12/28(月) 19:54:27 ID:US0yP5HE
スーパーグローバル変数を自分で追加することはできますか。
674nobodyさん:2009/12/28(月) 20:00:21 ID:???
>>673
runkit.superglobalsという設定でできるそうです。
http://www.php.net/manual/ja/runkit.configuration.php
お騒がせしました。
675nobodyさん:2009/12/28(月) 20:02:11 ID:Zm+8rWo0
うひ?
676551:2009/12/28(月) 20:50:08 ID:8/lFM/nf
しろよ。
動かないのあたりまえだろ?
DBの設定は?
677551:2009/12/28(月) 21:05:58 ID:8/lFM/nf
あれおれ>>553といい>>668
といいなんかつられている?
こいつらもしかしておれをひっかけるために
レスしている?
遊ばれている?
678668:2009/12/28(月) 22:13:46 ID:???
>>677
そんなことないですぜい。
ただPEARやらなんやら難しすぎて
679nobodyさん:2009/12/29(火) 00:26:53 ID:OOP15gnW
uploaderでswfなどflashをアップロードするときにサムネイル画像を作成したいのですが
どうしたらいいでしょうか?
php自体で其れが出来ますでしょうか?
680nobodyさん:2009/12/29(火) 00:41:54 ID:???
681nobodyさん:2009/12/29(火) 01:35:53 ID:???
>>678
cakephp使おうぜ
682nobodyさん:2009/12/29(火) 02:15:20 ID:???
CakePHPは卑怯
683nobodyさん:2009/12/29(火) 02:56:21 ID:???
IDがOOP
684nobodyさん:2009/12/29(火) 03:25:17 ID:???
Firefoxが目指してるOut Of Processの事か
685nobodyさん:2009/12/29(火) 05:01:42 ID:85TzBbP8
【OS名】MacOSX 10.5.8
【PHPのバージョン】php5.25
【連携ソフトウェア】MAMP 1.7.1 (Apache 2.0.59 / MySQL 5.0.41)
【質問内容】

PHPでMySQLデータベースのレコード更新が失敗します。
以下記述でmysql_query送信しているのですが間違っていますか?
(SQLのスレは活発じゃないみたいなのでこちらへ書きました)

UPDATE table SET 'count'='3' WHERE 'id'='1'

以下 mysql_error() の出力結果
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''count'='3' WHERE 'id'='1'' at line 1
686nobodyさん:2009/12/29(火) 05:10:14 ID:???
`
687nobodyさん:2009/12/29(火) 05:11:52 ID:???
UPDATE `table` SET 'count'=3 WHERE 'id'=1
intは`いらない

あとPHPエラーコード見るよりもコンソールで出るエラー見た方がわかりやすいよ
688685:2009/12/29(火) 05:15:45 ID:85TzBbP8
ヴァー。` と ' は違うんですね。
やっぱり単純なミスだったか。
動きました、有難うございました。
689679:2009/12/29(火) 06:02:46 ID:???
>>680
ありがとうございます<m(__)m>
690680:2009/12/29(火) 06:32:23 ID:W5Cv9ckC
http://dreamer-site.net/modules/xpwiki/?Fedora%20Core%206%20ffmpeg#kdc7ebf1
このサイトに行き着いたのですが、configureでエラーが出てしまいました
どこがおかしいのでしょうか、どうぞよろしくお願いしますm(_ _)m


[root@localhost ffmpeg-php-0.6.0]# ./configure
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for a sed that does not truncate output... /bin/sed
checking for cc... cc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether cc accepts -g... yes
checking for cc option to accept ISO C89... none needed
checking how to run the C preprocessor... cc -E
checking for icc... no
checking for suncc... no
checking whether cc understands -c and -o together... yes
checking for system library directory... lib
checking if compiler supports -R... no
checking if compiler supports -Wl,-rpath,... yes
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking target system type... x86_64-unknown-linux-gnu
691680:2009/12/29(火) 06:33:12 ID:W5Cv9ckC
2
checking for PHP prefix... /usr
checking for PHP includes... -I/usr/include/php -I/usr/include/php/main -I/usr/include/php/TSRM -I/usr/include/php/Zend -I/usr/include/php/ext -I/usr/include/php/ext/date/lib
checking for PHP extension directory... /usr/lib64/php/modules
checking for PHP installed headers prefix... /usr/include/php
checking if debug is enabled... no
checking if zts is enabled... no
checking for re2c... re2c
checking for re2c version... invalid
configure: WARNING: You will need re2c 0.13.4 or later if you want to regenerate PHP parsers.
checking for gawk... gawk
checking for ffmpeg support... yes, shared
checking whether to force gd support in ffmpeg-php... no
checking for ffmpeg headers...
configure: error: ffmpeg headers not found. Make sure ffmpeg is compiled as shared libraries using the --enable-shared option

ここまで
692nobodyさん:2009/12/29(火) 09:14:45 ID:1YmGiMBB
a.txt{
あいうえおかきくけこあいうえお↓
さしすせそたちつてとさしすせそ

というファイルから、「す」と「つ」の間の文字を取得したいと思っています。

そこで、関数を調べて以下のプログラムを考えたのですが、手順として問題ないでしょうか?
もし便利な関数があれば教えて頂きたく。
特に「fgets」の使い方がよくわかりません。よろしくお願いします。

1)ファイルのポインタを取得する
aFile = fopen( $a.txt, r);
2)ファイルを1行取得する
While( $LineFile = fgets($aFile) ){
3)ファイル1行の中に”す”と”つ”があるかサーチ
$IdxSta = strpos($LineFile , "す")
$IdxEnd = strpos($LineFile , "つ")
4)"す"と"つ"が両方あり、”す”より”つ”の位置の方があと
if($IdxSta + 1 < $IdxEnd - 1 ){
5)"す"と"つ"の間の文字だけを抜き出す。
$output = mb_substr($LineFile, $IdxSta+1, $IdxEnd-1)
}
}
693nobodyさん:2009/12/29(火) 10:51:53 ID:???
大体いいんじゃない?
正規表現使うという手もあるけど
694553:2009/12/29(火) 10:54:31 ID:ObfZ+/cW
>>551
釣りじゃないですよ、アドバイスありがたいです。
やりたいことは au端末からGETで日本語を送ると、
送信データ、受け取りデータともに文字化けしてしまうので
これを防ぎたい。ってだけです。
ページ(内部文字コード)はすべてutf-8です。
PHP開発経験はありません。簡単なことはわかるのですが、
バッファ云々が?な感じですのでマニュアルなど調べながら
やっています。
コード貼っていただきながらその後あまり時間が取れなかったので、
いまから再挑戦してみます!
695nobodyさん:2009/12/29(火) 11:28:11 ID:???
文字化けですか。
http://hain.jp/index.php/tech-j/2007/02/13/p125 読んでね。
あとは、サイトの文字コードがなんであろうとも Shift-jisで送られてくることがあります。
文字コードの自働検出は当てに出来ません。
GETに渡す値はurlencodeはつかってますよね?
696nobodyさん:2009/12/29(火) 12:17:02 ID:???
>>690
./configure

./configure --enable-shared --enable-swscale --enable-gpl

で実行してみたらどうじゃろ
697nobodyさん:2009/12/29(火) 12:23:52 ID:???
>>694
$_GET["query"] = mb_convert_encoding($_GET["query"],'UTF-8','UTF-8,SJIS,EUC-JP');

っていうのを先頭に入れてみたらどうかの( ・ω・)
698nobodyさん:2009/12/29(火) 12:26:22 ID:???
>>690
そもそもそこの前半のffmpeg自体は--enable-shared付きでインストールできたの?
699694:2009/12/29(火) 12:40:47 ID:ObfZ+/cW
>>695
ありがとうございます。記事読みました。自動変換はアテにならないってことですね。。
いろいろテストした結果、auのみ強制的にshift_jisで送っている(受け取っている)ことは間違いないようです。
ほかにエラーはないので、手動でauのみ指定してやればいいのですが、それがうまくいかない感じなのです。

>>697
ありがとうございます。そちらは指定済みです。mb_detect_encodingでutf-8じゃないときだけconvertしていなのですが、
>>695の記事ではauto detectionもアテにならないようなので、すべて強制的にutf-8にconvertしてみましたがダメでした。
---
結局、>>551さんのutf-8で記述しておいて出力だけshift_jisがよさような気がしていますが、
私の環境ではうまく出力してくれないので、いろいろ試しています。
700694:2009/12/29(火) 13:08:00 ID:ObfZ+/cW
>>551さんの方法での「出力だけshift_jis」は成功しました。
が、文字化けは直りません。ちょっと自分でもわからなくなってきてしまいましたので
問題点を整理しました。長文で申し訳ないですがどなたかお力添えを。。
<実現したいこと>
・「GETのquery stringをUTF-8で送りたい(受け取りたい)」
<前提>
・PHP Version 4.4.9
・DBは一切使用していません
・携帯サイトである
・uaにより3キャリア用+PC用に振り分けているが、変えているのはdtdと
docomoのみContent-typeを変えているだけで「ページやコードはすべてutf-8」
・「GETのデータはurlencodeしている」
<試したこと>
・GETのqueryをutf-8にmb_convertしてもダメ
・ob_start→ob_get_contents→ob_end_cleanと出力だけをshift_jisに変えてもダメ
・受け取り時にurldecodeするなどしてみたがダメ
・queryを表示する際mb_convert_kanaで全角カナを半角カナに変えているのをやめたがダメ

例によってマトはずれなこともやっているかもしれませんが。。。
701nobodyさん:2009/12/29(火) 13:14:16 ID:???
AUはGETが必ずsjisになってしまうらしいからのー。POSTならいいらしいけど。
702nobodyさん:2009/12/29(火) 13:34:33 ID:???
>>700
>>ページやコードはすべてutf-8
違うね。もう一度確認してみな
703694:2009/12/29(火) 15:47:23 ID:ObfZ+/cW
>>551さんのコード
ob_start(); を ob_start("mb_output_handler");
としたら文字化け解消しました。
>>551さんをはじめ、アドバイスくださった方々本当に
ありがとうございました。年内に解決できて非常に助かりました。
704551:2009/12/29(火) 16:14:43 ID:+XZPband
今見た。
よかったな。解決できて。
今日さ、大掃除で時間がなくて。
ごめんね。
705nobodyさん:2009/12/29(火) 16:50:39 ID:VOALtVVE
PHPでEthnaとZendを使ってるんですけど、
例外処理がよくわかりません。

Zend DB側での例外発生時(SQLエラーとか)でも
呼び出し元のほうをtry,catchして処理するのが普通?

常駐先のPHPプログラムは例外をthrowだけして処理してる
部分が見あたらないので、そんな処理でいいのか迷ってます。

アドバイスお願いします。php5.2.xです。
706680:2009/12/29(火) 20:46:01 ID:W5Cv9ckC
>>696
レスありがとうございます!

しかし結果は同じでした・・


[root@localhost ffmpeg-php-0.6.0]# ./configure --enable-shared --enable-swscale --enable-gpl
configure: WARNING: unrecognized options: --enable-swscale, --enable-gpl
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for a sed that does not truncate output... /bin/sed
checking for cc... cc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether cc accepts -g... yes
checking for cc option to accept ISO C89... none needed
checking how to run the C preprocessor... cc -E
checking for icc... no
checking for suncc... no
checking whether cc understands -c and -o together... yes
checking for system library directory... lib
checking if compiler supports -R... no
checking if compiler supports -Wl,-rpath,... yes
checking build system type... x86_64-unknown-linux-gnu
707680:2009/12/29(火) 20:49:17 ID:W5Cv9ckC

checking for PHP prefix... /usr
checking for PHP includes... -I/usr/include/php -I/usr/include/php/main -I/usr/include/php/TSRM -I/usr/include/php/Zend -I/usr/include/php/ext -I/usr/include/php/ext/date/lib
checking for PHP extension directory... /usr/lib64/php/modules
checking for PHP installed headers prefix... /usr/include/php
checking if debug is enabled... no
checking if zts is enabled... no
checking for re2c... re2c
checking for re2c version... invalid
configure: WARNING: You will need re2c 0.13.4 or later if you want to regenerate PHP parsers.
checking for gawk... gawk
checking for ffmpeg support... yes, shared
checking whether to force gd support in ffmpeg-php... no
checking for ffmpeg headers...
configure: error: ffmpeg headers not found. Make sure ffmpeg is compiled as shared libraries using the --enable-shared option

引き続き皆様のお力をお借りしたいです どうぞよろしくお願いしますm(_ _)m
708nobodyさん:2009/12/29(火) 22:00:03 ID:???
>>705
マルチ乙
709nobodyさん:2009/12/29(火) 22:35:04 ID:???
>>707
勘違いしてた(・ω・)
./configure --enable-shared
は、ffmpeg-phpじゃなくて、ffmpeg本体のconfigure時にやるですよ
710nobodyさん:2009/12/29(火) 23:09:51 ID:Vq+TKsF0
LAMP環境で、DBのタイムアウトを過ぎてもブタウザに操作が返ってこないのを何とかしたいんですが、
どうすればいいでしょうか?
711nobodyさん:2009/12/29(火) 23:10:36 ID:???
そんなにブタを毛嫌いしなくても
712nobodyさん:2009/12/29(火) 23:24:00 ID:pB5Ltbyz
php.iniのmbstring.internal_encodingがEUC-JPになっていたので
ini_set('mbstring.internal_encoding', 'UTF-8');
としたのですが、フォーム処理時にEUCでデータが送信されているようで、
文字化けを起こしてしまいました。

ini_setで指定していてもphp.iniに設定されている文字コードの方が優先されるのでしょうか?
713nobodyさん:2009/12/29(火) 23:38:05 ID:???
mbstring.internal_encodingとかどうでもいいじゃん
714nobodyさん:2009/12/29(火) 23:39:37 ID:???
PHPなんてどうでもいいじゃん
715nobodyさん:2009/12/29(火) 23:39:52 ID:???
送信側の問題?受信側の問題?
716nobodyさん:2009/12/29(火) 23:45:40 ID:+XZPband
>>710
エラーメッセージを出せばよいのでは?
>>712
http://www.php.net/manual/ja/mbstring.configuration.php
717nobodyさん:2009/12/29(火) 23:52:55 ID:???
まずはphpinfo()で確認。
718nobodyさん:2009/12/30(水) 00:09:26 ID:skGmLU+A
>>716
えーと、質問の仕方が悪かったのかな。
サーバ側でDBにクエリーなげたまま、タイムアウトしないので、
ブラウザがレスポンス待ち状況といった感じです。
一応、my.iniファイルで
innodb_rollback_on_timeout = on
と設定してるのですが、機能してない感じです@@
719718:2009/12/30(水) 00:10:11 ID:skGmLU+A
あ、あと
my.iniで
innodb_lock_wait_timeout = 10
も設定してます。
720nobodyさん:2009/12/30(水) 00:16:48 ID:a1sThYv5
MySQLのDBにXMLをキャッシュするためのライブラリはないでしょうか?
721718:2009/12/30(水) 01:17:55 ID:skGmLU+A
自己解決しました。
MySQLって、ロックのタイムアウトが設定できないみたいですね。
バカみたいに永遠に待ち続けるみたいです。
だったらinnodb_lock_wait_timeout なんていう紛らわしいオプションは何なんだろ。
フリーだけあって、クソDBだこりゃw
722nobodyさん:2009/12/30(水) 06:44:24 ID:???
PHPからDBにアクセスしてるんだし
PHPのタイムアウトが返ってくるでしょ
723nobodyさん:2009/12/30(水) 08:48:55 ID:5adIyASg
質問があります。

Web上のhtmlファイルをfgets()関数を用いて順次行を読み取りたいと思うのですが、

$FileHtml = "○×.html";
for(){
$LineHtml = fgets($FileHtml)
}

とすれば、$FileHtmlが2行目以降のポインタを次々取得し、
2行目以降のソースも取得できるのでしょうか?
724nobodyさん:2009/12/30(水) 09:56:59 ID:???
GET_LOCKでタイムアウト設定できたような(・ω・)

>>723
なにからつっこめば
http://www.php.net/manual/ja/function.fgets.php
725723:2009/12/30(水) 10:09:12 ID:5adIyASg
$AddressHtml = "○×.html";
$FileHtml = fopen($AddressHtml);
$LineHtml1 = fgets($FileHtml)
$LineHtml2 = fgets($FileHtml)

ごめんなさい。
htmlも fopen()しないとだめですよね。
for文等は省略していましたが、解りにくいので書き方を変えました。
ファイルの2行目のポインタを得たいのですが、その方法が良くわかりません。
上記構文ではうまくいかないように思うのですが・・・
726723:2009/12/30(水) 10:13:46 ID:5adIyASg
っと、下に例が載ってましたね。
fopen(,r)が抜けていましたが。
それを除けば725で正常に取得できると思って良い・・・のかな。
727nobodyさん:2009/12/30(水) 10:19:35 ID:???
>>726
ためしてみるといいよ
728nobodyさん:2009/12/30(水) 10:19:58 ID:???
君がそれでいいのなら
729nobodyさん:2009/12/30(水) 11:31:31 ID:???
fileでいいじゃん
730723:2009/12/30(水) 12:44:43 ID:5adIyASg
Zendを導入するのに時間がかかってしまいました。

多いものだと2万行くらいのHtmlファイルを読み込む可能性があるため、
fileではメモリが怖いなぁと思って、fgetsを使おうと思ったのですが・・・

しかし、fileだと問題無く動くのですが、思い通り動いていません。
724さんのを参考にというかアドレスをhtmlに書き変えただけでやってみましたが、
String値しか取得できていませんでした。
あと、どこを直せばいいのでしょうか?
<?php
$handle = @fopen("http://○×.html", "r");
if ($handle) {
while (!feof($handle)) {
$buffer = fgets($handle, 4096);
echo $buffer;
}
fclose($handle);
}
?>
731nobodyさん:2009/12/30(水) 13:53:29 ID:???
試しに730のソースのURLだけをこの板のアドレスにしたら、
全く同じページの出力が出来た。
ちゃんとそのソースは動くと思うけど
732nobodyさん:2009/12/30(水) 14:12:15 ID:nBvXEJIC
初心者です。PHPのエラーについて質問がございます。
環境はwindows xp、自宅サーバー(apache Version 2.053)、PHP Version 4.3.11

レッツPHPさんのチャットスクリプト http://php.s3.to/chat/ch.php.txt(ソース)
を自宅サーバーで公開しようとしたところ、下記のようなエラーが出てしまいました。

自宅サーバーを構築する前に、レンタルサーバーでテストした際には問題なく実行してくれました。


Notice: Use of undefined constant n - assumed 'n' in C:\www\saba\cf\chatroom.php on line 13

Notice: Use of undefined constant c - assumed 'c' in C:\www\saba\cf\chatroom.php on line 14

Notice: Use of undefined constant l - assumed 'l' in C:\www\saba\cf\chatroom.php on line 22
.
.
.
なぜ、テストのときはちゃんとできたのに、できなくなったのでしょうか。。

どのような事が考えられますでしょうか・・
よろしくお願い致しますm(_ _)m
733nobodyさん:2009/12/30(水) 15:14:29 ID:???
そういう配布してるスクリプトって適度に欠陥が多い事があるからねぇ
ログイン関係で実は致命的なセキュリティホールがあるなんてざらだし。

Use of undefined constantはクオート付けろってエラー
$_GET[abc] と $_GET['abc'] はほぼ同じ動きをするけど、セキュリティ的に非常に甘い。時に致命的なロジックエラーになる可能性が高い。

自鯖ならphp.iniの中から
error_reporting = どうたらこうたら
って項目を見つけて
error_reporting = E_ALL & ~E_NOTICE
に書換える
734nobodyさん:2009/12/30(水) 15:15:44 ID:???
まぁ、私なら配布されてるソースコードそのものをクオート付きに書換えるけど
735nobodyさん:2009/12/30(水) 15:57:39 ID:???
>>セキュリティ的に非常に甘い
なぜ?
736nobodyさん:2009/12/30(水) 16:07:36 ID:???
セキュリティじゃなくてロジック的に甘いでした。
$array['abc'] = '123';
echo $array[abc]; // 123
define('abc', 'def');
echo $array[abc]; // NULLなので表示されない

まぁ連想配列でクオートなしってのは推奨されてない書き方なんで止めるべき
737nobodyさん:2009/12/30(水) 17:06:42 ID:???
>>733さん
ありがとうございます。
error_reporting = E_ALL & ~E_NOTICEに書き換えようとした所、
もう既にこのような設定になっていました。

>>734さん
おっしゃる通り、クオート付きコードに書き換えようと調べてみましたが、
無知な初心者がすぐにできるような事ではなく、無理でした。

関係ないかもしれませんがphp.iniのmagic_quotes_gpc = On をOffにしてみましたがやっぱりダメでした。

年内にはできるようにしたかったのですが無理そうです。。

ありがとうございました。。
738nobodyさん:2009/12/30(水) 17:20:03 ID:???
$_GET[n] を $_GET['n'] に書き換えるだけなんだが。
739nobodyさん:2009/12/30(水) 18:28:44 ID:???
>>730
String値しか取得できていませんでした っていうのはどういう意味かの(・ω・)
740nobodyさん:2009/12/30(水) 18:55:33 ID:???
かわいいの(・ω・)
741nobodyさん:2009/12/30(水) 19:57:03 ID:???
毎度、申し訳ございません。。
$_GET[n]を$_GET['n']に書き換えましたが以下のようなエラーが出てしまいました。

Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' in C:\www\saba\cf\chatroom.php on line 52

なので、$_GET[t]や$_GET[ns]などにも''を付けて、みましたが同じエラーが出てしまいます。

なので、元に戻しエラーをよく見てみると、、
例:Notice: Use of undefined constant n - assumed 'n' in C:\www\saba\cf\chatroom.php on line 13
これについて、なんとなく13行目のnに'n'を付けて下さい。と言う意味と捕らえて他の行も同じように書き換えました。
そしたらエラーが大分なくなりました。>>738さんありがとうございました!
しかし、、、


Notice: Undefined index: l in C:\www\saba\cf\chatroom.php on line 22
というエラーが残ってしまいました。

このタイプのエラーについて調べてみると、
htmlspecialchars(@)を使うと消せるとありましたがうまくいきません・・、


※エラー部分の22行目のソースです
$l = ($_GET['l'] == "") ? 10 : $_GET['l'];

このソースをhtmlspecialchars(@)を使って自分なりに
htmlspecialchars(@$l = ($_GET['l'] == "") ? 10 : $_GET['l'];)
としてみましたがエラーとなってしまいました。。

どのようにかけばエラーが消えますでしょうか・・・

すみません。よろしくお願い致しますm(_ _)m
742nobodyさん:2009/12/30(水) 21:20:42 ID:???
>>741
なんか色々すごいな。
エラーを出なくするには
$l = (isset($_GET['l']) && $_GET['l'] == "") ? 10 : $_GET['l'];
$l = (empty($_GET['l'])) ? 10 : $_GET['l'];
$l = (!empty($_GET['l'])) ? $_GET['l'] : 10;
とか。
~E_NOTICEしてれば出ないはずなんだけどね。
743nobodyさん:2009/12/30(水) 22:21:02 ID:???
実はxamppだからphp.iniがたくさんあるとか?
プログラムの一番最初に
error_reporting(E_ALL ^ E_NOTICE);
を追加するって技もあるんだけど、こういうのだと難しそうだしなぁ。
744nobodyさん:2009/12/30(水) 22:32:33 ID:???
なんでxamppだとphp.iniがたくさんあんの?
745nobodyさん:2009/12/30(水) 22:41:21 ID:+olHzS1B
つーかxamppつかわないでみたら?
後xamppもphp.iniは一個だけでしょう?
746nobodyさん:2009/12/30(水) 22:44:54 ID:???
phpフォルダの中にphp.iniとphp5.iniとphp4フォルダがあって、
さらにphp4の下にphp.iniとphp4.iniがあるっていう構造だったり。
でも変更が必要なのはapache/bin/php.iniだという、
初心者は確実に勘違いするような感じだったりする。
747nobodyさん:2009/12/30(水) 23:27:25 ID:AOSiAt9q
3147483647くらいのでかめの数値を(int)すると負の値になるのですが
これは一体どういうことです?
$a = 3147483647;
echo (int)$a; // -1147483649
748nobodyさん:2009/12/30(水) 23:40:28 ID:???
仕様はご存知かな?
749nobodyさん:2009/12/30(水) 23:56:32 ID:???
>>746
今はもうないぞ
750nobodyさん:2009/12/31(木) 00:21:31 ID:???
例の彼だろ。さわるなよ
751680:2009/12/31(木) 05:48:39 ID:a+pevmsQ
>>709
お礼遅くなりましたが有難うございます
うまくできました
感謝です
752nobodyさん:2009/12/31(木) 10:41:15 ID:???
2009年まとめPHPスレから巣立った先輩

正規表現君
OCN君
ちんぴら君
753nobodyさん:2009/12/31(木) 11:53:17 ID:F0ShAh3c
集合知をしり、ユーザーさんが商品を検索した際に
お薦めの商品(アマゾンみたいなぁ)を表示させたいのですが

参考になるサイトとかライブラリがあれば教えてください
754nobodyさん:2009/12/31(木) 11:59:25 ID:???
>>753
IEで2ちゃんのスレを片っ端から見てみろ
755nobodyさん:2009/12/31(木) 12:12:07 ID:F0ShAh3c
>>ないよ!
756nobodyさん:2009/12/31(木) 12:17:38 ID:F0ShAh3c
自分で見つけたわ
レコメンドエンジンっていうんだね
ttp://dameda.org/2009/09/02/post_292.html
757nobodyさん:2009/12/31(木) 12:28:04 ID:???
宣伝乙
758nobodyさん:2009/12/31(木) 12:35:37 ID:???
PHP5.3以前の環境でstr_getcsvと同等のロジックを作りたいのですが
「PHP CSV」と検索してもファイルから前提のfgetcsvでの利用方法ばかりで
文字列からの読み込みの情報が見あたらないです。
CSVデータはファイルから読み込むのではなくて変数内の文字列から処理させる良い方法は無いでしょうか?

自分で考えた無理やる方法としては
文字列の内容を作業ファイルを作ってファイル書き込みしてそれをfopenでオープンしてfgetcsvで読み込む方法。

ただ関数でも作って何とかなるなら参考になるサイトとか無いですか?もしくは関数を書いてもらえれば助かります。
759nobodyさん:2009/12/31(木) 12:49:47 ID:???
まずスレタイを読んでもらえれば助かります。
760nobodyさん:2009/12/31(木) 12:52:43 ID:???
phpができれば就職できますか?
761nobodyさん:2009/12/31(木) 12:56:37 ID:oi0jVub9
>>760
できません。
762nobodyさん:2009/12/31(木) 13:15:47 ID:???
>>759
>>1を読んでからの質問ですが・・・?
763758:2009/12/31(木) 13:15:50 ID:AqAvYeuS
>>759
ごめん。ID出し忘れた。
でファイルに書き込むのではなくてメモリ上に書き込んでの方法を今試しているのですが
$data_array = array("111,222,333,444","あいうえお,かきくけこ,さしすせそ");

$data = join("\n",$data_array);

$fp = fopen('php://memory', 'r+');
fwrite($fp, $data);
rewind($fp);
while ($value = fgetcsv ($fp, 1000, ",")) {
print_r($value);
}
fclose($fp);
こんな感じのサンプルができた。
これよりスマートな実現方法ってあるかな?

764nobodyさん:2009/12/31(木) 13:22:53 ID:???
言葉に気をつけろキチガイ
ど偉そうに質問していいスレ池バカ
765nobodyさん:2009/12/31(木) 13:35:23 ID:???
>>763
◆質問する時の注意
・ 質問者として、態度をわきまえること。

以下誘導
http://pc11.2ch.net/test/read.cgi/php/1158647441/l50
766nobodyさん:2009/12/31(木) 16:19:53 ID:???
また質問者に文句だけいって回答しないおまえか。反省しないのな。来年は自重しろよ?

>>758
http://www.google.com/codesearch/p?hl=ja#c6JkLta30kQ/trunk/qtxtdb.class.php&q=str_getcsv
507-556行
767758:2009/12/31(木) 17:21:43 ID:AqAvYeuS
>>765
何処に問題ありますか?

>>766
ありがとうございます。
こんなそのままのソースがあるとは思いませんでした。
ただ、一つ気になるのが「License: Unknown」くらいでしょう。
今書いているソース商用にも使うかも知れないので下手(GPL)なライセンスのソースを
組み込むわけにも行かないのでこのソースを読んで自分でアルゴリズム構築し直して
ソースを書き起こしなおした方がいいかも知れませんね。

とりあえず現状ではPHP5.3.0以上ではstr_getcsvで
5.1.0から5.2.xでは自分で書いた>>763の方式で(php://memoryが5.1.0からのサポートなので)
でそれ以前では>>766さんが出してくれたソースをベースにって事になりそうです。
768nobodyさん:2009/12/31(木) 17:36:24 ID:???
回答者の態度も大概ひどいことw
回答者だからといって調子に乗るな的なことをテンプレいれてもいいのでは。
769nobodyさん:2009/12/31(木) 18:28:19 ID:???
>>768
スレ違い
770758:2009/12/31(木) 18:35:18 ID:AqAvYeuS
ちょっと気になったけど
>>766で書いてくれたURL先のソース使うのと
>>763での方式で「'php://memory」ではなくて実際にファイルに一時的に書き出す方式はどっちがはやいのかな?
検証してみた方がいいかな。
ステップ数だけはファイルに一時的に書き出してfgetcsvで拾ってくる方式なのは確かだけど
771nobodyさん:2009/12/31(木) 18:47:39 ID:Y4/O1MTA
お前らもめるなよ。
だいたいなんでphpとかやっているんだよ。
大晦日に
772nobodyさん:2009/12/31(木) 21:40:41 ID:???
>>768
態度が悪いのは回答者ではなくて
回答せずにヤジだけ飛ばすバカ。
どうせこういうヤジだけの奴はPHPすらろくにできないのでしょうね。
どうしてそんなPHPできない奴が、このスレにいるのかは疑問だけどね。
773nobodyさん:2009/12/31(木) 22:12:33 ID:???
>>771
元旦もやるよ!
774nobodyさん:2009/12/31(木) 22:31:33 ID:???
ごめ、俺ここ2日程php置いといてJavaScriptいぢってる。
775nobodyさん:2009/12/31(木) 22:44:48 ID:???
>>772
自己紹介乙!
776nobodyさん:2009/12/31(木) 22:56:14 ID:???
>>772
スレタイが既に態度デカイからな
777nobodyさん:2010/01/01(金) 00:22:34 ID:adVuwjbe
おまえらあけおめ
去年よりもphpができるようになりたいな。
phpの仕事がへりませんように
778nobodyさん:2010/01/01(金) 00:38:34 ID:???
心配しなくて良い、増やしてあげるよ
サービス残業を
779nobodyさん:2010/01/01(金) 01:41:30 ID:???
サビ残くらいでガタガタ言うな
780679:2010/01/01(金) 05:42:56 ID:Yt86zcJv
ffmpegでゲームflashから画像抽出は出来ないんでしょうか?
動画なら抽出出来るのですが、ゲームだと出来ません
あと、抽出した画像のサイズを例えば、300×300以内にサムネイルって出来ますでしょうか?
どうぞよろしくお願いします<m(__)m>
781nobodyさん:2010/01/01(金) 08:48:49 ID:???
あけましておめでとう
782nobodyさん:2010/01/01(金) 10:41:31 ID:???
>>780
動画変換だから無理なんじゃないかなぁ
こっちで聞くといいよ(・ω・)
http://pc11.2ch.net/test/read.cgi/linux/1232095273
783679:2010/01/01(金) 11:26:51 ID:Yt86zcJv
>>782
ありがとう
そっちで聞いてみます
784nobodyさん:2010/01/01(金) 16:53:29 ID:A1Hlzrb8
日本人で、これがなくちゃ作業できないってぐらいのPHPでつくられた
オープンソースある?

785nobodyさん:2010/01/01(金) 17:18:16 ID:???
日本語で
786nobodyさん:2010/01/01(金) 18:27:57 ID:A1Hlzrb8
>>785
Smarty,MySQL,ZF,CakePHP,wordpressレベルのオープンソース作った日本人いる?
787nobodyさん:2010/01/01(金) 18:28:42 ID:???
いるよ
788nobodyさん:2010/01/01(金) 18:29:03 ID:???
いらない
789nobodyさん:2010/01/01(金) 18:36:06 ID:???
>>788
日本語でおっけ〜m9(^Д^)プギャー
790nobodyさん:2010/01/01(金) 18:51:34 ID:???
MySQL??
791nobodyさん:2010/01/01(金) 18:56:53 ID:???
たとえば日本人もFirefoxの開発に携わってる
792nobodyさん:2010/01/01(金) 19:00:47 ID:???
日本人が作ったやつだからな
793nobodyさん:2010/01/01(金) 19:11:05 ID:???
オープンソースなのに日本人限定なんておかしな話だな
794nobodyさん:2010/01/01(金) 19:37:23 ID:z0QJlOXo
ブラウザに出力するソースコード(PHP,HTML)の色分けを簡単に行ってくれるライブラリってありますか?
PEARとかにありそうなんだけど、みつかりません。探し方が悪い?

function とか class とか $xxx とかコメント(/*〜*/)に自動的に<span style="red">とか付けてくれるライブラリです。
795nobodyさん:2010/01/01(金) 19:40:00 ID:???
JavaScriptで動く物ならsyntaxhighlighterとかあるけどPHPは有ったかな
796nobodyさん:2010/01/01(金) 19:43:55 ID:A1Hlzrb8
ブログみてるとすげー難しいこと書いてる人いるじゃん
そいつら書くことは立派だが、なんかなぁ〜

あ、おれはもっとカスだけど


797nobodyさん:2010/01/01(金) 19:44:10 ID:???
highlight_file()
highlight_string()
もしくは、拡張子をphpsにして表示。
798nobodyさん:2010/01/01(金) 19:45:36 ID:A1Hlzrb8
PEARのText_Highlighter
799nobodyさん:2010/01/01(金) 19:47:28 ID:???

- ファイル名.phps にしてアクセスすると
ソースが色づけされて表示される.
- 方法
httpd.conf に以下を記述
AddType application/x-httpd-php-source .phps
800 【大凶】 【1280円】 :2010/01/01(金) 20:06:36 ID:???
おまえらアケオメ
今年もぐだぐだ議論しような
801nobodyさん:2010/01/01(金) 20:08:16 ID:z0QJlOXo
>>795
あ、JavaScriptだとサーバーに負荷がかかんなくていいですね!

>>797 >>799
なるほど!!そんな方法があったんですね!!

>>798
ありがとうございます!
802nobodyさん:2010/01/01(金) 21:00:26 ID:hR+m4MNr
あけましておめでとうございます

test.php?hoge=1&test=2にアクセスするとYESと表示されるんですけど
test.php?hoge=1 にアクセスした時に、OKと表示させたいので下記のようなコードを作り
希望通りにはなったのですが・・・・

testは2だけではなく 2,3,4,5,・・・・20まで続いてます。
これをif文でやるとどれだけ手間がかかることやら、、どなたか良い方法教えてください

if($_GET["hoge"] ==1 && $_GET["test"] == 2){
echo "yes";
}elseif($_GET["hoge"] == 1 && $_GET["test"] == ""){
echo "ok";
}

803nobodyさん:2010/01/01(金) 21:24:41 ID:???
>>786
・XOOPS
海外だとDrupalが人気(Mozillaやホワイトハウスなど有名どころでも採用)
日本ではXOOPSが人気。やっぱり日本人が開発して日本のコミュニティーがしっかりしているから?
日本でDrupalがダメなのは日本Drupal公式さ糸川の管理者がアレだからという説もあるが
・EC-CUBE
ZenCartには機能面はかなわない感じがあるが日本人が開発しただけあって日本人向けの作りになっている。
・Ruby
スクリプト言語としてもう有名ですね。
フレームワークのRuby on Railsの登場で注目も集めましたね。
・PostgreSQL
開発者の一人に石井達夫さんって日本人がいましたよね?
・Namazu
・Hyper Estraier
有名どころの全文検索エンジン

ここら辺がすぐに思いつく物。


http://ja.wikipedia.org/wiki/Wiki
これ見ると日本人が開発したwikiって結構あるね。
804nobodyさん:2010/01/01(金) 21:32:35 ID:???
>>802
設計がおかしいです
もうちょっと具体的にどういうことをするのかを書けば適切なアドバイスができます
805nobodyさん:2010/01/01(金) 21:34:04 ID:???
>>802
俺だったら
switch($_GET["hoge"]){
case 1:
switch($_GET["test"]){
case 2:
echo "yes";
break;
default:
echo "on";
}
break;
}
って書くかな。
そっちの方がこの手の物だソースが読みやすくもなる。
806nobodyさん:2010/01/01(金) 21:35:43 ID:???
PHPで使われてる正規表現エンジン"鬼車"は日本人の開発だったかな
807nobodyさん:2010/01/01(金) 21:41:33 ID:???
PHPだけじゃなくPerl,Ruby,様々なLinuxディストリにも使われてるのか
ttp://www.geocities.jp/kosako3/oniguruma/index_ja.html
ttp://www.freebsd.org/cgi/cvsweb.cgi/ports/devel/oniguruma/
808nobodyさん:2010/01/01(金) 21:54:37 ID:???
switch-case文のネストとか非常に読みにくくなると思うのは俺だけ?

>>802
GETが連続して可読性が悪いのが嫌なら判定部分を関数で外部化するとか、
コードが長くなるのが嫌なら配列なりファイルなりに条件と結果を書いておくとか。

例えばこんな感じ:
@
if (func(1, 2)) {
echo "yes";
} else if (func(1, "")) {
echo "ok";
}
function func($hoge, $test) {
return $_GET["hoge"] == $hoge && $_GET["test"] == $test;
}
A
$array = array( 1 => array( 2 => 'yes'), array( "" => 'ok'));
echo array[$_GET['hoge']][$_GET['test']];
B
data.csv
---------------------------------------------
1,2,yes
1,,ok
---------------------------------------------
foreach (file('data.csv') as $line) {
$line = explode(',', $line);
if ($_GET["hoge"] == $line[0] && $_GET["test"] == $line[1] ) {
echo $line[2];
}
809nobodyさん:2010/01/01(金) 21:56:22 ID:???
}
最後抜けてた。試してないからこんな感じということで。
810nobodyさん:2010/01/01(金) 22:11:37 ID:???
>switch-case文のネストとか非常に読みにくくなると思うのは俺だけ?
インデントしっかりやっておけばそうでもないよ。
switch使い慣れてないとbreak;付け忘れる人がいるけど
どっちにしても
>testは2だけではなく 2,3,4,5,・・・・20まで続いてます。
って場合どんどんと比較パターンが多くなってくるとifだけで表現させていくとswitchより読みにくくなる。
811nobodyさん:2010/01/01(金) 22:26:03 ID:A1Hlzrb8
>>test.php?hoge=1&test=2 YES
>>test.php?hoge=1 OK


>>testは2だけではなく 2,3,4,5,・・・・20まで続く
配列に3で表示したい内容を代入
$array[3] = 'こんにちは';

if($_GET["hoge"] == 1) {
$num = $_GET["test"];
echo $array[$num];
}
812nobodyさん:2010/01/01(金) 22:28:36 ID:???
>>811
それだと
>test.php?hoge=1 OK
の処理を追加しないとダメだよ。
813nobodyさん:2010/01/01(金) 22:28:44 ID:nSuyooiG
PHPのマニュアルのミラー多すぎない?
関数名で検索すると、同じ内容のページがぎょうさん
814nobodyさん:2010/01/01(金) 22:37:21 ID:hR+m4MNr
>>805
ありがとうございます
うまくできました!

他の方ももいろいろありがとうございました。
815812:2010/01/01(金) 22:39:34 ID:???
>>811
俺もその配列を使う方法はすぐに考えついて
しかもifすら使わずに二次元配列を使う方法を考えついた。
でも
>test.php?hoge=1 OK
の場合の事を考えるとめんどくさくてカキコするのやめた。
あえて考えて書くと
$string[1] = array(-1=>"on",2=>"yes");
if(strcmp($_GET["test"],"")==0){
$test = -1;
}else{
$test = $_GET["test"];
}
echo $string[$_GET["hoge"]][$test];
こんな感じか?
816nobodyさん:2010/01/01(金) 22:40:39 ID:???
>>813
それわかる。
関数のいろいろなサンプル探しているのにマニュアルのミラーだからサンプルもみんな同じって事あるよ。
817nobodyさん:2010/01/01(金) 22:41:18 ID:A1Hlzrb8
>>812
$_GET['test'] == ''なら echo 'ok';
あるなら811ってこと?
818nobodyさん:2010/01/01(金) 22:44:57 ID:A1Hlzrb8
>>812
$_GET['test'] が空(数値でない)なら echo 'ok';
あるなら811ってこと?
カンマ抜けちゃった

819nobodyさん:2010/01/01(金) 23:02:03 ID:???
>>818
文字列比較で==使うなよ。
http://blog.zuzara.com/2007/05/10/221/
820nobodyさん:2010/01/01(金) 23:03:51 ID:7KQbSJC0
任意のウェブサイトの要約を自動的に生成するプログラムや参考になるサイトを知りませんか?
検索エンジンのスニペットのような感じをイメージしています。
meta descriptionから要約を作成しようとしたのですが、記述していないサイトもあるので不十分でした。
821nobodyさん:2010/01/02(土) 00:38:06 ID:???
Googleでそのウェブサイトを検索した結果から抜き出す
822nobodyさん:2010/01/02(土) 00:44:45 ID:EfcqZQnm
>>821
ありがとうございます。でもインデックスされていないサイトには使えないので、別の方法がありがたいです。
404などの場合は仕方ないですが・・
823nobodyさん:2010/01/02(土) 01:12:21 ID:???
824nobodyさん:2010/01/02(土) 07:05:00 ID:b9SN1cw1
echo '処理1';
echo '処理2';
という順番で処理が書かれているときに
処理1が重いので、処理2から先に実行してみたいのですが
どのようにすればよいでしょうかアドバイスよろしくおねがいします
825nobodyさん:2010/01/02(土) 07:30:11 ID:???
echo '処理2';
echo '処理1';
826nobodyさん:2010/01/02(土) 07:31:18 ID:b9SN1cw1
>>825
すいません注釈で書くべきだったですね。
>という順番で処理が書かれているとき
限定です。
827nobodyさん:2010/01/02(土) 10:16:17 ID:???
>>813
アフィ厨が多いから仕方が無い
てっとりばやく楽に検索に載るからアフィ厨載ってくる
828nobodyさん:2010/01/02(土) 11:50:19 ID:???
>>825
PHPはマルチスレッド機能はないらしいのだが裏技を使えば似たようなことは可能
PHP マルチスレッドでぐぐれば結構ヒント出てくると思う
マルチスレッドでやれば処理1と2が順次ではなく並列で処理することが可能
829828:2010/01/02(土) 11:51:10 ID:???
アンカミス
>>826宛てね
830820:2010/01/02(土) 12:16:56 ID:EfcqZQnm
>>823
論文を読んで技術を自力でPHPに実装する実力ありません(泣)
当該論文からサマライズプログラム作れませんか?
831nobodyさん:2010/01/02(土) 13:03:31 ID:???
じゃ実力つけれ
832nobodyさん:2010/01/02(土) 15:02:40 ID:OvKDiFnJ
質問です。
一見C++では怒られそうなデータ配列ですが、
PHPでは下のような指定も可能なのでしょうか?

$DATA['OWN'] = "ME";
$DATA[$IDX]['YY'] = 10;
$DATA[$IDX]['MM'] = 1;
$DATA[$IDX]['DD'] = 2;
833nobodyさん:2010/01/02(土) 15:30:54 ID:5+ri1/AE
新年あけましておめでとうございます。


フリースクロプトを用いて、実行すると、
Parse error: syntax error, unexpected '[', expecting ']' in C:\www\jisaba\cf\chat01.php on line 61
エラーが出てしまいます。
おそらく、61行目に'['と']'を付けろと言われてると思いますが、どこに追加すればいいのでしょうか。。
61行目は
$ad1 = $ad_list1[$ad_key1[0]];
となっております。

よろしくお願い致します。
834nobodyさん:2010/01/02(土) 15:44:54 ID:???
>>833
unexpected '[',  - なんか変なのきた
expecting ']' - こういうのが来る筈なのに
と分けて読む。
$ad_key1[0]
      ^ これが変なものと思われてる。
835nobodyさん:2010/01/02(土) 15:57:03 ID:???
>>832
>一見C++では怒られそうなデータ配列ですが、
>PHPでは下のような指定も可能なのでしょうか?
C言語系だと構造体があるからそっちで実現した方がいいからね。
PHPでは構造体が使えないからそうやるしかないよね。
836nobodyさん:2010/01/02(土) 16:40:07 ID:???

>>834さんありがとうございました!

<?php
(略)
echo <<<_INN
<HR size=1>

<center>てすと</center>
<HR size=1>
(略)
?>
これの★の部分に
-----------------------------------------------
srand((double)microtime()*1000000);
$ad_list1 = file("/home/php/public_html/ad.txt");
$ad_key1 = array_rand($ad_list1, 2);
$ad1 = $ad_list1[$ad_key1[0]];
// 表示
echo $ad1;
-----------------------------------------------
を入れると
Parse error: syntax error, unexpected '[', expecting ']' in...
エラーが出てしまいます。834さんの言う通り、
[を消したり、色々してみましたがダメでした。

やはりできないのでしょうか・・
($ad_list1 = fileで指定してる.txtファイルの存在や書き方は問題ないと思われます。)

よろしくお願い致します。
837nobodyさん:2010/01/02(土) 17:08:13 ID:???
>>836
ヒアドキュメントの中にコードは書けないよ
あとスレタイも読んで
838nobodyさん:2010/01/02(土) 18:33:54 ID:5+ri1/AE
>>837さん
ありがとうございました!
839nobodyさん:2010/01/02(土) 21:06:55 ID:s3eVgMyd
>>835
Cで>>832のを構造体で書く場合、どうかくのでしょうか?
840nobodyさん:2010/01/02(土) 21:07:19 ID:???
>>837
え?
841835:2010/01/02(土) 22:43:49 ID:???
>>839
板違い
842nobodyさん:2010/01/02(土) 22:45:50 ID:???
>>841
どこできいたらいいの?
843nobodyさん:2010/01/02(土) 22:50:51 ID:???
とりあえずム板行くよろし。
844832:2010/01/02(土) 23:19:00 ID:OvKDiFnJ
回答ありがとうございます。
無理だと思ったら可能なのかー。
PHPなんでもあれですね。
845nobodyさん:2010/01/03(日) 01:37:05 ID:leVs71yL
HTMLを解析して、
aタグのhrefやimgタグのsrcなどをすべて絶対URLに直したいです。
baseタグなども考慮して・・・

なにかよいライブラリなどありますでしょうか?
846nobodyさん:2010/01/03(日) 02:44:38 ID:???
フィッシング用にそういうスクリプト書いてるけど、@importやcss中のURIや
JavaScriptのXMLHttpRequest.open()なんかにも対応すると、結構大変。
ほぼ完璧なものがあったら、俺も知りたい。
847nobodyさん:2010/01/03(日) 03:54:04 ID:???
CSVをアップロードして、そのデータ内容を表示したりグラフ化する為に便利なサンプルはありますでしょうか?
848nobodyさん:2010/01/03(日) 03:56:47 ID:???
ないです
849nobodyさん:2010/01/03(日) 05:01:36 ID:???
上の質問は解決しました。
次の質問として、ワンクォーテーション内で囲まれたファイル名を日付にしたいのですが、不可能です。
どのような処理にしたら良いでしょうか。
850nobodyさん:2010/01/03(日) 05:04:45 ID:???
スレタイ読まない = ルール守れない
851nobodyさん:2010/01/03(日) 05:57:56 ID:???
上の質問は解決しました。
次の質問として、ワンクォーテーション内で囲まれたファイル名を日付にしたいのですが、不可能です。
どのような処理にしたら良いでしょうか。
852nobodyさん:2010/01/03(日) 06:11:52 ID:???
すきなように処理してください
853nobodyさん:2010/01/03(日) 09:12:19 ID:???
>>845
http://example/a/b/c/d/e/f/g/index.htmlから

../../../../../aa/bb/ccという相対パスから絶対パスを貴様の脳内で置換できないならできません
854nobodyさん:2010/01/03(日) 12:41:17 ID:???
>>853
ライブラリはあるか?っていう話だよ
855nobodyさん:2010/01/03(日) 12:56:33 ID:???
できるかできないか分かるならライブラリがあるかどうかもわかるよな
856nobodyさん:2010/01/03(日) 22:32:34 ID:vxQEL+DQ
配列Aと配列Bを和集合と差集合と積集合の結果を取り出そうと思ってます。
和集合はarray_mergeとarray_uniqueで出来るからいいとして、
差集合と積集合を簡単に取得する方法ってありませんか?

ループを使えば簡単に出来るけど、
もしかしたら既存の関数で出来たりしませんか?
857nobodyさん:2010/01/03(日) 22:35:53 ID:???
>>856
まんまの関数がありますよ
http://jp.php.net/manual/ja/ref.array.php
■array_diff - 配列の差を計算する
■array_intersect - 配列の共通項を計算する
858nobodyさん:2010/01/03(日) 22:37:23 ID:???
>>857
おお、ありましたか。
ありがとうございます。
859sexyphp:2010/01/04(月) 14:44:15 ID:dZXnpRZU
ZFをつかってWebアプリを作成した場合、
第三者に配布を行う時にZFライブラリをWebアプリと同じフォルダ
に収めたいと思っています。

こういうのは可能なんですか
860nobodyさん:2010/01/04(月) 14:47:04 ID:???
まずライセンスを確認してから質問してるのかね君
861sexyphp:2010/01/04(月) 14:51:27 ID:dZXnpRZU
>>860
BSDライセンスって何なの。
俺のソースコードすべてにいちいちコメントアウトしてライセンス協定
書くってことなんですかぁ?
862nobodyさん:2010/01/04(月) 15:09:36 ID:???
863nobodyさん:2010/01/04(月) 15:37:25 ID:jOHjv6Af
新年あけましておめでとうございます。
当方超初心者です。

ただいまこちらの画像アップローダを試しとして設置中です。
h ttp://www.keitai-site.net/php/upbbsi_php/

投稿しようすると、
Fatal error: Call to undefined function mb_convert_kana() in C:\www\jisaba\upbbsi.php on line 244
とエラーがでてしまいます。
extension=php_mbstring.dllのコメントアウトを外して
再起動しましたが、同じエラーがでてしまいます。

(244行目)$str = mb_convert_kana($str,"KV","SJIS"); //半角カナ変換
のSJISをUTF-8に変更しても同じエラー・・



このようなエラーが出る場合、他に原因はあるのでしょうか・・?
よろしくお願い致しますm(_ _)m
864nobodyさん:2010/01/04(月) 15:43:51 ID:???
読み込んでいるphp.iniが違うんでね?
phpinfo関数で、mbstringの箇所がどうなっているか、php.iniの場所はどうなっているか、など確認してみては
865nobodyさん:2010/01/04(月) 15:47:13 ID:???
>>863
半角カナと全角カナを変換するだけの関数だから無くても大した問題はない

あとスクリプトにprint_r(get_defined_functions());を書いたら使える関数の一覧を見られる
866nobodyさん:2010/01/04(月) 15:56:43 ID:???
>>863
超初心者はまずHello worldからやれよ
867nobodyさん:2010/01/04(月) 16:24:38 ID:jOHjv6Af
みなさんありがとうございました。
色々やったけど、結局>>865さんの言うようにその行を無効としました。

そしたら先ほどのエラーは消えたのですが、投稿すると、
画面が真っ白になってしまいました。。

エラーを見たくて、
display_errors = Off←Onにしてもなにも表示されません・・

やっぱりなかなかうまくいかないものですね。。


868nobodyさん:2010/01/04(月) 16:35:35 ID:???
とりあえず、“コメントアウトを外して再起動”ができてないんだよ。
iniファイルが違うか、再起動ができてないか、コメントアウトが外れてないか、dllが存在しないか
どれかはわからんが
869nobodyさん:2010/01/04(月) 16:44:09 ID:???
>>868さん
コメントアウトを外して再起動はしております。

ご期待に添えなくて申し訳ありません。

あきらめます。。
870nobodyさん:2010/01/04(月) 16:46:39 ID:???
いやだからやったつもりだけどできてないから関数が無いって言われるんだろ
エラーログみるとかしなさいよ。あとまずは<?php phpinfo();?> これだけのphp作って実行
871nobodyさん:2010/01/04(月) 16:48:13 ID:???
>>867
エラーによっては画面に何も表示出来ないことがある
echoしてなかったり変なヘッダでブラウザが解釈出来なかったり色々
872nobodyさん:2010/01/04(月) 18:33:50 ID:???
>>869
お前の再起動は間違ってるって言ってるんじゃなくて、
その下に書いてあることをやれと言ってるんだと思うぞ868は
873nobodyさん:2010/01/04(月) 18:40:06 ID:???
>>870
最後の?>は本当はいらないんだよ

<?php phpinfo

セミコロンもいらないこれで動く
874nobodyさん:2010/01/04(月) 18:43:00 ID:???
括弧はどうしたw
875nobodyさん:2010/01/04(月) 19:13:48 ID:???
infoだけでも動く
876nobodyさん:2010/01/04(月) 19:29:35 ID:???
PHPは関数の括弧も省略できます
877nobodyさん:2010/01/04(月) 20:38:28 ID:???
Google見たらリンゴ落ちてきた
878nobodyさん:2010/01/04(月) 22:14:45 ID:l0tw/Bkx
掲示板に書き込んだユーザに自動でパスワードを生成したいんでうすが
$passwd = crypt("");
で問題ないでしょうか?
879nobodyさん:2010/01/04(月) 22:16:30 ID:???
>>878
それで完璧
880nobodyさん:2010/01/04(月) 22:43:27 ID:???
http://jp2.php.net/manual/ja/function.base-convert.php
>frombase
>返還前の number の基数。

タイプミス?
881nobodyさん:2010/01/05(火) 01:56:04 ID:???
質問です

round関数使うと
例えば
round(1.12, 1)は1.1
round(1.16, 1)は1.2と出力されます

そこでround(1.01,1)とやると1.0と出てきて欲しいんですが、1だけです。
何か方法はありませんか?
roundに拘る必要はないのですが、roundくらいしか思いつかなかったので・・・

お願いします
882nobodyさん:2010/01/05(火) 02:05:21 ID:???
round(1.01,2)
883nobodyさん:2010/01/05(火) 02:07:22 ID:???
>>881
# sageちゃいかんよ
それはそうと echo sprintf('%01.1f', round(1.01, 1)); でどうだろう
884nobodyさん:2010/01/05(火) 02:08:55 ID:???
1 = 1.0だろ間違ってない
885881:2010/01/05(火) 02:14:39 ID:???
roundの結果を配列に格納させたいので、
sprintfとはちょっと違うのですが、何かないですかね?
886nobodyさん:2010/01/05(火) 02:16:21 ID:???
あ、なんでもないです^^;
できそうな気がします
887nobodyさん:2010/01/05(火) 02:22:32 ID:???
できました
ありがとうございました
>>885のレスを消したい・・・^^;
888nobodyさん:2010/01/05(火) 04:12:31 ID:SpHbsOSt
$_FILES['upfile']['size']
でゲットしたファイルサイズはクライアント側で変更可能ですか?
アップロードされたテンポラリファイルをfilesize()に通した方がいいのでしょうか?よろしくお願いします
889nobodyさん:2010/01/05(火) 06:16:00 ID:SpHbsOSt
自己解決しました。
調べてみたら、ちゃんと一時保存されたファイルからサイズを調べてくれてるようでした。
890nobodyさん:2010/01/05(火) 16:46:35 ID:???
どうでもいいけど、$_FILESはよろしくないね
891nobodyさん:2010/01/05(火) 16:51:43 ID:???
なんで?wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
892nobodyさん:2010/01/06(水) 11:54:58 ID:???
連番画像の入ったzipファイルの中身をサムネイル表示するスクリプトを作りたいのですが、
File/Archive.phpなどを用いてzipを解凍して中身を別個ディレクトリに保存し、
そのディレクトリの中身を表示する以外に方法はありますか?
(解凍した後のファイルを用意しなくても、毎回直接(?)zipの中身を読み込んでいく、など)
解凍の仕組みがよくわかってないので、的外れなこといってたらすみません
893nobodyさん:2010/01/06(水) 12:08:02 ID:???
マルチ乙
894nobodyさん:2010/01/06(水) 12:14:32 ID:???
>>893
氏ねカス
895nobodyさん:2010/01/06(水) 12:16:07 ID:???
質問者はまず>>1を良く読むこと(必須!)
過去スレ、関連スレ、FAQなどは>>2-10辺り
896nobodyさん:2010/01/06(水) 13:06:15 ID:???
>>895
ID出してないだけで何で煽られないといけないんだバカじゃねえの?
分からないなら答えなくていいってお前こそ>>1嫁視ね
897nobodyさん:2010/01/06(水) 13:16:48 ID:NMCa3pGP
PHPに関する質問です。
pChart(http://pchart.sourceforge.net/)という
PHPのグラフ描画ライブラリを商用のASPサービスにモジュールとして
組み込みたいのですが、pChartはGPLらしく無改変の状態でも
サービスに組み込んだら最後、自社のコードもGPLに汚染され、
無償公開しなければいけなくなってしまうと聞きました。
この理解は正しいでしょうか?

また、PHPのグラフ描画ライブラリでよりライセンスの制限の緩い
ものはありませんでしょうか。
898nobodyさん:2010/01/06(水) 13:22:56 ID:???
GPLコードを運用するだけなら公開しなくて良い
コードを販売するなら公開する必要が有る
899nobodyさん:2010/01/06(水) 13:55:33 ID:???
>>898は間違い
kwskはここ読め
ttp://ja.wikipedia.org/wiki/GNU_General_Public_License
900nobodyさん:2010/01/06(水) 22:30:21 ID:j7Rd9KzV
Aのサイトでsetcookieでクッキーを与えてBのサイトにアクセスした時、
「Aのサイトから来ました」という表示を出したいのですが
setcookie("site_check","a",time()+600,"",aのドメイン)
としてもBのサイトではクッキーが読めません。

やはりドメインが変わるとクッキーのやりとりは出来ないのでしょうか?
901nobodyさん:2010/01/06(水) 22:49:03 ID:???
できねえよカス
902nobodyさん:2010/01/06(水) 23:51:51 ID:4NuxgMy7
こんばんわ。
PHPで対象のページに特定の文字がある場合、その行を出力する
というプログラムを組もうと思っているのですが、
文字化けを起こしてしまい、該当の文字が検索に引っかかってくれません。
どこを直せば良いのでしょうか?
回答よろしくお願いします。

【例】
<?php
// 文字コード
define('CHARSET', "UTF-8");

ini_set("default_charset", CHARSET);
ini_set("mbstring.internal_encoding", CHARSET);
ini_set("mbstring.http_output", CHARSET);
ini_set("mbstring.http_input", CHARSET);

$handle = @fopen("http://pc11.2ch.net/test/read.cgi/php/1260247989/", "r");
if ($handle) {
while (!feof($handle)) {
$buffer = fgets($handle, 4096);
$hitlen = strpos($buffer , "下らねぇ質問");
if ($hitlen !== false) {
echo $buffer;
}
}
fclose($handle);
}
903nobodyさん:2010/01/06(水) 23:59:04 ID:???
>>902
"下らねぇ質問"と取ってきたページの文字エンコードを合わせればよかと
あともし2chを対象としているのなら直接datを見た方がいいと思うよ
904902:2010/01/07(木) 00:13:12 ID:7vbs2WcD
>>903
うまくいきました。ありがとうございました。
あ、例で出しやすかったので2chのアドレスを表記しただけですw
わざわざありがとうございます。
905nobodyさん:2010/01/07(木) 01:57:55 ID:???
>>899
お前がよく読め。
>GPLソースコードの修正で再頒布が必要になる
>GPLで保護された著作物の修正や、GPLで保護されたコードを新しい著作物で使うとき、
>必ずしもソースコードの公開を要求しているわけではない。この要求は、
>新しいプロジェクトが第三者に「頒布される」ときだけに発生する。結果としてのソフトウェアが、修正者に使われるだけなら、ソースコードの公開は要求されない。

偉そうに言う>>899。でも自分で示したURL先の内容が理解できないアホ
906nobodyさん:2010/01/07(木) 08:39:22 ID:???
販売するならの部分が変。 GPLのは、販売してもGPLのまんまだから、
買った側が改変しないで配布せず使う限りでは、公開いらん。
907nobodyさん:2010/01/07(木) 09:04:40 ID:???
>>906
おまえ、自分の書いた文書もう一度読み直してみろな。
何故、「買った側」の話になる?
>>898売る側の話しているぞ。

>コードを販売するなら
販「売」な。買う(側)ではなくて売る(側)。分かるか?

908nobodyさん:2010/01/07(木) 09:16:37 ID:???
要約すると

GPLのライブラリを使った場合にGPL汚染されるから自社システムのソース提示が必要になるのか?
って言う>>897の質問。

それに対して
自社システムを自社で運用するならソース公開は必要ない。
ただしそのシステムを販売するならソース公開する必要がある。と>>898が説明

って事でしょ。

>>898が書いてない事だけど俺が知っている範囲でもっと突き詰めた説明すると
改変やさらに販売し先がそのソースをどう利用しようが自由になる。しかもソースを利用した物もGPLに汚染される。
909nobodyさん:2010/01/07(木) 10:16:48 ID:???
>>907
販売する側が公開する必要になるかどうかが、買った側が使うだけの場合には、売った側が公開する必要はない。
買った側が改変してさらに頒布する場合には、買った側がGPLに沿ってやるだけ。売った側関係なくなるんだけどな。

いずれにせよ「販売した場合」ってのは 関係ない。
910nobodyさん:2010/01/07(木) 11:06:02 ID:???
>>909
おまえもう一度>>897を読め。
何故ここで買った側の話が出る?
>>897が心配しているのは開発側。
で開発側がそのシステムをどうするかで状況が変わる説明を>>898がしている。
で開発した側の事で
>買った側

>いずれにせよ「販売した場合」ってのは 関係ない。
なんて言う斜め上をいく解釈になるのか分からない。

あくまで>>897の書き込みは開発者サイドの質問です。
それに対する開発者サイドのGPLに対しての>>898の説明です。
>>909(=906=899?)の書き込みは何故か買った側の問題です。

君PHPどころかシステム開発すらしたことのない素人さん?だから斜め上からのねじれた解釈ができる?
PHPで開発していれば定番のMySQLのライセンスにぶち当たるからGPLには普通神経質に対処するからね。
だから販売システムにはMYSQLは利用せずにPostgreSQLやSQLiteを利用する。
その状況で>>909(=906=899?)は明らかに開発者側の視点での書き込みではない。
911nobodyさん:2010/01/07(木) 11:15:56 ID:???
お前名前に898って書けよ
912910:2010/01/07(木) 11:22:25 ID:???
>>911
>>905ではあるが>>898ではないぞ。

で開発者サイドの話がシステムを買った側のGPLの話になるか説明してくれ。
913nobodyさん:2010/01/07(木) 11:51:31 ID:???
Mysql使ったものを販売出来ないわけでもないのに。 

売る側として、Mysql使ったサイト作って企業に売ったとして、そのサイトのソースは
売る側が公開する必要ない → 販売するならの記述違うよね。

難しいかなぁ。
914nobodyさん:2010/01/07(木) 11:53:39 ID:???
GPLのコードを使ってそれを有償無償関係なく配布する場合は同じ方法でソースを提供しなきゃいけない
自分で使って配布もしない場合はソースを公開する必要はない
こんな感じだろ
915nobodyさん:2010/01/07(木) 11:54:00 ID:???
引くに引けなくなったから必死に長文ワロス
916nobodyさん:2010/01/07(木) 12:01:00 ID:???
>>913
ハィハィ。ちっょとカマかけたら見事引っかかってくれたね。

MySQLはライブラリもGPL(LGPLでないからライブラリ利用でGPL汚染)を前提に話を書くけど
まずMySQLには二種類のライセンス形態があるの。
もちろん一つはGPL。そしてもう一つがコマーシャルライセンス。
でGPL汚染させたくなければコマーシャルライセンスを購入する必要がある。
だから、>>913みたいにライセンスについてなにも知らないとMySQL=GPLの図式が成り立つカマをかけると見事引っかかるのよ。
そんなライセンスについて何も知らない君。
一応この書き込みにももう一つPHPのライブラリ限定の罠仕掛けておいたから今度は見破ってごらん。

>売る側として、Mysql使ったサイト作って企業に売ったとして、そのサイトのソースは
>売る側が公開する必要ない → 販売するならの記述違うよね。
もう斜め上を行く書き込みは辞めてくれ。
917nobodyさん:2010/01/07(木) 12:04:03 ID:???
どこにカマ書けたレスがあったのかw
918nobodyさん:2010/01/07(木) 12:04:17 ID:???
別にあなたの人格否定してるわけじゃないから勘違いしちゃだめだよ。
間違ったの放置するとあなたのためにも、ここ見た人にも、
せっかくGPLにしてる沢山のものに対しても良くないんです。
919nobodyさん:2010/01/07(木) 12:04:18 ID:???
GPL汚染について意外とみんな知らないようだ。

>売る側として、Mysql使ったサイト作って企業に売ったとして、そのサイトのソースは
>売る側が公開する必要ない → 販売するならの記述違うよね。
こんな嘘まで出る始末。
ASPではソース公開が必要ないからとそれを広域でとらえてと誤解している?
なんか調べたらMySQLのライセンス違反しているソフトハウスがゴロゴロと出てきそうな悪寒。
920nobodyさん:2010/01/07(木) 12:05:34 ID:???
>>916
よく読んでない誤爆ですか?
100000000000000000000000億回読んだほうがいいですよ
>Mysql使ったものを販売出来ないわけでもないのに
921nobodyさん:2010/01/07(木) 12:05:34 ID:???
>>917
>PHPで開発していれば定番のMySQLのライセンスにぶち当たるからGPLには普通神経質に対処するからね。
922nobodyさん:2010/01/07(木) 12:07:13 ID:???
910の自演レスみたいなのに見えるから全員IP出せよ
923nobodyさん:2010/01/07(木) 12:07:35 ID:???
でっ、どうなんだ?
GPLは商用利用でもOKなんだな
924nobodyさん:2010/01/07(木) 12:07:37 ID:???
IP出せない奴は自演と見なす
925nobodyさん:2010/01/07(木) 12:08:07 ID:???
>>920
>売る側として、Mysql使ったサイト作って企業に売ったとして、そのサイトのソースは
>売る側が公開する必要ない
って文に
>Mysql使ったものを販売出来ないわけでもないのに。 
がかかっているから変ではないのと
GPL汚染されてても良いならGPLのライセンスの物は売っても良いんだよ。
926nobodyさん:2010/01/07(木) 12:10:12 ID:???
IP出してないので自演乙
927nobodyさん:2010/01/07(木) 12:11:55 ID:???
>>923
OK。そのかわりGPL汚染され続けるけどね。
良い例がRHELとCentOSの関係みたいな。
RHELは商用でとして販売。しかし元々GPLの部分はソース公開。
で、それを利用されて無料のCentOSができる。

ちょっと昔なんてRHLをベースに無料どころか商用としてTurboLinuxやVIneLinuxなどなど派生も開発されて販売されていた。
928nobodyさん:2010/01/07(木) 12:13:07 ID:???
>>926
IDはだせるげとIP出せないだろ。
DOS攻撃
それとこのご時世IPなんてだしたら逆恨みでDOS攻撃してくるぞ。
929nobodyさん:2010/01/07(木) 12:28:48 ID:asUehzW7
辞書にユニコードが書かれているのですが、
これを文字列に変換するには、どのように実装すれば宜しいでしょうか?

例えば、
56E0→因
というような変換です。

bin2hexは使えそうだと思ったのですが、むしろ逆の処理で、実装の方法が分からず困っています。
どうかお力をお貸しください。

宜しくお願いします。
930nobodyさん:2010/01/07(木) 12:41:56 ID:???
GPL詳しい人いないのな1人も
931nobodyさん:2010/01/07(木) 12:42:21 ID:???
マルチうぜえ
932nobodyさん:2010/01/07(木) 12:44:19 ID:???
mysqlは別の話になっとるな。

http://www.s-style.co.jp/mysql/chart/index.html
933nobodyさん:2010/01/07(木) 12:46:32 ID:???
>>930
でしたら君が説明を・・・・
934nobodyさん:2010/01/07(木) 13:31:38 ID:???
>>929
ビッグエンディアンのUTF-16として
pack("H*","56E0");

utf-8で出力するなら
echo mb_convert_encoding( pack("H*","56E0"),"utf-8","unicode"); 


935nobodyさん:2010/01/07(木) 13:32:47 ID:???
UTF-16wwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
ユニコードなら普通UTF8じゃない
936nobodyさん:2010/01/07(木) 13:33:26 ID:???
無知を晒してどうすんの
937nobodyさん:2010/01/07(木) 13:36:19 ID:vUzUYJKW
なにいってんの? UTF-16しらないの?
938nobodyさん:2010/01/07(木) 13:39:06 ID:???
utf-8なら、因は E59BA0な
939nobodyさん:2010/01/07(木) 14:05:36 ID:asUehzW7
>>934さん、どうもありがとうございました。
当環境でやってみたところ、出来ました。助かりました。

それで、UNICODEのやり方が分かれば、JISコードについても同じ要領できるかと思って、
以下のようにやってみたのですが、上手くできませんでした。

$covertedChar = pack("C", hexdec("0x"."304B"));
echo mb_convert_encoding($covertedChar, "utf-8", "JIS");

ちなみに、JISコード・十六進コード「304B」は「伊」に該当するそうなのですが。

phpマニュアルを見ながら、Cの所をC*やH*でやってみたのですが、駄目でした。

すみません、最初に全て出せば良かったのですが、追加でお聞きしても宜しいでしょうか。
これで最後です。宜しくお願いします。
940nobodyさん:2010/01/07(木) 14:07:24 ID:asUehzW7
すみません。あと、こちらで最初に試しても黒丸が表示されるだけで駄目でした。

$covertedChar = pack("C*","2F28");
echo mb_convert_encoding($covertedChar, "utf-8", "JIS");
941nobodyさん:2010/01/07(木) 14:08:37 ID:???
JISはシフトインアウトがあるからな
942nobodyさん:2010/01/07(木) 14:12:04 ID:???
"1B2440"."2F28"."1B284A"
943nobodyさん:2010/01/07(木) 15:09:42 ID:BSk80e6a
数字のケタが変わったかどうかチェックする方法ってどう書けばいいでしょうか?
999→1000 ならtrue
999→291ならfalse
10→101ならtrueみたい・・
944nobodyさん:2010/01/07(木) 15:19:01 ID:???
1以上の整数部の比較で良ければ
(int)log10(999) != (int)log10(1000) とか

strlen((string)999) != strlen((string)1000) でもいいかも知れん
945nobodyさん:2010/01/07(木) 15:25:11 ID:???
両者を log10 したのち整数値に切り捨てて差を見る
文字列に変換して文字列長が同じかどうかを見る
946nobodyさん:2010/01/07(木) 15:25:55 ID:???
更新してから書き込めばよかった...
947nobodyさん:2010/01/07(木) 15:40:54 ID:???
文字列に変換してstrlenすると-10と100の場合も3にならん?
948nobodyさん:2010/01/07(木) 16:23:48 ID:???
だから1以上の・・・って書いてんじゃないのか
949nobodyさん:2010/01/07(木) 17:09:53 ID:go7wFoTk
正規表現のことに関して質問です。
自分の場合はeregを使っているんですが、eregでは全角カタカナやひらがな等は使えないのでしょうか?
解決方法があれば教えてください。
ちなみに、エラーのでている行は

if(eregi($type,$datafile[4]))

で、
$type="メーカー";

$type="サービス";
となる時にエラーがでてしまいます。
950nobodyさん:2010/01/07(木) 17:21:24 ID:???
mb_eregとか使うんじゃないの?pregしか使わないから分からないけど
951nobodyさん:2010/01/07(木) 17:56:32 ID:LXzPFyV8
一時的にnoticeをログに出さないように変更したいんだけど
サーバ管理の権限はありません。
プログラム中で変更とかできないでしょうか?
952nobodyさん:2010/01/07(木) 18:06:19 ID:LXzPFyV8
error_reporting(0);

でした。事故レス。
953nobodyさん:2010/01/07(木) 18:59:51 ID:???
ereg系は使うな!!!!!!!!!!!!!
954nobodyさん:2010/01/07(木) 19:17:59 ID:???
ereg系はPHP6で消えるとか消えないとか
955nobodyさん:2010/01/07(木) 19:30:27 ID:AjaMrx7g
(x + n)(y + n2) = a

この連立方程式をPHPで解くコードを教えてください
956nobodyさん:2010/01/07(木) 19:56:03 ID:???
PHP6はhtmlspecialchars()が消えるみたいだよ
957nobodyさん:2010/01/07(木) 20:33:47 ID:???
htmlentitiesは?
958nobodyさん:2010/01/07(木) 20:34:09 ID:5cb0Qm+/
例えば30まで数があって、
30からランダムに順々に重複しない数を取り出したいです。
考えたのが、
例えば最初に5を取り出したとき、5をストック。次に
ストックを検索してかぶらない数字12を取り出してストック、ストック(5, 12)を検索して・・
という感じでやろうとしたのですが、無駄が多いように思えるのです。
何か他に効率のよい方法はありませんでしょうかアドバイスよろしくお願いします。
959nobodyさん:2010/01/07(木) 20:39:27 ID:???
効率といってもいろいろあるけどね。
ここにそのまま使えそうな例がある。
http://www.php.net/manual/ja/function.shuffle.php
960nobodyさん:2010/01/07(木) 20:47:11 ID:???
>>959
PHPパネェ
961nobodyさん:2010/01/07(木) 21:24:45 ID:5cb0Qm+/
>>959
とりあえずはやりたいことがシンプルにかけました
ありがとうございました
962nobodyさん:2010/01/07(木) 21:30:53 ID:???
アレイシャッフルは精度がよくないから自分で実装したほうが良い
シャッフルのアルゴリズムはmediawikiで探すと見つかる
963nobodyさん:2010/01/07(木) 23:49:38 ID:0Znmv5GU
<?php
$array = array();
for($a = 1; $a < 31; $a++) {
$num = rand(1,30);
if ( in_array($num, $array) ) {
$a = $a - 1;
continue;
}
$array[] = $num;
}

foreach( $array as $value ){
echo $value."<br />\n";
}
echo count($array);
?>
これじゃだめ?wwwww
964nobodyさん:2010/01/08(金) 00:26:11 ID:???
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
965nobodyさん:2010/01/08(金) 09:16:40 ID:???
for(int i=0; i<n; ++i) {
do {
r = min + genrand_int31() % (max - min + 1);
} while(result.find(r) != result.end());
result.insert(r);
}
return result;
}
966nobodyさん:2010/01/08(金) 09:48:35 ID:???
>>962
PHPの中でどうやって混ぜてるか見たけど(array.c)
配列の全要素を、乱数で他の要素と入れ替えてるね。

mediawikiは???
967nobodyさん:2010/01/08(金) 11:01:32 ID:???
shuffleは偏りが出るの?
968949:2010/01/08(金) 15:52:11 ID:FfxTGFaw
昨日は規制くらってしまいました。
レスありがとうございます。

eregではなくmb_strposにかえたところ、エラーは消えました。
(エラーの原因は − だったようです。)
ところが、今度はまた別の問題が生じました。
mb_strrpos("$datafile[0]","$keyword")
のように、テキストファイルから特定の文字列を探しているのですが、これがうまくいきません。
$datafile[0]と$keywordが同じ文字列でも結果が同じと判定してくれません。(これはprintを使い確かめました)
言葉ではうまく説明できないので、簡単な例をのせてみます。
解決方法をご存知の方いましたら、レスお願いします。


if(mb_strpos($datafile[0],$keyword)!=0){
print("ok");
}else{
print $datafile[0].<BR>;
print $keyword;
}
これで実行しても

漢字 カタカナ ひらがな
漢字

という具合に表示されてしまいます。
(ちなみに、検索語句、検索対象が英字の時はokと表示されます)
969940:2010/01/08(金) 15:58:56 ID:3B7A809H
>> 941
> JISはシフトインアウトがあるからな

お返事ありがとうございます。
シフトインアウトについては、よく理解できないのですが、unicodeのように簡単には実装できないということでしょうか。

辞書には、UNICODEとJISコードが書かれているので、両方対応できるようにしたいのですが、
やはり、JISコードを変換して漢字にするのは難しいでしょうか。
970nobodyさん:2010/01/08(金) 16:37:58 ID:???
>>968
mb_strposは0を返す場合もあるから !=0 じゃダメなんじゃね?
存在しない場合はFALSEが返ってくるから !==falseとかにする
あとは文字コードとか
971nobodyさん:2010/01/08(金) 17:00:32 ID:???
>>969
変換元に漢字じゃない文字がないなら、
>>942
972nobodyさん:2010/01/08(金) 17:23:28 ID:FfxTGFaw
>>970
確かにそうですね。直しておきます。
現在文字コードはShift_JISですがそれだと問題あるのでしょうか・・・?
973nobodyさん:2010/01/08(金) 19:45:03 ID:95a5JUsZ
phpの吐いたソースを書き出してるんですが、
書き出したファイルの内容と新しく自身が吐いたソースの比較はどうすればできますか?
宜しくおねがいします。
974nobodyさん:2010/01/08(金) 19:46:56 ID:???
file_get_contents(旧ファイル) === file_get_contents(新ファイル)
975nobodyさん:2010/01/08(金) 19:50:38 ID:???
>>973
>>974のように文字列同士の比較で一致するかでいいと思うけど
それだとコストが大きいので書き出す時にmd5ハッシュを保存しておいて比較した方がいいと思う
更新日時の比較がベストだけど
976nobodyさん:2010/01/08(金) 19:51:38 ID:???
同時に違う内容を保存したらどうすんねん
977nobodyさん:2010/01/08(金) 20:09:53 ID:???
flock
978973:2010/01/08(金) 20:17:42 ID:95a5JUsZ
>>974-975
ありがとうございます。
説明が曖昧でした。申し訳ありません。

最終的にPHPで同じテキストファイル(かhtmlファイル)
に上書きするんですが、
今回上書きされる内容と、前回上書きした内容が
一致するか比較したいです。

PHPのソースが上書きする前の処理として、例えば
前回と比較→一致なら0,不一致なら1→最終的に上書きはする
という感じのことを行いたいです。
979nobodyさん:2010/01/08(金) 20:35:45 ID:???
>>978
#テストしてないけど
function f($filename, $contents='')
{
$old_contents = file_get_contents($filename);
file_put_contents($filename, $contents);
return $old_contents === $contents ? 0 : 1;
}
980nobodyさん:2010/01/08(金) 20:52:40 ID:???
>>978
今回上書きされる内容と前回上書きした内容って同じものを指してないか?
981nobodyさん:2010/01/08(金) 21:19:46 ID:???
>>973
比較するする処理を行うにふさわしい標準関数があるからマニュアル見て探してみ
982nobodyさん:2010/01/08(金) 21:29:49 ID:???
するする処理
983973:2010/01/08(金) 22:26:22 ID:95a5JUsZ
>>979
少し弄りましたができたと思います。
ありがとうございます。
984nobodyさん:2010/01/08(金) 23:08:50 ID:???
>>983

>>981書いたのに探しもしないんだな
レスあればどの関数使うか書こうと思ったけどもういいや
985nobodyさん:2010/01/09(土) 11:54:57 ID:???
日本語と英語の両方に対応したWebを作りたいんだけど、
フレームワークレベルで多国語対応しているのってある?

言語リソースを完全に分離しているイメージで
986nobodyさん:2010/01/09(土) 12:17:19 ID:???
if (言語判別) {
日本語のファイル読み込み
} else {
英語のファイル読み込み
}


じゃだめ?
987nobodyさん:2010/01/09(土) 12:45:56 ID:???
>>985
キミがダメだと思ったフレームワーク挙げてみてよ
988nobodyさん:2010/01/09(土) 15:49:45 ID:???
>>985
うちはZendだけど、
今じゃ対応してないフレームワークの方が少ないんじゃないかな
989nobodyさん:2010/01/09(土) 17:16:53 ID:g7iSaAwT
コマンドラインから実行されてるか判別する方法ってありますか?
990nobodyさん:2010/01/09(土) 17:21:14 ID:???
管理者に聞く
991nobodyさん:2010/01/09(土) 17:30:39 ID:lsb/cZ9k
>>989
<?php
if(isset($argv) == true){
  echo "コマンドラインから実行されました";
}
?>
http://jp2.php.net/manual/ja/reserved.variables.argv.php
これでいい?
992nobodyさん:2010/01/09(土) 17:31:31 ID:pOjpZhf9
数字を入力して、3桁ごとに , をつけるにはどうしたらいいですか?

100 → 100
1000 → 1,000
100000 →100,000

お願いします。
993nobodyさん:2010/01/09(土) 17:35:43 ID:???
>>992
なんでマニュアル見ないの?
てめえのやりたいそのものが標準関数にあるぞ?
994nobodyさん:2010/01/09(土) 17:36:03 ID:lsb/cZ9k
995nobodyさん:2010/01/09(土) 17:37:18 ID:???
>>993
うっせー 
996992:2010/01/09(土) 17:38:43 ID:pOjpZhf9
>>993
自分の持ってる参考書には目を通したのですが、マニュアルはみてなかったです。
自分自身の為にも、次からは気をつけます。

>>994
ありがとうございます。
997nobodyさん:2010/01/09(土) 19:19:13 ID:bizuBJVY
ニコニコのAPIを使ったものを作りたいんですが、ログインがうまくできてないようです。

質問内容
お手元の環境で以下のサイトのコードを実行した場合に
 ttp://d.hatena.ne.jp/Xephy/20081217/1229515379
問題なく以下の部分の表示が行われますか?
 //URL表示
 print $login->get_video_url($mov_id);

うちで動かすと、正しいメールアドレス/パスワードを用いても、用いなくても、
実行結果が変わりませんorz
998nobodyさん:2010/01/09(土) 20:13:21 ID:lsb/cZ9k
【PHP】下らねぇ質問はID出して書き込みやがれ 92
http://pc11.2ch.net/test/read.cgi/php/1263035502/l50
999nobodyさん:2010/01/09(土) 20:19:07 ID:???
999
1000nobodyさん:2010/01/09(土) 20:19:49 ID:???
このスレは1000の風になりました
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。