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

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

レス数が1000を超えています。これ以上書き込みはできません。
0001nobodyさん2009/12/08(火) 13:53:09ID:???
質問者はまず>>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等)・フレームワークは各該当スレへ
0002nobodyさん2009/12/08(火) 13:54:07ID:???
■過去ログ
【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/
0003nobodyさん2009/12/08(火) 13:54:48ID:???
関連リンク
■本家マニュアル   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/
0004nobodyさん2009/12/08(火) 13:55:28ID:???
【簡易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プログラムとして実行された結果になる。
0005nobodyさん2009/12/08(火) 13:56:11ID:???
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に保存?
 → 好きにしてください
0006nobodyさん2009/12/08(火) 14:32:10ID:???
>>1-5乙これはお疲れ様って意味とかなんとか
0007nobodyさん2009/12/08(火) 16:22:42ID:???
>>1
}はおっぱい括弧ってよぶのか
いいこと知った
0008Neet2009/12/08(火) 16:45:50ID:bw06sTbP
Webプログラマとして就職活動を始めている26歳男です。
独学で勉強して実際に面接に挑む予定です。

もしここにいる人で、仕事でプログラム書いている方
あなたが面接官だった場合どのようなことで採用の判断決めますか?
0009nobodyさん2009/12/08(火) 17:23:21ID:???
スレチな上にアホなこと質問してるやつが同い年とは思いたくないわw
0010nobodyさん2009/12/08(火) 17:26:52ID:???
26歳の取るんだったら、実績見たいとこだなあ。どんなサイトつくったことある?と。
0011sage2009/12/08(火) 17:40:40ID:+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は書き換わっているだけに、不可思議なんです。
よろしくお願いします。
0012112009/12/08(火) 17:42:54ID:???
sageミスしました。
申し訳ない
0013nobodyさん2009/12/08(火) 18:07:51ID:???
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 を定義済みとして参照できるでしょうか?

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

SQLiteのモジュールの定数だけがおかしいみたいです。
なんなんだろう。。。
Debian(php5-sqlite)の問題だったらごめんなさい。
0015nobodyさん2009/12/08(火) 18:31:46ID:GGPotsAy
tortoiseSVNってインストールするとパソコンの動作が結構重くなるのですか?
0016nobodyさん2009/12/08(火) 18:32:21ID:???
>>12-14
っ スレタイ
0017nobodyさん2009/12/08(火) 18:33:43ID:???
>>14
他の定数はどうなん?
print_r(get_defined_constants(true));
0018132009/12/08(火) 18:50:58ID: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から手でインストールしてみようかと思ったら、あれはもう
メンテナンスされてないんですね。。。
0019nobodyさん2009/12/08(火) 19:20:17ID:???
>>13
そもそもSQLiteは動くのかな?
定数無くてもさ
0020132009/12/08(火) 19:32:38ID: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というのを試していたのですが、いっこうにうまく動かず、
やっと見つけた原因が「定数が未定義」というものでして。。。
定数指定してるところをばさっと消すと一応動作しました。
0021132009/12/08(火) 19:52:42ID:ppGwYCe4
似たような環境で関数をチェックしてみたところ、
apacheのモジュールでもpdo_drivers関数は存在していました。

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

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

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

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

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

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

となっております
0033nobodyさん2009/12/08(火) 22:41:08ID:???
>>26
Shift-JISは何かと問題が多いって聞いたから、最初からUTF-8を使ってる。
0034322009/12/08(火) 22:42:32ID: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の方を試してみようかと思います
結構この文字化け問題、色んな所でぶつかっていて・・・
0035Neet2009/12/08(火) 22:46:11ID:bw06sTbP
default_charset = Shift_JIS は自動でheader関数を実行してくれる機能。
つまりブラウザーに出力するさいにShift_JIS指定してくれとお願いしている。

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

これで直らない?

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

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

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


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

一応やってみましたが残念ながら改善致しませんでした
0037Neet2009/12/08(火) 23:17:34ID:bw06sTbP
データベースから取得して出力しているファイル見せてもらえませんか?
0038nobodyさん2009/12/08(火) 23:21:23ID:???
headerいじっても内部コードが違うなら意味ない
内部コードがどうなってるか調べてみ
0039nobodyさん2009/12/08(火) 23:26:03ID: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>

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

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

0044nobodyさん2009/12/08(火) 23:48:31ID:GGPotsAy
>>42
自分でも、htmlspecialchars(mb_convert_encoding($row['name'], "EUC-JP", "auto"))
としたら上手くいったのですが、mb_convert_encoding()を全てに書かなきゃいけませんでした
もう結構な日数、設定を見直そうと色々とやったり検索してみたのですが、迷宮に迷い込んでしまいました
0045nobodyさん2009/12/08(火) 23:53:02ID:???
>mb_convert_encoding()を全てに書かなきゃいけませんでした
htmlspecialcharsも全部に書いてるじゃないか
ていうかそういうもんだし・・・
いやなら$row全部にかければいいんじゃね
0046nobodyさん2009/12/08(火) 23:58:35ID:???
迷宮に迷い込むぐらいならDB側もPHP側も全てUTF-8にしとけ
というのがこのスレのスタンス
たまに出るが>>4の1のEUC-JPはそろそろはずしたほうがいいと思う
0047nobodyさん2009/12/09(水) 06:25:37ID:AEdsXhEH
PHP 6 では safe_mode が廃止されるようですが、
では共用サーバにおいて各ユーザが自分に割り当てられた
ディレクトリ以下にしか読み書きできないようにするには
どうすればいいのでしょうか? apache + mod_php です。
0048nobodyさん2009/12/09(水) 06:35:27ID: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がないとマッチしてくれなくて困っています。
多分初歩的なことだと思いますが、どなたかここから先を教えてください。

0049nobodyさん2009/12/09(水) 07:34:34ID:???
^abc(|[12])$ は abc, abc1, abc2 とマッチするよ。
0050nobodyさん2009/12/09(水) 07:42:02ID:???
<?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>
0051nobodyさん2009/12/09(水) 08:57:19ID:???
>>47
ログインはさめばいいよ
ダイレクトにアクセスしてもはじけばいいだけ
0052322009/12/09(水) 09:36:23ID:anat6YPp
昨夜は色々とありがとうございました
結局問題が解決しなかったので、ご指摘の通りphp.iniもmy.cnfもUTF-8に統一しました
テキストエディタの初期文字コード、保存文字コード共にUTF-8に、ブラウザも自動判別(+UTF-8)にしたところ何とか文字化けは起こらなくなりました
これで文字化け問題は解決したのか分かりませんが、一応このままやってみようと思います
ありがとうございました
0053nobodyさん2009/12/09(水) 11:29:07ID:???
その程度の知識じゃUTF−8特有の問題にそのうち陥るw
0054nobodyさん2009/12/09(水) 11:44:36ID: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];
0055nobodyさん2009/12/09(水) 11:48:35ID:zpeYVRKK
すみません、$dataに代入するのは「<>」の右の要素です。
要素は二つのみです。
0056nobodyさん2009/12/09(水) 12:00:08ID:???
>>54
$_POST['button'] = '';
んん?

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

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

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

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

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

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

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

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

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


ていうか、リンク先のサンプル酷すぎ。
汚いし、リンクが全部アフィじゃん。
0077762009/12/09(水) 22:34:12ID:???
余計な?が入ったので、消してね。
0078nobodyさん2009/12/09(水) 22:34:44ID:???
スタイルシートの問題では?
0079nobodyさん2009/12/09(水) 23:05:37ID:???
よけいな?が入ったのがヒントだね。
0080762009/12/09(水) 23:24:00ID:???
>>79
あー、そのとおりだわw
0081taigo ◆RpNs8sZ5pNfE 2009/12/09(水) 23:26:32ID:????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からの出力時は
スタイルシートをはずしても改行がはいってしまいます。
0082taigo ◆RpNs8sZ5pNfE 2009/12/09(水) 23:28:43ID:????2BP(2)
失礼、うpろだが直接参照できないみたいなので、もう一回張ります。
すきまあり:ttp://www1.axfc.net/uploader/Img/so/67091
すきまなし:ttp://www1.axfc.net/uploader/Img/so/67092
0083762009/12/09(水) 23:34:50ID:???
改行の入る部分に、見えない余計な文字が入ってるみたい。

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

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

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

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

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

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

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

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

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

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

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

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

知っていたら教えてくださいよろしくお願いします。
0117nobodyさん2009/12/11(金) 05:38:42ID: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();
0118nobodyさん2009/12/11(金) 10:33:03ID:???
ha?
0119nobodyさん2009/12/11(金) 11:44:06ID:???
hoge1の方は参照が返りますが、
下のはバージョンによって異なるようです。

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

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

一日悩んでいます;

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

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

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

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

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

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

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

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

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

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

