【PHP】下らねぇ質問はID出して書き込みやがれ 90
レス数が1000を超えています。これ以上書き込みはできません。
0001●
2009/11/14(土) 17:31:22ID:???過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 89
http://pc11.2ch.net/test/read.cgi/php/1255263534/
◆質問用テンプレ
【OS名】vine linux
【PHPのバージョン】php5.26
【連携ソフトウェア】mysql
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0002nobodyさん
2009/11/14(土) 17:31:42ID:???【PHP】下らねぇ質問はID出して書き込みやがれ 89
http://pc11.2ch.net/test/read.cgi/php/1255263534/
【PHP】下らねぇ質問はID出して書き込みやがれ 88
http://pc11.2ch.net/test/read.cgi/php/1253061577/
【PHP】下らねぇ質問はID出して書き込みやがれ 87
http://pc11.2ch.net/test/read.cgi/php/1251447028/
【PHP】下らねぇ質問はID出して書き込みやがれ 86
http://pc11.2ch.net/test/read.cgi/php/1249042741/
【PHP】下らねぇ質問はID出して書き込みやがれ 85
http://pc11.2ch.net/test/read.cgi/php/1245074032/
【PHP】下らねぇ質問はID出して書き込みやがれ 84
http://pc11.2ch.net/test/read.cgi/php/1240835951/
【PHP】下らねぇ質問はID出して書き込みやがれ 83
http://pc11.2ch.net/test/read.cgi/php/1238958898/
【PHP】下らねぇ質問はID出して書き込みやがれ 82
http://pc11.2ch.net/test/read.cgi/php/1236532468/
【PHP】下らねぇ質問はID出して書き込みやがれ 81
http://pc11.2ch.net/test/read.cgi/php/1234958956/
【PHP】下らねぇ質問はID出して書き込みやがれ 80
http://pc11.2ch.net/test/read.cgi/php/1233479457/
【PHP】下らねぇ質問はID出して書き込みやがれ 79
http://pc11.2ch.net/test/read.cgi/php/1231850905/
【PHP】下らねぇ質問はID出して書き込みやがれ 78
http://pc11.2ch.net/test/read.cgi/php/1230026935/
0003nobodyさん
2009/11/14(土) 17:31:51ID:???■本家マニュアル http://www.php.net/manual/ja/
■日本PHPユーザ会 http://www.php.gr.jp/
■PEARマニュアル http://pear.php.net/manual/ja/
■メーリングリスト http://ns1.php.gr.jp/mailman/listinfo/
■ZFマニュアル http://framework.zend.com/manual/ja/
■Smartyマニュアル http://www.smarty.net/manual/ja/
(以下英語)
■Zend本家 http://www.zend.com/
■Zend Framework http://framework.zend.com/
■php | architect http://www.phparch.com/
■Smarty http://www.smarty.net
■Smartyマニュアル http://smarty.php.net/manual/en/
■PECL本家(英語) http://pecl.php.net/
0004nobodyさん
2009/11/14(土) 17:32:11ID:???1.文字コードは何を使えばいいの?
→1.UTF-8 2.EUC-JP のどちらか。迷うようなやつはShift_JISは使っちゃダメ。
2. このスレに書き込むときに自分のサイト名を晒したくない
→ http://example.com/が例文などのために予約されている。hogehoge.comは使っちゃダメ。
3. ブラウザに何も表示されないんだけど・・・
→ Apacheの設定を見直せ。ファイルの拡張子は何にしてて、その拡張子でPHPを呼ぶようになっているか?
4. 記号の意味がわからないけどググりようがない
→ 「@」 エラー表示を抑制、「->」 オブジェクトのメンバにアクセス、「::」 静的なメソッド呼び出し、
「==」は暗黙の型変換をしてゆるい比較、「===」は型情報も含めた厳密な比較
5. echo "$arr['hoge']['fuga']"; と書いたらエラーになった
→ {おっぱい括弧}でくくって"{$arr['hoge']['fuga']}"にする
6. 一定時間ごとに自動的に何かしたいんだけど
→ cronかタスクスケジューラを使え。
7.extractって危険なの?
→変数上書き&初期化忘れなどで危険。楽だからという理由だけで安易に使わない。
8. include/requireに「〜.php?a=b&c=d」のようなパラメータをつけたい
→ URL呼び出しなら可能だけど、普通のファイル呼び出しではできません
9.include/requireでURLを指定しても何も起きない
→ .phpの拡張子のファイルをURLで呼び出すと、1度PHPプログラムとして実行された結果になる。
0005nobodyさん
2009/11/14(土) 17:32:22ID:???→ 確認すべきは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に保存?
→ 好きにしてください
0007nobodyさん
2009/11/16(月) 11:03:50ID:bvqRdc2u<?php
/* データベースへ接続、データベース選択 */
$s=mysql_connect("localhost","root","1234") or die("失敗です");
mysql_select_db("db1",$s);
/* NAMEがhのVALUEを変数$h_dに代入 */
$h_d=$_POST["h"];
/* $h_dがsel、ins、del、serのどれかで条件分岐 */
switch("$h_d"){
case "sel":
$re=mysql_query("SELECT * FROM tbk ORDER BY bang");
break;
case "ins":
$a1_d=$_POST["a1"];
$a2_d= $_POST["a2"];
mysql_query("INSERT INTO tbk (nama,mess) VALUES ('$a1_d','$a2_d')");
$re=mysql_query("SELECT * FROM tbk ORDER BY bang");
break;
case "del":
$b1_d=$_POST["b1"];
mysql_query("DELETE FROM tbk WHERE bang=$b1_d");
$re=mysql_query("SELECT * FROM tbk ORDER BY bang");
break;
case "ser":
$c1_d=$_POST["c1"];
$re=mysql_query("SELECT * FROM tbk WHERE mess LIKE '%$c1_d%' ORDER BY bang");
break;
}
0008nobodyさん
2009/11/16(月) 11:04:58ID:bvqRdc2uwhile($kekka=mysql_fetch_array($re)){
print $kekka[0];
print " : ";
print $kekka[1];
print " : ";
print $kekka[2];
print "<BR>";
}
/* データベース切断 */
mysql_close($s);
/* トップページへのリンク */
print "<BR><A HREF='kantan2.html'>トップメニューに戻ります</A>";
?>
を実行すると、上手く動作しないだけか、
「 "; } /* データベース切断 */ mysql_close($s); /* トップページへのリンク */ print "
トップメニューに戻ります"; ?> 」
とブラウザ上にphpファイルの内容が表示されてしまいます
コレは何がおかしいのでしょうか?
printの部分がおかしいのではないかと思うのですが・・・
自分でも一応色々と書き直してみたのですが、改善されません
0009nobodyさん
2009/11/16(月) 11:39:37ID:???0010nobodyさん
2009/11/16(月) 11:44:45ID:???00118
2009/11/16(月) 11:56:21ID:???他のサンプルコードは動いていました
似たようなコードを実行したときには、このようにphpの内容がブラウザに出力されていませんでした
>>9さんの言われているように、今FireBugでスクリプトを開いて見てみたところ、ソースが(<?php〜?>の中が)表示されていました
http://localhostから出力したからなのか、自分には知識が乏しいので分かりませんが、こういう場合はどのようにすれば解消するのでしょうか?
>>10
そうなのでしょうか
よく分からないのですが、一応他のサンプルなどは動いています
ただし、それらが動作するからといってApacheに関連付けられているのかは自分には分かっていないのですが・・・
00128
2009/11/16(月) 12:05:29ID:???結局この場合、上記のサンプルコードが間違っているのではなく、自分のPHP又はApacheの設定がおかしいという事なのでしょうか?
一応単純に
<? php
print "山田";
?>
と打つと、ブラウザには(localhostから出力していますが)山田と表示されます
00148
2009/11/16(月) 13:18:33ID:???0015nobodyさん
2009/11/16(月) 13:20:55ID:???0016nobodyさん
2009/11/16(月) 13:32:47ID:???00178
2009/11/16(月) 14:11:11ID:bvqRdc2u00188
2009/11/16(月) 14:29:25ID:bvqRdc2uう〜ん、なんでブラウザにprint後のコードが出力されるのでしょうか・・・?
0019nobodyさん
2009/11/16(月) 14:56:43ID:+MFbLdTchoge.php はちゃんと動くんですが,
他の場所に hoge.php を置いてシンボリックリンクで参照すると
403 Forbidden になります.
CentOS + lighttpd + php-cgi です.
0020nobodyさん
2009/11/16(月) 15:14:29ID:???シンボリックリンク使える。
webサーバの設定でシンボリックリンクの許可をしておかないと駄目
lighttpdは使った事無いけど、
ググったらでてきた↓↓の設定はしてある?
server.follow-symlink = "enable"
0023nobodyさん
2009/11/16(月) 18:18:13ID:???0024nobodyさん
2009/11/16(月) 18:40:26ID:???0025nobodyさん
2009/11/16(月) 18:55:01ID:???apacheとかIISは分かります?
0026nobodyさん
2009/11/16(月) 20:34:49ID:HkdbmVie具体的には、1ページ内に、
”明日””今日””昨日”のように複数の文字列の下に、追加ボタンをおいて、
押された順番に、例えば、
明日昨日今日と押したら、
明日
昨日
今日
となるように、
テキストボックスに改行しながら文字列を追加していくような感じのを作りたいんです。
よろしくお願いします<m(__)m>
0027nobodyさん
2009/11/16(月) 20:45:41ID:HkdbmVie取り消してこちらに移動させてもらいます<m(__)m>
△▲ WebProg 初心者の質問 Part21 ▼▽
http://pc11.2ch.net/test/read.cgi/php/1257701535/
0029nobodyさん
2009/11/16(月) 23:19:35ID:???0030nobodyさん
2009/11/16(月) 23:40:57ID:DxyMrPHB$a['test']['a2'] = 2;
$b['test']['b3'] = 3;
$b['test']['b4'] = 4;
上記のような配列があり、array_merge()的な手法で下記のように結合したいのですがどうすればいいでしょうか?
$ab = array {
["test"]=>
array {
["a1"] => 1
["a2"] => 2
["b3"] => 3
["b4"] => 4
}
}
ちなみに、array_merge()では["test"]キーで上書きされてしまいます。
よろしくお願いします。
0032nobodyさん
2009/11/17(火) 00:02:14ID:149D2nEEうぉぉおおぉ!
ありがとうございます!!
0033nobodyさん
2009/11/17(火) 00:07:29ID:???0034nobodyさん
2009/11/17(火) 10:32:58ID:???ほんと使えねえksだな
0035nobodyさん
2009/11/17(火) 11:03:39ID:???0036nobodyさん
2009/11/18(水) 03:36:08ID:/HH3qrl4PEAR::DBとPEAR::MDB2とPDOの3つでテストしているのですが
MySQLとPostgreSQLに関しては上記の3種類で問題なくselectを発行して結果が返ってくるのですが
SQLite2のデータベースファイルに関してですがPDOでは問題ないのですが
PEAR::DBとPEAR::MDB2で問題が発生しました。
それぞれ接続
$db = DB::connect('sqlite:///ファイル名');
$db = MDB2::connect('sqlite:///ファイル名');
って感じで書いています。
PEAR::DB用
$result = $db->query(SELECT文);
while($row = $result->fetchRow(DB_FETCHMODE_ASSOC)){
print_r($row);
echo "<br>";
}
PEAR::MDB2用
$result = $db->query(SELECT文);
while($row = $result->fetchRow(MDB2_FETCHMODE_ASSOC)){
print_r($row);
echo "<br>";
}
としてそれぞれ処理しているのですがループに一回も入らず終了してしまいます。
同じソースをPHP5.2.1の環境で使う場合は問題なく動きました。
MDB2のバージョンは2.4.1
MDB2_Driver_sqliteのバージョンは1.4.1を利用しています。
なにか対処の方法ってありますか?
0037nobodyさん
2009/11/18(水) 03:49:00ID:???0038nobodyさん
2009/11/18(水) 04:13:07ID:/HH3qrl4どうもです。とりあえず書き込みした後テストしてわかったのですが
キモはdisconnectみたいです。
>>36で書いた処理は大まかな処理で実際にはDB接続&SQL発行部分はクラス化していて
大まかな処理は(下記はPEAR::DB用でPEAR::MDB2利用時にはDBの部分をMDB2にしてある)
$sql_UTF8 = "SET NAMES utf8";
$db = DB::connect($this->DB_connect);
if (DB::isError( $db )) {
die($db->getMessage());
}
$res = $db->query($sql_UTF8);
$result = $db->query($sql);
if (DB::isError( $result )) {
die($result->getMessage());
}
$db->disconnect();
return $result;
って感じの処理です。
PHP5.3環境においてSQLite利用時のみ$db->disconnect()の段階で取得していたSQLの結果を破棄してしまっているようです。
$db->disconnect();をコメントアウトしておくと取得できました。
PostgreSQLとMySQLは保持したまま。
また、PHP5.2.1環境下ではSQLite環境下でも$db->disconnect();しても値は残ったままのようです。
なにかしら対策の方法ってありますか?
それとも俺の書き方自身に問題があるでしょうか?
0039nobodyさん
2009/11/18(水) 07:17:47ID:???sqlite_close()の中で結果セットまで削除する仕様が原因だね
MySQLではmysql_close()が呼ばれていても
"mysql result"リソースのデストラクタが働くまでは参照可能
嘘言ってたら許してくれ
まぁ実装に左右されたくなかったら
結果セットが必要なくなってから切断する設計にするべき
0040nobodyさん
2009/11/18(水) 10:00:16ID:xkg9vx1zphp5.2.10です
0041nobodyさん
2009/11/18(水) 10:52:23ID:???書いてあるよ
0042nobodyさん
2009/11/18(水) 12:27:53ID:/HH3qrl4ありがとうございました。
>sqlite_close()の中で結果セットまで削除する仕様が原因だね
PEAR::DBにしてもPEAR::MDB2にしても各DB関数のラッパーと考えると
PHPのバージョンで>sqlite_close()の挙動が変わったと言うことですね。
>結果セットが必要なくなってから切断する設計にするべき
さてこれどう実装したものか。
俺の実装の仕方が
1.PHPメイン
↓
2.SQL文生成クラス
↓
3.SQL送信クラス(>>38はその一部)
ってやり方やっているんだよね。
2.でメインのPHPから渡された引数を元にSQL文を生成して
3.で2.で生成されたSQL文をDBに接続してSQL発行してDB切断
で処理が2.に戻ってwhile($row = $result->fetchRow(DB_FETCHMODE_ASSOC)){でループさせて結果を取得
って一連の流れをどうにかしないとダメって事か?さてどう作り直したらいい事か?なんかアイディアありませんか?
0043nobodyさん
2009/11/18(水) 12:29:21ID:???0044nobodyさん
2009/11/18(水) 12:38:39ID:/HH3qrl4一回の処理でSQLが発行されるのは1回がほとんどだからこの様な実装方式にしています。
0045nobodyさん
2009/11/18(水) 12:38:54ID:???0046nobodyさん
2009/11/18(水) 12:55:03ID:???取り込んどきゃ、ライブラリ側管理のデータがどうなろうが影響無いと思うんだが。
まあ、大抵ちょー大量に返ってくるというのなら、また違うかもしれん。
0047nobodyさん
2009/11/18(水) 13:18:45ID:???だからその処理は2.のクラスでやっている。
で取得したDBのデータそのものを使うのは1.の部分。
ちなみに3.のクラスはSQL送信だけではなくて
PEAR::DB、PEAR:MDB2、PDOのラッパー(実行環境によって使えるライブラリが変わったときにソースの修正をせずに済むようにするため)
としてさらにはMySQL、PostgreSQL、SQLiteのラッパーとしての
役割を持たせた物。
だから下手に2.の部分と統合されられない。
0048nobodyさん
2009/11/18(水) 13:23:33ID:???DB駆動クラス(他から見れば、そいつがDBと言ってもいい)がやるならともかく。
0050nobodyさん
2009/11/18(水) 13:45:40ID:/HH3qrl4SQL生成クラスって書き方したが
実際には
・SQLの生成
・DB送信/管理クラスにSQLを送る
・結果セットからwhile($row = $result->fetchRow(DB_FETCHMODE_ASSOC)){でループさせて配列に格納。
・配列をメイン処理に返す
って感じの処理です。
さらにこの「SQL生成クラス」に関してですが一つだけではなくて2つあります。
一つはselect専用のDB検索用
もう一つはInsert/Update/Deleteを発行するDB操作用。
分けた理由は管理者画面においては両方を使うが
一般ユーザ利用の部分に必要なのはDB検索用の方だけだから
ユーザ利用の方でバクなどでのセキュリティー対策として
一つにしておいてDB操作の処理のメソッドが万が一呼ばれることの内容にするため
(自分がソース間違えて呼び出したりなどに対する自己防衛と)
や一般ユーザ利用部分の軽量化のため。
>>49
>ルールも守ってないし
2chビューワでいつもの癖でsageのチェックボックスつけて送信してしまいました。
0051nobodyさん
2009/11/18(水) 13:47:55ID:???>だからその処理は2.のクラスでやっている。
などと言ってるけどその設計から見直したら?っていう話なのでは?
アドバイスしても「俺のクラスではこうなんだ」としか言われなかったら
はいそうですかどうぞご自由にと何も言うことなくなる。
0052nobodyさん
2009/11/18(水) 14:01:36ID:/HH3qrl4現状できあがったシステムで(今まではPEAR::DB+PostgreSQLの環境)
PEAR::DB、PEAR::MDB2、PDOやMySQL、PostgreSQL、SQLiteなマルチな環境下で動くようにバージョンアップ作業していたときに
ついでに5.3での挙動もチェックしちゃえってテストしていたときに発生した問題で
根本的な設計をし直したらシステム全体も書き換えになってしまうので最低限の変更でなんとかならないかと今回の質問をしたのです。
って内情まで説明しないとダメですか?
0053nobodyさん
2009/11/18(水) 14:07:58ID:???0054nobodyさん
2009/11/18(水) 14:20:43ID:???システム全体も書き換えになってしまう、と。
どんな作りやねんw
まあそれでも、他者が作ったそういうものでも何とかしなきゃならん仕事での立場だとしたら、
もしそうならちょこっと同情はする。
0056nobodyさん
2009/11/18(水) 14:38:02ID:/HH3qrl4>システム全体も書き換えになってしまう、と。
ごめん。書き方が変だった。
このシステム全体はSQL周りのクラスって事。
本来はSQL送信/管理しているクラスだけですませたかった。
SQL生成や取得した結果セット用のクラスは極力いじりたくなかった。
自分でも「SQL生成や取得した結果セット用」クラスまでいじるなら
「SQL送信/管理クラス」に今まで一つだったメソッドを
・接続メソッド
・SQL送信メソッド
・接続解除メソッド
にわけて
「SQL生成や取得した結果セット用」内からは今までは一回だけメソッドを呼び出していたのを
それぞれ上記のメソッドを順番で呼び出せば済むって事はわかってているんですよね。
それかPHP5.3利用時にはSQLite利用時はPDO限定にするかって事ですね。
後、今環境が無いのですが試せてないのですが
5.2.1ではsqlite_close()後も結果セットは保持されていますけど
sqlite_close()の挙動ですがPHPも5.2.1ではテストしているけど5.2.1以降の5.2系では挙動って変わっていますか?
0057nobodyさん
2009/11/18(水) 14:46:27ID:xi1WciP2$images = getimagesize("http://localhost/images/logo.gif");
というURLだと取得できないのですが、
$images = getimagesize("http://www.google.co.jp/intl/ja_jp/images/logo.gif");
というGoogleのロゴのサイズを取得しようとしたら出来ました。
getimagesizeを使う場合、localhostからは取得できないのでしょうか?
もし出来ない場合、どうやってローカルサーバの画像を参照すればいいのか
方法を教えていただければと思います。
0058nobodyさん
2009/11/18(水) 14:49:42ID:???ローカルPC上のブラウザから"http://localhost/images/logo.gif"が見えてるよね?
005957
2009/11/18(水) 14:52:09ID:xi1WciP20060nobodyさん
2009/11/18(水) 14:57:17ID:/HH3qrl4そのローカル環境のファイル壊れてないよね?
一応、>>57のソースを元に
$images = getimagesize("http://www.google.co.jp/intl/ja_jp/images/logo.gif");
print_r($images);
echo "<br>\n";
$images2 = getimagesize("http://localhost/work/GD/logo.gif");
print_r($images2);
ってソースを書いてテストしたけど問題なく取得できた。
ローカルでのlogo.gifはgoogleのロゴをそのまま保存して利用。
ちなみに
$images = getimagesize("./logo.gif");
の様に相対パスで書いた場合はどうなる?
0061nobodyさん
2009/11/18(水) 15:01:07ID:???エラーメッセージは出ないのか
006257
2009/11/18(水) 15:04:24ID:xi1WciP2相対パスや絶対パスだと普通に表示されます。
なぜかURLにするとずっと読み込み状態で、
停止してもエラーメッセージなどは出ません。
ローカルサーバがWindowsXPのApacheだからでしょうか?PHPは5.2.5です
0063nobodyさん
2009/11/18(水) 15:15:31ID:???max_execution_timeやdefault_socket_timeoutの値を変えてエラーがどうなるか試してみたら?
0064nobodyさん
2009/11/18(水) 15:18:25ID:???その場合、php.iniの中身も確認しないとダメかもね。
display_errorsやerror_reportingまわりがどうなっているか確認しないとダメかも。下手したら非表示になっていたりして
(以前どこだったかな。レンタルサーバでこれのレベルが下げてあってエラーも警告も出なかったことある。)
>>62
後、
header("Content-type: image/gif");
$filename = "http://localhost/work/GD/logo.gif";
$f = fopen($filename, "rb");
$buf = stream_get_contents($f);
fclose($f);
echo $buf;
なソースを書いてphp側で画像取得できるのか?
これすらNGだとPHPよりapache側の根本的な設定に問題がありそう。
>>60は俺だけど今度は回答側に回ったのにsage付け忘れました。すみませんでした。
006557
2009/11/18(水) 15:24:10ID:xi1WciP2先ほどサブのPCで同じ事をしたらサイズが取得できました。
php.iniの設定や>>64さんが書かれている内容も参考にしてみます。
0066nobodyさん
2009/11/18(水) 15:55:00ID:jaz8gdLl0067nobodyさん
2009/11/18(水) 16:00:18ID:???0068nobodyさん
2009/11/18(水) 16:29:22ID:jaz8gdLlありがとうございます。
006939
2009/11/18(水) 19:57:24ID:???確かに5.3で挙動が変わってるナー
バッファリングした結果セットをでっちあげちまえばいいんだ
class BufferedResult {
private $buffer;
public function __construct($result) { while ($row = $result->fetchRow()) { $this->buffer[] = $row; }}
public function fetchRow($mode) { return array_shift($this->buffer); }
public function fetchAll() { return array_splice($this->buffer, 0); }
}
こんなクラスを作ってこうだ
+ if (SQLite使用時 && version_compair(PHP_VERSION, '5.3') >= 0) {
+ $result = BufferedResult($result);
+ }
$db->disconnect();
return $result;
0070nobodyさん
2009/11/18(水) 20:36:09ID:???0073nobodyさん
2009/11/18(水) 21:20:51ID:nmLyX5fb自分も書いてみたもののスマートな感じではないので勉強のためにソースを探しています
どなたかご存知の方いらっしゃいましたら教えてください
0074nobodyさん
2009/11/18(水) 21:23:06ID:???0075nobodyさん
2009/11/18(水) 21:35:27ID:???IDEのコード補完で勝手にやってくれるでしょ
0076nobodyさん
2009/11/18(水) 21:40:40ID:/HH3qrl4ありがとうございます。
書いていただいてソースを元に
public function __construct($result,$Lib_Kind){
if($Lib_Kind==1){
while ($row = $result->fetchRow(DB_FETCHMODE_ASSOC)) {
$this->buffer[DB_FETCHMODE_ASSOC][] = $row;
}
while ($row = $result->fetchRow(DB_FETCHMODE_ORDERED)) {
$this->buffer[DB_FETCHMODE_ORDERED][] = $row;
}
while ($row = $result->fetchRow(DB_FETCHMODE_OBJECT)) {
$this->buffer[DB_FETCHMODE_OBJECT][] = $row;
}
}elseif($Lib_Kind==2){
while ($row = $result->fetchRow(MDB2_FETCHMODE_ASSOC)) {
$this->buffer[MDB2_FETCHMODE_ASSOC][] = $row;
}
while ($row = $result->fetchRow(MDB2_FETCHMODE_ORDERED)) {
$this->buffer[MDB2_FETCHMODE_ORDERED][] = $row;
}
while ($row = $result->fetchRow(MDB2_FETCHMODE_OBJECT)) {
$this->buffer[MDB2_FETCHMODE_OBJECT][] = $row;
}
}
}
public function fetchRow($mode){ return array_shift($this->buffer[$mode]);}
$Lib_Kindが1だったらPEAR::DB、2だったらPEAR::MDB2使用
とソース書き直してみました。
0077nobodyさん
2009/11/18(水) 21:43:23ID:/HH3qrl4>確かに5.3で挙動が変わってるナー
どうせやるなら他のDB系関数の挙動も変更すればいいのに
それにしてもなんでこんな中途半端(SQLiteのみ)な仕様変更したんだろう?
0079nobodyさん
2009/11/18(水) 22:10:31ID:???とりあえずMDB2で説明すると
http://pear.php.net/manual/ja/package.database.mdb2.intro-fetch.php
while ($row = $result->fetchRow()) {
だった場合拾う値はデフォルトである
MDB2_FETCHMODE_ORDEREDのみの型。
MDB2_FETCHMODE_ASSOCやMDB2_FETCHMODE_OBJECT の値も別途取得する処理を書いておく必要がある。
ただしMDB2_FETCHMODE_OBJECTの書き方はオブジェクトとして取得するのでなんか変な気がする。
0082nobodyさん
2009/11/18(水) 23:22:39ID:???だったら君はどんなコード書く?
元々SQLiteは大規模開発にはむかないDB。
そんなSQLite限定で利用すると考えればそんなに負荷がかかるかな?
0083nobodyさん
2009/11/18(水) 23:27:05ID:nmLyX5fbstrictで使える要素と属性、framesetで使える要素と属性・・・のように必要なものだけを取得するようなことをしてます
目的はdoctype別補完辞書作成の為なんです
IDEは全て試したわけではありませんがaptanaとDreamweaverを試した限りではあるdoctyleに対応しない属性が出てきますし足りない属性も出てきます
反応良かったらコード公開するつもりでした
質問は締め切りROMに戻ります
ますありがとうございました
0084nobodyさん
2009/11/18(水) 23:44:48ID:???クラス使う意味が半分かそれ以上消えとるな。
0086nobodyさん
2009/11/19(木) 00:29:52ID:???switch〜caseは止めれって。(if〜elseifの羅列も同じこと)
C++には相変わらずinterfaceは導入されて無い(よね?)けど、
それ以降出てきた言語たちにはinterfaceなんて有りがたいものが
あるんだから、よりその言葉に従うのが楽だわな。
0087nobodyさん
2009/11/19(木) 00:48:25ID:???でも、それってPHP5だけを考慮に入れた場合は良いけど、PHP4まで考慮に入れたシステムの場合NGでは?
PHP4が、サポート終了ってなっているがPHP4系がいまだに使われているサーバなんて大量にまだあるからPHP4に対するプログラムの
サポートってなかなか切れないよ。
008887
2009/11/19(木) 01:03:22ID:???今回のようなマルチな環境に対応させるくらいのシステムなんだから古いシステムも考慮した上での作りだと思うよ。
そもそも、新しいのだけを考慮しているシステムならPHP4どころかPEAR::DBもシステムから外すべき物。
http://pear.php.net/package/DB
>This package has been superseded, but is still maintained for bugs and security fixes. Use MDB2 instead.
ぶっちゃけな訳しかたすると「バグとセキュリティーのためにサポートは続くがMDB2って言う後継出ているからそっち使えよ。」
PEARはPHPで書かれたライブラリだから必ずしもpearコマンドでインストール必要もなく
インストールされてないレンタルサーバでもアーカイブDLしてきてプログラムから呼び出すパスを、通せばいくらでも使える。
と言うわけで、プログラムの更新作業するのにDBは、「いらない子」。
MDB2とPDOをサポートするだけのプログラムにした方が良い。
PEAR::DB,PEAR::MDB2,PDOとサポートさせるプログラムを書いている奴が、PHP4のサポートをごっそりと打ち切ったプログラム書くのか?
008987
2009/11/19(木) 01:27:04ID:???・PEAR::DB
・PEAR::MDB2
・PDO
・そんなものラッパ使わない。各DB関数直接使う
どれが多い?
それと
・必須環境はPHP5以降。PHP4は切り捨てた。
・必須環境はPHP4以降。PHP4もサポートし続ける。
に関してもどうしている?
0090nobodyさん
2009/11/19(木) 01:39:54ID:???・せっかく専用の関数が有るのだからそれらを纏めて抽象化
0092nobodyさん
2009/11/19(木) 01:59:56ID:???>別途取得する処理を書いておく必要がある
それがアホ設計だと言ってるんだがw
デザインパターンとか知らんのかね
0093nobodyさん
2009/11/19(木) 02:00:09ID:7S9/ReIJ教科書通りのお手本を書く場合ならそれでいいけど、interfaceの実装はPHP5から。
さて私はPHP4の動作を対象外にしてまでinterfaceを使うべきですか?
PHP4を対象外にするならPHP5もPHP5.1から動作対象としてDBもPEAR::DBとPEAR::MDB2も切り捨ててより速度が出るPDOだけにしますよww
0094nobodyさん
2009/11/19(木) 02:03:51ID:???0095nobodyさん
2009/11/19(木) 02:32:52ID:7S9/ReIJデザインパターンの有効性って再利用時などに使いやすくなどだよね。
一時しのぎようのクラスにまでそのものが必要かどうかの天秤にかけると別にデザインパターンに
沿った作りにしないでもごり押しでソース書いておけばとりあえずはいいや。って結論になったアホな俺。
>>94
単純に切り捨てができれば苦労しない。
0096nobodyさん
2009/11/19(木) 03:12:12ID:???>>76を見て何とも思わないん?
まぁ書いた本人だから思わないんだろうけど、今後もプログラム書いていくなら
もうちょっとここの人達の意見にも耳を傾けてみたほうが幸せになれるんじゃないかなと思う次第
0098nobodyさん
2009/11/19(木) 06:08:18ID:BO5FZy2Hこのような文字列を
$array=['tes0',1,'tes1',2,3,['tes2',4],5];
みたいに配列として扱いたく、
[の数とexplode使って、forしながら配列にしてみたのですが、
もっと簡単に変換できる方法はありますでしょうか。
アドバイスよろしくおねがいします。
0099nobodyさん
2009/11/19(木) 07:18:55ID:???0100nobodyさん
2009/11/19(木) 08:25:02ID:BO5FZy2Hすいませんjavascriptとごっちゃになってしまっていました。
$arrayの方は、
$arr=array(
'test0',
1,
'test1',
2,
3,
array('test2',4),
5
);
でした。
$strを受け取ったときに、この$arrへ変換するにはどんな方法があるのかなぁ、と。
0102nobodyさん
2009/11/19(木) 08:38:29ID:BO5FZy2Hおぉ!やりたいことができました
ありがとうございましたm(_ _)m
0103nobodyさん
2009/11/19(木) 13:19:46ID:MI354vJbsmartyとかcakephpとかテンプレートエンジンやフレームワークを使うより
includeで呼び出すほうが処理が軽いと思うのですが違うのでしょうか?
0104nobodyさん
2009/11/19(木) 13:31:12ID:???あってるよ
そもそもテンプレートやフレームワークは軽くするためのモノじゃないし。
余計な処理が増えるんだから素の状態と比較したら重くなって当然
0105nobodyさん
2009/11/19(木) 15:20:18ID:???はまりにはまってどうしようもないから助けて
標準入力stdinを受け取りたいんだけど、
起動時点で標準入力が渡されていたら受取り、
そうでなければデフォルト値を使用ってしたいんです。
でも、標準入力を読み込みに行くと、空の場合、入力待ちになっちゃう
この入力待ちをさせない方法ってありますか?
0106nobodyさん
2009/11/19(木) 15:21:56ID:JXswh9pT0107nobodyさん
2009/11/19(木) 15:31:35ID:???0108nobodyさん
2009/11/19(木) 20:21:52ID:AL4i469VHello-UP アップローダー
http://idol.nm.land.to/
を使用しているのですが、ある特定の条件により、
特定のページ、upload.php?id=以降のページが画面が真っ白(読み込み中状態)で開かなくなってしまいます。
errorではなく、読み込みに時間がかかっている感じです。
その間、upload.phpは問題なく表示されます。あと、パスワード付きのページの入り口upload.php?mode=pass&idd=も開けます。
ただし、正しい・間違い関係なくパスの入力後の動作が、upload.php?id=と同じく表示されません。
表示されずにどんどんプロセスだけが増えていき、数十分でサーバー自体が繋がらなくなってしまいます。
特定の条件とは、受信パス付きファイルがアップロードされた直後なのですが、
起き出したのは最近です。
アクセスが多い少ないは余り関係が無く起るようです。
そして、画面が真っ白(読み込み中状態)のときに、
/sbin/fuser -kn tcp 80
/etc/rc.d/init.d/httpd restart
をすると、ぱっと開きます。なので何らかの原因で処理が出来ない物と思われます。
ログを見てもプロセスが増大してのTimeOutの記述しかなく、具体的な原因が分からない状態です。
どうぞよろしくお願いします<m(__)m>
0109nobodyさん
2009/11/19(木) 20:24:47ID:JXswh9pTマルチじゃないんだが
ちなみにマルチと思われるレスを教えて下され
0114106
2009/11/19(木) 21:56:20ID:JXswh9pT0116106
2009/11/19(木) 22:04:50ID:JXswh9pTあおりに乗ったことになるの?
なんでお前ごときにバカとか言われなきゃならんの?
アホなの?
0117nobodyさん
2009/11/19(木) 22:05:15ID:???0118106
2009/11/19(木) 22:08:28ID:JXswh9pT0119nobodyさん
2009/11/19(木) 22:51:13ID:???0120nobodyさん
2009/11/19(木) 23:14:11ID:???0122nobodyさん
2009/11/19(木) 23:16:56ID:???0123nobodyさん
2009/11/19(木) 23:18:48ID:???107=ちんぴら
乙
0125nobodyさん
2009/11/19(木) 23:26:26ID:???106が自分に言われたと思い込みが原因に一票入れておきます
0128nobodyさん
2009/11/19(木) 23:33:05ID:???スレが荒れてるからこっちへ誘導
くだらない質問でもど偉そうに聞いていいスレ
http://pc11.2ch.net/test/read.cgi/php/1158647441/
0130106
2009/11/19(木) 23:37:28ID:JXswh9pTもしそうなら>>121みたいな発言の前に
お前に行ってねーよカスって言ってれば済んでるだろ
頭わりーなお前
0131106
2009/11/19(木) 23:40:52ID:JXswh9pT主にCLIでの話だけどCLIだとスレチなのか?
だったら謝る
つーかWebProgだもんな
微妙にスレチっぽいな
屑どもには用はないから去るわ。
あーキモイキモイ
0135nobodyさん
2009/11/20(金) 00:01:53ID:???0136nobodyさん
2009/11/20(金) 11:28:38ID:???Eclipseとか使っているのですか?
0137nobodyさん
2009/11/20(金) 11:32:26ID:???0138nobodyさん
2009/11/20(金) 11:41:20ID:???とはいえちょっとした事するにはwindowsだと秀丸かphpエディタ、Linuxだとvim使ってる。
0140nobodyさん
2009/11/20(金) 11:50:56ID:???あとはpicoが好き
0141108
2009/11/20(金) 12:01:23ID:???PHPの設定はいじっていません。
余りに酷いので、OSを消して再度新規で入れ直しましたが、
また発生しました。パス付きページ及びupload.php?id=を生成する課程で何かが起ってるんでしょうか?
0142nobodyさん
2009/11/20(金) 12:36:12ID:???そこのサイトに設置してあるやつでも重い気がするけど
スクリプトがショボイだけとかだったりしない?
こういうのは地味にデバッグするしか手がないぞ
0143nobodyさん
2009/11/20(金) 12:58:57ID:HtgUuggv1)www.hoge.jp/users/id/YAMADA というアドレスでスクールAの情報を表示するとします
2)zendFWではルーティングの設定でwww.hoge.jp/YAMADAへのアクセスで、上と同じ情報を
だせるようになりました。
が、これではまだ不満で、 schoolA.hoge.jpで1)と同じ情報を表示するようにしたいです。
どうしたら、これを解決できるでしょうか?
ユーザーが自由に登録していく形のシステムをイメージしてるので、できれば .iniや.confを
逐一手動で触るのでない仕組みになったらいいなと思っています。
宜しくお願いします。
0144nobodyさん
2009/11/20(金) 13:01:42ID:???Zend Framework Part3
http://pc11.2ch.net/test/read.cgi/php/1239320100/
0145nobodyさん
2009/11/20(金) 13:04:31ID:???サブドメイン設定しろよ
0147nobodyさん
2009/11/20(金) 13:05:42ID:???0149nobodyさん
2009/11/20(金) 13:06:53ID:???だめなら自分でかけ
ぼけ
マルチ乙
0150108
2009/11/20(金) 13:09:24ID:???そのサイトの管理人さんはもう掲示板に出てこないんですよ・・・・
何かこれだという糸口でもつかめればと思いここで相談しました。
0151nobodyさん
2009/11/20(金) 13:11:18ID:???0154nobodyさん
2009/11/20(金) 13:13:59ID:???プッ
0155nobodyさん
2009/11/20(金) 13:14:51ID:L1RHfQMxりなくす
Smartyでテンプレートが無い場合に白い画面になっちゃうんで、エラーをハンドリングしたいんですけど出来ないでしょうか?
テンプレートがあるか判定なんてめんどーなことしないといけないんですかね?
0156nobodyさん
2009/11/20(金) 13:15:30ID:???マルチ乙
0157nobodyさん
2009/11/20(金) 13:16:12ID:???>・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0158nobodyさん
2009/11/20(金) 13:19:07ID:L1RHfQMx0159nobodyさん
2009/11/20(金) 13:20:05ID:???0161nobodyさん
2009/11/20(金) 13:24:32ID:L1RHfQMxぴーえちぴー5.3.0
りなくす
Smartyでテンプレートが無い場合に白い画面になっちゃうんで、エラーをハンドリングしたいんですけど出来ないでしょうか?
テンプレートがあるか判定なんてめんどーなことしないといけないんですかね?
0162nobodyさん
2009/11/20(金) 13:25:14ID:???自分で解決できないのにサポート終わってる?人のスクリプト使うなよ
あきらめるか、自分でやり通せ
0164nobodyさん
2009/11/20(金) 13:26:30ID:L1RHfQMx0168nobodyさん
2009/11/20(金) 14:00:30ID:???0169nobodyさん
2009/11/20(金) 14:03:45ID:???0170nobodyさん
2009/11/20(金) 14:14:08ID:???0171nobodyさん
2009/11/20(金) 14:21:10ID:???色定義、F1/F2でマニュアル、F9で構文チェック、左ペインのコードエクスプローラ、上下分割し下画面にブラウザ表示
これらがデフォで揃ってるからちょっといじるのには良い。
汎用エディタでもこれらはできるけどその設定が面倒な人には良いと思う。
コード補完・リモートデバッグ(ステップ実行)・svn/gitとの連携 まで必要ならIDEをどうぞ。
0172143
2009/11/20(金) 14:22:26ID:???うーん、すみません。やはりそちらで聞いてみます
>>145
サブドメインですか、調べてみます
>>146
無理かどうかわからなかったんで。。
ありがとうございました
0173108
2009/11/20(金) 14:38:57ID:???だからワラにもすがる重いでくだ質に流れ着いてきました
どなたかこれかも知れないと原因が予測できるかたいないでしょうか
よろしくお願いします<m(__)m>
0174nobodyさん
2009/11/20(金) 14:49:41ID:???誰か救済してやらんと・・・
0175nobodyさん
2009/11/20(金) 16:16:23ID:???テスト鯖なら別に知らんが
ttp://www.apache.jp/news/cve-2009-3555
0177nobodyさん
2009/11/20(金) 16:37:38ID:???PHPエディタで出来ることは全て秀丸でもできる
構文チェックなんてのも秀丸でも出来るしアウトラインにチェック結果を出力できる
サクラエディタでも構文チェックはできるがTerapadはできない
0178nobodyさん
2009/11/20(金) 16:51:57ID:???0179nobodyさん
2009/11/20(金) 17:06:36ID:???それに、あのふざけたボタンが個人的には駄目だ
だからphp.iniとか、簡単なテキスト処理ならばTeraPad未だに使ってるんだけどw
0180nobodyさん
2009/11/20(金) 18:18:02ID:???メモ帳みたいな不便な環境でなれてこそ強くなれるものだ。
IDEにずっと頼ってるとコピペしかできないゆとりプログラマーになるからね。
そういう意味でPHPにとっては拡張メモ帳でしかないTeraPadはお薦めだ。
0181nobodyさん
2009/11/20(金) 18:46:04ID:???0182nobodyさん
2009/11/20(金) 19:22:36ID:???>PHPエディタとか使うのは初心者だけ
の「とか」にはなにが含まれるのかな?
EclipseなんかのIDEも含まれるのかな?
>>178
サクラエディタ使ってないから完全な推測でしかないけど
WindowsでUnicode扱えるテキストエディタっていくつもあるけど
中には内部処理はSJISってのがある。
Unicodeにしかない文字(コード)が実際には扱えない。
って事でUnicode版ってあるんじゃないの?
それと従来のバージョンとしてのものも一応は残してあるとか?
>>180
だったらvi最強って事で、、、、
いちいちサーバからFTPでローカル環境に持ってこないでも
SSHログイン+viでサーバ上のファイル直接いじる。って事も必要になる場合もあるのでviくらい使えるようにしておかないとね。
0183nobodyさん
2009/11/20(金) 19:33:14ID:???0184nobodyさん
2009/11/20(金) 19:38:58ID:???0185nobodyさん
2009/11/20(金) 19:39:28ID:???そこまで求めちゃうのはPHP入門にしてはやりすぎだと思う
元々Unix使いでそういったことに慣れてるならまた別だけど
0186nobodyさん
2009/11/20(金) 19:41:23ID:???好みや慣れの問題だけど
ていうかエディタスレは別スレにあるからそっち見れ
0187nobodyさん
2009/11/20(金) 19:50:27ID:???0188nobodyさん
2009/11/20(金) 19:53:05ID:???unicode版で問題ないから使っとけ
>>182
サクラエディタの事しらないなら無理してレスしなくていいよ
unicode版はテストの目的で公開されてるわけで将来的に正式版に統合する前提になってるから
0190nobodyさん
2009/11/20(金) 21:38:51ID:???0191182
2009/11/20(金) 21:56:31ID:???Eclipse+PHPEclipse+Subclipseですけどなにか?
Eclipseの公式的にはPHPプラグインはPDTみたいだけど俺はPHPEclipseの方が使いやすい
ただし、PHPEclipseも1.1.x系だと問題はないんだけど同じ設定なのに1.2.x系だと「PHP Web Browser」の
アドレスバー部分の挙動がおかしいからEclipseも古い3.2.2を使い続けているけどなにか問題ある?
ちなみに普段使っているテキストエディタは
EmEditorとMeryの二つ。
プロジェクトとして管理するならEclipse側使って
ちょっとした小物のソース書くときはEmEditorかMeryを使っている。
0193nobodyさん
2009/11/20(金) 22:00:34ID:???0194nobodyさん
2009/11/20(金) 22:01:05ID:???まぁ現場でもそういう奴がいっぱいだけどねコミュ力皆無ww
ばっさばっさ切ってやるぜへへへ
0195nobodyさん
2009/11/20(金) 22:01:54ID:???0197nobodyさん
2009/11/20(金) 22:13:50ID:???そのへんのテキストエディタの名前挙げてるとしか思えんwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
0198182
2009/11/20(金) 22:25:40ID:???メインデスクトップがEmEditor。
それ以外環境(サブPCx2台。ノートPCx2台)がMery。
EmEditorって1ライセンスで複数台環境で使って良かったか?
0199nobodyさん
2009/11/20(金) 22:27:31ID:???俺はエディタとしては別に悪いとは思わんけど絶対使わん。
phpspot(笑)
0200nobodyさん
2009/11/20(金) 22:28:38ID:???くだらねーからもうやめろ沈下す
0201nobodyさん
2009/11/20(金) 22:31:20ID:???0205nobodyさん
2009/11/20(金) 23:37:05ID:u5rw3TXzパラメータのチェック(数値オンリー)をしたいんですけど
こんな感じでいいですか?
略
$ids = escape($_GET['page']);
$ids = abs((int) ($ids));
if(empty($ID){
echo 'じゃじゃーん♪♪ 残念!!何もありません';
}
0206nobodyさん
2009/11/20(金) 23:55:42ID:???PHPエディタって、どうよ?
http://pc11.2ch.net/test/read.cgi/php/1079460638/
0207nobodyさん
2009/11/20(金) 23:59:18ID:???ちゃんと伝わるように書いてくれるか?調子にのんなよ
まぁ名にしたいかはっきりわからんけど
in_numeric()じゃないのか?
0208nobodyさん
2009/11/21(土) 00:01:38ID:???0210nobodyさん
2009/11/21(土) 00:06:44ID:???本当に使ってたらこんな事書かないと思うんだよなw
Free版使ってるってことなら納得できるけどw
0211nobodyさん
2009/11/21(土) 00:33:33ID:???エディタで上級者気取りとかどんだけド素人なんだw
0212nobodyさん
2009/11/21(土) 00:40:32ID:???って、昔よく言われたなぁ。
0213nobodyさん
2009/11/21(土) 00:49:28ID:/0Sgr3xzMySQL(4.1.22)に保存した後、?に文字化けします。
文字コードはUTF-8で作っています。
どうやれば文字化けしなくできるのでしょうか?
0214nobodyさん
2009/11/21(土) 00:51:38ID:???0215nobodyさん
2009/11/21(土) 00:53:24ID:???0217nobodyさん
2009/11/21(土) 02:23:12ID:???0218nobodyさん
2009/11/21(土) 18:16:12ID:???どんな言語でもだけどマニュアルって膨大な上に順序良く書かれていなかったり、分からない部分が出た時に参照しにくいし、こんなのでほんとに学習できるのだろうかと思う
自分、色んな言語をやってきたけれど、全部まず本からだった
その過程で分からない部分はマニュアル行ったりしたけれど、マニュアルを全部確認したって言語は一つも無かった
まぁ俺が怠慢で各言語の奥まで突っ込んでいないからかもしれないけれど
そもそもあんなの読み続けていたら目も痛くなるしね
新しい言語とか、バージョンアップでそれに関しての本が出ないうちに習得しなければいけないのであればマニュアルしかないんだろうけれど
実際マニュアルだけで学習、習得したって人、俺は尊敬するよ
0219nobodyさん
2009/11/21(土) 18:24:29ID:???質問の答えがマニュアルにあるからそう言ってるだけだろ
何もマニュアルのみで学習しろとは言ってない
学習のためなら本でもネットでも好きなモノを効率よく使えばいい
ただPHPの場合、本も解説サイトも間違ってる場合が多々あるから困る
マニュアルが一番信用できるからマニュアル嫁とみな言うんだよ
ってテンプレに書いてあるだろ。
0221nobodyさん
2009/11/21(土) 18:34:20ID:???本なら痛くならないのか?
0222nobodyさん
2009/11/21(土) 18:55:45ID:???入門とか解説とかのサイトや本は「こう書いたらこうなった」が書いてある。
そういう根本的な違いがあるからだろうな。
やってみれば解る様な事でも、本当にそれでいいのか、マニュアルを
調べるクセがついてると後々楽だ。
0223nobodyさん
2009/11/21(土) 19:02:17ID:???自分の習得した言語で言うところの○○はマニュアルのインデックス見れば推測できるからね
0224nobodyさん
2009/11/21(土) 19:57:51ID:ilGujLBI「組み合わせを生成した配列」を出力するという処理を実装したいと思っています。
例えば、
$data = array('1','2','3');
という配列から、変数$outputに2個ずつ取り出すとすれば、
$output[0][0] = '1';
$output[0][1] = '2';
$output[1][0] = '1';
$output[1][1] = '3';
$output[2][0] = '2';
$output[2][1] = '3';
という組み合わせが重複しない、全3パターンの出力が欲しいのです。
そこで、過去スレを確認したところ、同様の質問があり、解答も貼られていたのですが、
(解答:http://pc11.2ch.net/test/read.cgi/php/1253061577/870)
ある配列の中身の時に上手く動作してくれません。
例えば、
for($i=0;$i<69;$i++){
$data[$i] = $i;
}
$output = combinations3($data,6);
print_r($output);
の時などです。
入力する配列が悪いのでしょうか、それともプログラムにバグがあるのでしょうか。
分かる方がいたら、よろしくお願いいたします。
解答が貼られた過去スレ(【PHP】下らねぇ質問はID出して書き込みやがれ 88)が落ちてしまっているので、
次のレスで、過去に貼られたプログラムを貼らせていただきます。
0225nobodyさん
2009/11/21(土) 19:59:09ID:ilGujLBI「【PHP】下らねぇ質問はID出して書き込みやがれ 88」より、「組み合わせを生成した配列」を出力するプログラムの過去スレ解答を貼らせていただきます。
--------------------------------------------------
$data = array('1','2','3','4','5');
print_r (combinations3( $data, 3));
function combinations3( $array , $num ) {
$n = count($array);
$x = (1 << $num ) -1;
$ret = array();
while ( ! ($x & ~( (1 << $n ) -1 ))){
$ret[] = arrayset($x,$array,$n);
$x =nextp($x);
}
return $ret;
}
function nextp($x) {
$s =$x & -$x;
$r = $x + $s;
$n = $r & -$r;
return ($r | ((floor($n/$s )>>1)-1));
}
function arrayset($x,$array,$n){
$r = array();
for( $i =1;$i<= $n;$i++){
if($x & 1) $r[] = $array[$i-1];
$x = $x >>1;
}
return $r;
}
--------------------------------------------------
分かる方がいたら、よろしくお願いいたします。
0226nobodyさん
2009/11/21(土) 20:24:18ID:???http://www.google.com/search?hl=ja&q=%E7%B5%84%E3%81%BF%E5%90%88%E3%82%8F%E3%81%9B+%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0&lr=&aq=f&oq=
ネット上にいくらでも転がってるよ
キーワードも多少変えて試してみると吉
0227nobodyさん
2009/11/21(土) 20:36:44ID:???配列に置き換えて頑張ってみてね。
69C6 だと 119877472個にもなりますが・・・
0228nobodyさん
2009/11/22(日) 00:43:21ID:4pj+bEHt$limit = 100;
for($i=0;$i<mb_strlen($text);$i+=$limit){
$array[] = mb_substr($text,$i,$limit);
}
これで区切れるのですが、$textにHTMLが混入されている場合
表示がおかしくなってしまいます。
何か良い方法はないでしょうか?
0229nobodyさん
2009/11/22(日) 00:49:41ID:???ちょっとやってみっか
0230nobodyさん
2009/11/22(日) 00:52:40ID:???HTML含める必要はあるの?
0231nobodyさん
2009/11/22(日) 00:53:58ID:???0232228
2009/11/22(日) 01:01:41ID:4pj+bEHt>>228のような事をやっていました。
jQueryと連動させて、長い文字の場合は「...」が表示されるようにし、
(続き)をクリックすると全ての文章が表示されるような。
ブログや携帯サイトでは良くある機能だと思うのですが、
どうしてもHTMLが入った場合を想定すると、難しいので質問しました。
0233nobodyさん
2009/11/22(日) 01:27:18ID:???普通は区切ったあとにHTMLに埋め込むと思うんだが
0234nobodyさん
2009/11/22(日) 01:39:26ID:???何をしたいんだろう・・・
0235nobodyさん
2009/11/22(日) 01:56:30ID:gDLswFX5■メタ文字
. 改行を除く任意の 1 文字
とありますが、改行を除きたくない場合ってどうすればいいんでしょうか?
よろしくおねがいします
0236228
2009/11/22(日) 01:58:10ID:4pj+bEHtブログや携帯サイトを見ると、文字数で分割しているように見えたので、
単純に考えていたのですが、実際はtextをタグとタグ以外の部分で分けないと
「出来ない」という結論になるのでしょうか?
技術的に不可能な事をお尋ねしているのなら、馬鹿すぎですね。。申し訳ありません。
0237nobodyさん
2009/11/22(日) 02:03:02ID:???http://jp2.php.net/manual/ja/reference.pcre.pattern.modifiers.php
0238nobodyさん
2009/11/22(日) 02:12:08ID:gDLswFX5sにしたら見事できました
ありがとうございました
0239nobodyさん
2009/11/22(日) 02:38:05ID:???文章区切ってどうしたいのか分からんのですよ。 10文字までで切って ・・・つけるとかはやるけど。
どっか参考のページ教えてくれれば。
0240nobodyさん
2009/11/22(日) 02:44:08ID:???それはエスケープしてないからでしょ?
最後出力するときにhtmlspecialcharsかませればいいんじゃないの?
むしろ必須なんだけどな
0244nobodyさん
2009/11/22(日) 12:47:49ID:???指定文字数にした後に、タグを元の位置に戻してやる感じかね
0247nobodyさん
2009/11/22(日) 13:56:03ID:???htmlタグ中ならスキップ、文字なら数える
使用する文字コードの知識が必要
例えばsjisなら1バイト文字か2バイト文字かとか
携帯絵文字が入ってたりするとその処理も必要
0250nobodyさん
2009/11/22(日) 14:15:20ID:???0253nobodyさん
2009/11/22(日) 14:25:12ID:???つなぎあわせてもできる
ただ、タグには意味があるから単純に文字数で分割するだけじゃおかしくなるっしょ
どんなタグがあるか、なんでもありなのか?
<b><i>abcd</i>efg</b> 「f」までカウントして以降を切り落とすわけにはいかないよね
0254nobodyさん
2009/11/22(日) 14:43:11ID:???0255nobodyさん
2009/11/22(日) 14:57:36ID:???0257nobodyさん
2009/11/22(日) 15:16:23ID:???0259nobodyさん
2009/11/22(日) 16:34:05ID:???http://php.net/manual/ja/function.strip-tags.php
公式なマニュアルに
「strip_tags() は HTML の検証を行わないため、 不完全または壊れたタグにより予想以上に多くのテキスト/データが削除される可能性があります。 」
って警告あれば使うのためらうと思うよ。
0264nobodyさん
2009/11/22(日) 18:26:29ID:???0265nobodyさん
2009/11/22(日) 18:28:11ID:???0267nobodyさん
2009/11/22(日) 18:31:07ID:???0268nobodyさん
2009/11/22(日) 18:33:14ID:???PHPの基礎を学習後はどんなサイトや本、雑誌見て勉強してるのですか?
0269nobodyさん
2009/11/22(日) 18:40:58ID:???0271nobodyさん
2009/11/22(日) 18:49:43ID:???見た目、というか地味で表に出てこないから仕方が無いのだろうけれども
0272nobodyさん
2009/11/22(日) 19:04:23ID:???0273nobodyさん
2009/11/22(日) 19:08:27ID:???>クライアントサイドというか、HTML、CSS、JavaScriptの雑誌はいっぱいあるけど
デザイナ向けの雑誌ね。
>サーバサイドの雑誌ってないよな
サーバサイド向けのUNIX系雑誌の連載記事としてちょこちょことPHPに限ったことではないけど出てくることあるよ。
そういえば昔購読していたLinux magazineにもRubyとかPythonなどの記事あった。
それと、技術者向けの雑誌はここ数年でどんどんと休刊になっている気がする。
昔のマイコンベーシックみたいな雑誌はもう出てこないんだろうな。
アレはアレで勉強になった。し多くのプログラマにとって登竜門的な役割をしていたな。
0274nobodyさん
2009/11/22(日) 20:18:53ID:???地味だから売れないんだろうな・・・w
0276nobodyさん
2009/11/22(日) 20:47:42ID:???確かに、本は基礎がわかりやすくて、サンプルアプリの解説も役立つけど、
そこからのステップアップをどうしたら良いかわからなくなる。
ランキング付きリンク集を作りたいけど、どう設計したらいいかとか見当つかない。
0278nobodyさん
2009/11/22(日) 20:53:53ID:???0279nobodyさん
2009/11/22(日) 20:57:32ID:???0282108
2009/11/22(日) 21:14:14ID:???flockがまともに機能しなくなりました。
この辺みんなはどうしてるんでしょうか?
0283nobodyさん
2009/11/22(日) 21:18:31ID:zH4HInjd>>280 inカウントはリファラの取得というのはわかります。
outカウントはどうするのですか?これがわかりません。
0284nobodyさん
2009/11/22(日) 21:20:11ID:???0285nobodyさん
2009/11/22(日) 21:22:05ID:???対応ならflock機構に穴があるんじゃよ
0286nobodyさん
2009/11/22(日) 21:23:19ID:???「文法わかったけど、まとまったサイズのプログラムが書けない」
って話はよくあるよな。
頭の使い方が、文法覚えるのと全然違うからしょうがないんだよね。
使い古された言い方だけど、他人の書いたソースを沢山読むしか
無いんだろう。
>>279 >>281
自分に足りないものは先に行かないと解らないから、しょうがないよ。
0287nobodyさん
2009/11/22(日) 21:25:31ID:???outはどうする?とか聞いてる時点で起訴も何もわかってないか、
ただのバカ。発想力のかけらもない。おれなら首切るね。つーか雇わんね
0289276
2009/11/22(日) 21:51:23ID:zH4HInjdそのURLを取得すれば良いのでしょうか?
>>287
そもそも、プログラミング学習歴3ヶ月だから、首切るとか雇わないとか
いうレベルじゃないです。まあバカだから雇われない。
>>286
すいませんでした。
ソースコードをたくさん読む必要性は、とても感じてます。
だけど、量が多い上、解説が無いと初心者にはかなりきついです。
0290nobodyさん
2009/11/22(日) 21:59:26ID:???ランキングって甘くないぞ
不正対策も考えなきゃな。モバイルだったらこれ大変。PCでもだけど。
どっかから誰かが作ったの拾ってこい。
0292nobodyさん
2009/11/22(日) 22:16:25ID:???プログラム 犬小屋 高層ビル でぐぐったら出てくるぞ。
諺の説明じゃなくて、普通に使ってるようなやつが。
たとえば
>道具(オブジェクト指向言語など)を学ぶことに熱心な人は多いんだが、
>それを有効に使う為の基本的な工学知識が不足している人が多いと思う。
>金槌や釘の使い方を学べば犬小屋ぐらい作れるが、いくら金槌の使い方が
>うまいからといって高層ビルを建てるには、もっと別の知識が必要ですからね。
0293nobodyさん
2009/11/22(日) 23:01:47ID:???お そ .い ヽ
か の や |
し り ` ,. -──- 、
い .く / /⌒ i'⌒iヽ、
つ / ,.-'ゝ__,.・・_ノ-、ヽ
は i ‐'''ナ''ー-- ● =''''''リ _,....:-‐‐‐-.、
l -‐i''''~ニ-‐,....!....、ー`ナ `r'=、-、、:::::::ヽr_
 ̄ \ヽー' !. t´ r''"´、_,::、::::} ノ` ,.i'・ ,!_`,!::::::::::::ヽ
ヾ、 ゝゝ、,,ニ=====ニ/r'⌒; rー`ー' ,! リ::::::::::::ノ
i`''''y--- (,iテ‐,'i~´,ゝ'´  ̄ ̄ヽ` :::::::::::ノ
.| !、,............, i }'´ _ 、ー_',,...`::::ィ'
●、_!,ヽ-r⌒i-、ノ-''‐、 ゝ`ーt---''ヽ'''''''|`ーt-'つ
( `ーイ ゙i 丿 ;'-,' ,ノー''''{`' !゙ヽノ ,ヽ,
`ー--' --'` ̄ `ー't,´`ヽ;;;、,,,,,,___,) ヽ'-゙'"
(`ー':;;;;;;;;;;;;;;;ノ
``''''''``'''''
0294nobodyさん
2009/11/23(月) 00:20:33ID:???俺の県にじは売ってないぞw
田舎だからな・・・
サーバサイドってクライアントサイドからすると目立たず地味なくせにかなり大変だよな
クライアント側なんて俺ならちょいちょいって感じで出来るんだけれど、サーバサイドでココでPOSTをこう展開するとか、データベースをこう使ってとかなると混乱する事がある
しかも、ミスったらクライアントサイドと違って致命的なダメージを受けてしまうし神経使うよ
学習もクライアント側からすると遥かに時間かけた
0295nobodyさん
2009/11/23(月) 00:23:52ID:???工作ではありません
犯罪性のある書き込みをチェックし犯行を未然に防ぐのが業務です
基本的には読むだけ(というか熟練すれば一瞥するだけで充分判ります)ですが
事実と異なる中傷などを見掛けた場合はその場で情報の訂正を行う事もあります
0296nobodyさん
2009/11/23(月) 00:24:44ID:???0297nobodyさん
2009/11/23(月) 10:28:29ID:OIwIUaSpすごく気持ち悪いんですけど。
ttp://gomojp.blog77.fc2.com/blog-entry-114.html
>>283
以前作ったのは、外に行くリンクは特定のURIを踏んで、例えば
/count.php?uri=http://URLエンコードしたリンク先URI
のように張ってそこで、カウントするのを作ったことがある。
ただこの方法はとび先の解析のリファラがみんな同じになっちゃってどこから飛んできたか
わからないのが何かな。headerをいじってリファラを一個前のにできたかもしれないけど、その時は特に問題がないので試さなかった。
あとPCサイトだったら、javascriptですべてのaタグのhrefを調べて外に飛んでたら置き換えとかすると、既存のページをいじらなくて済む。
0298nobodyさん
2009/11/23(月) 10:38:35ID:???モダン?なフレームワークを使ってみて、そのソースコードを追ってみると良いかもしれない。
人の作ったコードを読むといっても、それがひどいコードだったらあんまり意味ないし。
おすすめはZendFramworkとsymfonyかな。この二つのフレームワークが使いやすいとか、良いとかいうのではなく、よく設計されてて、勉強になると思う。あとフレームワークじゃないけどDoctrineも勉強になった。
あと、他のプログラミング言語何か勉強してる?PHPしか知らないプログラマってかなり問題だと思う。まあ、先は長いと思うけど、お互いがんばろう!
0302nobodyさん
2009/11/23(月) 11:52:41ID:???publicなメソッドから、privateなメソッド(メンバ関数)呼べたら気持ち悪いって…
publicなメソッドから、privateなフィールド(メンバ変数)扱えたら気持ち悪いか?
0304nobodyさん
2009/11/23(月) 13:22:53ID:???0305nobodyさん
2009/11/23(月) 13:52:45ID:???ではなく
「何を作るのか」
が重要なんでは無かろうか
0306nobodyさん
2009/11/23(月) 14:46:21ID:i4rNMi7t2009年1月2日
2009年1月3日
・・・・・・・
というリストがあり、
これを
20090101
20090102
20090103
というように直したいと考えています
正規表現を用いて、2009 1 1 という感じで分割して
月数と日数の部分が1ケタだったら、先頭に0をつける(2009 01 01)
この方法が思いついたのですが、
これより簡単な方法があれば教えてほしいです
0307nobodyさん
2009/11/23(月) 14:53:55ID:???date関数通しなおす
0308nobodyさん
2009/11/23(月) 14:58:18ID:???とりあえず左側に0をつけて、右から2文字を切り出すというのではどう?
あるいはm[0]="01"・・・のような配列を用意しておいて、読み込む。
簡単だから処理が速いとは限らないけどね。
0309nobodyさん
2009/11/23(月) 15:08:21ID:???0310nobodyさん
2009/11/23(月) 15:14:56ID:???$str = preg_replace('/[^0-9]/', '-', $str);
$uts = strtotime($str);
return date('Ymd', $uts);
}
ためしとらん
0311nobodyさん
2009/11/23(月) 15:16:31ID:???0312nobodyさん
2009/11/23(月) 15:17:59ID:???いやなら
sscanfつかえば
0313nobodyさん
2009/11/23(月) 15:18:50ID:???0314nobodyさん
2009/11/23(月) 15:19:51ID:???list($year, $month, $day) = sscanf($d, "%d年%d月%d日");
echo sprintf("%d%02d%02d", $year, $month, $day);
0315nobodyさん
2009/11/23(月) 15:22:15ID:???「年月日で入ってくる以上正規表現使うだろ」
0316nobodyさん
2009/11/23(月) 15:25:31ID:???正規表現なりのパターンマッチが必要だろ
312にsscanfも書いてんだし
無能はされ
0317nobodyさん
2009/11/23(月) 15:28:21ID:???0318nobodyさん
2009/11/23(月) 15:28:36ID:???0319nobodyさん
2009/11/23(月) 15:35:12ID:rXJjujSh0320nobodyさん
2009/11/23(月) 15:40:02ID:???0322nobodyさん
2009/11/23(月) 15:42:23ID:???0323nobodyさん
2009/11/23(月) 15:49:37ID:???フレームワークだ
すなわち
_____
| |
| |
| |
|____|
0324306
2009/11/23(月) 15:56:08ID:i4rNMi7t0325nobodyさん
2009/11/23(月) 16:09:17ID:???年月日で入ってくる以上正規表現使うだろ
いやなら
sscanfつかえば
恥ずかしいwwww
0326nobodyさん
2009/11/23(月) 16:14:22ID:???ハイ次
0327nobodyさん
2009/11/23(月) 16:31:30ID:???0328nobodyさん
2009/11/23(月) 16:33:42ID:???懇親会で「たまにphpのスレで暴れてる」と言ってた某パーラーさん見てますか?
0329nobodyさん
2009/11/23(月) 17:35:17ID:???遅レスだが、定義したクラスから呼ぶんだから、問題なかろう。
そもそも
$child->addChild(new Child());
の時、Super::addChild()の中の$thisのクラスはChildだ。
0330nobodyさん
2009/11/23(月) 17:37:05ID:???0331nobodyさん
2009/11/23(月) 17:46:31ID:???0332nobodyさん
2009/11/23(月) 18:21:20ID:YeA+xhX1指定したファイルの指定した部分に書き換えることは可能ですか?
何がしたいのかというと、コマンドライン実行部分をユーザが、自由に変えられるようにしたいので
フォームに入力したコマンドラインを、指定したファイルのコマンドライン実行部分に書き換えができればいいです
もちろんコマンドラインなのでlinuxだとrm -rf *みたいなのもやられますが、そういうことをするユーザはいないという前提です
何かこうしたほうがいいみたいな対案があればよろしくお願いします
0333nobodyさん
2009/11/23(月) 18:23:38ID:???ハイ次
0334nobodyさん
2009/11/23(月) 18:23:48ID:???そういうバックドアみたいなのがあって、
すごい勢いでアタックが来たっけな・・・
0335nobodyさん
2009/11/23(月) 19:26:29ID:???やっぱID出さんでもスレがないと駄目だな・・・
0336nobodyさん
2009/11/23(月) 21:58:11ID:???0337nobodyさん
2009/11/23(月) 23:08:55ID:???0338nobodyさん
2009/11/24(火) 03:29:04ID:???わざわざ分離してやったのに早く新スレたてて巣へ帰れ
0339108
2009/11/24(火) 04:15:27ID:???何でだろう
0340nobodyさん
2009/11/24(火) 04:27:35ID:???場所をわきまえろといった感じだが
まぁ変な質問者も回答者もスルーすればよい
頑張ってるのは1.2人しかいないんだから
0343nobodyさん
2009/11/24(火) 10:23:05ID:???正規表現クン
OCNくん
ちんぴらくん
文字列分割君
0344nobodyさん
2009/11/24(火) 10:29:23ID:???「PHPは俺が伝授してやる」とか何とかのスレがあったが、あのレベルになってしまってるよ
まぁ、同一人物じゃないかとは思うが・・・
質問が、荒れた雑談のせいで通らなくなるケースもあるからね
0346nobodyさん
2009/11/24(火) 11:39:22ID:9u891mXW会員制のサイトを個人のプログラマー製作してもらったのですが、
行方不明になり修正を頼めなくなりました。
登録用メールアドレスですが、@の前にハイフンがついていると
新規登録できずに"メールアドレスが異常です"とエラーがでます。
これを登録できるように修正したいのですが
ファイルを見ていると、下記の部分かなあと
思うんですが、どのように修正すれば良いでしょうか。
$mailmach = "([[:alnum:]_\-\.]+)(\?|@)([[:alnum:]_\-]+\.[[:alnum:]_\-\.]+)";
if (checkMultiBitesString($_REQUEST['mailaddress'])) {
$error_mes .= '全角文字は使用出来ません<br />';
} else if (!eregi($mailmach,$_REQUEST['mailaddress'])) {
$error_mes .= 'メールアドレスの形式が異常です<br />';
0347nobodyさん
2009/11/24(火) 11:41:03ID:???まあこのレスも鉄則に反してるけど許して
0349nobodyさん
2009/11/24(火) 12:09:04ID:9u891mXWご回答ありがとうございます。
ド素人ですいません、@の前の「\-」↓のようにするってことでしょうか。
$mailmach = "([[:alnum:]_\.]+)(\?|@)([[:alnum:]_\-]+\.[[:alnum:]_\-\.]+)";
0350nobodyさん
2009/11/24(火) 12:43:36ID:???とても困難だと聞いたことがあるな。
無理せず地道にチェックする関数を、別のプログラマに書いてもらった方が
先々にも良いんじゃないかな。
0351nobodyさん
2009/11/24(火) 12:44:12ID:???0352nobodyさん
2009/11/24(火) 12:44:59ID:???0353nobodyさん
2009/11/24(火) 12:50:21ID:???プロバイダメールもYahooもGoogleもRFCに準拠したメール作れないし
マイナーなメールなんて荒らし目的なんだから一般的なチェックだけしてりゃいいんだよ
0355nobodyさん
2009/11/24(火) 13:12:14ID:t2/f6k4Nxmlで再度保存したいのですが
simple_xml_load_fileの逆の関数ってないですか?
また、ない場合どのように保存すれば良いのでしょうか。
0356nobodyさん
2009/11/24(火) 13:14:21ID:???0357nobodyさん
2009/11/24(火) 13:20:49ID:???その回答は間違ってるので無視して
というか元の正規表現が @unko@example.com@ でも受け付ける程うんこ
symfonyのバリデータからパクってきたので置き換えてね
} else if (!preg_match('/\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\z/i', $_REQUEST['mailaddress'])) {
$error_mes .= 'メールアドレスの形式が異常です<br />';
>>355
http://jp.php.net/manual/ja/simplexmlelement.asXML.php
0358nobodyさん
2009/11/24(火) 13:23:10ID:t2/f6k4Nありがとうございます!
これPEAR?
0359nobodyさん
2009/11/24(火) 13:30:27ID:???サービス(サービスA)をおいているサーバーのURLを指定すると失敗します。
サービスAでサービスAのURLを指定→失敗
サービスAでサービスBのURLを指定→成功
ローカルからサービスAのURLを指定→成功
ローカルからサービスBのURLを指定→成功
尚、allow_url_fopenは有効になっています。
なぜかAからAの場合だけ失敗します。
何か原因が考えられるでしょうか?
0360359
2009/11/24(火) 13:47:00ID:???ここは池沼が多いのでプログラム板で聞きます
0361nobodyさん
2009/11/24(火) 14:17:36ID:???0363nobodyさん
2009/11/24(火) 14:32:04ID:???0364nobodyさん
2009/11/24(火) 15:49:37ID:???えー、ホントにそれでいいの? エラーが出るってのも変な話な上に でたらめなアドレス+正しいアドレスでも通っちゃうような
変なチェックだよ? -とったら、通るわけ無いのに。
この場合はどーでもいいけど、eregiとかで返り値0のときもあるんでその書き方やめようよ。
0365nobodyさん
2009/11/24(火) 15:54:07ID:fu2efFAP検索してみたのですが、APCとmemcacheの比較ページなどがでてきて、競合しているような感じでした。
memcacheは一部のSQL結果を複数台にキャッシュしておくのに使おうと思っています。
0367nobodyさん
2009/11/24(火) 16:05:10ID:9u891mXWありがとうございました。
ただ、構文エラーが出てしまいます。。。
0368nobodyさん
2009/11/24(火) 16:14:08ID:9u891mXWなんか偽物がでてきてややこしくなってますね。
362の方が偽物です。
0369nobodyさん
2009/11/24(火) 16:17:25ID:???0370nobodyさん
2009/11/24(火) 16:43:14ID:???0371nobodyさん
2009/11/24(火) 16:45:25ID:???0372nobodyさん
2009/11/24(火) 16:48:07ID:???0373357
2009/11/24(火) 17:10:04ID:6BE8AIaE>>358
SimpleXMLの組み込みクラス
http://jp.php.net/manual/ja/book.simplexml.php
>>365
可
memcacheはmemcachedサーバのクライアント
APCは共有メモリを使うだけ…だよね?嘘言ってたらごめん
>>368
ID出てるから分かってるよ。>>1の通り相手はしないでくれ
修正前 } else if (!eregi($mailmach,$_REQUEST['mailaddress'])) {
修正後 } else if (!preg_match('/\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\z/i', $_REQUEST['mailaddress'])) {
これだけで構文エラー出ちゃう?そうならエラー内容を省かず書いて下さい
0374nobodyさん
2009/11/24(火) 17:20:11ID:???イ
ちょっと違うw
0375nobodyさん
2009/11/24(火) 19:34:03ID:lkrJ2WGJ0376nobodyさん
2009/11/24(火) 19:38:39ID:t2/f6k4N0377nobodyさん
2009/11/24(火) 19:52:31ID:???0378nobodyさん
2009/11/24(火) 19:55:04ID:xR1IV2Mwまさかそんな理由で処理が止まっていたとは…予想外でした…
とりあえず、69の部分を減らす努力をしてみて、無理そうであれば配列に置き換えたプログラムを作成してみようと思います。
ありがとうございました。
0380nobodyさん
2009/11/24(火) 21:11:16ID:???昔はPEAR::DBをみな使ってたから、普通に業務でも使われてる。
ネットスーパーのトップ5に入るシステムはpear::DBだよ。
でも今から開発するならmdb2やpdoにしたほうがいい。
マニュアルにも
「This package has been superseded. Please use MDB2 for new projects. 」
とあるしね。
0381nobodyさん
2009/11/24(火) 21:26:09ID:???OCNとちんぴらは俺が初心者にPHPを(ryの登場キャラクターだろ?
スレ跨いで持ち込まないでくれるかな
巣へおかえりくださいまし
0382nobodyさん
2009/11/24(火) 21:37:15ID:???これからやるならPEAR::DBはもう保守のみだから後継のMDB2を使った方がいいよ。
もしくはPDO。速度的にはPDOが一番みたいだからね。
0383nobodyさん
2009/11/24(火) 22:09:40ID:???0384nobodyさん
2009/11/24(火) 22:12:46ID:???0385nobodyさん
2009/11/24(火) 22:55:06ID:???pearだよ
Manual :: MDB2
http://pear.php.net/manual/ja/package.database.mdb2.php
0386368です
2009/11/24(火) 23:03:36ID:cyQ946/cエラーでませんでした。
メチャメチャ感謝しております。
今度はあなたのような知識も人格も素晴らしい人に
作ってもらいたいです。
本当にありがとうございました。
0388nobodyさん
2009/11/25(水) 00:24:35ID:???これでID隠蔽厨がこちらの聖域に攻めてくるってことか
0389nobodyさん
2009/11/25(水) 00:30:07ID:???0390nobodyさん
2009/11/25(水) 00:31:00ID:???0391nobodyさん
2009/11/25(水) 00:35:01ID:???全員ID表示にしないと改善しないよ。
0393nobodyさん
2009/11/25(水) 05:13:10ID:???0394nobodyさん
2009/11/25(水) 05:48:37ID:???煽り耐性つけようぜ
0395nobodyさん
2009/11/25(水) 09:37:13ID:24OMfQgXphpスクリプトがそのまま(でもないですが)処理されず表示されます。
htmlソースでみると、phpスクリプトそのまんま表示されています。
5.2のときは問題なかったのですが。
どこを確認すればいいでしょうか?
0397nobodyさん
2009/11/25(水) 10:41:07ID:HdHoonJ/計算から出した答えの小数点以下を切り捨てするのですが、floorを使っています。
3000の58%、つまり3000*0.58をfloorで切り捨てています。
3000*0.58は1740となるので、小数点以下はないのですが、floorをかけると1739となってしまいます。
floor(3000*0.58)が1739となるのです。
試しにfloor(1740)とすると、ちゃんと1740と返ってきます。
どうしてこういう現象が起こるのでしょうか?
小数点切り捨てはfloorではなく、(int)nで行ったほうがいいのでしょうか?
0398nobodyさん
2009/11/25(水) 10:48:50ID:???丸め誤差とか桁おちとかそのへんのキーワードで調べてみるといいかもしれん
0399nobodyさん
2009/11/25(水) 10:52:09ID:???0400nobodyさん
2009/11/25(水) 21:22:00ID:7eSRtgQBファイルはローカル上のスクリプトと同じディレクトリにあります。
OSはWindowsです。
0401400
2009/11/25(水) 21:44:42ID:7eSRtgQB読み取り専用かどうかはis_writable()、隠しファイルかどうかはfileperms()
で見れば良かったんですね・・・迂闊でした
0402nobodyさん
2009/11/25(水) 22:17:22ID:QdGBdfZsCannot send session cookie - headers already sent by (output started ・・・・)
って言われちゃうのって、何が原因でしたっけ?
でphp.iniのどこを直せばよかったんでしたっけ?
前のこのスレにあったと思ったのですが・・・
0403nobodyさん
2009/11/25(水) 22:19:03ID:???0404nobodyさん
2009/11/25(水) 22:43:18ID:???配列に連続した数値を一括して代入したいのですが、
例1: $arrInt = array(0, 1, 2, 3, 4, 5, 6, 7, 8 ,9 ,10);
例2: for ($i = 1; $i <= 100; $i++) { $arrInt[] = $il; }
↑以外の方法ってありますでしょうか。
イメージとしては
$arrInt = array(0..10);
みたいなのが無いかなーと思って公式サイトを探して見たんですが、見当たりませんでした。
0406404
2009/11/25(水) 22:44:27ID:SfJ3bZNu改めて宜しくお願いします
0407404
2009/11/25(水) 22:45:32ID:SfJ3bZNuおお、即答ありがとうございます!
リファレンス見てきます!
0408402
2009/11/25(水) 23:32:36ID:QdGBdfZsありがとうございました。
でも解決できてません。
何をしたら・・・・
0410nobodyさん
2009/11/26(木) 04:32:58ID:um0Zr4zV【PHPのバージョン】php 5.26
【質問内容】
スクリプトの文字コードはSJIS、HTMLもSJISで出力しています。
form の input type=text に文字列を入力し、POSTされた値を $_POST で受け取る
処理を作っています。
form にSJIS以外の文字を入力されると、IEの場合は数値文字参照で渡ってくる
様なのですが、これをはじくことは出来ませんか?
また、SJISに変換可能な場合は極力変換したいです。
なお、SJIS以外の文字とは、↓の補助漢字や、第四水準の文字をコピペした場合です。
ttp://www.shuiren.org/chuden/teach/code/main5.htm
0411nobodyさん
2009/11/26(木) 05:11:51ID:???正規表現で文字コードの範囲内かどうかをチェックするなり
すればいいんじゃないかな?
0413nobodyさん
2009/11/26(木) 10:57:24ID:uEHoE6AG【PHPのバージョン】php5.26
【連携ソフトウェア】mysql
mysql+PHPでレコードされているデータを
取り出すときに
while(){$data.=$hoge[hoge];}
の形式で取り出していますが。
取り出したデータがおかしい時は処理をやめて
次の配列番号に移行したいのですがcontinueを使うとwhile文自体が
終了してしまいます。そこで
while(){
if(strlen($hoge[hoge])<1){
$data.="";}
else{$data.=$hoge[hoge];}
}
といった条件式で振り分けるとなぜか全データが表示されません。
for文で使えるcontinueに変わるような書き方はないでしょうか?
0415nobodyさん
2009/11/26(木) 11:00:28ID:???while(){
while(){
while(){
while(){
while(){
え?
0416nobodyさん
2009/11/26(木) 11:09:36ID:LHR/M1Ke正規表現でどう表現すればいいのか・・・
ググってはみたものの、サイトによってバラバラで決め手にかけるもので・・・。
0417nobodyさん
2009/11/26(木) 11:11:13ID:???0418nobodyさん
2009/11/26(木) 11:14:28ID:???0419nobodyさん
2009/11/26(木) 11:17:19ID:???0420nobodyさん
2009/11/26(木) 11:34:44ID:???0421nobodyさん
2009/11/26(木) 11:48:12ID:???0423nobodyさん
2009/11/26(木) 14:21:22ID:hCTIM6Hwその中で特に記述が簡単で高機能な物ってなんでしょうか?
0424nobodyさん
2009/11/26(木) 15:16:32ID:???お前のことはお前がよくわかってんだろ
0425nobodyさん
2009/11/26(木) 20:06:32ID:???煽り系低脳
>>415 >>419 >>421 >>424
口は悪いが優しい
>>417
突き放し系
>>412
独り言
>>420
意図不明(揚げ足取り?)
>>414
尤もな意見
>>418 >>422
まともな回答
>>411
0427nobodyさん
2009/11/26(木) 20:20:59ID:???がいなくなれば少しは良いスレになるということか・・
0433nobodyさん
2009/11/26(木) 21:12:51ID:???0434nobodyさん
2009/11/26(木) 21:16:42ID:???0436nobodyさん
2009/11/26(木) 21:36:21ID:???0437nobodyさん
2009/11/26(木) 22:09:56ID:???巣へ帰れ
http://pc11.2ch.net/test/read.cgi/php/1167984858/
0438nobodyさん
2009/11/26(木) 22:12:51ID:???0439nobodyさん
2009/11/26(木) 22:12:59ID:???ていうかそれだけじゃよくわからないけど
for文で解決するならfor文使えばいいのでは?
while文でできることはfor文でもできるんだし
0440nobodyさん
2009/11/26(木) 22:16:09ID:???0441nobodyさん
2009/11/26(木) 22:20:23ID:???かしこぶって煽り耐性がない=OCN
0442PHP学習中
2009/11/26(木) 22:21:09ID:???for ($hoge as $val)
{
if (!empty($val))
$data .= $val;
}
とかじゃダメ?
0447nobodyさん
2009/11/26(木) 23:19:44ID:???0448nobodyさん
2009/11/26(木) 23:20:44ID:???0450nobodyさん
2009/11/26(木) 23:22:33ID:???0452PHP学習中(>>442)
2009/11/26(木) 23:30:48ID:???修正版↓
foreach ($hoge as $val)
{
if (!empty($val))
$data .= $val;
}
0453nobodyさん
2009/11/26(木) 23:38:43ID:???センスねえきめえコードだな
0454PHP学習中(>>442)
2009/11/26(木) 23:43:17ID:???名前のとおり、学習中だから。。
どうすればいいの?
0459nobodyさん
2009/11/26(木) 23:49:24ID:???0460nobodyさん
2009/11/26(木) 23:50:27ID:???0461nobodyさん
2009/11/26(木) 23:54:11ID:???sampleテーブルのtestカラムの全レコードをSELECT抽出して
異常なデータを除いて連結するスクリプトよろ
0465PHP学習中(>>442)
2009/11/27(金) 00:04:41ID:???while ($hoge = mysql_fetch_assoc($rc))
{
ここで処理
}
みたいな書き方にならない?
「回す前に空は取り除けよ」って、できるの?
0467nobodyさん
2009/11/27(金) 00:26:04ID:???特徴丸出しでOCNに責任転嫁とは見苦しい
0468nobodyさん
2009/11/27(金) 00:30:09ID:???0469nobodyさん
2009/11/27(金) 00:36:27ID:wQd2OSTwこういう連想配列の場合に値のファイル名だけ取得したいのですが、
再帰以外で方法は無いでしょうか?
0470nobodyさん
2009/11/27(金) 00:40:58ID:???0472nobodyさん
2009/11/27(金) 03:11:44ID:???0473410
2009/11/27(金) 09:32:06ID:U/jB2eYt数値文字参照をmb_detect_encoding()で判定してもASCIIにしか判定されないのよね。
?[0-9];で構成された文字列だし。
mb_convert_encoding($str, 'SJIS', 'HTML-ENTITIES');
で、数値文字参照を通常の文字列に変換出来ることは分かったけど、SJIS以外の文字は
"?"に変換されるみたいで、元から"?"を含む文字列だと変換に失敗したのか判断に困る。
> 正規表現で文字コードの範囲内かどうかをチェックするなり
これをやろうとすると、SJISとUTF-8(数値文字参照)のマッピングが細切れになってて、
結構大変そうです。
0474nobodyさん
2009/11/27(金) 09:37:47ID:???Perl Advent Calendar みたいに、
PHP Advent Calendar があるといいかも。
0476nobodyさん
2009/11/27(金) 10:01:31ID:???0477nobodyさん
2009/11/27(金) 10:05:38ID:???foreach ($hoge as $val)
{
if (!empty($val))
$data .= $val;
}
emptyをチェックするならforeachにかけるまえに標準関数で用意されたものに通してからforeachするほうがずっとスマートだ
そもそも質問者は不正なデータというのが何なのか定義してないから>>442も間違い
0478nobodyさん
2009/11/27(金) 10:11:04ID:???0479nobodyさん
2009/11/27(金) 10:21:08ID:???0481nobodyさん
2009/11/27(金) 10:22:24ID:???0482nobodyさん
2009/11/27(金) 10:23:14ID:???0485nobodyさん
2009/11/27(金) 10:27:51ID:???0486nobodyさん
2009/11/27(金) 10:40:31ID:???それに引数のルールが曖昧。
例えば文字関数だと、引数の順序が関数によって異なるから最初戸惑った。
(例)
・mb_convert_encoding(文字列, 変換先, 変換元)
・mb_convert_variables(変換先, 変換元, 文字列)
言語自体はクソではないと思うけど、このへんがいい加減だなって思う。
0487nobodyさん
2009/11/27(金) 11:07:09ID:???0488nobodyさん
2009/11/27(金) 11:13:27ID:???0489nobodyさん
2009/11/27(金) 11:13:47ID:???0490nobodyさん
2009/11/27(金) 11:21:42ID:???0491nobodyさん
2009/11/27(金) 11:22:55ID:???標準関数なんてごく基本的なものだけで良くね?
0492nobodyさん
2009/11/27(金) 11:25:04ID:???なるほど。
str_replaceも対象の文字列が3番目だったと思うけど、あれも置換対象の数が可変なんだっけ?
0493nobodyさん
2009/11/27(金) 11:25:49ID:???ちなみにマニュアルの関数一覧は新しく搭載された関数はいまだ載ってないので6000以上はあると思われ
0495nobodyさん
2009/11/27(金) 11:51:10ID:???0500nobodyさん
2009/11/27(金) 12:03:01ID:???>>490を読んでから以下のスレに移動よろ
【総合】 Webprog板質問雑談スレッド 1
http://pc11.2ch.net/test/read.cgi/php/1131016915/
0502nobodyさん
2009/11/27(金) 12:04:34ID:???0507nobodyさん
2009/11/27(金) 12:10:17ID:evx8hvV/以下自称自治厨の荒らしはスルーでお願いします
質問どうぞあげ
0508nobodyさん
2009/11/27(金) 12:11:24ID:???0514nobodyさん
2009/11/27(金) 12:19:46ID:???{
if (!empty($val))
$data .= $val;
}
つうかこれのどこが>>410の回答になってるのかkwsk
0517nobodyさん
2009/11/27(金) 12:23:15ID:???0520nobodyさん
2009/11/27(金) 12:25:59ID:???俺は面白いから見てるがw
0522nobodyさん
2009/11/27(金) 12:27:59ID:???0523nobodyさん
2009/11/27(金) 12:28:52ID:???低レベルあほ無職プログラマー同士仲良くやってくれるかな
0525nobodyさん
2009/11/27(金) 12:43:43ID:???0527nobodyさん
2009/11/27(金) 12:55:09ID:???ほぼWebに限定してるからむしろ少ないぐらい
純粋なオブジェクト指向型の言語だとメソッド(関数のようなもの)を継承するので
サブクラスのメソッドを含めるととてつもなくややこしくなる
スーパークラスのメソッドを使うべきかサブクラスのメソッドを使うべきか迷うこともある
いくつかの解説サイトなんかを見ても同じことしてるのにインスタンス化するクラスが違ったりね
PHPのような元々手続きから進化してきた言語は分かりやすくていいと思うけどね
0528nobodyさん
2009/11/27(金) 13:04:48ID:???0529nobodyさん
2009/11/27(金) 13:07:52ID:???そんなのもわかんねーの?
じゃあ答えてやれよ
は?お前が答えろよ
はい、荒らし乙
いやいやお前が荒らし
これでどうだ?
プなにそれ恥ずかしくないの?
じゃあおまえがry
0530nobodyさん
2009/11/27(金) 13:10:20ID:???あいつ頭固すぎだろ、今は知らんが。
0531nobodyさん
2009/11/27(金) 13:23:25ID:???0532nobodyさん
2009/11/27(金) 13:26:53ID:???0533nobodyさん
2009/11/27(金) 13:54:22ID:???それ、どっちの「メソッドを」使うべきかって問題じゃないからw
0534nobodyさん
2009/11/27(金) 13:58:29ID:LIY03Y4cDBの編集は、CSVダンプ→アップロード、またはphpMyadminから可能ですが、どちらも一長一短でして。
ところが、最近http://www.drasticdata.nl/DrasticTools/ExampleGrid1.phpこんなのを発見し、重宝しております。
使い勝手も良く、素晴らしいツールなのですが、ただ1点、問題点があります。
レコードの最終更新日を自動で持つ項目(timestamp型、デフォルト値はCURRENT_TIMESTAMP)が、更新されないのです。
たすけて
0535nobodyさん
2009/11/27(金) 13:59:30ID:???【 スクリプト改造依頼スレ】(丸投げ) part7再々
http://pc11.2ch.net/test/read.cgi/php/1222645553/
0536nobodyさん
2009/11/27(金) 14:02:00ID:???生き恥だな。こんなやつが回答してるすれだもんな
そりゃ低レベルな荒れ方するわ
0537nobodyさん
2009/11/27(金) 14:06:18ID:???↓
回答つくまでリロード
↓
他の質問
↓
これならわかると回答
低レベルスレの完成です。
0538nobodyさん
2009/11/27(金) 14:23:00ID:???0540nobodyさん
2009/11/27(金) 14:38:18ID:???使う”べき”じゃなくて使う”か”に訂正しといて
実際どっちのクラスを使っても正解ということはあるよね?
正解というかどっちでもOKみたいな感じ
たとえばオーバライドしたメソッド1つ変更しただけで他は変更なしみたいなサブクラス
このメソッドを使用しなかった場合普通はスーパーのほうを使うかもしれないけど
サブを使っても問題はないというお話
0541nobodyさん
2009/11/27(金) 14:40:40ID:???まずおまえはIDだせ話はそれからだ
0542nobodyさん
2009/11/27(金) 14:41:22ID:???0543nobodyさん
2009/11/27(金) 14:47:05ID:???ずれてるの指摘してやるからIDだせっつてんだ
出さないなら回答しない。それだけ
なーにがちんぴらだ気色悪い
0544nobodyさん
2009/11/27(金) 14:52:01ID:???また低レベルな回答されても荒れるだけだからww
0545540
2009/11/27(金) 15:02:04ID:p6jIIbQ6というわけでID出すので>>543よろしくお願い
0546nobodyさん
2009/11/27(金) 15:02:06ID:???救いようがない。
0547nobodyさん
2009/11/27(金) 15:08:32ID:???人には言うが自分のことが全くわからないタイプのアホか
頭固すぎるとまわりから思われてるのはお前なんだよ
面白いから見てるとかクールぶって随分熱くなってるようだがw
指摘してやる?されてやるの間違いじゃないの?ww
元凶は自分が見えないやつ
0548nobodyさん
2009/11/27(金) 15:22:54ID:???0549nobodyさん
2009/11/27(金) 15:27:03ID:???考えにあわないからチンピラといったわけではないんだが
ID出せと(本家はIP出せだが)まるでチンピラのような振る舞いをし
超上から目線でチンピラのような態度を取り続けてたのでちょっといじっただけじゃないですか
ほんとあなたみたいな人は誰からも嫌われて孤立しますよwwwwwwww
0550nobodyさん
2009/11/27(金) 15:46:08ID:???0551nobodyさん
2009/11/27(金) 15:49:20ID:???実はこのスレ俺が一人でかいてるんだぜ
0552nobodyさん
2009/11/27(金) 15:50:31ID:???ぴったり当たると相手黙り込んじゃうんだな
0553nobodyさん
2009/11/27(金) 15:59:41ID:???0554nobodyさん
2009/11/27(金) 16:05:05ID:???0555nobodyさん
2009/11/27(金) 16:05:44ID:???誰がどれ書いてるか=で結んでやってもいいよ
IDなんて出さんでも俺には分かる
0559nobodyさん
2009/11/27(金) 16:22:34ID:???0560nobodyさん
2009/11/27(金) 16:24:40ID:???0561nobodyさん
2009/11/27(金) 16:24:55ID:???0562nobodyさん
2009/11/27(金) 16:26:42ID:???さぁ質問待ってるぜ
0563nobodyさん
2009/11/27(金) 16:27:02ID:???0564nobodyさん
2009/11/27(金) 16:27:52ID:???0566nobodyさん
2009/11/27(金) 17:00:30ID:???0567nobodyさん
2009/11/27(金) 17:03:47ID:???0568nobodyさん
2009/11/27(金) 17:22:08ID:FMCnKcYU【PHPのバージョン】php5.26
【連携ソフトウェア】QuickForm
【質問内容】
QuickFormで下のようにformのnameが動的に変化(数字がつく)する場合に
Smartyのテンプレートからどうアクセスすればよいのでしょうか?
for($i=0; $i<count($array); $i++) {
$form->addElement('text', 'title_'.$i, '');
$form->addElement('text', 'num_'.$i, '');
}
0570568
2009/11/27(金) 17:54:45ID:FMCnKcYUいえ、違う人です
title_0にアクセスするときは{$form.title_0.html}こうすればいいのは分かるのですが、ループになるとさっぱりです
たとえば,
{section name="list" start=0 loop=$count}
{$smarty.section.list.index}
{/section}
とすれば、数字が0からカウントされていくので
{$form.title_$smarty.section.list.index.html}こうしてみたり
{$form.title_[$smarty.section.list.index].html}、{$form.title_{$smarty.section.list.index}.html}
と、やってみたのですが
{$form.title_0.html} {$form.title_1.html} {$form.title_2.html} ...の内容が表示されることはありませんでした
フォームなので同じnameになることは避けなきゃいけない場合、どうすべきなのでしょうか?
0571nobodyさん
2009/11/27(金) 18:01:26ID:???smartyの事ならこっちいったほうがいいぞ。
【PHP】 Smarty 隔離スレ 【テンプレート】
http://pc11.2ch.net/test/read.cgi/php/1201879269/
0575nobodyさん
2009/11/27(金) 18:33:42ID:???変換前に mb_substitute_character('none') しておけば
変換できなかった文字は無かった事にしてくれる
逆に mb_substitute_character('long') とすると "U+XXXX" に置換してくれるので
この部分をUnicodeコードポイント―JIS X 0213対応表で置換し
それをShift_JIS-2004でエンコードすりゃ文字参照を無くせる
当然それはもうShift_JISじゃないしブラウザが表示してくれないかもしれない
じゃあ出力時に文字参照に変換すりゃよくね?奇才現る、という話になり
だんだん面倒になってきたので俺はUnicode一本化を選んだのであった 〜終〜
0576568
2009/11/27(金) 18:48:08ID:???'title_'.$i としていたところを'title['.$i.']'として、sectionの中で$form.title[list].htmlとしたら表示できました
スレ違い失礼しました
0577nobodyさん
2009/11/27(金) 18:49:23ID:???数値文字参照部分それぞれを、一個一個変換かけて ?で無ければ使えばいいのでは。
0578nobodyさん
2009/11/27(金) 18:50:37ID:wQd2OSTwHTMLの箇所だけ取得したいのですが、どうすればいいのでしょうか?
0579nobodyさん
2009/11/27(金) 18:56:47ID:???file_get_contents('http://www.example.com/test.php');
って意味かな?
0580nobodyさん
2009/11/27(金) 18:57:43ID:???ではどうだろう
0581578
2009/11/27(金) 19:00:01ID:???$files = array("test.php","tree.php");
for($i=0;$i<count($files);$i++){
ob_start();
include($files[$i]);
$contents[] = ob_get_contents();
ob_end_clean();
}
0583nobodyさん
2009/11/27(金) 19:03:14ID:MTMre+lf$this->$vari = 'hoge';
とかやると落ちるというより、シャットダウン関数が呼ばれてスクリプトが終わってしまうんですが、
これってどんな症状なんでしょうか。
エラーも何も出ないので困ってます。
バージョンは5.2.5です。
0584nobodyさん
2009/11/27(金) 19:04:07ID:???別の部分のせいじゃね?
0586nobodyさん
2009/11/27(金) 19:18:51ID:???0587nobodyさん
2009/11/27(金) 19:21:30ID:???0588nobodyさん
2009/11/27(金) 19:26:27ID:???それ大丈夫か?PHPの部分動いてるけど意図してないだろ
全部読み込んでからPHP部分を排除したほうがいいような
0589nobodyさん
2009/11/27(金) 19:31:32ID:???0590nobodyさん
2009/11/27(金) 20:23:50ID:???file_get_contentsは
fileしてimplodeしたみたいな関数だろ?
ローカルファイル読んだらPHPのまま取れるでしょ
0591578
2009/11/27(金) 22:25:57ID:wQd2OSTwおっしゃるとおり、581のソースでは
PHP内にexitとかしてるとそこで止まります・・。
URLでfile_get_contentsする方法が一番なんですかね。
URLだとローカル環境で読み込む時に、多少違和感あるんですよね。
0592nobodyさん
2009/11/27(金) 23:06:14ID:???なんでソースコードが表示されるの?
ローカルでもそんなことありえないよ
なんて思って試してみたら本当に表示されやがったwwwwwwwww
0593nobodyさん
2009/11/27(金) 23:13:02ID:???0595nobodyさん
2009/11/27(金) 23:19:21ID:???0596nobodyさん
2009/11/27(金) 23:19:26ID:???0597nobodyさん
2009/11/27(金) 23:21:31ID:o/LEECMb【PHPのバージョン】PHP5.2.4
【連携ソフトウェア】Apache2、MySQL
【質問内容】
PHPで開発するのに適したエディタ/IDEを探してます。
CPU:1GHz、メモリ:256MBでも快適に動く環境を・・・。
今はMeditで書いていますが、何か他に良いソフトがあれば教えてください。
0598nobodyさん
2009/11/27(金) 23:23:32ID:???0599nobodyさん
2009/11/27(金) 23:32:49ID:???それじゃX起動するだけでいっぱいいっぱいじゃないの?
冗談抜きでCUIにvimなら快適だと思うけど
0601nobodyさん
2009/11/27(金) 23:41:49ID:???0602nobodyさん
2009/11/27(金) 23:44:05ID:???0604nobodyさん
2009/11/27(金) 23:51:21ID:???どうも。
Scintillaベースのエディタなんですね。
良さそうですが、日本語が書きにくいのはちょっと…。
>>599
Xubuntuからさらにいろいろ削って、XPと比べてかなり軽快に動いてますよ。
メモリ増設はいま無理なんです。
その日暮らしをしているもので。。
>>600
Wineでってことでしょうか。
0605nobodyさん
2009/11/28(土) 00:18:54ID:???NetBeansがお勧め、Java,C,C++,Ruby,PHP,CSS,JavaScript,HTMLに対応してる優れもの
PHPを使うからダウンロードページ右の「すべて」を選ぶこと
http://ja.netbeans.org/
0606nobodyさん
2009/11/28(土) 00:22:59ID:???Geditで我慢しておけ
0607nobodyさん
2009/11/28(土) 00:26:59ID:???0609nobodyさん
2009/11/28(土) 00:33:55ID:???起動、デバッグ時なんかは特に重くなる。
256だとコード補完もまともに働くか怪しい・・・・
0610nobodyさん
2009/11/28(土) 00:35:42ID:???IDEを探してます。
までしか読んでなかった
0611nobodyさん
2009/11/28(土) 00:41:06ID:???デバッガはなしで本番環境で実行して動作確認みたいな
原始的だがPHPではよくあること
0612nobodyさん
2009/11/28(土) 01:07:27ID:???0613nobodyさん
2009/11/28(土) 01:56:23ID:???Unixで発展してきたエディタはメモ帳とは違うんです
0614nobodyさん
2009/11/28(土) 19:04:59ID:???0615nobodyさん
2009/11/28(土) 19:40:56ID:/BKpNybq【PHPのバージョン】php5.25
【質問内容】
phpを用いたredirectに対しての質問なのですが、
http://ho.example.com/にアクセスしてきた場合は、
http://ho.example.com/index.htmlに、
http://ho.example.com/index.php?id=******(数字)
でアクセスしてきたURLには、
http://ho.example.com/geru/index.php?id=******(数字)で返したいのですが、
これならどうしたらいいでしょうか
http://ho.example.com/index.php?id=987678でのアクセスには、
http://ho.example.com/geru/index.php?id=987678で返したいんです。
Apacheのredirectだと、DirectoryIndexを、 index.php index.htmlの設定がじゃまをしているのか、
ループを起こしてしまうので、どうにもなりませんでした。
どうぞよろしくお願いします<m(__)m>
0616nobodyさん
2009/11/28(土) 19:52:06ID:???0617nobodyさん
2009/11/28(土) 19:54:22ID:???DirectoryIndexをindex.html index.php にしておけば、
http://ho.example.com/ のアクセスは http://ho.example.com/index.html になる
そのうえで、
http://ho.example.com/index.php の最初の方で
http://ho.example.com/geru/index.php にheaderで飛ばせばいい
0618nobodyさん
2009/11/28(土) 19:55:48ID:???DirectoryIndex を index.html index.php
にすりゃいいんじゃないかなぁ。
0619nobodyさん
2009/11/28(土) 19:55:57ID:???0620615
2009/11/28(土) 20:12:40ID:PfdzqFPXしかし、下記のように設定しても、ループしてしまうのです
DirectoryIndex index.html iindex.php ndex.htm
<VirtualHost *>
DocumentRoot /home/pap/geru/
ServerName ho.example.com
Redirect /index.php http://ho.example.com/geru/index.php
Redirect / http://ho.example.com/index.html
</VirtualHost>
なのでどうにか、http://ho.example.com/index.phpで同じことができないかと思い
ここに相談させてもらいました
0621615
2009/11/28(土) 20:19:09ID:PfdzqFPXfirefoxでhttp://ho.example.com/にアクセスすると
http://ho.example.com/index.htmlindex.htmlindex.htmlindex.htmlindex.htmlindex.htmlindex.htmlindex.htmlindex.htmlindex.htmlindex.htmlindex.htmlindex.htmlindex.htmlindex.html略
こんなことになってしまいます
0622nobodyさん
2009/11/28(土) 20:33:34ID:???これいらなくね?
0623615
2009/11/28(土) 20:52:38ID:???あ・・・・
それ外したらできました・・・・
とても恥ずかしいです・・・・
でも解決できて本当によかったです!!!
皆さんありがとうございました!!!
0624nobodyさん
2009/11/28(土) 20:55:24ID:???0625nobodyさん
2009/11/28(土) 23:13:14ID:GFmYlKP+自分で試したところ、fopenでテキストファイルなどを作成する場合、
作成先のディレクトリのパーミッションが、755のままでも作成されました。
簡単なファイル作成の場合、777とか707とか666とかにしなくても良いのでしょうか?
0626nobodyさん
2009/11/28(土) 23:25:24ID:???0627nobodyさん
2009/11/28(土) 23:25:58ID:???少しはパーミッションを勉強することをすすめる
0628nobodyさん
2009/11/28(土) 23:31:45ID:???ディレクトリを作成して755と777に交互に変更してそのディレクトリにファイルを移動とかしてみろ
0629nobodyさん
2009/11/28(土) 23:45:56ID:???そのディレクトリのユーザーが誰かってのが問題なわけで。
0630nobodyさん
2009/11/28(土) 23:52:04ID:???いろんな鯖借りて100回パーミッションをいじれ
0632nobodyさん
2009/11/28(土) 23:57:02ID:???755ってrwxr-xr-xだから所有者じゃない限り書き込めないのだが
お前こそパーミッション理解できてるか?
0633nobodyさん
2009/11/28(土) 23:59:42ID:???何を言ってるんだ
0634nobodyさん
2009/11/29(日) 00:05:06ID:???>>626の前提なら>>633の通り。で、>>625はどっちなんだ?
0635nobodyさん
2009/11/29(日) 00:08:58ID:???0639413
2009/11/29(日) 07:26:12ID:Yzy3uLLnローカル環境では>>413のやり方でいけたのですがレン鯖だとなぜかNGだったので
WHERE句を書き直して無事実装できました。
0640nobodyさん
2009/11/29(日) 11:09:26ID:Q44vnMJCこのページのdate関数の引数「string date ( string $format [, int $timestamp ] )」という部分を取得したいのですが
標準関数でこういうのを取得できませんか?
0641nobodyさん
2009/11/29(日) 11:30:43ID:???file_get_contents("http://jp2.php.net/manual-lookup.php?pattern=".$function);
0643nobodyさん
2009/11/29(日) 14:47:44ID:???やっぱ汎用性などで独自でインストールした方がいいのでしょうか?
0644643
2009/11/29(日) 14:51:22ID:???大きな会社などでPHPで開発するときに、独自でインストールしたりするとフォルダ先とか変わったりでわずらわしい気がしますが、
やっぱそういう環境ではXAMPPのように一元化を図った方が効率は良くなるのでしょうか?
0645nobodyさん
2009/11/29(日) 14:52:37ID:???0646nobodyさん
2009/11/29(日) 14:54:46ID:???0647nobodyさん
2009/11/29(日) 14:55:29ID:???06498
2009/11/29(日) 15:15:11ID:???0650nobodyさん
2009/11/29(日) 15:16:46ID:???各ソフトが最新じゃなかったり
っていう程度かな
0651nobodyさん
2009/11/29(日) 15:28:01ID:???apache/php/mysql/postgresqlを個別にc:\dev\以下にインストールして
c:\dev\をzipでかためて配布する事でローカル環境の統一を行ってる。
元々subversion使ってて、その時はローカルに環境つくらず
コミットしてサーバ上で確認してたが、gitに乗り換えたので
ローカルで簡単に確認してからコミット(git push)するようになった。
0654nobodyさん
2009/11/29(日) 15:55:51ID:???公開してないよ。
gitのサーバは本番機とは別に用意してあり、他のプロジェクトと共用。
pushするとフックスクリプトで本番機の開発用ディレクトリに転送される。
転送されるディレクトリは社内からしかアクセスできない
>>653
ローカル環境と言ってるのは、個人の作業用PCの事。
作業用PCはwindowsで、サーバはLinux。
それぞれの作業用PC上で簡単に確認してからgit pushする。
0655nobodyさん
2009/11/29(日) 16:09:13ID:X6l6A2G2をaiueoという風に出力したくて、
一個の\だけだとメタ文字?のような気がしたので
もう一個\をつけて普通の文字\として、
echo preg_replace("/\\/i","",$str);
としたらできるのかなと思ったらできませんでした。
しかし、
echo preg_replace("/\\\/","",$str);
のようにしたらできたのですがこれはなぜなんでしょうか?
0656nobodyさん
2009/11/29(日) 16:17:58ID:???なんか重いな〜と思って、xDebugでボトルネック調べたら
simplexml_load_file が全体の99%も時間かけてた。
予想通りネットワークのボトルネックでフイたけど、
ブロードバンドなのに改善できそうなことってほとんどないよな?
0657nobodyさん
2009/11/29(日) 16:18:45ID:s4Mu180M0658nobodyさん
2009/11/29(日) 16:25:48ID:???ローカルでやってみた?
simplexml_load_fileはパースもするから、案外パースと
PHPのオブジェクトの生成に時間かかってたり。
0659nobodyさん
2009/11/29(日) 16:28:13ID:???0660657
2009/11/29(日) 16:34:44ID:s4Mu180Mローカルでやってます。
一応環境を書いておきます…
【OS名】MacOS 10.5.6
【CPU、メモリ】CoreDuo 2GHz、2GB
【PHPのバージョン】php5.25
【連携ソフトウェア】MAMP 1.7.1(MySQL 5.0.41など)
アクセス対象のサーバの問題ですかね。
>>659
そんな手が…。
0661nobodyさん
2009/11/29(日) 16:36:15ID:???0662nobodyさん
2009/11/29(日) 16:41:59ID:???一回ファイルだけローカルになりスクリプトのある鯖にもってきてそこで処理すればよくない?
0663nobodyさん
2009/11/29(日) 16:42:15ID:ZEhApNdvどの関数かご教示お願いします
0664nobodyさん
2009/11/29(日) 16:44:37ID:???0665657
2009/11/29(日) 16:47:32ID:s4Mu180M>>662
あーなるほど、外部から読みながらパースしてるから、
パースする前に生データをローカルに落としてから、
ローカルでパースしたらどうか、ってことですね。
やってみます、ありがとう。
0666nobodyさん
2009/11/29(日) 17:29:33ID:hZFEF+gf0667nobodyさん
2009/11/29(日) 17:35:28ID:???ドキュメント類はGoogleDocs
0668nobodyさん
2009/11/29(日) 17:55:24ID:7vifCWX5一文字一文字改行するようにすると、()や、などが横書きのまま表示されてしまいます。
0669nobodyさん
2009/11/29(日) 18:02:40ID:???0671nobodyさん
2009/11/29(日) 18:33:43ID:???0672nobodyさん
2009/11/29(日) 19:28:16ID:???$x = (function($y){return $y*$y})();
動かない・・・
0673nobodyさん
2009/11/29(日) 19:37:36ID:???0674nobodyさん
2009/11/29(日) 19:41:31ID:???$x = test();
は動くのに何で
$x = (function(){})();
は動かないの
0675nobodyさん
2009/11/29(日) 19:44:31ID:???0676668
2009/11/29(日) 19:46:55ID:7vifCWX5レスありがとうございます。
縦書き用として配布されているフォントをImageTTFTextで回転させてみたんですが、横書きのまま回転されてしまいました。
なにか特別な指定がいるんでしょうか?
0677nobodyさん
2009/11/29(日) 19:48:03ID:???0678nobodyさん
2009/11/29(日) 19:51:44ID:???0681nobodyさん
2009/11/29(日) 21:28:44ID:pv1VwVRH権限変更しなきゃいけないケースというのは
何か書き込みを行うファイルを666あたりに
セーフモードがかかっていて使えない一部の関数を使うために
親ディレクトリを777あたりに
こんな感じであってますか?
0682nobodyさん
2009/11/29(日) 22:25:49ID:???誰だそんなバカなこと言ってる奴は
0683nobodyさん
2009/11/29(日) 23:04:52ID:???0684nobodyさん
2009/11/29(日) 23:15:16ID:???0685nobodyさん
2009/11/29(日) 23:21:14ID:???0686nobodyさん
2009/11/30(月) 13:51:39ID:85q7Lxtd自分使った事はないのですが、ココ(http://www.atmarkit.co.jp/fsecurity/column/kawaguchi/019.html)等を見ると
セキュリティの問題が無いとも言い切れないようなのでどうしようかなと思っております
データベース等狙われたら大変ですし
もし使っていないのであれば、この手のソフトで何かいいのがありましたら教えていただきたいと思います
0687nobodyさん
2009/11/30(月) 14:08:01ID:???ローカルでたまに使ったり使わなかったり
少なくとも公開はしてない
使うとしてもセキュリティ設定ちゃんとしてれば問題ないともうけど
0688nobodyさん
2009/11/30(月) 14:25:47ID:???ソフトウェアに絶えずバグや脆弱性が存在するのは当たり前のことです。
使いたいソフトウェアのコミュニティがどれほど発達してるかを見極めた上で、
十分なセキュリティパッチが提供されると判断したのなら積極的に利用していいと思います。
目安としてオープンソースで人気のプロジェクトなんかは信用していいと思います。
ただソフトの管理はソフト自体が勝手にやってくれるのと、そうでないのがあるので、
後者の場合は定期的にセキュリティパッチがないか自分で情報を集める自信がないのなら使わないほうが賢明です。
0689nobodyさん
2009/11/30(月) 14:27:55ID:8SHOe8r+sqlite_query()なんかで取得した結果を、
sqlite_fetch_all()でまとめて取得して、そいつをforeach()とかでグリグリやるのと、
while()の条件でsqlite_fetch_array()を使ってグリグリするのでは、
どっちがベターでしょう?
0690nobodyさん
2009/11/30(月) 14:28:22ID:???0691nobodyさん
2009/11/30(月) 14:39:30ID:???好きなほう得意なやりかたでやれっていう指示と考えておk
0693nobodyさん
2009/11/30(月) 16:48:41ID:???自分のMySQL5.1ではmysqliでは接続エラーになり、mysqlでは接続成功になりました
これで正しいのでしょうか?
またMySQL5.0とかからmysqlに変わったのでしょうか?
0694693
2009/11/30(月) 16:49:42ID:???0695nobodyさん
2009/11/30(月) 16:55:02ID:???0696nobodyさん
2009/11/30(月) 16:56:38ID:???http://pc11.2ch.net/test/read.cgi/php/1258187482/l50
△▲ WebProg 初心者の質問 Part21 ▼▽
http://pc11.2ch.net/test/read.cgi/php/1257701535/l50
くだらない質問でもど偉そうに聞いていいスレ
http://pc11.2ch.net/test/read.cgi/php/1158647441/l50
マルチ乙
0697nobodyさん
2009/11/30(月) 17:01:50ID:???0698nobodyさん
2009/11/30(月) 19:17:48ID:OqzSho9e【PHPのバージョン】php5.3.1
【連携ソフトウェア】MySQL
【質問内容】
アクセスログをDBに残していくのが目的であるphp文を埋め込んだファイルを作ったのですが、
ローカルからのアクセスではクエリが実行されているのですが
外部のコンピュータからのアクセスではクエリが実行されていない?ようです。
これを実行する方法はありませんか?
$com = "INSERT INTO `log`(`id`,`date`,`time`) VALUES('{$id}','{$d}','{$t}')";
mysql_query($com);
0699nobodyさん
2009/11/30(月) 19:23:06ID:???同じやつがずーーーーっと聞いてる予感。
しね
0700nobodyさん
2009/11/30(月) 19:34:32ID:???ローカルで動くんなら、プログラムはいいんじゃないの。
外部のコンピュータからのアクセスとはどうやったんでしょうか。
0701698
2009/11/30(月) 19:42:41ID:OqzSho9eレスありがとうございます。
>>外部のコンピュータからのアクセス
ブラウザから【http://ipアドレス/index.php】を覗いてもらいました。
0703702
2009/11/30(月) 19:53:39ID:OqzSho9e友達に頼んでスカイプしながら、自分「今アクセスしてみて」、友人「したよ。カウンターは増えてるね」
という具合に、確認しながらやっていきました。
mysql_query($com);
このあとさらに
print($com);
でINSERT文を明示し、表示された内容を送ってもらったりしましたが、何のエラーも出ておらず、
ローカルからのアクセスにのみMySQLが反映されます。
また、そのとき随時MySQL画面でSELECT文を発行しDB確認しておりました。
実際にurl載せてみてもらったほうが早いんでしょうか(;´Д`)
0704698
2009/11/30(月) 20:08:24ID:OqzSho9e保存されるカラムの一つに`ip`があったのですが
その`ip`、ローカルだと127.0.0.1ってすごく短いのですが
他のコンピュータだと15文字と長いのでvarchar(10)をオーバーしていました。
お騒がせしました(´Д`)
ALTER TABLE `log` MODIFY `id` VARCHAR(20);
0705nobodyさん
2009/11/30(月) 20:22:21ID:???0706nobodyさん
2009/11/30(月) 20:28:33ID:???0707nobodyさん
2009/11/30(月) 21:17:19ID:???切捨てしてくれるのもあったなそれに任せてしまうかは置いとくけど
0708nobodyさん
2009/11/30(月) 23:43:16ID:Vf7i1FvXHTMLソースの文字コードがUTF-8でも$_REQUESTの中身がEUC-JP
で入ってくるのですが、スクリプト側の設定で$_REQUESTの中身を
UTF-8にすることはできないでしょうか?
最初に
mb_internal_encoding("UTF-8");
と書いてももう遅いようですし、
.htaccessは使えない状態です。
よろしくお願いします。
0709nobodyさん
2009/12/01(火) 00:06:15ID:???0710nobodyさん
2009/12/01(火) 00:09:44ID:???eucで入ってくるリクエストをphpの中でutfに変換すりゃいいだけじゃないの?
phpに入る前に変換かけようったってそりゃ無理な話でさ。
0711nobodyさん
2009/12/01(火) 15:33:58ID:???0712nobodyさん
2009/12/01(火) 18:19:04ID:+KFRV8KPmail関数の第五引数に
-f (送信元アドレス)
を指定すると、ちゃんと送信できるのですが、
指定しないと、処理上はtrueが返ってくるものの、
実際には送信できていません。
この場合、どこの設定を見直せばよいのでしょうか?
OSはCentOSです。
0714nobodyさん
2009/12/01(火) 18:25:14ID:+KFRV8KPとなるとPostfix周りですかね。
ありがとうございます!
0715nobodyさん
2009/12/01(火) 18:32:23ID:???Webより数倍複雑
関連しそうなキーワードだけ
SPFレコード
エンベロープ
DomainKeys
0716nobodyさん
2009/12/01(火) 18:45:05ID:pkq6G5xh【PHPのバージョン】php5.2.6
【連携ソフトウェア】なし
【質問内容】
MS-DOS上で動作させていますが、周期的な動作はどう書けば良いでしょうか?
やりたいことは、「5秒毎にWebサーバー上にあるテキストファイルを上書きする」です。
0718nobodyさん
2009/12/01(火) 19:25:53ID:???5秒とかだと永久ループでsleep使うってのがいいんじゃない?
while (true) {
なんか処理
sleep(5);
}
0719nobodyさん
2009/12/01(火) 19:32:53ID:???0720nobodyさん
2009/12/01(火) 19:54:10ID:???0721nobodyさん
2009/12/01(火) 20:11:17ID:O1z84gpdコレはWindowsで起動しているからだと思うのですが、タスクマネージャのプロセスで停止してから消さなきゃいけないのでしょうがどれがApacheなのか分かりません
どなたか教えていただけないでしょうか?
0722nobodyさん
2009/12/01(火) 20:18:08ID:???0723nobodyさん
2009/12/01(火) 20:22:32ID:O1z84gpdコレを見ると、Apache.exeってのが起動しているようですが、自分のタスクマネージャには存在しません
XAMPPだからかは分かりませんが
う〜ん、どれを停止すればいいのかわかりません
>>722
Unlockerで消しても大丈夫ですか?
0724nobodyさん
2009/12/01(火) 20:54:08ID:???0725nobodyさん
2009/12/01(火) 21:28:57ID:???0726nobodyさん
2009/12/01(火) 21:36:21ID:???サービスを無効にして再起動後削除を試みる。
場所はコンパネ→管理ツール→サービスね
0727nobodyさん
2009/12/01(火) 22:35:42ID:???俺、実家用に諸設定がめんどくさいのでXAMPPにしようとしたんだけど、SubVersionが入ってると本に書かれていたのでやろうとしたらApacheが最起動しなくて結局普通に各自インストールした・・・
0728nobodyさん
2009/12/01(火) 23:29:09ID:???XAMPP ザンプって読むんですね
エックスエムピーピーって読むんじゃないんですよ。
0730nobodyさん
2009/12/02(水) 00:11:56ID:???0731nobodyさん
2009/12/02(水) 01:40:51ID:???MySQLへの接続エラー時に例外処理を発生させようと思ったのですが、
なぜかエラーをcatchしてくれません。
mysql_connectを実行する処理で存在しないユーザでDB接続しようとして
DB接続エラーの例外を発生させようと思っています。
<?php
try{
$con = mysql_connect("localhost", "nisemono", "pass");
mysql_select_db("sna_db1", $con);
$this->execute($con);
}
catch(Exception $e){
echo "DB接続エラー:" . $e ;
}
mysql_close($con);
?>
0732nobodyさん
2009/12/02(水) 02:33:10ID:???krsz
0733nobodyさん
2009/12/02(水) 03:05:19ID:???mysql_connectのリファレンス嫁
例外のリファレンス嫁
0734nobodyさん
2009/12/02(水) 03:57:31ID:???0735nobodyさん
2009/12/02(水) 08:39:04ID:???0736nobodyさん
2009/12/02(水) 08:50:13ID:XLJ1VtlA継承してその関数を使用したクラスの名前って取得する方法ありますかね?
0737nobodyさん
2009/12/02(水) 09:25:07ID:???http://tsushima.2ch.net/test/read.cgi/newsplus/1259712523/
0738nobodyさん
2009/12/02(水) 13:35:31ID:8Zgo4w9qreturn $a.$b;
}
echo hoge();
とやった場合abと表示されます。
echo hoge("s");
とやった場合sbと表示されます。
ここでasと表示したいのですが、
第一引数はデフォルトのものを使って、第二引数だけを指定したいのですが、
どのようにやればいいのでしょうか?
0739nobodyさん
2009/12/02(水) 13:36:42ID:???しね
しらべろ
ぼけ
0740738
2009/12/02(水) 13:51:40ID:8Zgo4w9q省略してやってたスクリプトがあったので質問しましたが、
引数の型が別々になっていて型で振り分けしてるようなトリッキーなものでした。
0741nobodyさん
2009/12/02(水) 13:58:39ID:KEaNjFio【質問内容】
久しぶりにPHPをやろうとコマンドプロンプトで本にあるサンプルを実行したところ
下の警告が出て前に進めません。
http://uproda.2ch-library.com/193256tTF/lib193256.png
これはバージョン確認の >php -v でも出てきて右上の閉じるボタンを押すと
PHP Warning: PHP Startup: Unable to load dynamic library 'C:\php5/ext/php_sqlite.dll'
- 指定されたモジュールが見つかりません。
in Unknown on line 0
PHP 5.2.6 (cli) (built: May 2 2008 18:02:07)
Copyright (c) 1997-2008 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2008 Zend Technologies
などと出ます。実行環境php5.2.6は本のCD-ROMから再インストールしても
駄目でした。
どうしたら良いでしょうか?
0742741
2009/12/02(水) 14:00:29ID:???以前(約半年前)は問題なく実行できていました。
0743nobodyさん
2009/12/02(水) 14:05:01ID:???とりあえず経験者ならxamppでも入れておけばおk
0744nobodyさん
2009/12/02(水) 14:05:34ID:???0745nobodyさん
2009/12/02(水) 14:45:28ID:???0746nobodyさん
2009/12/02(水) 14:57:25ID:???環境はubuntu9.04とphp5.xとapache2.x
0747nobodyさん
2009/12/02(水) 14:57:45ID:DXr2OxkP0748nobodyさん
2009/12/02(水) 15:06:11ID:???0751746
2009/12/02(水) 15:34:41ID:DXr2OxkPだめっすか。pgpoolとか必要ですか
0752nobodyさん
2009/12/02(水) 15:37:21ID:HX28fxfQDOS上のPHPの動作をキー入力で制御するにはどうしたら
良いでしょうか?
例えば、Enterキー1回目で動作開始,2回目で停止(終了)
とういう感じです。
0753nobodyさん
2009/12/02(水) 15:39:21ID:???0758nobodyさん
2009/12/02(水) 15:45:37ID:???http://www.google.com/search?hl=ja&lr=lang_ja&ie=UTF-8&oe=UTF-8&q=PHP%E3%81%A7%E3%82%B3%E3%83%8D%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%B3%E3%83%97%E3%83%BC%E3%83%AB&num=50
0759nobodyさん
2009/12/02(水) 15:47:59ID:???0761nobodyさん
2009/12/02(水) 15:49:34ID:???>>751
とりあえずDBの種類を明記して。pgpoolってことはPostgreSQLでOK?
あとマニュアルの持続的な接続も見て。
http://jp2.php.net/manual/ja/pdo.connections.php
0762nobodyさん
2009/12/02(水) 15:51:06ID:???0764nobodyさん
2009/12/02(水) 15:56:38ID:???0766nobodyさん
2009/12/02(水) 16:05:01ID:???飽きないね〜
0768nobodyさん
2009/12/02(水) 16:18:41ID:???自分も知らないくせにそうなるかなーというレスが気にいらなかっただけで煽るただの餓鬼
>>757 >>759 >>760 >>763 >>765 >>766
煽りに煽りで返す阿呆集団
>>758
コネクションプーリングができるとググル先生が言ってるぞと言う厨房
>>756 >>761 >>762 >>764
まともな人間と見せかけてどこかで煽りに参加してる阿呆集団の一人
0769nobodyさん
2009/12/02(水) 16:24:33ID:???0771nobodyさん
2009/12/02(水) 22:07:55ID:???http://jp.php.net/manual/ja/pdo.installation.php
http://jp.php.net/manual/ja/pdo.configuration.php
0772nobodyさん
2009/12/02(水) 22:08:36ID:???ありがとうございます
0773nobodyさん
2009/12/03(木) 10:49:04ID:???0774nobodyさん
2009/12/03(木) 14:21:03ID:???スクリプトファイルを入出力と処理に分けて、
入出力側は fgets(STDIN) でコマンドライン入力を受け取り
処理側スクリプトを proc_open(), proc_close() するでどうだい
0775nobodyさん
2009/12/03(木) 14:59:54ID:5T9WpFv8$arr = array('test1'=>1, 'test2'=>2);
try {
echo $arr['test3'];
} catch (Exception $e) {
echo $e;
}
これだと普通にPHPのエラーが表示されてしまいます。(Undefined index test3)
こういう使い方はダメなんでしょうか?
例外処理について教えて頂けると助かりますm(__)m
0776nobodyさん
2009/12/03(木) 15:15:48ID:???0777nobodyさん
2009/12/03(木) 15:23:51ID:5T9WpFv8スレ題通り、くだらない質問かもしれませんが
マニュアルは読んでもイマイチ理解できなかったので教えてください。
例外をcatchするには、自分で例外を投げないといけないのでしょうか?
それだとぶっちゃけif文とかわらないですよね?
0778nobodyさん
2009/12/03(木) 15:34:32ID:???$arr['test3']を初期化するかerror_reporting(E_ALL ^ E_NOTICE)でもぶちこんどけ
0779nobodyさん
2009/12/03(木) 15:35:31ID:???0780nobodyさん
2009/12/03(木) 15:37:20ID:???0781nobodyさん
2009/12/03(木) 15:40:24ID:???安心させる為にあるだけ
0782nobodyさん
2009/12/03(木) 15:42:08ID:???あればあったで便利だな
そろそろ4系は葬ってほしいぜ
0784nobodyさん
2009/12/03(木) 15:51:02ID:5T9WpFv8予期せぬ値がキーに入った時の為の例外処理なわけで、初期化する位だったら例外処理も必要ないです。
というかサンプルコードが適当すぎですよね・・・すみません。
error_reportingは最終的にはオフにする予定ですが、今はまだ作成段階なのでエラー発見の為にも表示しなくてはなりません。
で、結局以下のように自分で例外を投げるようにしました。(サンプルなので、実際はこれだけのコードなら大人しくisset()使っておけば済む話なのですが。)
$arr = array('test1'=>1, 'test2'=>2);
try {
echo $this->check($arr, 'test3');
} catch (Exception $e) {
echo $e;
}
function check($arr, $index) {
if(!isset($arr[$index])) {
throw new Exception(sprintf('Undefined index %s', $index));
}
return $arr[$index];
}
>>783
全角はわざとです。見やすいほうがいいかと思い全角にしました。
0786nobodyさん
2009/12/03(木) 15:58:00ID:???0787nobodyさん
2009/12/03(木) 16:02:18ID:???0788nobodyさん
2009/12/03(木) 16:06:21ID:5T9WpFv8とても分かりやすいサイトを教えて頂きありがとうございます。
そのサイトに書かれているように、手動で「例外」を投げないと処理が実行されないという所で悩んでました。
JavaScriptだと自動で投げてくれるので、PHPもてっきりそうだと思って・・・。
万事解決です!お答えくださった皆様ありがとうございました!
0789nobodyさん
2009/12/03(木) 16:12:24ID:???エラーハンドラ使えばいいのに
0790nobodyさん
2009/12/03(木) 16:17:42ID:???無能ばっかだなワロスwww
0791nobodyさん
2009/12/03(木) 16:20:16ID:???0792nobodyさん
2009/12/03(木) 16:49:38ID:???0793nobodyさん
2009/12/03(木) 17:12:20ID:???0794nobodyさん
2009/12/03(木) 17:45:56ID:???0795nobodyさん
2009/12/03(木) 18:35:28ID:FkIkewDAphpと同じ階層に「a, b」というデータを記録していのですが
どういった記述にすればいいでしょう?
0796nobodyさん
2009/12/03(木) 18:36:04ID:9BLN2rJ9【PHPのバージョン】php5.26
【連携ソフトウェア】Services_Twitter
【質問内容】
Twitter上で動くbotを開発しています。
現在はbotはcronで毎分呼び出されてシェルスクリプト経由でphpに渡されるのですが、
人工知能のような汎用処理系を目指しているので実行時に膨大な数の設定ファイルを読み出すため、処理に負担をかけています。
現在の処理:cronからシェルスクリプト呼び出し->phpにファイルを渡す->設定ファイルを読み出す(連想配列に格納)->随時設定を配列からロードし利用する
の設定ファイルの読み出しで多大な時間をとられています。
これを解決するためにループ処理で常時スクリプトを実行(定期的に取得と返事のみ実行)という案を考えつきましたが、
このような事は可能でしょうか。可能ならば実装方法と留意点も教えていただけるとありがたいです。
0797nobodyさん
2009/12/03(木) 18:55:06ID:???1.GETパラメータを取得
2.ファイルを書き込み属性つきでオープン
3.ファイルに書き込み(なくてもいいが書き終わったらファイルをクローズ)
あとは調べろコードもらっても勉強にならん
0801nobodyさん
2009/12/03(木) 19:35:18ID:APsxzQ0B4.3.10 からサポートされた、sprintf フォーマットのロケールに依存しない
浮動小数点数表現 F と同じ動作を実現するにはどうしたらいいですか?
0802nobodyさん
2009/12/03(木) 19:45:06ID:???0804nobodyさん
2009/12/03(木) 21:04:31ID:DjsgAevRsjis,sjis-winに無い文字が含まれるとき、?になるときとならない時があって困ってます。
タイミングによって結果が変わるのも解せないんだけど、同じことで悩んでたりスマートな解決策わかる人いませんか。
0805nobodyさん
2009/12/03(木) 21:08:03ID:???0806nobodyさん
2009/12/03(木) 21:08:31ID:???0807nobodyさん
2009/12/03(木) 21:14:56ID:DjsgAevR元はUTF8なんですよ。TwitterAPI。
毎回結果かわるからconvert_encodingはだめだし。
>>806 の方法試してみます。
mb_encode_numericentityが使えそうな気がしてきた。
0808nobodyさん
2009/12/03(木) 21:19:13ID:???0809nobodyさん
2009/12/03(木) 21:29:47ID:R411r6ifWordPressでカテゴリーを表示する「wp-dtree」というプラグインがあるのですが、
カテゴリーが二階層以上になったとき、そのカテゴリーに所属する記事数の計算が合いません。
(例)
A は B の親カテゴリーです。
B は C, D の親カテゴリーです。
C というカテゴリーに 2 つの記事が紐づいています。
D というカテゴリーに 3 つの記事が紐づいています。
【標準の動作】
A (5)
└ B (5)
├ C (2)
└ D (3)
【WP-dtree】
A (10)
└ B (5)
├ C (2)
└ D (3)
子や孫のカテゴリーに所属する記事数まで、すべて足し合わせるようなコードになっているのが原因だと思いますが、
どう直せばいいのかわかりません。
よろしくお願いします。
wp-dtree のコード
http://www.happy-pass.jp/wp-content/plugins/wp-dtree/
0810nobodyさん
2009/12/03(木) 21:32:41ID:???0811nobodyさん
2009/12/03(木) 21:33:25ID:DjsgAevR出来ればutfにしたいけど、2ch専ブラで見るのでどうしても…
とりあえずUTF8とsjisのコード範囲調べます。
0812nobodyさん
2009/12/03(木) 21:33:57ID:???WordPress (ワードプレス) その14
http://pc11.2ch.net/test/read.cgi/blog/1254473826/
【 スクリプト改造依頼スレ】(丸投げ) part7再々
http://pc11.2ch.net/test/read.cgi/php/1222645553/
0814nobodyさん
2009/12/03(木) 21:38:58ID:DjsgAevRwpあんまり詳しくないけど、階層表現なら入れ子集合モデルが好きです。
0815nobodyさん
2009/12/03(木) 21:41:08ID:APsxzQ0BRHEL4のrpmが4.3.9で、そこから動かせない場合にはどうしようもないってことでしょうか。
0816nobodyさん
2009/12/03(木) 21:41:15ID:DjsgAevRUTF8上のShiftJISの範囲って、なんか飛び飛びでしたっけ?
0817nobodyさん
2009/12/03(木) 21:42:23ID:R411r6ifwp-dtree_gen-functions.php
の133〜135行目
foreach($children as $child){
$count += $child->category_count;
}
が原因のように考えられるのですが、どう直せばいいのかがわかりません。
下記は試しましたが、うまくいきませんでした。
【この3行を削除】
A (0)
└ B (0)
├ C (2)
└ D (3)
【$count = $child->category_count; に変更】
A (1)
└ B (2)
├ C (2)
└ D (3)
foreachという構文を使っていることに原因があるようにも思いますが、やはりどう直せばいいかがわかりません。
0818nobodyさん
2009/12/03(木) 21:46:57ID:R411r6ifの110〜132行目(参考)
function wp_dtree_get_count($nodedata, $treetype){
global $wpdb;
$idtranspose = wp_dtree_get_id_transpose();
$count = '';
if($treetype == 'cat'){
$catid = $nodedata['id']-$idtranspose['cat']; //DONT put this calculation in the parameter list. http://wordpress.org/support/topic/148638?replies=3
$catobj = get_category($catid);
$count = $catobj->category_count;
$children = get_categories( //a roundabout way to get the padded count of this category...
array(
'type' => 'post',
'child_of' => $catid,
'orderby' => 'ID',
'order' => 'DESC',
'hide_empty' => false,
'include_last_update_time' => false,
'hierarchical' => 1,
'exclude' => '',
'include' => '',
'number' => '',
'pad_counts' => 1
)
);
0819nobodyさん
2009/12/03(木) 21:48:26ID:???0820nobodyさん
2009/12/03(木) 21:49:19ID:???エンコード変換以外に必要なのは、実体参照になってるのを戻してやるぐらいか。
0822nobodyさん
2009/12/03(木) 21:52:49ID:R411r6ifこのプラグインを使うとカテゴリーをExplorer状に折りたたんで表示することができるんです。
同じようなプラグインはあるのですが、これが一番見た目はよくできているのです。
0823nobodyさん
2009/12/03(木) 21:54:33ID:R411r6ifそこで聞いてみます。すみません。
0824nobodyさん
2009/12/03(木) 21:55:55ID:DjsgAevRまさにそれ作ってます。
2chのAAで使われるような絵記号とか3/4スペースとかあるとおかしくなりませんか?
うちの環境だと、convert_enc〜が何も吐かない時と?を吐くときとランダムで、
DATサイズ合わないので困ってます。
ttp://labs.moene.ws/2wit/
0825nobodyさん
2009/12/03(木) 22:37:07ID:???$string = "abc"; //UTF-8でエンコードされた文字列
$length = mb_strlen($string,"UTF-8"); //文字数を取得
$return = "";
for($i = 0; $i > $length; $i++){
$return .= "?".mb_convert_encoding($str,"Unicode","UTF-8").";";
}
文字列を全部数値文字参照に変換するものを書いてみた
forの中にShift_JISの範囲内に入っているかを判別する式を書いて振り分ければ望んだ動作になるはず
0826nobodyさん
2009/12/03(木) 22:38:42ID:???は
$return .= "&#".mb_convert_encoding($str,"Unicode","UTF-8").";";
だ、ミス。
0827nobodyさん
2009/12/03(木) 22:40:00ID:???$return .= "&#".mb_convert_encoding($string{$i},"Unicode","UTF-8").";";
0828nobodyさん
2009/12/03(木) 22:44:49ID:???当然のように化けてた。
# Twitでも化けてたから(見た目は同じ?に置換)見慣れてしまってて気付かなかった。
コードは取れるだろうから素直にHTMLの数値参照に置き換えるのがベストなんだろうな
0829nobodyさん
2009/12/03(木) 22:44:55ID:ZvKoTbw+>>825-827
おおお。ありがとうございます!
ちょっくら試してみます。Unicode、考えてもいませんでした。
あとはUnicode<>ShiftJISの対照テーブルですね。
0830nobodyさん
2009/12/03(木) 22:48:50ID:???何かおかしいと思って動かしてみたら動かなかった。肝心の数値に変換するところを忘れてたわ何度もスマン
$return .= "&#".hexdec(bin2hex(mb_convert_encoding($string{$i},"Unicode","UTF-8"))).";";
0831nobodyさん
2009/12/03(木) 22:52:17ID:ZvKoTbw+そこなんですよね。
今の環境(PHP5.2.5)だと、?にすらならずにNULLで返ってくることがあるという。。。
さっき教示いただいた方法と、mb_encode_numericentityの方法とを試してみます。
SJISとのコード範囲が直接対応しないので今泣いてますw
>>830
ちゃんと脳内補完しておりました。いろいろありがとうございます。
もし躓いたらアドバイスいただけるとうれしいです。。。
0832nobodyさん
2009/12/03(木) 23:02:23ID:???↓
$return .= "&#".hexdec(bin2hex(mb_convert_encoding(mb_substr($string,$i,1,"UTF-8"),"Unicode","UTF-8"))).";";
マルチバイト考慮してなかったわ、、頭が回ってないな
0833nobodyさん
2009/12/03(木) 23:12:10ID:ZvKoTbw+Unicode.orgのJIS資料見てました。さんくすです。
0834nobodyさん
2009/12/04(金) 00:51:20ID:pWkVeJ5Lほんとうにありがとうございました。解決しました。
SJISのテーブルを配列で持って、in_arrayで判定していますが
ちょっとロス多いし重いので改善します。
0835nobodyさん
2009/12/04(金) 01:09:35ID:???$string = "【PHP】下らねぇ質問はID出して書き込みやがれ 90";
$length = mb_strlen($string,"UTF-8");
$return = "";
for($i = 0; $i < $length; $i++){
$now = mb_substr($string,$i,1,"UTF-8");
if(preg_match("/[\0-\ff]|[ -滌]|[漾-K]/",bin2hex($now)) == 1) {
$return .= $now;
}else{
$return .= "&#".hexdec(bin2hex(mb_convert_encoding($now,"Unicode","UTF-8"))).";";
}
}
正規表現で纏めると楽。
動かしてないからバグ含むかもしれないが
0836nobodyさん
2009/12/04(金) 01:10:53ID:???0837nobodyさん
2009/12/04(金) 01:23:42ID:pWkVeJ5Lあー。範囲をざっくりでよければそれが楽だし早そうですね。
かなり遅くなって、2000レスくらいあるとタイムアウトになるのでw
明日起きたら修正してみます。
本当に助かりました。ありがとう。
0838nobodyさん
2009/12/04(金) 01:28:11ID:pWkVeJ5L…あれ?
眠くて頭回ってないんですが、preg_replaceつかえばfor回さなくていけそうな気が。
起きたらやってみます。スレ汚しすみませんでした。
0839nobodyさん
2009/12/04(金) 01:51:51ID:???漢字の表にらめっこしてて気づいた。UTF-8の[漾-K]とsjisの[漾-K]は違う、と
なのでPHPに直接漢字を書いたら意味を成さない
mb_convert_encodingでshift_jis範囲外の文字をshift_jisに変換すると\x0-\xffの範囲に収まる文字に化けることに気づいたので
書いてみた。これで今度こそちゃんと動くはず
<?php
$string = "ここにsjis範囲外の文字を混ぜてみるといいよ";
$length = mb_strlen($string,"UTF-8");
$return = "";
for($i = 0; $i < $length; $i++){
$now = mb_substr($string,$i,1,"UTF-8");
$sjis = mb_convert_encoding($now,"Shift_JIS","UTF-8");
if(preg_match('/^[\x0-\xff]$/',$now) == 1) {
//半角文字はスルー
$return .= $now;
}else if(preg_match('/^[\x0-\xff]$/',$sjis) == 1) {
//半角文字ではないのにsjisに変換したら半角文字になったらsjis範囲外と判定
$return .= "?".hexdec(bin2hex(mb_convert_encoding($now,"Unicode","UTF-8"))).";";
}else{
//それ以外は対応していると判定
$return .= $now;
}
}
echo $return;
?>
0840nobodyさん
2009/12/04(金) 08:37:23ID:k0I4hXn9出勤途中なんであとでためしてみます。
現状の方法だと、sjisにあるunicodeのコード表を持っているためかメモリ•時間のコストが高いです。
最終的に一文字ずつの処理がネックにならなければいいのですが。。
0841nobodyさん
2009/12/04(金) 09:30:36ID:???変換できない文字もなんとかしたいなら
mb_substitute_character("long");
0842nobodyさん
2009/12/04(金) 09:57:19ID:bmPzZ+0rうわわわわ。1行で解決しちゃった。この関数知りませんでした。。。
本当にありがとうございます。
longで出した後に、該当だけpreg_matchで数値参照形式に置換しました。
速度も従来と同じですし快適です。
>>839, >>841 重ね重ね御礼です。ありがとうございました。勉強になりました。
0843nobodyさん
2009/12/04(金) 10:10:50ID:???うーん。よく見たら期待するunicode値がでないですね。。。
&#9992;になって欲しいところ、出力は&#2708;(U+2708)
0844nobodyさん
2009/12/04(金) 10:28:04ID:???0845nobodyさん
2009/12/04(金) 10:51:45ID:???0846nobodyさん
2009/12/04(金) 14:13:59ID:QlPFqhzQ$NewID=10;
$NewFile = @fopen("ID/"+$NewID+".txt, "w");
のようにファイル名の中に変数を用いたいのですが、どうすればいいのでしょうか?
0847nobodyさん
2009/12/04(金) 14:20:48ID:???0849nobodyさん
2009/12/04(金) 14:27:42ID:???0850nobodyさん
2009/12/04(金) 15:03:29ID:???0851nobodyさん
2009/12/04(金) 15:06:45ID:???0852nobodyさん
2009/12/04(金) 15:08:19ID:???これと
"ID/{$NewID}.txt"
これとかは許せるけど
"ID/".$NewID.".txt"
これだけは許せない。
0853nobodyさん
2009/12/04(金) 15:10:08ID:???0855nobodyさん
2009/12/04(金) 15:26:59ID:???0856nobodyさん
2009/12/04(金) 16:09:48ID:++QWFr0HPHP5.2.6で実行エラーが出るので、最新版5.3.1をインストールしました。
これでDOS上は問題なく動いたので、Apache(Localhostサーバー)を
試すため下記の phpinfo.php をFireFoxで実行したところ、PHPのバージョンが
5.2.6のままでした。
<?php
phpinfo();//上の行の <? タグが消えています
?>
php -v で確認したところ、やはりDOSでは5.3.1です。
これって、動作上の不具合は起きますか?(今のところ起きていませんが・・・)
0857nobodyさん
2009/12/04(金) 16:10:01ID:???変数展開必要かどうかで使い分けて欲しい。
0858nobodyさん
2009/12/04(金) 16:12:35ID:???0859nobodyさん
2009/12/04(金) 16:16:03ID:???php -vとやって実行されるのはphp.exe
apacheで読み込まれるのはphp5ts.dllで違うモノ。
apacheの再起動はした?もししているのなら
apacheが読み込んでいるDLLが5.2.6の奴を読み込んでいる。
httpd.confを確認して。
0860846
2009/12/04(金) 16:18:56ID:QlPFqhzQ0861nobodyさん
2009/12/04(金) 16:24:16ID:g07CCDF2【PHPのバージョン】php5.2.6
【連携ソフトウェア】MySQL
【質問内容】
ブログ作りに挑戦していて、これからいよいよメイン画面を作るところです。
毎日1エントリ投稿して、各エントリにコメントが10件つくとすると、
約3年でコメントが10,000件になってしまいます。
レコード数の増大によって速度が落ちるのを防ぐ対策が必要でしょうか?
数エントリごとに新たにデータベースのテーブルを作って、テーブル一つ一つの
サイズが大きくなりすぎないようにしないといけないのでしょうか。
良い方法をご教示いただければ幸いです。
0862nobodyさん
2009/12/04(金) 16:32:27ID:???サーバスペックが書いてないが、1万レコード程度では問題にならんと思うぞ
その程度の規模なら、最低限の事としてINDEXを貼って、定期的にanalyzeしとけばまず平気
あとはPHPの話ではなくDBの話になるからスレ違い。
0863856
2009/12/04(金) 16:40:23ID:???すいません、DOSではなくコマンドプロンプトです。
あと、再起動しようとしましたがStopが無効だったので、Exitをしたら
タスクトレイからApacheが消えてしましまいした。
復旧のため、Apacheのhttpdがあるbinディレクトリより \bin>httpd start
としましたが、駄目でした。どうしたら良いでしょうか?
0864nobodyさん
2009/12/04(金) 16:43:54ID:???0866nobodyさん
2009/12/04(金) 16:55:35ID:???0867nobodyさん
2009/12/04(金) 16:59:14ID:???0868nobodyさん
2009/12/04(金) 17:00:20ID:???Apache再起動5秒〜10秒
0869861
2009/12/04(金) 17:04:22ID:g07CCDF2まだローカルでしか動かしてませんが、完成したら無料のレンタルサーバに置く予定です。
10,000件でも100,000件でも大丈夫なんでしょうか・・・。
analyzeというのは何のことかわかりませんが、これから調べてみようと思います。
INDEXというのはテーブルの主キーになる連番のことですよね?
PHPの質問だと思ってここに書きましたが、おっしゃるとおりDBのことなので、
わからなかったら今度は該当するスレに行こうと思います。
ありがとうございました!
0870nobodyさん
2009/12/04(金) 17:07:55ID:???その書込みはちょっとズレすぎじゃないか?
>>869
レン鯖なら容量が決まってると思うので、そっちを心配した方が良い
0871nobodyさん
2009/12/04(金) 17:12:57ID:???0872856
2009/12/04(金) 17:18:30ID:???有難うございます。
binにあるApacheMonitorをダブルクリックしてタスクトレイに
ApacheMonitorを復帰させることは出来ましたが、Startを選択すると
下記のメッセージが現れます。
http://uproda.2ch-library.com/193874eFA/lib193874.png
すいません、アドバイス願います。
0873nobodyさん
2009/12/04(金) 17:20:16ID:???0874nobodyさん
2009/12/04(金) 17:30:01ID:???状況を整理するぞ、違ってたらごめんな
1.php5.2.6が正常動作
2.その状態でphp5.3.1をインストール(apacheの再起動は行ってない)
3.>>856 の状態になる
4.apacheの停止でエラー、起動させると>>872のエラーがでる。
これであってるなら、httpd.confの整合性がとれない可能性がでかい
httpd.confのLoadModuleとかで読み込んでいるファイルが存在するのか確認して。
php5.3.1入れたんだから、php5.3.1のファイルを指定しないと駄目だよ
っていうかエラーメッセージで検索してみな、いっぱいでてくるから。
0876861
2009/12/04(金) 18:08:51ID:g07CCDF2> レン鯖なら容量が決まってると思うので、そっちを心配した方が良い
100MBくらいあれば問題ないと思ってました。。
実際に運用を始めたら、ときどき使用容量を確認しようと思います。
アドバイスありがとうございました。
0877856&874
2009/12/04(金) 18:12:47ID:???が・・・ Restartしてもphpinfo.phpでは5.2.6のままです。
(つまり、>>856の状態に戻りました)
> httpd.confのLoadModuleとかで読み込んでいるファイルが存在するのか確認して。
確認したところ、LoadModule php5_module "c:/php5/php5apache2_2.dll" となって
いるもののphp5内にphp5apache2_2.dllがありませんでした。
幸い、バックアップを取っていたphp5apache2_2.dllがあったのでこれを流用しました。
>>874
流れ的には、
PHP5.2.6で実行エラー
→ 5.3.1に変える(php -v で確認)
→ phpinfo.php をFireFoxで実行したところ、PHPのバージョンが 5.2.6のまま
→ ApacheMonitorを再起動しようとするとStopが無効だったので、
ExitをしたらタスクトレイからApacheMonitorが消えた
→ ApacheMonitorは復活したが、Startを選択すると下記のメッセージが現れる
http://uproda.2ch-library.com/193874eFA/lib193874.png
です。なので>>854さんの1,2が違います。
>>875
Cドライブ直下のphp5内です。
0878nobodyさん
2009/12/04(金) 18:24:29ID:???バージョンが5.2.6のままなのは、
php5apache2_2.dllが古いからかも。
PHP5.3.1のphp5apache2_2.dllを上書きしてみたら?
0879nobodyさん
2009/12/04(金) 19:02:52ID:???その変数内にスラッシュが含まれているとエラーになるみたいなんですが何か対処法はありませんか?
もし問題なければそう言って頂ければ幸いです。宜しくお願いします。
0881nobodyさん
2009/12/04(金) 19:09:52ID:fvCG6CPk0883nobodyさん
2009/12/04(金) 19:14:54ID:fvCG6CPkありがとうございました
0884nobodyさん
2009/12/04(金) 20:56:52ID:???変数の正規表現するときくらいはかまってあげてください
0885nobodyさん
2009/12/05(土) 17:16:42ID:???【PHPのバージョン】php5.2.6
【連携ソフトウェア】MySQL
【質問内容】
ブログを作っていて毎日記事を書いているとアクセスが増えてきてコメントがたくさんつくように
なりました。コメントの表示はreadfile("txt")としてましたが一ページのコメント量が
多いページになると読み込みが重くなるので分散したいと考えDBの利用を検討してます。
例えばpageというフィールドを作って1とか2といったレコードを記録して参照時は
WHERE page = 1 LIMIT 0, 5みたいなSQLを発行した方がいいのか
ページごとにテーブルを作った方がいいのか迷ってます。(ページ総数は1000ページ)
読み込み時の負荷の軽い方はどちらでしょうか?
0887nobodyさん
2009/12/05(土) 19:08:17ID:???0888nobodyさん
2009/12/05(土) 19:47:59ID:???0889nobodyさん
2009/12/05(土) 19:48:54ID:???0890nobodyさん
2009/12/05(土) 20:01:38ID:39Sh3r0ZPHPから値(data1,data2)を送信するとき、引用したサイトでは下の
ように書いてありました
echo '&data1='.$data1.'&data2='.$data2;
※引用 ttp://wiki.minaco.net/index.php?Flash/%E9%96%A2%E6%95%B0/LoadVars
この記述(引数の参照渡し)自体は問題なく動作したのですが、
本によると
「引数の参照渡しはコードの見通しが悪くなるので、無闇に使う
のはやめましょう」
とありました。
そこで質問ですが、上記の「echo 〜」の別の表現にはどのようなものが
あるのでしょうか?
0891nobodyさん
2009/12/05(土) 20:08:37ID:???0892nobodyさん
2009/12/05(土) 20:10:43ID:???0893nobodyさん
2009/12/05(土) 20:13:04ID:???0894nobodyさん
2009/12/05(土) 20:43:30ID:???ページ毎にテーブルを作った方が元取れんぞ
焼肉食べ放題でも元取れるまで食うだろ。それと一緒だ
どんどん使え 食え! 食エリ!
なんちゃってwwwwww
0895nobodyさん
2009/12/05(土) 20:48:20ID:???0896nobodyさん
2009/12/05(土) 20:52:30ID:???ただし多重起動しないように、起動時にチェックしてすでに常駐してるなら終了、
みたいな処理させたいのでおそらくプロセスIDを見て処理するのだと思うんですが
Vistaの場合にはどうしたらいいんでしょうか。
0897nobodyさん
2009/12/05(土) 20:53:22ID:2rpAUHym特定のphpファイルを常時起動させときたいんでスケジューラで一定タイミングごとに起動させようと思います。
ただし多重起動しないように、起動時にチェックしてすでに常駐してるなら終了、
みたいな処理させたいのでおそらくプロセスIDを見て処理するのだと思うんですが
Vistaの場合にはどうしたらいいんでしょうか。
0898nobodyさん
2009/12/05(土) 21:11:22ID:???0899890
2009/12/05(土) 21:16:33ID:???”参照渡し”と”値渡し”というのは、Cにおけるポインタ
みたいなものでしょうか?
つまり、出席番号21番の鳩山君という定義があったとき、
彼を検察が呼び出すとき、
参照渡し)「出席番号21番出頭しなさい」
値渡し)「鳩山君出頭しなさい」
という違いですか? これが正しいとして、'&data1='の『&』の
役割りが分かりません。
0902nobodyさん
2009/12/05(土) 21:36:01ID:???0905nobodyさん
2009/12/05(土) 22:41:45ID:???0906nobodyさん
2009/12/05(土) 22:43:44ID:???っていうかwindowsなのにIIS使わない理由は何?
MS様がサポートしてくれるのに。
0908nobodyさん
2009/12/05(土) 22:59:29ID:???調子のりすぎた。
カンファレンスのスポンサーにもなってるのに、PHP on IISの話は全然でてこないなーと思って。
http://technet.microsoft.com/ja-jp/iis/ee794964.aspx
0909nobodyさん
2009/12/05(土) 23:20:54ID:???今すぐ土へ還るんだ
0910nobodyさん
2009/12/06(日) 00:39:40ID:NcEl5Lj3http://page2.xrea.jp/#php_mecab
http://cvs.php.net/viewvc.cgi/pecl/chasen/
こういうのが見つかったんですがcのファイルだけ置いてあってREADMEにVisualStudioでビルドしろって書いてありますが
これらはわざわざ製品買ってコンパイルしてやらないとphpで使えないってことでしょうか。
0911nobodyさん
2009/12/06(日) 01:06:36ID:???0912nobodyさん
2009/12/06(日) 01:48:25ID:???0913nobodyさん
2009/12/06(日) 02:07:54ID:lUTuxG8hC言語にも参照渡しあるでしょ。
アドレス渡しとか参照呼び出しとかとも言ったと思うけど。
0914nobodyさん
2009/12/06(日) 02:18:20ID:???0915nobodyさん
2009/12/06(日) 05:06:29ID:???0916nobodyさん
2009/12/06(日) 06:28:24ID:C3/Ead/T次回同じページを見るときに、GETリクエストで、
http://example.com/?a=1&b=1&c=1&d=1&e=1&f=1
みたいな感じでアクセスすると同じページが生成されますが、
ページによるとなんか暗号化?みたいにしてサーバ側でデコードしてやってるとこがありますよね?
http://example.com/aHwh2iuAwuihs2
みたいなランダムな文字列で。
これってどういう風にやるのでしょうか?
0917nobodyさん
2009/12/06(日) 09:58:37ID:???0918nobodyさん
2009/12/06(日) 10:27:22ID:C3/Ead/Tなんかそういう関数があるのでしょうか?
base64関数はありますが、これはちょっと用途的に違うような気もしますし。
0919nobodyさん
2009/12/06(日) 10:43:11ID:???・ランダムでユニークな文字列を作成して、
ユニークIDとGETの値をDBに入れておく
・GETの値で使用する値を取得、serialize+pearの暗号化+base64の組み合わせ
まぁ暗号化が一番バランスいいかなと
0920nobodyさん
2009/12/06(日) 10:47:42ID:C3/Ead/Tありがとうございます。
調べてちょっとやってみたいと思います。
0923nobodyさん
2009/12/06(日) 18:15:21ID:Sn8eXDuLPHP4向けのサンプルプログラム(書籍添付CDのコピー)を
PHP5の環境で動かしています。
フォームに"名前"を入力したら、「"名前"さん、ようこそ」と表示する
簡単なものですが、"名前"が表示されずに「さん、ようこそ」と表示されます。
HTMLやPHPソースの名前の変数名は一致しています。
フォームでの変数名指定、フォームの変数参照の規約は
PHP4とPHP5と違うのでしょうか?
0924nobodyさん
2009/12/06(日) 18:18:10ID:???0925923
2009/12/06(日) 19:05:20ID:Sn8eXDuLレスありがとうございます。
でもビックリです。
4から5に上げる時、みなさん修正されたんでしょうか?!
0926nobodyさん
2009/12/06(日) 19:06:54ID:???0927nobodyさん
2009/12/06(日) 19:07:38ID:???0928nobodyさん
2009/12/06(日) 19:13:03ID:???0929nobodyさん
2009/12/06(日) 19:16:51ID:???0931nobodyさん
2009/12/06(日) 19:26:30ID:???0932nobodyさん
2009/12/06(日) 19:31:17ID:???0933925=923
2009/12/06(日) 19:34:14ID:Sn8eXDuL>>927
「よくある」んですか?!
>>930
PHP4での記述形式が変わったのは、
$_POST関連だけなんでしょうか?
0934nobodyさん
2009/12/06(日) 19:35:32ID:???0935925=923
2009/12/06(日) 19:43:28ID:Sn8eXDuLレスありがとうございます
今後も変更の可能性があるのならば、
作るプログラムが小さい場合は、
PHPよりPerlの方が無難なのでしょうか?
0936nobodyさん
2009/12/06(日) 19:46:47ID:???どんなソフトでもバージョンアップはあるよ
0937925=923
2009/12/06(日) 19:54:46ID:Sn8eXDuLちゃんと動くようにするのにxxx万円かかります」なんて言ったら、
お客さん怒るんじゃないでしょうかw
私だっら怒りますよ。「そんな話は聞いてない!」ってw
0938nobodyさん
2009/12/06(日) 19:56:13ID:???本家のサポートは終わったけど、有償サポートしてる所があるわけ。
0941925=923
2009/12/06(日) 21:10:18ID:Sn8eXDuLそんなソフト(の開発者が作ったもの)は使うべきでないのに、
それを許して、多くの人が使ってるから
0942nobodyさん
2009/12/06(日) 21:12:35ID:???開発っちゃそういうもんさ
0943925=923
2009/12/06(日) 21:13:06ID:Sn8eXDuLコンピュータアーキテクチャが違う時のみ。
利用者の過去の資産が使えなくなる形でバージョンアップするのは
本来ならトウシロウと呼ばれるべき。
0945nobodyさん
2009/12/06(日) 21:41:35ID:???0946nobodyさん
2009/12/06(日) 22:23:54ID:???ここでうだうだ言ったところで仕様は変わらんよ
気に食わないならperlでもrubyでもjavaでも好きな言語選べや
0947nobodyさん
2009/12/06(日) 22:27:45ID:???団塊ジジイ乙
4で作ったら4で動かしていればいいだけ。
自動でバージョンアップは普通しない
たぶんPHPの設定がサンプルと違っているだけ
セキュリティの問題とかでわりと変わってる品
まあ、時代についていけない団塊世代はプログラムなんぞ
やるんじゃねぇってことだ
0950nobodyさん
2009/12/06(日) 22:50:07ID:???0952nobodyさん
2009/12/06(日) 23:52:36ID:???許されないのはCOBO・・・おっと。
新しいバージョンに入れ替えてどうなるか調査しないで
モンク垂れることが許される業界は、コンピュータ業界
には無いな。
0953nobodyさん
2009/12/07(月) 00:20:44ID:???0954nobodyさん
2009/12/07(月) 00:30:26ID:???0955nobodyさん
2009/12/07(月) 00:32:14ID:???0956nobodyさん
2009/12/07(月) 01:06:00ID:???0957nobodyさん
2009/12/07(月) 02:12:36ID:???0958nobodyさん
2009/12/07(月) 03:23:16ID:???0959nobodyさん
2009/12/07(月) 04:09:41ID:Q2sf5+Ka関数部分の内容は
mail('****@gmail.com', 'My Subject', "testFromMail"); ってだけです。
php.iniを確認すると、sendmail_path = /usr/sbin/sendmail -t -i となっています。
ためしに "/usr/sbin/sendmail -t -i" と"で囲んでも同じ結果でした。
何が問題と考えられますか?
どこがおかしいか、可能性を教えてもらえると幸いです。
宜しくお願いします
環境は、centOS5.3 apache2 php5.2.6
macのvmware-fusion上で動かしています。
0960nobodyさん
2009/12/07(月) 09:07:04ID:???PHPのエラーは全て拾う
エラーが無かったらメールログを見る
正常に送信してたらスパムフィルタを疑う
スパムフォルダ等になければ遅延を疑う
0961nobodyさん
2009/12/07(月) 10:48:28ID:???ありがとうございます
アパッチのエラーログには異常がないので、メールログに何か書いてあるみたいですが読み方がわかりません
スレ違いは承知していますがSENDMAILのエラーログの解説してるサイトを教えてもらえないでしょうか
もちろんググったんですが、似たような質問ばかりでてきて肝心のリンク先が切れてるのばかりで…
気に障ったら無視してください、引き続き自分でも探しますので
ありがとうございました
0962nobodyさん
2009/12/07(月) 11:06:03ID:???0963nobodyさん
2009/12/07(月) 11:08:02ID:???0964nobodyさん
2009/12/07(月) 15:32:12ID:???あと忘れてたけど自宅鯖なの?ポート25では直接送れないのかもね
ログの件もそうだけどわからなかったら自宅鯖のくだ質行ってください
0965nobodyさん
2009/12/07(月) 18:42:01ID:???$a = ($b===0)?0:1;
な感じで、
$a = if($b===0){0;}else if($b===1){1;}else{2;}
と言う風なことができたらいいなと思ったんですがsyntax errorが出てしまいます。
ふつうにif($b===0){$a=0;}else if($b===1){$a=1;}else{$a=2;}
でもいいのですが、どうにかできないものでしょうか
よろしくおねがいします。
0966nobodyさん
2009/12/07(月) 18:42:49ID:0YQe80X30967965,966
2009/12/07(月) 18:43:47ID:0YQe80X30968nobodyさん
2009/12/07(月) 18:55:21ID:???0969nobodyさん
2009/12/07(月) 19:29:56ID:???$a = ($b===0) ? 0 : ($b===1) ? 1: 2;
0971nobodyさん
2009/12/07(月) 19:47:39ID:???-1だったら?
0972nobodyさん
2009/12/07(月) 20:03:31ID:0YQe80X3この数字だとニュアンスが伝わらなかったですね・・
すいませんでした。
$a = if($b==='a'){0;}else if($b==='b'){1;}else{2;}
というような感じに書きたかったんです。
>>969
ありがとうございます。
なるほど三項演算子の入れ子っぽい感じでしょうか
しかしさっそく
$b='a';
echo 'a='.$a = ($b==='a') ? 0 : ($b==='b') ? 1: 2;
として試してみたところ
$aは2になってしまいました・・
$b='b' のとき、 $a=1 。
$b='c'とした場合や、$bが未定義のときは$aは2になってくれました。
そこで調べてみると、ネストした三項演算子の挙動とその対応策
というサイトに行きついて対応策が書かれていたので
分岐が少ないうちは()でくくろうかなと思います
ありがとうございました。
0973nobodyさん
2009/12/07(月) 20:08:37ID:???0974nobodyさん
2009/12/07(月) 20:17:18ID:???なので私もswitch推奨
0975nobodyさん
2009/12/07(月) 20:35:16ID:???一行でちゃちゃっと書きたいんだろうけど、その発想は後々後悔する
複雑なら関数(メソッド)化したほうがいいと思う
0976nobodyさん
2009/12/07(月) 20:38:28ID:???0977nobodyさん
2009/12/07(月) 22:33:22ID:Uy2a15lYhoge1フォルダからの相対アドレスを取得したいのですが、
どのようにやったらいいでしょうか?
0978nobodyさん
2009/12/08(火) 00:06:57ID:???function RelativePath( $basePath , $targetPath) {
$basePath = ereg_replace("/$","",$basePath);
$targetPath = ereg_replace("/$","",$targetPath);
$basePath = ereg_replace("^/","",$basePath);
$targetPath = ereg_replace("^/","",$targetPath);
$base = explode("/",$basePath);
$target = explode("/",$targetPath);
$targetCount = count($target);
$baseCount = count($base);
for ($i=0;$i<$targetCount and $i<$baseCount;$i++){
if ( $base[$i] == $target[$i] ){
unset( $target[$i]);
unset( $base[$i]);
}
}
if (count($base) ==0)
$path ="./";
else
$path = str_repeat("../", count( $base ));
$path.= implode("/",$target);;
return $path;
}
0980nobodyさん
2009/12/08(火) 00:51:08ID:???感心するわ。
俺ならちゃんと説明しろって答えてたな
何言ってるかわからんかった
0982nobodyさん
2009/12/08(火) 09:39:14ID:???下のコードで $password が 3 文字以下だと $str1 == $str2 にならん。
$password = 'aaa';
$str1 = crypt($password);
$str2 = crypt($password, $str1);
echo $str1 . "\n" . $str2;
▼出力結果例(PHP 5.3.1 / Win7 64bit)
$1$Vd5.4a3.$y6Jjb8HaT6UzUwuzlHCKp1
$1$Vd5.4a3.$eOEyiWRgt1JKH9FUKpJW60
0983nobodyさん
2009/12/08(火) 09:47:14ID:???strは暗号化する文字列(8文字以上は同じになるので8文字まで。)
saltは暗号化するための2文字の文字列です。これはプログラム内に指定します。
saltによって返り値は変化します。また、返り値の最初の2文字にsaltが含まれ、その後の11文字が暗号化文字列になります。
0984nobodyさん
2009/12/08(火) 09:55:49ID:???0985nobodyさん
2009/12/08(火) 10:08:19ID:???要するに、
crypt($password, '$1$zA/.AE/.$KwOIKMK9oPvXu6ybBNj/d/');
を複数回試行した時、$password が 4 文字以上の場合は常に同じ値が、
3 文字以下の場合は毎回異なる値が返るって話で。
0986nobodyさん
2009/12/08(火) 10:14:57ID:???0987nobodyさん
2009/12/08(火) 10:42:12ID:???CRYPT_SALT_LENGTH == 60
CRYPT_STD_DES == 1
CRYPT_EXT_DES == 1
CRYPT_MD5 == 1
CRYPT_BLOWFISH == 1
$password = 'aaa';
crypt($password, 'rl.3StKT.4T8M'); // Standard DES。毎回同じ結果。
crypt($password, '_J9..rasmBYk8r9AiWNc'); // Extended DES。毎回同じ結果。
crypt($password, '$1$rasmusle$rISCgZzpwk3UhDidwXvin0'); // MD5。毎回違う結果。
crypt($password, '$2a$07$usesomesillystringfore2uDLvp1Ii2e./U9C8sBjqp8I90dH6hi'); // Blowfish。毎回同じ結果。
0989nobodyさん
2009/12/08(火) 10:51:13ID:???0990nobodyさん
2009/12/08(火) 11:13:17ID:???申し訳ない、ただの手抜きです。crypt() の公式マニュアルのサンプルコードでは、
crypt() 済みの文字列から salt 部分を切り出さずに全文使ってたから、その通りに。
公式のサンプル
$password = crypt('mypassword');
if (crypt($user_input, $password) == $password) { echo "Password verified!"; }
試しに salt を切り出して実行してみたけど、結果は同じ。
ちなみに下のコードを実行したところ…
$password = 'aaa';
$salt = '$1$rasmusle$';
echo crypt($password, $salt) . "\n";
echo crypt($password, $salt) . "\n";
echo crypt($password, $salt) . "\n";
for($i = 0; $i < 3; $i++) { echo crypt($password, $salt) . "\n"; }
for($i = 0; $i < 3; $i++) { echo crypt($password, $salt) . "\n"; }
こうなりました
$1$rasmusle$j.76fUGadpG60PYrj.lpj1
$1$rasmusle$3VBtfb3er4yAzFEKUB2Dy1
$1$rasmusle$PPO.hs4CYwNRgTFYlxOXu/
$1$rasmusle$1wrvgdwXYuAdAc8yapgcG1
$1$rasmusle$1wrvgdwXYuAdAc8yapgcG1
$1$rasmusle$1wrvgdwXYuAdAc8yapgcG1
$1$rasmusle$p4dvB0SB7HcE7HXi1oGhS0
$1$rasmusle$p4dvB0SB7HcE7HXi1oGhS0
$1$rasmusle$p4dvB0SB7HcE7HXi1oGhS0
0991nobodyさん
2009/12/08(火) 11:41:37ID:7sia6qguそれをstripslashesを使って削除しようと思い実行したのですが削除できません。
テキストフォームにバックスラッシュ無しで出力したいのですが何か削除する方法はありませんか?
0993nobodyさん
2009/12/08(火) 11:54:24ID:7sia6qgu解決に導いて下さってありがとうございました
0994nobodyさん
2009/12/08(火) 11:55:07ID:???$password='aaaaaa' ;
echo crypt($password, '$1$zA$').'<br />' ;
echo crypt($password, '$1$zA$').'<br />' ;
違う結果になったよ。
0995nobodyさん
2009/12/08(火) 12:01:39ID:???function echo_crypt($pw, $s){
echo crypt($pw, $s) ; //.'<br />' ;
}
$password = 'aaa';
$salt = '$1$rasmusle$';
echo echo_crypt($password, $salt).'<br />' ;
for($i = 0; $i < 2; $i++) { echo echo_crypt($password, $salt).'<br />' ; }
?>
これは全部同じ。
crypt()がsaltを補完してて、CRYPT_SALT_LENGTH に対して充分な補完が行われない場合、コード位置によるゴミが入るバグと推測。
0996nobodyさん
2009/12/08(火) 12:07:24ID:???0997nobodyさん
2009/12/08(火) 12:16:51ID:GGPotsAyrequire_once("Auth/HTTP.php");
$params=array(
"dsn"=>"mysqli://pearusr:pearpass@localhost/pear",
"table"=>"auth",
"usernamecol"=>"username",
"passwordcol"=>"password",
"db_fields"=>"*");
$myAuth=new Auth_HTTP("DB",$params);
$myAuth->setRealm("Pear Sample"); //←ココです
$myAuth->setCancelText("このページは表示できません。");
$myAuth->start();
if($myAuth->getAuth()){
print("ユーザ名:".$myAuth->getAuthData("unam"));
}
?>
申し訳ございませんが、上記のコードの$myAuth->setRealm("Pear Sample"); の部分が分かりません
このPear Sampleという領域名はいったい何を意味して、何の効果(動作)があるのでしょうか?
認証情報を識別するためのレルム名と書かれていますが、何の事かサッパリ分かりません
0998nobodyさん
2009/12/08(火) 12:31:27ID:???それはあなたが決めればいい。
ブラウザの認証ダイアログにそのまま文字列として表示されるよ。
サイトに複数の独立した領域を作って、それぞれでぜんぜん違うユーザー名:パスワードで管理したとする。
ユーザーはどっちのユーザー名が有効なのか、領域名で判断するんだ。
0999nobodyさん
2009/12/08(火) 12:36:35ID:???検証ありがとうございました。
確かに crypt() を記述する行番号によって出力結果が変わりました。
また salt を11文字以下にすると、$password が 4 文字以上でも出力結果が変わりました。
一方で salt の 13 文字目以降は、出力の 13 文字目以降に全く影響しませんでした。
公式のサンプルコードをそのまま使用する場合、
パスワードが 3 文字以下のユーザはログインできないことになりますね。
殆どのサイトはパスワードの文字数に制限をかけてはいるでしょうが…。
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。