【PHP】下らねぇ質問はここに書き込みやがれ 41
レス数が1000を超えています。これ以上書き込みはできません。
0001nobodyさん
2007/03/06(火) 15:39:46ID:naBsdy1ZPHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 40
http://pc11.2ch.net/test/read.cgi/php/1172151461/
◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ http://pc10.2ch.net/php/subback.html
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで http://pc10.2ch.net/db/subback.html
0002nobodyさん
2007/03/06(火) 15:40:59ID:naBsdy1Z【PHP】下らねぇ質問はここに書き込みやがれ 29
http://pc8.2ch.net/test/read.cgi/php/1158434799/
【PHP】下らねぇ質問はここに書き込みやがれ 30
http://pc8.2ch.net/test/read.cgi/php/1159979905/
【PHP】下らねぇ質問はここに書き込みやがれ 31
http://pc8.2ch.net/test/read.cgi/php/1161733546/
【PHP】下らねぇ質問はここに書き込みやがれ 32
http://pc8.2ch.net/test/read.cgi/php/1162818436/
【PHP】下らねぇ質問はここに書き込みやがれ 33
http://pc8.2ch.net/test/read.cgi/php/1164209222/
【PHP】下らねぇ質問はここに書き込みやがれ 34
http://pc8.2ch.net/test/read.cgi/php/1165519374/
【PHP】下らねぇ質問はここに書き込みやがれ 35
http://pc10.2ch.net/test/read.cgi/php/1166676139/
【PHP】下らねぇ質問はここに書き込みやがれ 36
http://pc10.2ch.net/test/read.cgi/php/1168395610/
【PHP】下らねぇ質問はここに書き込みやがれ 37
http://pc10.2ch.net/test/read.cgi/php/1169644229/
【PHP】下らねぇ質問はここに書き込みやがれ 38
http://pc10.2ch.net/test/read.cgi/php/1170520777/
【PHP】下らねぇ質問はここに書き込みやがれ 39
http://pc10.2ch.net/test/read.cgi/php/1171280039/
0003nobodyさん
2007/03/06(火) 15:42:04ID:naBsdy1Z■本家マニュアル 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://smarty.php.net/
■Zend本家 http://www.zend.com/
■Zend Framework http://framework.zend.com/
■php | architect http://www.phparch.com/
■Smartyマニュアル http://smarty.php.net/manual/en/
■PECL本家(英語) http://pecl.php.net/
0004nobodyさん
2007/03/06(火) 15:42:50ID:naBsdy1Z1.文字コードは何を使えばいいの?
→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さん
2007/03/06(火) 15:43:38ID:naBsdy1Z→ 確認すべきはPHPのconfigureの引数、php.iniの内容と置き場所、
Webサーバの設定(Apacheならhttpd.conf)、起動&再起動あたり
11. SQLの質問はどこで?
→ データベース板に誘導されるのが嫌ならPHPにうまく関連させて質問する
12. 文字列のなかに、英字のみとか数字のみとか記号が入っちゃいやんとかはどうしたらいいの?
→ ctype_〜()が手軽。複雑なパターンはpreg_〜()あたりで正規表現を使う。
13. $a1, $a2, $a3 ... のような変数名をうまく扱いたい
→ 可変変数で実現できるけど、むしろ配列を使って$a[1], $a[2], $a[3]等とするのがベター
14. echoとprintってどう違うの?
→ よく議論される話題であるが基本的に両者とも同じ。 以下ちょっとした議論。
http://www.faqts.com/knowledge_base/view.phtml/aid/1/fid/40
15. クッキーの情報をユーザから隠したい
→ セッション使え。ただしクッキーとセッションは仕組みが違うから同じように扱うな
16. strip_tags()で削除しないタグを複数指定したい
→ strip_tags($html, '<a><p><font>'); // htmlspecialchars()も検討すべし
17. CSVやTSVのファイルをスマートに扱いたい
→ まずはfgetcsv()。ただし日本語を含むと正常に動作しない場合があるので注意だ。
18. 値渡しと参照渡し(「&」を使う)のパフォーマンスの違い
→ C言語じゃないので、パフォーマンス目的で使いわけたらダメ。参照渡しにすると逆に遅くなったりする
参照渡しは引数に戻り値を設定したり引数を関数内で変更するなど、正しい目的に使うこと
19. ファイル入出力関数(fopen等)でリモートファイル(http://〜とか)を扱う際の限界
→ fsockopen()でソケット通信 or PEARのHTTP系 or CURLで解決
必要ならHTTPをはじめとする各種プロトコル(どんなデータを送受信するか)はRFCなどで調べる
20. PHPからPOSTリクエストしたい
→19.を参照
21. 画像処理一般 or GDの限界
→ ImageMagick(PECLのやつ or シェルから実行)
22. 画像・音・動画はファイルで保存?DBに保存?
→ 好きにしてください
0006nobodyさん
2007/03/06(火) 15:47:24ID:???0007nobodyさん
2007/03/06(火) 16:17:07ID:???遅くなってスマソ。
IPの追加は、キャリアにもよるけど年にmaxでも数回(数年前の情報だから、今は知らんけど)
で、どこのキャリアかはいえないが、大体公式CPに通知して、
しばらくしてから公開されるんだけど、そのタイミングは割りと適当。
合間みて追加する感じ。
早けりゃ当日、遅いと一ヶ月くらいかかってから公開されるときもある。
で、UAに関しては、基本仕様はほぼ変わっていない。
偽装を除けば、UAにキャリア名が入っているかどうかでほぼ見分けられる。
ただ、モトローラのように、一部例外の端末もあるけど…。
ここ数年で、DoCoMo は変更無し、EZが一回、J-Phone がちょっと多くて
J-Phone -> Vodafone -> SoftBank で、例外のモトローラ。
だからUAの方がいいと思う。
0008nobodyさん
2007/03/06(火) 16:35:46ID:???ttp://phpspot.org/blog/archives/2006/11/12php.html
01. staticメソッドが使えるなら使おう。速度は4倍になる
02. __get, __set, __autoload は使わない
03. require_once は重い
04. include, requireで読み込むファイルはフルパスにしよう
05. スクリプト開始時のUNIXタイムを $_SERVER['REQUEST_TIME'] で取れる
06. strncasecmp関数やstrpbrk関数を使えるケースはこれらを使い、正規表現は使わない
07. preg_replaceはstr_replaceより速い、しかし、strtrはpreg_replaceより4倍速い
08. 引数を、単体か配列かで自動判別するようなコードは出来るだけ避ける
09. @ を使ったエラー制御はとても遅い。→ @fputs($fp, "?");
10. $row["id"] は $row[id] より7倍速い
11. PHPのエラーメッセージは重い( noticeとかwarningとか)
12. for ($x=0; $x < count($array); $x) のように、forの中でcountを使うと毎回countが呼ばれるので使わない。
(参考)
PHPの最適化は本当か?
ttp://jigen.aruko.net/archives/433/
0010nobodyさん
2007/03/06(火) 16:52:46ID:???0013nobodyさん
2007/03/06(火) 17:14:11ID:???比較演算子で float 型の比較を行おうとしたところ、正常に動作しませんでした。
その部分は以下のようになっています。
$float_one = (float)($hoge);
$float_two = (float)($hage);
if($float_one > $float_two){
print "hit";
}
この時、$float_one と $float_two は、共に float(24) でした(var_dumpで確認)
float は比較演算子で比較できないのでしょうか?
ちなみに、$hoge と $hage は、小数点第一位までなので、
*10して int にキャストしてやると、正常に if を抜けました。
0014nobodyさん
2007/03/06(火) 18:01:14ID:???<?php
function CompareTest( $hoge, $hage ){
$float_one = (float)($hoge);
$float_two = (float)($hage);
var_dump( $float_one );
var_dump( $float_two );
if($float_one > $float_two){ print "float hit"; }
$float_one = (int)($hoge * 10);
$float_two = (int)($hage * 10);
var_dump( $float_one );
var_dump( $float_two );
if($float_one > $float_two){ print "int hit"; }
}
print( "test1" );
CompareTest( "24.0", "24.0" );
print( "test2" );
CompareTest( "24.1", "24.0" );
?>
// output
test1
float(24) float(24)
int(240) int(240)
test2
float(24.1) float(24) float hit
int(241) int(240) int hit
0015nobodyさん
2007/03/06(火) 18:02:37ID:???> float は比較演算子で比較できないのでしょうか?
普通に出来るよ。
っていうか比較以前に
> $hoge と $hage は、小数点第一位までなので、
とか
> $float_one と $float_two は、共に float(24) でした
とか
言ってる事が滅茶苦茶なんだけど。
0016nobodyさん
2007/03/06(火) 18:04:26ID:???比較できるよ
というか、比較できるかどうかぐらい、
自分でテスト用のスクリプトを書けばわかるじゃないか
その自分で書いたスクリプトを元にして
0017nobodyさん
2007/03/06(火) 18:24:56ID:niuC3B8Jset_include_path(dirname(__FILE__));
require_once("../config/config.php");
上記のコードをブラウザから実行すると問題なく動作するのですが
コンソールから実行すると以下の様なエラーが出てしまいます。
Warning: require_once(../config/config.php): failed to open stream: No such file or directory in /path/to/file.php on line 3
Fatal error: require_once(): Failed opening required '../config/config.php' (include_path='/path/to') in /path/to/file.php on line 3
コンソールからPHPを実行した場合、set_include_pathは無視されるのでしょうか?
0018nobodyさん
2007/03/06(火) 18:36:15ID:???無視されないです
おそらく、require_once() のパス設定が相対パスになっているのが
問題なのでしょう
相対パスになっていると実行するカレントディレクトリを基点にして
../config/config.php を探しにいきます
$path = dirname(__FILE__);
set_include_path($path);
require_once(dirname($path) . '/config/config.php');
このように require_once() のときも絶対パスにすればいいと思います
001917
2007/03/06(火) 18:41:09ID:???意味は分かりますが
それだとinclude_pathを設定する意味が無い気がするのですが…
一応対処として以下の方法を取りました。
chdir(dirname(__FILE__));
require_once("../config/config.php");
0021軟式PHP
2007/03/06(火) 19:07:19ID:???require_once("../config/config.php");
これって
set_include_path(dirname(__FILE__));
require_once("config/config.php");
にする話ではないのだろうか。
0022nobodyさん
2007/03/06(火) 19:09:41ID:???0023nobodyさん
2007/03/06(火) 19:12:28ID:???それじゃ駄目じゃない?
set_include_path(dirname(dirname(__FILE__));
じゃないと
0024nobodyさん
2007/03/06(火) 19:13:19ID:???002517
2007/03/06(火) 19:18:51ID:???include_pathの意味を少し取り違えていたようです。
include_pathは設定したパスの上位ディレクトリしか
探しに行ってくれないのですね。
require等で相対パスを設定した場合
../は禁物だと言う事ですかね。
ちなみに>>23さんの方法で正常にファイルは読み込まれます。
0026軟式PHP
2007/03/06(火) 19:26:54ID:???指摘サンクス。ソレダ。
でもあんまりそういう使い方はせんよね。
set_include_path自体、レン鯖とかでPEARを別途用意する時ぐらいしか使わないからなぁ。
みんな結構使ってるんかな。
0028nobodyさん
2007/03/06(火) 19:48:48ID:???元に戻す方法ってありませんかね?
0029nobodyさん
2007/03/06(火) 19:58:00ID:???php5ならhtmlspecialchars_decode()
php4なら
function htmlspecialchars_decode($text)
{
return strtr($text, array_flip(get_html_translation_table(HTML_SPECIALCHARS)));
}
0030nobodyさん
2007/03/06(火) 20:05:55ID:???003230
2007/03/06(火) 20:23:42ID:6A2NFY710035nobodyさん
2007/03/06(火) 20:40:19ID:???>SHA512+Salt(ワンタイムのランダム文字列)
>ってのが強いハッシュになると思う。
>ランダム生成したSaltとSHA512でハッシュされた値を
>両方とも保存。
と書いてますが、
これってどういうことかどなたか説明していただけませんか?
今までif ($passwd == md5($_POST))という感じでやっていたので、
ランダム文字列ってなんのことなのか・・・
どういう使い方するのでしょうか?
003730
2007/03/06(火) 20:58:46ID:6A2NFY710038nobodyさん
2007/03/06(火) 21:09:39ID:???作れなくはないと思うけど、利用者の人数によっては
使いものにならないかも
0039nobodyさん
2007/03/06(火) 21:13:05ID:???短い間ですがありがとうございます。
0040nobodyさん
2007/03/06(火) 21:51:20ID:25mpWck5\n区切りの行において、最後の行を fgets() で取得したいのですが
どうやればできるのでしょうか?
0041nobodyさん
2007/03/06(火) 21:58:11ID:???0042nobodyさん
2007/03/06(火) 22:00:42ID:???0043nobodyさん
2007/03/06(火) 22:01:04ID:???$fp = fopen(FILEPATH, "rt");
while (!feof($fp)) {
$line = fgets($fp);
}
fclose($fp);
echo $line;
0044nobodyさん
2007/03/06(火) 22:01:44ID:25mpWck5ですよね・・・
効率悪いとは思うのですが、クライアントの都合でどうしても
データベースが使えないんですよ。トホホ・・・
0045nobodyさん
2007/03/06(火) 22:04:57ID:???問題があれば警告を表示するスクリプトを書いています。
問題がなかったときの処理として、
header('Location:http〜')でリダイレクト処理をしているのですが、
HTTPのステータスコード的には302なので少し変だなと感じています。
通常のリンクと同じコード(200 OK)を返して飛ばしたいのですが、
どのようにheader関数をかけばいいのでしょうか?
header('HTTP/1.x 200 OK');だけでは当然飛ばなくて・・・
0047nobodyさん
2007/03/06(火) 22:15:06ID:???ファイルの最後からfseek→fgetsを繰り返して最後の行を探せばいいじゃん。
>>45
問題があった時にリダイレクトすればいいじゃん。
004845
2007/03/06(火) 22:27:33ID:???一回目のページの読み込みでexitが動作しないです
005045
2007/03/06(火) 22:35:47ID:???>>46
それだと警告表示するときと処理が一緒なので楽なのですが、
安全なURLなら確認なしで飛べるほうが、ユーザー視点では楽かなと思いまして。
>>47
URLがあったらcheck.phpにGETで渡す。
といった感じで別ロジックにしているので、
問題があった時だけ処理しても、自動では飛ばないようになってるんです。
>>48
よお俺。
005145
2007/03/06(火) 22:38:00ID:???調べたところ302は一時的にページを移動しているみたいなニュアンスのようなので、
自サイトでもないのにおかしいなと思って・・・
0052nobodyさん
2007/03/06(火) 22:42:39ID:???0053nobodyさん
2007/03/06(火) 23:31:15ID:8pAmN2QkWebプログラマーは無理? できても結構辛そうだよな
0055nobodyさん
2007/03/06(火) 23:47:37ID:8pAmN2Qkごめ、どこかわかんね
0056nobodyさん
2007/03/06(火) 23:57:17ID:???0057nobodyさん
2007/03/06(火) 23:59:33ID:8pAmN2Qkサンクス
愛してる
0058nobodyさん
2007/03/07(水) 00:06:03ID:LKc55zBoer on 'localhost' (10061) in
エラー部分
if (!($cn = mysql_connect("localhost", "yu", "pas"))) {
die;
}
エラー文を検索するとノートン関連が多いのですが、私は入れていません
active virus shieldは入れているのですが←これのせい?
最近した事でSQLの文字コード設定してからこのようなエラーが出ています
よろしくお願い致します。
0059nobodyさん
2007/03/07(水) 00:24:18ID:kGWJCXVaDefault Charset=なし
PHP:
Default Charset=UTF-8
MySQL:
Default Charset=utf8
この設定で、phpで表示した場合は文字化けしてませんが
phpMyAdminでみると「ã?¢ã??ã?¡」こんな感じで文字化けしています。
どうやったら文字化けは直りますか?
0061nobodyさん
2007/03/07(水) 00:39:47ID:???MySQLのバージョンは?
my.cnf に
skip-character-set-client-handshake
を設定するのを試してみた?
006259
2007/03/07(水) 00:55:43ID:kGWJCXVaphpのスクリプトはUTF-8(問題ないと思います)です
MySQLのバージョンは5.0.27です
どこかのサイトで
mysqldにskip-character-set-client-handshakeという
魔法の1文を加えると良いみたいなことが書いてあったので試してみましたがだめでした
0063nobodyさん
2007/03/07(水) 01:15:16ID:5AolOQptどんなOSを使うのがベストでしょうか?
0064nobodyさん
2007/03/07(水) 01:16:58ID:???show variables like 'char%';
の結果は?
alter table character set utf8;
でテーブルの円コーディング設定を変えるのは?
0065nobodyさん
2007/03/07(水) 01:19:09ID:c1HiYG/3どの程度金がかけられるかによる
初期投資を低くしたいのなら、White Box、Centos、などのLinux系
Free BSDなのどのBSD系
好きなのを選べばよい
0066nobodyさん
2007/03/07(水) 01:23:40ID:5AolOQptレス有り難うございます。
では、初期投資がかかるのにはどんなOSがあり、いくらぐらいかかりますか?
0067nobodyさん
2007/03/07(水) 01:25:24ID:5AolOQpt0068nobodyさん
2007/03/07(水) 01:26:24ID:5AolOQpt0069nobodyさん
2007/03/07(水) 01:27:29ID:5AolOQpt0070nobodyさん
2007/03/07(水) 01:32:16ID:???0071nobodyさん
2007/03/07(水) 01:33:06ID:5AolOQpt・集中アクセスでのハングを避ける技術
・外国鯖を使っての多重ログインの回避の技術
等が優れてると思うのですが、その辺の技術は
2chで言うとドコの掲示板に行けば教えてもらえるでしょうか?
0072nobodyさん
2007/03/07(水) 01:34:09ID:5AolOQptそれはすみません。では、この手の質問はどのスレが適切でしょうか?
0073nobodyさん
2007/03/07(水) 01:37:50ID:???その前に自鯖で動画のダウンロードサイトなんて無謀。
それに配信コンテンツがどうせ違法だろ?
AV会社でも起こしてビデオ制作するならともかく。
犯罪を助長するようなことはどこの板いっても教えてくれないだろうけどね。
0074nobodyさん
2007/03/07(水) 01:38:18ID:???0075nobodyさん
2007/03/07(水) 01:44:56ID:???0076nobodyさん
2007/03/07(水) 01:45:58ID:5AolOQpt>それに配信コンテンツがどうせ違法だろ?
もちろん自作のAVです。 ま、夢ですがw
で、巣に帰りますから、
とりあえずこの手の事をやるのにふさわしいOSを教えて下さい。
それが教えてもらえるまでは帰れません。
0077nobodyさん
2007/03/07(水) 01:48:28ID:5AolOQpt>まずPHPで作ってみてから考えてみりゃいいんじゃね
PHPで俺が上に書いたことすべて実現出来ますか?
0079nobodyさん
2007/03/07(水) 01:55:02ID:5AolOQptブログ、掲示板を作りそこそこ客を集めるサイトを作る
で、しこしこアダルトビデオを作り、そこの人にダウンロードして買ってもらう
といった計画です。
0080nobodyさん
2007/03/07(水) 01:58:19ID:5AolOQpt豊富にあるOSを教えて欲しいんです。
0081nobodyさん
2007/03/07(水) 01:59:29ID:???0082nobodyさん
2007/03/07(水) 02:07:59ID:???0083nobodyさん
2007/03/07(水) 02:17:29ID:???0084nobodyさん
2007/03/07(水) 02:19:56ID:???>PHPで俺が上に書いたことすべて実現出来ますか?
とか、
>転用可能なサンプルプログラムが豊富にあるOS
とか言ってる時点で、君の夢が叶うのは一体何年後になるんだろうね。
0085nobodyさん
2007/03/07(水) 02:20:33ID:???0086nobodyさん
2007/03/07(水) 02:26:47ID:???最近おおいからなこういった単発スレ
0087nobodyさん
2007/03/07(水) 02:29:23ID:???008887
2007/03/07(水) 02:33:08ID:???googleの広告つけてるけど収入は0ですw
0089nobodyさん
2007/03/07(水) 02:40:36ID:???あるあr
昔全体の1日PVが200000ぐらいの似たようなサービスやってたけど、
アフィリ系の収入はさっぱり見込めなかったんで、
スポンサー募集したら結構いいおこづかいになったよ。
>>87も広告主でも募集して、見つかったら変えてみるといいよ。
スレちがいすまん。
0090nobodyさん
2007/03/07(水) 02:56:33ID:5AolOQpt>画像うpできるblog&2ch型掲示板はすでに俺が作ってますw
そういうのをソースから勉強したいんですよね。
稚拙でいいからソースが公開されてるのを見てみたいんです。
ちなみにあなたはどんなOS、どんな言語で作られたんですか?
0091nobodyさん
2007/03/07(水) 03:00:12ID:???> 豊富にあるOSを教えて欲しいんです。
OSに対してなんか勘違いしてると思ふ
> ちなみにあなたはどんなOS、どんな言語で作られたんですか?
まず何らかのOS,何らかの言語で作れるようになってから考えてみては?
0092nobodyさん
2007/03/07(水) 03:04:22ID:5AolOQpt昔、ms-dosで、クイックcを使ってステップモーターをコントロールするプログラムなら書いたことがあります。
それ1コだけだけどw
0093nobodyさん
2007/03/07(水) 03:07:58ID:???0094nobodyさん
2007/03/07(水) 03:08:51ID:???この場合(自鯖運営)OSはサーバ用途のものであって、
デスクトップとして使うわけでもなければ、
プログラムを勉強するものでもない。
プログラムを勉強したいというならば、
その辺の掲示板のソースでも拾ってきて勉強しなさい。
>稚拙でいいからソースが公開されてるのを見てみたいんです。
ごろごろ転がってるじゃん。
2ch型掲示板のソースだってぐぐればたくさん出てくる。
あととりあえずスレタイを100万回読んで来い。
0095nobodyさん
2007/03/07(水) 03:10:08ID:???ちなみに今書いているような事はPHP,java,ruby,perl....等々のwebプログラムといわれる部類なら出来ます。
0096nobodyさん
2007/03/07(水) 03:10:27ID:5AolOQptこの手の作業に強いOSを知っておきたいわけです。
009787
2007/03/07(水) 03:12:15ID:???>>91がいいこと言った
俺はFreeBSDとPHPだけどWinでもMacでもLinuxでも同じ
プログラムも同様に何でも同じ
スレ違いだから他所でやってくれw
以上、ニートの夢物語でした。
0098nobodyさん
2007/03/07(水) 03:13:42ID:???OSなんてどれも一緒。使い方次第でどうにでもなる。
ただ、当然古いものよりは新しいもののほうがいい。
なんでOSにこだわってんだ?
そんなとこにこだわってても先に進まないぞ。
まずはプログラム作るのが先なのでは?
デバッグ環境なら今使ってるOSでいいよ。たぶんWindowsだろうけど。
0099nobodyさん
2007/03/07(水) 03:15:05ID:5AolOQpt>この場合(自鯖運営)OSはサーバ用途のものであって、
>デスクトップとして使うわけでもなければ、
>プログラムを勉強するものでもない。
はて? 自鯖運営に使うOSで開発言語のないOSってあるんですか?
0100nobodyさん
2007/03/07(水) 03:16:24ID:???0101nobodyさん
2007/03/07(水) 03:18:10ID:???そりゃDOSが最後のOS経験だったら仕方ないとは思うが。
本気でやりたいなら、焦らずゆっくりと最近のOSとか言語とか触ってみたり解説Webページとか見てみるのがいいと思う。
0102nobodyさん
2007/03/07(水) 03:18:31ID:5AolOQpt>なんでOSにこだわってんだ?
>そんなとこにこだわってても先に進まないぞ。
鯖用パソコンに入れるOSが決まらないことには先に進まないでしょ?
だから、先輩の皆さんに伺ってるわけです。
0103nobodyさん
2007/03/07(水) 03:20:50ID:???ほい
http://www.php.net/manual/ja/install.general.php
あとその図々しい態度とお礼も言わない姿勢はやめてください。不快です。
0104nobodyさん
2007/03/07(水) 03:21:10ID:???>はて? 自鯖運営に使うOSで開発言語のないOSってあるんですか?
君ちょっとズレてるよ。
プログラムと鯖運営を一緒にして考えてるでしょ?
鯖を稼動させながら、鯖機でプログラムなんて普通しないから。
0105nobodyさん
2007/03/07(水) 03:22:50ID:???>だから、先輩の皆さんに伺ってるわけです。
いやだからデバッグは別に今使ってるOSでいいじゃん。
いちいち鯖にアップしながらデバッグなんて効率の悪いことしないから。
0106nobodyさん
2007/03/07(水) 03:30:34ID:5AolOQpt確かに、
>スクリプト言語とか、その辺の関係が絶望的に分かってないと思う。
という傾向はあります。ただ、想像では各OSに共通のプラットホームが提供されてて、
どのOSでも同じ動きが出来る、ってことでしょ?
あと、教えて欲しいのはリアル2ちゃんの掲示板は
どんなOSの上で動いてて、どんな言語で書かれてるんですか?
0107nobodyさん
2007/03/07(水) 03:34:22ID:???0108nobodyさん
2007/03/07(水) 03:39:15ID:???0109nobodyさん
2007/03/07(水) 03:40:38ID:???>各OSに共通のプラットホームが提供されてて、
>どのOSでも同じ動きが出来る、ってことでしょ?
それが判ってるなら別にOSなんかなんでもいいってわかるじゃん
昔の8bit機みたいに同じ名前の言語なのに方言で動かないなんてことないから。
phpなりperlなりで書いたら鯖のOSがWinだろうとlinuxだろうと動く。
0110nobodyさん
2007/03/07(水) 03:43:00ID:???OSなんて慣れてるもの使えばいいんだよ。
>あと、教えて欲しいのはリアル2ちゃんの掲示板は
>どんなOSの上で動いてて、どんな言語で書かれてるんですか?
教えてあげるからもう帰ってよ。
くだらない質問とはいえ、ここは「PHP」のスレなんだから。
で、本題だけどFreeBSD+Perl
0111nobodyさん
2007/03/07(水) 03:50:13ID:???011259
2007/03/07(水) 03:51:20ID:kGWJCXVa結果です。
mysql> show variables like 'char%';
+--------------------------+----------------------------------------------------
-----+
| Variable_name | Value
|
+--------------------------+----------------------------------------------------
-----+
| character_set_client | utf8
|
| character_set_connection | utf8
|
| character_set_database | utf8
|
| character_set_filesystem | binary
|
| character_set_results | utf8
|
| character_set_server | utf8
|
| character_set_system | utf8
|
| character_sets_dir | C:\Program Files\MySQL\MySQL Server 5.0\share\chars
ets\ |
+--------------------------+----------------------------------------------------
-----+
8 rows in set (0.00 sec)
文字化けするのはphpMyAdmin上だけです。
0114nobodyさん
2007/03/07(水) 03:53:51ID:???ほとんど読まずにレスするけど、文字化けしてるページの
ブラウザの文字コードがSJISかなんかになってないか?
0115nobodyさん
2007/03/07(水) 03:55:59ID:???OSはLinux系?もしローカルのMySQLに接続するなら
UNIXソケット指定しないとつながらないかもしれいよ?
011759
2007/03/07(水) 04:10:31ID:kGWJCXVaDBに入れてるデータの文字コードもUTF-8です。
0118nobodyさん
2007/03/07(水) 04:20:16ID:5AolOQpt>くだらない質問とはいえ、ここは「PHP」のスレなんだから。
了解しました。
では、あらためてくだらない質問をさせて頂きます。
PHPで書かれている、2ちゃん風掲示板のソースがありましたらリンクをお願いします。
0119nobodyさん
2007/03/07(水) 04:23:35ID:???0120nobodyさん
2007/03/07(水) 04:38:37ID:???だからスレ違いなんだって。
探し物を聞く場所じゃない。
自分で作ってわからない箇所があったら尋ねてきて下さい。
0121nobodyさん
2007/03/07(水) 04:41:23ID:???人に聞く前にググったらどうですか?
http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&rls=GFRC,GFRC:2007-02,GFRC:ja&q=PHP+2ch%e9%a2%a8
0122nobodyさん
2007/03/07(水) 04:42:07ID:5AolOQptここにあったわ。これはすごい、トリップまであるねw
0123nobodyさん
2007/03/07(水) 04:44:39ID:???0124nobodyさん
2007/03/07(水) 04:45:19ID:5AolOQptそういうケチくさい態度だから
php使いと世間さまからバカにされるんだよw
0125nobodyさん
2007/03/07(水) 04:48:07ID:???プログラマーには不向きなので諦めたほうがいい。
それと>>122の掲示板は2chのソース(Perl)をPHPに移植したものなので、
動作が同じなのは当然。
0126nobodyさん
2007/03/07(水) 04:55:32ID:5AolOQptしかし、銀行のホームページ、金の出し入れ、もPerlやPHPで書かれてるわけ?
0127nobodyさん
2007/03/07(水) 05:00:16ID:???>つまりあれか、PerlやPHPはネット用サーバー用に特化された言語ってことなんだ。
PHPはともかくPerlは違います。
PHPもやろうと思えばWindows用のアプリケーションも作れます。
>しかし、銀行のホームページ、金の出し入れ、もPerlやPHPで書かれてるわけ?
規模によって違います。
銀行のシステムとなるとJavaなんかが多いんじゃないでしょうか。
0128nobodyさん
2007/03/07(水) 05:08:33ID:5AolOQptほー、こういうのは手堅くC言語で書くのかと思ってたら違うんですね。
しかし、今日は収穫でした。
慣れ親しんだ2chの掲示板のソースが見れるなんて感激です。
0129nobodyさん
2007/03/07(水) 05:12:10ID:???FOX ★ DSO(Dynamic Shared Object)
でも見たら?
0130nobodyさん
2007/03/07(水) 05:14:49ID:5AolOQptでも、ある時点の2ちゃんがそっくりPHPに移植されたわけだろ?
0131nobodyさん
2007/03/07(水) 05:18:33ID:???0132nobodyさん
2007/03/07(水) 05:24:31ID:5AolOQpt>もうID:5AolOQptにレスするのやめようぜ
そういう情けない態度だから、php使いと世間さまからバカにされるんだってw
つーことはXP+アパッチで鯖立OKなんだw
0133nobodyさん
2007/03/07(水) 05:28:14ID:???0134nobodyさん
2007/03/07(水) 06:21:28ID:???スレ違いなことを延々と質問し続ける常軌を逸した馬鹿じゃ、
どこの板いっても同じ反応返ってくるわwww
0135nobodyさん
2007/03/07(水) 06:30:22ID:???http://puchiko.lowtech.ne.jp/index.php?itemid=314
http://puchiko.lowtech.ne.jp/index.php?itemid=349&catid=27
この辺と同じじゃねーのかと思うわけだけど。
ウチのはskip-character-set-client-handshakeで問題なかったけどなぁ。
再起動したか?
元から入ってるレコードが文字化けしたままなんですとか言わないでよ?
0136nobodyさん
2007/03/07(水) 08:29:52ID:P8Ctjz97一時作業用フォルダに移動して、
そこで一旦アクセス権を666にして、編集可能な状態にして、
特定箇所を編集したら、アクセス権を644にして目的のフォルダに移動する。
なんてことをしたいなと考えているのですが、
処理方法として適切だと思いますか?
変なところがあったらご指摘願いたいです。
0137nobodyさん
2007/03/07(水) 08:57:26ID:???「編集」ってどうやるつもり?
フォームのテキストエリアにソース全部入れてブラウザ上で編集、
とかだったら物理的なファイル自体を移動する必要はないよね。
テンプレートか編集対象ファイルを読み込んで
目的の場所に書き出すだけ。
0138136
2007/03/07(水) 09:12:23ID:P8Ctjz97ありがとうございます。
自鯖を最近運営し始めたので、掲示板のレンタルを考えています。
それで登録があって承認したら、ユーザディレクトリを作って、
掲示板を使うのに必要なファイルをコピーするのですが、
ユーザごとにタグが若干異なってくる、
アクセス解析なんかも希望がある人には入れようと思っていまして、
index.php(掲示板)の特定箇所に解析用タグを入れたいと思っています。
その際、全て手動で編集するのも大変なので、
ある程度は自動化したいと思ったのでこんなことを考えていました。
0139虚弱PHP
2007/03/07(水) 09:17:27ID:???拙いコードでよければ。
<?php
// make hash
mt_srand();
$pass = 'password';
$salt = '';
$seed = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
for ($i = 0 ; $i < 10 ; $i++) {
$salt .= substr($seed, mt_rand(0, strlen($seed) - 1), 1);
}
$hash = hash('sha512', $pass.$salt);
// db store. $hash, $salt
// -----
// Auth
// $pass = $_POST['pass'];
// db select. $hash, $salt
if ($hash == hash('sha512', $pass.$salt)) {
print 'salt:'.$salt."\n";
print 'hash:'.$hash."\n";
} else {
print 'NG';
}
?>
0140nobodyさん
2007/03/07(水) 10:34:09ID:gB6hz86O下記のソースではオブジェクト化されてないんですが
どのようにしたらよいでしょうか?
--------------
//テンポラリファイルパス
$upfile=$_FILES['UserFile']['tmp_name'];
//ファイルサイズ
$UserFile_size=$_FILES['UserFile']['size'];
$fp = fopen($upfile, "rb") or die("error");
$contents = fread($fp, filesize($upfile));
fclose($fp);
$f_encoded = base64_encode($contents);
0141nobodyさん
2007/03/07(水) 10:35:26ID:rXNlGZ28$stdin = fopen( 'php://input', 'r' );
$data = fread( $stdin, $_SERVER{'CONTENT_LENGTH'} );
みたいな感じで、POSTの生データにアクセスしようとしたのですが、freadの後処理が戻ってこないです。
IISでPOSTの生データにアクセスするのは無理なんでしょうか・・・。
ちなみに、Linux + Apache + PHP4.3.9では正常にアクセスできます。
0143nobodyさん
2007/03/07(水) 10:42:48ID:???それで、文字化けするとなると
かなり特殊な気がするが
skip-character-set-client-handshake
でいけると思うけどな
0144140
2007/03/07(水) 10:43:42ID:gB6hz86Ocentos + PHP 4.3.11
0145nobodyさん
2007/03/07(水) 11:21:49ID:???ディレクトリごとコピーしたい場合は何か簡単な方法ありますか?
shell_execあたりでUNIXコマンドを使ってやったほうがベストでしょうか?
0146145
2007/03/07(水) 11:36:25ID:???0147nobodyさん
2007/03/07(水) 13:15:22ID:???"false" 以外の値が帰ってきたら、trueという条件式はどう書けばいいのでしょうか?
0をfalseと認識されてしまい、うまくいきません。
0148軟式PHP
2007/03/07(水) 13:18:50ID:???0150nobodyさん
2007/03/07(水) 13:21:18ID:82a5ZO5Eプログラミング経験年数は3年で、6種類ほどの言語で実務経験があります。
お礼はします。宜しくお願いします。
0152150
2007/03/07(水) 13:30:43ID:82a5ZO5E時給いくらならいいですか?
やりたいことは、ECサイト作成のノウハウ、OOPでの開発、
Xoopsなどです。
0153nobodyさん
2007/03/07(水) 13:36:00ID:???教え乞わなくても自分で習得できるでしょうに
3年なにやってたんだか
0155軟式PHP
2007/03/07(水) 13:44:08ID:???なでしこ 、ひまわり、HSP、ChocoaScript、COBOL、ActionScript
あたりか。
0156nobodyさん
2007/03/07(水) 13:46:41ID:???何も返値を返さず処理が停止してしまうのですがどんな原因が考えられますか?
FETCH_BOTHだと正常な返値が返ります。
0158nobodyさん
2007/03/07(水) 14:31:15ID:???0159虚弱PHP
2007/03/07(水) 14:44:20ID:???i8080アセンブリ(ハンドアセンブル)とかZ80アセンブリとかやったことあるけど、
数に含めてもいいのかな。
0160nobodyさん
2007/03/07(水) 15:14:34ID:???BASICとして1つアセンブラとして1つ含めてよろしい
CができればPHPは簡単だろ教わるまでもない
C++ができればOOPもわかるだろ
0161nobodyさん
2007/03/07(水) 16:02:22ID:???ドッカン
m ドッカン
=====) )) ☆
∧_∧ | | / / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
( )| |_____ ∧_∧ < おらっ!出てこい>>150
「 ⌒ ̄ | | || (´Д` ) \___________
| /  ̄ | |/ 「 \
| | | | || || /\\
| | | | | へ//| | | |
| | | ロ|ロ |/,へ \| | | |
| ∧ | | | |/ \ / ( )
| | | |〈 | | | |
/ / / / | / | 〈| | |
/ / / / | | || | |
/ / / / =-----=-------- | |
0162nobodyさん
2007/03/07(水) 16:20:39ID:???簡単な方法はない
再帰的にファイルコピーを行うか、
cp コマンドなどを使うしかないと思う
どちらがいいかは、時と場合による
0163nobodyさん
2007/03/07(水) 16:28:44ID:???ユーザ権限さえクリアできれば。
`cp -r hoge hogehoge`
とかでいけるんジャマイカ。
`(逆クオーテーション?)で括るってところがポイント。
system , execとかでも行けると思うが。
http://www.php.net/manual/ja/language.operators.execution.php
0165nobodyさん
2007/03/07(水) 17:20:36ID:???しかし、phpの環境設定が終わりApacheを再起動させて動作確認しようとした
ところエラーになってしいます。
原因は、TestConfiguraiton によると Syntaxエラーとの事です。
httpd.conf の上の
「LoadModule php5_module "C:/php/php5apache2.dll"」の部分がエラーと
出ます。
これがエラーとは、どこらへんの環境設定を誤っていると予測できますか?
0166nobodyさん
2007/03/07(水) 17:27:47ID:VsF5XWdwこれってつまり未実装って事で今のPHPではDomDocumentに属性つけて
その属性をIDとした検索が出来ないって事?
0167nobodyさん
2007/03/07(水) 17:28:13ID:???Syntaxエラーじゃないんだけど
Apache 1.3 : php5apache.dll
Apache 2.0 : php5apache2.dll
Apache 2.2 : php5apache2_2.dll
0169166
2007/03/07(水) 17:35:04ID:???0170166
2007/03/07(水) 17:36:05ID:???0171nobodyさん
2007/03/07(水) 17:57:33ID:t2T9Sl7y変数にURLが入っているとして、これをechoするとリンクが貼られた「2ch」が
表示されますが、このリンクをクリックさせないようにする方法ってありませんでしょうか?
正規表現を使うのも考えたのですが、どのようにすればいいか分からず、質問しました。
0172171
2007/03/07(水) 17:59:15ID:???もう一度。$htmlに<a href="http://2ch.net/">2ch</a>が入っているとします。
0174171
2007/03/07(水) 18:13:24ID:???それだとソースが表示されます。
アフィリエイト広告など画像とリンクですが、そのリンクを
クリック出来ないようにしたいです。CSSでは出来ませんでした。
0175nobodyさん
2007/03/07(水) 18:29:12ID:???strip_tagsは?
画像を残したいなら、
strip_tags( $html, '<img>' )
とか。
0176nobodyさん
2007/03/07(水) 18:38:09ID:???それPHPと関係無いんじゃ・・
リンクを現在のページするとか、javascriptなら出来るのかなぁ。
質問が分かりにくかったが、スレ違い!
0178nobodyさん
2007/03/07(水) 18:53:21ID:???0179nobodyさん
2007/03/07(水) 18:53:30ID:79lMnQw0その吐き出されたtxtを見ると、改行がされていません。
改行はどうすればいいのでしょうか?
EUC-JPでは、\nでうまく言っていたのですが。。
調べると\n\rというのもあるので試したのですが駄目でした。
0180nobodyさん
2007/03/07(水) 18:57:33ID:???0184nobodyさん
2007/03/07(水) 19:26:48ID:???0185nobodyさん
2007/03/07(水) 19:36:07ID:???プロの方ですか?
職務経歴を教えてください
0187nobodyさん
2007/03/07(水) 19:39:47ID:???| ノ ヽ /
/ > < |/ そんな餌パクッ
| //// ( _●_)/ミ
彡、 l⌒l ノ
/ __ \ \ヽ
. (___) \__)
. O| /
| /\ \
| / ) )
∪ ( \
\,,_)
0188nobodyさん
2007/03/07(水) 19:42:43ID:d0r2wAeE元の画像が小さい場合(数KB〜数十KB)なら問題なく動作します。
ですが、元の画像が大きい場合(100KB超など)だと、以下のようなエラーとなります。
Allowed memory size of 8388608 bytes exhausted (tried to allocate 0 bytes)
これはどうしてなのでしょうか??
php.iniのmemory_limit=8Mなので、100KB程度の画像処理なら十分余裕があるはずですし…。
GDのバグかと思って検索してみましたが、それらしき情報が見つかりません。
GD Version bundled (2.0.28 compatible) です。
何かお分かりの方がいらっしゃいましたら、ぜひ教えてください。
0189nobodyさん
2007/03/07(水) 19:45:27ID:???test.php
<?php
$r = preg_split('/(?<!t)\s/', 'This is test page');
print_r($r);
?>
上記スクリプトを cli で実行すると、
4.4.2 だと、Array( [0] => This [1] => is [2] => test page )
5.2.1 だと、Array( [0] => This [1] => is [2] => test [3] => page )
になります。
それと、5.2.1 でパターン部分を '/((?<!t)\s)/' にすると、
PHP Warning: preg_split(): Compilation failed: lookbehind assertion is not fixed length at offset 6
というメッセージが出ます。
OSは FreeBSD6.2(PHP5.2.1) と FreeBSD5.4(PHP4.4.2) です。
0191nobodyさん
2007/03/07(水) 20:01:13ID:???0192189
2007/03/07(水) 20:01:58ID:T4xZjQn/0193nobodyさん
2007/03/07(水) 20:02:58ID:???IDのことは賛成だが、質問の直後に質問・・・ってのは
たまたま偶然タイミングがかぶっただけじゃねぇ?
でも、ま、とりあえずスルーして>>188の質問を先に処理するかw
0196145
2007/03/07(水) 20:04:28ID:???レスありがとうございます。
バッククオートなんて使ったことなかったのでちょっと新鮮です。
権限はCGIにすれば大丈夫なので早速使ってみたいと思います。
0198nobodyさん
2007/03/07(水) 20:10:43ID:T4xZjQn/0199nobodyさん
2007/03/07(水) 20:11:30ID:T4xZjQn/0200nobodyさん
2007/03/07(水) 20:15:12ID:???0201nobodyさん
2007/03/07(水) 20:17:37ID:???0203189
2007/03/07(水) 20:45:08ID:nw8KmYa6リロードせずsageのチェック外し忘れた私が悪かったです。
偽物まで出てきてしまったし、188の質問も解決していないし、
もう答えてもらえそうにありませんね。
ごめんなさい。お騒がせしました。
0204188
2007/03/07(水) 20:46:51ID:d0r2wAeEphpバージョンは4.3.1です。
もし出来ましたら、同じように大きいサイズの画像でGD関数の
動作実験をしてはいただけませんでしょうか・・・?
ちなみに、107KBのJPEGを元画像として用いてサムネイル化しようとして、
ImageCreateFromJPEG、ImageCopyResampled、ImageJPEGのうち
どれかを実行した時点でコケた(=エラーメッセージが出た)ということまでは
突き止めています。
0205nobodyさん
2007/03/07(水) 21:23:30ID:???元が100KBのjpegでもそれをメモリ上に展開してゴニョゴニョするので、
簡単にM単位になっちゃうんですよ。
0206nobodyさん
2007/03/07(水) 21:35:10ID:???mysqliを使ってMySQLからストアドの結果セットを取得したいのですが、
以下の様なエラーになります。
内容A:
<?php
$mysqli_connect = mysqli_connect(host, user, pass, schema);
$sql = "CALL spSelGetMembId()";
$query_resultA = mysqli_query($mysqli_connect, $sql);
$rowA = mysqli_fetch_array($query_resultA, MYSQLI_BOTH);
$member_id = $rowA[0];
printf ("A: " .$member_id. "\n");
$sql = "CALL spSelGetMembId()";
$query_resultB = mysqli_query($mysqli_connect, $sql);
$rowB = mysqli_fetch_array($query_resultB, MYSQLI_BOTH);
$member_id = $rowB[0];
printf ("B: " .$member_id. "\n");
?>
結果A:
A: MEMBER0001
Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result,
boolean given in /var/www/html/test.php on line 12
B:
(↓につづく)
0207nobodyさん
2007/03/07(水) 21:35:31ID:???内容B:
<?php
$mysqli_connect = mysqli_connect(host, user, pass, schema);
$sql = "SELECT `memberid` FROM `test`";
$query_resultA = mysqli_query($mysqli_connect, $sql);
$rowA = mysqli_fetch_array($query_resultA, MYSQLI_BOTH);
$member_id = $rowA[0];
printf ("A: " .$member_id. "\n");
$sql = "SELECT `memberid` FROM `test`";
$query_resultB = mysqli_query($mysqli_connect, $sql);
$rowB = mysqli_fetch_array($query_resultB, MYSQLI_BOTH);
$member_id = $rowB[0];
printf ("B: " .$member_id. "\n");
?>
結果B:
A: MEMBER0001
B: MEMBER0001
(↓につづく)
0208nobodyさん
2007/03/07(水) 21:36:05ID:???これをベースに複雑なストアドを呼び出すように
したいと考えています。
2回目のストアド呼び出しが失敗する原因について
何か知ってましたら、教えて下さい。
連投スマソ
テーブル:`test`
--------------
| memberid |
--------------
| MEMBER0001 |
--------------
ストアド:
CREATE PROCEDURE `spSelGetMembId` ()
BEGIN
SELECT `memberid` FROM `test`;
END $$
環境:
PHP 5.1.6 + MySQL 5.0.27 + Apache 2.0.59
OS:
CentOS 4.4
0209nobodyさん
2007/03/07(水) 21:37:55ID:DBiwlIWz0210nobodyさん
2007/03/07(水) 21:40:23ID:???function testHoge($id,$name){
〜ソース〜
}
}
上記のように、class内のfunctionに複数の変数って指定できますよね?
しかしなぜか、Missing argument 2 for というエラーが出ます。
function testHoge($id)にすると問題ないのですが・・。
0212nobodyさん
2007/03/07(水) 21:43:09ID:???0213nobodyさん
2007/03/07(水) 21:44:35ID:???関数にコールするときに、二つの引数を渡している?
省略したいのなら:
function testHoge($id, $name = NULL) ... とかすればいいのでは?
0214nobodyさん
2007/03/07(水) 21:55:37ID:???mysqli_fetch_arrayしたらカーソルは次のレコードに移っていて
1レコードしかないから2回目のqueryではfalseが返って来て
2回目のmysqli_fetch_arrayでfalseを渡してるからboolean渡すなやボケってことじゃない?
0215nobodyさん
2007/03/07(水) 21:56:09ID:???メインではないけど一応職務でPHPそこそこ使ってる。
symfony初め使えそうなライブラリを常に探して使ってる。
普通のつてで講義なら3000円でいいけど2ch繋がりだとしたら1万は要るなw
0216nobodyさん
2007/03/07(水) 21:57:37ID:???> 元が100KBのjpegでもそれをメモリ上に展開してゴニョゴニョするので、簡単にM単位に
えええ〜〜〜、それはいくらなんでも適当な嘘を吐き過ぎじゃない?
どんだけゴニョゴニョしようとも、単なるリサイズ処理ごときで
元画像の80倍以上ものメモリを要するなんてありえないっしょ。
まあGD関数の実装は知らないけどさ。。。
0218210
2007/03/07(水) 22:00:19ID:???表示する側は以下のように書いています。
$obj->testHoge($id,$name);
実際には$nameの箇所は数字で、1とか2とかにしています。
なので、二つ目の引数はあるとおもうのですが・・。
0219188
2007/03/07(水) 22:09:21ID:d0r2wAeEサムネイル化関数のソースは以下の通りです。
よくネットに転がってるものと大差の無い、標準的なものだと思いますが…。
function thumb_create($src, $W, $H){
$size = GetImageSize($src);
switch ($size[2]) {
case 1 : $im_in = @ImageCreateFromGif($src); break;
case 2 : $im_in = @ImageCreateFromJPEG($src); break;
case 3 : $im_in = @ImageCreateFromPNG($src); break;
}
if (!$im_in) return FALSE;
if ($size[0] > $W || $size[1] > $H) {
$key_w = $W / $size[0];
$key_h = $H / $size[1];
($key_w < $key_h) ? $keys = $key_w : $keys = $key_h;
$out_w = $size[0] * $keys;
$out_h = $size[1] * $keys;
} else {
$out_w = $size[0];
$out_h = $size[1];
}
(※改行多すぎのため、2分割して書き込みます)
0221188
2007/03/07(水) 22:10:25ID:d0r2wAeE$im_out = @ImageCreateTrueColor($out_w, $out_h);
$resize = @ImageCopyResampled($im_out, $im_in, 0, 0, 0, 0, $out_w, $out_h, $size[0], $size[1]);
$filename = "test";
switch ($size[2]) {
case 1 : $im_in = @ImageGIF($im_out, $filename.".gif"); break;
case 2 : $im_in = @ImageJPEG($im_out, $filename.".jpg"); break;
case 3 : $im_in = @ImagePNG($im_out, $filename.".png"); break;
}
ImageDestroy($im_in);
ImageDestroy($im_out);
}
0222nobodyさん
2007/03/07(水) 22:21:55ID:???またnewしてない落ちじゃないよな?
$obj_hogehoge = new hogeHoge();
$obj_hogehoge->testHoge("ID","NAME");
0223209
2007/03/07(水) 22:23:48ID:DBiwlIWzレスありがとうございます。
testテーブルの件数を増やす&最初のカーソルを開放する
事を試してみたのですが、結果は同じでした。
MySQLのクエリブラウザ上で実行する分には大丈夫、
かつストアドでないSQLで問題が無いので
もしかするとストアド固有の問題なのかもしれません。
0224nobodyさん
2007/03/07(水) 22:32:13ID:???確かにおかしなところなさそうだな、、
一気にいくつも生成してないんだったら
本当にメモリ使い果たしてるのかもしれん
怪しげな前後の部分でmemory_get_usageで
一気に増えてる部分特定して元画像のサイズ少しずつ
変えてもメモリ使用量比例してたらお手上げ
0226nobodyさん
2007/03/07(水) 23:48:18ID:LKc55zBomysql文字化け対策にttp://phpspot.net/php/pgMySQL4.1%8
CnUTF-8%82%CC%8F%EA%8D%87.html
を参考にしてやりましたが、今度はmysql_connect() [fun
ction.mysql-connect]: Can't connect to MySQL serv
er on 'localhost' (10061) inのエラーで接続できず・・・
初めてPHPをやっているので手探り状態の日々がつづいています。
ソースはttp://homepage2.nifty.com/sak/w_sak3/doc/sysbrd
/php_s02.htm参考に
PHP・MYSQLはXAMPPの最新版で
MySQL 5.0.33
PHP 5.2.1 & PHP 4.4.5
phpMyAdmin 2.9.2です
ようは上記に記載した以外に文字化け対策の方法が
あったら御教授よろしくお願い致します
0227nobodyさん
2007/03/07(水) 23:56:21ID:???文字化けを解決したいのかMySQLに接続したいのかハッキリしろ!
・・・まぁ両方だろうけどw
ところで何でPHPを二つ入れてるんだ?
まずMySQLのサービスがちゃんと動いているか確認してみれあsふぁsdふぁ
0228188
2007/03/08(木) 00:28:43ID:e2mjdXJzその後いろいろ実験してみたところ、JPEGだと100KB超でも問題なくサムネイル化できます。
が、PNGで大きい画像(実験では110KB)だとサムネイル画像作成に失敗します。
ImageDestroy($im_in);の行で、以下のエラーメッセージが出ます。
imagedestroy(): supplied argument is not a valid Image resource〜
@ImagePNG〜の行ではエラーメッセージが出ていませんが、サムネイル画像は作成されておりません。
それと、同じPNGでも小さい画像(5KBなど)で試したときは問題ありませんでした。
もしかしてGD関数で大きいサイズのPNGを扱うときのバグ・・・??
0229188
2007/03/08(木) 00:43:27ID:e2mjdXJzさきほど「JPEGなら大きい画像でも成功」と書きましたが、
なぜか失敗するケースもあることが判明ました・・・orz
失敗する条件はまだ特定できていませんが、
とりあえず「あるディレクトリにスクリプトと画像をあらかじめアップしておき、
SSHからスクリプト実行」の場合は必ず成功し、
「あるディレクトリにスクリプトを置いておき、ブラウザにてフォームから画像を送信して
スクリプトを走らせた場合」には必ず失敗してしまいました。
両者のスクリプトと画像はまったく同じものなのに、なぜでしょうか・・・
0230nobodyさん
2007/03/08(木) 00:47:07ID:???画像程度じゃあんまり考えられないけど…
FireWorksとかのPNGだとかなりでかくなるよね
php.iniのUPLOAD_MAX_SIZEだっけ、そんな感じのところで少し大きめの容量
受け取れるようにしたら。
0231nobodyさん
2007/03/08(木) 00:49:07ID:???さすがに送信サイズの訳無いな。
エラーメッセージとか、なんか
array受け取れない所にarrayが渡されてる時にでるやつだよね。
0232188
2007/03/08(木) 00:53:43ID:e2mjdXJzあくまでも、その画像を前掲のサムネイル生成関数に通したときに
関数内で問題が発生(サムネイル化に失敗)しているようです。
フォームからのPOST時にはエラーメッセージすら出ず、非常に困っております・・・
0233nobodyさん
2007/03/08(木) 00:54:47ID:???てゆかさ、上に書いてるコードの下のほうの
switch ($size[2]) {
case 1 : $im_in = @ImageGIF($im_out, $filename.".gif"); break;
case 2 : $im_in = @ImageJPEG($im_out, $filename.".jpg"); break;
case 3 : $im_in = @ImagePNG($im_out, $filename.".png"); break;
}
ImageDestroy($im_in);
ImageDestroy($im_out);
はおかしいんじゃねーの?
ttp://jp2.php.net/imagejpeg
bool imagejpeg ( resource image [, string filename [, int quality]] )
って書いてるよ。
boolなイメージをぶっ壊そうとしてんじゃん?
0234188
2007/03/08(木) 00:58:39ID:e2mjdXJz小さい画像の場合では特にエラーもなくサムネイル化できておりますので、
そのコード自体には問題ないかと思いますが・・・
0235188
2007/03/08(木) 01:09:27ID:e2mjdXJz原因箇所を突き止めました。
今までずっとGD関数が問題だと思っておりましたが、
真のトラブル箇所は、サムネイル生成関数内のいちばん初めの行、
$size = GetImageSize($src);
でした。
ここで$srcに「大きいサイズ(100KB超など)のPNG画像のパスを与える」場合に、
その行でスクリプトがストップします。
みなさんもGetImageSize()で大きいサイズのPNGを計測してみてください。
きっと失敗するはずだと思います・・・
0236nobodyさん
2007/03/08(木) 01:10:36ID:???bool値をデストローーイ!するのが原因かもしれんのだし。
まぁ、ないとおもうけど(^ω^)
>そのコード自体には問題ないかと思いますが・・・
まぁ、平然とこんな事が言えるお前の頭が問題だということだな。
一生悩んどけ。
0237nobodyさん
2007/03/08(木) 01:11:13ID:???falseが返ってきてるな。
imagejpegで作成失敗でfalseが返される。
尚且つ、ImageDestroy(false);
になってるからエラーが出てる。
0238nobodyさん
2007/03/08(木) 01:12:23ID:???0239nobodyさん
2007/03/08(木) 01:13:31ID:???0240233
2007/03/08(木) 01:13:55ID:???ローカルでは画像のサイズがどうであれImageDestroy($im_in)で失敗するよ。
switch ($size[2]) {
case 1 : @ImageGIF($im_out, $filename.".gif"); break;
case 2 : @ImageJPEG($im_out, $filename.".jpg"); break;
case 3 : @ImagePNG($im_out, $filename.".png"); break;
}
ImageDestroy($im_in);
ImageDestroy($im_out);
に変えたら500k超えてるpngでもサムネイルかできる。
8192px x 6144px
0241nobodyさん
2007/03/08(木) 01:14:09ID:???0243nobodyさん
2007/03/08(木) 01:23:01ID:???execで使えば良いんじゃね。
0244nobodyさん
2007/03/08(木) 01:25:10ID:z05LMp1V素人丸出しの記述になっています。玄人の方は、どう記述しますか?
<input name="tuki" type="text" istyle="4" value="
<?php
$today = date("m");
print($today);
?>
" size="5" /> 月<br>
<input name="hi" type="text" istyle="4" value="
<?php
$today = date("d");
print($today);
?>
" size="5" /> 日
0245nobodyさん
2007/03/08(木) 01:26:48ID:z05LMp1V<input name="tuki" type="text" value="
<?php
$today = date("m");
print($today);
?>
" size="5" /> 月<br>
<input name="hi" type="text" value="
<?php
$today = date("d");
print($today);
?>
" size="5" /> 日
0246nobodyさん
2007/03/08(木) 01:32:05ID:???<?php
$m = date("m");
$d = date("d");
?>
<input name="tuki" type="text" value="<?=$m?>" size="5" /> 月<br>
<input name="hi" type="text" value="<?=$d?>" size="5" /> 日
0247nobodyさん
2007/03/08(木) 01:34:24ID:z05LMp1Vスマートな記述ですね。
勉強になりました。ありがとです。
0248nobodyさん
2007/03/08(木) 01:42:12ID:???どこがスマートな記述…
スマートな書き方するとこう
<?php
list($m, $d) = sscanf(date("md"), "%02s%02s");
?>
0249nobodyさん
2007/03/08(木) 01:42:49ID:GIE8ipFxmb_preg_grepがあるのかと思ってマニュアル覗いてみたんですけど・・期待はずれでした。
0250nobodyさん
2007/03/08(木) 01:48:14ID:???$time = time();
$month = date("m",$time);
$day = date("d",$time);
// 省略
echo "<INPUT type='text' name='month' value='",$month."' />\n";
echo "<INPUT type='text' name='day' value='",$day."' />\n";
0251188
2007/03/08(木) 02:03:10ID:e2mjdXJz>>235で書きました通り、関数内処理の1行目
$size = GetImageSize($src);
でストップしてしまうことが判明しております。(大きいPNGを引数に与えた場合のみ)
(この行の前後にechoで適当な文字を出力してみて、ここで止まることを確認しました)。
ですので、imagejpegやImageDestroyは関係ないようです。
おそらくGetImageSize()に潜むバグではないかと・・・
0252nobodyさん
2007/03/08(木) 02:04:48ID:???0253nobodyさん
2007/03/08(木) 02:11:57ID:???試しに俺もおまいのソース使ってサムネイル作ろうとしたら、失敗したぞ。
つーかうちではPNGだけじゃなくJPEGでも無理なんだけど?
一応記録↓
5KB JPEG, 5KB PNG = OK
30KB JPEG, 30KB PNG = OK
90KB JPEG = OK
111KB PNG = NG
120KB JPEG = NG
0254nobodyさん
2007/03/08(木) 02:13:37ID:???0255nobodyさん
2007/03/08(木) 02:16:03ID:???0256nobodyさん
2007/03/08(木) 02:19:00ID:???$url = "http://www.yahoo.co.jp/";
include($url);
0258nobodyさん
2007/03/08(木) 02:27:04ID:???っつかallow_url_includeをOnにすな
0259nobodyさん
2007/03/08(木) 02:32:25ID:???PNGなんて圧縮されてるからファイルサイズと必要なメモリに関連性なんて全くない。
0260188
2007/03/08(木) 02:37:50ID:e2mjdXJzmemory_limit = 8Mを16Mにしたら、解決しました・・・
すみません、ありがとうございます。
> PNGなんて圧縮されてるからファイルサイズと必要なメモリに関連性なんて全くない。
とのことですが、もう少し詳しく教えていただけないでしょうか。
JPEGなども圧縮されているものだと思うのですが、それとは「圧縮」の意味が違うのでしょうか?
また、あるサイズのPNGを処理するのに必要なメモリ量を計算する数式などありますでしょうか。
100KB程度の画像を処理するのに8MBでも足りないとは、想像を超えておりました…
みなさんスレ汚しすみませんでした。
0262nobodyさん
2007/03/08(木) 03:12:44ID:???高速に処理できる状態でメモリ上に置いておくには
(1+1+1+1)*320*240の307200バイト必要なんだよ。
640x480になったら単純に
(1+1+1+1)*640*480=(1+1+1+1)*(320*2)*(240*2)=(1+1+1+1)*320*240*4で
4倍のメモリが必要にになる。
さらに拡大縮小などもう1枚コピーを作る必要がある処理をするなら
元画像と処理後の画像が同時に存在する状態ができるから
同じサイズに拡大縮小したとしても2倍のメモリが必要になる。
0263nobodyさん
2007/03/08(木) 03:34:05ID:???0265nobodyさん
2007/03/08(木) 04:32:23ID:???0266nobodyさん
2007/03/08(木) 04:39:23ID:???画像サイズにする必要があるんじゃないか?
縦だけあるいは横だけ4/3倍とか縦横ともに√(4/3)倍するとか。
0267nobodyさん
2007/03/08(木) 04:45:21ID:???っていうか簡単に言えば、
JPEGは同じ縦横サイズなら、PNGの3/4のファイルサイズになる
ってことでは?
0268nobodyさん
2007/03/08(木) 04:55:21ID:???0269nobodyさん
2007/03/08(木) 08:58:17ID:a3iASN9B何かお勧めの本が前に紹介されたしたが
何という本でした?
0270nobodyさん
2007/03/08(木) 09:25:21ID:WIAr6em1マシンでは正常にプログラムが動作するのに、もう片方ではエラーがたくさん
出ます。
OSは同じ(Windows XP)ですし、インストールディレクトリも同じにしました。
こういうことってあるものなんでしょうか?
0271nobodyさん
2007/03/08(木) 09:46:23ID:???iniをWINDOWSにつっこんでないとか
dllをWINDOWS\system32につっこんでないとかそういうのだろ。
0272270
2007/03/08(木) 09:57:01ID:WIAr6em1そういうのではありません。
php,Apacheはバージョンとインストールディレクトリを正常に動いている
マシンと同じにすれば、設定ファイルをそのままかぶせても問題ありません
よね?
0274nobodyさん
2007/03/08(木) 10:05:45ID:???0275nobodyさん
2007/03/08(木) 11:27:27ID:???エラーとだけいわれてもね
ApacheのエラーなのかPHPのエラーなのか
肝心のエラーの内容も書いてないし
0276nobodyさん
2007/03/08(木) 13:06:56ID:Y9DHbA2v<?if(条件式){?>
出力するhtml
<?}else{?>
出力するhtml
<?}?>
という風に書けますよね.
for文ではこのような表記は存在しないのですか?
0277nobodyさん
2007/03/08(木) 13:11:58ID:???0278nobodyさん
2007/03/08(木) 13:17:15ID:Y9DHbA2v出力html
<?}?>
ってことですか?
0281nobodyさん
2007/03/08(木) 14:03:46ID:ZuqlBOaNもうクリアになったのでおkです.回答ありがとうございました.
0282nobodyさん
2007/03/08(木) 14:19:05ID:???以下のようなファイル・ディレクトリで運用しています。
/var/www/hoge/file1.php
/var/www/hoge/fuga/file2.php
(DocumentRootは/var/wwwに設定)
file2.php内にてHTML部分で<A href="/hoge/file1.php">等でリンクを貼ると、
ページを表示した際に問題なくリンクをたどれるのですが、
file2.phpにおいてrequire_once("/hoge/file1.php")とすると
ファイルがないとエラーが出てしまいます。
今後いろいろなディレクトリからfile1.phpをインクルードする必要があるので、
相対パスではなくドキュメントルートからのパスを指定することにより記述を統一したいのですが、
このようなことは可能でしょうか?
(ちなみにrequire_once("/var/www/hoge/file1.php")とすると問題なく読み込めました。)
Debian Sarge+apache2+php4です。
よろしくお願いします。
0283nobodyさん
2007/03/08(木) 14:20:35ID:???require_once($_SERVER["DOCUMENT_ROOT"] . "/hoge/file1.php");
でいーんじゃない?
0285282
2007/03/08(木) 14:37:42ID:???表示用のhtmlと処理用のphpを分けてサイトを作る場合、一般的にはどのような方法で表示用htmlに反映させて表示させるのでしょうか?
現在のところ、表示用のhtmlに{$contents}等を埋め込んでおき、処理用phpにて最後にincludeしてやっているのですが、
これだと、表示用html内で使用している画像等のパスは処理用phpを基準として設定しなければならないため、
すべてを>>282で質問したようにDocumentRootからのパスを指定してやる必要があります。
修正するのはたいした手間ではないのですが、皆さんこのようにして作成しているものなのでしょうか?
0286282=285
2007/03/08(木) 14:39:02ID:???スレ汚し申し訳ありません。
0287nobodyさん
2007/03/08(木) 14:57:14ID:???0288nobodyさん
2007/03/08(木) 15:03:27ID:???> これだと、表示用html内で使用している画像等のパスは処理用phpを基準として設定しなければならないため、
ごめん。これの意味が分からない。
「処理用php」ってのは一体どこのディレクトリに置かれてるんだ??
0289285=282
2007/03/08(木) 15:31:16ID:???レスありがとうございます。
Smarty導入には未だ踏み出せずにいました。検討してみます。
処理用phpは複数あり、それぞれ表示用htmlより下のディレクトリに置く予定です。
ご意見ありましたらよろしくお願いします。
0290nobodyさん
2007/03/08(木) 15:34:34ID:???サブディレクトリに分ける必要がある=システム的にカテゴリを定義している=カテゴリ別にディレクトリ設定を持てる、ので
その場合は定義されたディレクトリ設定をリンクに付加するだけだから特に悩むこともない。
0291nobodyさん
2007/03/08(木) 15:42:08ID:???普通、画像の置き場所なんてドキュメントルート基準かスクリプトからの相対位置基準かどっちかにしかしないから
普通に <img src="/image/画像.jpg"> か <img src="./image/画像.jpg"> かでいいんじゃないの?
それで済まないのは根本的にディレクトリ構成がおかしい気がするんだけど。
0292nobodyさん
2007/03/08(木) 16:47:37ID:???で困ったことがあります。
それは、HTTP_Request::addFile() でアップロードしたファイルを
受け取る側のPHPスクリプトの $_FILES['foobar'] で参照できないのです。
これを解決する方法はあるでしょうか?
0293nobodyさん
2007/03/08(木) 17:06:36ID:???SEO的に有利だからね。
0294nobodyさん
2007/03/08(木) 17:14:55ID:???$_FILESに入ってないんだったらアップロードに失敗してるんだろ
addFileでちゃんとtrue返って来てる?
>>293
SEO的に有利な根拠は?
0295nobodyさん
2007/03/08(木) 17:32:51ID:???ログイン画面にてeuc-jpを選択してもログイン後にutf8に変わってしまいます。
また、phpからEUCでMysqlに登録したデータもphpmyadmin上では文字化けして表示されてしまいます。
なんとかして文字コードを変更することは可能でしょうか?
Mysql4.1.11 phpMyadmin2.6.2を使用しています。
よろしくお願いします。
0296nobodyさん
2007/03/08(木) 17:41:41ID:???MySQLからデータをとりだして表示しているページがAU機では表示されません。
色々調べてみると
1.日本語のみ表示されていない
2.文字化けではなくNULL状態
3.URLに勝手にx-up-destcharset=17がはいる
var_dumpしてみても日本語が入っている変数はNULLになっています。
どなたかお力お貸しください
0298nobodyさん
2007/03/08(木) 18:04:32ID:???>var_dumpしてみても日本語が入っている変数はNULLになっています
って、スクリプトミスっているんじゃないのか?
そら、何も入っていないのに表示されるわけない
0299189
2007/03/08(木) 18:07:24ID:RD7yuDJrそれを外して再コンパイルしたところ、4.4.2 と同じ結果が返ってくるようになりました。
本当にこれが原因かどうかはもう少し調べてみないとわかりませんが、
とりあえずこれで使ってみようと思います。
お騒がせしました。
0300nobodyさん
2007/03/08(木) 18:43:32ID:???があるとして、
以下のようなことをしたいのですが、
explode($array)を介さずに直接$a_cに代入できるような関数ってないでしょうか?
$array に余計なメモリを食いたくない、かつわかり易いように
連想配列を使いたい、という状況です。
$array = explode(",", $var);
$a_c['A'] = $array[0];
$a_c['B'] = $array[1];
$a_c['C'] = $array[2];
0301nobodyさん
2007/03/08(木) 19:07:14ID:???list($a_c["A"], $a_c["B"], $a_c["C"]) = explode(",", $var);
0302nobodyさん
2007/03/08(木) 19:08:16ID:???NULLというか
$hoge=''
という形で入っています。
PCやドコモ機で見るときちんと文字が入っています
0303nobodyさん
2007/03/08(木) 19:10:11ID:???画面に出しても文字コードの関係で表示されないだけ?
画面やvar_dumpの内容をob関数使ってファイルに出力してみると謎が解けそう。
0304nobodyさん
2007/03/08(木) 20:36:58ID:???これの意味がわからない。
だれかおしえてw
0305nobodyさん
2007/03/08(木) 22:11:34ID:???/hogehoge/
├/app/ ここにスクリプト
└/public_html/ 実行ファイル
こういうことじゃね?
まぁ、レンタルサーバでドキュメントルートより上に置けないサーバー結構あるわけだが。
自鯖でやってるやつなんてほんの一部だろうし。
0306nobodyさん
2007/03/08(木) 22:51:46ID:???0307nobodyさん
2007/03/08(木) 23:06:52ID:???それかスクリプト本体をサブディレクトに置くといいたかったのかね。
どっちにせよ謎い。
0308nobodyさん
2007/03/08(木) 23:20:03ID:???0309nobodyさん
2007/03/08(木) 23:38:41ID:lSyqksIJphp.iniを見てみたのですがphp_mbstring.dllという記述が見つかりません。
どうすればmb関連の関数を使えるよう設定できますか?
0311nobodyさん
2007/03/09(金) 00:17:00ID:???0312nobodyさん
2007/03/09(金) 00:31:15ID:???あ、俺インストーラ使ったこと無いな
インストーラでインスコするとどうなるの?
zip解凍して自分で配置したのと同じ?
0313nobodyさん
2007/03/09(金) 01:42:30ID:???これで一つのメールアドレスを含む文字列は置換できるんだけど、
二つ以上になるとリンク部分がバグる
どこか間違ってるかな?
$msg = mb_eregi_replace("([a-z0-9\._-]+)@(.+)\.([a-z]{2,4})",
'<a href="mailto:\\1@\\2.\\3">\\1@\\2.\\3</a>', $msg);
mb_internal_encoding('SJIS');
mb_regex_encoding('SJIS');
にはしてある
PHP5.1
0314nobodyさん
2007/03/09(金) 01:45:43ID:???0316nobodyさん
2007/03/09(金) 01:52:30ID:???いやホントに
まるでHTML覚えたてのように余計なとこまでリンク化されてるみたいな
>>315
全然おkですが?
0317nobodyさん
2007/03/09(金) 01:53:45ID:???0318nobodyさん
2007/03/09(金) 02:23:37ID:???0319nobodyさん
2007/03/09(金) 02:26:35ID:???バグるって最初から内容ぐらい書けよお前。
今回は半角英数字だから問題ないだろうけど
あとMS系の言語以外でSJISは出来るだけ使うな
しかも>>314のいうとおりco.jpは無理だろそれ?
どこまでもリンクが続くって事は</a>が上手く付いて
ないんだろ?
そこを何とか調べてみろ
0321313
2007/03/09(金) 02:34:53ID:???二番目のカッコがダメダメっぽい
普段単体のメールアドレスチェックに(.+)@(.+)\.(.+)で済ませてる身に
正規表現はキツイわw
0322nobodyさん
2007/03/09(金) 02:40:03ID:???メールの正規表現はなにげにむずいぞ。
ついでにいうと大文字も可能。
それと、その正規表現じゃ例えば、
.com.com.com.comなんかもメールアドレスとして扱われる。
もうちょっとましな書き方したほうがいいと思う。
0323313
2007/03/09(金) 02:49:28ID:???自分ではシンプルかつエレガントに構文を作ったつもりだったんだけど
検索しても長ったらしいのばかりで
まあ弱い頭ひねって、もうちょい考えてみますわ
0324nobodyさん
2007/03/09(金) 02:49:42ID:???0325nobodyさん
2007/03/09(金) 02:53:23ID:czcTDFU5アクセスされたファイルごとのアクセス数をカウントするだけです。
なので、ログを一行ずつ読んで、アクセスされたファイル名をキーにしたハッシュをカウンタとして使用しようとしました。
$counter=Array();
while(!logeof()) { // ログファイルの最後までループ
$filename = getlog(); // ログを一行読んで、アクセスされたファイルを返す
$counter[$filename]++;
}
foreach($counter as $filename=>$count) { // 結果表示
print "$filename = $count\n";
}
ところがファイルが多く、オンメモリでの処理が厳しくなってきました。
そこで質問なのですが、PHP で簡単に使えるファイルベースのデータベースのようなものは無いでしょうか?
とりあえずハッシュが使えればいいです。
Microsoft Access の MDB みたいな、SQL が使えるやつにも興味があります。
ご存知でしたら教えてください。
0331330
2007/03/09(金) 03:09:57ID:???0332nobodyさん
2007/03/09(金) 03:23:30ID:???0333nobodyさん
2007/03/09(金) 03:28:31ID:???0334nobodyさん
2007/03/09(金) 03:36:12ID:???0335325
2007/03/09(金) 03:38:59ID:???でも、>>332 の mysql lite というのと同じかわかりませんが、SQLite というのが使えそうな気がしますので、
これを検討します。
ありがとうございました。
0336nobodyさん
2007/03/09(金) 03:45:05ID:???まぁ待て。
確かにファイルベースのSQLiteっちゅうのはある。
MySQLぐらい高速らしい。
だがちょっと待ってほしい。
お前はどこでDBを使うつもりだ?
0337325
2007/03/09(金) 03:52:27ID:???Linux な WEBサーバ上で使おうと思います。
モジュールの追加は比較的自由にできますので、多分導入も問題無いんじゃないかと思います。
ただ、MySQL みたいにサーバを起動するのは面倒なので、避けたいと思いました。
ついでに、やりたかったこと自体は >>325 のようにファイル毎のアクセス数を数えるということだけだったのですが、
SQL も使えるようなのでもうちょっと高級な集計にも手を出してみようかと思います(ファイル毎のリファラの集計など)。
というつもりなのですが、何か問題になりそうでしょうか?
0339nobodyさん
2007/03/09(金) 03:59:03ID:???0340325
2007/03/09(金) 04:04:47ID:???はい。ハッシュでファイル毎のカウントを求めようと思ったら、配列のサイズが大きくなりすぎてエラーになるケースが出てきたのです。
ファイルの数だけはとても多いので、ハッシュでやると要素数が多くなるのです。
PHP にメモリリミットを設定していまして、16MB くらいでエラーになります。
>>339
その通りなのですが、DBを使いたいという動機ではなく、オンメモリで処理するのをやめたい、というのが目的です。
0341nobodyさん
2007/03/09(金) 04:35:46ID:???0342nobodyさん
2007/03/09(金) 05:05:42ID:???そんなに重い処理でもないしメモリを食う処理でもない。
ひとえにお前の実装が糞過ぎるだけ。
0343nobodyさん
2007/03/09(金) 05:09:51ID:???index.phpにアクセスしたときに_blankで新しいページ(例えばindex2.html)を開くようにすることはできるでしょうか?
index.phpがjavascriptを書き出してウィンドウをオープンさせる手は思いつくのですが
phpの関数だけで新しいページを開かせたいと思っています。
もしかしたら超初心者な質問かもしれないですけれどお願いいたします。
0344nobodyさん
2007/03/09(金) 05:13:05ID:???HTML(XHTML)の勉強で事足りる。Strictではtarget属性廃止されてるからTransitionalでね。
ツールバーなしorサイズ指定のウィンドウ出したいならjavascriptで。
0345nobodyさん
2007/03/09(金) 05:22:52ID:IclYPYCtPHPで
http://pc11.2ch.net/test/read.cgi/php/1173163186
この末尾の1173163186を1づつ増やして、
そのページにアクセスし、そのページに特定の文字列があった場合のみ、
そのアドレスをテキストファイルに書き込んでいく
なんて、スクリプトを書く事は出来ますか?
0346nobodyさん
2007/03/09(金) 05:24:18ID:???0347nobodyさん
2007/03/09(金) 05:26:10ID:IclYPYCtどうもです。
0348nobodyさん
2007/03/09(金) 05:36:02ID:gCb65kdamysql_connect("localhost","root","") or die("Error MySQL First Test");
echo "Success MySQL First Test";
?>
↑を表示させようとするとCall to undefined function mysql_connect()がでます。
phpのフォルダにはlibmysql.dllが入っており、パスも通ってます。
また、php_mysql.dllも入っており、php.ini内のextension=php_mysql.dllのコメントもはずしました。
初歩的すぎるところですが、お願いします。
0349nobodyさん
2007/03/09(金) 05:56:39ID:???0350348
2007/03/09(金) 06:27:57ID:gCb65kdaレスありがとうございます。
phpinfo()にはmysqlが表示されてないです。
extension_dir も PHPIniDir も正しく、
Configuration File (php.ini) Path も正しくiniが表示されています。
環境を書き忘れてました、申し訳ありません。以下の通りです。
Apache 2.2.4、PHP 5.2.1、MySQL 5.0.27
0351nobodyさん
2007/03/09(金) 06:37:21ID:???0352348
2007/03/09(金) 06:52:09ID:gCb65kda再起動はしまくってます。
と、申し訳ないです、libmysql.dllをC:WINDOWSに入れたらなんか出来ました…
phpインストールフォルダじゃだめなんですね、これ。お騒がせしました。
0353nobodyさん
2007/03/09(金) 07:06:55ID:???どんだけファイルが多いのか
それともメモリがしょぼいのか
ファイルが100万個あっても余裕だろ
まさかログファイルをいっぺんに読み込んでるとか
0355nobodyさん
2007/03/09(金) 07:24:53ID:lsaQKE2M$hoge1=$_POST['hoge1'];
$hoge2=$_POST['hoge2'];
$hoge3=$_POST['hoge3'];
$hoge4=$_POST['hoge4'];
$hoge5=$_POST['hoge5'];
for($i=1 ; $i<=5 ; $i++){
if(${a."$i"} != ""){
print<<<EOT
<INPUT type="hidden" name="hoge$i" value="${hoge"."$i}">
EOT;
}
}
name=""の部分をどうすればhoge1からhoge5までで出力できるのでしょうか?
0356nobodyさん
2007/03/09(金) 07:25:07ID:???0357nobodyさん
2007/03/09(金) 07:27:45ID:???0358nobodyさん
2007/03/09(金) 07:56:51ID:yU3jvLcG&ってURLに含まれていますよね?
<a href="$url">htmlspecialchars($url)</a>
だとXSSの危険性があるので、
htmlspecialcharsから&をとりのぞいた関数を作ればいいでしょうか?
それとも他に何かベストな方法がありますでしょうか?
0360nobodyさん
2007/03/09(金) 08:14:37ID:yU3jvLcGおー。こんな関数があったのですね。
これを使いたいと思います。
どうもありがとうございました。
0361nobodyさん
2007/03/09(金) 08:15:44ID:???0362325
2007/03/09(金) 10:25:45ID:???単にファイル名ごとのカウントを数えるだけなのですが、それをシンプルに実現するために使えそうなアルゴリズムって
どんなのがあるでしょうか?
>>325 のカウンタは見ての通り、$counter['/index.html'] とか $counter['/images/top.gif'] みたいな配列です。
>>353
集計したいファイル数は10万弱程度なのですが、とりあえずファイル名長が平均約 80文字と仮定して、
要素数100万のハッシュ配列を作成できるか実験してみました。
for($i=0; $i<1000000; $i++) { $counter[sprintf("%080x",$i)]++; print "$i\n"; }
18万個弱で
Fatal error: Allowed memory size of 25165824 bytes exhausted (tried to allocate 12 bytes) in - on line 1
となりました。
ちなみにログファイル自体は 100万行以上 x 日数分 ありまして、もちろん全部まとめて読むなんてことはしてません。
あ、メモリリミットは 16MB じゃなくて 24MB にしてました。
25165824 ってのは 24MB のことだと思います。
0363nobodyさん
2007/03/09(金) 10:42:19ID:???そのスクリプト、WinXP PHP4.4.2 設定は標準のまま、で普通に100万までいけちゃったよ。
他でメモリ食うような処理してる?
0364nobodyさん
2007/03/09(金) 10:43:38ID:pPHNsntg会員制システムとか作る時に、会員情報を登録するするスクリプトが
あるとして、manage.php?id=0001とかのプログラムファイル+パラメータで
制御するとしたら、manage.php?id= の部分は表示しない方が多少は
セキュリティ高いと思うんですけど、これを表示しない方法とかありますか?
お暇な人回答お願いします。
0366325
2007/03/09(金) 10:47:12ID:???php.ini で memory_limit を指定していないか、configure時に --enable-memory-limit を指定しなかった等で、
メモリリミットをかけていないのだと思いますが、いかがですか?
# ちょっとぐぐった感じでは、Windows版ではメモリリミットの指定ができない、なんて記述も目に入りましたが
PHP に無尽蔵にメモリを使われても問題なので、メモリリミットはあまり拡大したくないという事情もあります
0367nobodyさん
2007/03/09(金) 10:57:17ID:pgZH/gt2サニタイズしていなくて付くのですが、これってサーバ側の問題でしょうか?
0368nobodyさん
2007/03/09(金) 11:02:31ID:???サーバ側の問題。というか設定。
php.ini の magic_quotes_gpc が有効になっているはず。
0370nobodyさん
2007/03/09(金) 11:05:26ID:???0371nobodyさん
2007/03/09(金) 11:10:26ID:wPvny8V5ファイル3,4くらいのプログラミングでできてるものだとうれしいです。
0372nobodyさん
2007/03/09(金) 11:32:30ID:???ログの集計ってユーザからリクエストされるたびに毎回リアルタイムでやってんの?
普通は集計結果をファイルなりDBなりに保存する形で、バックグラウンドで処理しとくだろ。
そういったバッチ集計スクリプトではメモリの使用量はあまり制限しないものだ。
Apacheプロセスみたいにいくつも同時に起動してメモリを食いつぶすわけじゃないからな。
0373nobodyさん
2007/03/09(金) 11:33:52ID:???多分、あなたのいう「簡単」というレベルで掲示板作成を説明した
書籍はないと思う。
http://www.phpweb.jp/lineboard/
なんかのサンプルと、PHPの書籍をにらめっこしながら作るのが
いいだろう。
0374nobodyさん
2007/03/09(金) 11:38:26ID:???どんな大量の調査対象ファイルが存在するんだ?
>>325 は説明用の簡易スクリプトだとは思うが
1000や2000個くらいなら、なんとかなると思うけど。
0376nobodyさん
2007/03/09(金) 11:46:16ID:???0377nobodyさん
2007/03/09(金) 11:57:43ID:???読み込みログファイルは1日1ファイルのようだが。
レンタルのサービスでもやってりゃ10万くらい普通だわな。
ま、省メモリで処理したいなら普通はmysqlなりのDB使うんでない?
そもそも毎日10万の項目を集計するなら結果の保存先をDBにすべきだろうし。
0378nobodyさん
2007/03/09(金) 12:05:46ID:???>ログファイル自体は 100万行以上 x 日数分 ありまして
俺ならさっさとPostgreSQLかMySQLにぶちこむ。
てか、そういうサイトでログ集計はファイル数のカウントだけってのはどうなのかという気もするが。
0379nobodyさん
2007/03/09(金) 12:05:50ID:???外部委託でもしろよ
0380オナニスト ◆MRmxpjiK.2
2007/03/09(金) 12:26:46ID:???犯罪予告
DELL価格情報 その69
http://pc9.2ch.net/test/read.cgi/pc/1173367505/84
84 名前:名無しさん[sage] 投稿日:2007/03/09(金) 11:59:02 0
こないだDELLに20パークーポンくれって頼んだら
「そんなん無理に決まってるでしょ!」って怒られた
仕方なくポチッて次の日HP見たら
30パー+送料無料
になってた
川崎火の海にしてやる
0381nobodyさん
2007/03/09(金) 12:34:15ID:???0382nobodyさん
2007/03/09(金) 12:45:29ID:???警察もそんなんじゃ動かんよ。
0383nobodyさん
2007/03/09(金) 13:05:31ID:???http://example.com/hoge?id=12 に来たアクセスを
をpublic_html/PHP/usr/hoge.php?id=12 に送りたいのですがどうしてもできません。
ご教示お願いいたします。
今はこんな感じで書いてます。
RewriteEngine on
RewriteRule hoge\?id=([a-z0-9]+)$ http://example.com/PHP/id/hoge.php?id=$1 [L]
0384nobodyさん
2007/03/09(金) 13:06:01ID:???0386383
2007/03/09(金) 13:15:56ID:???http://example.com/PHP/id/hoge.php?id=$1
0387nobodyさん
2007/03/09(金) 13:19:05ID:???0388nobodyさん
2007/03/09(金) 13:19:22ID:???それから、質問をしたいならIDを出してね
0391nobodyさん
2007/03/09(金) 13:42:59ID:???0392nobodyさん
2007/03/09(金) 13:44:03ID:???0394nobodyさん
2007/03/09(金) 13:49:27ID:/AfE14nE誰か対処方法を御存知ではないでしょうか?
0395nobodyさん
2007/03/09(金) 13:53:38ID:???0397nobodyさん
2007/03/09(金) 14:02:57ID:SVufrglqすみません。
最初の書き込み以外は僕ではないです
IDださないですみません。
0398nobodyさん
2007/03/09(金) 14:13:10ID:???よく覚えてないけど、FATでのCygwinってファイルの先頭が
「#!」で始まってたら全部実行可能にしてなかったっけ?
0400309
2007/03/09(金) 15:34:33ID:???という手順が必要なのですね。
自己解決しそうです。
0401364
2007/03/09(金) 15:52:53ID:???いやいや
ときどきサイト見てると、URLの末尾が
/?id=00001
みたいになってるのないですか? (見間違いかな)
あれって、そのディレクトリで読むphpが決まってて、パラメータだけ指定してるのかと
思ったんですけど、あれってどうやってるのかなーって。。
0402nobodyさん
2007/03/09(金) 15:55:39ID:???0404nobodyさん
2007/03/09(金) 16:01:04ID:???ApacheでDirectoryIndexをPHPスクリプトに設定しとけば
ファイル名省略されたときにそのスクリプトに渡してくれるよ。
ちなみにこの手のはセキュリティのためでなく、
ユーザの利便性やSEOなどのために用いられる手法。
セキュリティとしては何の意味も無いです。
0406nobodyさん
2007/03/09(金) 16:35:20ID:mLu72eTXどんな手段が良いでしょうか?
今考えてるのは正規表現で取り除く事なのですが、試してみてもうまくいきません。
(返値がNULL)
$xmlText=ereg_replace("<tag.*?>","<tag>",$xmlText);
どこが間違っていますか?
この手段でなくても、DomDocumentのメソッド等で簡単にやる方法があれば良いのですが・・・。
0407406
2007/03/09(金) 16:38:42ID:???mb_ereg_replaceを使ったら出来ました。
0408nobodyさん
2007/03/09(金) 16:58:47ID:???このエッラーてどういう意味ですか?
0409nobodyさん
2007/03/09(金) 17:11:54ID:???0410nobodyさん
2007/03/09(金) 17:16:03ID:???ありがとうございました
0411nobodyさん
2007/03/09(金) 17:56:16ID:???print $i . "<BR>\n";
って書くのと
print "$i<BR>\n";
って書くのどっちがいいんでしょう?
0412nobodyさん
2007/03/09(金) 17:58:01ID:???前者のほうが間違いが少ない。IDEによっては前者のほうが特に見やすい。
後者なら、
print "{$i}<BR>\n";
にすべき。
0414nobodyさん
2007/03/09(金) 18:05:33ID:???0417nobodyさん
2007/03/09(金) 18:17:36ID:???0420nobodyさん
2007/03/09(金) 19:14:08ID:???0421nobodyさん
2007/03/09(金) 20:33:58ID:aTAkfZpm(静的変数あるいはグローバル変数のような使い方)
を教えて下さい。
関数起動する度にリセットされて使い物にならない('A`)
0422nobodyさん
2007/03/09(金) 20:41:16ID:???このメソッド、引数に全角文字列を指定すると誤動作しませんか?
falseが返ったり、falseじゃなくても文字化けしていたり。
回避手段を知っている方がいたら教えてほしいです。
0423422
2007/03/09(金) 20:55:20ID:???0424343
2007/03/09(金) 21:34:28ID:???遅レスになりましたがレスありがとう。
htmlやjavascriptでウィンドウを出す方法はわかるのですが
単純にphpだけで表示する事ができるのかな、と思って質問しました。
(phpでhtmlやjavascriptを書き出す、以外で)
0426nobodyさん
2007/03/09(金) 21:45:10ID:???普通にglobalで保持できると思うけど。
>関数起動する度にリセットされて使い物にならない('A`)
ってことはセッション変数に入れとけばいいじゃんとかそんな話か?
何がしたくて無理なのかわかんない。
0427nobodyさん
2007/03/09(金) 21:56:32ID:8A7FFt/1<form>からPOSTで送っているのですが、なぜか
澄 摺 寸 世 瀬 畝 是 凄 制 勢 姓 征 性 成 政
整 星 晴 棲 栖 正 清 牲 生 盛 精 聖 声 製 西 誠
繊 羨 腺 舛 船 薦 詮 賎 践 選 遷 銭 銑 閃 鮮
前 善 漸 然 全 禅 繕 膳 糎 噌 塑 岨 措 曾 曽 楚
の文字だけがnullになります。 それとEUC-JPなのに表、能が?に化けます。 ソとかは平気です。
EUC-JPではなく、UTF-8に変えると全て解決します。
PHP4.3
mbstring.language = Japanese
mbstring.internal_encoding = EUC-JP
mbstring.http_input = pass
mbstring.http_output = EUC-JP
mbstring.encoding_translation = On
mbstring.detect_order = auto
です。
0428nobodyさん
2007/03/09(金) 22:01:43ID:???<form>からPOSTで送っているのですが、なぜか
澄 摺 寸 世 瀬 畝 是 凄 制 勢 姓 征 性 成 政
整 星 晴 棲 栖 正 清 牲 生 盛 精 聖 声 製 西 誠
繊 羨 腺 舛 船 薦 詮 賎 践 選 遷 銭 銑 閃 鮮
前 善 漸 然 全 禅 繕 膳 糎 噌 塑 岨 措 曾 曽 楚
の文字だけがnullになります。 それとEUC-JPなのに表、能が?に化けます。 ソとかは平気です。
EUC-JPではなく、UTF-8に変えると全て解決します。
この部分次回からテンプレ入れようぜ
0429nobodyさん
2007/03/09(金) 22:02:44ID:JIMPI+q/ヒントになるサイトを教えてください
0430虚弱PHP
2007/03/09(金) 22:02:59ID:???万が一にもないと思うけど、
PHPでWindowsアプリとか、
X アプリとか作りたいわけじゃないよね?
サーバーサイドスクリプトとしてPHP使うなら、
その質問はありえないんだけど。
つまり、どういう仕組みで動いているかの勉強が必要ってこと。
0431nobodyさん
2007/03/09(金) 22:03:16ID:???0432nobodyさん
2007/03/09(金) 22:07:13ID:???http://www.php.net/manual/ja/
0434nobodyさん
2007/03/09(金) 22:14:51ID:???いくらかまともなシステム作ったことあるならそんな質問は出ないだろう
碌な経験も無いうちからいきなり課金が発生するサイトは止めろ
0435424
2007/03/09(金) 22:18:57ID:???レスありがとう。
うすうすそんな気はしてました。
インターネットはクライアント側のリクエストを返すものだから
サーバー側で実行させるCGIとかPHPでは関われないってことですね。
PHPって便利な関数とかいっぱいあるからもしかして・・・、なんて夢見てました。
0436428
2007/03/09(金) 22:20:34ID:8A7FFt/10437nobodyさん
2007/03/09(金) 22:22:11ID:???その質問をしちゃうようなレベルで、そのシステムを作るのは、
無謀&無責任過ぎる。っていうかその知能では無理w
0438nobodyさん
2007/03/09(金) 22:26:15ID:???│ │─┼─ /| _,.イ,,.ィ' ─────‐‐‐‐ゝ;。←>>429
│ | │ | | | イン ,'´ ̄`ヘ、 // | \
__{_从 ノ}ノ/ / ./ | \
..__/}ノ `ノく゚((/ ./ |
/, -‐===≡==‐-`つ/ ,.イ  ̄ ̄// )) / ;∵|:・.
_,,,...//〃ー,_/(. / /ミノ__ /´('´ / .∴・|∵’
,,イ';;^;;;;;;;:::::""""'''''''' ::"〃,,__∠_/ ,∠∠_/゙〈ミ、、
/;;::◎'''::; );_____ @巛 く{ヾミヲ' ゙Y} ゙
≧_ノ __ノ))三= _..、'、"^^^ \ ! }'
~''''ー< ___、-~\( ,' /
\( ,'.. /
0439429
2007/03/09(金) 22:33:17ID:JIMPI+q/ちょっと考えたら作り方わかりました。
ありがとうございました。
>>434>>437
あおらないでください
>>433
0440nobodyさん
2007/03/09(金) 22:41:40ID:???0441nobodyさん
2007/03/09(金) 22:58:28ID:???まず「先に」、ちょっと考えてから質問しろよ。
0442nobodyさん
2007/03/09(金) 23:01:26ID:???forで10000回ループした場合。
$i."<br>
1.6349639892578
1.5304729938507
1.5425598621368
1.5483570098877
1.707211971283
1.7406980991364
2.0300641059875
1.7282230854034
1.7270748615265
1.7243540287018
"{$i}<br>"
1.7250878810883
1.7435381412506
1.6110119819641
1.6941339969635
1.7088131904602
1.8066370487213
1.7398798465729
1.7096009254456
1.6707351207733
1.7386131286621
結論:CPUのご機嫌次第
0443nobodyさん
2007/03/09(金) 23:39:06ID:???それを10000回もループさせる処理なんて無いしw
0445nobodyさん
2007/03/09(金) 23:44:55ID:???0446nobodyさん
2007/03/09(金) 23:45:40ID:???0447nobodyさん
2007/03/09(金) 23:48:26ID:???お前みたいな無駄な時間ばっかり費やすキモヲタは雇いたくないねw
>>446
バカかお前はw ベンチマークを知ってるかどうかと、無意味なベンチを取るかどうかは無関係だww
0449nobodyさん
2007/03/09(金) 23:50:02ID:???違う違う。
確かに仕事ではこんな処理走らせる事はほぼ無いだろうけど
お前みたいな言い方する奴と一緒にいるとイライラするの
0450nobodyさん
2007/03/09(金) 23:50:03ID:???0451nobodyさん
2007/03/09(金) 23:54:31ID:???0452nobodyさん
2007/03/10(土) 00:04:05ID:???そもそも、どの言い方が気にいらなかったんだか知らんが、
普通、お前みたいなタイプのほうがみんなイライラするよww
0453nobodyさん
2007/03/10(土) 00:07:37ID:???0455nobodyさん
2007/03/10(土) 00:11:49ID:???す、凄い!何が凄いって自分が平均的な思想の人間だと思い込んでるところ!
そして関係の無い二人以外の人間を巻き込んでるところ!!
もしかして韓国の方ですか?
0456nobodyさん
2007/03/10(土) 00:25:40ID:RPfFpUNc遅レスになってしまい申し訳ありません。
きっとIDも変わってますが…orz
var $beforeID;
function hoge($nowID){
$objResponse = new xajaxResponse();
grobal $beforeID;
$objResponse->addAssign($beforeID,"innerHTML", $newContent);
$beforeID = $nowID;
$objResponse->addAssign($nowID,"innerHTML", $newContent);
return $objResponse;
}
要はこう言う事をやりたいのですが、$beforeIDの値がリセットされるのです。
// global周りは適当に書いたのでおかしい所があるかもしれないのですがこんなニュアンスで
0458nobodyさん
2007/03/10(土) 00:56:27ID:???その関数を
<button onclick="xajax_hoge(0)" >hoge</button>
見たいに使うんなら、そらー無理でしょう。
毎回スクリプトにpostするわけだから。
セッション変数に入れるか、パラメータ代入と引数で引き継いでいくかじゃない?
0459nobodyさん
2007/03/10(土) 02:57:40ID:???実用的に見て全く意味なんかねぇよボケwww
どうしてそうキモヲタってのは、くだらねぇベンチ取って大喜びするんだw
そんなことよりも、もっとソース全体のアルゴリズムの見直しとか
セキュリティのチェックとかに時間を遣えよバカどもww
0460nobodyさん
2007/03/10(土) 03:37:12ID:???0461nobodyさん
2007/03/10(土) 03:38:52ID:???0462nobodyさん
2007/03/10(土) 03:53:20ID:???1 $url = "http://www.2ch.net/"
2
3 if(****************) ←【$url】がNot Found(存在しない)だったら
4 {
5 echo "urlが存在しません。" ;
6 }
7 else {
8 include($url);
9 }
0463nobodyさん
2007/03/10(土) 03:54:16ID:???0464nobodyさん
2007/03/10(土) 03:56:17ID:???0465462
2007/03/10(土) 03:57:24ID:???/ ̄ l | / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
■■-っ < >>464 んなーこたーない
´∀`/ \__________
__/|Y/\.
Ё|__ | / |
| У.. |
0466nobodyさん
2007/03/10(土) 04:38:32ID:L0CVYQw+この前他人のソースを眺めていたら、
デリミタに#をつかっていたのですが、
最後閉じるときに、#smと書かれていました。
これはどういう意味なのでしょうか?
0469nobodyさん
2007/03/10(土) 05:06:36ID:L0CVYQw+パターン修飾子というんですね。
正直書いてある意味がわかりませんが、
理解できるように勉強してきます。
レスありがとうございました。
0471nobodyさん
2007/03/10(土) 06:41:40ID:???フレームワークのMapleってどうなったんですか?
0472nobodyさん
2007/03/10(土) 06:46:10ID:???0473nobodyさん
2007/03/10(土) 07:27:04ID:???$header_list = @get_headers($url);
if (!isset($header_list[0]) or strpos($header_list[0], "404") !== false)
0474nobodyさん
2007/03/10(土) 10:14:10ID:???みなさん、ファイルを読むときに、fopenとか使ってファイルポインタを操作してますか?
私はtouchとかfileとかfile_put_contentsとか手軽な関数があるのでそれですましがちです。
こういうケースはファイルポインタじゃないとできないよ、とかありますか?
0476nobodyさん
2007/03/10(土) 10:49:55ID:F5cNKsq/flockが必要な場合
0478nobodyさん
2007/03/10(土) 10:51:59ID:F5cNKsq/fileしてからfile_put_contentsだと同じファイルかどうか分からないからな
0479nobodyさん
2007/03/10(土) 12:20:36ID:???仮にスクリプトにXSSの脆弱性があっても、
それがログなどに保存されない場合は問題ないですよね?
たとえば、
<?php
echo $_GET['hoge'];
?>
とかの場合、XSSの被害を受けるのは仕込もうとした本人だけですよね?
0481nobodyさん
2007/03/10(土) 12:59:38ID:???$_GET[ ]をそのまま表示するだけなら
fopen($_GET[ ], "r")とかするやつはいないだろうけど
0483474
2007/03/10(土) 13:49:14ID:???レスサンクス
たしかにファイル読んでチェック&上書きとかならロックしなくちゃいけかったですね。
参考になりました。
0484nobodyさん
2007/03/10(土) 13:59:55ID:???0485nobodyさん
2007/03/10(土) 14:14:03ID:???計算式載ってた
ttp://ja.wikipedia.org/wiki/%E5%81%8F%E5%B7%AE%E5%80%A4
0486nobodyさん
2007/03/10(土) 14:34:49ID:???それ、町の図書館にあった「数学の本」に書いてあったので
この前やってみたぜ。
電卓なしで平方根の計算をするのは大変だったが
Googleが助けてくれたぜよ!
0487nobodyさん
2007/03/10(土) 15:33:15ID:???0488nobodyさん
2007/03/10(土) 17:03:36ID:???プログラムに間違いがあるときブラウザにメッセージが出るけど、
それの種類をphp.iniで設定できますよね? でもその書き方が分かり
ません。
E_ALL | ~E_NOTICE
とか書かれててワケ分かりません。
0489軟式PHP
2007/03/10(土) 17:09:36ID:???結局のところ論理演算だよ。 and、or、xorとか。
10進数…2進数
1…00000001
2…00000010
4…00000100
8…00001000
16…00010000
みたいに被らないような数値をフラグとして使ってるだけ。
E_ALL ^ E_NOTICEとかだと
内部的にはxorしてフラグを0にしてるだけという単純な仕組み。
と、言ってて俺の説明下手さにorzしてきたわ。
0490軟式PHP
2007/03/10(土) 17:24:31ID:???http://www.php.net/manual/ja/function.error-reporting.php
ここを見たら分かるかもしれん。ビット演算とかそのへん分かってないとキツイかも。
0492nobodyさん
2007/03/10(土) 17:45:30ID:???0493nobodyさん
2007/03/10(土) 17:55:11ID:4M3pGGUH外部から書き込みしているのかなぜかホスト規制が効きません。
urlを投稿してくるので、httpを禁止ワードにしたいのですが、
どうすればいいのでしょうか?
0495nobodyさん
2007/03/10(土) 18:27:48ID:???一ヶ月みっちり基礎から覚えれば・・
0497nobodyさん
2007/03/10(土) 20:49:47ID:uq04XWP+0498nobodyさん
2007/03/10(土) 21:03:03ID:???0499nobodyさん
2007/03/10(土) 22:39:16ID:???http://pc11.2ch.net/test/read.cgi/php/1167984858/
0500nobodyさん
2007/03/10(土) 23:46:11ID:VGePLioSループで最後までまわして、packでバッファに入れてファイルに書き出す処理を4回やるとき、
ループを4回まわして個別に処理するのと、
ループは1回でその中で並列処理してバッファに入れるのと、
どっちがいいかな?
日本語分かり難くてスマソ
具体的には掲示板のログ処理で携帯3キャリアとPCの絵文字を相互変換した
表示用キャッシュファイルを作る作業です
上のは1記事分で実際は5記事分処理をします
0502501
2007/03/11(日) 00:05:47ID:???参考までに聞きたいけど
絵文字変換モジュールは自作したのを使ってる?
それとも何か違うものを使ってるなら参考までに教えてほしい。
0503nobodyさん
2007/03/11(日) 00:06:28ID:???俺はPHP等の「Webプログラム」しかやったコト無いから
バイナリ文字列に変換するとかちょっと深い部分はよく分
からないけど、両方そんなに変わらないんじゃないか?
並列処理するにも結局CPUパワーを分けるわけだから
そんなにメリットが無い気がする。
なら個別処理のほうがソースがスッキリしそうかな?
0504500
2007/03/11(日) 00:25:33ID:y0VmsJS4参考にしたのはttp://www.sound-uz.jp/php/tips/mobile.html
のサイトと、今は潰れたサイトから入手したスクリプトと、
ちょっと前の深夜にこのスレの前スレかな?うpした人のスクリプトです
俺は自分なりにアレンジを加えて、3キャリアとも>>500のようにして、
一つ一つマッチするのを見ていくのにしてます
>>503
個別処理だとアホのようにループいっぱい回すはめになります
スッキリなら並列処理で1回ループの方ですね
メモリ節約も気になったけど、俺はソーススッキリ方式にしてみます
0505500
2007/03/11(日) 00:33:05ID:y0VmsJS4実は絵文字変換は4年ほど前に一応作ってあって、
そのときはauの動く絵文字が手に入らなくそのままになってた
んで1年ほど前に偶然動く絵文字画像(PC用gifファイル)を
手に入れて、今度こそは完成させようとしたけど、
自分で書いた処理がワケワカメで嫌になって放置
そしてこの度やっと完成しそうな予感
でも相互変換テーブルがまだ蜜柑orz
0506nobodyさん
2007/03/11(日) 01:29:14ID:???そういや携帯もう2年も変えてないな・・・
>>500
スマン、並列処理ってどういう感じに書いてるの?
よければソース見せてくれ・・・
0507501
2007/03/11(日) 01:32:24ID:???俺がうpった奴だよそれw
0508nobodyさん
2007/03/11(日) 01:32:45ID:???0510500
2007/03/11(日) 02:15:28ID:???>>508
最近やっとオブジェクト指向かじり始めた、見た目指向の日曜プログラマなので
並列処理は謎ということでorz
>>507
家宝にしますw
>>509
プチパレっていう配布サイトのスクリプトに付属してるやつです
(個人サイトっぽいのでURLは略、ググルとでてきます)
0511nobodyさん
2007/03/11(日) 02:38:26ID:???ファイルポインタを取得してロックのことなんですが
$FP=fopen("./hage.txt","r+");
flock($FP,LOCK_EX);
↑よりも↓にしたほうが
flock($FP=fopen("./hage.txt","r+"),LOCK_EX);
ファイルポインタを取得してからロックをかけるまでにタイムラグがないので良いのでしょうか?
前者だと1行目と2行目の間に他からファイルポインタを2重に取られるような気がします。
0512nobodyさん
2007/03/11(日) 05:54:43ID:gT3meA5q「含まれていたら」のプログラムが分かりません。
if($toukou○○http) error("エラーです");
○○になにかいれるんだと思いますが、どうすればいいんでしょうか?
0513nobodyさん
2007/03/11(日) 06:46:47ID:???0514nobodyさん
2007/03/11(日) 06:47:16ID:???0515nobodyさん
2007/03/11(日) 06:50:35ID:???半角英数字のみの文字列をUTF-8に変換してファイル書き込みを行いたいのですが
どうあがいてもSJISのファイルになっていまいます。
例えば1文字でも日本語文字が含まれているとUTF-8のファイルになるのですが・・
utf8_encode($str); とか mb_convert_encoding($str, "UTF-8", "auto");
でも無理でした。一体どうすればいいのでしょうか?
0516nobodyさん
2007/03/11(日) 06:58:41ID:???内部エンコーディングを一時的にUTF-8にすればいんじゃまいか
mb_language('ja');
mb_internal_encoding('UTF-8');
ob_start("mb_output_handler");
こんな感じで。
でファイル書き込んだら元に戻す、みたいな。
(動作未確認)
0517nobodyさん
2007/03/11(日) 07:08:50ID:???Debian + Apache2 + PHP5 で
UTF-8のスクリプトをoutput_handler使って
SJISに自動変換して表示させてるんだけど、
ファイルをアップロードしたときに、なぜかファイル中の
半角「\」が全角の「¥」に自動変換される。
Apache + PHP4 のサーバーだと起こらないから
バグか相性の問題かだと思うけど、なんか腑に落ちない。
0519nobodyさん
2007/03/11(日) 09:40:14ID:???変換後にmb_detect_encodingしてみな。
ASCIIなのにエディタが「SJIS」と表示しただけだろ。
0520nobodyさん
2007/03/11(日) 09:52:52ID:???俺も寄付したいけど1口1万円はちょっと厳しいな。
せいぜい3000円くらいなら出せるけど、それじゃDVDもらえないかな?
http://www.nankinnoshinjitsu.com/
http://youtube.com/watch?v=x7aBGloec0U
(※我が日本人の手でこの情報を広く伝えよう!)
0521nobodyさん
2007/03/11(日) 10:41:42ID:???0522nobodyさん
2007/03/11(日) 10:47:20ID:???ttp://example.com/?hoge=%82%BF%82%F1%82%B1
ってリンクを掲示板とかに張られたら不特定多数に害が及ぶだろうがボケ
PC無害、ょぅι゛ょ有害
0523nobodyさん
2007/03/11(日) 11:01:42ID:???どうも。echoしてもASCIIになってしまいます。もしかして凄い勘違いしてるのかもしれないのですが
$str='aaa';
$str=mb_convert_encoding($str, "UTF-8","◆");
echo mb_detect_encoding($str);
で◆はauto,ASCII,EUC-JPいずれもダメでした
出力されたファイルをメモ帳で名前をつけて保存>UTF-8後に
使用しているエディタで開くとUTF-8になってるのでエディタの問題ではなさそうです
default_charset = "EUC-JP" / mbstring.language = Japanese
mbstring.internal_encoding = EUC-JP / mbstring.http_input = auto
mbstring.http_output = EUC-JP / mbstring.encoding_translation = On
mbstring.detect_order = auto
こんな環境です。
0524523
2007/03/11(日) 11:09:22ID:???超基本的なミスでした。しかもPHPに無関係でした。失礼しました。
0527511
2007/03/11(日) 11:37:37ID:???0528nobodyさん
2007/03/11(日) 11:41:02ID:???文単位だったら他のプロセスに割り込まれないなんていう保証はないので、どっちでもいっしょ。
というかその例なら割り込まれても問題はない。
flockを先に呼び出したプロセスがアクセスを獲得して、後から来たほうはflockのところでブロックされるだけの話だから。
0530526
2007/03/11(日) 11:44:40ID:???$FP=fopen("./hage.txt","r+"); flock($FP,LOCK_EX);
flock($FP=fopen("./hage.txt","r+"),LOCK_EX);
視覚的に違うだけで、結局どっちもfopen()->flock()の順番で呼び出してる
のに変わりはないからタイムラグがないというのも単なる思い込み。
0531nobodyさん
2007/03/11(日) 11:47:35ID:???というレスもスルーしとけ
以下ループに期待
0532nobodyさん
2007/03/11(日) 12:44:28ID:qDb0K5v3urlencodeしたら、空白が+になるのですが、
%20に置き換えして問題ないでしょうか?
0533nobodyさん
2007/03/11(日) 12:46:20ID:???0536nobodyさん
2007/03/11(日) 13:28:25ID:qDb0K5v3どうもありがとうございます。
mailtoでは使わないので、置き換えたいとおもいます。
0537nobodyさん
2007/03/11(日) 13:43:16ID:NCbGkHMP用途としては、差分だけを保存していきたいのですが、そんな便利なライブラリってありませんかね?
0538nobodyさん
2007/03/11(日) 14:01:08ID:Nl0cnT1ehoge foo
hogehgoe foobar
. .
. .
って感じのファイルを読み込んだんだけど
要素の後ろに空白が入ってしまうのが気になります。
どうすればいいんでしょう?
0539nobodyさん
2007/03/11(日) 14:20:30ID:???http://jp2.php.net/file
0542nobodyさん
2007/03/11(日) 18:58:59ID:???UTF-8にBOM付けたいってか?echoすりゃいいだろ。
その前にUTF-8がどういう文字コードかぐらい知っといたほうがいいよ。
つかこの話題デジャヴュ過ぎるんだって。
0543511
2007/03/11(日) 21:12:03ID:c+92i5++それでも質問に答えてくれてありがとう。
代わりに返事してくれていた人もありがとう。
同じ流れのプロセスなら割り込まれても弾かれますね。。。その通りでした。
かわりにちょっと調べてみたことを。
flockも完璧じゃないらしく、ダミーのファイルを用意したり(ttp://www.res-system.com/item/359)
自分でロック関数を作ったり(ttp://www.sakura-pc.jp/php/02060000.shtml)いろいろあるみたいですね。
後者だと、ファイルポインタいらずでfileやfile_put_contentsで操作できるので楽ですね。
0544nobodyさん
2007/03/11(日) 21:28:04ID:wFi+PsRqたとえばDBのデータ。
パッと思いつく手法は、PHPスクリプトをcronで動かして、mysqlのdumpを取る。
ここまではいいんですけど、このままじゃ同じマシン上にバックアップがあるからあまり意味がない。
そこでこのバックアップをどうやって他のマシン(他のレン鯖や自宅のクライアント等)に移すべきか?
バックアップ移動先のマシンでcronでssh接続して取りに行く・・・とか出来るんでしょうか?
やり方が思いつかない。。。orz
0545nobodyさん
2007/03/11(日) 21:43:17ID:QdoSkh/q$a=0 , $b=1 , $c=2 ;
という書き方は無しですか?
0546nobodyさん
2007/03/11(日) 21:51:29ID:???list($a, $b, $c) = array(0, 1, 2);
0548nobodyさん
2007/03/11(日) 22:00:42ID:QdoSkh/qなるほど、勉強になりました。
0551nobodyさん
2007/03/11(日) 23:14:44ID:c+92i5++文字列の"001"を"002"、"003"・・・"010"、"011"・・・"101"、"102"・・・と数値部分を++しつつ3桁固定で出力したいのですが
何か良い方法ありますでしょうか?
PHP5を使っています。
0552nobodyさん
2007/03/11(日) 23:17:30ID:???for($i = 1; $i <= 102; $i ++) echo sprintf("%03d", $i);
0553nobodyさん
2007/03/11(日) 23:18:03ID:???0554nobodyさん
2007/03/11(日) 23:22:54ID:c+92i5++即レスサンクスです。
なるほどフォーマット識別子を使えばよいのですね。
0555nobodyさん
2007/03/11(日) 23:34:19ID:???0556nobodyさん
2007/03/12(月) 00:16:43ID:???dbダンプして、他のレンタル鯖にftpで
アップロードしてその結果をmailする
シェルを書いてcronで動かしてる
0557nobodyさん
2007/03/12(月) 00:18:56ID:???0558nobodyさん
2007/03/12(月) 00:22:06ID:???0559nobodyさん
2007/03/12(月) 00:37:03ID:???なって困っています。(成功すればApache 2.0系と組で使うつもりです。)
php-4.4.6のソースを展開してシェル上で「./configure」と打つと、
checking for egrep... grep -E
checking for a sed that does not truncate output... /usr/bin/sed
expr: syntax error
test: =: unexpected operator
というエラーが(1個)出ます。ここで異常終了はせず、最後まで動作は
するのですが、正常に設定されたか信頼しがたいです。解決策を
ご存知の方はお教えください。
エラーが1個だけなら手で直してもいいのですが、必要なオプションを
./configureに指定していくと、上記エラーが大量に出るようになります。
現在php 4.4.4を正常に運用中ですが、このバージョンでは./configureで
上記のようなエラーは出ません。
0560559
2007/03/12(月) 00:40:06ID:0GAJDCOZ0561544
2007/03/12(月) 00:41:27ID:C8b3Iw+zscpやsftpといえば、Winマシン←→Linuxマシンの間を「WinSCP」を使って手動操作でつないだことしかないのですが、
シェルからもscpやsftpで他のマシンに接続する方法があるのですか!?
>>556
そのシェルスクリプトは、「バックアップ元」のサーバにて動かすように読めますが、そうでしょうか?
つまり「sftpなどで送る」というイメージですよね?
私が考えていたのは、「バックアップ先」のサーバから、「sftpなどで取りに行く」というのをイメージしていたのですが、
どちらがより良い手法なんでしょうね・・・??(あるいはどちらかしか実現不可能?)
0562nobodyさん
2007/03/12(月) 00:48:54ID:???取りに行く方式だとダンプと転送をそれぞれ
別のスクリプトでやんないといけないから面倒。
ダンプ→転送まで一発でできるならその方が楽。
でも、差なんてその程度しかないから好みや
サーバー環境などに合わせてどっちでも。
0563nobodyさん
2007/03/12(月) 00:54:24ID:???>シェルからもscpやsftpで他のマシンに接続する方法があるのですか!?
シェルスクリプトからscpコマンド実行するだけ。ググるべし。
送るか、取りにいくかはどっちでもよい。
お互いにサーバの生存確認したほうがよい。
0564nobodyさん
2007/03/12(月) 01:02:44ID:???0565nobodyさん
2007/03/12(月) 01:05:31ID:???>>563
「シェル ssh バックアップ」でググったけど、具体的な手順がイマイチ不明orz
良い解説ページとかあったら教えてプリーズ
0567nobodyさん
2007/03/12(月) 01:17:02ID:???「シェルスクリプト scp」でググれば
ttp://sonic64.com/2004-11-17.html とか
ttp://www-06.ibm.com/jp/developerworks/linux/040723/j_l-backup.html とか
出てくるじゃない。これでいいんじゃね?
それともmysqldumpからして分からんって話?
0568nobodyさん
2007/03/12(月) 01:18:11ID:???これ読んで分からんのか…
0569nobodyさん
2007/03/12(月) 02:12:46ID:???0570nobodyさん
2007/03/12(月) 02:41:47ID:???mysqlにうまく接続できません。
(phpinfoでmysqlの項目が見つからない)
環境
PHP Version 5.2.1
Apache/2.2.4
mysql-5.0.37
やったこと
・php.ini ;extension=php_mysql.dllの";"をはずした
・php.ini extension_dir = "c:\php\ext"に設定した。
・libmysql.dllを、C:\WINDOWS\system32 フォルダにコピーした
誰か詳しい人いたら教えてください。
0572nobodyさん
2007/03/12(月) 03:02:09ID:???0573nobodyさん
2007/03/12(月) 03:10:22ID:???手元にあるWinXPマシンでリモート鯖からのバックアップを毎日受け取りたい場合、
作業を自動化できますでしょうか?
(XPでコマンドライン的(?)にSSHを使えるソフト等が存在するのでしょうか?)
0574nobodyさん
2007/03/12(月) 03:18:09ID:???0575nobodyさん
2007/03/12(月) 03:18:41ID:???あ〜、どうだろうね?
もちろんWinマシンはIP固定でバックアップを受け取る時間帯
は起動してる前提だよね?
あとルータを噛ましたりしてるだろうからポートの開放とかもちゃん
と設定した前提だと・・・
サーバ側で設定したSSHポートからアクセスがあった場合、ファイルを
受け取ってどっかに保存って処理でいいんじゃない?
そうなるとPHPでソケットサーバをWinマシンで立ててあげれば大丈夫
だと思う。
0578nobodyさん
2007/03/12(月) 03:48:47ID:???http://pc11.2ch.net/test/read.cgi/php/1079460638/603
0580570
2007/03/12(月) 03:58:58ID:dTL00gbv>>579は偽者です。
>>571さんのやりかたでうまくできました。
問題は設定ファイルを修正して、再起動しなくちゃならなかったんですね。
でも、この再起動を自動化できないでしょうか?
0582nobodyさん
2007/03/12(月) 04:25:58ID:???0583573
2007/03/12(月) 07:27:56ID:???自宅なので24時間稼動のサーバは音などの問題でなかなか・・・orz
>>575
思ったより面倒な作業が必要みたいですね…
うーん、バックアップ専用に一つVPSでも借りたほうが早いかな?? 月2〜3千円くらいの…
0584nobodyさん
2007/03/12(月) 08:09:34ID:???ノートPC用のプロセッサを使った静音マシンがぷらっとほーむにいくつかあるよ。
あとMac miniなんてのもあるし、そういうのだとしずかでいいと思う。
0585nobodyさん
2007/03/12(月) 08:47:09ID:???自宅鯖より借りたほうがかえって安いし便利かも。
0586nobodyさん
2007/03/12(月) 10:19:05ID:???設定ファイル更新→再起動、はUNIX系では基本中の基本操作だからなぁ…
できないことはないけど手間考えたら手動で再起動させた方がよほど早いかと。
やるとしたら
・保存時に再起動ダイアログを出すようなエディタを自作する
・5分おきとか定期的にファイルの更新時刻をチェックするツールを作って常駐させる
みたいな感じになると思う。
0587nobodyさん
2007/03/12(月) 10:32:33ID:???winapacheが自動で再起動っぽくなった
0588nobodyさん
2007/03/12(月) 10:43:19ID:???0590422
2007/03/12(月) 13:02:24ID:???0592422
2007/03/12(月) 13:20:44ID:uytHlEDD0593nobodyさん
2007/03/12(月) 13:25:51ID:???0594nobodyさん
2007/03/12(月) 14:40:52ID:???0596594
2007/03/12(月) 14:50:11ID:???str_replace("\t", "", $value);
かな
0597nobodyさん
2007/03/12(月) 15:13:41ID:???0598nobodyさん
2007/03/12(月) 15:15:24ID:???0600597
2007/03/12(月) 15:30:12ID:???http://www29.atwiki.jp/basic_php
0601nobodyさん
2007/03/12(月) 15:30:51ID:???どうせ誰も参加せずに自然消滅するのがオチ……。
0602597
2007/03/12(月) 15:43:23ID:???あとは勝手に更新するなりしてくれ。
0604nobodyさん
2007/03/12(月) 16:52:45ID:???0605nobodyさん
2007/03/12(月) 16:56:47ID:???die die die exit!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
>>600 FATAL ERROR !!!!!!
0606nobodyさん
2007/03/12(月) 17:00:53ID:???-あとは勝手に更新するなりしてくれ。
(本音)
wiki置いてあげたんだから、とっととおまえら更新しろボケナス!!
そしてコンテンツは俺のものになるのだ。管理人は俺様だ!
あ? 何かもんくあるっていうのか?
0608nobodyさん
2007/03/12(月) 17:03:17ID:???0609597
2007/03/12(月) 17:04:05ID:???こっちは広告で飯食ってんだYo!もんくあるなら金払えってんだこんにゃろー
0610597
2007/03/12(月) 17:08:06ID:???ぼく、外に出ても嫌われ者で、昔から人の役に立たない人間だったから……。
2ちゃんねるなら、少しでもみんなの役にたてるかと思って。。
実は、PHPの知識は皆無なんだ。
でも、Wikiを管理することぐらいはできるんだ!
荒しさんを弾くことぐらいは朝飯前だぜw
頼むからみんな使ってくれよWiki・・・
0611nobodyさん
2007/03/12(月) 17:09:17ID:???0612597
2007/03/12(月) 17:11:58ID:???広告は自動挿入されてるからおれはいれてないぞww
広告なしがあるならおしえてくれよw
0613nobodyさん
2007/03/12(月) 17:17:28ID:???0614597
2007/03/12(月) 17:24:49ID:???0615nobodyさん
2007/03/12(月) 17:26:13ID:???運営するべきじゃないなw
0616nobodyさん
2007/03/12(月) 17:32:39ID:???0617nobodyさん
2007/03/12(月) 17:37:06ID:???0618nobodyさん
2007/03/12(月) 17:50:16ID:???マジレスすると、お前の悪いところは
・IDを出していない
・言い出しっぺの割に設定してない
・人任せ
これが問題だと思うよ。
0619597
2007/03/12(月) 17:55:42ID:???0620nobodyさん
2007/03/12(月) 17:57:52ID:???0621597
2007/03/12(月) 18:34:21ID:???0622nobodyさん
2007/03/12(月) 19:22:44ID:???phpでiCalendar形式のファイルを書き出すクラスみたいなのは
どこかで配布されてませんでしょうか?
0623nobodyさん
2007/03/12(月) 19:40:34ID:???これか?
http://www.phpclasses.org/browse/package/3278.html
0624623
2007/03/12(月) 19:42:09ID:???こんなのもあった。
http://www.macupdate.com/info.php/id/9224
0626nobodyさん
2007/03/12(月) 19:47:22ID:???(index.php)---
$TABLE = "";
$TABLE .= "<table border=1 cellspacing=3>";
・・・・(<TR>とかいっぱいのコード)
$TABLE .= "</table>";
include("template/index.tpl");
(index.tpl)---
<div align="center">
<?php echo $TABLE?>
</div>
0627nobodyさん
2007/03/12(月) 19:51:03ID:???echo "<div>これは冗談だろ...</div>\n";
echo "<div style="font-weight: bold;">頼むから冗談だと言ってくれ!!</div>";
0628nobodyさん
2007/03/12(月) 19:52:47ID:P3Oh6t9M\nが改行されずにそのまま\nと表示されるのですが、どうやったら改行されるのでしょうか?
0630nobodyさん
2007/03/12(月) 19:57:45ID:P3Oh6t9Mありがとうございます。できました。
そう言えばシングルクオートで囲んでました。
シングルではダメなんですか?
0631nobodyさん
2007/03/12(月) 20:15:01ID:???http://www.php.net/manual/ja/language.types.string.php
0632nobodyさん
2007/03/12(月) 20:30:23ID:DaZu2ELxどうも。勉強してきます。
0633nobodyさん
2007/03/12(月) 20:34:42ID:???0636nobodyさん
2007/03/12(月) 21:26:54ID:???0637nobodyさん
2007/03/12(月) 22:20:51ID:D65DUhfLを使って<リンク>にしてページに入ってる順に出力したいんです。
で、
while ($row = mysql_fetch_assoc($result)) {
print($row['sitename'].'<br>');
print($row['siteurl'].'<br>');
というのを見つけたんで、
この先をいじってやってみようと思ったんですがうまくいきません。
(いじって→なんとなく組み合わせてリンクタグをつくる。)
これってどうやったらうまくいきますか?
根本から違いますか?
0638nobodyさん
2007/03/12(月) 22:28:32ID:???0639nobodyさん
2007/03/12(月) 22:39:43ID:tXEJgcvFrequire 'cgi-lib.pl';
&ReadParse;
$upfile = $in{'upfile'};
open(OUT,">test.wav");
binmode(OUT);
print OUT $upfile;
close(OUT);
# レスポンスヘッダの出力
print "Content-type: text/html", "\n\n";
# HTMLの出力
print "<HTML>\n";
print "<BODY>\n";
print "<font size=7>ファイル更新中</font><BR>\n";
print "</BODY>\n";
print "</HTML>\n";
cgi-lib.plのライブラリを使ってみようと思いこのようなサンプルを作ってみましたが
作動しません。
間違いを教えてください。
0640nobodyさん
2007/03/12(月) 22:45:08ID:bMTzsbbiMySQLが4.1.x系になってそれまで作っていたプログラムが文字化けするのですが、
ググって調べたところ、MySQLの仕様が変わった事が原因で、my.cnfを編集して
対処するしかない、とかの記載がありました。
そこで質問ですが、PHP側で対処する方法は無いのでしょうか?
文字コードはEUC-JPで作っているのですが、すべての文字コードを
UTF-8に変更しなくてはいけないのでしょうか?
0641nobodyさん
2007/03/12(月) 22:47:09ID:tXEJgcvF0642637
2007/03/12(月) 22:47:54ID:D65DUhfLprint('<a href=$row['siteurl']>$row['sitename']</a>');
というのを後ろに付けてみたんですが動かしても白い画面が出るだけなんです。
0643nobodyさん
2007/03/12(月) 22:56:23ID:???それだとパースエラー出るような気がするけど。
http://www.php.net/manual/ja/language.types.string.php
とりあえずあなたはここを読むといいと思う
0644637
2007/03/12(月) 23:02:42ID:D65DUhfLお返事ありがとうございます。もうちょっと勉強してからきます。
0645nobodyさん
2007/03/12(月) 23:38:29ID:AUsBueUeセキュリティに関する本があったのですが、何というタイトルだったのでしょうか?
0646nobodyさん
2007/03/12(月) 23:42:25ID:???投稿しても反映されません。。
何故でしょうか??
時間的な問題で、ほっとけば投稿されるのでしょうか?
0648nobodyさん
2007/03/13(火) 00:02:55ID:???0649nobodyさん
2007/03/13(火) 00:23:42ID:???0651nobodyさん
2007/03/13(火) 01:24:44ID:???いったいどんなコストがかかってるって言うんだ…。タダみたいなもんだろーが。
しかもほとんどアメリカ企業ばっかりで選択肢少ないし。
あれって独占だか寡占だかで法律違反に問えないのかな?
本当にネット社会のインフラを充実させるには、「SSL業界のユニクロ」が必要だな。
0652nobodyさん
2007/03/13(火) 01:35:29ID:???中身はcomodoの証明書だったりするけど
ってここPHPのスレやんけ
0653nobodyさん
2007/03/13(火) 01:45:19ID:???0654nobodyさん
2007/03/13(火) 01:45:49ID:???>>652
レン鯖のサービスはあくまで再販だから、コストを下げるという観点からは無意味。
っていうか鯖屋のピンハネ分が乗るので余計にコスト高。
0655nobodyさん
2007/03/13(火) 01:54:20ID:???こういうやつだったら安く済むんじゃないの
ttp://www.asj.ne.jp/techinfo/ssl_asj.html
0656nobodyさん
2007/03/13(火) 01:57:45ID:WB3nwZIO<cat>
<name>mike</name>
<name>tama</name>
<name>buchi</name>
</cat>
を
SimpleXMLで
<cat>
<name>mike</name>
<name>tama</name>
<name>buchi</name>
</cat>
を
SimpleXMLで
<cat>
<name>mike</name>
<name>tama</name>
<name>buchi</name>
</cat>
を
<cat>
<name>mike</name>
<name>tama</name>
</cat>
に変更するときはどうすればいいのでしょうか?
0658nobodyさん
2007/03/13(火) 02:03:53ID:???それも海外業者の再販でしょ。あと携帯対応がイマイチねぇ・・・。
そもそも一番ユーザの多いドコモに対応するには、
事実上の独占企業VeriSignしか選択肢が無いのが痛い。
社民や共産は下らない言葉狩りとかやってないで、こういう見えにくい部分を追及してほしいぜ。
0659656
2007/03/13(火) 02:12:17ID:WB3nwZIO正しいのはこれです。
SimpleXMLで
<cat>
<name>mike</name>
<name>tama</name>
<name>buchi</name>
</cat>
を
<cat>
<name>mike</name>
<name>tama</name>
</cat>
に変更するときはどうすればいいのでしょうか?
0660nobodyさん
2007/03/13(火) 02:37:01ID:???0661弟子 ◆xSK1SiC5MI
2007/03/13(火) 02:58:43ID:TI4gTUTcXPなんだけどどこから手をつけるべきですか?
0662nobodyさん
2007/03/13(火) 03:18:05ID:???そんな調子じゃ10日は無理だなw買う本間違えたんじゃない?
とりあえず、最低限Apache+PHPをインストールしておいで。
個々のインストールがめんどくさかったり
よくわからないならXAMPPを入れたほうがいいかも。
そしたら次はフリーのPHP用IDEを入れる。
EclipseのPHPプラグインあたりがデバッグも容易だしおすすめ。
0663弟子 ◆xSK1SiC5MI
2007/03/13(火) 03:19:36ID:TI4gTUTc0664弟子 ◆xSK1SiC5MI
2007/03/13(火) 03:38:56ID:TI4gTUTcあとはhttp://www.atmarkit.co.jp/fjava/rensai3/eclipsejava01/eclipse01.html#40
をダウンロードでOKですか?
0665nobodyさん
2007/03/13(火) 03:53:58ID:???PHPは仕事で使うのか?
もしそうならそんなにあわてなくても良いじゃん。
ゆっくりやればいいよ。
俺はXAMPP+EclipseよりはPHPとApacheだけ
入れたほうが良いと思うんだけどどう?
0666nobodyさん
2007/03/13(火) 04:00:27ID:???0667nobodyさん
2007/03/13(火) 05:49:39ID:???初心者ならphpエディタのほうがいいかもね。
Eclipseに慣れている人なら当然そっちのほうがいいけど、
元々あれはJava開発者向けだし、最初の設定やらが若干めんどくさいからね。
0668nobodyさん
2007/03/13(火) 08:55:58ID:???ローカルに環境作らないで、無料のPHP使えるサーバー借りて勉強すればいいんでない?
ある程度PHPを覚えてくると、今までさっぱりだったapacheやphpの設定も不思議と見えてくる。
0669nobodyさん
2007/03/13(火) 09:18:01ID:???0670nobodyさん
2007/03/13(火) 09:31:45ID:???0671nobodyさん
2007/03/13(火) 09:33:48ID:???0672nobodyさん
2007/03/13(火) 09:57:54ID:???0673nobodyさん
2007/03/13(火) 10:31:36ID:8uoeVZuh<form method="post"action="a.php">..</form>
のようなログインフォームを用意しています。
パスワードを入力してログインすると
ログイン後のページが表示されるようになっているのですが
一部端末でログインできない(ログインボタンを押しても
ログイン画面が再表示されてしまう)
という問題が現象が発生しています。
端末は V302H V603SH A5502K W32S 702NH などです
(端末の設定に依存するのかもしれません
回避策などありましたら教えてください。
0674nobodyさん
2007/03/13(火) 10:40:10ID:???MySQLのバージョンによってうまくいかない可能性があるが
set names のクエリを接続したあと1回必ず送るようにすると
うまくいくかも
これでもうまくいかないときは素直にmy.cnfを書き換えたほうがいい
書き換えてもうまくいかないときはalterでデータベースの文字コードを
設定しなおしたらいい
0675nobodyさん
2007/03/13(火) 10:57:30ID:???回避策というかバグなんだからデバッグしろよ
とりあえずa.phpでprint_r($_POST);とかして値がわたってるかチェックかな
0677nobodyさん
2007/03/13(火) 11:03:20ID:8uoeVZuh返答ありがとうございます
例に出した機種以外では渡っているようでした
0680640
2007/03/13(火) 11:09:32ID:???ありがとうございます!無理なのかと思いました・・。
とりあえずレン鯖なんで、my.cnfの書き換えは出来ないのですが、
以下の分を環境設定ファイルに書き足したところ、登録・表示できました。
$set_names = mysql_query("SET NAMES ujis", $conn);
少ししか試していませんが、特に重いと言う事もないので、これで乗り切ろうと思います。
アドバイスありがとうございました。
0681nobodyさん
2007/03/13(火) 11:17:31ID:8uoeVZuh2年ほど前の機種です
0682nobodyさん
2007/03/13(火) 11:20:37ID:???どうもありがとうございました
書き出す場合は中身が構造化されたテキストっぽいから自分でやっつけるしかないみたいですね
0683nobodyさん
2007/03/13(火) 11:21:17ID:???V302H V603SH A5502K W32S 702NH
で検索したけど1個しかヒットしなかった
http://www.google.co.jp/search?sourceid=navclient-ff&ie=UTF-8&rls=GGGL,GGGL:2006-26,GGGL:ja&q=V302H+V603SH+A5502K+W32S+702NH+
0684nobodyさん
2007/03/13(火) 11:25:18ID:???携帯によってはパラメーターちゃんと設定しないと送信されなかったりもする。
0686nobodyさん
2007/03/13(火) 11:27:34ID:8uoeVZuhやってみます!
0687nobodyさん
2007/03/13(火) 11:28:47ID:???<?php
$xmlstr = <<<XML
<cat>
<name>mike</name>
<name>tama</name>
<name>buchi</name>
</cat>
XML;
$xmlsrc = new SimpleXMLElement($xmlstr);
$xmldst = new SimpleXMLElement("<cat></cat>");
foreach($xmlsrc->name as $name) {
$xmldst->addChild("name", $name);
}
?>
0688nobodyさん
2007/03/13(火) 11:30:53ID:???foreach($xmlsrc->name as $name) {
if($name != "buchi")
$xmldst->addChild("name", $name);
}
0690659
2007/03/13(火) 12:02:43ID:WB3nwZIO今PHPが使える環境にないので、後でやってみます。
0691nobodyさん
2007/03/13(火) 13:05:05ID:???それらの機種には問題ない。
お前のコーディングに問題がある。
おそらく適切なヘッダーを吐いてないんじゃないか。
0692nobodyさん
2007/03/13(火) 14:21:08ID:Y+fr5f3lテンプレートとなるPHPスクリプトには必ずTemplateクラスを実装するようにし、表示メソッドを持たせました。
例えば、以下のように複数のテンプレートPHPスクリプトを用意しておき、
表示時に、好きなテンプレートを選択できるようにしたわけです。
template1.php,template2.php,template3.php...
しかし問題に気付きました。
一つだけのテンプレートをrequireして何度も表示するだけなら良いのですが、
複数のテンプレートを一つのPHPスクリプトからrequireする場合があったのです。
「Fatal error: Cannot redeclare class ...」 です。
Templateクラスの多重定義エラーになってしまうのです・・!
PHPは定義の解除もオーバーライドもできない。
ああ、納品は今日だというのに、今まで気がつかなかった私が馬鹿であったのですが・・。
どうにかうまくやり抜ける方法はないものでしょうか?
おまえら知恵を貸しやがれです!
0693nobodyさん
2007/03/13(火) 14:24:16ID:???結論=無理。氏ぬがいいw
っていうか単なるテンプレート的な使い方のためだけにテンプレートエンジンだの
クラスだのと難しいことをする必要はない。
単に任意の変数を埋め込んだHTMLを拡張子.phpで用意しておき、
それをロジック・スクリプトからrequireして変数部分を展開すればいいだけ。
0694nobodyさん
2007/03/13(火) 14:26:27ID:???0695nobodyさん
2007/03/13(火) 14:29:49ID:???どういうファイル構成になってるんだかさっぱりなんだが
クラス定義ファイルの読み込みはrequire_onceでやるか
クラス定義のとこで定義済みかどうかを判別するだけでは。
まさか複数ファイルにクラス定義をそれぞれ書いてるとかいう
ありえない設計をしてるわけもないだろうし。
0696nobodyさん
2007/03/13(火) 14:42:22ID:Y+fr5f3lprint.php
-----------------------
require_once(テンプレートA);
$A = new Template;
//うぁぁTemplateが解除できねぇぇ
require_once(テンプレートB);
$A = new Template;
templateA.php , templateB.php
-----------------------
class Template extends TemplateBase
{
...
}
>>693
現状から少々の追加・修正でなんとかできないでしょうか・・
各テンプレートPHPで宣言しているクラス名を修正しても良いです。
>>695
ありえない設計になっていますでしょうか・・
0697nobodyさん
2007/03/13(火) 14:52:53ID:???0698nobodyさん
2007/03/13(火) 15:01:48ID:Y+fr5f3lテンプレートオブジェクトの生成コード
new Template が統一して使用出来ないと思ったからなんです。
newには静的にクラス名を与えるしかないですよね・・?
0699nobodyさん
2007/03/13(火) 15:08:19ID:???1000 2000 3000 の整数値が入った変数があったとして
これら3つの中から最も低い数値だけ抜き出すアルゴが知りたいです
もちろんif文などでも実現できますが、何かいい関数がないかと思いまして
無知なところすみませんがよろしくお願いします
0701軟式PHP
2007/03/13(火) 15:20:46ID:???<?php
$nums = array(2000,1000,3000,5000,100,7000);
sort($nums);
print $nums[0];
?>
0703虚弱PHP
2007/03/13(火) 15:30:04ID:???ありえない設計だね。
設計変えずに素早くなんとかするとしたら、
可変クラス名でも使ってやるしかないんじゃないかな。
・クラス名はテンプレート毎。
・テンプレートクラスのファイル先頭に$TemplateClassName = <テンプレートクラス名>
$A = new $TemplateClassName();
0704nobodyさん
2007/03/13(火) 15:34:44ID:???だからさぁ、テンプレートの仕組みはこんな感じ↓にすれば簡単なのに。
なぜ皆わざわざテンプレートエンジンとか難しいことやろうとするの?
●print.phpの中身
$hoge = "これを表示するべ";
require_once(template.php);
-----------------------
●template.phpの中身
echo <<< EOM
<html><body>
↓ここの表示は自由自在だぜ!<br>
{$hoge}
</body></html>
EOM;
0706軟式PHP
2007/03/13(火) 15:42:48ID:???いや明らかにテンプレートエンジンのほうが簡単。
というかそれはテンプレートとは言えるレベルじゃないと思うが。
Smartyのforeachelse、cycleなどを使い始めると離れづらいと思うが。
Smartyの例
●print.phpの中身
$tpl = new mySmarty(); //Smartyを継承したクラス
$tpl->assign("hoge","これを表示するべ");
$tpl->display("template.php");
●template.php
<html>
<body>
↓ここの表示は自由自在だぜ!<br>
{$hoge}
</body></html>
0708nobodyさん
2007/03/13(火) 15:54:58ID:Y+fr5f3l$strは何を指すのですか?
憶測ですが、new TemplateをLoadTemplateのような関数と同じ意味だと思っていませんか?
多分そのやり方ではクラスを使う意味がないです。
>>703
ありがとうございます。
PHPは可変クラスなんてのが使えたんですね。
そういった機構が無いか何度も探してみたのですが、見つけられていませんでした。
まだ試してみてはいませんが、勉強になります。
なお、先の件につきまして、一応自力で解決できました。
>>703の手法に似ていますが、可変〜を使わないものです。
print.phpのテンプレート出力関数内で、空の$template_objを用意し
テンプレートスクリプトにて、global $template_objによりアクセス可能にした
$template_objへnewテンプレートしオブジェクトインスタンスを格納するようにしました。
コンストラクタの引数も同様に受け渡しをしました。
ちょっと再利用性が落ちるやり方でまた怒られそうですね。
とにかく、皆様どうもありがとうございました。
と書いている間にまたレスがついてますね。
>>703以降落ち着いたらじっくり読ませていただきます。
クラスの使い方がなってないと散々怒られてしまいましたので
よろしければ、後学のためどのような設計にすべきだったのかアドバイス頂けると幸いです。
ではでは、また死んできます。
0709nobodyさん
2007/03/13(火) 16:31:20ID:???>ループ使ったり、条件分岐つかったり
それはロジック側でやっといて、最終的に出力したい状態に整形してから
テンプレートに変数として渡せば済む話では??
>>706
その手法と>>704の手法と比べた場合、どんなメリットがあるのかサッパリ分からないっす。
っていうか結果的に同じことを単に複雑にしてるだけ、って気が・・・。
0710nobodyさん
2007/03/13(火) 16:43:09ID:???項目数の可変なテーブルを出力したいときはどうする。
$table = "<table〜</table>";
とかやってからテンプレに渡すの?
0711nobodyさん
2007/03/13(火) 16:52:56ID:???0712nobodyさん
2007/03/13(火) 16:57:13ID:???1000とあったら1,000になるようなやつです
0713nobodyさん
2007/03/13(火) 16:58:53ID:???自己解決しました
0714軟式PHP
2007/03/13(火) 16:59:36ID:???簡単なやつだからね。修飾子とか使えるし実際見やすいよ。
同じ処理を行った場合の一例
・Smarty
{$hoge | escape | replace:"これ":"それ" }
・ロジック
$hoge = str_replace( "これ", "それ" ,htmlspecialchars( $hoge ) );
>>711
number_format()
0716nobodyさん
2007/03/13(火) 19:22:17ID:???君はもうだめかもわからん
class Template {
function __construct($_str) {
/* 引数の値に応じてテンプレートを読み込む */
}
}
こう書いてもわからんというのかね
クラスに引数つけた場合はデフォルトコンストラクタではなく定義されたコンストラクタが呼び出される
クラスの概念とか判らないのならC++かJavaからやったほうがいいよ
0717nobodyさん
2007/03/13(火) 19:40:10ID:???UTF-8の"T"(E78484)を mb_convert_encoding を使って
EUC-JPに変換すると化けてしまいます
これは mb_convert_encoding のバグでしょうか?
また対応策等ありましたらお願いします
0718nobodyさん
2007/03/13(火) 19:44:17ID:???こんな感じで検索文字を文字コード指定で指定して変換するときは、
str_replace でも大丈夫でしょうかね?
str_replace だとパラメータに配列が使えて便利なので
0719nobodyさん
2007/03/13(火) 19:46:12ID:???猫手をindex.phpに使用していたのですが、間違えて消してしまい、
どういうタグを描いていたかも忘れてしまい・・・
0720nobodyさん
2007/03/13(火) 20:05:58ID:???<include>another.php</include>
こんな感じか
0721nobodyさん
2007/03/13(火) 20:08:01ID:???ぬるぽ(include.php);
?>
0722nobodyさん
2007/03/13(火) 20:14:01ID:???include("index.php");
require("index.php");
require_once("index.php");
上にいくほど高速
0723nobodyさん
2007/03/13(火) 20:18:16ID:???htmlspecialcharsだけでは不十分でしょうか?おすすめの処理あれば教えてください
0725nobodyさん
2007/03/13(火) 21:23:04ID:6kJO88Vk1. <input type='text' name='hoge' value='<?php print(htmlspecialchars($_GET['hoge'])); ?>'>
2. <script type="text/javascript"><?php print(htmlspecialchars($_GET['foo'])); ?></script>
この二つがなぜ危険になる可能性があるのかを説明できれば大丈夫だと思う。
0727nobodyさん
2007/03/13(火) 21:48:59ID:FbvNPOWY毎日 10 時に メールを 1万通送信するプログラム を作るとサーバーに相当な負荷がかかってしまうと
思います。
この場合どういう風に作ればサーバーに負荷をできるだけかけずにプログラムを作れるでしょうか。
というより、どうすればいいんでしょうか。
一般的なメルマガ発行システムなどはどうやって処理しているのか教えてください。
よろしくお願いします。
0728nobodyさん
2007/03/13(火) 21:56:24ID:???メールを送信する処理をPHPでやっているシステムは見たことない。
0729nobodyさん
2007/03/13(火) 22:01:49ID:neUD+ow6*/1 * * * * メール送信処理
1分おきにメール送信するとサーバーに負荷かからないよ
0730nobodyさん
2007/03/13(火) 22:08:49ID:???0731nobodyさん
2007/03/13(火) 22:14:16ID:???1分おきに10000通のメールを送るとすると:
60(秒) * 10000(通) = 600000(秒)
時間になおすと:
600000 / (60 * 60) = 166.666666667
すなわち、全てのメールを送信するのに約7日かかることになる。
そんなもの使いものにならんよ。
0734nobodyさん
2007/03/13(火) 22:30:27ID:???つまり20分で10000通メール送信ってことだよな
0735nobodyさん
2007/03/13(火) 22:32:04ID:???さらに時間はかかるがw
0737nobodyさん
2007/03/13(火) 22:36:05ID:???0739軟式PHP
2007/03/13(火) 22:49:36ID:???3万人まで送信したことあるけど、今のところ問題なし。
もし途中で何らかの原因があって止まってもログから再送信させる。
0741nobodyさん
2007/03/13(火) 23:44:54ID:jbwAF33vphpmyadmin内にutf-8で格納してあります。
ブラウザーに表示するときもutf-8統一してあるのですが
文字化けしてしまいます。
<p>php</p>部分 数字は表示されるのですが
漢字 ひらがなの部分が化けしてしまいます
文字化け対策を調べてみたのですが、なかなか直らなくて
PHP 5.2.1
phpMyAdmin 2.9.2
Apache 2.2.4
MySQL 5.0.33
(xampp)以上です よろしくお願い致します
0742nobodyさん
2007/03/13(火) 23:47:33ID:???class Hoge {
function set($key,$value) {
$this->$key = $value;
}
}
$hoge->set('name', 'ほげほげちゃん');
と言う風に、varで定義していない変数を作るのってやめた方が良いですか?
PHP5なら__set、__get使ってひとつの配列に入れておくことも出来るんですが
PHP4なのでどうしようかと思いまして・・・。
むしろ、もうそろそろPHP4の事は考えない方がいいですか?
0743nobodyさん
2007/03/13(火) 23:49:28ID:???どんな風に文字化けするのか
>ブラウザーに表示するときもutf-8統一してあるのですが
どこをどういじってutf-8にしたの?
0745nobodyさん
2007/03/14(水) 00:15:32ID:lS0gqu9t<META http-equiv="Cont
ent-Type" content="text/html; charset=utf-8">
と エディエターもutf-8セットしました CSVファイルも
utf-8に変更しました
mysql内はいじっていません
[mysqld]
default-character-set = utf8
[mysqldump]
default-character-set = utf8
[mysql]
default-character-set = utf8
等
0747709
2007/03/14(水) 01:45:21ID:???>>714 なるほど、慣れるとSmarty記法のほうが可読性が高いんですかね。
>>715 そうなんですよ、実際、ロジックに可変テーブルなどのHTMLが入り込んでて、
可読性が落ちるからどうやって解決したものかな〜〜と常々思っとりました。
にも関わらず、Smartyとか導入するのが面倒なのでやってませんorz
0748nobodyさん
2007/03/14(水) 02:39:55ID:???function set($k, $v){
$this->storage[$k] = $v;
}
だとどういう不都合があるの?
例外処理の恩恵受けられるならPHP4切る価値はあると思う。
0749nobodyさん
2007/03/14(水) 03:41:39ID:BjDS8gcH//ファイルはSJIS
mb_internal_encoding("SJIS");
mb_http_output("UTF-8");
ob_start("mb_output_handler");
はおkなんだけど、
//ファイルはUTF-8
mb_internal_encoding("UTF-8");
mb_http_output("SJIS");
ob_start("mb_output_handler");
は化けませんか?
(iconv_set_encodingでも同じ)
0750nobodyさん
2007/03/14(水) 05:17:14ID:???女子社員はかあいかったなww
0752nobodyさん
2007/03/14(水) 05:28:22ID:???0753nobodyさん
2007/03/14(水) 07:59:05ID:ouHfB1AQ何故か書き込めなかった
746PHP.iniは変えてません
749やってみます
会社でやってみます
0755nobodyさん
2007/03/14(水) 10:23:26ID:rWwTvtgK予想されるものって、テーブルをユーザー毎に個別を分けたほうがいいんですかね??
分かりやすい例で言えば、たとえばまぐまぐみたいなシステムの場合に、
マガジンごとに配送ログを取るとします。そしたらたとえば読者が10万人いるマガジンの場合、
一回発行するごとに配送ログが10万行増えますよね。そういうマガジンがいくつもあれば、
配送ログを記録するテーブルはあっという間に膨れ上がります。
こんなとき、「配送ログテーブル」としてまとめて一つ用意するよりも、
各マガジンごとにログ用テーブルを個別に用意したほうがいいんでしょうか?
なんか分かりにくい質問だったかもしれませんが、
他にもいろんな場面で似たような悩みがあります。テーブルをどこまで分割するか、で。
0756nobodyさん
2007/03/14(水) 10:24:25ID:???0757nobodyさん
2007/03/14(水) 10:32:57ID:???それともインデックスを知らずにSELECTが遅くなることを懸念してるとか?
んなワケないか。
0758nobodyさん
2007/03/14(水) 10:51:15ID:???0759755
2007/03/14(水) 10:53:51ID:rWwTvtgK>>757 膨張というか、管理の手間(?)なども考えてのことです。
>>758 単なるログ保存ではなく、ユーザー(>>755の例で言えばマガジン発行者)が
過去ログを閲覧できるようにしておきたいのです・・・
0760nobodyさん
2007/03/14(水) 11:16:31ID:???1件ずつ見ることはないだろう
必要な情報だけを集計して、集計元のデータは別途保存して
データベースから消せばいいんじゃないのか
0761nobodyさん
2007/03/14(水) 13:22:36ID:KzeU5M0F16進数から文字列に変換するJavaScriptの関数があるのですが、
それをphpに変換したいのです。
// JavaScript
function hexToString (h) {
var r = "";
for (var i= (h.substr(0, 2)=="0x")?2:0; i<h.length; i+=2) {r += String.fromCharCode (parseInt (h.substr (i, 2), 16));}
return r;
}
頑張って以下のようにしてみたのですが、JavaScriptと返り値が異なってしまいます。
恐らく JavaScript の parseInt に対応しているつもりの sprintf の使い方が誤っているのだと思いますが、
どう直していいのかわかりません。
// PHP
function hexToString ($h) {
$r = "";
for ($i = (substr($h, 0, 2) == "0x")?2:0; $i < strlen($h); $i += 2)
{
$r .= chr(sprintf("%d", substr($h, $i, 2)));
}
return $r;
}
よろしくお願いします。
0762nobodyさん
2007/03/14(水) 13:23:42ID:KzeU5M0F// JavaScript
function stringToHex (s) {
var r = "0x";
var hexes = new Array ("0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f");
for (var i=0; i<s.length; i++) {r += hexes [s.charCodeAt(i) >> 4] + hexes [s.charCodeAt(i) & 0xf];}
return r;
}
というJavaScriptの関数よって16進数に変換された文字列を、元の文字列に戻すための関数です。
0763nobodyさん
2007/03/14(水) 13:53:00ID:???$r .= chr(sprintf("%d", substr($h, $i, 2)));
じゃなくて
$r .= pack('H2', substr($h, $i, 2));
とか。
もしくは
function hexToString ($h) {
return pack('H*', substr($h, (substr($h, 0, 2) == "0x") ? 2 : 0));
}
とか。
0764761
2007/03/14(水) 14:09:21ID:???うおお〜期待通りの動作になりました。ありがとうございます。
しかしpackって奥が深いというか難しいというかクラクラしてきました。
勉強します。
0766nobodyさん
2007/03/14(水) 16:38:46ID:???ユーザがいつどのマガジンに入退会したかを記録しておけば、配送ごとにすべてのユーザに配送ログを残す必要なくなると思うが。
配送エラーがあると配送ログがつかない というのであれば逆にエラーが起きたときだけ特別にエラーログとればよいし。
0767nobodyさん
2007/03/14(水) 17:28:36ID:???つーか何を聞きたいのかよく分からない。
もう一回まとめてもらえる?
1つのテーブルにレコードが10万件あるデータベースで
ログ閲覧や管理にどういう問題があって、どうしたいと考えているの?
0768nobodyさん
2007/03/14(水) 17:38:47ID:???インデックスってどうやって張るの?
0769nobodyさん
2007/03/14(水) 17:41:55ID:???0770nobodyさん
2007/03/14(水) 18:50:28ID:???続きはmysqlかpgsqlスレへどうぞ
0771nobodyさん
2007/03/14(水) 19:26:45ID:ouHfB1AQ0772nobodyさん
2007/03/14(水) 19:30:52ID:88VqriPkcall_user_funcを使って任意のクラスのメソッドを呼ぶ事が出来ますが、
同様に任意のクラスのメンバを取得するにはどうすればいいでしょうか?
0773nobodyさん
2007/03/14(水) 19:31:14ID:???0775659
2007/03/14(水) 19:51:48ID:hmkr7h9D申しわけありません。したいことと、得られる結果が異なります。
<?php
$xmlstr = <<<XML
<cat>
<name>mike</name>
<name>tama</name>
<name>buchi</name>
</cat>
XML;
$xmlsrc = new SimpleXMLElement($xmlstr);
なんかする(これがわからん)
echo($xmlsrc->asXML());
?>
で、
<cat>
<name>mike</name>
<name>tama</name>
</cat>
って表示されるようにしたいです。
よろしくおねがいします。
0777nobodyさん
2007/03/14(水) 20:56:52ID:???$xmlsrc … 入力
$xmldst … 出力
なのでecho($xmldst->asXML());すると
<?xml version="1.0"?>
<cat><name>mike</name><name>tama</name></cat>
と出る
0779775
2007/03/14(水) 21:32:40ID:hmkr7h9D説明が下手で申しわけありません。
プログラムは、
データベースからXMLを読み込む。 -> XMLをSimpleXMLオブジェクトにする。
-> 入力値をXMLに入れる。 -> いろいろ処理をする。 -> 結果をXMLに入れ、データベースに書き出す。
という処理を繰り返し行っています。
入力値の要素数が変化するのですが、
要素数が増えるときは問題がないのですが、減ったときに余分な要素が残ってしまいます。
これをオブジェクトの名前の変更なしで消し去りたいんです。
XMLはだいたいこんな感じです。
<pet_shop>
<open_date>
<year></year><month></month><date></date>
</open_date>
<cat>
<name>mike</name><name>tama</name><name>buchi</name>
</cat>
</pet_shop>
0780nobodyさん
2007/03/14(水) 23:08:24ID:???0782nobodyさん
2007/03/14(水) 23:30:30ID:qM9Gf/TM文字列"FF"から0xFFってしたいんですがどうしたらいいんでしょう?
くだらなくてすいませんがよろしくお願いします。
0783nobodyさん
2007/03/14(水) 23:31:44ID:???$string = '0x' . $string;
0784782
2007/03/14(水) 23:46:09ID:qM9Gf/TMそれだと文字列の"0xFF"になりますよね?
16進数としての0xFFにしたいんです。
0786782
2007/03/15(木) 00:42:36ID:???駄目でした。
でも色々試したら解決しました。
"0xFF" + 0x00
としたらいけました。
もうちょっとスマートなやり方はないのかな。。。
どうもありがとうございました。
0787nobodyさん
2007/03/15(木) 00:43:25ID:???0790nobodyさん
2007/03/15(木) 00:58:02ID:???同じ関数を2つも並べて書くなんてアホっぽいじゃないですか
一発で配列にして返したりするのが欲しいんです
unpack("C*", $str)みたいな
↑
はいろいろイジって頭おかしくなりかけたのでもう試しません
0791nobodyさん
2007/03/15(木) 00:59:20ID:???1秒150通でも十分に速いと思う。。。
ちなみに俺がXREAの有料鯖でPHPで組んだメール配信システムだと、
だいたい1秒で10〜20通くらいしか送れない。(朝の時間帯だから鯖は混んでないのに)
メールの宛先ごとに本文の内容が違うし、名前の差込処理などもやってるので、
単純にメールの送信処理だけじゃないからこんなに遅いのかな?
それとも、それを考慮したとしても遅すぎるだろうか・・・? みんな、どう思います?
ちなみに、メール送信処理部分(mb_send_mail)を除いたコードで処理時間を計測すると、
メール100通分の処理でも0.00…数秒しかかかってない。
すなわち、mb_send_mail()処理で大幅に時間を食ってるようだ。
0792nobodyさん
2007/03/15(木) 01:15:24ID:???mb_send_mailで時間がかかってるってのはどこまでの範囲なんだ?
メールを送信する処理自体はSMTP鯖だろうから一概にPHPが駄目と
はいえないと思う。
PHPはSMTP鯖のキューにメールを置くところまでしかやらないはずだから
・SMTP鯖のキューに置くまでの時間=PHPのメール処理
・キューからメールを吐き出す時間=SMTPのメール処理
となると思う。
0793nobodyさん
2007/03/15(木) 01:53:18ID:???$s = "A09F";
$a = array($s{0}.$s{1}, $s{2}.$s{3});
var_dump($a);
結果:
array(2) {
[0]=>
string(2) "A0"
[1]=>
string(2) "9F"
}
0794nobodyさん
2007/03/15(木) 02:00:47ID:???$s = "A09F";
$b = sscanf($s, "%2s%2s");
var_dump($b);
結果:
array(2) {
[0]=>
string(2) "A0"
[1]=>
string(2) "9F"
}
0795nobodyさん
2007/03/15(木) 02:03:26ID:???ちなみに数値で欲しければ
$s = "A09F";
$c = sscanf($s, "%2x%2x");
var_dump($c);
結果:
array(2) {
[0]=>
int(160)
[1]=>
int(159)
}
0796nobodyさん
2007/03/15(木) 02:41:46ID:???>・SMTP鯖のキューに置くまでの時間=PHPのメール処理
そうか??
俺の計測した感じだと、mb_send_mailはMTAからの返り値(成功かエラーか)を
受け取って初めて処理が完結してるようだけど?
つまり、
・SMTP鯖のキューに置いて、処理結果を受け取るまでの時間=PHPのメール処理(すなわちMTAの処理時間も包含)
0797軟式PHP
2007/03/15(木) 02:43:00ID:???自分で関数作ってしまうという手も。
<?php
$text = "9AD3EBA09F";
print "ORG:".$text."<BR>";
print "C0:".cutbin($text,0)."<BR>";
print "C1:".cutbin($text,1)."<BR>";
print "C2:".cutbin($text,2)."<BR>";
print "C3:".cutbin($text,3)."<BR>";
print "C4:".cutbin($text,4)."<BR>";
function cutbin( $text, $len )
{
$wrk = sscanf($text,join("",array_fill(0,($len+1),"%2x")));
return sprintf("%X",$wrk[$len]);
}
--結果--
ORG:9AD3EBA09F
C0:9A
C1:D3
C2:EB
C3:A0
C4:9F
?>
0798nobodyさん
2007/03/15(木) 02:47:28ID:???ちなみに、仮にmb_send_mailの処理がMTAにキューを置くだけで完了するんだとしても、
とにかくmb_send_mail()の有無でスクリプト全体の処理時間が何十倍も違うので、
やはり>>791のような現象は、この関数の処理速度に起因しているのは間違いない。
>mb_send_mailで時間がかかってるってのはどこまでの範囲なんだ?
範囲もクソもないよ。だって、mb_send_mail()の行がある場合と、その行だけコメントアウトした場合とで
処理時間の差を計測したので、ズバリmb_send_mail()自体の処理時間が分かるわけだ。
0799792
2007/03/15(木) 03:29:33ID:mSGG4ywR>>798
OH!なるほど。
ちなみにmb_send_mailの処理は内部的にどうなってるんだろうな?
もしSMTP鯖に置く処理がメインならやっぱり処理速度はSMTP鯖
のスペックなり設定でかなり変わってきそうだと思うんだけどどうだろう?
0800nobodyさん
2007/03/15(木) 03:32:39ID:???PHP側の処理時間なんてほんの一瞬。
99%はsendmailのプロセス終了待ち時間。
PHP側ではどうしようもない。
SMTPのパフォーマンスをチューニング出来ない環境ならあきらめろ。
0801nobodyさん
2007/03/15(木) 03:56:59ID:???0802nobodyさん
2007/03/15(木) 05:06:10ID:???大改造だと思うけどどうなんだろうw
0803nobodyさん
2007/03/15(木) 05:34:19ID:0Uy9YRyX画像つきで注文内容が一目でわかるようにしたいので 添付ファイルつきか
HTMLメールで送信したいと思っています
添付ファイルのほうがいいかな? と言う気がするのですが 添付ファイル
で送信するとして phpからhtmlデータをファイル化することなくメール送信
することは出来るのでしょうか?
(メール内に個人情報が入るのでファイルとして残したくないのです)
アホな質問ですいませんが ご回答いただけるとうれしいです
0804nobodyさん
2007/03/15(木) 05:43:01ID:???またforとforeachはどちらが高速ですか?
0808nobodyさん
2007/03/15(木) 08:56:58ID:???お前、何をワケのわからんこと言ってるんだ・・・
メールとして送る時点で既にファイル化されてるわけだが。
保存されては困る個人情報なら、そもそも書くな。
0809nobodyさん
2007/03/15(木) 09:31:44ID:7XZoL+s0もの凄く初歩的な質問だと思いますが教えて下さい。
変数に代入する値はどんなものであっても、
phpスクリプトの内容に影響を及ぼさないのでしょうか?
出力時、SQL文の実行時とは別で。
例えば、セミコロンを入力されると、内部でステートメントを区切られちゃうとか。
if文とかを書かれるとそれが実行されちゃうとか。
これは流石にないと思いますが…
0810nobodyさん
2007/03/15(木) 09:36:48ID:???0811nobodyさん
2007/03/15(木) 09:38:57ID:???アホかお前。
そんな間抜けな言語あるか。
っていうかお前みたいな奴は絶対にeval関数を使っちゃダメだからな。
0812808
2007/03/15(木) 10:00:42ID:???ありがとうございます。
安心しました。
>>811
ありがとうございます。
そうですよね、質問しててこんなんだったら成り立たないなとか思いました。
なんかエスケープ処理とかそういうのを検索してたらワケがわからなくなりまして。
絶対にeval関数使わない様にします。
0815803
2007/03/15(木) 11:03:47ID:???あとphpマニュアルを読まずに質問したのは浅はかだったと反省しております
>>808
「ファイル化されていないものは添付ファイルとして送信できない」という
ことでしょうか?
今調べると PEARのMail_Mimeで ファイル化されていないものを添付ファイル
として送ることが出来そうだと言うことがわかったのですが これを利用した
場合も 一旦サーバ内のどこかにファイルが作成されると解釈すべきなので
しょうか?
それとも mail関数で送信した内容は プレーンテキストを含め 全て一旦
サーバ内に保存されるという意味でしょうか?
表現力も読解力もなくて本当にすいません…
>>813
不快な思いをさせてしまい 大変失礼いたしました
0816nobodyさん
2007/03/15(木) 11:43:23ID:???元々画像ファイルがあればそのままバイナリで
読み込んで添付する事はできるしテキストもどこかに保存されるわけじゃない
メールとして送られるキュー状態を「ファイル化」というならともかく
何を持って「ファイル化」と言っているのか知らないが
問題はそんなことより注文したら画像付きのHTMLメールが
送られてくるなんてありがた迷惑も
甚だしいというところなんじゃないだろうか
商品を見てよし買おうというステップを踏んで買ってるのに
その画像が送られてきてもね
0817nobodyさん
2007/03/15(木) 11:56:22ID:9KVNC1ESこの文って、excelのif関数の
=if(a1="fuga",true,false)
と同じなんですか?
ふと思いまして、突然質問してしまいましたが、よろしくお願いします。
0818nobodyさん
2007/03/15(木) 12:06:27ID:bQrJdpxgありますでしょうか?
0819803
2007/03/15(木) 12:10:02ID:???ご丁寧な説明ありがとうございます
そして説明がいまだに不十分であったことをお詫びいたします
添付したいファイルはHTMLです
画像を添付するのではなく HTMLを添付してそこに画像へのリンクを
挿入することで確認してもらう予定です
(当然ながら事前に確認してもらうフォームは設けております)
HTMLのデータを変数に設定してメール送信して その変数の内容がサーバに
保存されることなく HTMLの添付ファイルとして送信することが可能かどう
か知りたかったのです
(添付ファイルよりHTMLメールのほうがいいならそちらを検討しますが)
「買ったあとに画像を見せられても…」についてはおっしゃる通りかもしれ
ません
ただ 当方ではカスタマイズ商品を扱っており オプションが細かいことから
商品を受けたあとに「こんな感じで注文した覚えはない」と言うクレームが
発生しがちなのです
無駄なクレームを減らすために「あなたはこういった注文をしましたよ」と
いう わかりやすい確認メールを画像付きで送りたいと思っています
0820nobodyさん
2007/03/15(木) 12:19:56ID:V8NaW7u1xmlファイルの読み取り権限をチェックしろ
0822nobodyさん
2007/03/15(木) 12:37:34ID:bQrJdpxgRSSのxmlでブラウザでは開けるんだけどね
PHP側の問題ではないの?
0823nobodyさん
2007/03/15(木) 12:50:26ID:wd/M4m1q'a' => 'あああ',
'b' => 'いいい',
'c' => 'ううう',
'd' => 'えええ'
);
print $array['a'];
print $array['b'];
print $array['c'];
print $array['d'];
としたときに、$array['a']だけ出力されません。
$array = array(
'b' => 'いいい',
'a' => 'あああ',
'c' => 'ううう',
'd' => 'えええ'
);
としたら、$array['b']だけ出力されません。つまり、$array[0]が出力されないのです。
print_r($array);
とすると、出力されない値もちゃんと存在することが確認できました。この原因はなんなのでしょうか?ご存知の方、良ければご教示ください。
0825nobodyさん
2007/03/15(木) 12:58:11ID:wd/M4m1qいえ、途中経過で$arrayはいじってません。
関数の引数として渡しているだけです。
0827nobodyさん
2007/03/15(木) 13:24:21ID:???マジでお前にはプログラミングは向いてないから3秒以内に辞めたほうがいいと思う。
センスも無ければ、知識も無い。
自らメールなどの仕様を調べる努力もしない。
ダメだこりゃ。
0828nobodyさん
2007/03/15(木) 13:25:31ID:???0829nobodyさん
2007/03/15(木) 13:59:33ID:???0830虚弱PHP
2007/03/15(木) 15:03:54ID:???>>823
多分、単なる記述ミス。
記述ミスの可能性がないなら最小再現コードを貼り付けるべし。
>>823そのままでも再現するの?
0831nobodyさん
2007/03/15(木) 16:54:10ID:???function ClassMethod() {
print 'class:' . get_class($this);
}
}
class Hoge {
function __constuct() {
ClsMtd::ClassMethod();
}
}
$hoge = new Hoge();
の出力が
class: Hoge
となるんだけども、$thisのスコープはどうなってんのる。
0832nobodyさん
2007/03/15(木) 16:56:50ID:zc90m/WcUTF-8→EUC-JPに変更しても駄目でした
色々なサイトを参考にphp.iniを変えて
みたのですが文字が?なってしまいます
どなたかご教授を・・・
0834軟式PHP
2007/03/15(木) 17:30:11ID:???「 phpmyadmin skip-character-set-client-handshake 」
をキーワードにぐぐってもだめかい?
自鯖なら俺はnavicatとか使うタイプなのであんま詳しくわからんけど('A')
あと海外レン鯖でphpmyadmin使った時、マルチバイトが全部????になったけど
データベースや各テーブルなどの全ての照会順序をeucjpms_japanese_ciにして
データを入れなおしたら普通に表示されるようになったよ。
0835nobodyさん
2007/03/15(木) 17:33:55ID:+HEWAk65急用が出来て携帯からです
Win XP 98SE でもダメ
0836nobodyさん
2007/03/15(木) 17:34:56ID:???データベースに入っている文字の時点で
化けているのか?
それとも表示だけば化けているのかによって
対応も変わる。
データベースに入れたデータも化けているのなら
phpmyadmin skip-character-set-client-handshake
で解決するはず。
一度データベースをきれいに消して作り直して
試してみれば?
0838nobodyさん
2007/03/15(木) 17:41:04ID:???__constuctとかClsMtdとかテキトーな事ばっか書いてんじゃねぇ。
あと本題はマニュアル嫁。
http://jp.php.net/manual/ja/language.oop5.basic.php
0839nobodyさん
2007/03/15(木) 17:41:51ID:+HEWAk65euc‐jpm…にはしたのですが…
スイマセン ハンドではググてませんでしたm(__)m
0840nobodyさん
2007/03/15(木) 17:42:50ID:???注意: 擬似変数 $this は、メソッドが静的にコールされた場合に
常に定義されるわけではありません。
しかし、はっきりしていることは: もしメソッドが別のオブジェクトから
静的にコールされている場合は $this が定義されるということです。
この場合、$this は呼び出し元のオブジェクトとなります。
0841nobodyさん
2007/03/15(木) 17:45:49ID:+HEWAk65PHPMYADMIN内では?にはならず通常に表示されます
XP & 98SE
0842nobodyさん
2007/03/15(木) 17:50:05ID:???それって、DBにはちゃんと格納されているってことなのか?
なら、表示させようとしているページの方が問題じゃないのか
というか、phpmyadmin 内ではなく、sql を自分で発行して
テキストファイルに出力したりして確認したほうがいいぞ
0843nobodyさん
2007/03/15(木) 18:01:34ID:???class aaa{
public static function rep($str) {
$s = preg_replace_callback("/([0-9a-z]+)/", self::callback(), $str);
return $s;
}
public static function callback() {
return "####";
}
}
echo aaa::rep("あいうabc123えお");
結果
Warning: preg_replace_callback() [function.preg-replace-callback]: Requires argument 2,
'####', to be a valid callback
0844軟式PHP
2007/03/15(木) 18:04:44ID:???おしい。
$s = preg_replace_callback("/([0-9a-z]+)/", array("aaa","callback"), $str);
0845843
2007/03/15(木) 18:12:48ID:???おお、できましたありがとう
関数名の指定がおかしいんだとばかり思っていじくりまわしてた
まさか配列で指定する方法があるとは
0846虚弱PHP
2007/03/15(木) 18:27:54ID:???callback という擬似的な型がある。
http://www.php.net/manual/ja/language.pseudo-types.php
あ、そうかPHPって基本的に型を意識しない言語だから、
普通の人はマニュアルに書いてある型も無視しちゃうのか。
0847nobodyさん
2007/03/15(木) 20:24:22ID:/iEh48++削除機能がついたゲストブックを作っています
投稿する項目は name と comment があり、
$name|$commentとしてlog.txtの同じ行に書き込まれます。
次に投稿された内容は、前のコメント内容の次の行に書き込まれます。
admin.php という管理画面で、
log.txtから投稿された書き込み一覧を取得し、各行をforeachでループ処理させ、
その中から削除したい行を選択しつつ、del.php へ移動し、
選択された行を削除したいのですが、
del.php からの特定の行を削除する方法がわかりません
解決策を教えていただきたいです。
-----------
続きます
0848847
2007/03/15(木) 20:24:54ID:/iEh48++<?php
$filename = 'log.txt';
$line_list = file($filename);
foreach ($line_list as $line_number => $line) {
//各行をそれぞれ | で $name と $comment に分割
list($name, $comment) = explode("|", $line);
echo "名前: ".$name."<br>コメント: ".$comment."<br>";
//「削除する」が選択された行が第何行目なのかを把握し、del.phpに移動
echo "<a href=\"del.php?linenumber=$linenumber&mode=delete\">削除する</a><hr>";
}
?>
---------------------------------------------------
del.php
<?php
$filename = 'log.txt';
$line_list = file($filename);
$line_number = $_GET['line_number'];
//admin.phpで選択された行を削除したいのですが、ここからがわかりません どうかよろしくお願いします。
0849847
2007/03/15(木) 20:26:19ID:/iEh48++インデントがありませんでした
見難くなってしまいました
すいません
0850虚弱PHP
2007/03/15(木) 20:32:37ID:???全部読み込んで、削除する行を消したら、全部書き込み。
DB使った方が楽だと思うよ。
SQLiteなら設定いらないしファイルベースだから面倒じゃないでしょ。
0851847
2007/03/15(木) 20:51:44ID:/iEh48++アドバイスありがとうございます
全部読み込むというのはわかるのですが、
行の削除というやり方がわかりません
すいません
0853nobodyさん
2007/03/15(木) 21:30:05ID:???0854847
2007/03/15(木) 21:34:21ID:???ありがとうございます
なんか光明が見えてきた気がします
精進します
>>853
キモイというのはどういうことですか?
スマートじゃないってことですか?
データの管理の仕方として危ういってことでしょうか?
0855虚弱PHP
2007/03/15(木) 21:53:37ID:???確かに投稿したけど削除したのと、
投稿していないのは違った方がいい場合が多いよね。
結構定番なのは、「削除済み」フラグだけ立てといて、
実際の削除はいつかやるってのじゃないかな。
0856nobodyさん
2007/03/15(木) 23:53:59ID:???社員が更新してるの?
0857nobodyさん
2007/03/16(金) 00:23:25ID:Isw9h1zM0859nobodyさん
2007/03/16(金) 00:41:05ID:???001ディレクトリにはいろんなファイルが入っているとします。
このディレクトリのファイル一覧を取得したいと思いますがエラーで困ってます。
$dir = "./";
$file = scandir($dir);
↑このように相対パスで指定してやるとうまく動くのですが、
$dir = "http://example/a/001/";
$file = scandir($dir);
↑のように絶対パスで指定してやるとワーニングでエラーが返されます。
scandirは相対パスでしか指定できないのでしょうか?
他にやり方がございましたらご教授お願いいたします。
0860859
2007/03/16(金) 00:41:36ID:h6PC42v/0862nobodyさん
2007/03/16(金) 00:45:07ID:???0863nobodyさん
2007/03/16(金) 00:56:04ID:h6PC42v/相対パスであきらめます。
相談に乗って頂きましてありがとうございます。
0865nobodyさん
2007/03/16(金) 03:31:28ID:/0oeqwmMWarning: file(http://localhost/...) [function.file]: failed to open stream:
接続済みの呼び出し先が一定の時間を過ぎても正しく応答しなかったため、接続できませんでした。
または接続済みのホストが応答しなかったため、確立された接続は失敗しました。
Fatal error: Maximum execution time of 60 seconds exceeded
ってなってしまうんだけど、Vistaじゃ出来ないでしょうかね?
環境は、ホームプレミアムでXAMPP 1.60aを使用(Apache/2.2.4,PHP/5.2.1)
php.iniの設定が変わってるわけでもないし、PukiWikiなんかは動くし、
サーバが原因なのかPHPが原因なのかだけでも分かると良いんですが
0866nobodyさん
2007/03/16(金) 03:45:16ID:???0869nobodyさん
2007/03/16(金) 10:31:20ID:???なんせ情報が出回ってないんだから。
0870nobodyさん
2007/03/16(金) 11:16:32ID:???マクロメディアのソフトみたいに
入力支援や、カーソルのある関数に
プロパティウインドからパラメータを書き換えられるものってご存知ありませんか?
0871nobodyさん
2007/03/16(金) 11:20:32ID:ZEr5WJOq0872871
2007/03/16(金) 11:39:22ID:ZEr5WJOqPHPは奥が深いですね
また別の質問になってしまうのですが、
「Fri, 16 Mar 2007 09:49:43 +0900」
このような形式の文字列をtime()で取得した形にどうやって直せば良いのでしょうか?
0873871
2007/03/16(金) 11:41:29ID:ZEr5WJOq$date = "Fri, 16 Mar 2007 10:41:40 +0900";
echo time($date);
で取得することができました^^;
0874871
2007/03/16(金) 12:00:16ID:ZEr5WJOq0875nobodyさん
2007/03/16(金) 12:06:34ID:???phpファイルの一部をcgiで動作をさせるんですが
htaccessで次を記述しますが
<files ○○.php>
AddHandler application/x-httpd-phpcgi .php
</files>
このhtaccessはcgiで動かそうとしてるphpと同じフォルダにいれないと動作しないでしょうか?
例えば
一番上の階層abc(フォルダ)---abcd(フォルダ)2階層目
|
abc.php
|
abcd.php
このようなファイル構成になってるとしまして
htaccessをabcフォルダ上に置いて下の階層のabc.phpをcgiで動作させるために
<files ./abc.php>
AddHandler application/x-httpd-phpcgi .php
</files>
このようにして動作するのか教えてください。
0876nobodyさん
2007/03/16(金) 12:24:17ID:5GbGG00d>>873
自分で変換しないとだめだったはず〜
>>875
よくわからんが、<files ./abc.php>っておかしくない・・・
0879nobodyさん
2007/03/16(金) 13:18:56ID:???<Files ./abc.php>という指定だとカレントディレクトリのabc.phpにしか適用されないと思うんだが。
0880nobodyさん
2007/03/16(金) 14:37:01ID:y0HaZbOzphpinfoを見るとconfigureのところは
'--with-dom=shared,/usr' '--with-dom-xslt=/usr' '--with-dom-exslt=/usr'
と書いてあるのに、DOM XMLが有効になっていません。
この場合、何を確認すべきでしょうか?
PHPマニュアルには
「このPECL拡張モジュールはPHPにバンドルされていません。」とあるのに、
PECLの方の説明を見ると(http://pecl.php.net/package/domxml)
「NOTE: if you're running PHP 4.x, the domxml is already part of the distribution.」
と書いてあって、元から入ってるのか入ってないのかよくわかりません…。
0881865
2007/03/16(金) 15:08:03ID:IT8kjYuc返答有り難うです
いま外出先なんで、後で>>867-868辺りを見てみます
無理なら無理で全部動かなければ楽に諦めがつくのに
0882nobodyさん
2007/03/16(金) 15:16:14ID:???入ってる(エクステンション自体はついてくる)けど、リンクするようになってない(php.iniで設定されてない)んだよ。
とりあえずphp.iniにextension=〜を書けばいいだけ。
0883nobodyさん
2007/03/16(金) 16:23:55ID:y0HaZbOzヒントありがとございます!
今php.iniに
extension = domxml.so
extension = xslt.so
って書いてapache再起動してみたんですけど、
依然として有効にならない…。
他に確認しておくべき設定とかありますか?
0886nobodyさん
2007/03/16(金) 17:22:15ID:/N5iNfECmysql> GRANT ALL PRIVILEGES ON *.* TO guest@"%" IDENTIFIED BY 'pass';
を実行しguestユーザーを作成
PHPにて
<?mysql_connect('localhost', 'guest', 'pass');?>
接続OK
<?mysql_connect('123.456.789.123, 'guest', 'pass');?>
接続NG
なんだが、
別のサーバーからDBに入っている情報を取り出したいのだがどうしたらいいのですか?
0888nobodyさん
2007/03/16(金) 17:35:25ID:???0889nobodyさん
2007/03/16(金) 17:38:43ID:???という話であればここで回答できるとは思うけど。
0890nobodyさん
2007/03/16(金) 17:55:38ID:???grant したあとちゃんと
mysql> flush privileges;
で権限設定の再読み込みしてる?
0891nobodyさん
2007/03/16(金) 17:58:45ID:???あと今読み返して不思議だったのが
`guest`にgrantしたあとで`guest`を作成したの?
順番逆じゃね?
0892nobodyさん
2007/03/16(金) 18:21:16ID:???PHPで仕事をしたいと思ったのですが、PHPはまったくの未経験です。
未経験歓迎の会社は
「まったくの素人でも大丈夫!3ヶ月の研修で一人前に!」
なんてところが多くて、ありがたいのですが、そういうところは派遣で飛ばしてるところが多いので信用できません。
やはり最初から技術を身につけて少しでもまともなところに行くべきだと思っています。
そこで、一般的にこのくらいのレベルになれば雇ってもOKみたいな基準はあるのか教えてください。
0893nobodyさん
2007/03/16(金) 18:26:02ID:???0894nobodyさん
2007/03/16(金) 18:33:18ID:???∩___∩ /
| ノ ヽ /
/ > < |/ そんな餌パクッ
| //// ( _●_)/ミ
彡、 l⌒l ノ
/ __ \ \ヽ
. (___) \__)
. O| /
| /\ \
| / ) )
∪ ( \
\,,_)
0895nobodyさん
2007/03/16(金) 18:34:36ID:???訳のわからないところいかされた経験があって
当時は東京すんでたので東京希望したんですけど山梨に通勤させられたりとか
まぁ、それはひと月でやめたんですけど、もうああいうのは嫌だなあと思ったので・・・
0896nobodyさん
2007/03/16(金) 18:38:39ID:???それ断って派遣の登録やめて実家に帰ったんですけど、ろくな仕事ないのでお手上げ状態でして\(^_^)/
PHPなら趣味でカウンタと掲示板を勉強したことがあったのでこれで仕事できないかなと思って書き込みました
0897nobodyさん
2007/03/16(金) 18:52:26ID:???ttp://news4vip.livedoor.biz/archives/50936230.html
0900nobodyさん
2007/03/16(金) 19:46:32ID:???カウンタと掲示板作れますって面接で言うのか。まぁ判断するのは企業だが。
0901nobodyさん
2007/03/16(金) 19:48:53ID:???0902nobodyさん
2007/03/16(金) 19:56:30ID:???そんなの誰でも出来て当然だろ。
SNSってのはWebアプリに必須の(わりと枯れた)基本技術の
集合体なんだから。
0903nobodyさん
2007/03/16(金) 20:03:08ID:???就活の時提出したのは、ホテルの予約サイトと通信販売のサイトだったよ。
バイトならゆるいと思うからバイトからも潜り込むってのも良いんじゃないかな。
俺が学生の時バイトしてた所は簡単な掲示板で採用された。
0904865
2007/03/16(金) 20:06:21ID:/0oeqwmMファイアウォールは切っても関係ありませんでした(localhostでの取得不可
0905nobodyさん
2007/03/16(金) 20:24:16ID:???せっかくだから作ってやったよ。
http://jimaku.in/w/TjCXdlPQraI/N_Xj1b_hnVz
0907nobodyさん
2007/03/16(金) 20:33:01ID:???怪しいURLだからクッキー、JS、Javaきって画像読み込み禁止して、
万全の体勢でみたのに…普通に笑ったわ。
0909nobodyさん
2007/03/16(金) 21:22:03ID:9jNqxHVU<a>
<b>
ほげほげ<c>ふー</c>ばー
</b>
</a>
こんなXML文書があって、bのノードを得てget_content()すると、
"ほげほげふーばー"という文字列が得られるのですが、
ここで"ほげほげ<c>ふー</c>ばー"という文字列を得るにはどうすればいいのでしょうか。
0910nobodyさん
2007/03/16(金) 21:26:23ID:???0912nobodyさん
2007/03/16(金) 22:05:21ID:CwcSD/6vエラーを取得する方法を教えていただけないでしょうか?
0913nobodyさん
2007/03/16(金) 22:45:17ID:73y/KabV今対戦告知掲示板を作っているのですが
終了時間をtime()の形で記録したいのですが
日付時間⇒time()と同じ書き方
にするような関数はありますでしょうか?
0914nobodyさん
2007/03/16(金) 22:47:01ID:LVHbCv/B>それって、DBにはちゃんと格納されているってことなのか?
なら、表示させようとしているページの方が問題じゃないのか
<META http-equiv="Content-Type" content="text/html; charset=euc-jp">
<?php
// MySQL 接続
if (!($cn = mysql_connect("localhost", "root", "pas"))) {
die;
}
// MySQL DB 選択
if (!(mysql_select_db("eee"))) {
die;
}
// MySQL 問い合わせ
$sql = "select * from dddd";
if (!($rs = mysql_query($sql))) {
die;
}
// MySQL レコード参照
while ($item = mysql_fetch_array($rs)) {
print "${item['id']} ";
print "${item['aaa']} ";
print "${item['bbb']} ";
print "${item['ccc']}<BR>";
}
初心者なので、参考サイトから借りてきました
0915nobodyさん
2007/03/16(金) 23:27:25ID:???それで文字化けじゃなくて"?"になるのか
そんなことあり得るのか
上の方でも出ていたけど
skip-character-set-client-handshake を my.cnf に
追加するか
EUC-JP なら set names ujis のクエリを
mysql_connect した後に1回発行したら
ちゃんと表示されると思うけどな
0916nobodyさん
2007/03/16(金) 23:41:39ID:LVHbCv/Bもう一度がんばってみます。
0917nobodyさん
2007/03/17(土) 00:04:08ID:???うん、だからWeb関連の基本的なアプリなら大体作れます、ってのが第一関門かなと。
それ以下の人なんて取っても仕方ないし。
でもとりあえずそんだけできれば就職はできないこともない。
0918nobodyさん
2007/03/17(土) 00:27:18ID:???件名や本文に外部入力値を入れる場合、
エスケープが必要になりますよね?
何をエスケープすればいいんでしょうか。
, だけでいいんでしょうか?
0920nobodyさん
2007/03/17(土) 01:01:55ID:???PHPマニュアルで一番ページビューの多い関数って
なんだろうな?
今日仕事の休憩中にふと考え始めてもう気になって
仕方が無い!
なんか普通の関数(str_replaceとか)は態々PHPマニュアル
のおかしな日本語を読むよりも一般のサイトで調べるほうが
多そうだからやっぱりマイナーなモジュール(Curlとか?)の
方が多いのかな?
0921nobodyさん
2007/03/17(土) 01:03:22ID:???0922nobodyさん
2007/03/17(土) 01:05:14ID:???0924nobodyさん
2007/03/17(土) 01:08:57ID:???多いな
それでも、一番調べる回数が多いのは
preg_***系かな
0927nobodyさん
2007/03/17(土) 02:44:32ID:???ttp://ml.php.gr.jp/pipermail/php-users/2005-February/025182.html
によると「検知できない」らしい。
0928nobodyさん
2007/03/17(土) 02:49:48ID:Yu+qWlMp$str="おねがいします!aaaaaa";
$str = mb_ereg_replace("/([a-z]+)/", '<b>\\1</b>', $str);
これ、!と?があると化けませんか?
0931nobodyさん
2007/03/17(土) 10:01:23ID:5F59V2eBおぬぬめないかな?
PHPとCって正規表現同じだっけ?
0933928
2007/03/17(土) 12:12:51ID:???mb_internal_encoding('SJIS');
mb_regex_encoding('SJIS');
かましてあります
HTMLタグの<前に0x810x40-0x60あたりの2バイト文字があると化けるようです
とりあえず<の前に全角スペースを入れることで一時回避
それでも化けるけど、HTMLタグが機能しないという最悪の状態は免れられるようなので
0934nobodyさん
2007/03/17(土) 12:51:29ID:???高卒で21歳最年少ヤフー入社。
23歳でライブドアCTO。
25歳現在無職とか最強すぎる。
0935928
2007/03/17(土) 13:13:37ID:???ローカルでは
mb_internal_encoding('SJIS');
mb_regex_encoding('SJIS');
入れてあったのに、リモートでは入れてなかったorz
最悪だ
昨日夜中まで文字コード調べたりなんやかんややってたのにorzorzorz
0936909
2007/03/17(土) 14:21:54ID:3ZIBkJLf整形式になっていないですか。xmllintにかけても問題なかったんですが。
0937nobodyさん
2007/03/17(土) 15:16:56ID:???function sleep(){}
function work(){}
}
class CEO extends Human {
function work(){}
}
で、継承されたものではなく、CEOクラスそのものにworkやsleepが存在するか調べる方法ってありますか?
関数とクラス・オブジェクトの項目を読んで見たのですが分かりませんでした…。
0939nobodyさん
2007/03/17(土) 15:27:20ID:???0941nobodyさん
2007/03/17(土) 15:35:31ID:???の
#NAME?
ってどういうときに出るものですか?
0942nobodyさん
2007/03/17(土) 15:44:56ID:???perlやJAVAもできる人が多いのかな
0943nobodyさん
2007/03/17(土) 15:59:24ID:???Perl
Awk
C++
C
86ASM
Fortran
Pascal
COBOL
BASIC
辺りは仕事で使いました。
0944nobodyさん
2007/03/17(土) 16:04:04ID:???method_exists('CEO', 'sleep')がfalseになってほしいってこと?
そんなの無理。継承した時点でCEOクラスにもsleepメソッドは存在する。
0946nobodyさん
2007/03/17(土) 16:50:47ID:???それって本当はPHPも満足に”できてない”んじゃねーの
0948946
2007/03/17(土) 17:14:38ID:???本人か?
ここの住人は普通に多言語いける人ばかーりだと思うが
まあとりあえず憧れてる暇あったら、PHPできてるんなら1週間ほど勉強すれば
他のスクリプト系言語も少しは使えるようになるだろ。
0949nobodyさん
2007/03/17(土) 17:58:16ID:???0950nobodyさん
2007/03/17(土) 18:38:22ID:???0951nobodyさん
2007/03/17(土) 18:48:11ID:???たまたまグーグルから同名の会社のHPみつけたんですけど。
0952軟式PHP
2007/03/17(土) 19:53:53ID:???いくつか持ってるよ。ひとつはフリーウェアのやつで某スレのテンプレに入ってる。
ゲームしない人は全く訪れないであろうマイナースレやけど。
>たまたまグーグルから同名の会社のHPみつけたんですけど。
ちょwwなにそれwww
kwsk。同名の会社って('A';;
0953nobodyさん
2007/03/17(土) 20:01:52ID:???0955nobodyさん
2007/03/17(土) 20:40:33ID:???echo $C;}
というのがあるとして、
$C一覧をファイルに書き込みたいのですが、どうすればよいのでしょうか?
fopen($filename, "w" );
fwrite ($fp, ???);
0956955
2007/03/17(土) 20:50:11ID:???0957nobodyさん
2007/03/17(土) 21:01:21ID:???$fp = fopen($filename, "w");
fwrite($fp, implode("\n", array_values($A)));
fclose($fp);
0958nobodyさん
2007/03/17(土) 22:59:50ID:qh3Deiz9使い心地はどんな感じになりそうですか?
0959nobodyさん
2007/03/17(土) 23:11:11ID:aRpV08MfAjaxまわりのデバッガも統合してくれるのなら
わりとリッチなUIをソフトを作るのには
役に立つかも
あと、複雑なビジネスロジックを
組む必要があるひととか
0960nobodyさん
2007/03/17(土) 23:13:28ID:???使う人多くなるかもね
0961nobodyさん
2007/03/17(土) 23:19:22ID:???0962nobodyさん
2007/03/17(土) 23:35:30ID:???Call to undefined function mysql_connect()
となります。
いろいろ調べてみるとリコンパイルしないとダメみたいなんですが
したのサイトを参考に
ttp://blog.livedoor.jp/gaiantbaba/archives/50127228.html
リコンパイルしようとするとこんなエラーがでます。
「ターゲット `clean' を make するルールがありません」
どうすればMySQLに接続できるでしょうか?
0963nobodyさん
2007/03/17(土) 23:43:59ID:???./configureしなきゃMakefileは生成されない。
素直にディストリビューションのバイナリパッケージをインストールしとけ。
0964nobodyさん
2007/03/18(日) 00:15:54ID:???Fedora Core のように apt 使って
パッケージをインストールできるのなら
apt-get install mysql-server
apt-get install php-mysql
でPHP + Mysql の環境が手に入るだろう
Centos みたいに yum 使うやつでも
yum install mysql-server
yum install php-mysql
でいける
何がなんでもソースからリビルドしたいっていうのなら
もはや、このスレの範疇から外れる
0966nobodyさん
2007/03/18(日) 01:16:30ID:bI1rBwfwところがlocalhostからアクセスしてみると「ファイルを保存しますか?」というダイアログが出てくるだけです。
これはiniの構成の設定がまずいのでしょうか?
0967nobodyさん
2007/03/18(日) 01:33:41ID:F9igaXGh0970nobodyさん
2007/03/18(日) 02:00:18ID:???Apacheちょっと調べて見ます。
ありがとう
0971nobodyさん
2007/03/18(日) 02:06:19ID:57Vv1IVvゲストブックで、新規書き込み順に上から表示させたいと思っています。
書き込み内容を記録するtxtをlog.txtとし、書き込む内容を$kakiko とします
書き込み内容を、log.txtの先頭行にかきこませるにはどうしたらいいのでしょうか?
<?php
//$kakiko は投稿されたコメントに"\n"をつけ、ソース上で改行するようにしています。
$filename = "log.txt";
$fp=@fopen("$filename","a");
fputs($fp,"$kakiko");
fclose($fp);
?>
これだと過去の書き込み行の一番したに書き込まれてしまいます。
一番上に書き込みたいです。
0973nobodyさん
2007/03/18(日) 02:13:21ID:57Vv1IVvおおお できました
生き神様ありがとうございます
ありがたや ありがたや
0976nobodyさん
2007/03/18(日) 06:00:56ID:???そのファイルを保存して中身見た?
>>971
"a"じゃなくて"r+"で開いて、全部読み込んで、ファイル空にして、
最新を1件書きこんで、さっき読み込んだ分を書き出す。
0977nobodyさん
2007/03/18(日) 13:07:23ID:PCUTa4CX長い文字列を変数に代入したい場合でシングル・ダブルクォーテーション共に
文字列に含まれている場合の囲い記号があればお教えください。
perlで書くところの $hoge=qq(文字列);
0978nobodyさん
2007/03/18(日) 13:12:36ID:???php6を作ってる人にお願いすれば、できるようになるかもね。
0981nobodyさん
2007/03/18(日) 13:39:54ID:???>長い文字列を変数に代入したい場合
こういうケースは、ヒアドキュメント使えばいいんじゃないの?
Perlでもあるでしょ?
$hoge = <<<EOD
this is a 'pen'
that is a "pen"
EOD;
0982nobodyさん
2007/03/18(日) 16:23:57ID:???$test = "this is a 'pen' \n that is a \"pen\"";
print $test;
0983nobodyさん
2007/03/18(日) 17:41:36ID:zWBD4mpr半角英数字に置き換えるにはどうしたらいいですか?
【例】 あdgsi<>--234aaa
変更後 ↓
dgsi234aaa
0984nobodyさん
2007/03/18(日) 18:02:37ID:???単純に半角英数字以外弾くということなら、
var_dump(preg_replace('/[^[:alnum:]]/','','あdgsi<>--234aaa'));
実行結果:string(10) "dgsi234aaa"
こんなところだろうか。
0986nobodyさん
2007/03/18(日) 18:14:50ID:zWBD4mprなるほど、ありがとうございます。
0987nobodyさん
2007/03/18(日) 19:15:59ID:p3CjS1/Y<input name="あいうえお" value="かきくけこ">
と、nameにどうしても日本語を使いたいのですが、
nameが「メール」とかの時に
$_POSTの配列が壊れてしまったり、文字化けしたりで困ってしまいました。
Shift_JISに問題があることは承知なのですが、
携帯用サイトなのでUTF-8にするのも気がひけて…。
なにかいい方法はないでしょうか?
0989nobodyさん
2007/03/18(日) 19:33:58ID:???urlencode&urldecodeすれば?
%がHTML的にどうなのかは知らない
しかしなんでそんな気持ち悪いことを?
まあ気持ち悪いと思うこと自体、洗脳されてるのかもしれんがw
0990nobodyさん
2007/03/18(日) 19:40:38ID:p3CjS1/Yレスありがとうございます。
いや、私も今まではこんなこと気持ち悪くてやる気にもならなかったんですが、
XMLのデータを検索するフォームを作ってまして、
そのXMLデータの中の要素名が日本語なんです。
このフォーム自体もXMLからXSLTで生成してる、っていう感じで…。
それでnameでXML要素名を紐付けられたらいいな〜って思いまして。
urlencodeしとくのよさげですね、もうちょっとがんばってみます。
0991nobodyさん
2007/03/18(日) 19:40:57ID:???気持ち悪いと思って当たり前だと思うし、そうでないなら頭どうかしてる
0993nobodyさん
2007/03/18(日) 20:24:34ID:???0994nobodyさん
2007/03/18(日) 20:39:50ID:???これでいいか。
【PHP】下らねぇ質問はここに書き込みやがれ 42
http://pc11.2ch.net/test/read.cgi/php/1174217841/
0995nobodyさん
2007/03/18(日) 21:55:30ID:???知らなかったよ
0996nobodyさん
2007/03/18(日) 22:05:45ID:???0997nobodyさん
2007/03/19(月) 00:33:44ID:???1000nobodyさん
2007/03/19(月) 00:43:53ID:???10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。