これで、test foo barという結果を得たかったのですが、
hoge foo barと表示されてしまいます。
どこが違っているのでしょう?
01331322009/12/11(金) 21:47:28ID:q1bq5i1Z
すみません、自己解決しました。
preg_replaceのところで変数に入れなおしてなかったですね。
スレ汚し失礼しました。
0134nobodyさん2009/12/11(金) 22:52:14ID:???
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
0135nobodyさん2009/12/11(金) 23:29:09ID:???
>>133
進研模試の偏差値でいうと2ちゃんねるのニュース速報がおよそ45、民放地上波の報道ステーションが約40、
ニュース速報+は35程度の読者を想定しています。
0136nobodyさん2009/12/11(金) 23:32:15ID:???
破壊型じゃないからね
0137nobodyさん2009/12/12(土) 04:28:31ID:???
【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>
01381372009/12/12(土) 04:29:01ID:GfYnJRFD
age忘れ
0139nobodyさん2009/12/12(土) 04:46:23ID:???
それのどこにPHPが関わってくるの?
0140nobodyさん2009/12/12(土) 04:52:02ID:iG1HMcs+
検索エンジンからの訪問者の検索キーワードを取得したいんですが、簡単に実現できますか?
HTTP_REFERERからキーワードを抜き出せばいいってことは分かるんですが、
自分にはコードを書く実力ありません。
G、Y!、bingの3社だけ抜き出せればおkなんですが。
0141nobodyさん2009/12/12(土) 04:54:32ID:???
>>139
PHPでURLを入れたいなと思いまして…。
0142nobodyさん2009/12/12(土) 04:56:21ID:???
>>141
SimpleXMLやDOMやXMLパーサなど使えば簡単にできるかと
0143nobodyさん2009/12/12(土) 04:57:05ID:???
>>140
簡単に実現できるよ
01441372009/12/12(土) 05:45:54ID:GfYnJRFD
>>142
ありがとうございます。
ぐぐって試行錯誤してみます。

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

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

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

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

冷血さんですね。

もういいです。さよなら。
0189nobodyさん2009/12/12(土) 21:45:54ID:???
ルールを守れない自分勝手な人ですね。
さよなら。
0190nobodyさん2009/12/12(土) 21:46:53ID:???
http://pc11.2ch.net/test/read.cgi/php/1158647441/
0191nobodyさん2009/12/12(土) 22:00:01ID:???
PHPを書くときにおすすめのテキストエディタってなんですか?
0192nobodyさん2009/12/12(土) 22:02:19ID:???
Eclipse
NetBeans
さあ選べ
0193nobodyさん2009/12/12(土) 22:04:27ID:???
<textarea>
0194nobodyさん2009/12/12(土) 22:09:10ID:d/+O720A
ノートとペンで書け
0195nobodyさん2009/12/12(土) 22:21:22ID:???
古よりの言い伝えでは、

  漢はecho一発

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

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

0204nobodyさん2009/12/13(日) 05:38:20ID:G260+aAJ
>>203
ありがとうございます
参考にさせてもらいます
0205nobodyさん2009/12/13(日) 06:02:18ID:???
>>202
普通にcopy()で出来るのよ。
0206nobodyさん2009/12/13(日) 06:56:34ID:???
この難読化された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
以下省略
0207nobodyさん2009/12/13(日) 09:20:44ID:jg9ODR2i
日付変わってしまったのでID違うと思いますが>>157です。
>>158でviewvcを使えばいいといわれ調べてみたんですが
バージョン管理がどうとかいうソフトなのでしょうかこれは。

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

>>209 []内にマルチバイト使うのはどうかと
0212nobodyさん2009/12/13(日) 11:04:07ID:???
>>211
では正解をどうぞ
0213nobodyさん2009/12/13(日) 11:25:10ID:???
正解て(笑)
02142112009/12/13(日) 11:35:26ID:???
文字コードが書いてないから例えば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";
}
0215nobodyさん2009/12/13(日) 11:57:11ID:???
utf-8ならマルチバイトで書き込めるけどそれを否定した君の知識を疑いたい
02162112009/12/13(日) 12:31:34ID:???
文字コード後出しして知識を疑われてしまったけど、例えば209の書き方だと
「新潟」にもマッチするぞ。utf-8ならu修飾子付けることをお奨めする。
おれの知識はこの程度だ。
0217nobodyさん2009/12/13(日) 12:34:51ID:???
PHP
0218nobodyさん2009/12/13(日) 12:56:34ID:???
>>210
しました。
ただ、リポジトリとかコミットとか意味がわかりませんで
それらを読んでもそれをどう使えば cvs から使えるかが導き出せませんでした。
0219nobodyさん2009/12/13(日) 13:04:25ID:???
おやおや^^ここのページのトップに分かりやすく書いてあるのにおかしいですね^^
ttp://www.google.co.jp/search?q=viewvc&lr=lang_ja&ie=utf-8&oe=utf-8
0220nobodyさん2009/12/13(日) 13:14:42ID:???
そういえばクラス使うようになってグローバル変数使わなくなったな。
02211962009/12/13(日) 13:19:08ID:iFkYaR3P
文字コードは考慮しなくていいです。
>>196の正規表現だと、最初と最後にしかマッチしないというのが問題なんです。

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

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

>>2
>>4-5
>>300
02251962009/12/13(日) 17:31:01ID:iFkYaR3P
>>224
バリデーションに使用するだけなので、レスの置き換えは想定していません。
0226nobodyさん2009/12/13(日) 17:47:20ID:???
/(\d+)(,|-|\d){1,}/
02271962009/12/13(日) 18:06:05ID: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 )
0228nobodyさん2009/12/13(日) 18:17:04ID:???
preg_replace() 使えよ
0229nobodyさん2009/12/13(日) 18:20:12ID:???
>>277
君も頑固だねpreg_matchじゃダメっていってるのに


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

0266nobodyさん2009/12/13(日) 21:51:17ID:???
>>265
低級プログラマの回答で恐縮ですが、どう考えてもallです
0267nobodyさん2009/12/13(日) 22:03:27ID:???
>>265
allになんかうらみでもあるのかな?
0268nobodyさん2009/12/13(日) 22:07:36ID:???
>>255
>>255
>>255
02692372009/12/13(日) 22:18:01ID:???
>>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の時も対応できます
0270nobodyさん2009/12/13(日) 22:26:04ID:???
質問するときは1レスでこういう結果にしたい主を書いていただけたら、求めてる回答がもらいやすいと思います

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



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

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

対象文字列がどういう範囲で変わるかぐらいは書かないと
02721962009/12/13(日) 22:41:04ID: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 )
0273nobodyさん2009/12/13(日) 22:52:06ID:???
>>272 それが自力で解決できたら質問者だと判断します。

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

吹いたわksg
0280nobodyさん2009/12/14(月) 02:14:08ID:???
これは酷い…ワロス
>>196はpreg_matchを一から勉強して理解しろ
あと単純な区切りを取得したいならmb_splitでも使っておけば?頭悪そう
0281nobodyさん2009/12/14(月) 07:06:50ID: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の内容の部分だけを取り出すには、どうしたらよいでしょうか?

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

「ドキュメント」の構造ママ、文字列「hogeの内容」を取り出したいってなら、旬のpreg_matchで。
0283nobodyさん2009/12/14(月) 10:21:08ID:???
>>277
この解説あってるの?
0284nobodyさん2009/12/14(月) 10:35:21ID:???
>>280
おまえの方がひどいし、頭悪い。
mb_splitでどうやってバリデートすんだよ
0285nobodyさん2009/12/14(月) 10:42:14ID:???
うん
0286nobodyさん2009/12/14(月) 12:33:46ID:???
また低レベル回答者かwwwww
0287nobodyさん2009/12/14(月) 12:45:39ID:???
>>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;
}
0288nobodyさん2009/12/14(月) 12:51:46ID:???
>>287
mb_split()だけでできてないんですけどーw
関数作ってまでやることなんですかーw
0289nobodyさん2009/12/14(月) 12:58:14ID:???
>>288
じゃあコード書いてから反論どうぞ
0290nobodyさん2009/12/14(月) 13:13:41ID:???
>>289
いや、ぼくちんはmb_split反対派なんでw
mb_splitでバリデーションと分割はできないつってるんですよーw
0291nobodyさん2009/12/14(月) 13:15:30ID:???
なんか方向がしあさっての方向に向かってきてるぞ。
0292nobodyさん2009/12/14(月) 13:17:21ID:???
PHPだもの。
0293nobodyさん2009/12/14(月) 13:18:08ID:Rd8pmwhF
Sun, 06 Dec 2009 10:21:20 +090021
これを
2009/12/6 10:21:20
に置き換える関数みたいなのはあるのでしょうか?
0294nobodyさん2009/12/14(月) 13:21:24ID:???
dateとstrtotime使えばいんじゃね。
0295nobodyさん2009/12/14(月) 13:23:49ID:???
最後の21って何だろ?
0296nobodyさん2009/12/14(月) 13:28:24ID:???
print date("Y/m/d H:i:s", strtotime(" Sun, 06 Dec 2009 10:21:20 +0900" ));
21は無視した。
0297nobodyさん2009/12/14(月) 13:46:37ID:Rd8pmwhF
ありがとうございます!!
21は間違いコピペでした・・・すいません・・・
0298nobodyさん2009/12/14(月) 14:08:28ID:???
21をナメんなよてめーら
0299nobodyさん2009/12/14(月) 14:12:44ID:???
正規表現クン専用の質問だろw
横鳥スンナ〜
0300nobodyさん2009/12/14(月) 16:35:52ID:???
>>284
うわ、バカがいる

