【PHP】下らねぇ質問はID出して書き込みやがれ 91
質問者はまず
>>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等)・フレームワークは各該当スレへ
【簡易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プログラムとして実行された結果になる。
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に保存?
→ 好きにしてください
>>1 乙
}はおっぱい括弧ってよぶのか
いいこと知った
8 :
Neet :2009/12/08(火) 16:45:50 ID:bw06sTbP
Webプログラマとして就職活動を始めている26歳男です。 独学で勉強して実際に面接に挑む予定です。 もしここにいる人で、仕事でプログラム書いている方 あなたが面接官だった場合どのようなことで採用の判断決めますか?
スレチな上にアホなこと質問してるやつが同い年とは思いたくないわw
26歳の取るんだったら、実績見たいとこだなあ。どんなサイトつくったことある?と。
11 :
sage :2009/12/08(火) 17:40:40 ID:+lXW3oI0
質問させてください。 PHP 5.2.9のレンタルサーバなのですが、 $context = stream_context_create( array( 'http'=>array( 'method'=>'POST', 'header'=>"X-Server-Address: ".$_SERVER['SERVER_ADDR']."\r\n". "User-Agent: Mozilla/4.0\r\n" ) ) ); 上記のcontext設定でfile_get_contentsをしたときに、 methodは書き換わるのですが、headerの内容が書き換わりません。 headerの設定を適当に "Accept-language: en" などに変えてみても、反映されないのですが、 headerの書き換えが禁止されるようなphp.iniの設定など あるのでしょうか? methodは書き換わっているだけに、不可思議なんです。 よろしくお願いします。
12 :
11 :2009/12/08(火) 17:42:54 ID:???
sageミスしました。 申し訳ない
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 を定義済みとして参照できるでしょうか? よろしくお願いします。
14 :
13 :2009/12/08(火) 18:18:21 ID:???
mbstring や oci8 の定数も同様に比べてみたところ、これらは cliでもモジュールでも定数として見えました。 SQLiteのモジュールの定数だけがおかしいみたいです。 なんなんだろう。。。 Debian(php5-sqlite)の問題だったらごめんなさい。
15 :
nobodyさん :2009/12/08(火) 18:31:46 ID:GGPotsAy
tortoiseSVNってインストールするとパソコンの動作が結構重くなるのですか?
>>14 他の定数はどうなん?
print_r(get_defined_constants(true));
18 :
13 :2009/12/08(火) 18:50:58 ID:ppGwYCe4
>>16 すみません、名前を書けば出ると勘違いしてました。気をつけます。
>>17 こんな関数あるんですね。
preで括ってブラウザに出たものとcliで実行した物を保存して
diffしてみたところ、[pcntl], [ncurses], [SQLite] の3つが
cli にしか存在しませんでした。
あと違いがあった中でこんなのがありましたが、
ブラウザ: [PHP_CONFIG_FILE_SCAN_DIR] => /etc/php5/apache2/conf.d
CLI : [PHP_CONFIG_FILE_SCAN_DIR] => /etc/php5/cli/conf.d
これはどちらもsymlinkで /etc/php5/conf.d を参照してます。
あとは関係がありそうな差異は見られませんでした。
peclから手でインストールしてみようかと思ったら、あれはもう
メンテナンスされてないんですね。。。
>>13 そもそもSQLiteは動くのかな?
定数無くてもさ
20 :
13 :2009/12/08(火) 19:32:38 ID:ppGwYCe4
get_defined_functionsも比べてみました。
pcntlとncurses 関係はcliのみ存在しました。
sqlite_* は両方に存在します。
その他、
modのみ: apache_lookup_uri virtual apache_request_headers apache_response_headers apache_setenv apache_getenv apache_note apache_get_version apache_get_modules getallheaders
cliのみ: chroot, pdo_drivers
という違いがありました。 pdo_drivers が気になる。。。
>>19 sqlite_*に未定義の定数を指定したりしなければ動くのです。
rhacoというのを試していたのですが、いっこうにうまく動かず、
やっと見つけた原因が「定数が未定義」というものでして。。。
定数指定してるところをばさっと消すと一応動作しました。
21 :
13 :2009/12/08(火) 19:52:42 ID:ppGwYCe4
似たような環境で関数をチェックしてみたところ、 apacheのモジュールでもpdo_drivers関数は存在していました。 実はPDO_OCIを入れようとして、pecl install PDO_OCIしたところ pear/PDO_OCI requires PHP extension "pdo" (version >= 1.0) と言われたので、てっきり古いんだと思い、 pecl install PDO してしまいました。 うまく動かず、元に戻したつもりだったのですが、なにかおかしい 状態になっているのかもしれないです。 たぶん私の環境の問題だと思いますので、質問は取り下げます。 お騒がせして申し訳ありません。
22 :
nobodyさん :2009/12/08(火) 20:14:06 ID:GGPotsAy
MySQLにShift_JISで登録したところ、EUCで保存しているPHPコードを実行すると、 そのデータベース部がブラウザで文字化けしました 解決方法が分からず、とりあえずmb_convert_encoding($row['name'],'EUC-JP','auto')のようにした所ブラウザ上は文字化けは収まりました しかし、元々htmlspecialchars($row['country'])のようにしていたのですが、上記のやり方だとHTML エンティティに変換するにはどのようにすればいいのか分かりません どのようにすればいいのでしょうか? 一個一個の個別の変換ならば変数に定義してそれを引数に入れればいいのでしょうが、大量にあるのでどう対処すればいいのか分かりませんでした
データベースのデータの文字コードをまず全部変換しちゃえばいいんじゃない? Shift_JISやEUCを使う理由はあるの?
UTF-8つかえよ
25 :
Neet :2009/12/08(火) 21:59:25 ID:bw06sTbP
>>9 すれ違いなのは分かりましたが、あほっていうのはなぜですか?
26 :
nobodyさん :2009/12/08(火) 22:09:44 ID:GGPotsAy
>>23-24 皆さんは、データベース登録時、PHPコードの文字コードはそれぞれ何で保存されているのですか?
UTF-8でしょうか?
あっ、ちなみに自分はLinuxではなく、WindowsXPです
>>26 皆が使っているから自分もという安直な発想はやめたほうがいい
28 :
Neet :2009/12/08(火) 22:13:30 ID:bw06sTbP
>>22 PHPのソースコードの文字コードは文字化けの直接原因でなく
header関数,htmlの文字コード指定をShift_JISで出力してあげればいいと
php.iniファイルの文字コード関連の設定を一度確認しないと解決しない
29 :
nobodyさん :2009/12/08(火) 22:15:38 ID:GGPotsAy
>>27 確かにそうですよね
しかし、文字化けが解消しなくて困っています
色々なコードで保存しなおしたり、php.iniなどの設定を見直したり・・・
ですから、参考にでもと思ったもので
DB : Shift_JIS 、 PHP : EUCで何がおかしいのかなと思いまして
30 :
nobodyさん :2009/12/08(火) 22:16:42 ID:GGPotsAy
>>28 >header関数,htmlの文字コード指定をShift_JISで出力してあげればいいと
それはまだ試しておりませんでした
ブラウザの文字コードを変えるような事は行っていましたが
ちょっと試してみます
31 :
Neet :2009/12/08(火) 22:23:25 ID:bw06sTbP
php.iniのdefault_charsetの機能はon/off? 文字コードは何にしています?
32 :
nobodyさん :2009/12/08(火) 22:34:45 ID:GGPotsAy
>>31 めぼしい所の設定を書かせて頂きます
((php.ini))
default_charset = Shift_JIS
mbstring.language = Japanese
mbstring.internal_encoding = EUC-JP
mbstring.http_input = auto
mbstring.http_output = SJIS
mbstring.encoding_translation = On
mbstring.detect_order = auto
mbstring.substitute_character = auto;
mbstring.script_encoding = EUC-JP
((MySQL))
[mysql]
default-character-set=sjis
[mysqld]
default-character-set=sjis
skip-character-set-client-handshake
となっております
>>26 Shift-JISは何かと問題が多いって聞いたから、最初からUTF-8を使ってる。
34 :
32 :2009/12/08(火) 22:42:32 ID:GGPotsAy
追記させていただきますが、コマンドプロンプトにて
mysql> SHOW VARIABLES LIKE 'char%';
を行ったところ、
| character_set_client | sjis
| character_set_connection | sjis
| character_set_database | sjis
| character_det_filesystem | binary
| character_set_results | sjis
| character_set_server | sjis
| character_set_system | utf8
等となっております
>>33 そうなのですか・・・
自分もちょっとUTF-8の方を試してみようかと思います
結構この文字化け問題、色んな所でぶつかっていて・・・
35 :
Neet :2009/12/08(火) 22:46:11 ID:bw06sTbP
default_charset = Shift_JIS は自動でheader関数を実行してくれる機能。 つまりブラウザーに出力するさいにShift_JIS指定してくれとお願いしている。 htmlタグに<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> と記入するのもブラウザーに出力する際にShift_JISでお願いしている。 これで直らない? Mysqlにデータを登録する際にフォームの文字コードは?
36 :
nobodyさん :2009/12/08(火) 23:06:16 ID:GGPotsAy
>>35 今回はフォームからMySQLに登録したのではなく、コマンドプロンプトから読み込んでデータベースに登録しました
mb_internal_encoding("Shift_JIS"); を書き加えたらデータベースからの出力内容はちゃんと日本語で出ましたが、今度はその他の<table>要素とかの文字が文字化けしてしまいました・・・
>htmlタグに<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
一応やってみましたが残念ながら改善致しませんでした
37 :
Neet :2009/12/08(火) 23:17:34 ID:bw06sTbP
データベースから取得して出力しているファイル見せてもらえませんか?
headerいじっても内部コードが違うなら意味ない 内部コードがどうなってるか調べてみ
39 :
nobodyさん :2009/12/08(火) 23:26:03 ID:GGPotsAy
>>37 例えばなのですが、
<?php
require_once("DB.php");
$dsn="mysqli://pearusr:pearpass@localhost/pear";
$db=DB::connect($dsn);
$rs=$db->limitQuery("SELECT * FROM composer ORDER BY birth ASC",2,3);
?>
<table border="1">
<tr>
<th>名前</th><th>出身国</th><th>誕生日</th>
<th>享年</th><th>代表作</th>
</tr>
<?php while($row=$rs->fetchRow(DB_FETCHMODE_ASSOC)){ ?>
<tr>
<td><?php print(htmlspecialchars($row['name'])); ?></td>
<td><?php print(htmlspecialchars($row['country'])); ?></td>
<td><?php print($row['birth']); ?></td>
<td><?php print($row['old']); ?>歳</td>
<td><?php print(htmlspecialchars($row['work'])); ?></td>
</tr>
<?php } ?>
</table>
です
40 :
Neet :2009/12/08(火) 23:34:05 ID:bw06sTbP
あ、ごめん shift_jisでphpファイルを保存するとどうなりますか?
htmlspecialchars(mb_convert_encoding($row['name'], "EUC", "SJIS"))
43 :
nobodyさん :2009/12/08(火) 23:44:10 ID:GGPotsAy
>>40 テーブル上の全ての文字、名前とかも文字化けします
データベースからの文字は変換されるのかと思っていたら、それすらも文字化けしてしまいます
>>41 すみません
一応自分でも<table>の上に、<html><meta〜><body>など書いてタグを閉じてみたのですが、元々がこのコードでしてそれを出しました
44 :
nobodyさん :2009/12/08(火) 23:48:31 ID:GGPotsAy
>>42 自分でも、htmlspecialchars(mb_convert_encoding($row['name'], "EUC-JP", "auto"))
としたら上手くいったのですが、mb_convert_encoding()を全てに書かなきゃいけませんでした
もう結構な日数、設定を見直そうと色々とやったり検索してみたのですが、迷宮に迷い込んでしまいました
>mb_convert_encoding()を全てに書かなきゃいけませんでした htmlspecialcharsも全部に書いてるじゃないか ていうかそういうもんだし・・・ いやなら$row全部にかければいいんじゃね
迷宮に迷い込むぐらいならDB側もPHP側も全てUTF-8にしとけ
というのがこのスレのスタンス
たまに出るが
>>4 の1のEUC-JPはそろそろはずしたほうがいいと思う
47 :
nobodyさん :2009/12/09(水) 06:25:37 ID:AEdsXhEH
PHP 6 では safe_mode が廃止されるようですが、 では共用サーバにおいて各ユーザが自分に割り当てられた ディレクトリ以下にしか読み書きできないようにするには どうすればいいのでしょうか? apache + mod_php です。
48 :
nobodyさん :2009/12/09(水) 06:35:27 ID:LJm/OnIu
正規表現でfilename_150x100.jpgのようなファイル名の時に filename.jpgでもfilename_150x100.jpgでもマッチさせたいんですがうまくいきません。 preg_match('/^([0-9a-z]+)_([¥d+]{2,3})x([¥d+]{2,3})¥.(jpg|gif|png)$/', $file, $ret) ↑まではなんとか辿りつきましたがこれだと_150x100がないとマッチしてくれなくて困っています。 多分初歩的なことだと思いますが、どなたかここから先を教えてください。
^abc(|[12])$ は abc, abc1, abc2 とマッチするよ。
<?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>
>>47 ログインはさめばいいよ
ダイレクトにアクセスしてもはじけばいいだけ
52 :
32 :2009/12/09(水) 09:36:23 ID:anat6YPp
昨夜は色々とありがとうございました 結局問題が解決しなかったので、ご指摘の通りphp.iniもmy.cnfもUTF-8に統一しました テキストエディタの初期文字コード、保存文字コード共にUTF-8に、ブラウザも自動判別(+UTF-8)にしたところ何とか文字化けは起こらなくなりました これで文字化け問題は解決したのか分かりませんが、一応このままやってみようと思います ありがとうございました
その程度の知識じゃUTF−8特有の問題にそのうち陥るw
54 :
nobodyさん :2009/12/09(水) 11:44:36 ID:zpeYVRKK
以下の処理をするとファイルの一番上の行で処理が終わってしまうのですが、 複数行読み込ませて「<>」の左の要素と「$_POST['button']」が一致した時ループを終了して$dataに代入するにはどのようにすればいいでしょうか? if($_POST['button'] === 'NOT') $_POST['button'] = ''; $fhy = fopen("data.cgi","r"); @flock($fhy,"2"); while(!feof($fhy)) { $fline = fgets($fhy); $textline = explode('<>',$fline); if($_POST['button'] === $textline[0]) { $flag = 1; breack; } } if($flag == 1) $data = $textline[1];
55 :
nobodyさん :2009/12/09(水) 11:48:35 ID:zpeYVRKK
すみません、$dataに代入するのは「<>」の右の要素です。 要素は二つのみです。
>>54 $_POST['button'] = '';
んん?
if($_POST['button'] === $textline[1]) {
$data = $textline[1];
break;
}
でいいのでは?
57 :
nobodyさん :2009/12/09(水) 12:02:44 ID:mJCDNQBS
【OS名】Winxp SP2 【PHPのバージョン】php5.045 【連携ソフトウェア】- 【質問内容】 コードを記述します。 <html> <head><title>Hello</title></head> <body> <?php $now = gettimeofday(); $weekday = array( "日", "月", "火", "水", "木", "金", "土" ); echo date('Y/m/d') .' '. '(' . $weekday[date("w")].')'.' ' . strftime('%H:%M:%S',time()) . '.<font size="2">'.$now['usec']; ?> </body> </html> 上記に於いて、タイミングによってマイクロ秒の部分の桁数が4桁とか3桁とかに 変わってしまうんですが、これを常に6桁に固定させることは可能でしょうか? よろしくお願いします。
58 :
nobodyさん :2009/12/09(水) 12:03:05 ID:zpeYVRKK
お、ありがとうです。試してみます
60 :
nobodyさん :2009/12/09(水) 12:11:43 ID:zpeYVRKK
61 :
nobodyさん :2009/12/09(水) 12:59:57 ID:mJCDNQBS
>>59 やてみたんですがどうもうまくいきません…
大変お手数ですがコードを記述していただけないでしょうか?
安易に答えを求めるな 試行錯誤しろ
>>61 わかんなかった?マニュアルに書いてるから出来ると思ったが
$now['usec']を
sprintf("%06d", $now['usec'])
PHPって簡単とかちまたで言われているが(まぁ記述に関しては特別難しいとは思わないけれど)、PHP、SQL、PEAR、Smarty、ZendFramework、データベースとの連携とかやると結構大変だなぁ 参考書だけでいいってのならば数ヶ月でいいだろうけれど、ちゃんと本家に行ってマニュアル読んでってなるとめっちゃ大変だった 設定などにもかなりてこずったし、学習量は少ないとは思えなかった コレで大変ならばJavaとかCとかもっと大変なんだろうな・・・
65 :
nobodyさん :2009/12/09(水) 15:02:28 ID:mJCDNQBS
>>63 すいません、まだ勉強し始めなものでして。精進します
>>62 うまくいきました!ありがとうございました!
>>64 データベースはPHPに限ったことじゃないし、PEAR、Smarty、ZFはあくまでもツールだから
使わない方法もある。全部PHPで作れるし
>>66 PHPだけで全てまかなえる実力のある人間はそう多くないと思うな
確かに一人で作れば別にいらないけれど、グループで作るときなんかは・・・
>>48 [A-Za-z0-9]+(_[0-9]+x[0-9]+)*\.(jpg|png)
69 :
nobodyさん :2009/12/09(水) 18:42:13 ID:wpJ/zGII
ども Smartyを使っていないかたはデザインはどうしてるんでしょうか? includeでも使ってページを構成してるんですか? 教えてください
smarty以外にもテンプレートエンジンはあるけどそれも含めないの?
72 :
taigo ◆RpNs8sZ5pNfE :2009/12/09(水) 21:29:11 ID:zqrOwFPJ BE:771196537-2BP(2)
html中にphpファイルをincludeしてるんですが ブラウザでみるとそのスクリプト直前に一行改行が入ってしまいます。 phpファイルでは、いろいろ定義したりしていますが html形成部分(echo "<div>〜</div>")中では<br>や\nなどの 改行指定はしていません。 考えられる原因はなんでしょうか。
先頭部分を抜粋して書いたほうが回答がつきやすいよ
74 :
taigo ◆RpNs8sZ5pNfE :2009/12/09(水) 21:55:20 ID:zqrOwFPJ BE:440683834-2BP(2)
連投申し訳ない、ちなみに「改行」はhtmlのソースでは確認できません。 ページ上で1行程度隙間ができてしまうことを「改行」といっています。
>>74 無駄なものを消してみたけど、下のHTMLだけでも改行が入るみたい。
<html>
<head><title>タイトル</title></head>
<body>
?<table border="1"><tr><td>テスト</td></tr></table>
</body>
テーブルの一行だけにすると改行が消える。
テーブルの仕様なんじゃ・・?
ていうか、リンク先のサンプル酷すぎ。
汚いし、リンクが全部アフィじゃん。
77 :
76 :2009/12/09(水) 22:34:12 ID:???
余計な?が入ったので、消してね。
スタイルシートの問題では?
よけいな?が入ったのがヒントだね。
80 :
76 :2009/12/09(水) 23:24:00 ID:???
83 :
76 :2009/12/09(水) 23:34:50 ID:???
改行の入る部分に、見えない余計な文字が入ってるみたい。 改行部分の前の行の最後の文字( > とか)から 改行文字の後の行の最初の文字まで 選択して削除して、消した文字を手入力してみて。
includeするphpファイルの閉じタグの後の空白行では?
サンプルが悪いということだ
>>83 消してから手書きみましたがやはり隙間は消えませんでした。。
ただ、IE5.5、IE6、IE7でソースをみると
隙間部分に文字化けした「・ソ」という文字が入っているので、
なんらかしら不可視の文字が入っていることは確かなようです。
※firefox、safari、chrome、opera、IE8ではソース上にもなにも表示されません。
>>84 閉じタグ後の空白行も調べましたがありませんでした。念のため周辺前後を
消してから手書きしましたがだめでした。。
UTF-8のBOMとか?
>>87 まさにBOMでした!!BOMを含めないようにしたらすきまがきえました!
しかしほんとに単純なミスで申し訳ないです。。。
ほかの方も色々とありがとうございます。非常に助かりました!
乙乙
90 :
48 :2009/12/10(木) 01:03:02 ID:R7rC19iD
91 :
nobodyさん :2009/12/10(木) 01:41:39 ID:At+7lyq4
【OS名】WinXP SP2 【PHPのバージョン】まだ 【連携ソフトウェア】- 【質問内容】 webページを読み取るプログラムを組もうと思っているのですが、 ・このページのメール欄にsageと入っている数をカウントしたい。 ・同様にsageと入っているNoを集計したい こういったときにphpで組むことは可能でしょうか? また、そういう時は一度cvsに落とすのが良いのでしょうか?
可能だよ
93 :
91 :2009/12/10(木) 02:05:12 ID:At+7lyq4
回答ありがとうございます。 可能ということは、 1.対象のWebページを指定してソースコードを取得する。 2.ソースコードから"mailto:sage"を探す こういう流れになるのでしょうか? その場合、ソースコードを取得する関数が解らないので教えて頂きたいです。
>>93 超手抜きな方法
1.JavaScriptでPHPに対象のウェブページを取ってくるように要求する(クライアントサイド)
2.file_get_contentsとかでHTMLを取る(プロキシ的な役割)(サーバーサイド)
3.HTMLをもらったらJavaScriptでパース(クライアントサイド)
4.DOM使ってリンクをカウント(クライアントサイド)
95 :
nobodyさん :2009/12/10(木) 12:55:29 ID:wtg1lapo
chmodみたいなWindows上で動かすとエラー吐き出すけど、 鯖に上げる時は必須になる関数ってどうしてますか? わざわざコメントにするのも手間ですし、 簡単に対応する方法ってありませんか?
if (windows環境かどうか)
公式以外で__set __getについて正確に解説してくれているサイトを紹介してくれませんか よく理解できないのですよ。
98 :
nobodyさん :2009/12/10(木) 13:23:01 ID:iDoAb1SC
おっとあげるんでしたかすみません
俺のアフィブログで詳しく解説してもいいけど
101 :
nobodyさん :2009/12/10(木) 13:47:04 ID:iDoAb1SC
レスありがとう。 メンバ変数がpublicってどうなの? 直接参照できる時点で意味がないと思います。
君にとっては意味が無いのかもしれないが それを全体の全否定するのはどうか
>>94 >>93 じゃないんだが↓ってどういうこと?
>1.JavaScriptでPHPに対象のウェブページを取ってくるように要求する(クライアントサイド)
104 :
nobodyさん :2009/12/10(木) 14:26:18 ID:iDoAb1SC
>>102 よくわかっていないためすみません
例えば、__setは値をセットされる前に検証できることが利点だと理解していますが
その対象が直接セットできてしまうのでは意味がないと思ったからです。
__set __getなんてPHPルール使わないから放置でおk
>>104 ここで愚痴ってないで開発者に直接言えよ、負け犬
107 :
nobodyさん :2009/12/10(木) 15:04:23 ID:iDoAb1SC
どうしたの興奮して
>>104 __setで、直接触れないものを変更すればいいよね?
定数をconstで定義するPHPにおいてpublicフィールドは不要と思っていい
110 :
nobodyさん :2009/12/10(木) 16:13:01 ID:Dg41VzRp
CPUやコンパイラにもよるだろうね
113 :
nobodyさん :2009/12/10(木) 19:48:37 ID:eaFJEUuE
htmlタグをクラスにして引き出そうとしていたのですが 書いてるうちに利点がわからなくなってしまいました。 始めは、 echo $html->_div($id); や echo $html->_input_text($maxlength, $value, $name, $size, $id); みたいに引き出せるように、さらにタグの属性は固定して、 (固定されているものの)全体的に統一感が出ていました。 しかし、一つでも新たな属性を追加したいと思ったり htmlクラスを変更しようとしたときに 不便な点がでてきたので属性の部分は array('id' => 'test', 'size' => 10); な感じでforeachすることにして、 echo $html->_input('text', array('id' => 'test', 'maxlength' => 3, 'size' => 10, 'value' => 'test', 'name' => 't1')); という風にすることにしました。 しかしこれって、わざわざ echo '<input type="text" ・・・・>'; という風に書いていくのと比較してメリットがあるのかどうか、 と・・振り出しに戻った感じになってしまいました それならhtmlタグをエディタに単語登録しておいた方がいいんじゃないのか、と。 そこで、みなさんはphpでhtmlタグを出力するときどういう風に管理しているのでしょうか。 何か良い方法ありましたらよろしくお願いします。
>>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ってのがあるのでそれを参考にしてみるといいかもしれない
115 :
nobodyさん :2009/12/10(木) 23:17:13 ID:jFiArudI
【OS名】CentOS5.4(同じCentOS5.4上のxenで動いてる仮想OS) 【PHPのバージョン】php5.3.1 【連携ソフトウェア】- 【質問内容】--with-gdでインストールしようとすると、configureには通るのにmakeに失敗します。 行った手順(多少順不同)は、 yum install gd yum install libpng-dev ln -s /usr/lib/libpng.so.3.10.0 /usr/lib/libpng.so ln -s /usr/lib/libjpeg.so.62 /usr/lib/libjpeg.so ln -s /usr/include/xulrunner-sdk-1.9/png/png.h /usr/include/png.h ./configure --enable-mbstring --with-pear --with-mysql --with-gd --enable-zip --with-apxs2=/usr/local/apache2/bin/apxs --with-jpeg-dir=/usr/lib --with-png-dir=/usr/lib で、configureは通るのにその後makeするとこんなエラーがでてmakeが中断します。 /tmp/php-5.3.1/ext/gd/libgd/gd_png.c:749: error: expected '{' at end of input make: *** [ext/gd/libgd/gd_png.lo] Error 1 ぐぐってもこれといったヒットなし。 気になる点としては、最初に一度5.3.1を(GD無しで)インストール後、 5.2.1(やっぱりGDなし)にダウングレードしたということぐらい。 このダウングレードのときは、何も考えずに、 configure→make→make installしただけです。 なお、configureオプションで--with-gd --with-jpeg-dir=/usr/lib --with-png-dir=/usr/libを はずすと問題なくmake終了します。 何か分かる方いらっしゃいましたら情報提供お願いします。
116 :
nobodyさん :2009/12/11(金) 00:06:46 ID:aUDcqNwN
コニチワ メールを送りたいんですが テンプレートエンジンとか、 手動でパースエンジン作るとか そんなことせずに お気楽にテンプレートしたい!! と言うわけで、 メールの内容をtext/plainで返すスクリプトを作って、 それをプログラムで読み込んで出力するというスクリプトを作ったのだけど、 ネットを介さないとパースしてくれないので、 $content = file_get_contents("$protocol://$host:$port/$uri/../$filename", false, stream_context_create($context)); こんなめんどくさいurlを生成して取得しないといけないの。 環境によって動かなくなりそうで怖いんだけど、 もっとシンプルにphpパースを介す方法ってないかな。 知っていたら教えてくださいよろしくお願いします。
117 :
nobodyさん :2009/12/11(金) 05:38:42 ID:L/oJhkAJ
class Foo { public $value = 42; public function &hoge1() { return $this->value; } public function hoge2() { return $this->value; } } $obj = new Foo; $myValue1 = &$obj->hoge1(); $myValue2 =& $obj->hoge2(); これの違いを教えてください。 どちらとも参照渡しですよね? また、以下のようにする事はあるのでしょうか? $myValue3 =& &$obj->hoge1();
ha?
120 :
nobodyさん :2009/12/11(金) 17:00:22 ID:L/oJhkAJ
121 :
nobodyさん :2009/12/11(金) 17:26:24 ID:0lxZHe3q
PHPでImagickを使っていて、 ImagickDrawの文字の間隔や、太さを変更したいのですが、 どのように指定すればよいのでしょうか? ImagickDraw::setFontStretch 等を試してみたのですが、 変化はありませんでした。 一日悩んでいます; どうかよろしくお願いします。
122 :
nobodyさん :2009/12/11(金) 17:27:03 ID:XIp2tuTV
参照について自分も質問 結局参照って分かりづらいくせに使う人がおおいのは パフォーマンス(速度)を求めてるだけですか? なんか他にメリットがあるのかな?
>>121 使ったことないので動くサンプル乗せてくれればマニュアル見ながらいじってみるけど
動かないから聞いてるんですが・・・
文字の間隔や太さを変更したいのに変化はないと言ったのでは? 一応はできあがってるものかと ていうか動かないならソースコードのせなよ
126 :
121 :2009/12/11(金) 18:03:58 ID:0lxZHe3q
レスありがとうございます。
>>125 >>124 は自分ではないです。
$img = new Imagick;
$img->newImage(500, 500, new ImagickPixel('white'));
$draw = new ImagickDraw;
$draw->setFont($fontPath);
$draw->setFontSize(14);
$draw->setFillColor(new ImagickPixel('black'));
$img->annotateImage($draw, 50, 50, 0, 'テキスト');
$img->setImageFormat('png');
header('Content-type: image/png');
echo $img->getimageblob();
これで、白背景に黒でテキストを描写できます。
ImagickDraw::>setFontSize や >setFillColorでサイズや色を変えることはできました。
よろしくお願いします。
>>122 個人的には
a) 関数で関数外の複数の値を書き換えたいとき
b) 関数の実行によって、引数に使った変数の値が勝手に変わってほしいとき
に使ってる。
aのほうは配列を返す方法でもできるけどね。
bのメリットは、戻り値を気にする必要なく、単に関数を使うだけでいいということくらいかな。
別にわかりづらいとは思わないけど、
>>119 のようなバージョンによる違いを追うのは辛い。
128 :
nobodyさん :2009/12/11(金) 18:59:29 ID:XIp2tuTV
>>127 ありがとう参考になります
使う人によっては便利だけど返ってややこしく感じる人は無理して使う必要はないですよね?
バージョンが変わったら使えなくなるというのも困るし
>>126 太文字はstrokewidthとかで無理やり太くするか、使用したいフォントのボールド版を指定するかかな
文字の間隔は-kerningオプションで可能なんだけど、PHPからどうやって指定するのかわからん。まだ対応してないのかも
130 :
121 :2009/12/11(金) 20:28:40 ID:HYLtbe9/
>>129 実は、太文字ではなくて、細くしたいんです。
ブラウザ上で、同じフォントを指定してレンタリングしたものに、
なるべく近づけたいんですよね。
いまの状態だと、太すぎるんです・・・
kerningオプションを調べたら、次期バージョンで
Imagickdraw::settextkerningというメソッドが使えるようになるようです。
おそらく、これで指定できるのかもしれません!
それまでは直に叩くしかないのかなぁ;
いろいろいじってて、また分からないことがでてきたんですが、
setFontで指定したフォントファイルが、
ひとつのファイルにプロポーショナルも等幅も含まれている場合、
どのように切り替えればよいのかということなのですが・・・
もしご存知でしたら、よろしくお願いします。
Imagick入ってないから試せないがsetFontWeightってのは? cssでもfont-weight:が太さ関係のプロパティだし太さいじるのはこれなんじゃないだろうか
132 :
nobodyさん :2009/12/11(金) 21:45:26 ID:q1bq5i1Z
$str = "hoge foo bar"; if (preg_match("/hoge/", $str)) { preg_replace("/hoge/", "test", $str); } echo $str; これで、test foo barという結果を得たかったのですが、 hoge foo barと表示されてしまいます。 どこが違っているのでしょう?
133 :
132 :2009/12/11(金) 21:47:28 ID:q1bq5i1Z
すみません、自己解決しました。 preg_replaceのところで変数に入れなおしてなかったですね。 スレ汚し失礼しました。
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
>>133 進研模試の偏差値でいうと2ちゃんねるのニュース速報がおよそ45、民放地上波の報道ステーションが約40、
ニュース速報+は35程度の読者を想定しています。
破壊型じゃないからね
【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>
138 :
137 :2009/12/12(土) 04:29:01 ID:GfYnJRFD
age忘れ
それのどこにPHPが関わってくるの?
140 :
nobodyさん :2009/12/12(土) 04:52:02 ID:iG1HMcs+
検索エンジンからの訪問者の検索キーワードを取得したいんですが、簡単に実現できますか? HTTP_REFERERからキーワードを抜き出せばいいってことは分かるんですが、 自分にはコードを書く実力ありません。 G、Y!、bingの3社だけ抜き出せればおkなんですが。
>>139 PHPでURLを入れたいなと思いまして…。
>>141 SimpleXMLやDOMやXMLパーサなど使えば簡単にできるかと
144 :
137 :2009/12/12(土) 05:45:54 ID:GfYnJRFD
>>142 ありがとうございます。
ぐぐって試行錯誤してみます。
最悪でも、エクセルでコードを手動コピペしてHTML保存すれば数十件分でも対応可能だと判明したので
137は解決としてください
>>127 下のやつはつまり使うなってやつなのだが。
146 :
nobodyさん :2009/12/12(土) 10:34:39 ID:koZM8oUM
標準関数で指定したファイルの内部エンコードを調べられるような関数はないでしょうか? その文章のソースをmb_convert_encodingして取り込む側のPHPにあわせたいのですが、 mb_convert_encoding(file_get_contents("取り込むファイル"), "UTF-8", 内部エンコード調査("取り込むファイル")); みたいなイメージで。 何か最適な関数があったら教えてください。
マニュアル読んだのか? 「文字エンコーディングを検出する」で検索しろ
148 :
nobodyさん :2009/12/12(土) 11:01:52 ID:koZM8oUM
>>147 mb_detect_encodingですか?
これは使ってみましたが全部ASCIIが返ってくるので期待してるのとは違うんです
150 :
nobodyさん :2009/12/12(土) 11:09:15 ID:koZM8oUM
>>149 わからないからautoにするのではないのですか?
autoのところにSJISといれた時点でそのドキュメントはSJISと分かってることになりますよね?
そのSJISがわからないからそれを調べたいのです
>>148 どちらにしろファイルは読むんだから
$str = file_get_contents("file");
mb_convert_encoding($str, "UTF-8", mb_detect_encoding($str));
152 :
nobodyさん :2009/12/12(土) 11:15:45 ID:koZM8oUM
>>150 autoの挙動を知ってての反論なら別にいいが
>>150 ちなみに君が大好きなautoは
>>152 では使われて無いぞ
もう少しマニュアルを読んで何故autoを使わないのか偉そうに反論する前に勉強したらいいんじゃないのか
155 :
nobodyさん :2009/12/12(土) 11:20:18 ID:koZM8oUM
>>153 一応SJISのドキュメントにたいしてEUC,SJISとEUCを先頭に指定したところEUCが返ってきたので
どのみちリストの先頭にあるのが返ってきてしまう無意味なものだと思ってました
156 :
nobodyさん :2009/12/12(土) 11:21:13 ID:koZM8oUM
>>154 autoは最初つかってません。使っても使わなくても同じものが返ってきました。
157 :
nobodyさん :2009/12/12(土) 11:28:56 ID:t4/Ge8jX
viewvc使えばいいじゃん
>>154 お前が勉強しろよwwww質の低い回答者どもが
質問者が逆上して荒らしになってるw
文字エンコーディング関連は話が難しいから回答者に多く求めるのはどうかと思うが わからないなら黙ってるべきだとは思う
また
>>1 も読めない自治厨型荒らしかよ
> (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
> (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
> (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
美乳を思い出した。
>>146 はマニュアルを見たのだろうか
マニュアルに質問内容の内部エンコードを調べる関数が標準で用意されてるけど見てないんだろうな〜
口答えは一人前だから見てないよな
だからそれを質問してるのに的確な答えを出せないで煽ることしかできない低レベル回答者は黙ってろよwwwwww
そうやって煽って聞き出そうとしてる態度だと一緒に答えてもらえないのがこのスレの鉄則
解決に導けなかった低レベル回答者がほえてるだけだろ 2chの回答者はレベルが低いのを露呈しましたね 質問者はOKWaveかやほーへいきましょう^^;;;;
>>164 は mb_internal_encoding() あたりと勘違いしてると見た。
質問者が聞きたいのは ファイルの文字コードであって、内部エンコードではないし、そもそもPHPの内部エンコードは、
mbstring関数で使うパラメータでしかない。
匿名なんてそんなもんだろ まぁたまにまともな質問と回答があって それを参考にするROMも多いだろうからいいスレだとは思う
>>168 横レスだけど、質問者であらせられる
>>146 氏のレスの1行目を、100万回朗読すると良いとおもう。
ファイルっていってる時点で文字コードのことなんだなぁっていうのはわかるのでは? サーバの話してるわけじゃないでしょうに
172 :
nobodyさん :2009/12/12(土) 16:16:07 ID:cJITsyw7
関数宣言の外に宣言した変数を 関数宣言(function)内に渡すにはどのようにすれば良いですか?
引数で渡す
>>170 wwwwwwwwwww
低レベルですね^^;
176 :
nobodyさん :2009/12/12(土) 16:22:28 ID:cJITsyw7
globalだと関数宣言中に記述するしか無いのですが・・・
>>176 関数の外のスコープにある変数を関数内で使いたいんじゃないの?
$a = "hoge";
function hoge() {
global $a;
return $a;
}
echo hoge();
global使うのがいやなら
>>173 の言うとおりにしれ
1.関数に大して変数を渡す。渡す値が多すぎるとかったるい。 2.globalで取得。システム設計が独特だったりするとglobalで取得出来ない可能性が高い。 3.関数をクラス化して、値渡しなどを工夫する。 4.$GLOBALSを使う。最終手段。$GLOBALSの変数が重複するバグとか絶対に涙目なので、あくまで最終手段
俺の得た教訓 1.グローバス変数は使わない 2.グローバル変数を使わざるを得ないロジックはそもそも設計がおかしい
グローバルス(笑)
ま、方法はいくらでもあるんだし好きにしろと
183 :
nobodyさん :2009/12/12(土) 16:50:57 ID:UXpI7YC+
ありがとうございました
184 :
140 :2009/12/12(土) 21:11:42 ID:iG1HMcs+
>>143 できればスクリプトか詳しいサイトをご紹介いただけないでしょうか。
自分で調べた限りだとgoogle(あっても+Yahoo!)のみ対応で、bingに対応したものが
なかったもので。。
よろしくお願いします。
185 :
nobodyさん :2009/12/12(土) 21:14:17 ID:4mjex3cq
先達様方、さっくり質問です。 class内のメンバ変数の有無を調べる関数ってありますか? $cname = "HOGE"; class_exists($cname) みたいな(こっちはclassですが)
さっくりじゃなくて真面目に質問してください
>>184 んなもbingで検索してurl見ればわかることだろ
くだらないから質問したんですが…。 冷血さんですね。 もういいです。さよなら。
ルールを守れない自分勝手な人ですね。 さよなら。
PHPを書くときにおすすめのテキストエディタってなんですか?
Eclipse NetBeans さあ選べ
<textarea>
194 :
nobodyさん :2009/12/12(土) 22:09:10 ID:d/+O720A
ノートとペンで書け
古よりの言い伝えでは、 漢はecho一発 だそうだよ。
196 :
nobodyさん :2009/12/12(土) 23:38:34 ID:+z/QEKQm
2chのレス指定にマッチする正規表現を書きたいのですが、
>>2 ,4,6
のような表現の数値のみにマッチする正規表現として
preg_match(/(\d+)(?:,(\d+))$/, $body, $match)
としました。
しかし、$matchに格納されるのは2と6のみで、4が欠落しています。
どのように修正すればよろしいでしょうか?
へー、それで2・4・6にレス指定できる2chブラウザあるんだ
>>196 \d*(,\d*)+$ でとって、 , で区切れば?
>>196 このレスみたいに必ずレス指定が文字列の最後に来るとは限らないよ
正規表現の質問が多いが、 PHPでの使い方がわからないならともかく 正しい表現がわからないのなら、PHPの質問ではないな。
202 :
nobodyさん :2009/12/13(日) 05:24:36 ID:G260+aAJ
外部のファイルをそのままサーバー側にダウンロードできる関数はありますか?
以下のように書いていると負荷が余計にかかるような気がします
$lines=file("
http:// ○○");
$fp=fopen("○○","w");
flock($fp,2);
for($j=0;$i<count($lines);$j++){
fputs($fp,$lines[$j]);
}
fclose($fp);
>>202 リモートの方も同じfopenで開いて読み込みながら書き込んでいく感じ
while (!foef($remote))
{
fputs($fp, fgets($remote, 4096));
}
204 :
nobodyさん :2009/12/13(日) 05:38:20 ID:G260+aAJ
>>203 ありがとうございます
参考にさせてもらいます
この難読化された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 以下省略
207 :
nobodyさん :2009/12/13(日) 09:20:44 ID:jg9ODR2i
日付変わってしまったのでID違うと思いますが
>>157 です。
>>158 でviewvcを使えばいいといわれ調べてみたんですが
バージョン管理がどうとかいうソフトなのでしょうかこれは。
chasenを入れたいのですがこれをどう使えばPHPに導入できるのかわかりません。
すいませんがもう少しヒントもらえないでしょうか。
>>207 viewVC 使い方とかでggってから質問したんですよね
正解て(笑)
214 :
211 :2009/12/13(日) 11:35:26 ID:???
文字コードが書いてないから例えばSJISだったら以下のように書けばマルチバイトに対応できる
$body= "foobar
>>2 ,4,28,6hoge";
preg_match('/>((?:\d|\x82[\x4f-\x58])+(?:,(?:\d|\x82[\x4f-\x58])+)*)/', $body, $match);
foreach (explode(',', $match[1]) as $num){
$num= preg_replace('/\x82([\x4f-\x58])/e', 'chr(ord("$1")-0x1F)', $num);
echo $num,"<br>\n";
}
utf-8ならマルチバイトで書き込めるけどそれを否定した君の知識を疑いたい
216 :
211 :2009/12/13(日) 12:31:34 ID:???
文字コード後出しして知識を疑われてしまったけど、例えば209の書き方だと 「新潟」にもマッチするぞ。utf-8ならu修飾子付けることをお奨めする。 おれの知識はこの程度だ。
PHP
>>210 しました。
ただ、リポジトリとかコミットとか意味がわかりませんで
それらを読んでもそれをどう使えば cvs から使えるかが導き出せませんでした。
そういえばクラス使うようになってグローバル変数使わなくなったな。
221 :
196 :2009/12/13(日) 13:19:08 ID:iFkYaR3P
文字コードは考慮しなくていいです。
>>196 の正規表現だと、最初と最後にしかマッチしないというのが問題なんです。
>>2 ,4
は2と4が抜き出せますが、
>>2 ,4,6
は2と6で、
>>2 ,4,6,8
は2と8しか抜き出せません。
どのように修正すればいいでしょうか?
preg_match_all
223 :
196 :2009/12/13(日) 16:42:49 ID:iFkYaR3P
>>222 全体のマッチは求めていません。
あくまで単数の
>>2 ,4などにマッチすればいいです。
225 :
196 :2009/12/13(日) 17:31:01 ID:iFkYaR3P
>>224 バリデーションに使用するだけなので、レスの置き換えは想定していません。
/(\d+)(,|-|\d){1,}/
227 :
196 :2009/12/13(日) 18:06:05 ID:iFkYaR3P
>>226 だめです。
<?php
preg_match('/(\d+)(,|-|\d+){1,}/', '2,6,18,11', $match);
print_r($match);
Array ( [0] => 2,6,18,11 [1] => 2 [2] => 11 )
preg_replace() 使えよ
>>277 君も頑固だねpreg_matchじゃダメっていってるのに
preg_match_all('/(>*?-?\d+)/', '2,6,18,11', $match);
print_r($match);
231 :
196 :2009/12/13(日) 18:36:47 ID:iFkYaR3P
>>229 できました。ありがとうございます。
ほかの方も、正解はありませんでしたがありがとうございました。
ただ、なぜだめなのかいまいちよくわかりません。
私は限界ですが、がんばればうまくいきそうな気がします。
232 :
196 :2009/12/13(日) 18:41:44 ID:iFkYaR3P
>>229 試したら、,2>4みたいな変なものにもマッチしますね。
あくまでもバリデーションなので、
>>2 ,4などにはマッチしてほしいですが、不正なものははじきたいです。
何でもかんでも聞かないで少しは自分で改良する努力しろよ
preg_match_all('/>*?(\d*\-?\d+)/', '2>4,
>>6-9 ,18,11', $match);
print_r($match);
234 :
196 :2009/12/13(日) 19:07:59 ID:iFkYaR3P
>>233 改良し、限界と感じたのでお助けを請うているのです。
バリデーションの意味を勘違いされていると思いますが、2>4は弾くべきなのです。
私が求めているものは、
>>2 ,3,4などのあくまでベーシックなレスのみで、ほかには必要ありません。
>>234 改良されちゃいましたか
もうあなたはこのスレのレベルを超えているように感じられます
申し訳ございませんが、他を当たって頂けますでしょうか?
こちらもよりご満足頂ける回答ができるよう日々精進して参りたいと思っております
>>196 レスにマッチするものとか書いてるくせに
preg_match(/(\d+)(?:,(\d+))$/, $body, $match)
のどこがするのか聞きたい
何で>が入ってないの?適当に書いとけば誰かがやってくれるとおもってるんでしょ
preg_match_all('/>+(\d+\-?\d*)/', '2>4,
>>6-9 ,18,11', $match);
>>196 はお金出して、言う事聞くやつを探す方がいよさげ。
240 :
196 :2009/12/13(日) 20:21:24 ID:iFkYaR3P
>>236 >適当に書いとけば誰かがやってくれるとおもってるんでしょ
私が真剣にやったものを適当と判断されるのは勝手ですが、
誰かの助けを借りるスレではないんですか?
ちょっと修正しましたが、やっぱり1と2しか出てきません。
preg_match('/(\d+)(?:,(\d+))+/', '
>>1 ,3,10,2', $match);
もどっちゃったw
真剣にやってるなら頂いたアドバイスを元に丸一日は考えてからここで聞くべきですね あなたは他力本願なんですよ
まるで秀丸のeigodoo1みたいなやつだな
OK そこまで OKwaveだ
247 :
196 :2009/12/13(日) 20:31:58 ID:iFkYaR3P
>>243 あなたも学習してください。
>>229 では2>4みたいな意味不明なレスにもマッチします。
私のは下らない質問ですが、下らない回答はいいです。
yahoo知恵袋でもこういう態度でかい質問者は結構いるぜw
>>247 本質がわかってないようだな
たぶん永久に無理
>>247 229 名前:nobodyさん[sage] 投稿日:2009/12/13(日) 18:20:12 ID:???
>>277 君も頑固だねpreg_matchじゃダメっていってるのに
これ試験にでるお
>>247 下らない回答ばかりで申し訳ありませんでした
でねーよ
254 :
196 :2009/12/13(日) 20:37:51 ID:iFkYaR3P
>>250 見逃していました。
私が求めていたのはあくまでも2,4などの簡素なものですが、これで解決しそうです。
唯一の有効な回答をありがとうございました。
255 :
196 :2009/12/13(日) 20:39:07 ID:iFkYaR3P
ちなみにpreg_match()で解決できる方は上級プログラマだと判断します。
>>254 ご満足頂けたようでなによりです!
また居らしてくださいね!
なんでpreg_matchにこだわるんだろう なにかallって言葉にコンプレックスでもありそうだなw
258 :
237 :2009/12/13(日) 20:42:39 ID:???
自分で言うのもなんですが 何でpreg_matchを使わないでpreg_match_allを使ったのかを勉強することをおすすめします
底辺くだ質質問者に上級認定されたかたがたおめでとうございます。
>>255 仰せの通りであります
我々もいつか上級プログラマになれるよう努力させて頂きます
261 :
196 :2009/12/13(日) 20:51:19 ID:iFkYaR3P
>>258 そもそも、私は複雑なレス指定を望んでいないわけですから>>を取り除くと2,4,6となりますよね?
それを2と4と6に分けるくらい、preg_match_all()でなくてもおそらくできるでしょうって訳です。
preg_match_all()の勝手なイメージとしてはたとえば
$body = <<<TEXT
>>2-4 >>4-6 >>6 ,9
TEXT;
のように本文中に複数現れるケースに使用することが好ましいと考えています。
単純な文字列分解ごときにallつける必要があるの勝手ことです。
>>261 そうでしたか
完全に勉強不足です。
本当にすみませんでした
そうだよね、関数は名前で機能を勝手に想像して使うものだし。
264 :
237 :2009/12/13(日) 21:22:38 ID:???
>>261 例えばなんですが
>>1 2
3
>>4 というように一行目に
>>1 で二行目はただの数字だけ・・みたいに検索対象の文字列が固定されてあればpreg_matchで可能です
ただ、
>>196 さんの残したレスを見る限りではそうではないように見えるのでpreg_matchは適さないんです。
>>227 でpreg_match('/(\d+)(,|-|\d+){1,}/', '2,6,18,11', $match);と書いてあるのに
>>247 で2>4のようなパターンも登場してます
レス指定にマッチするのは「頭に必ず>がきて(>+)、その後に数字(\d+)、その後にハイフンが来るかもしれない(\-?)、ハイフンが着たら番号が来るかもしれない(\d*)」となります
265 :
196 :2009/12/13(日) 21:47:42 ID:iFkYaR3P
>>264 私の説明不足です。
既に、レスを抜き出す処理は完成しています。
抜き出した数値を、パラメータとして渡すのですが、そこのバリデーションでの話です。
2>4は
>>229 のコードでは不完全だということを表すために提示しただけです。
これにはマッチしないでねーってことです。
あくまで欲しているのは
>>2 ,4,9などから数値を抜き出せるコードで、
>>2-5 などの指定にマッチする処理は、必要としていません。
分かりやすいように質問を変えますが、
2,4,6から数値を抜き出す表現を教えていただけますか?
数値は2,4,6,8のように増えることもありますし、2,4のように2つのみの場合もあります。
この場合においてもallなのでしょうか?
>>265 低級プログラマの回答で恐縮ですが、どう考えてもallです
269 :
237 :2009/12/13(日) 22:18:01 ID:???
>>265 preg_matchはマッチしたら処理が終わります
>>196 さんが求める処理はpreg_match_allを使って繰り返し検索を行う必要がありのでpreg_matchでは無理です
>>2 ,4,9という感じで文字列が現れるルール
preg_matchで/>+(\d+),(\d),(\d)/という風に検索対象の文字列に合わせて正規表現パターンを書かないといけないです
でも2,
>>4 ,9という文字列が現れるかもしれませんね
なので/>*(\d+),>*(\d),>*(\d)/という風に正規表現パターンを改良します
ただ、これまでの正規表現パターンでは
>>2 ,3,4,2,
>>4 と文字列が長くなってくると対応できません
文字列の長さに合わせて正規表現パターンも書き直さないとだめなんですよ
preg_matchは最初にマッチした時点で処理が終了するのでしょうがないんです
なのでこのように文字列の長さが決まって無くてもいいようにマッチしても処理が終了しないようなことがしたいわけです
そこでpreg_match_allがでるんです
preg_match_allを使うことで
>>2 ,3,4の時も
>>2 ,3,4,5,6,
>>2 の時も対応できます
質問するときは1レスでこういう結果にしたい主を書いていただけたら、求めてる回答がもらいやすいと思います
質問することは恥ずかしいこととは思ってないので前向きに頑張ってください
>>2 ,4,9
の文字列から
正規表現で2,4,9を取得したい
と求める「結果」を最初に書いていただきたかったです
そんな質問の仕方じゃあ、/>>(\d),(\d),(\d)/ これで解決する 対象文字列がどういう範囲で変わるかぐらいは書かないと
272 :
196 :2009/12/13(日) 22:41:04 ID:iFkYaR3P
>>269 大変分かりやすかったです。
ただ、
>>265 の通りそのような単純ではないレス指定は想定していませんので、無視してください
最後にこの解説だけをお願いします。
なぜ、18が欠落するのでしょうか?
<?php
preg_match('/^(\d+)(?:,(\d+))+$/', '9,18,11', $match);
print_r($match);
//Array ( [0] => 9,18,11 [1] => 9 [2] => 11 )
>>272 それが自力で解決できたら質問者だと判断します。
とかな。
>>272 こちらこそ大変面白かったです
また来てくださいね
正規表現ってスレ違いじゃないのか?
>>276 Pの書き方じゃなくて正規表現の書き方がわからないならスレ違い
>>こちらこそ大変面白かったです 吹いたわksg
これは酷い…ワロス
>>196 はpreg_matchを一から勉強して理解しろ
あと単純な区切りを取得したいならmb_splitでも使っておけば?頭悪そう
281 :
nobodyさん :2009/12/14(月) 07:06:50 ID:h0EDfnnM
DOM関数に関する質問です。 <div id="hoge"> <div id="fuga">fugaの内容</div> hogeの内容 </div> このようなドキュメントから hogeの内容の部分だけを取り出したいのですが、 $xpath = new DOMXpath($dom); $results = $xpath->query(//div[@id="hoge"]); var_dump($results->item(0)->nodeValue); とすると、fugaの内容もふくまれてしまいます。 hogeの内容の部分だけを取り出すには、どうしたらよいでしょうか? よろしくお願いします。
>>281 hogeはfugaを内包しているのだから正しい挙動。
「ドキュメント」の構造を見直しましょう。
「ドキュメント」の構造ママ、文字列「hogeの内容」を取り出したいってなら、旬のpreg_matchで。
>>280 おまえの方がひどいし、頭悪い。
mb_splitでどうやってバリデートすんだよ
うん
また低レベル回答者かwwwww
>>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;
}
>>287 mb_split()だけでできてないんですけどーw
関数作ってまでやることなんですかーw
>>289 いや、ぼくちんはmb_split反対派なんでw
mb_splitでバリデーションと分割はできないつってるんですよーw
なんか方向がしあさっての方向に向かってきてるぞ。
PHPだもの。
293 :
nobodyさん :2009/12/14(月) 13:18:08 ID:Rd8pmwhF
Sun, 06 Dec 2009 10:21:20 +090021 これを 2009/12/6 10:21:20 に置き換える関数みたいなのはあるのでしょうか?
dateとstrtotime使えばいんじゃね。
最後の21って何だろ?
print date("Y/m/d H:i:s", strtotime(" Sun, 06 Dec 2009 10:21:20 +0900" )); 21は無視した。
297 :
nobodyさん :2009/12/14(月) 13:46:37 ID:Rd8pmwhF
ありがとうございます!! 21は間違いコピペでした・・・すいません・・・
21をナメんなよてめーら
正規表現クン専用の質問だろw 横鳥スンナ〜
>>284 うわ、バカがいる
>>287 お前ちょっとそういうのやめてくれない?
まるで俺が書いたみたいじゃないか
301 :
nobodyさん :2009/12/14(月) 16:36:42 ID:EQ57m/rj
GDを使ってGIFアニメをサムネイルさせると、 静止画になってしまいます これはどうしたら解決するでしょうかヨロシクお願いします<m(__)m> 環境 FEDORA PHP Version 5.2.10 gd GD Support enabled GD Version bundled (2.0.34 compatible) FreeType Support enabled FreeType Linkage with freetype FreeType Version 2.3.7 T1Lib Support enabled GIF Read Support enabled GIF Create Support enabled JPG Support enabled PNG Support enabled WBMP Support enabled XPM Support enabled XBM Support enabled
303 :
nobodyさん :2009/12/14(月) 18:59:58 ID:EQ57m/rj
>>302 GD Version bundled (2.0.34 compatible)なので、
GIF問題はすでに解決しているのではないでしょうか?
なので、何か設定の問題なのかと思い質問させてもらいました。
そこも見ましたが、それはなんの言語化分かりませんが、PHPではないんですね
そもそもGDがあにめGIFの読み込みに対応して無いような。 もちろん、animeGIFの書き出しのその関数にPHPは対応して無いし。
アニメgifにもいくつか保存形式とかがあるわけで 一応GDでアニメGIF(圧縮してない形式)のリサイズだけは出来るみたいだけど それ以外はほとんど対応してないみたい 一応リサイズは出来るはずなんだけど
308 :
nobodyさん :2009/12/15(火) 10:56:38 ID:k1G/c/jQ
$test = "abc_1"; $testの前3文字が「abc」の時、trueにして一致しない場合はfalseにしたいと思います。 どういう関数を使えばよいのでしょうか? strpo($test,"abc")==0 としてみたのですが、上手く行きませんでした。
strpo strpo strpo strpo strpo strpo strpo strpo strpo strpo strpo strpo strpo
strpos( $test ,"abc") === 0
311 :
nobodyさん :2009/12/15(火) 11:06:39 ID:k1G/c/jQ
>>310 出来ました!
=を3つにしなければいけないんですね。ありがとうございます。
おはよ★ミ
=を3つにする必要はない
2つだと0文字目でマッチしてfalse扱い
>>315 <?php
$mystring = 'abc';
$findme = 'a';
$pos = strpos($mystring, $findme);
// === を使用していることに注目しましょう。単純に == を使ったのでは
// 期待通りに動作しません。なぜなら 'a' が 0 番目 (最初) の文字だからです。
if ($pos === false) {
echo "文字列 '$findme' は、文字列 '$mystring' の中で見つかりませんでした";
} else {
echo "文字列 '$findme' が文字列 '$mystring' の中で見つかりました";
echo " 見つかった位置は $pos です";
}
?>
317 :
nobodyさん :2009/12/15(火) 15:23:32 ID:oEMc2L99
319 :
nobodyさん :2009/12/15(火) 16:16:22 ID:HMx+PrJa
両方の配列に入っている文字列を抜き出すにはどうしたらいいですか? array(1,2,4,5,7) array(2,5,8,9,10) →2,5 っていうようなことをやりたいのですが。1個ずつ確認していくしかない?
array_diffとかがあったような
array_diffは逆 調べたらarray_intersectがあった
322 :
nobodyさん :2009/12/15(火) 16:39:07 ID:HMx+PrJa
>320 >321 天才!ありがと〜
・・・ 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で単に「$$」で検索しても出てきません 意味と、こういうものの名称を教えて下さい
$mid = "hello"; $$mid = "world"; print $hello;
検索するなら「可変変数」で見つかると思うよ
持ってる本2冊とも可変変数について触れられてない・・。 あまり使うべきじゃないとか?
可読性は悪くなるから、使わないで良いなら使わない方が良いと思うよ
register_globalsがonだった頃のやつをoffに対応するときに $items = array("name","tel","address"); foreach ( $items as $eachval ) { if ( isset( $_POST( $eachval) ) { $$eachval = $_POST[ $eachval ]; } } ってやってごまかしたなぁ。
ZendFramework使ってます。 ビューのHTMLをパーツ化してて、ほとんどのコントローラで最終的に呼ばれるものがあります。 例えばページのメニュー表示の部分とか。 この中身が今は完全にべた書きになっていて、これをDBから取得した値に動的にしたいんだけど これって全部のコントローラのコンストラクタ内にDB取得の処理入れなくちゃいけないものですか? もしくはそれぞれアクションの中にとか。。 ただ、メニュー表示のHTMLが読み込まれない場合もあるので コントローラ内で必ず取得しにいくってのも無駄だなぁって思ってます。 これはメニュー表示のHTMLが読み込まれた時だけ、ajaxで取得して書き換えるようにしといたほうがスマートですか? なんかフレームワーク使ってなければ、必要なページでメニュー表示のPHPを読み込むだけで済むのにって思いました。 フレームワーク使うと、ビュー側でどうされてもいいように、コントローラ側で全対応しとかなきゃいけないのが 無駄が多いなぁと感じるんですが自分がフレームワークをよく理解してないせいでしょうか??
俺に自己解決しますたって書いて欲しいのか?
>>1 嫁で解決ですね
ID出す出さない以前にヌレ違い
【その他諸注意】 ・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ テンプレどころかスレタイすら読めないやつって馬鹿なの?死ぬの?
334 :
nobodyさん :2009/12/16(水) 00:25:27 ID:KyqIhUTU
POSTで送られたパスワードが正しければ、ファイルを削除、 間違っていれば、ファイル削除失敗!!、というメッセージを出したいのですが、うまくいきません。 ↓ <?php $user_pass = "0000"; if($passwd == $_POST['pass']) { unlink( "aaa.log"); echo "ファイルを削除しました"; } elseif($passwd) { echo "ファイル削除失敗!!"; } ?> <form method="post" enctype="multipart/form-data" action="1.php" > 削除パス<input type="txt" size="10" name="pass" value="" maxlength="10" class="box" tabindex="2" accesskey="2" /> <input type="submit" value="削除" tabindex="4" accesskey="4" > <input type="reset" value="Cancel" tabindex="5" accesskey="5" /> </form> これをどうしたら良いでしょうか?どうぞヨロシクお願いします
$passwd = "0000";
> elseif($passwd) これは何?
type="txt"
338 :
nobodyさん :2009/12/16(水) 00:49:50 ID:KyqIhUTU
$passwd = "0000"; if($passwd == $_POST['pass']) { unlink( "aaa.log"); echo "ファイルを削除しました"; } echo "ファイル削除失敗!!"; これにしたらできました ありがとうございました
elseがないと「ファイルを削除しましたファイル削除失敗!!」って出ちゃうんじゃ? $passwd = "0000"; if($passwd == $_POST['pass']) { unlink( "aaa.log"); echo "ファイルを削除しました"; } else { echo "ファイル削除失敗!!"; }
340 :
nobodyさん :2009/12/16(水) 00:52:44 ID:H8S7D90g
何を質問したいんですか?
>>340 POSTで受け取った値をそのままSESSIONにいれ
さらにSQLのwhere句に使い、mysql_queryで実行してるのはどうなんだ?
mysql_real_escape_stringがコメントになってるあたり
対策しなければという意志はあるようだが・・・
利用者のサイト行って脆弱性突くんだろ
344 :
nobodyさん :2009/12/16(水) 01:39:19 ID:KyqIhUTU
>>340 ・<script>タグにtype属性は必須、language属性は廃止された
・PHPは厳密等価演算子を使うと等価演算子と比べて10倍程度高速に動作するので厳密等価演算子を使うことをお勧めする
・公開するならコメント書け、コードの3分の1程度が目安
>>345 頭の悪いツッコミだな
最後のコメント書けには同意だけどな
拡張したら簡易フレームワークになるな
宿題だフレームワークを作りなさい
厳密等価演算子ってJavaScriptやActionScriptの用語では?
そんなことはない 意味が通じればおk
>>349 練習で作った程度の物だから別にいいんじゃないの?
ネタだった?
351 :
329 :2009/12/16(水) 11:00:30 ID:KzRQDWcs
スレチすいませんでしたm()m
家帰ったらタスク管理のやつ見てみるのさ おもしろそうだし、コードレビューくらいしてみたい
353 :
nobodyさん :2009/12/16(水) 17:55:00 ID:GOmT2CGy
ファイルサイズxダウンロード数じゃないの?
ダウンロードした数ってだけならphpに引数渡して各ファイルダウンロードするような処理にして カウントしときゃいいだけじゃないの。アクセスカウンタの延長でしょ。
>>355 そのサイトはPHPに引数渡してないみたいよ?
別に引数渡さなくても出来るよ。 mod_rewriteでも使えば、いくらでも調べれる
>>356 viploader.net/geino/read.cgi/vlgeino*****
↑
359 :
nobodyさん :2009/12/17(木) 00:14:10 ID:DlTo5u8A
質問です <a href="URL">リンク先</a> ↑こちらのリンクタグを使い (html)リンクをクリック→(php)セッションをもたせる→ページ移動 という処理はできるのでしょうか? <INPUT type="submit" name="" value="リンク先"> ↑こちらを使えばできるのはわかるのですが、こちらは使いたくない状況なので・・・ お願いします。
そのまま同じ方法でできるよ
>>359 リンクにパラメタ追加して、ページ移動先でセッション処理書けばいいじゃない。
同じページへのリンク+パラメータでセッション開始のチェック+headerでページ移動でもいいけどさ。
363 :
nobodyさん :2009/12/17(木) 01:11:49 ID:DlTo5u8A
>>360-362 回答ありがとうございます。
うまくいかないのでもう一度質問させていただきます。
このような形じゃだめなのでしょうか?
セッションしたいのはリンクのとこにあるvalueです。
<?php
if(isset($_POST[link])){
session_start();
session_register("sesid");
$_SESSION[sesid] = $_POST[link];
header("location: nextpage.php");
}
?>
<HTML>
<?php
print("<a href='nextpage.php' name'link' value='.$id.'>next</a>");
?>
</HTML>
<?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>
別にGETリクエストでもセッションは継続すると思うが パラメータとして必要があるのはCookieがoffの時
>>361 >>366 それ違う話じゃ?
あと、この分だと、うまくいかないっていうnextpage.phpもダメじゃないかな。
369 :
nobodyさん :2009/12/17(木) 01:53:43 ID:DlTo5u8A
レスありがとうございます。
>>365 言葉でうまくまとまらなかったので、ソースはりつけます
chdir("Company");
$dirh = opendir(".");
while($companyfile = readdir($dirh)){
if(is_file($companyfile)){
$datafile = file($companyfile);
print("<a href='companydata.php?id=".$companyfile.">".$datafile[2]."</a>");
print("<BR>");
}
else{
}
}
closedir($dirh);
>>364 のおかげで少し前進した(と思いたい)のですが
print("<a href='companydata.php?id=".$companyfile.">".$datafile[2]."</a>");
がうまく表示されません。どこが間違っているのでしょうか・・・?
>>369 うまく表示されないってどういうこと?
print("<a href='companydata.php?id=".$companyfile."'>".$datafile[2]."</a>");
>>369 >
>>364 のおかげで少し前進した(と思いたい)のですが
とあるけどそれにセッションがどう関わってくるのか分からん。
結局関係ないの?
> がうまく表示されません。どこが間違っているのでしょうか・・・?
printの中でカンマ区切りの文字列渡しは使えません。
今回はいいけど、どううまく表示されないのか言ってもらわないとこちらも困るので次からお願いします。
373 :
nobodyさん :2009/12/17(木) 02:09:10 ID:DlTo5u8A
>>371 1個目のdatafile[2]
2個目のdatafile[2]
3個目の...
となってほしいのですが、
最後のdatafile[2]
のみしか表示されませんでした。
>>372 言葉足らずでごめんなさい。
目的はセッションすることではなく、nextpageに$companyfileを渡すことです。
なのでリンクにパラメータもたす方法でもおkということです。
何そのきもいコード
>>373 どこで変数の中身が想定外の値になっているか出力して確認してみればいいと思うよ
376 :
nobodyさん :2009/12/17(木) 10:32:42 ID:n6lHIqwV
質問です クロスドメインではセッションの維持はできないのでしょうか? Cookieを使うしかないのでしょうか?
普通のセッションはCookie使って実現してると思うけど
違うドメインのクッキーは取得できません。
とも言い切れません
マルチホストなら簡単だし、別のサーバでもセッションID問い合わせたら 存在するかどうか返すとか簡単にできるだろ その際、セッション変数があれば同時に返せばいいし、もちろん問い合わせ時の暗号的なものが必要なことは言うまでもない
381 :
nobodyさん :2009/12/17(木) 13:58:35 ID:XErTSTUM
PHPファイルがIFRAMEで読み込まれたか、includeで読み込まれたか 判別する方法はあるのでしょうか? 前者の場合、<html>〜</html>の表示が必要ですし、 後者の場合、コンテンツ部分(<img>とか)だけ出力すればいいです。 やはり2パターンを用意するしかないのでしょうか?
>>381 もっとPHPを進めていって、いずれ今の質問を見返したとき、
いかに自分がおかしな質問をしてるのかがわかると思う。
なので基礎をもっと勉強してね。
>>381 直接アクセスされたのか、includeされたのか判別は一応可能だけど
#html.php
<html>
<?php include("img.php"); ?>
</html>
#img.php
<img src="">
みたいに作っておけばいいんじゃない?
そもそも直接アクセスされるものと、インクルードする物を一緒にしない方がいいよ
>>383 やはりその方法しかありませんか。
ファイルの数を減らしたくて対応策を考えていたのですが
無理だと言う事で理解しました。
385 :
376 :2009/12/17(木) 15:12:41 ID:???
376です。 session_idを取得して、そのidをCookieに保存し、次のリクエストで Cookieからidを取り出して、明示的にsession_startしたけど 情報はとれませんでした・・・ やはり無理なんでしょうか?
クッキーそのものは取れてたの?
387 :
376 :2009/12/17(木) 15:30:40 ID:???
Cookieは取れました 同サーバー内では問題なく動くのを確認しています。 現在単純にログイン成功時にセッション内に入れたデータを 次のリクエストで読もうとしていますが、成功しません。 cakephpとflashを使用しています。
同じサイトだと動くのかな。 クッキーにはドメイン情報もあるからそれをもとにセッション弾いてるんじゃ? スタート前にsession_set_cookie_paramsとかでドメイン合わせてやれば
389 :
nobodyさん :2009/12/17(木) 19:01:13 ID:LUgkaaFg
phpで作ったアプリケーションの設定ってどういう風に保存すればいいんでしょうか? iniやxmlやjsonやシリアライズしたものなど 結局全て最終的に連想配列なんかに展開したものをPHP内で使うことになると思うんですけど どのフォーマットを使うのがベターなんでしょうか? またなんかそういう設定ファイルを作ることに特化したクラスとか用意されてたら教えてください
json_encodeでテキストファイルに保存 json_decodeで復元
jsonのどの辺がベターなの?
構造が簡単で分かりやすく色々な言語で扱える
393 :
nobodyさん :2009/12/17(木) 19:37:35 ID:LUgkaaFg
>>390-392 xmlにしようと思ってましたがどうしても肥大化してしまうので
jsonかシリアライズがいいかなと思っていました
json_encode()とserialize()の速度を比較してたサイトも発見し
jsonのほうが速度的にも有利なようなので設定ファイルにjsonを使うことにします
どうもレスありがとうございました
394 :
nobodyさん :2009/12/17(木) 19:51:43 ID:DlTo5u8A
header("location: url") で飛ばす時、どのようにすればターゲットフレーム名を指定できるのでしょうか? 調べてみてもみつからなかったのでお願いします。
フレーム使ってるってことだよね それはサーバ側じゃなくて、ブラウザ側の処理 input action=゙submit゙あたりに何とかって属性を追加したはず 複数のフレームが変わったりする場合はjavascriptで可能
396 :
nobodyさん :2009/12/17(木) 21:10:46 ID:Uf/bDX+R
php5.3.1でmime_content_type()を使うには、何か拡張モジュール必要ですか? Call to undefined functionと言われてしまうのです。
398 :
nobodyさん :2009/12/17(木) 21:21:59 ID:Uf/bDX+R
>>397 非推奨である旨は了解してます。
使用できなくなった・標準添付ではなくなった等ありますでしょうか?
399 :
396 :2009/12/17(木) 21:25:09 ID:Uf/bDX+R
>>397 ああああすいません、良く見たらPHP5.2.1でした…PECL標準添付は5.3.1から…吊ってきます
401 :
396 :2009/12/17(木) 21:43:34 ID:Uf/bDX+R
>>400 PHP5.2.1が入ってるのに5.3.1と勘違いしてました。
PHP5.3.1が(間違いなく)入ってる別マシンで試したら追加インストール等なしでしっかり動きました。
早とちり大変失礼しました。
(5.2.1でも追加インストールすれば使えると思いますが)
> 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
403 :
394 :2009/12/17(木) 22:10:42 ID:DlTo5u8A
>>395 フレーム使っています。
セッションを持ってないなら、TOPページへ〜
みたいな使い方をしたいので、inputは使わないです
javascriptの知識は全くないのですが、その場合方法をかえるしかないのでしょうか?
(フレームを使わない等)
>>403 無理やりだけど、PHPでセッションなりをチェックして
飛ばす場合は、親フレームのURLを変更するJavascriptを書き出す
405 :
nobodyさん :2009/12/17(木) 22:51:17 ID:DlTo5u8A
>>404 別の方法で試してみることにします。
わざわざ答えていただきありがとうございます。
406 :
nobodyさん :2009/12/18(金) 18:18:39 ID:7wQwxBqT
foreach($xml->foo[0]->attributes() as $a => $b) { echo $a,'="',$b,"\"\n"; } の$a => $bの => って何ですか? -> (アロー演算子)とは違うのでしょうか?
407 :
406 :2009/12/18(金) 18:20:27 ID:7wQwxBqT
ごめんなさい foreach{}のマニュアルに載ってました
>>406 $arr = array();
$arr["key"] = "val";
foreach ($arr as $k => $v)
{
print $k . ": " . $v;
}
409 :
nobodyさん :2009/12/18(金) 23:35:31 ID:DHX9irph
while ($row = mysql_fetch_array($rec)) { $data[$row['name']][] = $row['box']; } foreach($data as $type=>$size) { print $type; foreach($size as $bon) { echo ' <a href="test.php?id='.$row['id'].'">'.$bon."</a>"; } print "<br />\n"; } tet.phpのidの数字が表示されません。どこがおかしいのですか?
nullが入ってるんじゃね?
$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>"; じゃない? 多次元配列で混乱してるんだと思う。
412 :
nobodyさん :2009/12/19(土) 00:41:54 ID:r/vk1BgH
<?php $start = microtime(true); $a = array(); for ($i = 0; $i < 10000; $i++) { $a[] = $i; } echo microtime(true) - $start . "<br>"; $start2 = microtime(true); $b = array(); $j = 0; while ($j < 10000) { array_push($b, $j, $j+1, $j+2, $j+3, $j+4); $j += 5; } echo microtime(true) - $start2; ?> array_pushが遅いとマニュアルに書いてたのでベンチを取ってるつもりです いくつpushしたらpushのほうが速いのかという比較なのですが ベンチマークのとり方ってこんな感じでよいのでしょうか? 一応ちゃんと動いてるような気はします
>>412 速度の違いをわかる方法なら何でもいいんじゃない?
でも、forならfor、whileならwhileに統一しないと、正しく評価できないよ。
あと、ループの回数はもっと多くしたほうがいい。
>>409 何がしたいか知らんが、なんでそんなややこしくする?
>>411 返事が遅くなりすいません。なおしていただき感謝です
今からおかしかったところ調べたいと思います。
またこけたらお願いします
>>412 PEAR::Benchmark_Timerというのがあるよ
417 :
nobodyさん :2009/12/19(土) 21:02:45 ID:x0H9DwDh
PHPとあまり関係ないかもしれないけど DBに入っている画像のバイナリを表示させた場合、それを著作権有りの画像として表示させたい。 GD使えばそういう風にできる? なんか携帯でメールに添付できない画像があるんだけどそういう風にしたい。 ただ既にDBに入っている画像はコピーライト有りになってない。 それともそういう画像は画像編集ソフトとかでコピーライト有りに編集しなきゃいけないのかな? 教えてよ。
できるよ
PEARって俺らがPHPの関数組み合わせて適当に作ったクラスを第三者も使ってくれみたいなもんだよね?
別に質問じゃないし
422 :
nobodyさん :2009/12/19(土) 21:32:16 ID:x0H9DwDh
>>418 そのやり方を教えて。
関数だけ教えてくれればあと自分でできるから。
でもPHPマニュアル見たけど無かったような
424 :
nobodyさん :2009/12/19(土) 21:45:24 ID:JB1i7e9b
Aptana Studioについて教えて下さい。 Ctrl+Shift+FのFormat機能をカスタマイズすることは可能でしょうか? エディタの設定でtab幅を2にしてるのにFormatすると全部4になってしまったり、 pタグが勝手に改行されたりと、いまいち使い辛いのです。
>>422 画像を表示させる時にパーミッションを変更すれば可能
>>422 GDにコメント取得はあっても、セットするのがねーな。
ソフトバンクはヘッダつけるだけなので画像データいじらなくてよし。
428 :
nobodyさん :2009/12/19(土) 21:56:44 ID:JB1i7e9b
>>425 うおーこんなのがあったのか。ありがとうございます!
設定したフォーマットをエクスポートして共有できるとかすご過ぎる
431 :
nobodyさん :2009/12/19(土) 23:57:46 ID:5CrPM6Aj
function array_delete($key, $array) { $val = isset($array[$key]) ? $array[$key] : NULL; unset($array[$key]); return $val; } みたいな関数は標準でありますか。 ようは、配列から値を取り除きつつ、その取り除いた値を取得したいということです。
433 :
340 :2009/12/20(日) 00:45:15 ID:???
コメント書けとのレスがあったので 気持ち程度にコメント追加しました あと、代表的な処理のアクティビティ図と、ER図も追加して jQueryを使って遊んでみたものをうpしてます SQLインジェクション対策は必須だと思うけどしてませんw mysql_real_escape_string()を通すとDBに追加、更新ができなかったので コメントにしてますが原意を調べる時間をとってません
>>433 自分でインジェクションしちゃってるんじゃないの?ww
セルフインジェクション
よくそんなコードを公開できるな
よく2chなんかできるな
⊂二(^ω^ )二二二⊃ブーン
sql文をそっくりエスケープしてるんじゃね?
>>431 標準の関数がなくても、下の2行で済むんじゃない?
自作の関数もいらないような・・。
$val = $array[$key];
unset($array[$key]);
442 :
nobodyさん :2009/12/20(日) 12:20:31 ID:Zrftzoad
皆さんはどのようなライブラリ、テンプレート、フレームワーク等を実際に使ってPHPを開発、構築されているのでしょうか?
そんなこと聞いてどうするんだ・・・
同じにしたら俺も同じように出来るじゃん。
おれのライブラリはグーグル先生、他はなにも要らない
一時だけな。
PHPを究めたことだし、そろそろ仕事探そうかと思ったけどいいこと思いついた PHP検定を主催してボロ儲けなんてどうだろ
ライブラリ→PEAR(拡張型で遅いがライブラリ数が多い)・PECL(組み込み型で速いがライブラリ数が少ない) テンプレート→Smarty フレームワーク→CakePHP・ZendFramework このあたりが日本で主流だと思われる フレームワークを使う場合テンプレートエンジンは別に必要ではない ライブラリは環境依存になることが多いのでなるべく使わないようにする(特にPECLはSUでないとインスコできない) あとは使用するプログラムのライセンス形態を調べること SmartyはLGPLなので商用では注意が必要(この辺が面倒で自分はテンプレートは自作したものを使ってる)
主流と言われてるけど誰も数えたことがない フレームワーク使おうが使うまいがテンプレートエンジンは別に必要ではない
<?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);
?>
↑ これ実行してもなぜか書き込めません>< 他の人はどうですヵ?;;
453 :
nobodyさん :2009/12/20(日) 13:35:12 ID:HokspEf/
【OS名】WiindowsXP-Pro(SP2) 【PHPのバージョン】PHP5.2.6
【連携ソフトウェア】Apache2.2 【やりたいこと】 mail()を使ってメールの送信
参照したサイト:
ttp://www.php.net/manual/ja/function.mail.php ttp://www.php-labo.net/tutorial/php/mail.html 下記コードでメール送信を試みましたが、2個のエラーメッセージが出ました。
$to = '
[email protected] ';
$subject = 'the subject';
$message = 'hello';
//
$headers .= 'From: Birthday Reminder <
[email protected] >' . "\r\n";
$headers .= 'Cc:
[email protected] ' . "\r\n";
if (mail($to, $subject, $message, $headers)) {
echo "メールが送信されました。";
} else {
echo "メールの送信に失敗しました。";
}
エラーの内容は以下の通りです。
Notice: Undefined variable: headers in C:\〜\MailTest_01.php on line 10
***
これは $headers .= 'From: Birthday Reminderの箇所でこれを削っても駄目でした。
Warning: mail() [function.mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\〜\MailTest_01.php on line 13
メールの送信に失敗しました。
***
Line13は、if (mail($to, $subject, $message, $headers)) { の所です。
どう修正すべきでしょうか?
やっぱり、本物のサーバーにUpしないと駄目なのでしょうか?
まんまメッセージのとおりじゃないか・・・ ローカル環境でメールサーバ構築してテストしれ
もしくは自分が使ってるメールクライアントソフトの送信サーバ設定をそのまま書きこむとか
【OS名】 debian lenny 【PHPのバージョン】 php 5.2.6 【質問内容】 php.iniでの zend_extension=xxx.so のような設定をhttpd.conf内で記述したい場合、どの様にしたら良いのでしょうか。教えて下さい。
458 :
456 :2009/12/20(日) 15:26:32 ID:ruVQmLxH
失礼しました。456は私です。
460 :
456 :2009/12/20(日) 15:55:24 ID:ruVQmLxH
>>459 試したのですが、どうやらロードされていない雰囲気です、、、(phpinfoで確認しました)
先に言っておくべきだったのですが、ロードしたいのはxdebugです
具体的にどう設定してinfoはどうだったのか
462 :
453 :2009/12/20(日) 16:14:27 ID:???
>>454-455 ありがとうございます。
>>メールサーバ構築してテスト
>>送信サーバ設定をそのまま書きこむ
すいません。全く手法が分からないのでヒントを下さい。
そのPCでメールソフト使ってないの? そこでアカウントの設定で送信サーバとか入れてるだろ?
464 :
nobodyさん :2009/12/20(日) 16:16:12 ID:Fw0pzpEV
echo $k1 . '=' . $v1 . '&' . $k2 . '=' . $v2 . '&' . $k3 . '=' . $v3; とするのと、 echo sprintf("%s=%s&%s=%s&%s=%s", $k1, $v1, $k2, $v2, $k3, $v3); とするのでは、どっちがどのくらい速いでしょうか。
自分で計ればいいだろ
467 :
456 :2009/12/20(日) 16:47:24 ID:ruVQmLxH
>>461 php_admin_value zend_extension "/usr/lib/php5/20060613/xdebug.so"
上記の設定を書き加えましたが、phpinfoにはxdebugについての情報が一切吐かれませんでした。
php_admin_valueの部分をphp_valueに書き換えても同様でした。
もちろん、上記のパスが正しいことは確認済みです。
試しに一般的なパラメタ指定するとどうなる? あとその行に文法エラーになるような文を書いてApacheの起動に失敗するかも確認
469 :
456 :2009/12/20(日) 17:02:07 ID:ruVQmLxH
同ファイル内で、 php_admin_value error_log /path/to/dir などの様に他の設定を行っていますが、正しく動作しているようです。 php_admin_value zend_extension "/usr/lib/php5/20060613/xdebug.so" abcdef などの不適切な設定をした場合、syntax errorでapacheは起動しませんでした。 そもそも、php_valueを用いて、zend_extensionの設定を行うことは可能なのでしょうか・・・?
.htaccessでもできるんだから可能だろ ちなみに、php_valueだよ
471 :
456 :2009/12/20(日) 19:12:14 ID:ruVQmLxH
php_valueでもダメっぽいですね、、、
【OS名】Windows 【PHPのバージョン】php5.29 【質問内容】 メッセージを既読の状態で imap_append するにはどうしたらいいのでしょうか? よろしくお願いします。
>>472 ...
4つ目のオプションで "\\Seen"
474 :
nobodyさん :2009/12/21(月) 21:59:39 ID:sxjnmPYw
【やりたいこと】 mail()による誤送信メールの取得 ※PHP環境はレンタルサーバーなので不明 CCで複数のメールアドレスに送信する際、(実験で)意図的にエラーメアド を含ませて、エラーメールを「-f オプション」でメインの宛先に戻そうとしています。 コードは下記です。 $to = 'メインの宛先'; $subject = 'MailTest_02'; $message = 'MailTest_02 desu'; // $headers .= 'From: Birthday Reminder <送信元メアド>' . "\r\n"; $headers .= 'Cc: 意図的にエラーメアド,正しいメアド@,正しいメアドA' . "\r\n"; $errorTo = "-f送信元メアド"//-f オプションを使用 if (mail($to, $subject, $message, $headers, $errorTo)) { echo "メールが送信されました。"; } else { echo "メールの送信に失敗しました。"; } これだと下の文法エラーが出ます。 Parse error: syntax error, unexpected T_IF in /〜.php on line 16 該当行は if (mail($to, $subject, $message, $headers, $errorTo) なのですが、 間違いが分かりません。ご指摘願います。
$errorTo = "-f送信元メアド"//-f オプションを使用 とりあえず、こいつをセミコロンで締めようか。
476 :
474 :2009/12/21(月) 22:41:58 ID:???
477 :
nobodyさん :2009/12/22(火) 00:13:38 ID:2mzdqR1W
Switchについて気になったので・・質問です。 caseの値に演算子は使えますか?
つかえる
479 :
nobodyさん :2009/12/22(火) 00:21:17 ID:2mzdqR1W
循環参照にならないとおかしいってことか
高速ダウンロードのアルゴリズム考えてたんですが、これであってますか? 1.ダウンロードしたいファイルの全体サイズを要求して、帰ってきた値をn分割する 2.サーバーからn個の塊(セグメント)のそれぞれのバイナリの最初からをダウンロードする 3.最後に保存したバイナリを結合 サーバーに負担かけるけど、これで速くなりますよね?理論上
速くなるかどうかはやってみないとわからん
スレタイと
>>1 を読まない子には応えてあげません。
484 :
nobodyさん :2009/12/22(火) 19:26:00 ID:hbkj7edc
true:0,1,゙0゙,゙1゙,゙a゙ など false:゙゙,null など 変数を文字列にキャストしたときに、一文字目に文字が存在してればok みたいな判断がしたいのですが 出来るだけ簡潔に書ける方法ってないでしょうか? 一行で書けるくらいの簡潔さが理想です
数字の0と文字列の"0"だけ例外にしてあとはそのまま。
strlen()>0 でよさそうだけど
487 :
nobodyさん :2009/12/22(火) 22:19:00 ID:CYPjupAH
ウェブサイトの共有部分をphpでインクルードしたいのですが、 何から始めればいいのでしょう・・・ HTMLのソースならあるのですが(´・ω・`)
489 :
nobodyさん :2009/12/23(水) 00:40:17 ID:5FKPpQ9S
fgetsやCURLでgzip圧縮されたHTTP bodyを元の文字列に復号するにはどうしたらいいのでしょうか
490 :
nobodyさん :2009/12/23(水) 00:45:48 ID:5FKPpQ9S
gzdecodeは未定義でgzuncompress、gzinflateはデータエラーになりました。
>>489 奇遇だな、俺も今それでなやんでいたんだ
bodyの部分だけバイナリでファイルに書き込んでgzの拡張子にしてもなんだか壊れてるとかで開けなかった
もしわかったらこのスレに書き込んでくれ
俺もわかったら書き込むわ
492 :
nobodyさん :2009/12/23(水) 00:47:49 ID:cvJgDWhA
あ、sageはずすのかスマソ 今日は解決できなかったから寝るけど明日にでもまたやってみるわ
493 :
nobodyさん :2009/12/23(水) 00:57:59 ID:5FKPpQ9S
自己解決しました。 圧縮されたデータをbase64エンコードしてDATAスキームとして読み込みgzopen -> gzreadしました $data = curl_exec($ch); //gzip圧縮されたデータ $data = "data:application/x-gzip;base64,".base64_encode($data); // dataスキームに整形 $fp = gzopen($data,"r"); // gzopen echo gzread($fp,1024); //読み込み
file_get_contents("compress.zlib:///home/aaa.gz");
495 :
nobodyさん :2009/12/23(水) 01:19:52 ID:VLbb10P/
age
496 :
nobodyさん :2009/12/23(水) 01:27:35 ID:5FKPpQ9S
URLencodeのほうがわずかに軽い?気がする
$data_scheme = "data:application/x-gzip;charset=iso-8859-7,".urlencode(curl_exec($ch));
$fp = gzopen($data_scheme,"r");
echo gzread($fp,524288);
>>494 この方法だと一度ファイルに書き込む必要が有りますよね
データ取得する度にファイルを生成するのは避けたいのです
497 :
nobodyさん :2009/12/23(水) 05:40:00 ID:9xQ+acVI
サーバーから任意のアドレスにリクエストを発生します。 そして返ってきたヘッダーにsetCookieが有った場合、それを任意のファイルに保存する事が出来、 そのファイルを指定すると、そのクッキー内容をセットして送信してくれる またその関数はオプションで、レスポンスヘッダーにLocationが存在した場合、自動的にそのURLにリダイレクトもしてくれる という関数を探しています。 以前使った記憶があるのであるはずなのですが、どうにも検索出来ません。 php cookie ですと、サーバーからクライアントにクッキーを渡す、受ける方法しか出てこないので。 この関数に心当たりの有る方、是非教えてください。
498 :
nobodyさん :2009/12/23(水) 06:20:09 ID:yNzqV2OY
ようわからん
用途を言え
さすれば
>>499 が答えてくれるはず
>>497 ひとつの関数ではないけど、CURLじゃないかね?
500 :
nobodyさん :2009/12/23(水) 07:13:44 ID:9xQ+acVI
>>499 それです。ありがとうございました。
>>498 サイトのソースを取得したかったが、file_get_contentsだと「オメーのアクセス不正だからデータ出してやんねー」
って弾かれるから、セッションとかその辺がいかんのかなぁと思って聞いた。
が、どうもUAが空なのが原因だったらしい。
>>496 stream_filter_append で convert.base64-decodeと bzip2.decompress なんて手も。
502 :
nobodyさん :2009/12/23(水) 10:34:14 ID:cvJgDWhA
ID:5FKPpQ9S マジでGJ!! 俺もやってみるわ。なんか書き込んでとか生意気なこといったのに応じてくれてありがとう
503 :
nobodyさん :2009/12/23(水) 10:35:28 ID:GedKCbN8
<?php function print_current_date($params, &$smarty) { if(empty($params['format'])) { $format = "%b %e, %Y"; } else { $format = $params['format']; } return strftime($format,time()); } ?> 質問させてください。 関数print_current_dateの第2引数 &$smarty の意味が分かりません 参照渡しだと言う事は分かるのですが、引数に指定された時にはいったいどういう挙動をするのでしょうか?
Smartyのテンプレート関数登録 register_functiont使うときのお決まりになってる。 その関数でsmartyの機能を参照できるようにするためで、引数に渡される。 使わないなら何もしない。 その関数の中で $smarty->trigger_error とか使うためのもの。
506 :
nobodyさん :2009/12/23(水) 11:04:44 ID:GedKCbN8
507 :
nobodyさん :2009/12/23(水) 17:00:21 ID:NNi2TGwI
IFRAME内で echo $_COOKIE["test_cookie"]としたのですが、 何も表示されません。 クッキーの受け渡しは出来ているのですが、 もしかしてIFRAMEだとクッキーを認識しないのでしょうか?
echo print_r($_COOKIE,true); してみろ
なんでわざわざ第二引数trueにしてまで
510 :
507 :2009/12/23(水) 17:28:57 ID:NNi2TGwI
>>508 PHPSESSIDはでますが、クッキー用の変数は出ません
iframeのドメインが違ったりしない?
記入不足等のエラーがある場合に、 ブラウザの戻るボタンと同様の動作はできますか? リダイレクトheader('Location〜だと新しく読み直してしまうんですが・・
513 :
507 :2009/12/23(水) 17:37:59 ID:NNi2TGwI
>>512 history.back();でググるといいよ
515 :
507 :2009/12/23(水) 17:42:05 ID:???
自己レスです。わかりました。 setcookie("test_cookie","1",time()+3600,"/"); とすれば良いみたいです。おさわがせしました。
517 :
nobodyさん :2009/12/23(水) 20:59:16 ID:IsKOC7oo
【PHPのバージョン】5.2.6 【libxslt Version】1.1.24 XSLTProcessorなんだが 【×】 <xsl:variable name="fragment" select="'091223006'"/> <xsl:template match="a[@name=$fragment]"> <div><xsl:value-of select="$fragment" /></div> </xsl:template> ↓ Undefined variable compilation error: file xxxx.xsl line 2 element template Failed to compile predicate 【○】 <xsl:variable name="fragment" select="'091223006'"/> <xsl:template match="a[@name='091223006']"> <div><xsl:value-of select="$fragment" /></div> </xsl:template> ↓ <div>091223006</div> なんで上のがエラーなんだよ。 死ねクソPHP。
やっべ自分のコード醜い ワロタw
誤爆
520 :
nobodyさん :2009/12/24(木) 15:58:09 ID:RlAOKAtP
hoge->poge() hoge::poge() ってどう使い分ければいいんでしょうか?
521 :
nobodyさん :2009/12/24(木) 16:08:47 ID:K1JQdV/R
->はアロー演算子,::はスコープ解決演算子っていう名前がついてる ぐぐってみれ
SmartIRCを使って
途中で書き込んでしまった。 SmartIRCを使ってチャンネルのトピックや参加人数を 変数に取得したいのですが、やりかたがわからず。。 どなたか教えていただけると助かります。
スレタイを読んでいただけると助かります。
525 :
nobodyさん :2009/12/25(金) 11:09:57 ID:BJR7sXEG
test.php <?php $test=$_GET['key']; if($test==='aiueo'){ /* srcディレクトリにあるtest.zipをダウンロード開始 */ }else{ /* 何もしない */ } ?> で、keyをphp側で受け取って'aiueo'と一致すれば test.zipのダウンロード開始をしたいです。 このダウンロード開始というのは、 ブラウザで右クリック保存を押したときに、 保存画面が表示されるときのような感じです。 (または単に、.zipのようなファイルにアクセスがあったとき ブラウザ側で勝手に拡張子を判断してダイアログをだしてくれるような) keyが一致すれば、test.zipまでのファイルのパスを aタグで指定したのを表示して〜(<a href="http〜〜〜/src/test.zip" title="test">ダウンロード</a>) みたいに二段階だと簡単にできるのですが、一段階だと思うようにできません。 自分なりに考えたのが、RewriteRuleでtest.zipにアクセスがあったときtest.phpへつなぐようにして、 php側でkeyが一致したとき echo file_get_contents('./src/test.zip'); を実行、 ダウンロード自体はhttp〜〜/src/test.zip?key=aiueoでアクセス、という感じです。 これなら一応できるにはできたのですが、そのままファイルの内容を表示してしまうので 実質urlの上で右クリックダウンロードしかできないし、そもそも間違った方法のような気がします。 ようは、普通ならhttp〜/src/test.zipへアクセスすれば単純にダウンロードできるところをkey一致の段階を付け足したいというところです。 ファイルのタイプはzip以外にもで、keyのaiueoも一定時間で変化するようにできたら、と考えています。 何か良い方法があればアドバイスお願いします。 PHP5.2.6 Apache2
527 :
nobodyさん :2009/12/25(金) 11:21:44 ID:BJR7sXEG
>>526 おぉ、こんな簡単な方法が。
やりたいことができました!
ありがとうございました。
528 :
nobodyさん :2009/12/25(金) 11:31:51 ID:v7rwUytB
質問です。 会社の意向でPHPを2週間で習得しなければならなくなりました。 個人的にはrubyやpythonが使えるので今更PHPみたいな名前も構文も 設計思想も時代遅れの糞言語を習得する時間がもったいなくてたまり ません。RoRやdjangoの素晴らしさを説明してもアホな上司は何もわ かってくれないし(泣 僕はどうすればいいのでしょうか?アドバイスお願いします。
>>529 【PHP下らねぇ】質問はID出して書き込みやがれ 91
全然スレちぢゃないけど?
>>528 覚えていないのにそんなこと分かるんだ。すごいね。
>>530 PHPの質問ですか?
質問内容を理解できずすみませんでした。
> 質問です。 > > 会社 で > 使え な > い > アホな > > > 僕はどうすればいいのでしょうか?アドバイスお願いします。 気にせずクリスマスを祝えばいいと思うよ
とまあ、ネタに乗ってあげるやさしい回答者達でした。
感動した
>>528 そんなアホな上司がいる会社は見限って、うちの会社に来ないか?うちの会社は警備会社だが。
538 :
nobodyさん :2009/12/25(金) 13:53:03 ID:9hjXXeKP
警備なら毎日やってますよ
imagettftextで数式を表示させたいんですが「+」が表示されません。 表示できるフォントあるいは他の解決法があれば教えてもらえないでしょうか。お願いします。
540 :
539 :2009/12/25(金) 16:37:50 ID:???
解決しました!
541 :
nobodyさん :2009/12/25(金) 17:06:12 ID:ODrit1bB
<?php function smarty_prefilter_no_php($src, &$o_smarty) { $result=str_replace("{php}","{ldelim}php{rdelim}",$src); $result=str_replace("{/php}","{ldelim}/php{rdelim}",$result); return $result; } ?> 上記の関数内の変数resultはどちらも「=」で代入されていますが、オーバーライドされないのでしょうか?
$a = 4 $a = 5 + $a ってだけですね。
543 :
nobodyさん :2009/12/25(金) 17:35:52 ID:ODrit1bB
>>542 すみません
$a .= 5 のように「=」の前にドットを付けるとそのようになるのは知っているのですが、単なる「=」でもそのように出来るのですか?
-> 等は追記していけるのは分かりますが、=がそのような動作を出来るとは知りませんでした
普通に
$a = Hello;
$a = World;
とするとオーバーライドだれると思うのですが、
>>541 の場合は第2引数の参照渡しとかが何か影響しているのでしょうか?
まぁ、オーバーライドはそういう意味で使う事は稀だと思うが。
>>543 $a=4;
$a=5+$a;
//ここで$aは9だ。
$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 に入れます。 プログラムの用語でオーバーライドは別の意味に使うので、 ただの変数の上書きの時には使わないです。
オーバーwrite(ライト)だな、言うとしたら。
547 :
nobodyさん :2009/12/25(金) 18:19:15 ID:ODrit1bB
>>544-545 わかりました
オーバーライドの意味自体を勘違いしていたようです
自分の言いたかったのは上書きでした
ごめんなさい、まだ良く分かっておりません(苦笑)
<?php
$a = Hello;
$a = World;
print $a;
?>
で試すとブラウザには「Hello」が上書きされて「World」と出力されますが、これと、
>変数 $src の中の {php}という文字列を {ldelim}php{rdelim} に置き換えたものを $resultに入れます
という今回のコードでの意味との違いは何なのでしょうか?
str_replace()だと違う挙動になるのでしょうか?
548 :
547 :2009/12/25(金) 18:21:00 ID:ODrit1bB
ごめんなさい、わかりました 非常に馬鹿でした $result=str_replace("{/php}","{ldelim}/php{rdelim}",$result); の$resultが見えていなかったようです ほんとお騒がせしてすみませんでした
$a = 4 $a += 5 //$a:9
550 :
nobodyさん :2009/12/25(金) 18:54:34 ID:+jc140hL
携帯電話で検索フォームを作っているのですが、auのみ結果が文字化けしてしまいます。 (というより検索クエリ自体が化けているらしく結果も正しくありません) フォームはGETで、ページはUTF-8です。auはフォームからのデータがSJISになってしまうということは ググってわかったのですが、どうやってSJIS→UTF-8に変更してデータを送るかがわかりません。。。 どのような方法がありますでしょうか。
551 :
nobodyさん :2009/12/25(金) 19:09:37 ID:dFEOAZcl
<?php define('CARRIER_DOCOMO', 'i'); define('CARRIER_EZWEB', 'e'); define('CARRIER_SOFTBANK', 's'); define('CARRIER_PC', 'pc');function mobileStart() { //■php内部文字エンコーディング mb_internal_encoding('utf-8'); //■header出力 //携帯アクセスでdocomoの場合は、Content-Typeを出力 if (whichCarrier() == CARRIER_DOCOMO) { header("Content-Type: application/xhtml+xml;"); } //auのみ、ブラウザキャッシュが効くのでキャッシュ無効にする if (whichCarrier() == CARRIER_EZWEB) { header('Cache-Control: no-cache'); } //■出力バッファ開始 ob_start();
>>550 mb_convert_encodingでいいのでは?
553 :
taigo ◆RpNs8sZ5pNfE :2009/12/25(金) 21:52:22 ID:+jc140hL
>>551 ありがとうございます、が。。。やはり文字化けしてしまいます。
ページ変遷がなく、同じページを読み込んでいるのですが
それが原因となることはありますか?
554 :
nobodyさん :2009/12/25(金) 22:38:29 ID:9hjXXeKP
httpのメッセージボディをgzipで取得したとき、デコード(復号)するにはどうすればいいですか? phpとかrubyだとたくさん資料あるのですが自分はC++つかっててよくわかりませんでした。 わかる方いらっしゃったらぜひともよろしくお願いします
556 :
nobodyさん :2009/12/26(土) 06:41:22 ID:3WIBYwDf
サイト内で不特定ユーザーに対してお気に入り登録機能をつけるために、クッキーを使おうと思います。 一つだけならセットできたのですが、違う商品を登録すると上書きされてしまいます。 $_COOKIE[`a`]に登録したいものをarray_pushとかで配列として増やすことは可能ですか? 何度か試したけれどエラーがでて上手くいかないので・・・
>>556 代わりに$_SESSIONを使うとよかろうん
560 :
nobodyさん :2009/12/26(土) 11:08:36 ID:wIFCZoqo
>>555 それはおそらくphpの話だと思うのですが
だって、このスレは(略
わしもそう思う つまりスレ違い
563 :
nobodyさん :2009/12/26(土) 11:57:21 ID:wIFCZoqo
よくみたらphpでした すいませんでした 自分で考えます
564 :
nobodyさん :2009/12/26(土) 13:33:40 ID:wnAP/Woh
566 :
nobodyさん :2009/12/26(土) 14:13:51 ID:cSlUn0mi
fopenでファイルを開いてfwriterで書き込み、fcloseでファイルを閉じるという ログ保存の処理をしています。(log.phpとします) このファイルをIFRAMEなどで2つ読み込んだ時、 どちらか一方のログが記録されない場合があります。 同時アクセスが原因だと思いますが、こういう場合どう対処すればいいのでしょうか?
キャッシュ
>>565 いただいたヒントでなんとか実現できました。
簡単なことだったのですね。。
ありがとうございました!
syslog()
570 :
nobodyさん :2009/12/26(土) 17:54:40 ID:7XqYgoy0
mysqlと同じ内容の 接続をPDOで要求した場合、再利用されますか?
571 :
nobodyさん :2009/12/26(土) 18:38:14 ID:w2S23L5n
((ファイル1)) function smarty_resource_db_source($tpl_name, &$tpl_source, &$o_smarty) {}や function smarty_resource_db_timestamp($tpl_name, &$tpl_timestamp, &$o_smarty) {}の リソース名dbについて教えて欲しいのですが、 ((ファイル2)) require_once("../MySmarty.class.php"); $o_smarty=new MySmarty(); $o_smarty->default_resource_type="db"; $o_smarty->display("resource_db.tpl"); の$o_smarty->default_resource_type="db";のリソースの種類dbと、ファイル1のリソース名dbは同じなのでしょうか? 普段はdefault_resource_typeのデフォルトはfileなようですが、もしdbがデータベースを表しているのであれば適当に付けた(?)dbとは意味が違ってくると思うのですが
572 :
551 :2009/12/26(土) 20:21:10 ID:XUPV0oR3
>>553 実はまだつづきがあってね。
それを実行すれば
貼るとながいんだ。
はってもいいかな?
それをrequire_onceして共通関数として
使えば文字化けはなくなるよ。
573 :
551 :2009/12/26(土) 20:56:29 ID:XUPV0oR3
>>553 できたみたいだな。
はらなくてよさそうだ。
574 :
nobodyさん :2009/12/26(土) 21:07:32 ID:wIFCZoqo
おしりが二つにわれてます 病気でしょうか?
575 :
nobodyさん :2009/12/26(土) 21:08:17 ID:wIFCZoqo
すいません誤爆しました あああはずかしいいいいいいい
576 :
nobodyさん :2009/12/26(土) 21:24:44 ID:/CwwEmig
内部でexit()を呼んでいるユーティリティ関数があるんですけど、 これのテストコードを書こうとして困っています。 テストするためには当然その関数を呼び出す必要があるわけですが、 そうするとexit()でテストコードが終了してしまいます。 なんかいい方法ないでしょうか。 当方PHP5.2.x使用
exit()の頭に//を書くとコメントにできる裏技がある
exitを書いた関数のテストがexitで終了するなら正常な動作じゃないかw してほしいのかしてほしくないのかどっちなんだw
579 :
nobodyさん :2009/12/26(土) 22:09:18 ID:/CwwEmig
>>578 通常はexit()で終了してほしいけど、テストのときは終了してほしくない、ということです。
たとえば
function redirect_to($url) {
header('Location: '.$url);
exit();
}
というのがあって、これをテストしたい場合、
・redirect_to()を呼ぶと引数が Location: ヘッダの値として設定されることをテストする
・(可能なら)exit()が呼ばれることをテストする
ということになると思います。こういうテストがしたいんですけど、PHPでは無理ですか。
それできる言語とかあんの?
581 :
nobodyさん :2009/12/26(土) 22:15:48 ID:/CwwEmig
>>580 exit()を上書きできる言語ならできます。RubyとかPythonとか。
>>153 何言ってるんだよお前ッ!!
お前がチンチンが痒いって言うから親身に相談にのってやってんだろうが!!
俺だっていそがしんだからな、分かったか?
585 :
553 :2009/12/26(土) 23:21:13 ID:???
>>573 あれからurlencodeとかdecodeとかhttp_outputとか調べて色々試したのですが
まだ解決できていません...
可能であれば貼ってもらってもよろしいでしょうか。
>>585 あんまり読んでないけど、
JavaScriptで変換してから送信すれば?
と言ってみる
587 :
551 :2009/12/27(日) 01:12:28 ID:HTyX6aDg
本当にながいぞ
echo '<'.'?xml version="1.0" encoding="Shift_JIS" ?'.'>'."\n";
switch (whichCarrier()) {
case CARRIER_DOCOMO:
case CARRIER_PC:
echo '<!DOCTYPE html PUBLIC "-//i-mode group (ja)//DTD XHTML i-XHTML(Locale/Ver.=ja/2.3) 1.0//EN" "i-xhtml_4ja_10.dtd">';
break;
case CARRIER_EZWEB:
echo '<!DOCTYPE html PUBLIC "-//OPENWAVE//DTD XHTML 1.0//EN" "
http://www.openwave.com/DTD/xhtml-basic.dtd ">';
break;
case CARRIER_SOFTBANK:
echo '<!DOCTYPE html PUBLIC "-//J-PHONE//DTD XHTML Basic 1.0 Plus//EN" "xhtml-basic10-plus.dtd">';
break;
function mobileFinish()
{
$content = ob_get_contents();
ob_end_clean();
$content = mb_convert_encoding($content, 'sjis-win', 'utf-8');
echo $content;
}
588 :
551 :2009/12/27(日) 01:16:51 ID:HTyX6aDg
function varout($str) { echo htmlspecialchars($str, ENT_QUOTES); } function whichCarrier() { global $_mobile_carrier; //すでに判別済みの場合は前回結果を返す if ($_mobile_carrier != null) { return $_mobile_carrier; } $uaList = array( array( 'regexp' => '!^DoCoMo!', 'carrier' => CARRIER_DOCOMO, ), array( 'regexp' => '!^KDDI-!', 'carrier' => CARRIER_EZWEB, ), array( 'regexp' => '!^UP\.Browser!', 'carrier' => CARRIER_EZWEB, ), array( 'regexp' => '!^SoftBank!', 'carrier' => CARRIER_SOFTBANK,
589 :
551 :2009/12/27(日) 01:17:37 ID:HTyX6aDg
array( 'regexp' => '!^Vodafone!', 'carrier' => CARRIER_SOFTBANK, ), array( 'regexp' => '!^J-PHONE!', 'carrier' => CARRIER_SOFTBANK, ), array( 'regexp' => '!^MOT-!', 'carrier' => CARRIER_SOFTBANK, ), array( 'regexp' => '!^Semulator!', 'carrier' => CARRIER_SOFTBANK, ), array( 'regexp' => '!^Vemulator!', 'carrier' => CARRIER_SOFTBANK, ), array( 'regexp' => '!^J-EMULATOR!', 'carrier' => CARRIER_SOFTBANK, ), array( 'regexp' => '!^MOTEMULATOR!', 'carrier' => CARRIER_SOFTBANK, ), );
590 :
551 :2009/12/27(日) 01:21:43 ID:HTyX6aDg
$ua = $_SERVER['HTTP_USER_AGENT']; foreach ($uaList as $item) { if (preg_match($item['regexp'], $ua)) { $_mobile_carrier = $item['carrier']; break; } } if ($_mobile_carrier == null) { // PCやその他のUAでアクセスされたとき $_mobile_carrier = CARRIER_PC; } return $_mobile_carrier; } ?>
591 :
551 :2009/12/27(日) 01:31:17 ID:HTyX6aDg
はったぞ
592 :
553 :2009/12/27(日) 01:33:56 ID:???
>>551 長いコードを貼り付けていただき、ありがとうございます。
これで試してみます!
>>586 ケータイサイトなんです(泣)
593 :
nobodyさん :2009/12/27(日) 01:34:28 ID:NIseTKcN
exe
595 :
551 :2009/12/27(日) 01:45:37 ID:HTyX6aDg
これでわからなかったらまた聞いてくれ
596 :
553 :2009/12/27(日) 01:47:52 ID:???
>>551 何回もすみません。
・・・
array(
'regexp' => '!^MOTEMULATOR!',
'carrier' => CARRIER_SOFTBANK,
),
); ←この行でエラーになってしまいます。
・・・
エラー:Parse error: syntax error, unexpected ';', expecting ')'
括弧の過不足など確認してみましたが、コードが複雑すぎて手に負えませんでした。
どのようなエラーでしょうか。。
597 :
553 :2009/12/27(日) 01:49:33 ID:???
unexpectedらしいので「;」を削除してみましたが今度は unexpected T_VARIABLE, expecting ')' となってしまいます。
598 :
nobodyさん :2009/12/27(日) 01:51:47 ID:NIseTKcN
>>594 EXEをダウンロードすればいいんでしょうか?
599 :
593 :2009/12/27(日) 01:56:11 ID:NIseTKcN
>>588 の最後は
),
が足りないんじゃない?
あと、
array(
'regexp' => '!^MOTEMULATOR!',
'carrier' => CARRIER_SOFTBANK,
), ←ここのカンマはいらない
);
602 :
551 :2009/12/27(日) 02:07:55 ID:HTyX6aDg
最後にカンマあっても問題ないよ
604 :
601 :2009/12/27(日) 02:42:07 ID:???
>>603 知ってる。
いま見たら、最後だけじゃなく全箇所不要なカンマ(あっても問題はないカンマ)が入ってるね。
新たに追加するときにカンマを入れ忘れることがあるから、それを防ぐための策だろうね。
知らなかったのバレバレじゃねぇかw
ワロタ
607 :
nobodyさん :2009/12/27(日) 12:30:49 ID:PylzfMP3
フイタw
608 :
nobodyさん :2009/12/27(日) 14:10:44 ID:NIseTKcN
PHPって中卒の俺にもできるんだが。。
高卒でないとできない言語があるのか
610 :
中卒 :2009/12/27(日) 14:19:30 ID:NIseTKcN
東大出身のやつと一緒仕事することもある
給料は?
>>610 中卒の天才プログラマーは、一人だけ知ってるw。
お前は、俺の知り合いかw。
613 :
中卒 :2009/12/27(日) 15:01:41 ID:NIseTKcN
ある意味高・大行ってた奴より中卒の方がさえる。 やっぱ好きな分野勉強して好きな仕事した方が良いてことだな 漏れは高卒だが
>>614 高校と大学行かないで7年間の間プログラムの勉強するってこと?
土方に学歴関係ないよね
>>613 あ、ごめん。給与が本当なら、別人だ。
>>615 25年くらい前は、結構いたらしく、新聞とかテレビなんかでも
若年天才プログラマが取り上げられたりもしていた。
高級言語が普及する前だから、基礎学力や、業務知識よりも、
プログラミングそのものの比重が今より高く、中卒でも実力次第で
就職できたし、景気も良かったから、高待遇だったそうだ
618 :
551 :2009/12/27(日) 17:20:21 ID:HTyX6aDg
というか、中学時代から経験ある人と大学時代から経験ある人を比べたら 経歴で六年違うんだから、相当な差があっても不思議じゃない ましてやこの業界は進化スピードが恐ろしく速い業界だし
620 :
nobodyさん :2009/12/27(日) 20:20:57 ID:EZZjGXhz
答えに困る質問だとは百も承知ですがお願いします。 学生時代にFORTRANとCOBOLの経験が1ミリほどある30代後半だけど 出回ってるSNS改造して公開できるようになるには、 1日2時間の勉強時間が取れたとして どのぐらいの期間勉強が必要でしょうか。
やめたほうがいい
そうですか。。。 やっぱり、出きる人に頼むか。。。
PHPなんて所詮Webサイトを作る為に特化した言語だから 無知でも会社で半年働けば大学で習う程度の技術は身に付く 正直、大卒よりも低学歴でも長年やってる奴の方が使える人材が多い気がする 物理演算などを使ったゲームやグラフィックを開発するとかだとそれ相応の学がないとダメなんだろうがな あ、でも今の時代充実したオープンソースなライブラリなんかがあるか
mb_strlen()の結果とstrlen()の結果が同じようになるようにしたいのですが、 mb_strlen()の第二引数のエンコーディングを何に指定すればお味結果が得られますか?
8bit
お味結果
PHPって一文字一文字打つのか? それともコピペ?
必要な部分はコピペ 必要な部分は自力
JavaやCでいう char hoge+=1; っていう感じのをPHPでやりたいんですが、 どのようにすれば書けば良いんでしょう?
JavaやCでいう char hoge+=1; って書けるのか
一応可能でもCやjavaとは仕様が違うらしいね
633 :
nobodyさん :2009/12/27(日) 23:05:49 ID:LlMGF4Xb
sizeof()って型がいまいちよくわかりません。奴は何者ですか? unsigned longとかいってるHPありますが、引数にint func( unsined long num)なんてあったら引数に渡しても大丈夫なんですか? 今までint func( size_t )こんな関数の引数に渡したことくらいしかないのでわからないんですが
634 :
nobodyさん :2009/12/27(日) 23:06:32 ID:LlMGF4Xb
すいません誤爆しました
JavaやCで char hoge+=1; すると何が起こるの?
お前のchar hoge+=1;で地球がやばい
文字コードによってやり方が変わってきそう
639 :
nobodyさん :2009/12/28(月) 01:21:27 ID:TpCjAyY+
PHPでは、リクエストパラメータに「.」が含まれていると、それを自動的に「_」に変換するそうですが、 これをやめさせることはできますか。
>>639 過去からのいろいろがあって、ドットは変数名にできないから無理だと思うよ
ドットを使わないようにできないの?
今確認したけど変換されないで「.」のままだよ
確かに$_GETのキーとしてセットされた段階では変わってる けど$_SERVER['QUERY_STRING']では勝手に変わる前段階がセットされてるからこれ使って切り分ければいい
644 :
nobodyさん :2009/12/28(月) 04:18:28 ID:TpCjAyY+
>>640-643 結論としては、「できない」ということですね。
残念ですけど、「.」を使わない方法を考えることにします。
ありがとうございました。
645 :
nobodyさん :2009/12/28(月) 07:06:29 ID:361SB18M
flameに飛ばすページで逆アクセスランキング集計のためにログ収集をしたいのですがうまくいきません。
これはどうしたら良いでしょうか?</HEAD>の直下に<script type="text/javascript">〜を書くと表示されなくなります
これをphpによってうまくできる方法はないでしょうか どうぞよろしくお願いします
↓
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=EUC-JP">
<META http-equiv="Content-Style-Type" content="text/css">
<TITLE>pandoravote</TITLE>
</HEAD>
<FRAMESET cols="136,*">
<FRAME name="left" src="./indexb.html">
<FRAME name="bottom2" src="
http://hagehagehage.net/ ">
<script type="text/javascript">
<!--
document.write("<IMG SRC=\"
http://hagehage.net/access.cgi? ");
document.write(document.referrer+"\" border=0 width=1 height=1>");
// -->
</script>
<NOFRAMES>
<BODY>
<P>このページを表示するには、フレームをサポートしているブラウザが必要です。</P>
</BODY>
</NOFRAMES>
</FRAMESET>
</HTML>
マルチ乙
647 :
nobodyさん :2009/12/28(月) 09:16:40 ID:361SB18M
マルチじゃないよ CGIじゃないと無理だと言われたのであっちを打ち切ってこっちに来たんだもん
649 :
nobodyさん :2009/12/28(月) 10:06:51 ID:EdgvHAjX
デバッグについて教えてください。 環境:WinXP + Eclipse + Xampp + cakePHP + XDebug デバッグ実行できるのですが、 ローカル変数の値がすべて<Uninitialized>となっていて中身が見れません。 クラス内変数やスーパーグローバル変数は、値を見ることができます。 ローカル変数のみ、値が見れない状況です。 ネット検索しても、レアな現象なのか解決策が見つかりません。。。
651 :
553 :2009/12/28(月) 10:35:39 ID:???
>>551 すみません、こちらの元から使っているキャリア判定プログラムなどとの
兼ね合いからそのままコードを丸写しで使用することができず
キャリア判定の部分以外をこちらの既存コードに抜粋&貼り付けして
試行錯誤してしますが、いまだ実現できていません。
貼っていただいたコードが「どのような原理」で動作する
ものなのか(キャリア判定部分以外でGET文字列の文字化け解消に必須な項目)の
ヒントをいただけるとありがたいです。
>>652 「携帯サイトのphpの文字化けについて」の質問のどこにアドセンスの要素が?
だってこいつアドスレの住人だし
655 :
553 :2009/12/28(月) 14:39:57 ID:???
>>654 ごめん名前入れなかったが
>>653 は俺だ。
確かにアドセンススレにいるが、この質問とアドセンスは
関係ないだろと言いたかった。
つーかアドスレ以外のスレにもいるんだがなぜアドスレだけ抜き出すんだ?
騙り乙
フォームに誤入力があると指摘コメントを加えて しかもユーザーが既に入力した箇所は残すフォームを 作りたいのですが、既入力を残す為にキャッシュを 使うとコメントを追加できないと思うのですが 既入力を取り込んでフォームを再構成しなければならないのでしょうか?
スレタイ
659 :
nobodyさん :2009/12/28(月) 16:22:03 ID:0eE3RWlX
当方超初心者です。 携帯のチャットのユーザーエージェントを表示させる位置についてですが、 fputs($fp, "$_GET[n]><font color=$fc>$msg</font><br><font size=1>($now)★</font><hr size=1>\n"); 下記コード単体では成功するのですが、★の部分に下記コードを入れるとエラーが出てしまいます。 include_once('Net/UserAgent/Mobile.php'); $agent = Net_UserAgent_Mobile::factory(); //型番の入手 $model = $agent->getModel(); if ($agent->isDoCoMo()) { echo("お使いの機種はDoCoMoの{$model}です。"); } else if ($agent->isVodafone()) { echo("お使いの機種はVodafoneの{$model}です。"); } else if ($agent->isEZweb()) { echo("お使いの機種はEZwebの{$model}です。"); } どうにかして★の部分にユーザーエージェントを表示させたいのです。 よろしくお願い致しますm(_ _)m
文字列から、最後の文字を取り出す方法の定石というかイディオムはありますか。 今は $str[strlen($str)-1] としているのですが、なんかもっといいイディオムがあれば教えてください。
fputs("〜1★〜2"); を fputs("〜1"); ★ fputs("〜2"); になおす
>>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)
>>661 さん
たしかに一から勉強が必要ですね。
>>663 さん
二つに分けて表示するんですね。
こうゆう風にすれば色々と応用がききそうですね。
>>664 さん
感動しました(>ω<。) 完璧にうごきました。
皆様ありがとうございました!
>>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のスレで聞いたほうがいいかと。
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);
//削除マークのない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 );
670 :
551 :2009/12/28(月) 18:45:39 ID:8/lFM/nf
>>553 へ
いまいちなにがやりたいのかわからないな。
なにをしたいの?
おれのソース見てもなにしているかわからなかった?
内部文字コードはutf-8であっている?
あのソースは
php内部文字エンコーディング→header出力→出力バッファ開始
XML宣言→出力処理→UAからキャリアを判定する
だけど、検索フォームを作っているなら掲示板をはろうか?
少しは役立つかも。
後あなたphpの開発経験ある?
671 :
551 :2009/12/28(月) 18:54:41 ID:8/lFM/nf
672 :
668 :2009/12/28(月) 19:31:15 ID:???
>>671 ありがとうございます。
これは一文字一文字手打ちで打ちました;;
こんなサンプルがあったとは・・・
smarty設定はまだしていません;;
673 :
nobodyさん :2009/12/28(月) 19:54:27 ID:US0yP5HE
スーパーグローバル変数を自分で追加することはできますか。
675 :
nobodyさん :2009/12/28(月) 20:02:11 ID:Zm+8rWo0
うひ?
676 :
551 :2009/12/28(月) 20:50:08 ID:8/lFM/nf
しろよ。 動かないのあたりまえだろ? DBの設定は?
677 :
551 :2009/12/28(月) 21:05:58 ID:8/lFM/nf
あれおれ
>>553 といい
>>668 といいなんかつられている?
こいつらもしかしておれをひっかけるために
レスしている?
遊ばれている?
678 :
668 :2009/12/28(月) 22:13:46 ID:???
>>677 そんなことないですぜい。
ただPEARやらなんやら難しすぎて
679 :
nobodyさん :2009/12/29(火) 00:26:53 ID:OOP15gnW
uploaderでswfなどflashをアップロードするときにサムネイル画像を作成したいのですが どうしたらいいでしょうか? php自体で其れが出来ますでしょうか?
CakePHPは卑怯
IDがOOP
Firefoxが目指してるOut Of Processの事か
685 :
nobodyさん :2009/12/29(火) 05:01:42 ID:85TzBbP8
【OS名】MacOSX 10.5.8 【PHPのバージョン】php5.25 【連携ソフトウェア】MAMP 1.7.1 (Apache 2.0.59 / MySQL 5.0.41) 【質問内容】 PHPでMySQLデータベースのレコード更新が失敗します。 以下記述でmysql_query送信しているのですが間違っていますか? (SQLのスレは活発じゃないみたいなのでこちらへ書きました) UPDATE table SET 'count'='3' WHERE 'id'='1' 以下 mysql_error() の出力結果 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''count'='3' WHERE 'id'='1'' at line 1
`
UPDATE `table` SET 'count'=3 WHERE 'id'=1 intは`いらない あとPHPエラーコード見るよりもコンソールで出るエラー見た方がわかりやすいよ
688 :
685 :2009/12/29(火) 05:15:45 ID:85TzBbP8
ヴァー。` と ' は違うんですね。 やっぱり単純なミスだったか。 動きました、有難うございました。
689 :
679 :2009/12/29(火) 06:02:46 ID:???
690 :
680 :2009/12/29(火) 06:32:23 ID:W5Cv9ckC
http://dreamer-site.net/modules/xpwiki/?Fedora%20Core%206%20ffmpeg#kdc7ebf1 このサイトに行き着いたのですが、configureでエラーが出てしまいました
どこがおかしいのでしょうか、どうぞよろしくお願いしますm(_ _)m
1
[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
691 :
680 :2009/12/29(火) 06:33:12 ID:W5Cv9ckC
2 checking for PHP prefix... /usr checking for PHP includes... -I/usr/include/php -I/usr/include/php/main -I/usr/include/php/TSRM -I/usr/include/php/Zend -I/usr/include/php/ext -I/usr/include/php/ext/date/lib checking for PHP extension directory... /usr/lib64/php/modules checking for PHP installed headers prefix... /usr/include/php checking if debug is enabled... no checking if zts is enabled... no checking for re2c... re2c checking for re2c version... invalid configure: WARNING: You will need re2c 0.13.4 or later if you want to regenerate PHP parsers. checking for gawk... gawk checking for ffmpeg support... yes, shared checking whether to force gd support in ffmpeg-php... no checking for ffmpeg headers... configure: error: ffmpeg headers not found. Make sure ffmpeg is compiled as shared libraries using the --enable-shared option ここまで
692 :
nobodyさん :2009/12/29(火) 09:14:45 ID:1YmGiMBB
a.txt{ あいうえおかきくけこあいうえお↓ さしすせそたちつてとさしすせそ } というファイルから、「す」と「つ」の間の文字を取得したいと思っています。 そこで、関数を調べて以下のプログラムを考えたのですが、手順として問題ないでしょうか? もし便利な関数があれば教えて頂きたく。 特に「fgets」の使い方がよくわかりません。よろしくお願いします。 1)ファイルのポインタを取得する aFile = fopen( $a.txt, r); 2)ファイルを1行取得する While( $LineFile = fgets($aFile) ){ 3)ファイル1行の中に”す”と”つ”があるかサーチ $IdxSta = strpos($LineFile , "す") $IdxEnd = strpos($LineFile , "つ") 4)"す"と"つ"が両方あり、”す”より”つ”の位置の方があと if($IdxSta + 1 < $IdxEnd - 1 ){ 5)"す"と"つ"の間の文字だけを抜き出す。 $output = mb_substr($LineFile, $IdxSta+1, $IdxEnd-1) } }
大体いいんじゃない? 正規表現使うという手もあるけど
694 :
553 :2009/12/29(火) 10:54:31 ID:ObfZ+/cW
>>551 釣りじゃないですよ、アドバイスありがたいです。
やりたいことは au端末からGETで日本語を送ると、
送信データ、受け取りデータともに文字化けしてしまうので
これを防ぎたい。ってだけです。
ページ(内部文字コード)はすべてutf-8です。
PHP開発経験はありません。簡単なことはわかるのですが、
バッファ云々が?な感じですのでマニュアルなど調べながら
やっています。
コード貼っていただきながらその後あまり時間が取れなかったので、
いまから再挑戦してみます!
>>690 ./configure
を
./configure --enable-shared --enable-swscale --enable-gpl
で実行してみたらどうじゃろ
>>694 $_GET["query"] = mb_convert_encoding($_GET["query"],'UTF-8','UTF-8,SJIS,EUC-JP');
っていうのを先頭に入れてみたらどうかの( ・ω・)
>>690 そもそもそこの前半のffmpeg自体は--enable-shared付きでインストールできたの?
699 :
694 :2009/12/29(火) 12:40:47 ID:ObfZ+/cW
>>695 ありがとうございます。記事読みました。自動変換はアテにならないってことですね。。
いろいろテストした結果、auのみ強制的にshift_jisで送っている(受け取っている)ことは間違いないようです。
ほかにエラーはないので、手動でauのみ指定してやればいいのですが、それがうまくいかない感じなのです。
>>697 ありがとうございます。そちらは指定済みです。mb_detect_encodingでutf-8じゃないときだけconvertしていなのですが、
>>695 の記事ではauto detectionもアテにならないようなので、すべて強制的にutf-8にconvertしてみましたがダメでした。
---
結局、
>>551 さんのutf-8で記述しておいて出力だけshift_jisがよさような気がしていますが、
私の環境ではうまく出力してくれないので、いろいろ試しています。
700 :
694 :2009/12/29(火) 13:08:00 ID:ObfZ+/cW
>>551 さんの方法での「出力だけshift_jis」は成功しました。
が、文字化けは直りません。ちょっと自分でもわからなくなってきてしまいましたので
問題点を整理しました。長文で申し訳ないですがどなたかお力添えを。。
<実現したいこと>
・「GETのquery stringをUTF-8で送りたい(受け取りたい)」
<前提>
・PHP Version 4.4.9
・DBは一切使用していません
・携帯サイトである
・uaにより3キャリア用+PC用に振り分けているが、変えているのはdtdと
docomoのみContent-typeを変えているだけで「ページやコードはすべてutf-8」
・「GETのデータはurlencodeしている」
<試したこと>
・GETのqueryをutf-8にmb_convertしてもダメ
・ob_start→ob_get_contents→ob_end_cleanと出力だけをshift_jisに変えてもダメ
・受け取り時にurldecodeするなどしてみたがダメ
・queryを表示する際mb_convert_kanaで全角カナを半角カナに変えているのをやめたがダメ
例によってマトはずれなこともやっているかもしれませんが。。。
AUはGETが必ずsjisになってしまうらしいからのー。POSTならいいらしいけど。
>>700 >>ページやコードはすべてutf-8
違うね。もう一度確認してみな
703 :
694 :2009/12/29(火) 15:47:23 ID:ObfZ+/cW
>>551 さんのコード
ob_start(); を ob_start("mb_output_handler");
としたら文字化け解消しました。
>>551 さんをはじめ、アドバイスくださった方々本当に
ありがとうございました。年内に解決できて非常に助かりました。
704 :
551 :2009/12/29(火) 16:14:43 ID:+XZPband
今見た。 よかったな。解決できて。 今日さ、大掃除で時間がなくて。 ごめんね。
705 :
nobodyさん :2009/12/29(火) 16:50:39 ID:VOALtVVE
PHPでEthnaとZendを使ってるんですけど、 例外処理がよくわかりません。 Zend DB側での例外発生時(SQLエラーとか)でも 呼び出し元のほうをtry,catchして処理するのが普通? 常駐先のPHPプログラムは例外をthrowだけして処理してる 部分が見あたらないので、そんな処理でいいのか迷ってます。 アドバイスお願いします。php5.2.xです。
706 :
680 :2009/12/29(火) 20:46:01 ID:W5Cv9ckC
>>696 レスありがとうございます!
しかし結果は同じでした・・
1
[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
707 :
680 :2009/12/29(火) 20:49:17 ID:W5Cv9ckC
2 checking for PHP prefix... /usr checking for PHP includes... -I/usr/include/php -I/usr/include/php/main -I/usr/include/php/TSRM -I/usr/include/php/Zend -I/usr/include/php/ext -I/usr/include/php/ext/date/lib checking for PHP extension directory... /usr/lib64/php/modules checking for PHP installed headers prefix... /usr/include/php checking if debug is enabled... no checking if zts is enabled... no checking for re2c... re2c checking for re2c version... invalid configure: WARNING: You will need re2c 0.13.4 or later if you want to regenerate PHP parsers. checking for gawk... gawk checking for ffmpeg support... yes, shared checking whether to force gd support in ffmpeg-php... no checking for ffmpeg headers... configure: error: ffmpeg headers not found. Make sure ffmpeg is compiled as shared libraries using the --enable-shared option 引き続き皆様のお力をお借りしたいです どうぞよろしくお願いしますm(_ _)m
>>707 勘違いしてた(・ω・)
./configure --enable-shared
は、ffmpeg-phpじゃなくて、ffmpeg本体のconfigure時にやるですよ
710 :
nobodyさん :2009/12/29(火) 23:09:51 ID:Vq+TKsF0
LAMP環境で、DBのタイムアウトを過ぎてもブタウザに操作が返ってこないのを何とかしたいんですが、 どうすればいいでしょうか?
そんなにブタを毛嫌いしなくても
712 :
nobodyさん :2009/12/29(火) 23:24:00 ID:pB5Ltbyz
php.iniのmbstring.internal_encodingがEUC-JPになっていたので ini_set('mbstring.internal_encoding', 'UTF-8'); としたのですが、フォーム処理時にEUCでデータが送信されているようで、 文字化けを起こしてしまいました。 ini_setで指定していてもphp.iniに設定されている文字コードの方が優先されるのでしょうか?
mbstring.internal_encodingとかどうでもいいじゃん
PHPなんてどうでもいいじゃん
送信側の問題?受信側の問題?
716 :
nobodyさん :2009/12/29(火) 23:45:40 ID:+XZPband
まずはphpinfo()で確認。
718 :
nobodyさん :2009/12/30(水) 00:09:26 ID:skGmLU+A
>>716 えーと、質問の仕方が悪かったのかな。
サーバ側でDBにクエリーなげたまま、タイムアウトしないので、
ブラウザがレスポンス待ち状況といった感じです。
一応、my.iniファイルで
innodb_rollback_on_timeout = on
と設定してるのですが、機能してない感じです@@
719 :
718 :2009/12/30(水) 00:10:11 ID:skGmLU+A
あ、あと my.iniで innodb_lock_wait_timeout = 10 も設定してます。
720 :
nobodyさん :2009/12/30(水) 00:16:48 ID:a1sThYv5
MySQLのDBにXMLをキャッシュするためのライブラリはないでしょうか?
721 :
718 :2009/12/30(水) 01:17:55 ID:skGmLU+A
自己解決しました。 MySQLって、ロックのタイムアウトが設定できないみたいですね。 バカみたいに永遠に待ち続けるみたいです。 だったらinnodb_lock_wait_timeout なんていう紛らわしいオプションは何なんだろ。 フリーだけあって、クソDBだこりゃw
PHPからDBにアクセスしてるんだし PHPのタイムアウトが返ってくるでしょ
723 :
nobodyさん :2009/12/30(水) 08:48:55 ID:5adIyASg
質問があります。 Web上のhtmlファイルをfgets()関数を用いて順次行を読み取りたいと思うのですが、 $FileHtml = "○×.html"; for(){ $LineHtml = fgets($FileHtml) } とすれば、$FileHtmlが2行目以降のポインタを次々取得し、 2行目以降のソースも取得できるのでしょうか?
725 :
723 :2009/12/30(水) 10:09:12 ID:5adIyASg
$AddressHtml = "○×.html"; $FileHtml = fopen($AddressHtml); $LineHtml1 = fgets($FileHtml) $LineHtml2 = fgets($FileHtml) ごめんなさい。 htmlも fopen()しないとだめですよね。 for文等は省略していましたが、解りにくいので書き方を変えました。 ファイルの2行目のポインタを得たいのですが、その方法が良くわかりません。 上記構文ではうまくいかないように思うのですが・・・
726 :
723 :2009/12/30(水) 10:13:46 ID:5adIyASg
っと、下に例が載ってましたね。 fopen(,r)が抜けていましたが。 それを除けば725で正常に取得できると思って良い・・・のかな。
君がそれでいいのなら
fileでいいじゃん
730 :
723 :2009/12/30(水) 12:44:43 ID:5adIyASg
Zendを導入するのに時間がかかってしまいました。
多いものだと2万行くらいのHtmlファイルを読み込む可能性があるため、
fileではメモリが怖いなぁと思って、fgetsを使おうと思ったのですが・・・
しかし、fileだと問題無く動くのですが、思い通り動いていません。
724さんのを参考にというかアドレスをhtmlに書き変えただけでやってみましたが、
String値しか取得できていませんでした。
あと、どこを直せばいいのでしょうか?
<?php
$handle = @fopen("
http:// ○×.html", "r");
if ($handle) {
while (!feof($handle)) {
$buffer = fgets($handle, 4096);
echo $buffer;
}
fclose($handle);
}
?>
試しに730のソースのURLだけをこの板のアドレスにしたら、 全く同じページの出力が出来た。 ちゃんとそのソースは動くと思うけど
732 :
nobodyさん :2009/12/30(水) 14:12:15 ID:nBvXEJIC
初心者です。PHPのエラーについて質問がございます。
環境はwindows xp、自宅サーバー(apache Version 2.053)、PHP Version 4.3.11
レッツPHPさんのチャットスクリプト
http://php.s3.to/chat/ch.php.txt (ソース)
を自宅サーバーで公開しようとしたところ、下記のようなエラーが出てしまいました。
自宅サーバーを構築する前に、レンタルサーバーでテストした際には問題なく実行してくれました。
Notice: Use of undefined constant n - assumed 'n' in C:\www\saba\cf\chatroom.php on line 13
Notice: Use of undefined constant c - assumed 'c' in C:\www\saba\cf\chatroom.php on line 14
Notice: Use of undefined constant l - assumed 'l' in C:\www\saba\cf\chatroom.php on line 22
.
.
.
なぜ、テストのときはちゃんとできたのに、できなくなったのでしょうか。。
どのような事が考えられますでしょうか・・
よろしくお願い致しますm(_ _)m
そういう配布してるスクリプトって適度に欠陥が多い事があるからねぇ ログイン関係で実は致命的なセキュリティホールがあるなんてざらだし。 Use of undefined constantはクオート付けろってエラー $_GET[abc] と $_GET['abc'] はほぼ同じ動きをするけど、セキュリティ的に非常に甘い。時に致命的なロジックエラーになる可能性が高い。 自鯖ならphp.iniの中から error_reporting = どうたらこうたら って項目を見つけて error_reporting = E_ALL & ~E_NOTICE に書換える
まぁ、私なら配布されてるソースコードそのものをクオート付きに書換えるけど
>>セキュリティ的に非常に甘い なぜ?
セキュリティじゃなくてロジック的に甘いでした。 $array['abc'] = '123'; echo $array[abc]; // 123 define('abc', 'def'); echo $array[abc]; // NULLなので表示されない まぁ連想配列でクオートなしってのは推奨されてない書き方なんで止めるべき
>>733 さん
ありがとうございます。
error_reporting = E_ALL & ~E_NOTICEに書き換えようとした所、
もう既にこのような設定になっていました。
>>734 さん
おっしゃる通り、クオート付きコードに書き換えようと調べてみましたが、
無知な初心者がすぐにできるような事ではなく、無理でした。
関係ないかもしれませんがphp.iniのmagic_quotes_gpc = On をOffにしてみましたがやっぱりダメでした。
年内にはできるようにしたかったのですが無理そうです。。
ありがとうございました。。
$_GET[n] を $_GET['n'] に書き換えるだけなんだが。
>>730 String値しか取得できていませんでした っていうのはどういう意味かの(・ω・)
かわいいの(・ω・)
毎度、申し訳ございません。。
$_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
>>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してれば出ないはずなんだけどね。
実はxamppだからphp.iniがたくさんあるとか? プログラムの一番最初に error_reporting(E_ALL ^ E_NOTICE); を追加するって技もあるんだけど、こういうのだと難しそうだしなぁ。
なんでxamppだとphp.iniがたくさんあんの?
745 :
nobodyさん :2009/12/30(水) 22:41:21 ID:+olHzS1B
つーかxamppつかわないでみたら? 後xamppもphp.iniは一個だけでしょう?
phpフォルダの中にphp.iniとphp5.iniとphp4フォルダがあって、 さらにphp4の下にphp.iniとphp4.iniがあるっていう構造だったり。 でも変更が必要なのはapache/bin/php.iniだという、 初心者は確実に勘違いするような感じだったりする。
747 :
nobodyさん :2009/12/30(水) 23:27:25 ID:AOSiAt9q
3147483647くらいのでかめの数値を(int)すると負の値になるのですが これは一体どういうことです? $a = 3147483647; echo (int)$a; // -1147483649
仕様はご存知かな?
例の彼だろ。さわるなよ
751 :
680 :2009/12/31(木) 05:48:39 ID:a+pevmsQ
>>709 お礼遅くなりましたが有難うございます
うまくできました
感謝です
2009年まとめPHPスレから巣立った先輩 正規表現君 OCN君 ちんぴら君
753 :
nobodyさん :2009/12/31(木) 11:53:17 ID:F0ShAh3c
集合知をしり、ユーザーさんが商品を検索した際に お薦めの商品(アマゾンみたいなぁ)を表示させたいのですが 参考になるサイトとかライブラリがあれば教えてください
>>753 IEで2ちゃんのスレを片っ端から見てみろ
755 :
nobodyさん :2009/12/31(木) 12:12:07 ID:F0ShAh3c
>>ないよ!
756 :
nobodyさん :2009/12/31(木) 12:17:38 ID:F0ShAh3c
宣伝乙
PHP5.3以前の環境でstr_getcsvと同等のロジックを作りたいのですが 「PHP CSV」と検索してもファイルから前提のfgetcsvでの利用方法ばかりで 文字列からの読み込みの情報が見あたらないです。 CSVデータはファイルから読み込むのではなくて変数内の文字列から処理させる良い方法は無いでしょうか? 自分で考えた無理やる方法としては 文字列の内容を作業ファイルを作ってファイル書き込みしてそれをfopenでオープンしてfgetcsvで読み込む方法。 ただ関数でも作って何とかなるなら参考になるサイトとか無いですか?もしくは関数を書いてもらえれば助かります。
まずスレタイを読んでもらえれば助かります。
phpができれば就職できますか?
761 :
nobodyさん :2009/12/31(木) 12:56:37 ID:oi0jVub9
763 :
758 :2009/12/31(木) 13:15:50 ID:AqAvYeuS
>>759 ごめん。ID出し忘れた。
でファイルに書き込むのではなくてメモリ上に書き込んでの方法を今試しているのですが
$data_array = array("111,222,333,444","あいうえお,かきくけこ,さしすせそ");
$data = join("\n",$data_array);
$fp = fopen('php://memory', 'r+');
fwrite($fp, $data);
rewind($fp);
while ($value = fgetcsv ($fp, 1000, ",")) {
print_r($value);
}
fclose($fp);
こんな感じのサンプルができた。
これよりスマートな実現方法ってあるかな?
言葉に気をつけろキチガイ ど偉そうに質問していいスレ池バカ
767 :
758 :2009/12/31(木) 17:21:43 ID:AqAvYeuS
>>765 何処に問題ありますか?
>>766 ありがとうございます。
こんなそのままのソースがあるとは思いませんでした。
ただ、一つ気になるのが「License: Unknown」くらいでしょう。
今書いているソース商用にも使うかも知れないので下手(GPL)なライセンスのソースを
組み込むわけにも行かないのでこのソースを読んで自分でアルゴリズム構築し直して
ソースを書き起こしなおした方がいいかも知れませんね。
とりあえず現状ではPHP5.3.0以上ではstr_getcsvで
5.1.0から5.2.xでは自分で書いた
>>763 の方式で(php://memoryが5.1.0からのサポートなので)
でそれ以前では
>>766 さんが出してくれたソースをベースにって事になりそうです。
回答者の態度も大概ひどいことw 回答者だからといって調子に乗るな的なことをテンプレいれてもいいのでは。
770 :
758 :2009/12/31(木) 18:35:18 ID:AqAvYeuS
ちょっと気になったけど
>>766 で書いてくれたURL先のソース使うのと
>>763 での方式で「'php://memory」ではなくて実際にファイルに一時的に書き出す方式はどっちがはやいのかな?
検証してみた方がいいかな。
ステップ数だけはファイルに一時的に書き出してfgetcsvで拾ってくる方式なのは確かだけど
771 :
nobodyさん :2009/12/31(木) 18:47:39 ID:Y4/O1MTA
お前らもめるなよ。 だいたいなんでphpとかやっているんだよ。 大晦日に
>>768 態度が悪いのは回答者ではなくて
回答せずにヤジだけ飛ばすバカ。
どうせこういうヤジだけの奴はPHPすらろくにできないのでしょうね。
どうしてそんなPHPできない奴が、このスレにいるのかは疑問だけどね。
ごめ、俺ここ2日程php置いといてJavaScriptいぢってる。
777 :
nobodyさん :2010/01/01(金) 00:22:34 ID:adVuwjbe
おまえらあけおめ 去年よりもphpができるようになりたいな。 phpの仕事がへりませんように
心配しなくて良い、増やしてあげるよ サービス残業を
サビ残くらいでガタガタ言うな
780 :
679 :2010/01/01(金) 05:42:56 ID:Yt86zcJv
ffmpegでゲームflashから画像抽出は出来ないんでしょうか? 動画なら抽出出来るのですが、ゲームだと出来ません あと、抽出した画像のサイズを例えば、300×300以内にサムネイルって出来ますでしょうか? どうぞよろしくお願いします<m(__)m>
あけましておめでとう
783 :
679 :2010/01/01(金) 11:26:51 ID:Yt86zcJv
784 :
nobodyさん :2010/01/01(金) 16:53:29 ID:A1Hlzrb8
日本人で、これがなくちゃ作業できないってぐらいのPHPでつくられた オープンソースある?
日本語で
786 :
nobodyさん :2010/01/01(金) 18:27:57 ID:A1Hlzrb8
>>785 Smarty,MySQL,ZF,CakePHP,wordpressレベルのオープンソース作った日本人いる?
いるよ
いらない
>>788 日本語でおっけ〜m9(^Д^)プギャー
MySQL??
たとえば日本人もFirefoxの開発に携わってる
日本人が作ったやつだからな
オープンソースなのに日本人限定なんておかしな話だな
794 :
nobodyさん :2010/01/01(金) 19:37:23 ID:z0QJlOXo
ブラウザに出力するソースコード(PHP,HTML)の色分けを簡単に行ってくれるライブラリってありますか? PEARとかにありそうなんだけど、みつかりません。探し方が悪い? function とか class とか $xxx とかコメント(/*〜*/)に自動的に<span style="red">とか付けてくれるライブラリです。
JavaScriptで動く物ならsyntaxhighlighterとかあるけどPHPは有ったかな
796 :
nobodyさん :2010/01/01(金) 19:43:55 ID:A1Hlzrb8
ブログみてるとすげー難しいこと書いてる人いるじゃん そいつら書くことは立派だが、なんかなぁ〜 あ、おれはもっとカスだけど
highlight_file() highlight_string() もしくは、拡張子をphpsにして表示。
798 :
nobodyさん :2010/01/01(金) 19:45:36 ID:A1Hlzrb8
PEARのText_Highlighter
- ファイル名.phps にしてアクセスすると ソースが色づけされて表示される. - 方法 httpd.conf に以下を記述 AddType application/x-httpd-php-source .phps
おまえらアケオメ 今年もぐだぐだ議論しような
801 :
nobodyさん :2010/01/01(金) 20:08:16 ID:z0QJlOXo
802 :
nobodyさん :2010/01/01(金) 21:00:26 ID:hR+m4MNr
あけましておめでとうございます test.php?hoge=1&test=2にアクセスするとYESと表示されるんですけど test.php?hoge=1 にアクセスした時に、OKと表示させたいので下記のようなコードを作り 希望通りにはなったのですが・・・・ testは2だけではなく 2,3,4,5,・・・・20まで続いてます。 これをif文でやるとどれだけ手間がかかることやら、、どなたか良い方法教えてください if($_GET["hoge"] ==1 && $_GET["test"] == 2){ echo "yes"; }elseif($_GET["hoge"] == 1 && $_GET["test"] == ""){ echo "ok"; }
>>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って結構あるね。
>>802 設計がおかしいです
もうちょっと具体的にどういうことをするのかを書けば適切なアドバイスができます
>>802 俺だったら
switch($_GET["hoge"]){
case 1:
switch($_GET["test"]){
case 2:
echo "yes";
break;
default:
echo "on";
}
break;
}
って書くかな。
そっちの方がこの手の物だソースが読みやすくもなる。
PHPで使われてる正規表現エンジン"鬼車"は日本人の開発だったかな
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];
}
} 最後抜けてた。試してないからこんな感じということで。
>switch-case文のネストとか非常に読みにくくなると思うのは俺だけ? インデントしっかりやっておけばそうでもないよ。 switch使い慣れてないとbreak;付け忘れる人がいるけど どっちにしても >testは2だけではなく 2,3,4,5,・・・・20まで続いてます。 って場合どんどんと比較パターンが多くなってくるとifだけで表現させていくとswitchより読みにくくなる。
811 :
nobodyさん :2010/01/01(金) 22:26:03 ID:A1Hlzrb8
>>test.php?hoge=1&test=2 YES >>test.php?hoge=1 OK >>testは2だけではなく 2,3,4,5,・・・・20まで続く 配列に3で表示したい内容を代入 $array[3] = 'こんにちは'; if($_GET["hoge"] == 1) { $num = $_GET["test"]; echo $array[$num]; }
>>811 それだと
>test.php?hoge=1 OK
の処理を追加しないとダメだよ。
813 :
nobodyさん :2010/01/01(金) 22:28:44 ID:nSuyooiG
PHPのマニュアルのミラー多すぎない? 関数名で検索すると、同じ内容のページがぎょうさん
814 :
nobodyさん :2010/01/01(金) 22:37:21 ID:hR+m4MNr
>>805 ありがとうございます
うまくできました!
他の方ももいろいろありがとうございました。
815 :
812 :2010/01/01(金) 22:39:34 ID:???
>>811 俺もその配列を使う方法はすぐに考えついて
しかもifすら使わずに二次元配列を使う方法を考えついた。
でも
>test.php?hoge=1 OK
の場合の事を考えるとめんどくさくてカキコするのやめた。
あえて考えて書くと
$string[1] = array(-1=>"on",2=>"yes");
if(strcmp($_GET["test"],"")==0){
$test = -1;
}else{
$test = $_GET["test"];
}
echo $string[$_GET["hoge"]][$test];
こんな感じか?
>>813 それわかる。
関数のいろいろなサンプル探しているのにマニュアルのミラーだからサンプルもみんな同じって事あるよ。
817 :
nobodyさん :2010/01/01(金) 22:41:18 ID:A1Hlzrb8
>>812 $_GET['test'] == ''なら echo 'ok';
あるなら811ってこと?
818 :
nobodyさん :2010/01/01(金) 22:44:57 ID:A1Hlzrb8
>>812 $_GET['test'] が空(数値でない)なら echo 'ok';
あるなら811ってこと?
カンマ抜けちゃった
820 :
nobodyさん :2010/01/01(金) 23:03:51 ID:7KQbSJC0
任意のウェブサイトの要約を自動的に生成するプログラムや参考になるサイトを知りませんか? 検索エンジンのスニペットのような感じをイメージしています。 meta descriptionから要約を作成しようとしたのですが、記述していないサイトもあるので不十分でした。
Googleでそのウェブサイトを検索した結果から抜き出す
822 :
nobodyさん :2010/01/02(土) 00:44:45 ID:EfcqZQnm
>>821 ありがとうございます。でもインデックスされていないサイトには使えないので、別の方法がありがたいです。
404などの場合は仕方ないですが・・
824 :
nobodyさん :2010/01/02(土) 07:05:00 ID:b9SN1cw1
echo '処理1'; echo '処理2'; という順番で処理が書かれているときに 処理1が重いので、処理2から先に実行してみたいのですが どのようにすればよいでしょうかアドバイスよろしくおねがいします
echo '処理2'; echo '処理1';
826 :
nobodyさん :2010/01/02(土) 07:31:18 ID:b9SN1cw1
>>825 すいません注釈で書くべきだったですね。
>という順番で処理が書かれているとき
限定です。
>>813 アフィ厨が多いから仕方が無い
てっとりばやく楽に検索に載るからアフィ厨載ってくる
>>825 PHPはマルチスレッド機能はないらしいのだが裏技を使えば似たようなことは可能
PHP マルチスレッドでぐぐれば結構ヒント出てくると思う
マルチスレッドでやれば処理1と2が順次ではなく並列で処理することが可能
829 :
828 :2010/01/02(土) 11:51:10 ID:???
830 :
820 :2010/01/02(土) 12:16:56 ID:EfcqZQnm
>>823 論文を読んで技術を自力でPHPに実装する実力ありません(泣)
当該論文からサマライズプログラム作れませんか?
じゃ実力つけれ
832 :
nobodyさん :2010/01/02(土) 15:02:40 ID:OvKDiFnJ
質問です。 一見C++では怒られそうなデータ配列ですが、 PHPでは下のような指定も可能なのでしょうか? $DATA['OWN'] = "ME"; $DATA[$IDX]['YY'] = 10; $DATA[$IDX]['MM'] = 1; $DATA[$IDX]['DD'] = 2;
833 :
nobodyさん :2010/01/02(土) 15:30:54 ID:5+ri1/AE
新年あけましておめでとうございます。 フリースクロプトを用いて、実行すると、 Parse error: syntax error, unexpected '[', expecting ']' in C:\www\jisaba\cf\chat01.php on line 61 エラーが出てしまいます。 おそらく、61行目に'['と']'を付けろと言われてると思いますが、どこに追加すればいいのでしょうか。。 61行目は $ad1 = $ad_list1[$ad_key1[0]]; となっております。 よろしくお願い致します。
>>833 unexpected '[', - なんか変なのきた
expecting ']' - こういうのが来る筈なのに
と分けて読む。
$ad_key1[0]
^ これが変なものと思われてる。
>>832 >一見C++では怒られそうなデータ配列ですが、
>PHPでは下のような指定も可能なのでしょうか?
C言語系だと構造体があるからそっちで実現した方がいいからね。
PHPでは構造体が使えないからそうやるしかないよね。
>>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ファイルの存在や書き方は問題ないと思われます。)
よろしくお願い致します。
>>836 ヒアドキュメントの中にコードは書けないよ
あとスレタイも読んで
838 :
nobodyさん :2010/01/02(土) 18:33:54 ID:5+ri1/AE
839 :
nobodyさん :2010/01/02(土) 21:06:55 ID:s3eVgMyd
841 :
835 :2010/01/02(土) 22:43:49 ID:???
とりあえずム板行くよろし。
844 :
832 :2010/01/02(土) 23:19:00 ID:OvKDiFnJ
回答ありがとうございます。 無理だと思ったら可能なのかー。 PHPなんでもあれですね。
845 :
nobodyさん :2010/01/03(日) 01:37:05 ID:leVs71yL
HTMLを解析して、 aタグのhrefやimgタグのsrcなどをすべて絶対URLに直したいです。 baseタグなども考慮して・・・ なにかよいライブラリなどありますでしょうか?
フィッシング用にそういうスクリプト書いてるけど、@importやcss中のURIや JavaScriptのXMLHttpRequest.open()なんかにも対応すると、結構大変。 ほぼ完璧なものがあったら、俺も知りたい。
CSVをアップロードして、そのデータ内容を表示したりグラフ化する為に便利なサンプルはありますでしょうか?
ないです
上の質問は解決しました。 次の質問として、ワンクォーテーション内で囲まれたファイル名を日付にしたいのですが、不可能です。 どのような処理にしたら良いでしょうか。
スレタイ読まない = ルール守れない
上の質問は解決しました。 次の質問として、ワンクォーテーション内で囲まれたファイル名を日付にしたいのですが、不可能です。 どのような処理にしたら良いでしょうか。
すきなように処理してください
できるかできないか分かるならライブラリがあるかどうかもわかるよな
856 :
nobodyさん :2010/01/03(日) 22:32:34 ID:vxQEL+DQ
配列Aと配列Bを和集合と差集合と積集合の結果を取り出そうと思ってます。 和集合はarray_mergeとarray_uniqueで出来るからいいとして、 差集合と積集合を簡単に取得する方法ってありませんか? ループを使えば簡単に出来るけど、 もしかしたら既存の関数で出来たりしませんか?
>>857 おお、ありましたか。
ありがとうございます。
859 :
sexyphp :2010/01/04(月) 14:44:15 ID:dZXnpRZU
ZFをつかってWebアプリを作成した場合、 第三者に配布を行う時にZFライブラリをWebアプリと同じフォルダ に収めたいと思っています。 こういうのは可能なんですか
まずライセンスを確認してから質問してるのかね君
861 :
sexyphp :2010/01/04(月) 14:51:27 ID:dZXnpRZU
>>860 BSDライセンスって何なの。
俺のソースコードすべてにいちいちコメントアウトしてライセンス協定
書くってことなんですかぁ?
863 :
nobodyさん :2010/01/04(月) 15:37:25 ID:jOHjv6Af
新年あけましておめでとうございます。
当方超初心者です。
ただいまこちらの画像アップローダを試しとして設置中です。
h
ttp://www.keitai-site.net/php/upbbsi_php/ 投稿しようすると、
Fatal error: Call to undefined function mb_convert_kana() in C:\www\jisaba\upbbsi.php on line 244
とエラーがでてしまいます。
extension=php_mbstring.dllのコメントアウトを外して
再起動しましたが、同じエラーがでてしまいます。
(244行目)$str = mb_convert_kana($str,"KV","SJIS"); //半角カナ変換
のSJISをUTF-8に変更しても同じエラー・・
このようなエラーが出る場合、他に原因はあるのでしょうか・・?
よろしくお願い致しますm(_ _)m
読み込んでいるphp.iniが違うんでね? phpinfo関数で、mbstringの箇所がどうなっているか、php.iniの場所はどうなっているか、など確認してみては
>>863 半角カナと全角カナを変換するだけの関数だから無くても大した問題はない
あとスクリプトにprint_r(get_defined_functions());を書いたら使える関数の一覧を見られる
>>863 超初心者はまずHello worldからやれよ
867 :
nobodyさん :2010/01/04(月) 16:24:38 ID:jOHjv6Af
みなさんありがとうございました。
色々やったけど、結局
>>865 さんの言うようにその行を無効としました。
そしたら先ほどのエラーは消えたのですが、投稿すると、
画面が真っ白になってしまいました。。
エラーを見たくて、
display_errors = Off←Onにしてもなにも表示されません・・
やっぱりなかなかうまくいかないものですね。。
とりあえず、“コメントアウトを外して再起動”ができてないんだよ。 iniファイルが違うか、再起動ができてないか、コメントアウトが外れてないか、dllが存在しないか どれかはわからんが
>>868 さん
コメントアウトを外して再起動はしております。
ご期待に添えなくて申し訳ありません。
あきらめます。。
いやだからやったつもりだけどできてないから関数が無いって言われるんだろ エラーログみるとかしなさいよ。あとまずは<?php phpinfo();?> これだけのphp作って実行
>>867 エラーによっては画面に何も表示出来ないことがある
echoしてなかったり変なヘッダでブラウザが解釈出来なかったり色々
>>869 お前の再起動は間違ってるって言ってるんじゃなくて、
その下に書いてあることをやれと言ってるんだと思うぞ868は
>>870 最後の?>は本当はいらないんだよ
<?php phpinfo
セミコロンもいらないこれで動く
括弧はどうしたw
infoだけでも動く
PHPは関数の括弧も省略できます
Google見たらリンゴ落ちてきた
878 :
nobodyさん :2010/01/04(月) 22:14:45 ID:l0tw/Bkx
掲示板に書き込んだユーザに自動でパスワードを生成したいんでうすが $passwd = crypt(""); で問題ないでしょうか?
質問です round関数使うと 例えば round(1.12, 1)は1.1 round(1.16, 1)は1.2と出力されます そこでround(1.01,1)とやると1.0と出てきて欲しいんですが、1だけです。 何か方法はありませんか? roundに拘る必要はないのですが、roundくらいしか思いつかなかったので・・・ お願いします
round(1.01,2)
>>881 # sageちゃいかんよ
それはそうと echo sprintf('%01.1f', round(1.01, 1)); でどうだろう
1 = 1.0だろ間違ってない
885 :
881 :2010/01/05(火) 02:14:39 ID:???
roundの結果を配列に格納させたいので、 sprintfとはちょっと違うのですが、何かないですかね?
あ、なんでもないです^^; できそうな気がします
できました
ありがとうございました
>>885 のレスを消したい・・・^^;
888 :
nobodyさん :2010/01/05(火) 04:12:31 ID:SpHbsOSt
$_FILES['upfile']['size'] でゲットしたファイルサイズはクライアント側で変更可能ですか? アップロードされたテンポラリファイルをfilesize()に通した方がいいのでしょうか?よろしくお願いします
889 :
nobodyさん :2010/01/05(火) 06:16:00 ID:SpHbsOSt
自己解決しました。 調べてみたら、ちゃんと一時保存されたファイルからサイズを調べてくれてるようでした。
どうでもいいけど、$_FILESはよろしくないね
なんで?wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
連番画像の入ったzipファイルの中身をサムネイル表示するスクリプトを作りたいのですが、 File/Archive.phpなどを用いてzipを解凍して中身を別個ディレクトリに保存し、 そのディレクトリの中身を表示する以外に方法はありますか? (解凍した後のファイルを用意しなくても、毎回直接(?)zipの中身を読み込んでいく、など) 解凍の仕組みがよくわかってないので、的外れなこといってたらすみません
マルチ乙
質問者はまず
>>1 を良く読むこと(必須!)
過去スレ、関連スレ、FAQなどは
>>2-10 辺り
>>895 ID出してないだけで何で煽られないといけないんだバカじゃねえの?
分からないなら答えなくていいってお前こそ
>>1 嫁視ね
897 :
nobodyさん :2010/01/06(水) 13:16:48 ID:NMCa3pGP
PHPに関する質問です。
pChart(
http://pchart.sourceforge.net/ )という
PHPのグラフ描画ライブラリを商用のASPサービスにモジュールとして
組み込みたいのですが、pChartはGPLらしく無改変の状態でも
サービスに組み込んだら最後、自社のコードもGPLに汚染され、
無償公開しなければいけなくなってしまうと聞きました。
この理解は正しいでしょうか?
また、PHPのグラフ描画ライブラリでよりライセンスの制限の緩い
ものはありませんでしょうか。
GPLコードを運用するだけなら公開しなくて良い コードを販売するなら公開する必要が有る
900 :
nobodyさん :2010/01/06(水) 22:30:21 ID:j7Rd9KzV
Aのサイトでsetcookieでクッキーを与えてBのサイトにアクセスした時、 「Aのサイトから来ました」という表示を出したいのですが setcookie("site_check","a",time()+600,"",aのドメイン) としてもBのサイトではクッキーが読めません。 やはりドメインが変わるとクッキーのやりとりは出来ないのでしょうか?
できねえよカス
902 :
nobodyさん :2010/01/06(水) 23:51:51 ID:4NuxgMy7
こんばんわ。
PHPで対象のページに特定の文字がある場合、その行を出力する
というプログラムを組もうと思っているのですが、
文字化けを起こしてしまい、該当の文字が検索に引っかかってくれません。
どこを直せば良いのでしょうか?
回答よろしくお願いします。
【例】
<?php
// 文字コード
define('CHARSET', "UTF-8");
ini_set("default_charset", CHARSET);
ini_set("mbstring.internal_encoding", CHARSET);
ini_set("mbstring.http_output", CHARSET);
ini_set("mbstring.http_input", CHARSET);
$handle = @fopen("
http://pc11.2ch.net/test/read.cgi/php/1260247989/ ", "r");
if ($handle) {
while (!feof($handle)) {
$buffer = fgets($handle, 4096);
$hitlen = strpos($buffer , "下らねぇ質問");
if ($hitlen !== false) {
echo $buffer;
}
}
fclose($handle);
}
>>902 "下らねぇ質問"と取ってきたページの文字エンコードを合わせればよかと
あともし2chを対象としているのなら直接datを見た方がいいと思うよ
904 :
902 :2010/01/07(木) 00:13:12 ID:7vbs2WcD
>>903 うまくいきました。ありがとうございました。
あ、例で出しやすかったので2chのアドレスを表記しただけですw
わざわざありがとうございます。
>>899 お前がよく読め。
>GPLソースコードの修正で再頒布が必要になる
>GPLで保護された著作物の修正や、GPLで保護されたコードを新しい著作物で使うとき、
>必ずしもソースコードの公開を要求しているわけではない。この要求は、
>新しいプロジェクトが第三者に「頒布される」ときだけに発生する。結果としてのソフトウェアが、修正者に使われるだけなら、ソースコードの公開は要求されない。
偉そうに言う
>>899 。でも自分で示したURL先の内容が理解できないアホ
販売するならの部分が変。 GPLのは、販売してもGPLのまんまだから、 買った側が改変しないで配布せず使う限りでは、公開いらん。
>>906 おまえ、自分の書いた文書もう一度読み直してみろな。
何故、「買った側」の話になる?
>>898 売る側の話しているぞ。
>コードを販売するなら
販「売」な。買う(側)ではなくて売る(側)。分かるか?
要約すると
GPLのライブラリを使った場合にGPL汚染されるから自社システムのソース提示が必要になるのか?
って言う
>>897 の質問。
それに対して
自社システムを自社で運用するならソース公開は必要ない。
ただしそのシステムを販売するならソース公開する必要がある。と
>>898 が説明
って事でしょ。
>>898 が書いてない事だけど俺が知っている範囲でもっと突き詰めた説明すると
改変やさらに販売し先がそのソースをどう利用しようが自由になる。しかもソースを利用した物もGPLに汚染される。
>>907 販売する側が公開する必要になるかどうかが、買った側が使うだけの場合には、売った側が公開する必要はない。
買った側が改変してさらに頒布する場合には、買った側がGPLに沿ってやるだけ。売った側関係なくなるんだけどな。
いずれにせよ「販売した場合」ってのは 関係ない。
>>909 おまえもう一度
>>897 を読め。
何故ここで買った側の話が出る?
>>897 が心配しているのは開発側。
で開発側がそのシステムをどうするかで状況が変わる説明を
>>898 がしている。
で開発した側の事で
>買った側
や
>いずれにせよ「販売した場合」ってのは 関係ない。
なんて言う斜め上をいく解釈になるのか分からない。
あくまで
>>897 の書き込みは開発者サイドの質問です。
それに対する開発者サイドのGPLに対しての
>>898 の説明です。
>>909 (=906=899?)の書き込みは何故か買った側の問題です。
君PHPどころかシステム開発すらしたことのない素人さん?だから斜め上からのねじれた解釈ができる?
PHPで開発していれば定番のMySQLのライセンスにぶち当たるからGPLには普通神経質に対処するからね。
だから販売システムにはMYSQLは利用せずにPostgreSQLやSQLiteを利用する。
その状況で
>>909 (=906=899?)は明らかに開発者側の視点での書き込みではない。
お前名前に898って書けよ
912 :
910 :2010/01/07(木) 11:22:25 ID:???
Mysql使ったものを販売出来ないわけでもないのに。 売る側として、Mysql使ったサイト作って企業に売ったとして、そのサイトのソースは 売る側が公開する必要ない → 販売するならの記述違うよね。 難しいかなぁ。
GPLのコードを使ってそれを有償無償関係なく配布する場合は同じ方法でソースを提供しなきゃいけない 自分で使って配布もしない場合はソースを公開する必要はない こんな感じだろ
引くに引けなくなったから必死に長文ワロス
>>913 ハィハィ。ちっょとカマかけたら見事引っかかってくれたね。
MySQLはライブラリもGPL(LGPLでないからライブラリ利用でGPL汚染)を前提に話を書くけど
まずMySQLには二種類のライセンス形態があるの。
もちろん一つはGPL。そしてもう一つがコマーシャルライセンス。
でGPL汚染させたくなければコマーシャルライセンスを購入する必要がある。
だから、
>>913 みたいにライセンスについてなにも知らないとMySQL=GPLの図式が成り立つカマをかけると見事引っかかるのよ。
そんなライセンスについて何も知らない君。
一応この書き込みにももう一つPHPのライブラリ限定の罠仕掛けておいたから今度は見破ってごらん。
>売る側として、Mysql使ったサイト作って企業に売ったとして、そのサイトのソースは
>売る側が公開する必要ない → 販売するならの記述違うよね。
もう斜め上を行く書き込みは辞めてくれ。
どこにカマ書けたレスがあったのかw
別にあなたの人格否定してるわけじゃないから勘違いしちゃだめだよ。 間違ったの放置するとあなたのためにも、ここ見た人にも、 せっかくGPLにしてる沢山のものに対しても良くないんです。
GPL汚染について意外とみんな知らないようだ。 >売る側として、Mysql使ったサイト作って企業に売ったとして、そのサイトのソースは >売る側が公開する必要ない → 販売するならの記述違うよね。 こんな嘘まで出る始末。 ASPではソース公開が必要ないからとそれを広域でとらえてと誤解している? なんか調べたらMySQLのライセンス違反しているソフトハウスがゴロゴロと出てきそうな悪寒。
>>916 よく読んでない誤爆ですか?
100000000000000000000000億回読んだほうがいいですよ
>Mysql使ったものを販売出来ないわけでもないのに
>>917 >PHPで開発していれば定番のMySQLのライセンスにぶち当たるからGPLには普通神経質に対処するからね。
910の自演レスみたいなのに見えるから全員IP出せよ
でっ、どうなんだ? GPLは商用利用でもOKなんだな
IP出せない奴は自演と見なす
>>920 >売る側として、Mysql使ったサイト作って企業に売ったとして、そのサイトのソースは
>売る側が公開する必要ない
って文に
>Mysql使ったものを販売出来ないわけでもないのに。
がかかっているから変ではないのと
GPL汚染されてても良いならGPLのライセンスの物は売っても良いんだよ。
IP出してないので自演乙
>>923 OK。そのかわりGPL汚染され続けるけどね。
良い例がRHELとCentOSの関係みたいな。
RHELは商用でとして販売。しかし元々GPLの部分はソース公開。
で、それを利用されて無料のCentOSができる。
ちょっと昔なんてRHLをベースに無料どころか商用としてTurboLinuxやVIneLinuxなどなど派生も開発されて販売されていた。
>>926 IDはだせるげとIP出せないだろ。
DOS攻撃
それとこのご時世IPなんてだしたら逆恨みでDOS攻撃してくるぞ。
929 :
nobodyさん :2010/01/07(木) 12:28:48 ID:asUehzW7
辞書にユニコードが書かれているのですが、 これを文字列に変換するには、どのように実装すれば宜しいでしょうか? 例えば、 56E0→因 というような変換です。 bin2hexは使えそうだと思ったのですが、むしろ逆の処理で、実装の方法が分からず困っています。 どうかお力をお貸しください。 宜しくお願いします。
GPL詳しい人いないのな1人も
マルチうぜえ
>>929 ビッグエンディアンのUTF-16として
pack("H*","56E0");
utf-8で出力するなら
echo mb_convert_encoding( pack("H*","56E0"),"utf-8","unicode");
UTF-16wwwwwwwwwwwwwwwwwwwwwwwwwwwwwww ユニコードなら普通UTF8じゃない
無知を晒してどうすんの
937 :
nobodyさん :2010/01/07(木) 13:36:19 ID:vUzUYJKW
なにいってんの? UTF-16しらないの?
utf-8なら、因は E59BA0な
939 :
nobodyさん :2010/01/07(木) 14:05:36 ID:asUehzW7
>>934 さん、どうもありがとうございました。
当環境でやってみたところ、出来ました。助かりました。
それで、UNICODEのやり方が分かれば、JISコードについても同じ要領できるかと思って、
以下のようにやってみたのですが、上手くできませんでした。
$covertedChar = pack("C", hexdec("0x"."304B"));
echo mb_convert_encoding($covertedChar, "utf-8", "JIS");
ちなみに、JISコード・十六進コード「304B」は「伊」に該当するそうなのですが。
phpマニュアルを見ながら、Cの所をC*やH*でやってみたのですが、駄目でした。
すみません、最初に全て出せば良かったのですが、追加でお聞きしても宜しいでしょうか。
これで最後です。宜しくお願いします。
940 :
nobodyさん :2010/01/07(木) 14:07:24 ID:asUehzW7
すみません。あと、こちらで最初に試しても黒丸が表示されるだけで駄目でした。 $covertedChar = pack("C*","2F28"); echo mb_convert_encoding($covertedChar, "utf-8", "JIS");
JISはシフトインアウトがあるからな
"1B2440"."2F28"."1B284A"
943 :
nobodyさん :2010/01/07(木) 15:09:42 ID:BSk80e6a
数字のケタが変わったかどうかチェックする方法ってどう書けばいいでしょうか? 999→1000 ならtrue 999→291ならfalse 10→101ならtrueみたい・・
1以上の整数部の比較で良ければ (int)log10(999) != (int)log10(1000) とか strlen((string)999) != strlen((string)1000) でもいいかも知れん
両者を log10 したのち整数値に切り捨てて差を見る 文字列に変換して文字列長が同じかどうかを見る
更新してから書き込めばよかった...
文字列に変換してstrlenすると-10と100の場合も3にならん?
だから1以上の・・・って書いてんじゃないのか
949 :
nobodyさん :2010/01/07(木) 17:09:53 ID:go7wFoTk
正規表現のことに関して質問です。 自分の場合はeregを使っているんですが、eregでは全角カタカナやひらがな等は使えないのでしょうか? 解決方法があれば教えてください。 ちなみに、エラーのでている行は if(eregi($type,$datafile[4])) で、 $type="メーカー"; や $type="サービス"; となる時にエラーがでてしまいます。
mb_eregとか使うんじゃないの?pregしか使わないから分からないけど
951 :
nobodyさん :2010/01/07(木) 17:56:32 ID:LXzPFyV8
一時的にnoticeをログに出さないように変更したいんだけど サーバ管理の権限はありません。 プログラム中で変更とかできないでしょうか?
952 :
nobodyさん :2010/01/07(木) 18:06:19 ID:LXzPFyV8
error_reporting(0); でした。事故レス。
ereg系は使うな!!!!!!!!!!!!!
ereg系はPHP6で消えるとか消えないとか
955 :
nobodyさん :2010/01/07(木) 19:30:27 ID:AjaMrx7g
(x + n)(y + n2) = a この連立方程式をPHPで解くコードを教えてください
PHP6はhtmlspecialchars()が消えるみたいだよ
htmlentitiesは?
958 :
nobodyさん :2010/01/07(木) 20:34:09 ID:5cb0Qm+/
例えば30まで数があって、 30からランダムに順々に重複しない数を取り出したいです。 考えたのが、 例えば最初に5を取り出したとき、5をストック。次に ストックを検索してかぶらない数字12を取り出してストック、ストック(5, 12)を検索して・・ という感じでやろうとしたのですが、無駄が多いように思えるのです。 何か他に効率のよい方法はありませんでしょうかアドバイスよろしくお願いします。
961 :
nobodyさん :2010/01/07(木) 21:24:45 ID:5cb0Qm+/
>>959 とりあえずはやりたいことがシンプルにかけました
ありがとうございました
アレイシャッフルは精度がよくないから自分で実装したほうが良い シャッフルのアルゴリズムはmediawikiで探すと見つかる
963 :
nobodyさん :2010/01/07(木) 23:49:38 ID:0Znmv5GU
<?php $array = array(); for($a = 1; $a < 31; $a++) { $num = rand(1,30); if ( in_array($num, $array) ) { $a = $a - 1; continue; } $array[] = $num; } foreach( $array as $value ){ echo $value."<br />\n"; } echo count($array); ?> これじゃだめ?wwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
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; }
>>962 PHPの中でどうやって混ぜてるか見たけど(array.c)
配列の全要素を、乱数で他の要素と入れ替えてるね。
mediawikiは???
shuffleは偏りが出るの?
968 :
949 :2010/01/08(金) 15:52:11 ID:FfxTGFaw
昨日は規制くらってしまいました。 レスありがとうございます。 eregではなくmb_strposにかえたところ、エラーは消えました。 (エラーの原因は − だったようです。) ところが、今度はまた別の問題が生じました。 mb_strrpos("$datafile[0]","$keyword") のように、テキストファイルから特定の文字列を探しているのですが、これがうまくいきません。 $datafile[0]と$keywordが同じ文字列でも結果が同じと判定してくれません。(これはprintを使い確かめました) 言葉ではうまく説明できないので、簡単な例をのせてみます。 解決方法をご存知の方いましたら、レスお願いします。 例 if(mb_strpos($datafile[0],$keyword)!=0){ print("ok"); }else{ print $datafile[0].<BR>; print $keyword; } これで実行しても 漢字 カタカナ ひらがな 漢字 という具合に表示されてしまいます。 (ちなみに、検索語句、検索対象が英字の時はokと表示されます)
969 :
940 :2010/01/08(金) 15:58:56 ID:3B7A809H
>> 941 > JISはシフトインアウトがあるからな お返事ありがとうございます。 シフトインアウトについては、よく理解できないのですが、unicodeのように簡単には実装できないということでしょうか。 辞書には、UNICODEとJISコードが書かれているので、両方対応できるようにしたいのですが、 やはり、JISコードを変換して漢字にするのは難しいでしょうか。
>>968 mb_strposは0を返す場合もあるから !=0 じゃダメなんじゃね?
存在しない場合はFALSEが返ってくるから !==falseとかにする
あとは文字コードとか
972 :
nobodyさん :2010/01/08(金) 17:23:28 ID:FfxTGFaw
>>970 確かにそうですね。直しておきます。
現在文字コードはShift_JISですがそれだと問題あるのでしょうか・・・?
973 :
nobodyさん :2010/01/08(金) 19:45:03 ID:95a5JUsZ
phpの吐いたソースを書き出してるんですが、 書き出したファイルの内容と新しく自身が吐いたソースの比較はどうすればできますか? 宜しくおねがいします。
file_get_contents(旧ファイル) === file_get_contents(新ファイル)
>>973 >>974 のように文字列同士の比較で一致するかでいいと思うけど
それだとコストが大きいので書き出す時にmd5ハッシュを保存しておいて比較した方がいいと思う
更新日時の比較がベストだけど
同時に違う内容を保存したらどうすんねん
flock
978 :
973 :2010/01/08(金) 20:17:42 ID:95a5JUsZ
>>974-975 ありがとうございます。
説明が曖昧でした。申し訳ありません。
最終的にPHPで同じテキストファイル(かhtmlファイル)
に上書きするんですが、
今回上書きされる内容と、前回上書きした内容が
一致するか比較したいです。
PHPのソースが上書きする前の処理として、例えば
前回と比較→一致なら0,不一致なら1→最終的に上書きはする
という感じのことを行いたいです。
>>978 #テストしてないけど
function f($filename, $contents='')
{
$old_contents = file_get_contents($filename);
file_put_contents($filename, $contents);
return $old_contents === $contents ? 0 : 1;
}
>>978 今回上書きされる内容と前回上書きした内容って同じものを指してないか?
>>973 比較するする処理を行うにふさわしい標準関数があるからマニュアル見て探してみ
するする処理
983 :
973 :2010/01/08(金) 22:26:22 ID:95a5JUsZ
>>979 少し弄りましたができたと思います。
ありがとうございます。
>>983 >>981 書いたのに探しもしないんだな
レスあればどの関数使うか書こうと思ったけどもういいや
日本語と英語の両方に対応したWebを作りたいんだけど、 フレームワークレベルで多国語対応しているのってある? 言語リソースを完全に分離しているイメージで
if (言語判別) { 日本語のファイル読み込み } else { 英語のファイル読み込み } じゃだめ?
>>985 キミがダメだと思ったフレームワーク挙げてみてよ
>>985 うちはZendだけど、
今じゃ対応してないフレームワークの方が少ないんじゃないかな
989 :
nobodyさん :2010/01/09(土) 17:16:53 ID:g7iSaAwT
コマンドラインから実行されてるか判別する方法ってありますか?
管理者に聞く
991 :
nobodyさん :2010/01/09(土) 17:30:39 ID:lsb/cZ9k
992 :
nobodyさん :2010/01/09(土) 17:31:31 ID:pOjpZhf9
数字を入力して、3桁ごとに , をつけるにはどうしたらいいですか? 100 → 100 1000 → 1,000 100000 →100,000 お願いします。
>>992 なんでマニュアル見ないの?
てめえのやりたいそのものが標準関数にあるぞ?
994 :
nobodyさん :2010/01/09(土) 17:36:03 ID:lsb/cZ9k
996 :
992 :2010/01/09(土) 17:38:43 ID:pOjpZhf9
>>993 自分の持ってる参考書には目を通したのですが、マニュアルはみてなかったです。
自分自身の為にも、次からは気をつけます。
>>994 ありがとうございます。
997 :
nobodyさん :2010/01/09(土) 19:19:13 ID:bizuBJVY
ニコニコのAPIを使ったものを作りたいんですが、ログインがうまくできてないようです。
質問内容
お手元の環境で以下のサイトのコードを実行した場合に
ttp://d.hatena.ne.jp/Xephy/20081217/1229515379 問題なく以下の部分の表示が行われますか?
//URL表示
print $login->get_video_url($mov_id);
うちで動かすと、正しいメールアドレス/パスワードを用いても、用いなくても、
実行結果が変わりませんorz
998 :
nobodyさん :2010/01/09(土) 20:13:21 ID:lsb/cZ9k
999
このスレは1000の風になりました
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。