>>287
お前ちょっとそういうのやめてくれない?
まるで俺が書いたみたいじゃないか
0301nobodyさん2009/12/14(月) 16:36:42ID: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
0302nobodyさん2009/12/14(月) 18:54:19ID:???
>>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
このページのトップに君が探してるものが見当たるようだけど
0303nobodyさん2009/12/14(月) 18:59:58ID:EQ57m/rj
>>302
GD Version bundled (2.0.34 compatible)なので、
GIF問題はすでに解決しているのではないでしょうか?

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

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

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

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

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

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

→2,5

っていうようなことをやりたいのですが。1個ずつ確認していくしかない?
0320nobodyさん2009/12/15(火) 16:29:32ID:???
array_diffとかがあったような
0321nobodyさん2009/12/15(火) 16:32:05ID:???
array_diffは逆
調べたらarray_intersectがあった
0322nobodyさん2009/12/15(火) 16:39:07ID:HMx+PrJa
>320
>321
天才!ありがと〜
0323nobodyさん2009/12/15(火) 18:21:21ID:???
・・・
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で単に「$$」で検索しても出てきません
意味と、こういうものの名称を教えて下さい
0324nobodyさん2009/12/15(火) 18:29:43ID:???
$mid = "hello";
$$mid = "world";
print $hello;
0325nobodyさん2009/12/15(火) 18:31:10ID:???
検索するなら「可変変数」で見つかると思うよ
0326nobodyさん2009/12/15(火) 19:41:19ID:???
持ってる本2冊とも可変変数について触れられてない・・。
あまり使うべきじゃないとか?
0327nobodyさん2009/12/15(火) 19:46:04ID:???
可読性は悪くなるから、使わないで良いなら使わない方が良いと思うよ
0328nobodyさん2009/12/15(火) 19:49:22ID:???
register_globalsがonだった頃のやつをoffに対応するときに
$items = array("name","tel","address");
foreach ( $items as $eachval ) {
if ( isset( $_POST( $eachval) ) {
$$eachval = $_POST[ $eachval ];
}
}
ってやってごまかしたなぁ。
0329nobodyさん2009/12/15(火) 20:30:50ID:???
ZendFramework使ってます。
ビューのHTMLをパーツ化してて、ほとんどのコントローラで最終的に呼ばれるものがあります。
例えばページのメニュー表示の部分とか。
この中身が今は完全にべた書きになっていて、これをDBから取得した値に動的にしたいんだけど
これって全部のコントローラのコンストラクタ内にDB取得の処理入れなくちゃいけないものですか?
もしくはそれぞれアクションの中にとか。。
ただ、メニュー表示のHTMLが読み込まれない場合もあるので
コントローラ内で必ず取得しにいくってのも無駄だなぁって思ってます。

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

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

テンプレどころかスレタイすら読めないやつって馬鹿なの?死ぬの?
0334nobodyさん2009/12/16(水) 00:25:27ID: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>

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

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

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

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

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

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

<INPUT type="submit" name="" value="リンク先">
↑こちらを使えばできるのはわかるのですが、こちらは使いたくない状況なので・・・
お願いします。
0360nobodyさん2009/12/17(木) 00:18:27ID:???
そのまま同じ方法でできるよ
0361nobodyさん2009/12/17(木) 00:19:31ID:???
>>359
http://jp2.php.net/manual/ja/session.idpassing.php
0362nobodyさん2009/12/17(木) 00:39:22ID:???
>>359
リンクにパラメタ追加して、ページ移動先でセッション処理書けばいいじゃない。
同じページへのリンク+パラメータでセッション開始のチェック+headerでページ移動でもいいけどさ。
0363nobodyさん2009/12/17(木) 01:11:49ID: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>
0364nobodyさん2009/12/17(木) 01:19:00ID:???
<?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>
0365nobodyさん2009/12/17(木) 01:28:04ID:???
>>363
一応>>364な感じで直したけど、明らかに正解ではない
具体的に何がしたいの?
0366nobodyさん2009/12/17(木) 01:38:51ID:???
別にGETリクエストでもセッションは継続すると思うが
パラメータとして必要があるのはCookieがoffの時
0367nobodyさん2009/12/17(木) 01:41:31ID:???
>>363
a要素にvalue属性は存在しない
0368nobodyさん2009/12/17(木) 01:49:49ID:???
>>361 >>366  それ違う話じゃ?

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

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

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

最後のdatafile[2]

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

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

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

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

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

#img.php
<img src="">

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

やはり無理なんでしょうか?
0386nobodyさん2009/12/17(木) 15:25:08ID:???
クッキーそのものは取れてたの?
03873762009/12/17(木) 15:30:40ID:???
Cookieは取れました
同サーバー内では問題なく動くのを確認しています。
現在単純にログイン成功時にセッション内に入れたデータを
次のリクエストで読もうとしていますが、成功しません。
cakephpとflashを使用しています。
0388nobodyさん2009/12/17(木) 16:31:12ID:???
同じサイトだと動くのかな。
クッキーにはドメイン情報もあるからそれをもとにセッション弾いてるんじゃ?
スタート前にsession_set_cookie_paramsとかでドメイン合わせてやれば
0389nobodyさん2009/12/17(木) 19:01:13ID:LUgkaaFg
phpで作ったアプリケーションの設定ってどういう風に保存すればいいんでしょうか?
iniやxmlやjsonやシリアライズしたものなど
結局全て最終的に連想配列なんかに展開したものをPHP内で使うことになると思うんですけど
どのフォーマットを使うのがベターなんでしょうか?
またなんかそういう設定ファイルを作ることに特化したクラスとか用意されてたら教えてください
0390nobodyさん2009/12/17(木) 19:04:56ID:???
json_encodeでテキストファイルに保存
json_decodeで復元
0391nobodyさん2009/12/17(木) 19:08:04ID:???
jsonのどの辺がベターなの?
0392nobodyさん2009/12/17(木) 19:23:30ID:???
構造が簡単で分かりやすく色々な言語で扱える
0393nobodyさん2009/12/17(木) 19:37:35ID:LUgkaaFg
>>390-392
xmlにしようと思ってましたがどうしても肥大化してしまうので
jsonかシリアライズがいいかなと思っていました
json_encode()とserialize()の速度を比較してたサイトも発見し
jsonのほうが速度的にも有利なようなので設定ファイルにjsonを使うことにします
どうもレスありがとうございました
0394nobodyさん2009/12/17(木) 19:51:43ID:DlTo5u8A
header("location: url")
で飛ばす時、どのようにすればターゲットフレーム名を指定できるのでしょうか?
調べてみてもみつからなかったのでお願いします。
0395nobodyさん2009/12/17(木) 20:24:08ID:???
フレーム使ってるってことだよね
それはサーバ側じゃなくて、ブラウザ側の処理
input action=゙submit゙あたりに何とかって属性を追加したはず
複数のフレームが変わったりする場合はjavascriptで可能
0396nobodyさん2009/12/17(木) 21:10:46ID:Uf/bDX+R
php5.3.1でmime_content_type()を使うには、何か拡張モジュール必要ですか?
Call to undefined functionと言われてしまうのです。
0397nobodyさん2009/12/17(木) 21:16:20ID:???
>>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
0398nobodyさん2009/12/17(木) 21:21:59ID:Uf/bDX+R
>>397
非推奨である旨は了解してます。
使用できなくなった・標準添付ではなくなった等ありますでしょうか?
03993962009/12/17(木) 21:25:09ID:Uf/bDX+R
>>397
ああああすいません、良く見たらPHP5.2.1でした…PECL標準添付は5.3.1から…吊ってきます
0400nobodyさん2009/12/17(木) 21:27:01ID:???
> mime_content_type
> (PHP 4 >= 4.3.0, PHP 5)
http://jp.php.net/manual/ja/function.mime-content-type.php
04013962009/12/17(木) 21:43:34ID:Uf/bDX+R
>>400
PHP5.2.1が入ってるのに5.3.1と勘違いしてました。
PHP5.3.1が(間違いなく)入ってる別マシンで試したら追加インストール等なしでしっかり動きました。
早とちり大変失礼しました。
(5.2.1でも追加インストールすれば使えると思いますが)
0402nobodyさん2009/12/17(木) 21:50:09ID:???
> 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
04033942009/12/17(木) 22:10:42ID:DlTo5u8A
>>395
フレーム使っています。
セッションを持ってないなら、TOPページへ〜
みたいな使い方をしたいので、inputは使わないです
javascriptの知識は全くないのですが、その場合方法をかえるしかないのでしょうか?
(フレームを使わない等)
0404nobodyさん2009/12/17(木) 22:17:41ID:???
>>403
無理やりだけど、PHPでセッションなりをチェックして
飛ばす場合は、親フレームのURLを変更するJavascriptを書き出す
0405nobodyさん2009/12/17(木) 22:51:17ID:DlTo5u8A
>>404
別の方法で試してみることにします。
わざわざ答えていただきありがとうございます。
0406nobodyさん2009/12/18(金) 18:18:39ID:7wQwxBqT
foreach($xml->foo[0]->attributes() as $a => $b) {
echo $a,'="',$b,"\"\n";
}

の$a => $bの => って何ですか?
-> (アロー演算子)とは違うのでしょうか?
04074062009/12/18(金) 18:20:27ID:7wQwxBqT
ごめんなさい
foreach{}のマニュアルに載ってました
0408nobodyさん2009/12/18(金) 18:22:25ID:???
>>406
$arr = array();
$arr["key"] = "val";
foreach ($arr as $k => $v)
{
print $k . ": " . $v;
}
0409nobodyさん2009/12/18(金) 23:35:31ID: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の数字が表示されません。どこがおかしいのですか?
0410nobodyさん2009/12/18(金) 23:50:15ID:???
nullが入ってるんじゃね?
0411nobodyさん2009/12/19(土) 00:28:45ID:???
$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>";

じゃない?
多次元配列で混乱してるんだと思う。
0412nobodyさん2009/12/19(土) 00:41:54ID: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のほうが速いのかという比較なのですが
ベンチマークのとり方ってこんな感じでよいのでしょうか?
一応ちゃんと動いてるような気はします
0413nobodyさん2009/12/19(土) 00:57:29ID:???
>>412
速度の違いをわかる方法なら何でもいいんじゃない?
でも、forならfor、whileならwhileに統一しないと、正しく評価できないよ。
あと、ループの回数はもっと多くしたほうがいい。
0414nobodyさん2009/12/19(土) 01:06:07ID:???
>>409
何がしたいか知らんが、なんでそんなややこしくする?
0415nobodyさん2009/12/19(土) 01:08:08ID:???
>>411
返事が遅くなりすいません。なおしていただき感謝です
今からおかしかったところ調べたいと思います。
またこけたらお願いします
0416nobodyさん2009/12/19(土) 10:37:29ID:???
>>412
PEAR::Benchmark_Timerというのがあるよ
0417nobodyさん2009/12/19(土) 21:02:45ID:x0H9DwDh
PHPとあまり関係ないかもしれないけど
DBに入っている画像のバイナリを表示させた場合、それを著作権有りの画像として表示させたい。
GD使えばそういう風にできる?
なんか携帯でメールに添付できない画像があるんだけどそういう風にしたい。
ただ既にDBに入っている画像はコピーライト有りになってない。
それともそういう画像は画像編集ソフトとかでコピーライト有りに編集しなきゃいけないのかな?
教えてよ。
0418nobodyさん2009/12/19(土) 21:05:37ID:???
できるよ
0419nobodyさん2009/12/19(土) 21:14:43ID:???
PEARって俺らがPHPの関数組み合わせて適当に作ったクラスを第三者も使ってくれみたいなもんだよね?
0420nobodyさん2009/12/19(土) 21:16:33ID:???
>>1
0421nobodyさん2009/12/19(土) 21:20:38ID:???
別に質問じゃないし
0422nobodyさん2009/12/19(土) 21:32:16ID:x0H9DwDh
>>418
そのやり方を教えて。
関数だけ教えてくれればあと自分でできるから。
でもPHPマニュアル見たけど無かったような
0423nobodyさん2009/12/19(土) 21:43:49ID:???
>>422
君がそう思うんならそうなんだろう、乙
0424nobodyさん2009/12/19(土) 21:45:24ID:JB1i7e9b
Aptana Studioについて教えて下さい。
Ctrl+Shift+FのFormat機能をカスタマイズすることは可能でしょうか?
エディタの設定でtab幅を2にしてるのにFormatすると全部4になってしまったり、
pタグが勝手に改行されたりと、いまいち使い辛いのです。
0425nobodyさん2009/12/19(土) 21:46:47ID:???
>>424
http://docs.aptana.com/docs/index.php/Customizing_your_formatting_preferences
0426nobodyさん2009/12/19(土) 21:49:49ID:???
>>422
画像を表示させる時にパーミッションを変更すれば可能
0427nobodyさん2009/12/19(土) 21:56:23ID:???
>>422
GDにコメント取得はあっても、セットするのがねーな。
ソフトバンクはヘッダつけるだけなので画像データいじらなくてよし。
0428nobodyさん2009/12/19(土) 21:56:44ID:JB1i7e9b
>>425
うおーこんなのがあったのか。ありがとうございます!
設定したフォーマットをエクスポートして共有できるとかすご過ぎる
0429nobodyさん2009/12/19(土) 21:58:02ID:???
どこも
http://feed.designlinkdatabase.net/feed/outsite_2882.aspx
あう
http://au.kddi.com/ezfactory/tec/spec/gif.html
0430nobodyさん2009/12/19(土) 23:47:26ID:???
>>427 >>429
ありがと
0431nobodyさん2009/12/19(土) 23:57:46ID:5CrPM6Aj
function array_delete($key, $array) {
$val = isset($array[$key]) ? $array[$key] : NULL;
unset($array[$key]);
return $val;
}

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

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

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

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

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

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

フレームワーク使おうが使うまいがテンプレートエンジンは別に必要ではない
0451nobodyさん2009/12/20(日) 13:29:39ID:???
<?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);
?>
0452nobodyさん2009/12/20(日) 13:33:50ID:???

これ実行してもなぜか書き込めません><
他の人はどうですヵ?;;
0453nobodyさん2009/12/20(日) 13:35:12ID: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 = 'abc@ne.jp';
$subject = 'the subject';
$message = 'hello';
//
$headers .= 'From: Birthday Reminder <birthday@example.com>' . "\r\n";
$headers .= 'Cc: birthdayarchive@example.com' . "\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しないと駄目なのでしょうか?
0454nobodyさん2009/12/20(日) 13:37:33ID:???
まんまメッセージのとおりじゃないか・・・
ローカル環境でメールサーバ構築してテストしれ
0455nobodyさん2009/12/20(日) 13:43:48ID:???
もしくは自分が使ってるメールクライアントソフトの送信サーバ設定をそのまま書きこむとか
0456nobodyさん2009/12/20(日) 14:58:46ID:???
【OS名】 debian lenny
【PHPのバージョン】 php 5.2.6
【質問内容】
php.iniでの
zend_extension=xxx.so
のような設定をhttpd.conf内で記述したい場合、どの様にしたら良いのでしょうか。教えて下さい。
0457nobodyさん2009/12/20(日) 15:06:50ID:???
>>1
04584562009/12/20(日) 15:26:32ID:ruVQmLxH
失礼しました。456は私です。
0459nobodyさん2009/12/20(日) 15:38:17ID:???
>>458
http://jp2.php.net/manual/ja/configuration.changes.php
04604562009/12/20(日) 15:55:24ID:ruVQmLxH
>>459
試したのですが、どうやらロードされていない雰囲気です、、、(phpinfoで確認しました)
先に言っておくべきだったのですが、ロードしたいのはxdebugです
0461nobodyさん2009/12/20(日) 16:12:44ID:???
具体的にどう設定してinfoはどうだったのか
04624532009/12/20(日) 16:14:27ID:???
>>454-455
ありがとうございます。


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

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

もちろん、上記のパスが正しいことは確認済みです。
0468nobodyさん2009/12/20(日) 16:52:58ID:???
試しに一般的なパラメタ指定するとどうなる?
あとその行に文法エラーになるような文を書いてApacheの起動に失敗するかも確認
04694562009/12/20(日) 17:02:07ID: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の設定を行うことは可能なのでしょうか・・・?
0470nobodyさん2009/12/20(日) 17:08:21ID:???
.htaccessでもできるんだから可能だろ
ちなみに、php_valueだよ
04714562009/12/20(日) 19:12:14ID:ruVQmLxH
php_valueでもダメっぽいですね、、、
0472nobodyさん2009/12/20(日) 21:23:11ID:???
【OS名】Windows
【PHPのバージョン】php5.29
【質問内容】
メッセージを既読の状態で imap_append するにはどうしたらいいのでしょうか?

よろしくお願いします。
0473nobodyさん2009/12/20(日) 22:15:43ID:???
>>472 ...
4つ目のオプションで "\\Seen"
0474nobodyさん2009/12/21(月) 21:59:39ID: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) なのですが、
間違いが分かりません。ご指摘願います。
0475nobodyさん2009/12/21(月) 22:18:49ID:???
$errorTo = "-f送信元メアド"//-f オプションを使用

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

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

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

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

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

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

直接途中のページにアクセスされるのを禁止するには
$_SERVER[HTTP_REFERER] で許可するページかどうかチェックする方法?
もっといい方法ありますか?
0488nobodyさん2009/12/23(水) 00:24:47ID:???
ウェブサイトの共有部分をphpでインクルードしたいのですが、
何から始めればいいのでしょう・・・ HTMLのソースならあるのですが(´・ω・`)
0489nobodyさん2009/12/23(水) 00:40:17ID:5FKPpQ9S
fgetsやCURLでgzip圧縮されたHTTP bodyを元の文字列に復号するにはどうしたらいいのでしょうか
0490nobodyさん2009/12/23(水) 00:45:48ID:5FKPpQ9S
gzdecodeは未定義でgzuncompress、gzinflateはデータエラーになりました。
0491nobodyさん2009/12/23(水) 00:46:12ID:???
>>489
奇遇だな、俺も今それでなやんでいたんだ
bodyの部分だけバイナリでファイルに書き込んでgzの拡張子にしてもなんだか壊れてるとかで開けなかった
もしわかったらこのスレに書き込んでくれ
俺もわかったら書き込むわ
0492nobodyさん2009/12/23(水) 00:47:49ID:cvJgDWhA
あ、sageはずすのかスマソ
今日は解決できなかったから寝るけど明日にでもまたやってみるわ
0493nobodyさん2009/12/23(水) 00:57:59ID: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); //読み込み
0494nobodyさん2009/12/23(水) 00:59:41ID:???
file_get_contents("compress.zlib:///home/aaa.gz");
0495nobodyさん2009/12/23(水) 01:19:52ID:VLbb10P/
age
0496nobodyさん2009/12/23(水) 01:27:35ID: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
この方法だと一度ファイルに書き込む必要が有りますよね
データ取得する度にファイルを生成するのは避けたいのです
0497nobodyさん2009/12/23(水) 05:40:00ID:9xQ+acVI
サーバーから任意のアドレスにリクエストを発生します。
そして返ってきたヘッダーにsetCookieが有った場合、それを任意のファイルに保存する事が出来、
そのファイルを指定すると、そのクッキー内容をセットして送信してくれる
またその関数はオプションで、レスポンスヘッダーにLocationが存在した場合、自動的にそのURLにリダイレクトもしてくれる
という関数を探しています。
以前使った記憶があるのであるはずなのですが、どうにも検索出来ません。
php cookie ですと、サーバーからクライアントにクッキーを渡す、受ける方法しか出てこないので。

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

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

が、どうもUAが空なのが原因だったらしい。
0501nobodyさん2009/12/23(水) 09:31:57ID:???
>>496
stream_filter_append で convert.base64-decodeと bzip2.decompress なんて手も。
0502nobodyさん2009/12/23(水) 10:34:14ID:cvJgDWhA
ID:5FKPpQ9S マジでGJ!!
俺もやってみるわ。なんか書き込んでとか生意気なこといったのに応じてくれてありがとう
0503nobodyさん2009/12/23(水) 10:35:28ID: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 の意味が分かりません
参照渡しだと言う事は分かるのですが、引数に指定された時にはいったいどういう挙動をするのでしょうか?
0504nobodyさん2009/12/23(水) 10:41:08ID:???
>>503
関数内で参照で使えるようになるよ
0505nobodyさん2009/12/23(水) 10:50:58ID:???
Smartyのテンプレート関数登録 register_functiont使うときのお決まりになってる。
その関数でsmartyの機能を参照できるようにするためで、引数に渡される。
使わないなら何もしない。 その関数の中で $smarty->trigger_error とか使うためのもの。
0506nobodyさん2009/12/23(水) 11:04:44ID:GedKCbN8
>>504-505
ありがとうございました
0507nobodyさん2009/12/23(水) 17:00:21ID:NNi2TGwI
IFRAME内で echo $_COOKIE["test_cookie"]としたのですが、
何も表示されません。

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

とすれば良いみたいです。おさわがせしました。
0516nobodyさん2009/12/23(水) 17:45:16ID:???
>>514
ありがとう
0517nobodyさん2009/12/23(水) 20:59:16ID: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。
0518nobodyさん2009/12/24(木) 03:35:43ID:???
やっべ自分のコード醜い
ワロタw
0519nobodyさん2009/12/24(木) 03:36:29ID:???
誤爆
0520nobodyさん2009/12/24(木) 15:58:09ID:RlAOKAtP
hoge->poge()
hoge::poge()

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

どなたか教えていただけると助かります。
0524nobodyさん2009/12/25(金) 02:39:45ID:???
スレタイを読んでいただけると助かります。
0525nobodyさん2009/12/25(金) 11:09:57ID: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
0526nobodyさん2009/12/25(金) 11:12:03ID:???
>>525
http://jp2.php.net/manual/ja/function.header.php
0527nobodyさん2009/12/25(金) 11:21:44ID:BJR7sXEG
>>526
おぉ、こんな簡単な方法が。
やりたいことができました!
ありがとうございました。
0528nobodyさん2009/12/25(金) 11:31:51ID:v7rwUytB
質問です。

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

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

気にせずクリスマスを祝えばいいと思うよ
0535nobodyさん2009/12/25(金) 13:07:56ID:???
とまあ、ネタに乗ってあげるやさしい回答者達でした。
0536nobodyさん2009/12/25(金) 13:11:14ID:???
感動した
0537nobodyさん2009/12/25(金) 13:46:55ID:???
>>528
そんなアホな上司がいる会社は見限って、うちの会社に来ないか?うちの会社は警備会社だが。
0538nobodyさん2009/12/25(金) 13:53:03ID:9hjXXeKP
警備なら毎日やってますよ
0539nobodyさん2009/12/25(金) 15:22:23ID:???
imagettftextで数式を表示させたいんですが「+」が表示されません。
表示できるフォントあるいは他の解決法があれば教えてもらえないでしょうか。お願いします。
05405392009/12/25(金) 16:37:50ID:???
解決しました!
0541nobodyさん2009/12/25(金) 17:06:12ID: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はどちらも「=」で代入されていますが、オーバーライドされないのでしょうか?
0542nobodyさん2009/12/25(金) 17:24:54ID:???
$a = 4
$a = 5 + $a ってだけですね。
0543nobodyさん2009/12/25(金) 17:35:52ID:ODrit1bB
>>542
すみません
$a .= 5 のように「=」の前にドットを付けるとそのようになるのは知っているのですが、単なる「=」でもそのように出来るのですか?
-> 等は追記していけるのは分かりますが、=がそのような動作を出来るとは知りませんでした

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

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

>>543
$a=4;
$a=5+$a;
//ここで$aは9だ。
0545nobodyさん2009/12/25(金) 17:57:27ID:???
$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 に入れます。

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


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

$result=str_replace("{/php}","{ldelim}/php{rdelim}",$result);
の$resultが見えていなかったようです
ほんとお騒がせしてすみませんでした
0549nobodyさん2009/12/25(金) 18:27:05ID:???
$a = 4
$a += 5
//$a:9
0550nobodyさん2009/12/25(金) 18:54:34ID:+jc140hL
携帯電話で検索フォームを作っているのですが、auのみ結果が文字化けしてしまいます。
(というより検索クエリ自体が化けているらしく結果も正しくありません)
フォームはGETで、ページはUTF-8です。auはフォームからのデータがSJISになってしまうということは
ググってわかったのですが、どうやってSJIS→UTF-8に変更してデータを送るかがわかりません。。。
どのような方法がありますでしょうか。
0551nobodyさん2009/12/25(金) 19:09:37ID: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();
0552nobodyさん2009/12/25(金) 19:31:27ID:???
>>550
mb_convert_encodingでいいのでは?
0553taigo ◆RpNs8sZ5pNfE 2009/12/25(金) 21:52:22ID:+jc140hL
>>551
ありがとうございます、が。。。やはり文字化けしてしまいます。
ページ変遷がなく、同じページを読み込んでいるのですが
それが原因となることはありますか?
0554nobodyさん2009/12/25(金) 22:38:29ID:9hjXXeKP
httpのメッセージボディをgzipで取得したとき、デコード(復号)するにはどうすればいいですか?
phpとかrubyだとたくさん資料あるのですが自分はC++つかっててよくわかりませんでした。
わかる方いらっしゃったらぜひともよろしくお願いします
0555nobodyさん2009/12/26(土) 02:04:33ID:???
>>554
>>489-496
0556nobodyさん2009/12/26(土) 06:41:22ID:3WIBYwDf
サイト内で不特定ユーザーに対してお気に入り登録機能をつけるために、クッキーを使おうと思います。

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

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

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

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

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

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

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

同時アクセスが原因だと思いますが、こういう場合どう対処すればいいのでしょうか?
0567nobodyさん2009/12/26(土) 14:19:08ID:???
キャッシュ
0568nobodyさん2009/12/26(土) 14:25:44ID:???
>>565
いただいたヒントでなんとか実現できました。
簡単なことだったのですね。。
ありがとうございました!
0569nobodyさん2009/12/26(土) 14:26:53ID:???
syslog()
0570nobodyさん2009/12/26(土) 17:54:40ID:7XqYgoy0
mysqlと同じ内容の 接続をPDOで要求した場合、再利用されますか?
0571nobodyさん2009/12/26(土) 18:38:14ID: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とは意味が違ってくると思うのですが
05725512009/12/26(土) 20:21:10ID:XUPV0oR3
>>553
実はまだつづきがあってね。
それを実行すれば
貼るとながいんだ。
はってもいいかな?
それをrequire_onceして共通関数として
使えば文字化けはなくなるよ。
05735512009/12/26(土) 20:56:29ID:XUPV0oR3
>>553できたみたいだな。
はらなくてよさそうだ。
0574nobodyさん2009/12/26(土) 21:07:32ID:wIFCZoqo
おしりが二つにわれてます
病気でしょうか?
0575nobodyさん2009/12/26(土) 21:08:17ID:wIFCZoqo
すいません誤爆しました
あああはずかしいいいいいいい
0576nobodyさん2009/12/26(土) 21:24:44ID:/CwwEmig
内部でexit()を呼んでいるユーティリティ関数があるんですけど、
これのテストコードを書こうとして困っています。
テストするためには当然その関数を呼び出す必要があるわけですが、
そうするとexit()でテストコードが終了してしまいます。
なんかいい方法ないでしょうか。
当方PHP5.2.x使用
0577nobodyさん2009/12/26(土) 21:29:22ID:???
exit()の頭に//を書くとコメントにできる裏技がある
0578nobodyさん2009/12/26(土) 21:44:59ID:???
exitを書いた関数のテストがexitで終了するなら正常な動作じゃないかw 
してほしいのかしてほしくないのかどっちなんだw
0579nobodyさん2009/12/26(土) 22:09:18ID:/CwwEmig
>>578
通常はexit()で終了してほしいけど、テストのときは終了してほしくない、ということです。
たとえば
function redirect_to($url) {
 header('Location: '.$url);
 exit();
}
というのがあって、これをテストしたい場合、
・redirect_to()を呼ぶと引数が Location: ヘッダの値として設定されることをテストする
・(可能なら)exit()が呼ばれることをテストする
ということになると思います。こういうテストがしたいんですけど、PHPでは無理ですか。
0580nobodyさん2009/12/26(土) 22:13:21ID:???
それできる言語とかあんの?
0581nobodyさん2009/12/26(土) 22:15:48ID:/CwwEmig
>>580
exit()を上書きできる言語ならできます。RubyとかPythonとか。
0582nobodyさん2009/12/26(土) 22:19:01ID:???
へー、PHPでやるならrunkitかなぁ
http://www.php.net/manual/ja/book.runkit.php
0583nobodyさん2009/12/26(土) 22:25:16ID:???
>>574
いつの時代だよw
0584nobodyさん2009/12/26(土) 23:02:30ID:???
>>153
何言ってるんだよお前ッ!!
お前がチンチンが痒いって言うから親身に相談にのってやってんだろうが!!
俺だっていそがしんだからな、分かったか?
05855532009/12/26(土) 23:21:13ID:???
>>573
あれからurlencodeとかdecodeとかhttp_outputとか調べて色々試したのですが
まだ解決できていません...
可能であれば貼ってもらってもよろしいでしょうか。
0586nobodyさん2009/12/27(日) 00:25:23ID:???
>>585
あんまり読んでないけど、
JavaScriptで変換してから送信すれば?
と言ってみる
05875512009/12/27(日) 01:12:28ID: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;
}


05885512009/12/27(日) 01:16:51ID: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,
05895512009/12/27(日) 01:17:37ID: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,
),
);
05905512009/12/27(日) 01:21:43ID: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;
}
?>
05915512009/12/27(日) 01:31:17ID:HTyX6aDg
はったぞ
05925532009/12/27(日) 01:33:56ID:???
>>551
長いコードを貼り付けていただき、ありがとうございます。
これで試してみます!

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

EXEとZIPしかありません。

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

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

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

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

),

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

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

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

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

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

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

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

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

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

けど$_SERVER['QUERY_STRING']では勝手に変わる前段階がセットされてるからこれ使って切り分ければいい
0644nobodyさん2009/12/28(月) 04:18:28ID:TpCjAyY+
>>640-643
結論としては、「できない」ということですね。
残念ですけど、「.」を使わない方法を考えることにします。
ありがとうございました。
0645nobodyさん2009/12/28(月) 07:06:29ID: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>
0646nobodyさん2009/12/28(月) 08:14:04ID:???
マルチ乙
0647nobodyさん2009/12/28(月) 09:16:40ID:361SB18M
マルチじゃないよ
CGIじゃないと無理だと言われたのであっちを打ち切ってこっちに来たんだもん
0648nobodyさん2009/12/28(月) 10:01:56ID:???
<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>
0649nobodyさん2009/12/28(月) 10:06:51ID:EdgvHAjX
デバッグについて教えてください。

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

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

貼っていただいたコードが「どのような原理」で動作する
ものなのか(キャリア判定部分以外でGET文字列の文字化け解消に必須な項目)の
ヒントをいただけるとありがたいです。
0652nobodyさん2009/12/28(月) 11:58:07ID:???
>>651
アドセンススレでやれ
0653nobodyさん2009/12/28(月) 14:03:19ID:???
>>652
「携帯サイトのphpの文字化けについて」の質問のどこにアドセンスの要素が?
0654nobodyさん2009/12/28(月) 14:34:43ID:???
だってこいつアドスレの住人だし
06555532009/12/28(月) 14:39:57ID:???
>>654
ごめん名前入れなかったが>>653は俺だ。
確かにアドセンススレにいるが、この質問とアドセンスは
関係ないだろと言いたかった。
つーかアドスレ以外のスレにもいるんだがなぜアドスレだけ抜き出すんだ?
0656nobodyさん2009/12/28(月) 14:42:25ID:???
騙り乙
0657nobodyさん2009/12/28(月) 16:15:51ID:???
フォームに誤入力があると指摘コメントを加えて
しかもユーザーが既に入力した箇所は残すフォームを
作りたいのですが、既入力を残す為にキャッシュを
使うとコメントを追加できないと思うのですが
既入力を取り込んでフォームを再構成しなければならないのでしょうか?
0658nobodyさん2009/12/28(月) 16:19:10ID:???
スレタイ
0659nobodyさん2009/12/28(月) 16:22:03ID: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
0660nobodyさん2009/12/28(月) 16:22:51ID:???
文字列から、最後の文字を取り出す方法の定石というかイディオムはありますか。
今は $str[strlen($str)-1] としているのですが、なんかもっといいイディオムがあれば教えてください。
0661nobodyさん2009/12/28(月) 16:28:08ID:???
>>659
PHPの基礎から勉強して下さいな
0662nobodyさん2009/12/28(月) 16:29:14ID:???
>>660
>>1
0663nobodyさん2009/12/28(月) 16:46:34ID:???
fputs("〜1★〜2");

fputs("〜1");

fputs("〜2");
になおす
0664nobodyさん2009/12/28(月) 16:51:48ID:???
>>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)
0665nobodyさん2009/12/28(月) 17:10:43ID:???
>>661さん
たしかに一から勉強が必要ですね。

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

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

皆様ありがとうございました!
0666nobodyさん2009/12/28(月) 17:34:16ID:???
>>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のスレで聞いたほうがいいかと。
0667nobodyさん2009/12/28(月) 17:45:49ID:???
>>657
はい
0668nobodyさん2009/12/28(月) 18:22:59ID:???
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);

0669nobodyさん2009/12/28(月) 18:26:20ID:???
//削除マークのない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 );

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

06715512009/12/28(月) 18:54:41ID:8/lFM/nf
>>668
http://www.mdn.co.jp/webcre/PHP/vol88/
これそのままコピッてうごかないの?
smartyの設定はちゃんとできている?
06726682009/12/28(月) 19:31:15ID:???
>>671
ありがとうございます。
これは一文字一文字手打ちで打ちました;;
こんなサンプルがあったとは・・・
smarty設定はまだしていません;;
0673nobodyさん2009/12/28(月) 19:54:27ID:US0yP5HE
スーパーグローバル変数を自分で追加することはできますか。
0674nobodyさん2009/12/28(月) 20:00:21ID:???
>>673
runkit.superglobalsという設定でできるそうです。
http://www.php.net/manual/ja/runkit.configuration.php
お騒がせしました。
0675nobodyさん2009/12/28(月) 20:02:11ID:Zm+8rWo0
うひ?
06765512009/12/28(月) 20:50:08ID:8/lFM/nf
しろよ。
動かないのあたりまえだろ?
DBの設定は?
06775512009/12/28(月) 21:05:58ID:8/lFM/nf
あれおれ>>553といい>>668
といいなんかつられている?
こいつらもしかしておれをひっかけるために
レスしている?
遊ばれている?
06786682009/12/28(月) 22:13:46ID:???
>>677
そんなことないですぜい。
ただPEARやらなんやら難しすぎて
0679nobodyさん2009/12/29(火) 00:26:53ID:OOP15gnW
uploaderでswfなどflashをアップロードするときにサムネイル画像を作成したいのですが
どうしたらいいでしょうか?
php自体で其れが出来ますでしょうか?
0680nobodyさん2009/12/29(火) 00:41:54ID:???
http://phpspot.org/blog/archives/2005/11/php_ffmpegphp.html
0681nobodyさん2009/12/29(火) 01:35:53ID:???
>>678
cakephp使おうぜ
0682nobodyさん2009/12/29(火) 02:15:20ID:???
CakePHPは卑怯
0683nobodyさん2009/12/29(火) 02:56:21ID:???
IDがOOP
0684nobodyさん2009/12/29(火) 03:25:17ID:???
Firefoxが目指してるOut Of Processの事か
0685nobodyさん2009/12/29(火) 05:01:42ID: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
0686nobodyさん2009/12/29(火) 05:10:14ID:???
`
0687nobodyさん2009/12/29(火) 05:11:52ID:???
UPDATE `table` SET 'count'=3 WHERE 'id'=1
intは`いらない

あとPHPエラーコード見るよりもコンソールで出るエラー見た方がわかりやすいよ
06886852009/12/29(火) 05:15:45ID:85TzBbP8
ヴァー。` と ' は違うんですね。
やっぱり単純なミスだったか。
動きました、有難うございました。
06896792009/12/29(火) 06:02:46ID:???
>>680
ありがとうございます<m(__)m>
06906802009/12/29(火) 06:32:23ID: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
06916802009/12/29(火) 06:33:12ID: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

ここまで
0692nobodyさん2009/12/29(火) 09:14:45ID: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)
}
}
0693nobodyさん2009/12/29(火) 10:51:53ID:???
大体いいんじゃない?
正規表現使うという手もあるけど
06945532009/12/29(火) 10:54:31ID:ObfZ+/cW
>>551
釣りじゃないですよ、アドバイスありがたいです。
やりたいことは au端末からGETで日本語を送ると、
送信データ、受け取りデータともに文字化けしてしまうので
これを防ぎたい。ってだけです。
ページ(内部文字コード)はすべてutf-8です。
PHP開発経験はありません。簡単なことはわかるのですが、
バッファ云々が?な感じですのでマニュアルなど調べながら
やっています。
コード貼っていただきながらその後あまり時間が取れなかったので、
いまから再挑戦してみます!
0695nobodyさん2009/12/29(火) 11:28:11ID:???
文字化けですか。
http://hain.jp/index.php/tech-j/2007/02/13/p125 読んでね。
あとは、サイトの文字コードがなんであろうとも Shift-jisで送られてくることがあります。
文字コードの自働検出は当てに出来ません。
GETに渡す値はurlencodeはつかってますよね?
0696nobodyさん2009/12/29(火) 12:17:02ID:???
>>690
./configure

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

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

っていうのを先頭に入れてみたらどうかの( ・ω・)
0698nobodyさん2009/12/29(火) 12:26:22ID:???
>>690
そもそもそこの前半のffmpeg自体は--enable-shared付きでインストールできたの?
06996942009/12/29(火) 12:40:47ID: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がよさような気がしていますが、
私の環境ではうまく出力してくれないので、いろいろ試しています。
07006942009/12/29(火) 13:08:00ID: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で全角カナを半角カナに変えているのをやめたがダメ

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

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

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

アドバイスお願いします。php5.2.xです。
07066802009/12/29(火) 20:46:01ID: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
07076802009/12/29(火) 20:49:17ID: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
0708nobodyさん2009/12/29(火) 22:00:03ID:???
>>705
マルチ乙
0709nobodyさん2009/12/29(火) 22:35:04ID:???
>>707
勘違いしてた(・ω・)
./configure --enable-shared
は、ffmpeg-phpじゃなくて、ffmpeg本体のconfigure時にやるですよ
0710nobodyさん2009/12/29(火) 23:09:51ID:Vq+TKsF0
LAMP環境で、DBのタイムアウトを過ぎてもブタウザに操作が返ってこないのを何とかしたいんですが、
どうすればいいでしょうか?
0711nobodyさん2009/12/29(火) 23:10:36ID:???
そんなにブタを毛嫌いしなくても
0712nobodyさん2009/12/29(火) 23:24:00ID:pB5Ltbyz
php.iniのmbstring.internal_encodingがEUC-JPになっていたので
ini_set('mbstring.internal_encoding', 'UTF-8');
としたのですが、フォーム処理時にEUCでデータが送信されているようで、
文字化けを起こしてしまいました。

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

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

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

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

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

ごめんなさい。
htmlも fopen()しないとだめですよね。
for文等は省略していましたが、解りにくいので書き方を変えました。
ファイルの2行目のポインタを得たいのですが、その方法が良くわかりません。
上記構文ではうまくいかないように思うのですが・・・
07267232009/12/30(水) 10:13:46ID:5adIyASg
っと、下に例が載ってましたね。
fopen(,r)が抜けていましたが。
それを除けば725で正常に取得できると思って良い・・・のかな。
0727nobodyさん2009/12/30(水) 10:19:35ID:???
>>726
ためしてみるといいよ
0728nobodyさん2009/12/30(水) 10:19:58ID:???
君がそれでいいのなら
0729nobodyさん2009/12/30(水) 11:31:31ID:???
fileでいいじゃん
07307232009/12/30(水) 12:44:43ID: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);
}
?>
0731nobodyさん2009/12/30(水) 13:53:29ID:???
試しに730のソースのURLだけをこの板のアドレスにしたら、
全く同じページの出力が出来た。
ちゃんとそのソースは動くと思うけど
0732nobodyさん2009/12/30(水) 14:12:15ID: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
0733nobodyさん2009/12/30(水) 15:14:29ID:???
そういう配布してるスクリプトって適度に欠陥が多い事があるからねぇ
ログイン関係で実は致命的なセキュリティホールがあるなんてざらだし。

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

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

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

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

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

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

ありがとうございました。。
0738nobodyさん2009/12/30(水) 17:20:03ID:???
$_GET[n] を $_GET['n'] に書き換えるだけなんだが。
0739nobodyさん2009/12/30(水) 18:28:44ID:???
>>730
String値しか取得できていませんでした っていうのはどういう意味かの(・ω・)
0740nobodyさん2009/12/30(水) 18:55:33ID:???
かわいいの(・ω・)
0741nobodyさん2009/12/30(水) 19:57:03ID:???
毎度、申し訳ございません。。
$_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
0742nobodyさん2009/12/30(水) 21:20:42ID:???
>>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してれば出ないはずなんだけどね。
0743nobodyさん2009/12/30(水) 22:21:02ID:???
実はxamppだからphp.iniがたくさんあるとか?
プログラムの一番最初に
error_reporting(E_ALL ^ E_NOTICE);
を追加するって技もあるんだけど、こういうのだと難しそうだしなぁ。
0744nobodyさん2009/12/30(水) 22:32:33ID:???
なんでxamppだとphp.iniがたくさんあんの?
0745nobodyさん2009/12/30(水) 22:41:21ID:+olHzS1B
つーかxamppつかわないでみたら?
後xamppもphp.iniは一個だけでしょう?
0746nobodyさん2009/12/30(水) 22:44:54ID:???
phpフォルダの中にphp.iniとphp5.iniとphp4フォルダがあって、
さらにphp4の下にphp.iniとphp4.iniがあるっていう構造だったり。
でも変更が必要なのはapache/bin/php.iniだという、
初心者は確実に勘違いするような感じだったりする。
0747nobodyさん2009/12/30(水) 23:27:25ID:AOSiAt9q
3147483647くらいのでかめの数値を(int)すると負の値になるのですが
これは一体どういうことです?
$a = 3147483647;
echo (int)$a; // -1147483649
0748nobodyさん2009/12/30(水) 23:40:28ID:???
仕様はご存知かな?
0749nobodyさん2009/12/30(水) 23:56:32ID:???
>>746
今はもうないぞ
0750nobodyさん2009/12/31(木) 00:21:31ID:???
例の彼だろ。さわるなよ
07516802009/12/31(木) 05:48:39ID:a+pevmsQ
>>709
お礼遅くなりましたが有難うございます
うまくできました
感謝です
0752nobodyさん2009/12/31(木) 10:41:15ID:???
2009年まとめPHPスレから巣立った先輩

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

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

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

ただ関数でも作って何とかなるなら参考になるサイトとか無いですか?もしくは関数を書いてもらえれば助かります。
0759nobodyさん2009/12/31(木) 12:49:47ID:???
まずスレタイを読んでもらえれば助かります。
0760nobodyさん2009/12/31(木) 12:52:43ID:???
phpができれば就職できますか?
0761nobodyさん2009/12/31(木) 12:56:37ID:oi0jVub9
>>760
できません。
0762nobodyさん2009/12/31(木) 13:15:47ID:???
>>759
>>1を読んでからの質問ですが・・・?
07637582009/12/31(木) 13:15:50ID: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);
こんな感じのサンプルができた。
これよりスマートな実現方法ってあるかな?

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

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

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

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

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

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

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

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


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

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

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

>>798
ありがとうございます!
0802nobodyさん2010/01/01(金) 21:00:26ID: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";
}

0803nobodyさん2010/01/01(金) 21:24:41ID:???
>>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って結構あるね。
0804nobodyさん2010/01/01(金) 21:32:35ID:???
>>802
設計がおかしいです
もうちょっと具体的にどういうことをするのかを書けば適切なアドバイスができます
0805nobodyさん2010/01/01(金) 21:34:04ID:???
>>802
俺だったら
switch($_GET["hoge"]){
case 1:
switch($_GET["test"]){
case 2:
echo "yes";
break;
default:
echo "on";
}
break;
}
って書くかな。
そっちの方がこの手の物だソースが読みやすくもなる。
0806nobodyさん2010/01/01(金) 21:35:43ID:???
PHPで使われてる正規表現エンジン"鬼車"は日本人の開発だったかな
0807nobodyさん2010/01/01(金) 21:41:33ID:???
PHPだけじゃなくPerl,Ruby,様々なLinuxディストリにも使われてるのか
ttp://www.geocities.jp/kosako3/oniguruma/index_ja.html
ttp://www.freebsd.org/cgi/cvsweb.cgi/ports/devel/oniguruma/
0808nobodyさん2010/01/01(金) 21:54:37ID:???
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];
}
0809nobodyさん2010/01/01(金) 21:56:22ID:???
}
最後抜けてた。試してないからこんな感じということで。
0810nobodyさん2010/01/01(金) 22:11:37ID:???
>switch-case文のネストとか非常に読みにくくなると思うのは俺だけ?
インデントしっかりやっておけばそうでもないよ。
switch使い慣れてないとbreak;付け忘れる人がいるけど
どっちにしても
>testは2だけではなく 2,3,4,5,・・・・20まで続いてます。
って場合どんどんと比較パターンが多くなってくるとifだけで表現させていくとswitchより読みにくくなる。
0811nobodyさん2010/01/01(金) 22:26:03ID: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];
}
0812nobodyさん2010/01/01(金) 22:28:36ID:???
>>811
それだと
>test.php?hoge=1 OK
の処理を追加しないとダメだよ。
0813nobodyさん2010/01/01(金) 22:28:44ID:nSuyooiG
PHPのマニュアルのミラー多すぎない?
関数名で検索すると、同じ内容のページがぎょうさん
0814nobodyさん2010/01/01(金) 22:37:21ID:hR+m4MNr
>>805
ありがとうございます
うまくできました!

他の方ももいろいろありがとうございました。
08158122010/01/01(金) 22:39:34ID:???
>>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];
こんな感じか?
0816nobodyさん2010/01/01(金) 22:40:39ID:???
>>813
それわかる。
関数のいろいろなサンプル探しているのにマニュアルのミラーだからサンプルもみんな同じって事あるよ。
0817nobodyさん2010/01/01(金) 22:41:18ID:A1Hlzrb8
>>812
$_GET['test'] == ''なら echo 'ok';
あるなら811ってこと?
0818nobodyさん2010/01/01(金) 22:44:57ID:A1Hlzrb8
>>812
$_GET['test'] が空(数値でない)なら echo 'ok';
あるなら811ってこと?
カンマ抜けちゃった

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

$DATA['OWN'] = "ME";
$DATA[$IDX]['YY'] = 10;
$DATA[$IDX]['MM'] = 1;
$DATA[$IDX]['DD'] = 2;
0833nobodyさん2010/01/02(土) 15:30:54ID: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]];
となっております。

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

>>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ファイルの存在や書き方は問題ないと思われます。)

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

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

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

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

こういうのは可能なんですか
0860nobodyさん2010/01/04(月) 14:47:04ID:???
まずライセンスを確認してから質問してるのかね君
0861sexyphp2010/01/04(月) 14:51:27ID:dZXnpRZU
>>860
BSDライセンスって何なの。
俺のソースコードすべてにいちいちコメントアウトしてライセンス協定
書くってことなんですかぁ?
0862nobodyさん2010/01/04(月) 15:09:36ID:???
詳しく書いてあるよ
ttp://ja.wikipedia.org/wiki/BSD%E3%83%A9%E3%82%A4%E3%82%BB%E3%83%B3%E3%82%B9
0863nobodyさん2010/01/04(月) 15:37:25ID: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
0864nobodyさん2010/01/04(月) 15:43:51ID:???
読み込んでいるphp.iniが違うんでね?
phpinfo関数で、mbstringの箇所がどうなっているか、php.iniの場所はどうなっているか、など確認してみては
0865nobodyさん2010/01/04(月) 15:47:13ID:???
>>863
半角カナと全角カナを変換するだけの関数だから無くても大した問題はない

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

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

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

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


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

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

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

<?php phpinfo

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

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

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

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

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

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

やはりドメインが変わるとクッキーのやりとりは出来ないのでしょうか?
0901nobodyさん2010/01/06(水) 22:49:03ID:???
できねえよカス
0902nobodyさん2010/01/06(水) 23:51:51ID: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);
}
0903nobodyさん2010/01/06(水) 23:59:04ID:???
>>902
"下らねぇ質問"と取ってきたページの文字エンコードを合わせればよかと
あともし2chを対象としているのなら直接datを見た方がいいと思うよ
09049022010/01/07(木) 00:13:12ID:7vbs2WcD
>>903
うまくいきました。ありがとうございました。
あ、例で出しやすかったので2chのアドレスを表記しただけですw
わざわざありがとうございます。
0905nobodyさん2010/01/07(木) 01:57:55ID:???
>>899
お前がよく読め。
>GPLソースコードの修正で再頒布が必要になる
>GPLで保護された著作物の修正や、GPLで保護されたコードを新しい著作物で使うとき、
>必ずしもソースコードの公開を要求しているわけではない。この要求は、
>新しいプロジェクトが第三者に「頒布される」ときだけに発生する。結果としてのソフトウェアが、修正者に使われるだけなら、ソースコードの公開は要求されない。

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

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

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

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

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

って事でしょ。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

この連立方程式をPHPで解くコードを教えてください
0956nobodyさん2010/01/07(木) 19:56:03ID:???
PHP6はhtmlspecialchars()が消えるみたいだよ
0957nobodyさん2010/01/07(木) 20:33:47ID:???
htmlentitiesは?
0958nobodyさん2010/01/07(木) 20:34:09ID:5cb0Qm+/
例えば30まで数があって、
30からランダムに順々に重複しない数を取り出したいです。
考えたのが、
例えば最初に5を取り出したとき、5をストック。次に
ストックを検索してかぶらない数字12を取り出してストック、ストック(5, 12)を検索して・・
という感じでやろうとしたのですが、無駄が多いように思えるのです。
何か他に効率のよい方法はありませんでしょうかアドバイスよろしくお願いします。
0959nobodyさん2010/01/07(木) 20:39:27ID:???
効率といってもいろいろあるけどね。
ここにそのまま使えそうな例がある。
http://www.php.net/manual/ja/function.shuffle.php
0960nobodyさん2010/01/07(木) 20:47:11ID:???
>>959
PHPパネェ
0961nobodyさん2010/01/07(木) 21:24:45ID:5cb0Qm+/
>>959
とりあえずはやりたいことがシンプルにかけました
ありがとうございました
0962nobodyさん2010/01/07(木) 21:30:53ID:???
アレイシャッフルは精度がよくないから自分で実装したほうが良い
シャッフルのアルゴリズムはmediawikiで探すと見つかる
0963nobodyさん2010/01/07(木) 23:49:38ID: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
0964nobodyさん2010/01/08(金) 00:26:11ID:???
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
0965nobodyさん2010/01/08(金) 09:16:40ID:???
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;
}
0966nobodyさん2010/01/08(金) 09:48:35ID:???
>>962
PHPの中でどうやって混ぜてるか見たけど(array.c)
配列の全要素を、乱数で他の要素と入れ替えてるね。

mediawikiは???
0967nobodyさん2010/01/08(金) 11:01:32ID:???
shuffleは偏りが出るの?
09689492010/01/08(金) 15:52:11ID: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と表示されます)
09699402010/01/08(金) 15:58:56ID:3B7A809H
>> 941
> JISはシフトインアウトがあるからな

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

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

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

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

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

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


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

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

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

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

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

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