【PHP】下らねぇ質問はここに書き込みやがれpart14
レス数が1000を超えています。これ以上書き込みはできません。
0001nobodyさん
2005/12/18(日) 10:10:12ID:???ここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。
次スレは>>970あたりが建てて下さい
過去スレは>>2
0002nobodyさん
2005/12/18(日) 10:10:46ID:???【PHP】くだらねぇ質問はここに書き込みやがれ
http://pc5.2ch.net/test/read.cgi/php/1099322141/
【PHP】くだらねぇ質問はここに書き込みやがれpart2
http://pc5.2ch.net/test/read.cgi/php/1105218084/
【PHP】くだらねぇ質問はここに書き込みやがれpart3
http://pc5.2ch.net/test/read.cgi/php/1107780435/
【PHP】くだらねぇ質問はここに書き込みやがれpart4
http://pc8.2ch.net/test/read.cgi/php/1110697712/
【PHP】くだらねぇ質問はここに書き込みやがれpart5
http://pc8.2ch.net/test/read.cgi/php/1114787573/
【PHP】くだらねぇ質問はここに書き込みやがれpart6
http://pc8.2ch.net/test/read.cgi/php/1117945031/
【PHP】くだらねぇ質問はここに書き込みやがれpart7
http://pc8.2ch.net/test/read.cgi/php/1121100429/
【PHP】くだらねぇ質問はここに書き込みやがれpart8
http://pc8.2ch.net/test/read.cgi/php/1123431535/
【PHP】くだらねぇ質問はここに書き込みやがれpart9
http://pc8.2ch.net/test/read.cgi/php/1125716012/
【PHP】下らねぇ質問はここに書き込みやがれpart10
http://pc8.2ch.net/test/read.cgi/php/1127581425/
【PHP】下らねぇ質問はここに書き込みやがれpart11
http://pc8.2ch.net/test/read.cgi/php/1129582431/
【PHP】下らねぇ質問はここに書き込みやがれpart12
http://pc8.2ch.net/test/read.cgi/php/1130835396/
【PHP】下らねぇ質問はここに書き込みやがれpart13
http://pc8.2ch.net/test/read.cgi/php/1132921016/
0003nobodyさん
2005/12/18(日) 10:12:55ID:???0005nobodyさん
2005/12/18(日) 10:14:18ID:???Webページのキャプチャ画像をPHPで生成することはできますか?
http://webscan.jp/
0006nobodyさん
2005/12/18(日) 10:21:50ID:???でも多分お前には無理。
0007nobodyさん
2005/12/18(日) 10:27:16ID:???PHPだけでできない事は無いが、かなり難しい。
PHPでブラウザ(htmlを解析・レンダリグ)を作成するような物だと思ってくれ。
実際にはそんな事はやってられないので、既存のブラウザが画面に描画したものを
キャプチャするという仕組みが使われる事が多い。
そのwebscanってのもそうじゃないかな?
キャプチャの方法は OS・ブラウザのapiに依存するのでPHPのスレの範疇じゃないな。
適切な板やスレで聞くとよい。
0008nobodyさん
2005/12/18(日) 10:36:39ID:???http://fula.jp/blog/index.php?no=r701
これもPHPやね
0009nobodyさん
2005/12/18(日) 11:44:54ID:???Fatal error: Call to undefined function: mb_convert_encoding() in /home1/○○○.ne.jp/WWW/sendmail.php on line 141
本スレ529でご質問したところくだらないってっ却下されましたので
こちらでお尋ねいたします・・・
このメッセージが出てきます。テストサイトではちゃんと実行できるの
ですが。はじめてのphp初心者です。
0010nobodyさん
2005/12/18(日) 11:55:34ID:???訳すとこんな感じか。つーかなんで俺が訳さにゃならんのだっ!ビタン(AA略
警告 : foreachに渡された引数が正しくない 132行目
致命的エラー : 定義されていないmb_convert_encoding()という関数が呼び出されている
上は、foreachに渡した引数がおかしいと言われているので、その引数を確認してみればよい。
下は、mb_*系の関数は拡張モジュール(標準ではない)なので、
その鯖の管理者さんが不要だと思った場合はインストールされない。
mb_*の一部の関数は、jcode.phpというphpのみで書かれたライブラリを
配布してくれている人がいるのでそれを使うのも一つの手かと。
0011nobodyさん
2005/12/18(日) 12:01:11ID:???0013nobodyさん
2005/12/18(日) 12:33:03ID:???※サーバで利用可能なモジュール及び関数リストの取得方法
<?php
foreach (get_loaded_extensions() as $module)
{
echo "<b>[". $module ."]</b><br>";
foreach (get_extension_funcs($module) as $func)
{
echo $func ."<br>";
}
}
?>
[standard]以下はPHPの標準関数。それ以外はオプションな。
このリストに欲しい関数がない場合はサーバ管理者にいってオプションを
組み込んでもらわないといけない訳。分かった?>>9
0015nobodyさん
2005/12/18(日) 12:58:07ID:???0016nobodyさん
2005/12/18(日) 12:58:43ID:???sendmail.phpの132行目にあるforeachの変数が配列じゃないらしい。
プログラムの設定か何かをミスってる可能性あり。
あと、使ってるサーバーではmb_convert_encoding()がインストールされてないので
管理者に頼んで入れてもらわない限り動作しない。
0018nobodyさん
2005/12/18(日) 13:05:28ID:???こいつ自身が最大のバグだな
0020nobodyさん
2005/12/18(日) 13:12:38ID:???有料ばっかりで・・・
0021nobodyさん
2005/12/18(日) 13:19:07ID:???0022nobodyさん
2005/12/18(日) 13:19:24ID:lBRzm0WN有料なのを教えて
0023nobodyさん
2005/12/18(日) 13:21:26ID:???配布ソースのコード隠蔽じゃないの?
他にPHPコンパイラやPerlコンパイラの用途って無いと俺は思ってたけど。
0024nobodyさん
2005/12/18(日) 13:32:29ID:???20じゃないけど俺が知ってるのはこの辺。
ttp://www.zend.com/store/products/zend-encoder.php
0025nobodyさん
2005/12/18(日) 13:35:28ID:???つかフリーソフトでコード隠蔽する必然性がないんだからさあ
クローズドで儲けたい人はそういう人同士だけでやればいいじゃん
0026nobodyさん
2005/12/18(日) 13:56:54ID:???0027nobodyさん
2005/12/18(日) 14:01:37ID:???速くするためならオプティマイザかコードキャッシュでしょう。
0028nobodyさん
2005/12/18(日) 14:01:55ID:???class内でも使えるようにするにはどうしたら良いのでしょうか?。
$this使えというのは無しでお願いします(^^;。
function inst($n){
static $inst;
if (!isset($inst[$n])) $inst[$n] =& new $n;
return $inst[$n];
}
inst('A');
inst('A'); // 既にインスタンスがあるのでA::A()は実行されない
class A{
function A(){
inst('A'); // ← A::A()を実行してループに入ってる??
echo 1;
}
}
0029nobodyさん
2005/12/18(日) 14:08:04ID:???0030nobodyさん
2005/12/18(日) 14:12:12ID:???0031nobodyさん
2005/12/18(日) 14:27:00ID:???そもそも意図が分からない。
なんでクラスAの中でさらにクラスAを生成する必要があんの?これ。
ループというのは正確じゃなく、クラスAの中で生成するクラスAがさらにクラスAを必要とするから
無限に子供のクラスAを作り続けようとする感じだろ。
(同じトコの実行を繰り返すわけじゃないからループとはちょっと違う)
とりあえずすぐ思いつくのはこんなとこ。
function inst($n){
static $inst;
if (!isset($inst[$n])) { $inst[$n] = 1; $inst[$n] =& new $n; }
return $inst[$n];
}
003331
2005/12/18(日) 14:31:21ID:???というか、全てのクラスAが子供のクラスAを必要とするんだから、
原理的にこれは無限実行にならなきゃいけない設計なんだな。
この階層構造を見直さない限り、ロジックを見直そうと思っても無駄だわ。
0034nobodyさん
2005/12/18(日) 14:41:52ID:jwrRezTgのような「/」を使用した変数を受け取るにはどうしたらいいのでしょうか?
0035nobodyさん
2005/12/18(日) 14:47:26ID:???0036nobodyさん
2005/12/18(日) 14:48:17ID:???最初は1つのclass内で全てを作っていたのですが、だんだん大きくなって来たので
分割しようと考えた次第です。その際にスマートに書き直したかったのであれこれと
変更を加えていたら嵌ってしまいました(^^;。
階層構造を見直さないとだめですよね。お騒がせしました。
>>30
同じ人です(^^;。
>>31
私も試してみましたがclassAの中では空になりますね。
>>34
ttp://***/example.php/1/?a=1 って事かな?
それかRewriteEngineを調べると良いかも
0037nobodyさん
2005/12/18(日) 14:56:49ID:???0039nobodyさん
2005/12/18(日) 15:16:34ID:???みなさんは$GLOBALSを使って書いてるのですか?
0040nobodyさん
2005/12/18(日) 15:21:14ID:???稀にglobal宣言も使うけど、極めて例外的。
0041nobodyさん
2005/12/18(日) 17:28:30ID:???$file = preg_replace ('<!--([^-]*)-->(.*?)<!--([^-]*)-->', '', $file);
print \1;
とすると
Unexpected character in input: '\' (ASCII=92) state=1
とでちゃうのですが、Perlの
print $1;
のようにマッチした文字を取り出すにはどうすればいいのでしょうか?
0042nobodyさん
2005/12/18(日) 17:32:06ID:???0043nobodyさん
2005/12/18(日) 18:01:43ID:???間違いない
0045nobodyさん
2005/12/18(日) 18:22:28ID:???0047nobodyさん
2005/12/18(日) 20:42:40ID:???あまりスマートではないな
004941
2005/12/18(日) 21:07:18ID:???PerlではできるけどPHPではできないってことにしておきます。
0051nobodyさん
2005/12/18(日) 21:16:46ID:???というエラーが出て回避する方法がわからないのですが何方かご存知ありませんか?。
vlogiew()をlogprint()としてもダメでした。
0054nobodyさん
2005/12/18(日) 22:33:08ID:???仕組み
1.IEのエンジンを使ってブラウザの表示を画像に落とすツールをWindowsアプリで作ります
2.それをWeb上のPHPから呼び出します
3.完了
0056nobodyさん
2005/12/19(月) 00:11:51ID:???Javaの製品もある。
でもまあ世の中にはWindowsのIEでしか
レイアウトが再現できないサイトも沢山あるからねぇ。
005756
2005/12/19(月) 00:17:06ID:???昔はデモで指定したサイトのサムネール生成が出来て、
それをゴニョゴニョして利用出来たんだけど…
0058nobodyさん
2005/12/19(月) 00:21:27ID:???0059nobodyさん
2005/12/19(月) 00:42:52ID:???ASPで提供してるのはフロントエンドの部分だけじゃないの?
結局、中身はWinIEかJavaか〜って感じかとオモウが
0060nobodyさん
2005/12/19(月) 00:48:48ID:???emailとパスワードを入力させて、送信するとユーザにメールが送られて、URLを
クリックするとユーザ登録されるというよくあるものを作りたいのですが、よくあるコード
だと思います。
そういうコードどこかにありませんか?
PEARとZendで探しましたが、見つかりませんでした。
XOOPSのは、再利用しづらいです。
探し方だけでもよいので、よろしくお願いします。
0061nobodyさん
2005/12/19(月) 00:57:44ID:???その辺は好みかな。
元C言語プログラマとしてはsscanfの挙動は信用したくない…。
(入力内容がイレギュラーだった場合に変な挙動をすることがあるので)
速度を優先するならsubstrを、同時にフォーマットチェックも兼ねるなら
preg_replaceを、俺なら選択するな。
0064nobodyさん
2005/12/19(月) 01:20:56ID:???0065nobodyさん
2005/12/19(月) 01:40:35ID:???0067nobodyさん
2005/12/19(月) 09:16:57ID:???0068nobodyさん
2005/12/19(月) 09:19:37ID:???0069nobodyさん
2005/12/19(月) 10:26:05ID:???0070nobodyさん
2005/12/19(月) 10:28:52ID:???最強のPHPエディタはなに?@WebProg
http://pc8.2ch.net/test/read.cgi/php/1133785416/l50
PHPエディタって、どうよ?@WebProg
http://pc8.2ch.net/test/read.cgi/php/1079460638/l50
PHP統合開発環境スレ@WebProg
http://pc8.2ch.net/test/read.cgi/php/1123912762/l50
0071nobodyさん
2005/12/19(月) 12:39:54ID:l+7IklxT/usr/local/lib/php/XML以下にそれらが入っている事も確認しましたが
Warning: main(XML/Parser.php): failed to open stream: No such file or directory in /usr/local/lib/php/XML/RSS.php on line 23
Fatal error: main(): Failed opening required 'XML/Parser.php' (include_path='.:/usr/local/lib/php') in /usr/local/lib/php/XML/RSS.php on line 23
の様なエラーが発生してスクリプトが動きません。
原因分かる方居ますか?
0072nobodyさん
2005/12/19(月) 12:43:39ID:???なんか変に曲解しなければならん状況なの?
0075nobodyさん
2005/12/19(月) 13:24:38ID:pcyIPGNx$header = "Content-Type: text/plain; charset=iso-2022-jp\nFrom:送信者\<info@hogehoge.com\>";
mb_language("Japanese");
if(mb_send_mail($mail,$subject,$message,$header)){
var_dump($header);
}
でのvar_dumpの結果で、Content-Type: text/plain; charset=iso-2022-jp From:送信者\
というふうに、<info@hogehoge.com\>の部分が消えてしまい正しく送信されません。
どこを修正すればよいのでしょうか。
0076nobodyさん
2005/12/19(月) 13:40:36ID:???ブラウザで「<〜>」がタグとして解釈されて表示上消えているだけ
という単純な問題である悪寒
0077nobodyさん
2005/12/19(月) 13:44:14ID:iBVZGmYthoge.comにあるDB接続用のfunctionで
hoge.com内にあるDBにアクセスし
結果だけをreturnでlocalhostに返したかったので
hoge.comのfunctionをlocalhostのPHPでinclude_onceしました
その後でDB接続用のfunctionを実行したところ
Call to undefined functionといわれてしまいました
(DB接続用のfunctionには問題はありませんでした)
以上のことからfunctionはlocal内に無いと動かないという事でしょうか?
もしくはPHPiniなどに設定が必要なのでしょうか??
0078nobodyさん
2005/12/19(月) 13:46:22ID:iBVZGmYt誤 hoge.comのfunctionをlocalhostのPHPでinclude_onceしました
正 hoge.comのfunctionが書かれたPHPファイルをlocalhostのPHPでinclude_onceしました
0079nobodyさん
2005/12/19(月) 13:48:05ID:???localのどこにあるファイルをincludeしようとしてるんだ?
それ次第だろ。ちゃんと、エラー表示するようにしてみたら?
0080nobodyさん
2005/12/19(月) 13:58:24ID:???>>77
hoge.comがphpをパースしていたら、渡されるのは当然実行結果だけなので
hoge.comにある関数は実行できません。
たとえphpをパースしなくても(スクリプトそのままを渡してくるなら)
localhost内で実行されるので意に沿う結果にはならないと思われ。
どっちにしてもhoge.com内のスクリプトにある関数をlocalhostで実行するのは
無理があると思うけど。
0081nobodyさん
2005/12/19(月) 14:09:55ID:???1. include_onceで外部URLのファイルを取得しにいく (URL fopen wrapper)
2. hoge.comのweb鯖が処理をする。
拡張子phpならhoge.comのPHPが処理して、実行後の結果(出力)をテキストとして返す。
実行結果をファイルにして、それをlocalhostでincludeした時と同じ様に考えるとよい。
・phpファイルの内容がfunctionだったら関数定義だけなので、何も返さない。
・実行の結果が<?php 〜 ?> ってな内容(文字列)だったら、
そのような内容のファイルをlocalhostでncludeした事と同じになる。(localhostのPHPが処理する)
3. 残りの処理を続行。
008275
2005/12/19(月) 14:28:53ID:pcyIPGNxその通りでした・・・。ありがとうございます。
なんとか送信まではできたのですが文字化けしてしまいます。
mb_language()
mb_send_mail($mail,$subject,$message,$header)
mb_language()
mb_send_mail($mail,mb_encode_mimeheader($subject,"ISO-2022-JP"),mb_encode_mimeheader($message,"ISO-2022-JP"),$header)
mb_language()
mb_send_mail($mail,mb_convert_encoding($subject,"SJIS"),mb_convert_encoding($message,"SJIS"),$header)
どれも文字化けしてしまいました。
マニュアル見ると1番最初のでいいような気がするのですが、よくわかりません。
どこが問題なのでしょうか。
0083nobodyさん
2005/12/19(月) 14:35:30ID:???PHPのバージョンによって、mb_send_mail周りにバグがあります。
http://ns1.php.gr.jp/pipermail/php-users/2005-November/028156.html
このスレッドあたりを参考に。
つーか、質問するときはバージョン書きましょう。
0084nobodyさん
2005/12/19(月) 14:39:46ID:iBVZGmYthoge.comにあるファイルをincludeしました
>>80-81
やはり無理があるようですね…
別の方法を模索したいと思います
ありがとうございました
0085nobodyさん
2005/12/19(月) 14:42:44ID:???よくわからんが、そのlocalじゃないほう(hoge.comは存在するので)にある、
関数とかのファイルってローカルにもってこれないのか?
0086nobodyさん
2005/12/19(月) 14:46:21ID:vPAKLJvF$site='http://yahoo.co.jp/';
?>
<form method="post" name="test" action="<? echo $_SERVER[PHP_SELF]; ?>" >
<textarea name="text" cols=20 rows=20>
<?php
$page = file($site);
if($page=="") die("Connection Failed");
while (list($num, $line) = each($page)){
$line=htmlspecialchars($line);
echo "$line";
}
?>
</textarea>
この状態でテキストエリアにヤフーのソースが入力されるのですが
実際に表示したいサイトが私のIPからしか接続出来ない状態です。
※PHPをUPしているサーバは別なところにあります。
ですので$siteに本来接続したいURLを入れても弾かれてしまいます。
javascriptなども覗いてみたのですが解決策が見当たりません。
PHPでなんとかなりませんでしょうか?
0088nobodyさん
2005/12/19(月) 14:54:16ID:???理由があってIPアドレス制限をしてるのだから、それを回避できるようなものじゃまずいかと。
まぁそれは置いておいて、自宅鯖を建てるくらしか手は無いんじゃないかねぇ。
0092nobodyさん
2005/12/19(月) 15:09:07ID:???localhostからの接続しか許可していないDBを他のサーバから使いたいのかもね。
DBと同じサーバのphpをincludeしたら使えるかもしれないと思ったんじゃないの
そんなことが出来たらセキュリティもクソもあったもんじゃないが。
0094nobodyさん
2005/12/19(月) 15:37:17ID:iBVZGmYtご心配をお掛けしましたができるようになりました
ありがとうございます
結果としてincludeした時点でlocalファイルとして扱われており
動かなかったようです
なので、hoge.comにGETで渡して結果をechoで吐き出させ
それをfileでarrayにして満足な答えを得ることが出来ました
どうもお騒がせしました
0095nobodyさん
2005/12/19(月) 15:43:28ID:???別に心配なんざしちゃいないが、
もっと日本語も勉強した方がいいぞ。
で、あんたはhoge.comの持ち主なの?
0096nobodyさん
2005/12/19(月) 15:50:16ID:???hoge.com(仮名)のサーバーは持ち主です
(hoge.comのドメイン名は仮名なので持ち主ではありません)
0097nobodyさん
2005/12/19(月) 15:51:29ID:???だから、hoge.comは実在するドメインだから、使うなっていってんだよ。
example.comってのを使うの、そういうときは。
009982
2005/12/19(月) 15:57:35ID:pcyIPGNx大変参考になりました。
なんとか文字化けせずに送信する事ができました。
>質問するときはバージョン書きましょう。
以後気を付けます。
ありがとうございました。
0100nobodyさん
2005/12/19(月) 16:21:49ID:???example.comも実在するドメインなわけだが・・・
fooとかhogeっていえばそれが例えだっていうのは
ほとんど誰もがわかると思うが?
0101nobodyさん
2005/12/19(月) 16:26:01ID:???実在しないわけではないな、確かに。
例えとして使う場合には、example.comやexapm;e.netを使いましょうと
規定されているといえばいいのかな。
0102nobodyさん
2005/12/19(月) 16:27:14ID:???http://suika.fam.cx/~wakaba/documents/rfc-ja/rfc2606-ja.html
0103nobodyさん
2005/12/19(月) 16:42:24ID:???ちゃんと読めよ
http://example.com/
0104nobodyさん
2005/12/19(月) 17:46:34ID:???SQL文の中で演算させることは可能でしょうか?
たとえば、こんな感じで
”UPDATE table_name SET hoge= +1 WHERE id=100;”
hogeを+1ずつさせていきたいと思ってます。
宜しくお願いします。
0105nobodyさん
2005/12/19(月) 17:48:28ID:???0108nobodyさん
2005/12/19(月) 18:33:07ID:???以下でやると両方でTRUEになってしまいます。
何がいけないのでしょうか?
$str_1 = "abc";
$str_2 = "def";
if(strpos("$str_1",a) == 0){
print "TRUE";
}
if(strpos("$str_2",a) == 0){
print "TRUE";
}
0109nobodyさん
2005/12/19(月) 18:46:31ID:???多分、==を===にするとうまくいく。
あと文字列なんだから'a'と書こうよ
01127
2005/12/19(月) 20:13:35ID:???0114nobodyさん
2005/12/19(月) 22:08:45ID:???初めて見たのですが{0}は、どういう意味ですか?
ただの間違いではないですよね?
0115nobodyさん
2005/12/19(月) 22:17:37ID:???0116nobodyさん
2005/12/19(月) 22:21:18ID:???0117nobodyさん
2005/12/19(月) 22:22:44ID:???波括弧の後に任意の文字をゼロから始まるオフセットで指定することにより、
文字列内の文字にアクセスすることが可能です。
注意: 過去の互換性のため、配列括弧を使用することが可能です。
しかし、 この構文はPHP 4に依存しています。
つーことらしい。
0118nobodyさん
2005/12/19(月) 22:40:45ID:???文の意味がわからないですが、サンスコ
>>116
暗号化とかエンコードできなかったっけ?
ちなみに、moodle/lib/html2text.phpの38行目あたり
$len = strlen($badStr); // Moodle
$chr = $badStr{0}; // Moodle
$goodStr = ''; // Moodle
で、Notice吐くんですよね
Uninitialized string offset: 0 in fileって。
先に $badStr =''; しておけば大丈夫ですか?
0119nobodyさん
2005/12/19(月) 22:46:41ID:???$b = $a{0}; // $b = 'a' = $a[0]
0122nobodyさん
2005/12/19(月) 23:59:03ID:???みなさん、コード書いてて煮詰まってしまったらどんなことをしますか?
0123nobodyさん
2005/12/20(火) 00:03:01ID:???0124nobodyさん
2005/12/20(火) 00:04:50ID:???0128nobodyさん
2005/12/20(火) 11:14:59ID:bFU5ghZ7タバコ以上に頭が回らなくなるw
0129nobodyさん
2005/12/20(火) 11:34:40ID:2GuOb5lJをソートする方法を教えてください
0130nobodyさん
2005/12/20(火) 11:37:00ID:???配列をソートする関数が幾つかあるから、好きなやつを使って。
0131nobodyさん
2005/12/20(火) 11:45:37ID:2GuOb5lJありがとうございます。
$linesに「名前,個数」って入っていてこの個数でソートしたいんですが
教えて頂いたとこでみてみます
0132nobodyさん
2005/12/20(火) 12:00:12ID:2GuOb5lJ$linesには以下のような感じ(名前,個数)で値が入っています
あああ,5
うううう2
いいいい,4
これをこんな感じで個数でソートしたいのですが・・
うううう2
いいいい,4
あああ,5
どういう関数の組み合わせでできますか
0133nobodyさん
2005/12/20(火) 12:04:20ID:???あー、 , 区切りでやるときはちょっとややこしい事をしなきゃいけない(関数一発では無理)。
, 区切りをexplodeするなり多次元の配列にしてから、array_multisort ってのが一番楽かな。
0135nobodyさん
2005/12/20(火) 12:09:16ID:???なのにスクリプトの中のファイル操作は読み込まれた場所からのパスじゃないと
アクセスできない。つまりスクリプトを置いた場所からではなくスクリプトが読み込まれる
場所からどうやったら目的のファイルにアクセスできるかを考えなくちゃならない。
これがPHPのファイル操作関連を複雑にしている諸悪の根源だと私は確信しているんですよ。
0137nobodyさん
2005/12/20(火) 12:22:51ID:???すごい狂った人が来ましたね。
データファイルを置く場所に関して悪習慣ができているようなので直すことをお勧めする。
0138nobodyさん
2005/12/20(火) 13:15:22ID:2GuOb5lJありがとうございます。
listで二重ループで普通に個数を比較しての単純ソートをしてたんですが
これがどうも数が多くなると正常にいかなかったもので
0139nobodyさん
2005/12/20(火) 15:07:53ID:qvzJW6a+<SPAN class="class">ここに文章
</SPAN>
上記のように途中で改行があるソースから文章を取り出したいのですが
$C = preg_match_all("%<SPAN class=\"class\">(.+?)\n</SPAN>%is", $A, $B);
と書いてもうまくできません。\r\nや\rにしたり、
実際に改行してみたんですがダメでした。どうしたらいいですか?
0141139
2005/12/20(火) 15:26:33ID:qvzJW6a+そうなんですか?改行のない場所ではうまく取れてますが。。
0142139
2005/12/20(火) 15:34:15ID:???全然違う所($Aのところ)でミスしてました。お騒がせしました。
0144nobodyさん
2005/12/20(火) 16:38:59ID:???0145nobodyさん
2005/12/20(火) 16:53:05ID:???んなことは無いんじゃないかなぁ。
間に変なフィルターが入らないように、proxyを使わずにtelnetで確認してみたらどうかな?
0148nobodyさん
2005/12/20(火) 17:40:34ID:???0149nobodyさん
2005/12/20(火) 17:41:44ID:???0151nobodyさん
2005/12/20(火) 17:47:58ID:???0152nobodyさん
2005/12/20(火) 18:30:08ID:???でAAAAAAAの部分を取得したいのですが、簡単な方法はありませんか?
Xは不特定、serと;は固定です。
0154nobodyさん
2005/12/20(火) 18:39:24ID:???そうではなくて、例としては以下のような感じです。
――――――
<?php
$a="あいう";
echo $a;
?> えお
<?php
$X=出力取得関数();
?>
――――――
で$Xに"あいうえお"が入ってくれればいいんですが。
0155152
2005/12/20(火) 18:40:56ID:???i-modeの端末情報です。
0156nobodyさん
2005/12/20(火) 18:47:01ID:???http://jp2.php.net/manual/ja/ref.outcontrol.php
これを利用すると似たようなことできない?
0157nobodyさん
2005/12/20(火) 18:48:25ID:???933 名前:nobodyさん:2005/12/17(土) 01:04:26 ID:???
preg_match('/hoge(.*)hage/', $str, $pattern);
$result = $pattern[1];
0160nobodyさん
2005/12/20(火) 19:37:05ID:???0161nobodyさん
2005/12/20(火) 19:50:28ID:???ttp://www.php.net/manual/ja/ に行き、search for にキーワードを入力する。
今回は画像だから image あたりが良かろう。
で、検索すると、、、いかんな・・ダイレクトにヒットしてしまった・・
まぁいいか、、、イメージ関数つー関数群があることが分かる。
その中を見ていくと、画像のサイズに関係する関数が見つかるだろう。
さらに image size と2つのキーワード(or 検索)で探してみると、
いかにもそれっぽい関数が列挙される。
0162nobodyさん
2005/12/20(火) 20:07:07ID:???$fp = fopen("save_filename", "w");
fwrite($fp, file_get_contents("ext_filename"));
fclose($fp);
0163162
2005/12/20(火) 20:09:02ID:???file_put_contents("save_filename", file_get_contents("ext_filename"));
0166nobodyさん
2005/12/21(水) 09:23:55ID:???私は何か思いっきり勘違いしているのでしょうか?。
if (is_readable($file)){
$fp = fopen($file,'r');
for($i=0;$i<10;$i++){
if (!feof($fp)) break;
echo fgets($fp);;
}
fclose ($fp);
}
0168nobodyさん
2005/12/21(水) 09:35:36ID:???> if (!feof($fp)) break;
ここ
つ ttp://jp2.php.net/manual/ja/function.fgets.php
マニュアルにそのものずばりの例がある。
まずはマニュアルを確認することをお勧めする。
0169nobodyさん
2005/12/21(水) 09:52:00ID:???feof()
ファイルポインタがEOFに達しているかまたはエラーの場合にTRUE 、 その他の場合にFALSEを返します。
だった(・・;。手っきり反対の動作をするのかと思い込んでいました。
ありがとうございます。
0170nobodyさん
2005/12/21(水) 10:28:15ID:???は無限ループに注意
0171nobodyさん
2005/12/21(水) 12:39:22ID:RHXLhrgRオプション扱いになっている理由って、何が考えられますかね?
0172nobodyさん
2005/12/21(水) 12:55:23ID:???PHP/FI Version 2.0の同名の関数が<>&"しか対応してなったから後方互換性のためだと思われる
PHP/FIが ' に対応しなかった理由は知らない
0173nobodyさん
2005/12/21(水) 13:02:28ID:RHXLhrgRなるほど、歴史的な理由である可能性が高いですか。
デフォルトでついてた方が楽なんだけどな〜。
これ、ただでさえ関数名長いから、めんどくさいですね。
0175nobodyさん
2005/12/21(水) 13:11:51ID:???関数名や引数の補完機能の付いているエディタや開発環境を使うと便利ですよ。
この板にもエディタや開発環境のスレが3つくらいあったかな。
おいらはシンプルなエディタで補完機能を使わずにキーワードの強調表示だけしてますが。
(補完時の入力・表示に瞬間的に引っ掛かる感じがどーも苦手で。。)
0176nobodyさん
2005/12/21(水) 14:52:12ID:???となってて、長いmessageを携帯用に分割して表示するようにしたいのですが
何か良い方法はありますか?
0178nobodyさん
2005/12/21(水) 14:56:19ID:???JavaScriptとかで「'」を利用する場合の方が多いと考えられてるんじゃないのかな。
逆に「'」を常に変換したい場合ってそんなにあるもの?
JavaScriptで普通に「'」を使うように、通常は「'」なんて参照文字に変換する必要って無いと思うんだけど。
0179nobodyさん
2005/12/21(水) 15:06:11ID:???http://www.php-editors.com/review/
0181nobodyさん
2005/12/21(水) 16:32:54ID:???0182nobodyさん
2005/12/21(水) 16:48:01ID:???ttp://www.thelinuxconsultancy.co.uk/phpeditors.php
0183nobodyさん
2005/12/21(水) 17:09:36ID:???それってただ並べてるだけじゃないの?
User Raitingは低いよ。
一番はPHP Designer 2005
0184nobodyさん
2005/12/21(水) 17:17:17ID:???0185nobodyさん
2005/12/21(水) 17:23:20ID:???0186nobodyさん
2005/12/21(水) 17:43:03ID:???いろいろ使ってみたけど、どれもしっくりこないんだよね・・・
何か良いのがないかしら
あ、本題です。require('./'.$dir.'.dat');とする場合に$dirに含まれると問題がある文字は
あるのでしょうか?。先頭に「./」を付けていてもディレクトリをさかのぼられる事はあり
ますか?。
0187nobodyさん
2005/12/21(水) 18:06:40ID:???0189nobodyさん
2005/12/21(水) 18:51:17ID:???0190nobodyさん
2005/12/21(水) 19:09:55ID:???サーバでテストするまでもなくエラー箇所出してくれるし。
細かい手間が省ける。
0191nobodyさん
2005/12/21(水) 19:19:35ID:???テキストファイルに書き込む毎に1増やすようにしたのですが
1,2,3,4,5,6・・・
と記入されていきます。
ここまではいいのですが、例えば3と5を消す処理をしたとします。
1,2,4,6・・・とテキストファイルには表示されます。
ここで次にファイルに書き込む時に3を、その次に書き込む時は5としたいのです。
漠然とした例えで分り難いかもしれませんが、よろしければ教えて頂けないでしょうかm(_ _)m
0193186
2005/12/21(水) 19:31:24ID:???どうしたら良いのかなぁ
while(preg_match('|\./|',$dir)) $dir = str_replace('./','',$dir);
これでどうでしょうか?
>>191
欠番補完したいなら分割して1つずつ確かめて行くしかないと思うよ(^^;
0194186
2005/12/21(水) 19:36:34ID:???while(strpos($dir,'./') !== false) $dir = str_replace('./','',$dir);
結果が「////」となりましたが、これは問題があるでしょうか?
0195nobodyさん
2005/12/21(水) 22:24:02ID:???調べてもよく分からないのですが。
0196nobodyさん
2005/12/21(水) 22:31:11ID:???かといって、配列を渡せば折れ線グラフが自動作成される
つーよーな便利関数があるわけでもない。
0197nobodyさん
2005/12/21(水) 23:00:04ID:???GDでゴリゴリ書いてもいいけど、普通はJpGraphなんかを使う罠。
ttp://www.aditus.nu/jpgraph/
ttp://www.asial.co.jp/products/jpgraph/
0198nobodyさん
2005/12/21(水) 23:04:37ID:???0199nobodyさん
2005/12/21(水) 23:19:31ID:???$filename = $_FILES['rep']['name'];
if(file_exists($_FILES['rep']['tmp_name'])){ //ファイルの存在を確認 tempの状態で確認
if(ereg("(^[a-zA-Z0-9_-]+)\.(lzh)",$filename)){
list($filenamea,$filenameb) = explode(".",$filename);
$repnum = $_GET['repnum'];
move_uploaded_file($_FILES['rep']['tmp_name'],$repnum.".".$filenameb);
exit;
}
}
とし、「aiueo.lzh」を送信した所、「.lzh」と保存されてしまいます。
ちゃんと$_GET['repnum']が通っていないのかと思い、
echo $repnumすると、きちんとGETによって渡された数字が表示される様子。
何がおかしいのかさっぱりなのですが、どこか間違った点があれば教えて下さいm○m
0201nobodyさん
2005/12/22(木) 00:12:32ID:???レスありがとうございます
$repnumには10や11など数字がはいっております…。
アプロダのあるphpは一つ上の階層なんですが、関係無いですよね。
0202nobodyさん
2005/12/22(木) 01:37:25ID:???$list = "1,2,3,5,8,9";
for($ar = explode(",", $list), $i = 0; $i < (count($ar) - 1); $i ++) if($ar[$i + 1] != $ar[$i] + 1) break;
$num = $ar[$i] + 1;
print "ret = $num";
0203nobodyさん
2005/12/22(木) 01:43:55ID:???素朴な疑問なんだが、アップロードしてるってことは<form>のmethodはPOSTなんだろ?
なんでrepnumはGETで渡した値を参照してるの?
repnumの値をどこでどのように確認したのか気になる…
0204nobodyさん
2005/12/22(木) 02:11:34ID:f6FkYizCphpinfoのstandard項目にsendmail_pathの記述がない。
ぐぐった結果、qmailのwrapperをシンボリックリンクにして
再度コンパイルしてインスコ。
それでも現象は変わらぬ。
php.iniも確認してsendmail_pathの記述は書かれているの
確認したんだけどなー
0205nobodyさん
2005/12/22(木) 02:16:34ID:???何かエラーメッセージが出てくるの?
0206nobodyさん
2005/12/22(木) 02:18:08ID:f6FkYizCmail関数が有効にならない。
qmailのsendmail-injectでサンプルメールを飛ばしたが
それは動いています。
0207nobodyさん
2005/12/22(木) 02:39:47ID:NhSg4vO8>>[0-9]+
の数字の部分をリンクにしたいのですが
>>の部分を認識して貰えません。
$str = eregi_replace("(>>)(0-9]+)","<a href=\"#\\2\">\\1\\2</a>",$str);
>>と書くだけでは駄目なのでしょうか?他にも適当に試しましたがうまくいきませんでした。
0208修正
2005/12/22(木) 02:42:23ID:NhSg4vO8○ "(>>)([0-9]+)",
0209nobodyさん
2005/12/22(木) 02:46:50ID:???0213nobodyさん
2005/12/22(木) 08:38:23ID:???レスありがとうございます。
http://〜/a.phpには
http://〜/upload/b.php?repnum=15
というリンク先にリンクしております。
このような感じでGetでrepnumを渡しているのですが…。
空白が表示されるという事は
値が入っていない = ファイルをPostされた時点でGetの中身が消えてるのでしょうか…。
$repnum = Get_['repnum'];
の位置を変えてみるも駄目でした。
相変わらず「.lzh」になるようです
0214nobodyさん
2005/12/22(木) 09:15:49ID:???$newfilename = $_GET['repnum'].".".$filenameb;
echo $newfilename;
move_uploaded_file($_FILES['rep']['tmp_name'],$newfilename);
とやって$newfilenameはどう表示されるの?
まさかと思うけど、typoしてるってことないよね。
0215nobodyさん
2005/12/22(木) 09:55:11ID:???レスありがとうございます。
只今外出先の為確認できないので、お昼休憩の際に早速確認させて頂きます。
ちなみに、聞き覚えの無い言葉ですが、typeoとは何でしょう?
無知で申し訳ないですTT
0216nobodyさん
2005/12/22(木) 10:04:52ID:???ブラウザにもよるんだが、POSTでフォーム送信したときは
URLの後ろに?〜でパラメータつけても無視される場合があるぞ。
設計から見直した方がいい。
0218nobodyさん
2005/12/22(木) 10:11:19ID:???> http://〜/a.phpには
> http://〜/upload/b.php?repnum=15
> というリンク先にリンクしております。
意味が分からん。
a.phpがアップロードのFORMが書いてあるページなのか?
それともb.php?repnum=15がアップロードFORMのページなのか?
ちょっとFORM部分のHTMLを書いてみろよ。特にacdtion=がどうなってるか。
なんかWebプログラミングを根本的に勘違いしてるヨカーン
0219nobodyさん
2005/12/22(木) 10:12:22ID:???0221nobodyさん
2005/12/22(木) 10:55:36ID:???http://〜/a.phpのFORMのactionにhttp://〜/upload/b.php?repnum=15
がかかれているということだと思ったり思わなかったり…
0222nobodyさん
2005/12/22(木) 11:07:09ID:???レスありがとうございます。
>>216さん
そうなのですか、知らなかったです…。
当ブラウザはIE6.0ですが、設計の見直しも必要かもしれないのですねTT
>>217さん
ありがとうございます、勉強になりました。
>>218さん
formが書いてあるのはbの方法です。form部分は
<form method="post" enctype="multipart/form-data" action="b.php">
<input type="file" name="rep" size="30">
<input type="image" name="submit" src="画像のURL">
</form>
となっております。
HTML部分はPHP記述の下です。
皆さん意見下さってありがとうございます。
もう少し面倒見て頂ければ嬉しいですm○m
0223nobodyさん
2005/12/22(木) 11:12:23ID:???formの記述はb.phpの方にしており、a.phpには
http://〜/upload/b.php?repnum=15
へのリンクだけとなっています。
やはりform部分に問題がありそうでしょうか…?
0224nobodyさん
2005/12/22(木) 11:33:13ID:???b.phpに以下を足して中身を確認したら…
print_r($_POST);
print_r($_GET);
0225nobodyさん
2005/12/22(木) 11:58:23ID:???原因がわかりません。おしえてください。
エラー:Errors parsing D:\Program\APACHE~1\Apache2\htdocs\1-5.php
PHP Parse error: parse error, unexpected $end in D:\Program\APACHE~1\Apache2\htdocs\1-5.php on line 15
0226225
2005/12/22(木) 11:59:40ID:nKaKNsDz<?php
if($_POST['user']){
print "Hello,";
print $_POST['user'];
print "!";
} else {
print <<< _HTML_
<form method="post" action="$_SERVER[PHP_SELF]">
Your Name:<input type="text" name="user">
<br>
<input type="submit" value="Say Hello">
</form>
_HTML_;
}
?>
0227nobodyさん
2005/12/22(木) 12:10:58ID:???レスありがとうございます。
もうすぐお昼なので、確認してみたいと思いますm○m
>>225さん
定義されていない変数があるという事だと思います。
$_SERVER["PHP_SELF"]
ではないでしょうか?
0228nobodyさん
2005/12/22(木) 12:14:27ID:???{}で括れと
0229nobodyさん
2005/12/22(木) 12:16:35ID:???> <form method="post" enctype="multipart/form-data" action="b.php">
> <input type="file" name="rep" size="30">
> <input type="image" name="submit" src="画像のURL">
> </form>
この中に
<input type="hidden" name="repnum" value="<?=$repnum?>">
を追加しないとそもそも2度目の送信(アップロード時)にはrepnumは渡らん。
おまえ、1度送信しとけば値はずっと保存されると勘違いしてるだろう。
その上で、アップロード時のrepnumの受け取りは$_GETから$_POSTに変更シレ
0230225
2005/12/22(木) 12:17:07ID:???速レス感謝です。
今、偶然、違う本に解決方法がのっていました。
ヒアドキュメントの終わり、_HTML_;の行には、
タブ、スペース、コメント又その他の文字は書いていけないらしいです。
書いていいのはヒアドキュメントの終わりの印(この場合だと_HTML_)と
文の終了を示すセミコロン(;)だけだそうです。
速レス感謝します。
0231nobodyさん
2005/12/22(木) 12:17:41ID:???$_SERVER['PHP_SELF']
かな…?
0234nobodyさん
2005/12/22(木) 12:19:42ID:???的外れでしたが良かったです。
02361.0008(破滅挑発) ◆rzOmotimAo
2005/12/22(木) 14:59:24ID:DhSg+gn2自分で立てようとしたら
「このホストではしばらくスレ立てができません」
ってなる。
【板名】webprog板
【板のURL】http://pc8.2ch.net/php/
【タイトル】中央銀行システムを作らせながらPHP屋を捕獲するスレ2匹目
【名前】Omoti
【本文】
中央銀行システムをつくることで
経済、金融を理解しようというスレ。
0237nobodyさん
2005/12/22(木) 15:49:47ID:???0238nobodyさん
2005/12/22(木) 15:59:13ID:???02391.0008(破滅挑発) ◆rzOmotimAo
2005/12/22(木) 16:14:05ID:???あなたは神の声が聞こえちゃう人ですか?
0240nobodyさん
2005/12/22(木) 16:18:46ID:???\ヽ, ,、
`''|/ノ
.|
_ |
\`ヽ、|
\, V
`L,,_
|ヽ、) ,、
.| ヽYノ
/ r''ヽ、.|
/ ,.. -──- .、 `ー-ヽ|ヮ
.| , ‐'´ __ `ヽ、 `|
| / , ‐'"´ ``''‐、 \ |
| / / \ ヽ |
ヽ, y' /` ‐ 、 ,.. -'ヘ ヽ. }ノ
ヽ,' / /`,ゝ' ´ ヽ Y.
. i ,' { { ヽ `、
l ,イ─- 、.._ ヽ ,, _,.. -─:} !
. | r‐i| ー=ェェ:ゝ ,.∠ィェェ=ー' |r 、. l
| {ト」l|. : | " ``: |!トリ |
. │ ヽ、| ;.」_ |'ソ !
. │ ヽ r──ッ /ノ |
| lヽ  ̄ ̄ / イ │
. ! 丶ヾヽ ~ , ' ノ │ !
ト. ミ.ゝ ヽ.____./ / l /
ヽ ヽ イ ,' / , ' ┼ヽ -|r‐、. レ |
\. ノレ'/ d⌒) ./| _ノ __ノ
0241nobodyさん
2005/12/22(木) 16:29:59ID:???俺は貴重なスレ立て権をそんなクソスレで使うのはいやだ
この板のBBS_THREAD_TATESUGI=64だからあと64個新スレがたてば同じIPでスレが立てられるぞ
0242nobodyさん
2005/12/22(木) 16:44:30ID:???02431.0008(破滅挑発) ◆rzOmotimAo
2005/12/22(木) 16:45:10ID:???ケーブルだからIP代わるまで3日かかるな
次スレたてるまで3日も待たないとだめなのか
とりあえず
http://orz.my.land.to/omoti/
だけ動くように復旧してもらえないかな?
動かして遊びながらいろいろ考えるんだから
http://image02.wiki.livedoor.jp/o/4/omoti4/2476ae40ddca3894.png
02441.0008(破滅挑発) ◆rzOmotimAo
2005/12/22(木) 16:45:45ID:???新仕様って?
鯖全部で64個とか?
02451.0008(破滅挑発) ◆rzOmotimAo
2005/12/22(木) 16:47:26ID:???ノーパソ持ってグレ電からダイヤルアップかな
0247nobodyさん
2005/12/22(木) 17:47:30ID:3rnz5g5iJavaScriptなら、"も変換されると困るわけだから、
デフォルトで、"は変換されて'は変換されない理由にはなってないかと。
"は変換されて欲しいけど、'が変換されて欲しくないケースって、
ほとんどないんじゃないかな、と思う。
それがデフォルト設定になっているけれど。
02481.0008(破滅挑発) ◆rzOmotimAo
2005/12/22(木) 17:47:40ID:???http://pc8.2ch.net/test/read.cgi/php/1135240078/
新スレたったからいいや。
0249nobodyさん
2005/12/22(木) 19:11:47ID:vwG+O/GX505です
先週来、うちのサーバのアクセスログに、こちらの(うちには存在しない)PHPを呼び出そうとする
ようなアクセスがあったというエラーが延々と記録されてます。
ありそうな名前のPHPを呼び出して、何かをさせようとしているみたいです。
たとえば /blog/xmlrpc.php とか。
うちは、今のところはエラーログが太る程度で済んでいるのですが。
パターンは2つ。
ひとつは、ある種のスクリプトを起動させて、妙なクエリ渡して、結果をどこかに送信させようとしているみたい。
もうひとつは、直接ブログ(らしい)PHPに対してPOSTで何かを送りつけています。
アクセス元のアドレスを探ってみると、多くは個人サーバ(らしき所)でPHPでブログが動いているようなんです。
あくまで推測ですが、
ある種のPHPに何かの脆弱性が見つかって、これを突いて伝染するのではないかと。
感染した所は別のブログを探して・・・だと怖いなあと。
今回の手口は、ありそうなPHPの名をそのまま呼び出しす機械的なパターンです。
CGIもそうですが、他所から貰ってきたスクリプトなどを置く場合は、
(1)ファイル名を変えるか、設置する場所の名を標準的な名でなくする。
(2)変数や引数の名を推測しにくい名に変更する。
ぐらいはしておく方が安心だと思います。
というレスを別の板で見たんだけど、
この板で話題になってるスレってありますか?
0250nobodyさん
2005/12/22(木) 20:06:23ID:???それウイルスだよ
うちにも来てた
こんな文章書かずに/blog/xmlrpc.php でぐぐれば直ぐ解ると思うが・・・
釣りか-;
0251nobodyさん
2005/12/22(木) 20:49:52ID:iK3Yz+s2<input name="password" type="password" value="" size="12" maxlength="12">
<input type='submit' name='update' value='更新'>
<input type='submit' name='delete' value='削除'>
<input type='hidden' name='id' value='hogeid'>
</form>
上記のようなフォームを作り、掲示板の中身を更新、削除を実行したいと思っています。
このとき、1つの<form>に二つのボタンが存在するのですが、どちらが押されたかを正確にPHPに伝えるにはどうしたらよいのか分かりません。
「更新」や「削除」というテキスト情報が送られるのでそれでチェックとか
やろうとすると文字コードとかその辺が原因なのかうまくいきません。。
また、下記のように情報が入っているかでやってみましたが何度か成功するものの、やはり高確率で失敗します。
if(isset($_POST['delete'])){ delete($_POST['id']); }
else if(isset($_POST['update'])){ update($_POST['id']);}
何卒、よろしくお願いしますm(_ _)mペコリ
0252nobodyさん
2005/12/22(木) 20:58:05ID:???submitのnameを統一して
<input type="submit" name="action" value="更新">
<input type="submit" name="action" value="削除">
if ($_POST["action"] == "更新") ・・・・・
ってやればいいんじゃね?
0253nobodyさん
2005/12/22(木) 20:58:46ID:???PC用のブラウザが相手ならその書き方で普通に動かないか?
携帯はボタン2個は無理な端末があるからどうしようもないけど。
0255nobodyさん
2005/12/22(木) 21:09:21ID:wNhRz1jC0256nobodyさん
2005/12/22(木) 21:11:01ID:???よっこいしょっとリターンキーを押してるんじゃないかなぁ。
そんくらいしか不都合が起きるケース無さそう。
0257nobodyさん
2005/12/22(木) 21:57:47ID:???レスありがとうございます。
思ったより忙しくなってしまった為、現在まで仕事というハメになってしまいました。
ご報告が遅れてしまって申し訳ないです。
先程、試してみた所、見事$repnumを表示させる事が出来ました。
仕組みを理解しておらず、恥さらしとなってしまいましたが、
今後とも頑張って勉強していこうと思います。
教えて下さった方々、本当にありがとうございました。
0258nobodyさん
2005/12/22(木) 21:58:53ID:???0260nobodyさん
2005/12/22(木) 23:08:50ID:???$a = array(0,1,2,3);を$a = array(0,1,3);という風にしたいのです
unset($a[2])では空白が出来てしまいます
0261260
2005/12/22(木) 23:13:15ID:???0262nobodyさん
2005/12/22(木) 23:15:15ID:???0263nobodyさん
2005/12/23(金) 02:02:31ID:???どうもうまくいきません。
$arry1="【ぬるぽ!】";
$count1=mb_strlen($arry1);
$i=0;
while($i <= $count1) {
imagettftext($image, $size, 0, $yoko, $tate, $fontcollar, "$font", mb_substr($arry1,$i,1));
$tate=$tate+25;
$i++;
}
こんな感じでやって、一文字ずつやれば一応できるんですが、
それだと【】なんかが文字列に含まれていると、それは横向いたままで出力されるから不恰好で、、
どなたかうまい方法あればご教授願えませんでしょうか?
0264nobodyさん
2005/12/23(金) 02:16:59ID:???0265nobodyさん
2005/12/23(金) 17:52:19ID:???0266nobodyさん
2005/12/23(金) 19:24:54ID:???あとはこれか
ttp://www.tt.rim.or.jp/~rudyard/torii009.html
0267nobodyさん
2005/12/23(金) 19:39:13ID:???回転させないといけない特定の文字だけ1文字ずつ処理が必要な感じだな。
特定の文字が指定されたときだけ、1度別のイメージリソースに出力しといて、
それをimagerotate()で回転させてからimagecopymerge()で本来の画像に
マージコピーする、って手順じゃダメか?
0268nobodyさん
2005/12/23(金) 20:46:42ID:???in /local/Web/sites/phpweb/include/ip-to-country.inc on line 65
http://www.php.net/
m9(^Д^)プギャー
0269nobodyさん
2005/12/23(金) 20:52:53ID:gfPK9X7h>>268みたいなエラーが出て見れなかったので質問させてください。
includeを使う時、相対パスで…
<?php include("../include.inc"); ?> は大丈夫でしょうか?
以前includeは「絶対パス」で書けって言われたのですが、相対でも出来てしまうので
どっちが正しいのか分からなくなってしまいました。
0270nobodyさん
2005/12/23(金) 21:00:57ID:???0271nobodyさん
2005/12/23(金) 21:03:34ID:???angleに角度を指定したら、縦書きじゃなくて全体的に回転させただけになると思う
回転させるとおかしい文字をテーブルにしておき、1文字処理する際に
出くわしたらangleに90や270を指定してやればいいのでは?
0272nobodyさん
2005/12/23(金) 21:04:35ID:???プログラムを配置する環境さえ間違えなければ
相対パスで全然問題ない。
ページの配置がディレクトリレベルでコロコロ変わるなら
絶対パスの方が安全で自由度が高い、ってだけだろう。
0273nobodyさん
2005/12/24(土) 12:04:08ID:???0274nobodyさん
2005/12/24(土) 15:45:55ID:???怒られてしまいます。日本語の部分をどう変換したら受け取ってもらえるのでしょうか?。
$headers = "From: 日本語 <post@mail>\nReply-To: post@mail\nX-Mailer: PHP/".phpversion();
0275nobodyさん
2005/12/24(土) 15:57:45ID:???メールヘッダがちゃんとJIS+base64エンコードになってないってこと?
それと改行は横着せずちゃんと¥r¥nした方がいいと思うよ。
0276nobodyさん
2005/12/24(土) 16:04:00ID:fujLuwhqsystem("ほげほげ");
system("ふがふが");
system("ふー");
system("ばー");
?>
のようなものがある場合、
「ほげほげ」の実行が終了してから「ふがふが」の実行がはじまる
「ふがふが」の実行が終了してから「ふー」の実行がはじまる
「ふー」の実行が終了してから「ばー」の実行がはじまる
という順番になっているのでしょうか?
あるいはそうでない場合、
上記順番で順次に実行させるにはどうすればよろしいのでしょうか?
よろしくお願いします。
0277nobodyさん
2005/12/24(土) 16:06:45ID:???0279nobodyさん
2005/12/24(土) 17:17:09ID:???付けられないのでしょうか?
よろしくお願い致します。
0284nobodyさん
2005/12/24(土) 20:49:43ID:???0285nobodyさん
2005/12/24(土) 21:04:30ID:???実際の所どうなのでしょうか?
0286nobodyさん
2005/12/24(土) 21:09:18ID:???0288nobodyさん
2005/12/24(土) 22:05:33ID:???そうでなければファイルを読んだ方が速いことが多い。
ただ、PHPってファイルアクセスや配列のメモリアロケーションとかがかなり遅いので、
その辺を同じように処理させてないと一概にどっちが速いとか判断できなくなる。
0289nobodyさん
2005/12/24(土) 22:59:47ID:???ベターな方法を選ぶのは大事だよ
0290nobodyさん
2005/12/25(日) 00:12:45ID:BQDdD2yNphpでのXML読み書きを解説した良いページってありますか?
0291nobodyさん
2005/12/25(日) 00:35:38ID:???とある板では、専用スレなるものが立っていて、スレが進むと
「過去ログ倉庫」にきちんと整理しているところがあります。
手動でログを収集し、dat2htmlなどでhtml化してwebサイトに
まとめているようです。
これを、アンテナみたいに2ch鯖から現行スレを自鯖に随時ミラーし(
ミラーも随時読めると良)、1000いったらそのまま過去ログ
として保存・・・みたいに自動化されている方はいらっしゃいませんか?
こんだけ板があってスレがあって有能な人たちがいれば、ありそうな気がする。
0292nobodyさん
2005/12/25(日) 01:17:51ID:xdx8WIxlttp://www.kent-web.com/bbs/joyful/joyful.cgi
のようなHTTP_REFERERをチェックしている掲示板に対して
どうにか書き込める方法は無いでしょうか?
お願いします。
0293nobodyさん
2005/12/25(日) 01:18:15ID:???0294nobodyさん
2005/12/25(日) 01:49:15ID:???0295nobodyさん
2005/12/25(日) 01:49:24ID:???>他のサイト掲示板に一括で書き込むの
その行為の目的が正当なものであることを説明して頂戴。
こっちがスパマーでないと判断できる理由をね。
0296292
2005/12/25(日) 01:57:06ID:xdx8WIxlサイトの広告用掲示板に一括で書き込めると言う
サービスを提供する為です。
もちろんスパムのような行為を行う気もございませんし、
他のサイトへの書き込みが出来る様にも致しません。
よろしくお願い致します。
0298292
2005/12/25(日) 02:13:00ID:xdx8WIxl許可REFERERの中に入れる事で解決致しました。
ありがとうございます。
ちなみに、それ以外の方法はないでしょうか?
PHPではそういった事はできないのでしょうか?
0299nobodyさん
2005/12/25(日) 02:14:58ID:???できるけど相手サイトのセキュリティを破る方法の公開になるから
こんなとこで書きたくない。
REFERERチェックがいくら軽度のチェック方法でしかないとしても
クラック方法を公にしていいってこたあるまい。
0300292
2005/12/25(日) 02:19:14ID:xdx8WIxlわかりました。ありがとうございます。
0301291
2005/12/25(日) 09:54:59ID:???なるほど。
自鯖でP2使ってるんで、公開用のスクを書けばいいですね。
あとはdat取り込みを自動化させる、と。ふむふむ。
0302nobodyさん
2005/12/25(日) 10:43:39ID:???ってどう意味デツカ?
0303nobodyさん
2005/12/25(日) 10:48:32ID:???0304nobodyさん
2005/12/25(日) 12:00:30ID:???無かったらXOOPSとかにあるのを移植するとかしなきゃだめかなぁ?
0305nobodyさん
2005/12/25(日) 12:27:45ID:???クリスマスプレゼントとして、君たちの質問になんでも答えてあげようじゃないか。
0306nobodyさん
2005/12/25(日) 12:57:24ID:BQDdD2yNファイルはどうやって生成したらいいですか?
0309nobodyさん
2005/12/25(日) 13:32:09ID:???0311nobodyさん
2005/12/25(日) 13:58:34ID:???正しく受信できないようです。日本語をどう変換すると良いのでしょうか?。
Content-Type: image/jpeg; name="日本語"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="日本語"
0313nobodyさん
2005/12/25(日) 16:12:23ID:???複数のページを出力するようにしたいと思っています。
PHP等でできた掲示板を見ると、修正削除などの処理を、
1つのPHPでできるようになってますよね?
語尾に?mode=modifyとかついているやつです。
ソースを見てもいまいちわからなかったのですが、
どういった関数?を使えばいいのでしょうか?
やり方などにもヒントがあれば教えていただきたいです。
0314nobodyさん
2005/12/25(日) 16:23:58ID:???time_1というレコードでMySQL側でのデータ形式はtimeとなっています、
` time_1` time NOT NULL default '00:00:00',
phpの方から
First time:<input type="text" name="first_time"
value="<?php echo $first_time ?>"><br>
テキストタイプのデータとしてデータベースにインサートしているのですが
データベースでは、見かけ上、正常に登録されている様に見えるのですが、
問題ないのでしょうか?
<input type=
の方でデータ形式を特別に時間の形式を指定してやらなければならない様な事は
無いのでしょうか?
御教授お願いします。
0315nobodyさん
2005/12/25(日) 16:33:06ID:???聞き方がまずいからだろうね
0317nobodyさん
2005/12/25(日) 16:53:33ID:???んじゃヒント
if($mode == 'コマンド1') {
コマンド1の処理とHTMLの表示
} else if($mode == 'コマンド2') {
コマンド2の処理とHTMLの表示
} else if($mode == 'コマンド3') {
コマンド3の処理とHTMLの表示
}
0318nobodyさん
2005/12/25(日) 17:42:35ID:???0319nobodyさん
2005/12/25(日) 17:56:53ID:???外部HTMLファイルなんて扱えるのか?
0320nobodyさん
2005/12/25(日) 18:01:17ID:???読みにくい質問だなぁ…
しかも結局何が聞きたいんだって感じ。
> <input type= の方でデータ形式を特別に時間の形式を指定してやらなければ
inputの部分で形式の指定なんてことはできません。
> データベースでは、見かけ上、正常に登録されている様に見えるのですが、
> 問題ないのでしょうか?
入力内容を何のチェックもしないでDBに放り込んでるなら問題ありまくりです。
PHPでちゃんと形式チェックして必要があれば加工シル!!
0322313
2005/12/25(日) 19:10:24ID:???レス、ヒントどうもありがとうございます。
ifとswichですか。
swichは使ったことがないので、早速マニュアル引いて
やってみたいと思います。
0323nobodyさん
2005/12/25(日) 19:32:06ID:???0324nobodyさん
2005/12/25(日) 19:57:15ID:???0325nobodyさん
2005/12/25(日) 20:25:22ID:???0326nobodyさん
2005/12/25(日) 21:54:50ID:???つPC
0327nobodyさん
2005/12/25(日) 22:13:52ID:???みんなで(´Д⊂
0328nobodyさん
2005/12/25(日) 22:50:38ID:???漏れはcase文を使う。
もう一つチェック用の変数をセッションで持ち回せばそのフラグで管理者だけしか表示させないとか、同じページでも管理者だけ[削除]とかを表示させたりできる。
ただ、うまく分けないとスパゲティになるから注意
0329nobodyさん
2005/12/26(月) 00:46:47ID:???HTMLと分けて管理するのを作ったら見事にスパゲティ
になりました
0330nobodyさん
2005/12/26(月) 01:48:21ID:???0331nobodyさん
2005/12/26(月) 02:48:31ID:xVIqedOU"[TEST]"という文字列を処理したい場合は
"\[TEST\]"であってますでしょうか?
0332nobodyさん
2005/12/26(月) 02:58:53ID:???0333313
2005/12/26(月) 03:11:44ID:???レスどうもありがとうございます。
swichのマニュアルを見ていたところ、
同ページにcaseもでてきていたので、
小さなスクリプトを書いて、動作を検証しています。
まだいまいち思ったとおり動きませんが、
なんとかなりそうな気がします。
本当にどうもありがとうございました。
0334nobodyさん
2005/12/26(月) 11:22:41ID:???0337nobodyさん
2005/12/26(月) 13:39:27ID:???0338nobodyさん
2005/12/26(月) 13:43:37ID:???本当にありがとうございました。
0339nobodyさん
2005/12/26(月) 14:04:32ID:???よくよく見るとこういったネタで埋まってるのな。
0341nobodyさん
2005/12/26(月) 14:55:26ID:???0342nobodyさん
2005/12/26(月) 15:03:30ID:???本当にありがとうございました。
0343nobodyさん
2005/12/26(月) 15:04:51ID:???本当にありがとうございました。
http://hobby7.2ch.net/test/read.cgi/car/1135550661/l50
0344nobodyさん
2005/12/26(月) 15:12:35ID:???本当にありがとうございました。
0345nobodyさん
2005/12/26(月) 18:04:54ID:???ホットメールに以下の要領でメールを送信しようとしているのですがmb_encode_mimeheader($char)を
加えるとメールを受け付けてくれなくなります。
$headers = "From: ".mb_encode_mimeheader($char)." <test@test.co.jp>"
件名を省いて以下のようにすると受け付けてくれるのですが件名を加えてメールを受信して貰う方法は
ないのでしょうか?。
$headers = "From: <test@test.co.jp>"
0346nobodyさん
2005/12/26(月) 18:10:13ID:???$headers = "From: ".mb_encode_mimeheader(mb_convert_encoding($char,"JIS"))." <test@test.co.jp>"
としたら?
0347nobodyさん
2005/12/26(月) 18:25:19ID:???0348nobodyさん
2005/12/26(月) 18:33:40ID:???だめでした(^^;
ErrCode = -81
ErrString = [MAIL FROM:] not permitted by remote SMTP server
ErrInfo = 501 Invalid Address
SMAIL SMTP-Send MX = "pamx1.hotmail.com." SMTP = "test.co.jp" From = " =?ISO-2022-JP?B?GyRCJGYkJiRsJCQbKEI=?= <test@test.co.jp" To = "test@hotmail.co.jp" Failed !
SMTP-Error = "501 Invalid Address"
SMTP-Server = "pamx1.hotmail.com."
0350nobodyさん
2005/12/26(月) 19:05:36ID:???Subjectです。ホットメールから逆に送ってみて比較したりするのですが良くわかりません。
ISO-2022-JPでエンコードしたら日本語が使えるというものではないのでしょうか?。
0353nobodyさん
2005/12/26(月) 19:21:33ID:???エラーメッセージは「そのアドレスは無効」と言っているから,
日本語云々以前の問題…というオチじゃないんだよね.
日本語入れなきゃ通るみたいだし.
ダブルクォーテーションは関係ないかなぁ.
うちのメーラーは「てすと <test@hotmail.co.jp>」とするとエラーが出て,
「"てすと" <test@hotmail.co.jp>」に訂正してしまうので.
半角英数のみだとクォーテーションなしでも通るけど.
的外れだったらゴメン.
0354nobodyさん
2005/12/26(月) 19:40:01ID:???あ、勘違いしていました。
subjectではなくて差出人名です(^^;すいません。
「"」を試してきます。
0355354
2005/12/26(月) 19:59:49ID:???From: ここに文字(英語含めて)が入るとだめみたいです <test@test.co.jp>"
0356nobodyさん
2005/12/26(月) 21:03:46ID:???0357nobodyさん
2005/12/26(月) 21:44:13ID:???メールの仕様を詳しく解説してるサイトありませんか?
探したんですが見つかりませんでした。
0358nobodyさん
2005/12/26(月) 21:58:36ID:???俺んとこでは普通のメーラーからニックネームつきメアドが届いてるから大丈夫じゃないの?
1度、全く同じFromアドレスを一般的なメーラーで送ってみて、
エンコ内容やヘッダ内容の違いでも比較してみればいいんじゃないかと。
0360nobodyさん
2005/12/26(月) 22:43:32ID:???戻り値が「0」のことも考慮すると、
if (array_search($foo, $bar) === false) {
} else {
(やりたい処理)
}
という極めて美しくないソースになります。
こんなとき皆さんはどうされますか?
0361nobodyさん
2005/12/26(月) 22:45:13ID:???0363354
2005/12/26(月) 23:11:06ID:???Received: from home ([127.0.0.1]:1859)
by nature.dip.jp with [Mail Server]
id <S21> for <test@test.co.jp> from <test@test.co.jp>>;
Mon, 26 Dec 2005 23:05:58 +0900
「>>」とかなってるし・・・
前はここにも from =?ISO-2022-JP?B?GyRCJGYkJiRsJCQbKEI=?= <test@test.co.jp>
とかなってたから、これが原因な気がします
どちらにしろ送信できないんですけどね(^^;
0364354
2005/12/26(月) 23:14:02ID:???0365nobodyさん
2005/12/27(火) 00:09:06ID:???エラーの内容がMAIL FROMがおかしいって言われてたよね?
それってヘッダじゃなくてSMTPのエンベロープFROMアドレスの事じゃないの?
sendmailで送信してるなら -f オプションでちゃんと指定してみたら。
0366354
2005/12/27(火) 10:10:17ID:???やはりPHPのmb_send_mailの「Form:」ヘッダーに「<」「>」が含まれている場合、他のヘッダー情報に「<<」や「>>」などの
悪影響を及ぼしてしまうように思います。FromはメールアドレスだけにしてReturn-Pathに同じように差出人名を入れた
場合はちゃんと届くのですが・・・。
x From: abc <testt@test.co.jp>\r\n
x From: abc test@test.co.jp\r\n
x From: <testt@test.co.jp>\r\n
o From: test@test.co.jp\r\n
0368nobodyさん
2005/12/27(火) 10:30:05ID:???echo ("<html><head><title=\"403 Forbidden\"></head><body>");
echo ("403 Forbidden<br>");
echo ("$host_name<br>");
echo ("$host_ip");
echo ("</body></html>");
exit;
こんなのって有りですか? IEとFirefox で挙動が違う。
0370nobodyさん
2005/12/27(火) 10:37:59ID:???まさか extra-headers にReturn-Path:行を追加したのではないよね
ちなみに、OSとPHPのバージョンとか、関連する設定はどうなってる?
0371354
2005/12/27(火) 10:39:39ID:???結果は全く同じでした(*ノ-;*)
PHP > X-Mail > メールソフトは差出人名を入れても上手く行くのですが
PHP > X-Mail > HotMail になるとエラーになります(^^;。
0372354
2005/12/27(火) 10:42:40ID:???あ、すいません。
Windowsなのでsendmail_path = の設定は出来ないと思うのですがどうなのでしょうか?。
XPSP2+XMail+PHP5.1.0です。
0373nobodyさん
2005/12/27(火) 10:47:39ID:???塚さ、WindowsでX-Mail使っているとか情報小出しにするなよ。
要するに、SMTPがX-Mailとかいうので、
宛先がホットメール以外だとうまくいくけど、
宛先がホットメールだとダメってことか?
差し出し人名を日本語でなくて英字だとどうなる?
ちなみに、ソース晒してみたら?
0374nobodyさん
2005/12/27(火) 11:06:54ID:???windowsならメールを送る前にini_set("sendmail_from","hoge@example.com");
してみたらどうかな。
ヒマなのでソースを斜め読みしたら、windowsの場合そいつがエンベロープFromに
優先的になってるようだ。
なんかfrom:ヘッダーから自動的に抽出してるみたいだけど、
そこのところが腐ってるのかも。
0376354
2005/12/27(火) 11:08:31ID:???ヤフーには正しく届きます。
ソースと言っても以下のようにやっているだけなのでこれと言って特別な事はしていないのです。
ホットメール厳しい(*ノ-;*)。
mb_language('Japanese');
mb_detect_order('sjis-win,eucjp-win');
mb_internal_encoding("UTF-8");
$mime_from = mb_encode_mimeheader(mb_convert_encoding($headers,"JIS"))." <test@test.co.jp>\r\n";
$headers = "From: ".$mime_from;
$headers .= "Return-Path: ".$mime_from;
$headers .= "X-Mailer: PHP"."\r\n";
@mb_send_mail(
$to
,$subject
,$message
,$headers
);
0377354
2005/12/27(火) 11:13:14ID:???374さんのおっしゃるとおりでした。
ini_setしたら届きました<(_ _)>。
php.iniをちゃんと設定しろという話しでしたね・・・。
みなさま、ありがとうございました。
0378nobodyさん
2005/12/27(火) 11:15:52ID:???MAIL FROM でエンベロープを指定するようだ。
だから "From: hoge <fuga@example.com>" の場合は
MAIL FROM: <hoge <fuga@example.com>>
という事になって、これがSMTP的に正しくなくてエラーになるんじゃないかな。
つまりini_set("sendmail_from","fuga@example.com")しておくのは必須の気がする。
と、ここまで書いたところでもう解決してたのね。
0379nobodyさん
2005/12/27(火) 11:39:22ID:???とりあえず
<title=\"403 Forbidden\">
これは無いな
<title>403 Forbidden</title>
だろ
それとecho に( )使うのも違和感ある
0380nobodyさん
2005/12/27(火) 11:52:48ID:???echo () はどうかわからないけど
"" でくくってるから<title=\"403 Forbidden\">でいいんじゃない
0381nobodyさん
2005/12/27(火) 11:53:04ID:???txtファイルから読み込んでグラフの値に代入する時
txtファイルを配列に格納→y軸データの配列にそれぞれ変数を代入する。
の流れで出来ないのでしょうか?
0387381
2005/12/27(火) 15:16:55ID:???上手く出来なかったのです。
jpgraph1.19使用、レンタルサーバのphpinfoを見るとGD関連はenableでした。
解凍した中にあるsrcを
public_htmlの下にアップロードしました。日本語使用予定は無いので日本語化しておりません。
public_html/src/Examples/testsuit.phpを起動すると
この時点でいくつかのグラフは表示されませんでした。
この中で表示された一つのexample0.phpのソースを試しに改変する事に。
適当にy軸値を変えるとグラフも変わり、感動しつつ本題のテキストファイルのデータをグラフに反映しようとしました。
追加したのは、example0.phpのinclude以下に
$ufile = "./ufile.txt";
$fp = file($ufile);
list($a1,$a2) = explode(",",$fp[0]);
とし、$ydataの最後二つを$a1,$a2としてみたのですがグラフにはこの二つの変数は表示されませんでした。
public_html/ufile.txtとなっており、ファイルの中身は
10,15
となっています。
分かりにくい点などあるやもしれませんが、どうぞアドバイス宜しくお願いします。
0388nobodyさん
2005/12/27(火) 16:35:37ID:???example0.phpの<?phpの次に
ini_set("display_errors", 1);
error_reporting( E_ALL );
を追加する
0389nobodyさん
2005/12/27(火) 18:25:47ID:???JavaではintやbooleanのラッパークラスとしてIntegerやBooleanがありますが、それに相当するものです。
自作するのは簡単なのですが、PHPあるいはPECLなどにすでに用意されてあればそちらを使おうと思います。
あと、日付や時刻をあらわすクラスなんてのも探しているんですが、あれば教えてください。
よろしくお願いします。
0391nobodyさん
2005/12/27(火) 22:18:13ID:???全部型チェックさせてたのを思い出した。
いま? やめた。なんか文句言われたから。
0393nobodyさん
2005/12/28(水) 08:38:44ID:???ttp://www.phpclasses.org/
0394nobodyさん
2005/12/28(水) 15:04:17ID:???mime_content_typeするしかないのでしょうか?。
0396nobodyさん
2005/12/28(水) 18:02:58ID:???変数にバイナリデータがあるって事は、そのデータは作ったか取得したかのどっちかだよねぇ?
作ったのならmime-type決定してるはずだし、取得したならどーせ保存するんだからファイルに落とせばいいし。
何がしたいかによってやり方も変わる。
0397nobodyさん
2005/12/28(水) 18:20:02ID:???それがファイルに落とすなら良いのですがDBに入るので出来る事ならファイルに落とさずに処理したいのです。
やはり自作関数作るしかないですよね。そこまでするなら最初の何バイトかファイルに落として識別させるかな、
なんて考えています。ファイル名は拾得出来るので拡張子から判断するのも手だとは思うのですが、なんか
スッキリしない感じがします。
0398nobodyさん
2005/12/28(水) 18:42:31ID:???DBにファイル入れるのはあまりオススメできないが・・・
そーゆーことならテンポラリ作って処理するしかないだろうねぇ
0399nobodyさん
2005/12/28(水) 18:51:25ID:???地震なかった?
0400nobodyさん
2005/12/28(水) 19:16:44ID:???おれはいつも揺れてるから関係ないし
0401nobodyさん
2005/12/28(水) 19:22:28ID:???アドレスに、PHPの変数を混ぜたい時どうすればいいのでしょうか?
<SCRIPT language="JavaScript">
<!--
function winopen(w,h){
win1=window.open("$x.html","","width="+w+","+"height="+h);
}
//-->
</SCRIPT>
などにしたいのですが・・・。
0404nobodyさん
2005/12/28(水) 19:39:53ID:???ちょっとくらい外れてたっていいじゃない。
0405nobodyさん
2005/12/28(水) 19:40:33ID:???0406nobodyさん
2005/12/28(水) 19:42:55ID:???<!--
function winopen(w,h){
win1=window.open("<?php echo $x;?>.html","","width="<?php echo $w;?>","height="<?php echo $h;?>");
}
//-->
</SCRIPT>
ってことじゃないの?
0408nobodyさん
2005/12/28(水) 20:05:27ID:HUgW2hhm連続送信対策をしたいのですが
方法として、
送信者のIPを記録するログファイルを用意し
送信しようとするたびに、ログファイルから送信者のIPを
探し、ログファイルに存在しない、
もしくは存在してもタイムスタンプが規定の時間を経過している場合
送信を完了させる。
というものを考えています。
そこで、ログファイルからのIP検出の際
fgets()でシーケンスに調べていく他に、
一気に調べたりする方法
(1行ずつ見ず指定文字列がファイル内にあるか見るような関数)
はありますか?
あるなら、よろしければ関数名だけでも教えてください
0410nobodyさん
2005/12/28(水) 20:42:21ID:???<STYLE type="text/css">
<!--
body {
background-color: black;
font-size : 14px;
line-height : 27px;
word-spacing : 3px;
letter-spacing : 3px;
font-family : Verdana,sans-serif;
overflow-x:hidden;
}
-->
</STYLE>
とした所、リンクの下線は消えず・・・。
もしかして、PHP側にスタイルの制限あったりでしょうか?
0411nobodyさん
2005/12/28(水) 20:46:46ID:???$s = 'xx<0>x<3><2>x';
$a = array('A', 'B', 'C', 'D');
これを、<0> を $a[0] で置き換える、<1> を $a[1] で置き換える、.... ということをしたいです。
今はこうしています。
for ($i = 0; $i < count($a); $i++) {
$pat = '/<' . $i . '>/';
$s = preg_replace($pat, $m[i], $s);
}
しかし、これだと配列の長さが長くなるほどループの回数が増えます。
できれば、preg_replace()を1回だけ呼び出すだけにしたいのですが、できますでしょうか。
preg_replace_callback() を使えばできるのかと思いましたが、コールバック関数に $a を渡すことができないため、できなさそうです。
どなたか教えてください。
0412nobodyさん
2005/12/28(水) 20:46:54ID:???CSSスレ行きなされ。
0413nobodyさん
2005/12/28(水) 20:47:34ID:???ファイル保存も考えたのですが、そのファイルをURL自打ちされて外部からアクセスされたくないので
特定のディレクトリに置いてしまうのは気がひけたのです。ファイルを作成してURL外において要求
された時だけPHP経由で公開すると言うのが良いのでしょうか?。
>>408
私は邪道だからIP毎にファイル作成してます(^^;。
0414nobodyさん
2005/12/28(水) 20:48:56ID:???<style type="text/css" media="all">
<!--
a {
text-decoration: none;
}
-->
</style>
0415nobodyさん
2005/12/28(水) 20:49:36ID:???PHP以前の問題でしょ。
文体からして>>401と同じ人だと思うけど、
もうちょっとcssスレやjsスレで勉強してからきたほうがいいと思う。
これだけじゃかわいそうなので、
下線を消すためのcssは、border-style:none;など。
0418415
2005/12/28(水) 20:56:23ID:???border-style:none;ってのはきにしないでください。
0419nobodyさん
2005/12/28(水) 21:00:06ID:???申し訳ないです。
サイトで勉強してきますorz
答えて下さった方ありがとうございました。
0420nobodyさん
2005/12/28(水) 21:00:07ID:???良スレの悪寒……w
0421nobodyさん
2005/12/28(水) 21:32:32ID:???0423nobodyさん
2005/12/28(水) 21:55:23ID:???0425nobodyさん
2005/12/28(水) 22:04:55ID:???0426408
2005/12/28(水) 22:26:08ID:HUgW2hhmfile_get_contentsを調べてみました
確かに便利ですね
どうもありがとうございます
>>413さん
それも、便利そうですね
だけど、アクセス数が高くなってくると
ログファイルでパンパンになりませんかね^^;
利用人数に応じてそれも検討してみます
ありがとうございます
>>422さん
file()で配列扱いになるんですね
知りませんでした^^;
よろしければ、どういう形式で配列に入るか教えていただけませんか?
***.***.***.****(IP) , 2005/12/28/23:00(改行)
***.***.***.****(IP) , 2005/12/28/23:25(改行)
という形式とさせてください
0427408
2005/12/28(水) 22:26:50ID:HUgW2hhm0428nobodyさん
2005/12/28(水) 22:32:01ID:???1行の内容がそのまま配列1要素(改行付き)
なので、in_array()じゃ探せないな。
preg_grep('/^'.preg_quote($IP).',/', file("ファイル名"))
ってとこでどーよ?
0429nobodyさん
2005/12/28(水) 23:07:39ID:???0432408
2005/12/29(木) 00:50:22ID:ziv/ZkA5勉強不足で、教えてもらった関数が使いこなせないので
とりあえず、勉強しなおしてからまた明日にでも質問させていただきます
どうもありがとうございました。
IP
時刻
IP
時刻
・
・
・
みたいな書き出しかつ、シーケンス方式でIPを検出させれば楽なんですが
あまりにも、芸がないもので・・・
ちなみに、
アクセスするたびにDB(mysql)にログを残していって
DBから調べて・・・エラーか否かっていうのは
アクセス量にも寄ると思いますが、どんなもんでしょう?(鯖負荷など)
それではまた明日・・・ありがとうございました
0433nobodyさん
2005/12/29(木) 01:04:49ID:???大量のアクセスがあるならファイルに保存するよかDBがいいだろ。
その辺はアクセス数次第だから両方実装してみてベンチでも取って
想定されるアクセス量のときに速い方を選べ。一般的正解など無い。
0434nobodyさん
2005/12/29(木) 04:10:14ID:1WTCJJ6c引数が ?test=hoge の場合 文字例 AAAを出力し、員数が無い
場合何も表示しないようにしたいのですが:
$mode = $_GET['test'];
if ($mode = 'hoge'){print("AAA");}
とまではやってみたのですが、員数が無い場合
何も表示しない方法が分からなくて行き詰まってしまいました。
こんな私ですがよろしくお願いします。
0435nobodyさん
2005/12/29(木) 04:26:08ID:???if(count($_GET) == 0) { exit; }
とか
if($_SERVER["QUERY_STRING"] == "") { exit; }
とか。
POSTデータもチェック要るのか?これ。
0436434
2005/12/29(木) 04:56:52ID:1WTCJJ6cありがとうございます、員数は誤字でした。
>POSTデータもチェック要るのか?これ。
よく考えてみたら必要ありませんでした。
<?php
if($_GET['test'] == 'hoge'){echo "<p>マンセー</p>";}
if(count($_GET) == 0){exit;}
?>
としてみましたが、何故か「<p>マンセー</p>」がprintされません。(当然ですが「.php?test=hoge」としました)
echoの使い方は間違ってないと思うのですが…
エラーも出力されません。
0437nobodyさん
2005/12/29(木) 05:08:54ID:???2chのIDからホスト名生成してください
0438nobodyさん
2005/12/29(木) 05:10:56ID:???<?php
var_dump($_GET);
if($_GET['test'] == 'hoge'){echo "<p>マンセー</p>";}
if(count($_GET) == 0){exit;}
?>
とするとどんな内容が表示される?
0440434
2005/12/29(木) 05:19:55ID:1WTCJJ6cあ、何かの手違いでした。
ちゃんと 「まんせー」と表示されていました。すみません。
>するとどんな内容が表示される?
ちなみにやってみるテスト…
array(1) {
["test"]=>
string(4) "hoge"
}
でした。ありがとうございました。
0441434
2005/12/29(木) 06:00:20ID:1WTCJJ6c後ろの処理が全部駄目になってしまいます。
そこで、[test]キーの値が[hoge]の場合のみ
「<p>まんせー</p>」をプリントして、それ以外または引数が指定されてない場合は
何もプリントしないでそのまま…なんてことは出来るのでしょうか?
0443nobodyさん
2005/12/29(木) 07:41:42ID:N/LCxJEVマニュアルを探す気力がありません。
"あいうえお。かきくけこ★さしすせそ"
この文字列から「。★」以外を配列に入れるには
どう書いたらいいですか?
文字コードはUTF8です
$matches[0] に "あいうえお"
$matches[1] に "かきくけこ"
$matches[2] に "さしすせそ"
っていう配列を得たいです
0444nobodyさん
2005/12/29(木) 08:30:41ID:???まず精神科か心理カウンセラーの診察を受けて然るべき治療を施した上でマニュアルが読めるようになるまでは来なくていいよ。
マニュアル読めればその程度の問題は非常に簡単。mb_splitで一撃。
0446443
2005/12/29(木) 09:13:34ID:N/LCxJEVマニュアル読めたyo!
寝たら読めた。みんなありがとう
0448nobodyさん
2005/12/29(木) 09:49:51ID:???0449nobodyさん
2005/12/29(木) 10:00:09ID:???0450nobodyさん
2005/12/29(木) 10:11:04ID:???0451nobodyさん
2005/12/29(木) 10:19:38ID:???$a = 0;
if ($a) { echo "あ"; }
if (!$a) { echo "い"; }
if ($a == "") { echo "う"; }
if ($a != "") { echo "え"; }
if ($a == 0) { echo "お"; }
の結果が
いうお
になります。
$aに0〜の数字が入っていれば真としたいのですが、条件をどのようにすればよいのでしょうか?
0452nobodyさん
2005/12/29(木) 10:27:43ID:???0453nobodyさん
2005/12/29(木) 10:31:53ID:???!==
0454nobodyさん
2005/12/29(木) 10:33:15ID:???少し考えればできそうなのに頭がこんがらがるお前は頭いいね。
つーか
> $aに0〜の数字が入っていれば
って意味ワカンネ。
0455nobodyさん
2005/12/29(木) 11:15:25ID:???0457nobodyさん
2005/12/29(木) 11:27:09ID:???$aが数字の場合、真
$aが空や数字以外なら偽
としたかったのです。
>>455
でできました。ありがとうございました。
0459434
2005/12/29(木) 15:45:06ID:1WTCJJ6cクエリが test=hoge 以外だとエラー吐いたのですが
ちょっと強引に error_reporting(0); で誤魔化しました。
>>447
「ひきすう」だったのね…orz
おかげで解決しました。
本当にありがとうございました。
0460nobodyさん
2005/12/29(木) 16:45:34ID:???じゃあ
if (isset($_GET['test'] ) and $_GET['test'] == 'hoge') {
echo "<p>まんせー</p>";
}
0461nobodyさん
2005/12/29(木) 20:50:49ID:???たしかにサンプルなんかだと
むやみにexitとかdie使っててどうすりゃいいんだ!とか悩んだな。昔は。
ちゃんとhtmlのケツの方まで出したかったりするんだったらエラー処理時の関数を作っておくとよい。
そういう事をしてるうちに見通しのよいソースが書けるようになってくるし、自分の関数をほかのプログラムでも使い回ししやすくなる
0462nobodyさん
2005/12/29(木) 21:07:10ID:???ファイル処理時にファイルの内容なんかをmysqlにもデータ保持させて、
読み込む必要がある場合は、
mysqlから読み込んだりしてます。
この方法ってやっぱりナンセンスでしょうか?
今まで簡単だからとmysqlに逃げてましたがそろそろ真剣に
考えなきゃいけないかなと感じてます。
理由はデータベースからひっぱってくるデータは非常に処理が
しやすいからです。
でも整合性(ファイルとデータベースの違い)とかで
たまに苦しみます。整合性自体も考慮して書けばいいんでしょうが。
0463nobodyさん
2005/12/29(木) 21:52:07ID:???「整合性」って具体的に何の話をしてるんだかよくわからんけど、
DBで処理できる範囲ならそのままでいいんじゃない?
負荷が大きくなってくると少し考えなくちゃいけないけど。
0464nobodyさん
2005/12/29(木) 23:11:37ID:???どっちにしろエラー処理でプログラム終了しちゃったらそこで終わっちゃうし、
かといって終了させないと、実行させたくない正常時処理まで走ってしまう。
結局のとこ、全体の流れをちゃんと組めてないだけだろ?
その程度のごくごく基本的なロジックも組めないならプログラミングなんてやめてしまえと。
関数化しないといけないのはエラー時の表示はもちろん、メインの処理も含めて全体。
元の質問者は「他にどんな処理があるかは教えませんが、表示だけしないで終わるように、
かつ自分で考えなくてもそのまんま動くプログラムを教えてください」とアホ質問してるだけなので、
ここはそういうスレだからそれ自体を怒りはしないけど、ちっとは考えて回答を読めと。
0465nobodyさん
2005/12/29(木) 23:15:54ID:???ファイルをどのように扱うプログラムなのかが分からんので何とも。
ざっと読んだ限りじゃ、そもそもファイル扱う必要ないんじゃない?って思うけど。
でもやってることはファイル内容をキャッシュして扱ってる、ってのと同じだと思うので、
そういう処理は当然のように整合性問題がついて回るけど、だからといって
その種の手法がナンセンスだとは思わない。必然があるならどんどんやればいい。
検索の高速化やファイルロックの堅実性など、下手に悩むよりずっといいこともある。
メリット・デメリットを全然考えずにやってるならナンセンスなんだろうけどね。
0466nobodyさん
2005/12/30(金) 01:41:08ID:???$hairetu = array(
"a","b"
);
格納してあるんですが、これをランダムに順序を並べ替えて
r,d,c,g,aみたいに40個順に出力するにはどうすればいいでしょうか。
0467nobodyさん
2005/12/30(金) 01:48:09ID:???0468nobodyさん
2005/12/30(金) 02:08:10ID:???0469nobodyさん
2005/12/30(金) 02:11:41ID:???どうも。shuffleなんてあったんですね。
array_randはポケットリファレンスに載ってないのはなんでだろ。
0470nobodyさん
2005/12/30(金) 02:19:29ID:???それに対してarray_rand()はPHP4以降。
そのリファレンス本が古いんじゃね?
つーかPHPは仕様の変化が早いからマニュアル系で良書と呼べる本はあんま無いぞ。
テクニック本ならともかくリファレンスとして使うなら本家なりミラーなりの
オンラインマニュアルに勝るものなし、って感じ。
俺は普段、それをローカルに保存して使ってるけど、それだって年に1度は
保存し直しとかないといつの間にか内容変わってて怖いくらいだ。
0471nobodyさん
2005/12/30(金) 04:18:40ID:???(このスレの回答でも出てきてるfile_get_contents()とか4.3.0で追加された)
戻り値とかの仕様も変わっちゃう(特に配列系はかなり変わってる)んだから、
その辺の安い本なんて読みながらコーディングしてるようなやつは
現場じゃ使い物にならないと思うけどな。
ま、趣味で書いてる分には別に構わないけど、それなら他人に質問すんなって感じ。
自分の使ってるバージョンのマニュアルも読まずに質問するのは失礼じゃね?
0472nobodyさん
2005/12/30(金) 04:30:28ID:???0473nobodyさん
2005/12/30(金) 04:58:26ID:???0474nobodyさん
2005/12/30(金) 10:31:47ID:FPBgif0X「test.php」というファイルに別のディレクトリにあるtest2.phpもしくはtest3.phpというファイルの
どちらを上書きするか、セレクトメニューで選択した方を上書きコピーしたいのですが
■select.php (選択した方を読み込むファイル)
require("filecopy.php");
if ($sentaku == true) { //選択ボタンが押された時コピー実行
copyfile();
}
■filecopy.php(select.phpで呼び出された動作)
function copyfile{
switch ($datafile) {
case "test2": //test2が選択された時はtest.phpにtest2.phpを上書き
chmod ("test.php",0666);
copy ("file/test2.php","test.php");
chmod ("test.php",0666);
case "test3": //test3が選択された時はtest.phpにtest3.phpを上書き
chmod ("test.php",0666);
copy ("file/test3.php","test.php");
chmod ("test.php",0644);
}
という感じで書きましたが、
Fatal error: Call to undefined functionエラーが発生します。
どうすれば良いでしょうか?
0475nobodyさん
2005/12/30(金) 10:37:30ID:???0476nobodyさん
2005/12/30(金) 10:38:17ID:???>Fatal error: Call to undefined functionエラーが発生します。
>どうすれば良いでしょうか?
エラー表示を全部書かないのは嫌がらせか?
あとエラー行の位置を示さないのも嫌がらせの一種だからな。
0477nobodyさん
2005/12/30(金) 10:39:39ID:???()は省略可能かどうかは確認したか?
0478nobodyさん
2005/12/30(金) 10:40:56ID:???つーのは、 〜って関数が定義されて無いのに呼び出そうとしたのでガッした、って事。
0479nobodyさん
2005/12/30(金) 10:41:43ID:???失礼。
Fatal error: Call to undefined function: copyfile() in /home/rika/public_html/test/select.php on line 23
23行目は上のselect.php の copyfile(); の部分
0482nobodyさん
2005/12/30(金) 10:47:04ID:???0483nobodyさん
2005/12/30(金) 10:49:21ID:???呼び出し元も何の引数も与えてないんだからfunction側をいくらいじったところで…
こいつ、PHPとPerlを勘違いしてそうな予感。
そのレベルでいきなりrequireで別ファイル定義してたって解決が遅くなるだけだ。
まず最初のうちはselect.phpの中でfunctionの定義して、動くようになってから分離シレ
0484474
2005/12/30(金) 10:50:44ID:???すいません、select.php側の()を消すとエラーは消えました。
が、コピー動作が作動していない様です。
0485nobodyさん
2005/12/30(金) 10:51:53ID:???エラーに関係ないけど,
switch内のcase文は,きちんとbreakしないと,次のcase文まで実行してしまうよ.
test2が選択されても,最後にはtest3がコピーされるね,このままだと.
0489nobodyさん
2005/12/30(金) 10:59:29ID:???今のうちに言っておくが、エラーがなくなったところでそのコピーは絶対動かないぞ。
$datafileってどっから出てきたんだよ。
「HTMLのフォームで渡してます」とか勘違い回答禁止。
0490nobodyさん
2005/12/30(金) 10:59:34ID:???お前は分かっとるのかと。
ちなみに>>482括弧が空でも動くぞ。
0492474
2005/12/30(金) 11:03:19ID:???$datafileはデータファイル(data.dat)の中に。
例えばtest2を選択した時はdata.datの中には
test2 という値が保存される様になってます。
この値は既に確認済みです。
0493474
2005/12/30(金) 11:06:00ID:???0494nobodyさん
2005/12/30(金) 11:06:38ID:???function copyfile() の中で
print $datafile;
とかやってみれ。でてこねーから。
0495491
2005/12/30(金) 11:07:06ID:???require("filecopy.php");
if ($sentaku == true) { //選択ボタンが押された時コピー実行
ここ
}
に、functionの中身を書けば動くだろが ボケカス氏ね糞
0497491 == 487 != 482
2005/12/30(金) 11:09:17ID:???0499494=487
2005/12/30(金) 11:11:56ID:???PHPはPerlと違って、普通に$datafileとか書くとローカル変数として扱われて
関数内の$datafileとその外の$datafileは別物だから。
0501485
2005/12/30(金) 11:15:50ID:???…いや,これが最初の手段でしょ.
関数を作るのは,その処理を頻繁に行う必要が出てきてから.
>>494で変数が出てこないのは,変数のスコープが違うから.
0502nobodyさん
2005/12/30(金) 11:16:43ID:???最初のうちはprintだけ書いて処理の流れを確認した方がいいと思うぞ。
0503474
2005/12/30(金) 11:19:47ID:???「ファイルは分けた方が動作が軽快」と聞かされてたんで、
requireを使って、動作の目的ごとにファイルを分けてたんです。
>>502
了解です
0505nobodyさん
2005/12/30(金) 13:09:47ID:???0507nobodyさん
2005/12/30(金) 15:39:37ID:???データだけでなくタイムスタンプも保存するようにして、
ファイルのタイムスタンプと比較したら?
つかそういうの何もせずにデータが分散しちゃうのは
全然よくない方法だと思うんだけど。
0508nobodyさん
2005/12/30(金) 17:51:40ID:???0510nobodyさん
2005/12/30(金) 21:02:19ID:???あるスクリプトを3つに7つぐらいに分割したのと、
まとめたものの出力タイムを算出したら、
倍ぐらい違ったぞ。
もちろんまとめたほうが早かった。
スクリプトを分けるのはいいけど、早くなるってわけじゃないってこと。
0511nobodyさん
2005/12/30(金) 21:11:34ID:???・includeやrequire処理は遅い。 <- まぁファイルを開く処理なんで当然っちゃー当然。
なので、
・滅多に使わない処理を別ファイルにすると、普段の処理は速くなる。
つーあたりが落とし所かと。
スクリプトの管理が楽になるってのもあるけど。
0512nobodyさん
2005/12/30(金) 21:57:56ID:???その上で共通の部分は1つにまとめてrequire()しましょ、って話でしょ。
理由もなく分ければ速いとか遅いとか言ってもしょーがないよね。
0513nobodyさん
2005/12/30(金) 22:14:09ID:WrjQPieiアクセレータは入れてる?
速度向上を求めるなら、スクリプトをまとめるよりも、
アクセレータ入れた方がいいよ。
0514nobodyさん
2005/12/30(金) 22:18:34ID:???0515nobodyさん
2005/12/30(金) 22:47:43ID:???0516nobodyさん
2005/12/30(金) 23:00:40ID:???0519nobodyさん
2005/12/31(土) 03:35:38ID:TV9EjbIm再起動させれば問題ないよね?
0520nobodyさん
2005/12/31(土) 03:36:13ID:???0521nobodyさん
2005/12/31(土) 08:05:19ID:???0522nobodyさん
2005/12/31(土) 09:25:13ID:GIcF9gPaSn Uploaderのphp版があれば最高なんだけど・・・詳しい人いたら教えていただきたいです。。
0523nobodyさん
2005/12/31(土) 09:59:51ID:???そして、何がしたいのかも分からん
DL用のリンクじゃなくてURLを単純に文字列として表示したいのか?
それならスクリプト内のHTML出力部分をちょっと手直しするだけだけど、それだったらスレ違いやし
エスパーキボン
0524nobodyさん
2005/12/31(土) 10:16:32ID:???0525nobodyさん
2005/12/31(土) 11:03:55ID:???そうだ、sourceforgeでいいじゃん。
ミラー管理、会員管理、ファイルのバージョン管理、ML、
なんでも付いてるphp製アップローダだぞ
0526nobodyさん
2005/12/31(土) 11:21:27ID:???http://pc8.2ch.net/test/read.cgi/mysv/1128273012/605
0527nobodyさん
2005/12/31(土) 14:26:52ID:NkWpneAF返事がおくれましたが、それでいけました。あまりに素っ気ない回答だったんで最初はわからなかったんですが、
よくみてみるとeオプションなんてのがあるんですね、勉強になります。
どうもありがとうございました。
0528nobodyさん
2005/12/31(土) 16:26:59ID:ytK+M4x0調べる構文はありますか?
0530nobodyさん
2005/12/31(土) 16:50:24ID:???MySQLライブラリがPHPに組み込まれているかどうかでは無く、
MySQLがサーバにインストールされているかどうか、
そのMySQLでMyISAMが有効であるかどうか、です
0531nobodyさん
2005/12/31(土) 17:00:17ID:???PHPから使えなくてもMySQLが入ってればいいってこと?
PHPから使えない=PHPからアクセスできない=MySQLが入ってても認識できない
ってことだから「構文」としてはそんなものは存在しないと思うけど。
強いて言えば
passthru("find / -name mysql");
とかやれば探せるかもしれない。が、共有サーバーとかでこんなの走らせると怒られるかも。
0532nobodyさん
2005/12/31(土) 17:02:15ID:???現在のmysqlの状態を表示させるしかないんじゃないかな。
つーか、こういうのはサーバー管理者に質問して確認すべきものであって、
ユーザが勝手に調べたりしていいものじゃないと思うぞ。
0534nobodyさん
2005/12/31(土) 18:25:15ID:???show variables like 'have_myisam'
でYESになればサポートしてる。
0535nobodyさん
2005/12/31(土) 18:39:31ID:???接続に失敗するのが
・MySQLがインストールされてないため
・DB接続の指定を間違っているため
のどっちなのかをどうやって判別するんだ
0536nobodyさん
2006/01/01(日) 00:27:10ID:???年の初めから、悩んでおります・・・
送信元 html
<form name="form1" method="post" action="c.php">
<input type="text" name="a">
<input type="submit" name="Submit" value="送信">
</form>
受け取りphp
<?
$a=$_POST['a'];
print($a);
?>
これは動作しました。
ですが↓はヘッダのメタ部だけ読み込まれて
POSTで情報を送ったものは失敗しているようで表示されません
0537nobodyさん
2006/01/01(日) 00:28:09ID:???<form method="POST" action="hogehoge.php" name='reserve'>
<input type="text" name="name" maxlength="30">
<input type="text" name="mail" maxlength="50">
<input type="text" name="phone" maxlength="15">
<select name="select" onChange="PushPulldown(this.options[this.options.selectedIndex].value)">
<option value=''>月</option>
<? for($a=1;$a<13;$a++){
echo "<option value='".$a."'>".$a."</option> ";
} ?> </select>//javascriptで連動するプルダウンを2つ作っています
<select name='day' onChange="this.options[this.options.selectedIndex].value">
<option value=''>日</option>
</select>
<select name="hour">
<? for($d=1;$d<25;$d++){
print("<option>".$d."</option>");
} ?> </select>
<select name="detail">
<option>頃</option>
<option>30分頃</option>
</select>
<input type="text" size="3" name="number">
<input type="submit" value="確認画面へ">
<input type="reset" value="クリア">
0538nobodyさん
2006/01/01(日) 00:29:27ID:???受け取りphp
<?
$name=_HS(_SS($_POST['name']));
$mail=_HS(_SS($_POST['mail']));
$phone=_HS(_SS($_POST['phone']));
$select=_HS(_SS($_POST['select']));
$day=_HS(_SS($_POST['day']));
$hour=_HS(_SS($_POST['hour']));
$detail=_HS(_SS($_POST['detail']));
$number=_HS(_SS($_POST['number']));
echo "$name";
echo "$mail";
echo "$phone";
echo "$select";
echo "$day";
echo "$hour";
echo "$detail";
echo "$number";
//_HS はhtmlspecialcharsと同動作
//_SS はstripslashesと同動作
?>
同じようなことをしているんですが、片方だけうまくいかないことの
考えられる理由を教えてください…
鯖側PHPは4.3です
0539nobodyさん
2006/01/01(日) 00:34:04ID:???こんな新年の夜中から何やってんだか。
_HS()とか_SS()とかが正しく動くもんなのかこれだけじゃ判別つかんので、
受け取りPHPの1番先頭に
<?php var_dump($_POST); ?>
の1行を入れてくれたまい!
0540nobodyさん
2006/01/01(日) 00:38:53ID:???こんばんは、あけましておめでとうございます。
array(8) {
["name"]=> string(3) "aaa"
["mail"]=> string(11) "aaa@aaa.aaa"
["phone"]=> string(10) "0301111111"
["select"]=> string(1) "1"
["day"]=> string(1) "1"
["hour"]=> string(1) "1"
["detail"]=> string(2) "頃"
["number"]=> string(2) "12" }
1行入れたところこんな、配列が発掘されました・・・
0541nobodyさん
2006/01/01(日) 00:47:45ID:???0542nobodyさん
2006/01/01(日) 00:50:04ID:???↓
echo $hoge;
0544434
2006/01/01(日) 00:54:20ID:xNWERqNS遅レスですが…
>>460
出来ました。ありがとう。
>>464
ごめんなさい。
マニュアル読んで勉強します。
0545nobodyさん
2006/01/01(日) 00:57:48ID:???そのようでした・・・ほかのところにも使っていたんですが
それでは問題なく動作していたために、灯台下暗し・・・・でしたorz
ありがとうございました。
今夜はよく眠れそうです・・・
ちなみに_SSと_HSはこんなfunctionでした
function _hs($_val){
$_val = htmlspecialchars($_val);
return( $_val );
}
function _ss($_val){
if(get_magic_quotes_gpc()){
$_val = stripslashes($_val);
}
$_val = trim($_val);
return($_val);
}
0546nobodyさん
2006/01/01(日) 03:08:25ID:???君はマニュアルより先に、プログラミングの基礎みたいな本を読んだ方がいいと思う。
マニュアルは命令一覧とかは書いてあってもロジックの書き方は書いてないから。
0547434
2006/01/01(日) 03:12:23ID:xNWERqNSなるほど、本ですか…
ifも他人のスクリプトのソースみて覚えたものなので…
本やサイトを見て勉強したいと思います。
ありがとうございました。
0548nobodyさん
2006/01/01(日) 03:23:21ID:???substrはバイトごとみたいで
0549nobodyさん
2006/01/01(日) 03:43:16ID:???0551nobodyさん
2006/01/01(日) 08:02:55ID:???>>548見て何となくsubstr試したら、気になる結果が出たので質問
<?php
$str = "abc\0def";
echo substr($str, 5)."\n"; # ef
echo substr($str, 1)."\n"; # bc def
?>
表示出来ない文字列(null含む)は、空白文字として表示されるでおk?
0553nobodyさん
2006/01/01(日) 08:25:39ID:???あるいは、辿ってくれるような関数はないでしょうか。
0554nobodyさん
2006/01/01(日) 09:43:59ID:???0555nobodyさん
2006/01/01(日) 10:29:42ID:???すみません〜
「何文字目」じゃなく「何ビット目」ですね。
あと他の人が作ったスクリプトなど読んでいるとやはりビット演算で求めているみたいなんで
それでやってみます。ありがとうございました。
0557nobodyさん
2006/01/01(日) 10:56:10ID:???ありがとうございます。ないのが確認できただけでもよしとします。
今から自作してみようと思いますが、もしかしたらまたここで聞くかもしれませんが、
そのときはよろしくお願いします。
0558nobodyさん
2006/01/01(日) 12:00:44ID:???htmlspecialcharsで変換した文字列から、変換前の文字列に戻すにはどうすればいいですか?
0560nobodyさん
2006/01/01(日) 12:15:48ID:ckK+9Xqrやっぱりそれしかないんでしょうか…
html_entity_decodeで戻せることはわかったんですけど、サポートしてるのが4.3以上だから厳しい…
0562nobodyさん
2006/01/01(日) 13:44:05ID:???0563nobodyさん
2006/01/01(日) 14:25:36ID:???ネストしたディレクトリを一気に作成しようとして
<?php mkdir("hoge/geji", 0777, TRUE); ?>
というプログラムを実行させると、
Warning: mkdir(): No such file or directory
というエラーがでてしまいます。
PHP5からはmkdir()の第3引数をつかえば、mkdir -p 相当の動作になると思っていたのですが、勘違いですっけ?
0564nobodyさん
2006/01/01(日) 22:46:05ID:???ディレクトリの区切り文字がスラッシュとは限らない
http://jp.php.net/manual/en/function.mkdir.php#53075
0566nobodyさん
2006/01/03(火) 00:05:44ID:???<?php mkdir("hoge", 0777, TRUE); ?>
この辺りするとどうなる?
0567nobodyさん
2006/01/03(火) 11:04:22ID:???【 abcd 】 → 【 abc 】
【 あいうえお 】 → 【 あいうえ 】
0568nobodyさん
2006/01/03(火) 11:21:13ID:???0570nobodyさん
2006/01/03(火) 12:14:24ID:???$hoge = "a-b_c.d#e";
$enc1 = urlencode($hoge);
$enc2 = rawurlencode($hoge);
$enc3 = base64_encode($hoge);
?>
<html><body>
<a href="/?<?php echo $enc1; ?>">LINK1</a><br>
<a href="/?<?php echo $enc2; ?>">LINK2</a><br>
<a href="/?<?php echo $enc3; ?>">LINK3</a><br>
</body></html>
このソースをブラウザで表示すると、IE 6では#が%23に変換されるのに、
FireFox 1.5では#のままです(urlencode系)。
#などを含む文字列をurlに埋め込む場合はbase64_encodeを使用する
方が安全なんでしょうか??
0571nobodyさん
2006/01/03(火) 12:21:09ID:???0572570
2006/01/03(火) 12:54:37ID:???英語版マニュアルも検索しましたが、url_encode_in_spというのは
見当たらないのですが・・・。
あと、>>13のソースで確認しましたが、サーバでは有効でないようです。
(PHP 5.0.5です)
0573nobodyさん
2006/01/03(火) 13:38:38ID:???url_encode_in_spなんてものは知らない(ググル先生もご存知無い)けど、
鯖に文字として#を渡したい場合は、urlencodeで十分だよ。
ブラウザによって変わるつーのは単に確認ミスでしょ。
0574nobodyさん
2006/01/03(火) 15:24:35ID:dg0Kk76m何%くらい簡単なんですか?概算でかまいません。
0575nobodyさん
2006/01/03(火) 15:37:40ID:???$host = $url['host'];
$path = $url['path'];
$query = $url['query'];
if(isset($query)){
$query = "?".$query;
}else{
$query = "";
}
$fp = @fsockopen($host,80,$errno,$errstr,30);
$header = "GET ".$path.$query." HTTP/1.0\r\n";
$header .= "Host: ".$host."\r\n";
$header .= "User-Agent: PHP/".phpversion()."\r\n";
$header .= "\r\n";
fputs($fp,$header);
while (!feof($fp)) {
echo fgets($fp, 1024);
}
fclose($fp);
フォームから受け取ったURLを開くと時々、Apacheのテストページが表示されることがあるんですが正常にそのHPを表示させる方法は無いでしょうか?
環境はXREA S181鯖です。
Apacheのテストページが表示されるURLはhttp://hogehoge/?id=hogeなどの場合です。
0579nobodyさん
2006/01/03(火) 15:49:19ID:???Perlが理解できてれば超簡単。10%くらいの時間であっさり習得。
WebProg初めてならどっちもさほど変わらん。
0580nobodyさん
2006/01/03(火) 15:50:41ID:???> Apacheのテストページが表示されるURLはhttp://hogehoge/?id=hogeなどの場合です。
その指定の場合には、どういうURLにアクセスすれば正解の予定なんでしょう?
0582nobodyさん
2006/01/03(火) 16:06:24ID:???0583nobodyさん
2006/01/03(火) 16:35:09ID:???同じURLをプラウザで開けば正常に表示されるということです。
本来ならUser-agentを偽装した状態でそのURLのページを表示するってことです。
それが何故かApacheのテストページに・・・
0585563
2006/01/03(火) 18:02:58ID:???どうもありがとうございます。
<?php mkdir("hoge/geji", 0777); ?>
//=> Warning: mkdir(): No such file or directory
<?php mkdir("hoge", 0777, TRUE); ?>
//=> 'hoge' というディレクトリが作成されます。
mkdir()で、せめてファイル名が表示されれば手がかりになると思うのですが。
引き続き、お助けをお願いします。
0586nobodyさん
2006/01/03(火) 18:07:08ID:???いや、前者は「hogeがないからhoge/gejiは作れへんよ」という事だろ。
hoge作ってからhoge/geji作ればいいだけの話。
0587nobodyさん
2006/01/03(火) 18:47:40ID:???portを80番から変えるとしてもフォームから受け取ったURLのポート番号を80以外で見つけるのは無理じゃないですか?
0590nobodyさん
2006/01/03(火) 19:13:29ID:???HTTP/1.1 403 Forbiddenです。
画面はApacheのテストページです。
>>588氏
鯖の仕様だと思い他サイトにあるProxyなどPHPのfsockopenでやっていると思われるもので同じURLを試してみると通常に表示できます。
0592nobodyさん
2006/01/03(火) 19:19:27ID:???User-agentがイレギュラーだと弾くようにしてあるんじゃないの?
まず正常なシーケンスで試してから偽装なり何なりやればいいのに。
0594nobodyさん
2006/01/03(火) 22:45:27ID:???足らず足止めを食らっています。
自分で勉強しますので、サンプルや参考になるドキュメントなど教えて頂けないでしょうか?
具体的につまづいている所は、mojavi2では、セッション、認証などあるのですが、誰がどの
ユーザIDかをどのようにセッションで繋いでいくのかあたりの知識がなくてよくわかりません。
0595594
2006/01/03(火) 23:01:01ID:???例えばDBにsessionというテーブルを作ってSIDとユーザIDに結び付けて、ユーザIDを
特定するという感じだと思うのですが、mojavi2だとどうするのかがよくわからないというか
0596nobodyさん
2006/01/03(火) 23:13:45ID:???Mojaviの話はこちらでどうぞ。
[PHP]フレームワークについて語るスレ2[総合]
http://pc8.2ch.net/test/read.cgi/php/1135847024/
0598nobodyさん
2006/01/03(火) 23:45:15ID:???> Mojavi初心者なんですが
> エスパー募集してもよろしいでしょか?
って書いた人?
だとしたらその後、質問はOKだけどエスパー募集はナシっていう流れだったんだけど。
0599nobodyさん
2006/01/04(水) 00:05:04ID:???元々の質問>>563までリカーシブに読んでやれよ。
> PHP5からはmkdir()の第3引数をつかえば、mkdir -p 相当の動作になると思っていたのですが、勘違いですっけ?
PHP5なら2階層以上のディレクトリを一発で掘れるんじゃないの?って話だろ。
http://php.s3.to/man/function.mkdir.html
> bool mkdir ( string pathname [, int mode [, bool recursive [, resource context]]] )
> 注意: パラメータ recursive は、 PHP 5.0.0 で追加されました。
って話だよな。俺もこのパラメータは使ったことないから正直わかんね。
PHP5のテスト環境は会社に行けばあるから正月終わるまで待ってくれれば試してみる。
0600nobodyさん
2006/01/04(水) 01:01:05ID:???$lv_bSize = (int) ord(($lv_bytes[0]) + (ord($lv_bytes[1]) << 8) + (ord($lv_bytes[2]) << 16) + (ord($lv_bytes[3]) << 24);
というのがあったんだが、こういう << ってどういう意味があるんじゃ?
0601586
2006/01/04(水) 01:08:45ID:???>>563も読んだよ。でも>>585の前者って第三引数入れてないじゃん。
何か俺間違った話してる?
>>600 ビットシフト
0602nobodyさん
2006/01/04(水) 01:16:38ID:???>>585のやつは>>566で「これやってみてくれ」って言われたからだな。
意図不明。
とりあえず>>563の
> <?php mkdir("hoge/geji", 0777, TRUE); ?>
> というプログラムを実行させると、
> Warning: mkdir(): No such file or directory
だけ着目してればいいんちゃう?
0603nobodyさん
2006/01/04(水) 01:29:58ID:???<?php mkdir("hoge/geji", 0777); ?>
↓
<?php mkdir("./hoge/geji", 0777); ?>
<?php mkdir("/usr/hage/hoge/geji", 0777); ?>
とかでやってみ。Windowsなら¥かDIRECTORY_SEPARATORでセパレート。
0604603
2006/01/04(水) 01:33:03ID:???>>563
<?php mkdir("hoge/geji", 0777, TRUE); ?>
↓
<?php mkdir("./hoge/geji", 0777, TRUE); ?>
<?php mkdir("/usr/hage/hoge/geji", 0777, TRUE); ?>
だな
0606nobodyさん
2006/01/04(水) 14:08:10ID:???0607nobodyさん
2006/01/04(水) 14:47:33ID:???0608nobodyさん
2006/01/04(水) 14:55:03ID:???作ったスクリプトの<form >で結構使ってるから気になっただけだよ。
$_SERVER['QUERY_STRING']とかもどうでしょうか。
鯖がやられてなければ大丈夫だと思いますけど
どうでしょうか。
0609nobodyさん
2006/01/04(水) 15:05:40ID:???0610nobodyさん
2006/01/04(水) 15:10:24ID:???0611nobodyさん
2006/01/04(水) 15:25:21ID:???0612nobodyさん
2006/01/04(水) 15:26:33ID:???「偽装される」ってのが何を意味しているかは知らないけど、
echo $_SERVER['PHP_SELF];
とか
echo $_SERVER['QUERY_STRING'];
とかすると、クロスサイトスクリプティング脆弱性が出来上がるよ。
'
>>610
セキュリティを考える場合確率は関係ないだろ。
0613612
2006/01/04(水) 15:27:07ID:???ねorz
0614nobodyさん
2006/01/04(水) 15:28:34ID:???echo $_SERVER['PHP_SELF];
がクロスサイトスクリプティングになるの
0615nobodyさん
2006/01/04(水) 15:31:33ID:???パスインフォが通るサーバ設定だと
/hoge.php/">
とかを$_SERVER['PHP_SELF']に入れられるから。
0616nobodyさん
2006/01/04(水) 15:35:50ID:???action属性を誤魔化すぐらいならwebサーバに直接叩きにいくだろうし。
0618nobodyさん
2006/01/04(水) 15:51:58ID:LqFUITlRvar $hoge;
}
と、var宣言するのとしないのとで、機能的な違いは何かありますか?
0619nobodyさん
2006/01/04(水) 15:53:36ID:???0620nobodyさん
2006/01/04(水) 15:54:58ID:???チェックボックスと、プルダウン選択だけなら問題ないよね?
セキュリティ考慮は全然してなかったからそろそろ考えないといかんな・・・
0621nobodyさん
2006/01/04(水) 15:59:06ID:???htmlspecialcharsを噛ませろ。
http://www.ipa.go.jp/security/awareness/vendor/programming/a01_02.html
http://takagi-hiromitsu.jp/diary/20051227.html#p01
0622nobodyさん
2006/01/04(水) 15:59:10ID:???0624nobodyさん
2006/01/04(水) 16:18:46ID:???0625nobodyさん
2006/01/04(水) 16:20:39ID:???自動で収集するプログラムないかな?
0627618
2006/01/04(水) 16:42:38ID:LqFUITlR宣言しなくても、値を入れれば参照できますよね?
0629nobodyさん
2006/01/04(水) 17:04:28ID:???久しぶりにWindowsにPHP 5.1.1をインストールしてgo-pear.batで
PEARをインストールしたのですが、pear.batは拡張子の後ろに
[_old]が付いていました。[_old]をとるとUNIX上と同じくpearコマンドが
使えますが、もう一つあるpecl.batを使うべきなんでしょうか?
pecl list-all と pear list-all した結果では表示される内容も異なるのですが
このままpearコマンドを使用しても良いのでしょうか???
0631nobodyさん
2006/01/04(水) 17:09:39ID:???pearはペアで間違いないと思うのだけど
0632629
2006/01/04(水) 17:16:41ID:???速レスありがとうございます。
ではpearは推奨されないということではないのですね。
安心しました。
>>631
"pick・le"と読んでます。
ピクルス(漬物)だったかと。
0634nobodyさん
2006/01/04(水) 17:22:10ID:???PEAR 〜 is pronounced just like the fruit
PECL (pronounced "pickle") used to be a sub-repository of PEAR for C extensions
0636nobodyさん
2006/01/05(木) 00:06:39ID:???てかphpはutf8扱えるんですよね?
0637nobodyさん
2006/01/05(木) 00:50:34ID:???>扱う言語を気にする必要はないですよね?
ある
>てかphpはutf8扱えるんですよね?
別にphpに限らずperlでもrubyでも扱える。
0638nobodyさん
2006/01/05(木) 01:41:35ID:???言語(日本語でもロシア語でもアラビア語でも)は
気にする必要ないですよね、って質問じゃなかったのか
0640nobodyさん
2006/01/05(木) 03:12:55ID:???0641nobodyさん
2006/01/05(木) 10:53:48ID:JFblkuhc日本語を含むヘッダーでメール送信をしたいのですが、
MACOSX10.4の付属メーラーで受信したとき送信者の日本語部分が文字化けしてしまいます。
本文、件名は文字化けしません。
WINでは問題ありませんでした。
まだ勉強中で、参考書の通りに書いているようなレベルですので
根本的に解っていないのかも知れませんが、
$header = "From: ROBO-ONE事務局 <info@robo-one.com>"として
メッセージや件名はmb_convert_encodingでエンコードしていたので
同じように
$header = mb_convert_encoding($header,"EUC-JP","auto")
と書いても文字化けしてしまい
$header = mb_encode_mimeheader($header,"ISO-2022-JP")
では送信すらされませんでした。
OSX10.4環境でも問題なく表示するにはどのようにしたらよいのでしょうか。
0642nobodyさん
2006/01/05(木) 11:40:43ID:GYuqexB9それをphpで表示しようとすると printfでエラーとなってしまう。
%が問題だとおもうのだけど、いい方法ない?
0644642
2006/01/05(木) 12:34:14ID:GYuqexB9助かった〜、ありがと
0645nobodyさん
2006/01/05(木) 13:01:14ID:???マニュアル読もうな
http://php.s3.to/man/function.sprintf.html
0646nobodyさん
2006/01/05(木) 17:07:24ID:Bm50yWipphpではどうやってますか?
foreachで回してifで判定して新配列にpushしかないんですかね。
0648646
2006/01/05(木) 17:38:41ID:???array_filterで何とかなりそうです。
>>647
ありがとうございます。
正規表現のときはpreg_grepなんですね。
array_grepにすればいいのに・・・。
0649nobodyさん
2006/01/05(木) 18:22:30ID:???ごっそり利用可否が切り替わるんだから、関数名で識別できた方が分かりやすいよ
0650nobodyさん
2006/01/05(木) 18:49:49ID:???これに何を与えると2ちゃんと同じトリップになりますか?
0651nobodyさん
2006/01/05(木) 19:21:46ID:???0652nobodyさん
2006/01/05(木) 19:58:29ID:???0653nobodyさん
2006/01/05(木) 20:16:34ID:???if(strpos($name,"#")){
$names = explode("#", $name);
$name = $names[0];
$passwd = $names[1];
$salt = substr($passwd."H.", 1, 2);
$salt = ereg_replace("[^\.-z]", "\.", $salt);
$salt = ereg_replace(":;<=>?@[\\]^_`", "ABCDEFGabcdefg", $salt);
$trip = substr(crypt($passwd, $salt),-10);
$name = "$name</b> ◆$trip <b>";
}
return $name;
}
Trip関数。
0655nobodyさん
2006/01/06(金) 02:27:52ID:???見難い。
function Trip($name = '名無しさん'){
list($name, $passwd) = explode('#', $name, 2);
if($passwd) {
$salt = substr($passwd."H.", 1, 2);
$salt = ereg_replace("[^\.-z]", "\.", $salt);
$salt = ereg_replace(":;<=>?@[\\]^_`", "ABCDEFGabcdefg", $salt);
$trip = substr(crypt($passwd, $salt),-10);
$name = $name.'</b> ◆'.$trip.' <b>';
}
return $name;
}
0656nobodyさん
2006/01/06(金) 03:22:58ID:???この中の$thisってどういうこと?
function accept(&$renderer)
{
$renderer->startForm($this);
foreach (array_keys($this->_elements) as $key) {
$element =& $this->_elements[$key];
$elementName = $element->getName();
$required = ($this->isElementRequired($elementName) && !$element->isFrozen());
$error = $this->getElementError($elementName);
$element->accept($renderer, $required, $error);
}
$renderer->finishForm($this);
} // end func accept
0658nobodyさん
2006/01/06(金) 09:24:43ID:???pear install Services_Trackback
とかしてもDLできないんだけどなんで?
というかlist-allしてもサービス関連のやつ出てこないし。
自動で探してきてくれるもんじゃなかったんだっけ。
0659nobodyさん
2006/01/06(金) 09:41:07ID:???α版だからじゃないか?
pear install Services_Trackback-alpha
としてみたらどうなる?
0660nobodyさん
2006/01/06(金) 13:58:57ID:???$a=$_POST['a'];$b=$_POST['b'];...
掲示板のスクリプトを見ると、このような書き方はしていないようです。
しかしどのように書いたらいいかわからないんですけど、
スマートに書く方法ありませんでしょうか?
0661nobodyさん
2006/01/06(金) 13:59:14ID:???0662nobodyさん
2006/01/06(金) 14:22:02ID:???という形式を
Y-m-d H:i:s
という形式に変換するにはどうすればいいでしょうか…?
0663nobodyさん
2006/01/06(金) 14:25:54ID:???register_globals = on というオチか?
>>661
return $test; // $test:Array
0666nobodyさん
2006/01/06(金) 15:40:43ID:???function a() {
return array("color"=>$color,"size"=>$size,"depth"=>$depth);
}
$test = a();
0667nobodyさん
2006/01/06(金) 15:43:02ID:???0670nobodyさん
2006/01/06(金) 16:20:20ID:???0672nobodyさん
2006/01/06(金) 16:30:20ID:???$name = "aaa bbb";
$_SESSION['name'] = $name;
$name = $_SESSION['name'];
こんな感じで登録してから中身を取り出すと$nameがaaaになってしまいます。
これはスペース切られてるとおもうんですが、スペースごと登録する方法を教えてください
0674nobodyさん
2006/01/06(金) 16:45:45ID:???ちなみに、色々HPをみていると
$_SESSION['name'] = $name;
↑みたいにシングルクォーテーションを使ってたり
$_SESSION["name"] = $name;
ダブルクォーテーションを使ってたりするのですが
これの違いってなんでしょうか?
0675nobodyさん
2006/01/06(金) 16:49:04ID:???プログラムをテストしたりしているのですが、
(初心者的に)理解できない振る舞いがあったので
誰か教えていただけないかと…
サーバ:ロリポップのレンタルサーバ
PHPのバージョン:4.3.11
スクリプトのエンコーディング:SJIS
という環境なんですが、
var $str1 = "テスト";
$str2 はフォームからテストと入力すると
ereg($str1, $str2) ⇒ 偽
になるので、はまっていました。
色々ためしたら、下の2つの書き方では真になるのが
判明したのですが、その理由がよくわかりません。
mb_ereg($str1, $str2) ⇒ 真
ereg($this->str1, $str2) ⇒ 真
mb_eregで正しく動くようになったのは
日本語の処理絡みなんだと思うのですが、
$this->str1にしたら、eregのままでも
だいじょうぶになったのは、なぜなんでしょうか…。
0677nobodyさん
2006/01/06(金) 16:53:00ID:???受信したメールのFrom:部分のソース貼ってみれば?
これだけの情報じゃ、原因が特定できない。
他で起こらないからMail.appのせいっぽいけど。
0680nobodyさん
2006/01/06(金) 17:18:44ID:???0681nobodyさん
2006/01/06(金) 17:41:04ID:???<a href="http://〜/">って形に絶対なっている(ダブルクォートされている)なら、
$array = explode("\"", $query);
$result = $array[1];
みたいな感じでいいかなぁ。
#変数名は適当、$queryは<a href="http://〜/">が入ってるもの。
0683681
2006/01/06(金) 17:48:18ID:???この場合、explodeは使えないですね。
正規表現がいいとはおもいますが、そのURLによってはアンカータグの書式が違うので、
結構難しいかもです。
<a href="URL">TEXT</a>
<a href=URL>TEXT</a>
<a href="URL" MOREATTR="MOREVALUE">TEXT</a>
などなど。
0685nobodyさん
2006/01/06(金) 18:07:00ID:???>URLをフォームに入力してfopenなどで開いてfgetsなどで配列に一行ずつ格納した場合
の流れの繋がりが端折り過ぎで良く判らんが。
><a href="http://〜/">のhttp://〜/を変数に格納するには
正規表現関数を使うのが一般的だと思う。
preg_match('/<a href="([^"]*)/i',$line,$ary); var_dump($ary);
とかでどう?
>>683
><a href=URL>TEXT</a>
これって、ありなの?
0686nobodyさん
2006/01/06(金) 18:24:52ID:???683じゃないけれど、"を省略して書いている記述はママある。
もちろんHTML的には正しくないけど、
たいていのブラウザはちゃんと認識する。
0687軟式PHP
2006/01/06(金) 18:30:24ID:???0688nobodyさん
2006/01/06(金) 18:32:50ID:???HTML4(てかSGMLかな)の仕様では、特定の文字のみで構成される場合は省略可能な場合もある。
URLに使える文字より範囲が狭いので、" か ' を付けておく方が無難。
0689nobodyさん
2006/01/06(金) 18:54:36ID:Zg0ssy+R$b = array(0=>0, 1=>1, 2=>2);
$aと$bを見分ける方法はありますか?
0691nobodyさん
2006/01/06(金) 19:02:27ID:???0693nobodyさん
2006/01/06(金) 19:13:06ID:???0694nobodyさん
2006/01/06(金) 19:42:04ID:???0695nobodyさん
2006/01/06(金) 19:45:13ID:???まーがんばれ
どこかが間違っている
0697nobodyさん
2006/01/06(金) 19:50:57ID:???0698nobodyさん
2006/01/06(金) 19:51:56ID:???0699nobodyさん
2006/01/06(金) 20:01:58ID:???PHPの構文を理解するエディタ(PHP用のエディタ・開発環境スレもあった希ガス)を使うと、
パースエラーはほとんど防げるかと。
そういうものを利用できない場合は、
・じっくりソースを見る
・show_source()等を使って色がおかしい所を探す。
・エラーが出るあたりを適当に削除しながら、エラーになる/ならないポイントを探す。
0700nobodyさん
2006/01/06(金) 20:38:37ID:???0701nobodyさん
2006/01/06(金) 20:59:16ID:???配列を一行一行読み込んで↓
if(preg_match('/<a href="([^"]*)/i',$line[1],$link))
やってるんですが参照した$line[1]に$linkを挿入して表示したいのですがどうしてもArrayになってしまいます。
0702nobodyさん
2006/01/06(金) 23:15:36ID:oWzCmWic$listr=file("./sdat.log");
foreach($listr as $listrs){
list($s0,$s1,$s2,$s3,$s4)=explode("<>",$listrs);
foreach($list as $lines){
list($p0,$p1,$p2,$p3,$p4,$p5,$p6,$p7)=explode("<>",$lines);
if($s0==$p0){処理が入ります}
}
}
のような2つのファイルのp0とs0が同じ値の場合のみ処理を実行するようにしたいのですが
このままだと何も表示されないです。解決の手段をどなた様かお願い致します。
0704nobodyさん
2006/01/06(金) 23:42:04ID:wWI7IcSM0706nobodyさん
2006/01/07(土) 00:52:14ID:???PHPファイルに外部のPHPファイルを読み込ませて実行させることはできる。
HTMLファイルに外部のPHPファイルを読み込ませても、(通常は)サーバ側で処理してくれないので実行させることはできない。
やりたいことは当然前者だと思うので、詳しくはマニュアルでincludeなりrequireなりを調べるがよろし。
0707nobodyさん
2006/01/07(土) 00:55:47ID:???$listrの行の数だけ$listの行を毎回explodeし直しとは糞重そうな書き方だな。
まー、それと動かないのは全然別問題だからいいけどさ。
ifの直前で$s0と$p0をvar_dumpでもしてみりゃ原因は分かるでしょ。
0708nobodyさん
2006/01/07(土) 02:08:32ID:???MySQLのデータの中身もUTF8にするべきと思うのですが、ブラウザから来るデータは
全てUTF8に一回変換してからデータベースに入れなくてはいけない
という認識であっていますでしょうか?
MySQLは、4.0系です。
0709nobodyさん
2006/01/07(土) 02:18:37ID:???ちなみに表示されるHTMLもUTF-8なの?だったら変換は無くてもいいんじゃない?
たまに変なブラウザもあるから変換した方がいいけど。
0710nobodyさん
2006/01/07(土) 02:24:03ID:???>ブラウザから来るデータは全てUTF8に一回変換してから
>データベースに入れなくてはいけない
いや、別に飛んできたままでも良いよ。
それがMySQLでサポートされてるエンコードならば。
仮にサポートされてなくてもbinaryとして扱っても良い
"文字"として扱えないデメリットがあるけど。
でも、現状でもスクリプトの中で扱いやすいように
ブラウザから来るデータをUTF-8に手動なり自動で
変換してるんじゃないの?ならばそのままUTF-8で
データべースに突っ込んだ方が良いよね。
0711nobodyさん
2006/01/07(土) 02:27:01ID:???そうですね。
変換しなくて良さそうなのでUTF8がいいのかなという位に考えてました。
> ちなみに表示されるHTMLもUTF-8なの?だったら変換は無くてもいいんじゃない?
> たまに変なブラウザもあるから変換した方がいいけど。
これは出力という意味でしょうか?出力は、UTF8と携帯用にSJISを想定しています。
入力は、色んな文字コードで送ってくると思われるので、どちらにしても統一の
文字コードに変換する必要があるような気がするのですが、自信がありません。
perlの掲示板ではそんな作業をしたと思いますが、
PHP+MySQLではどうかが良くわからないのです…
0712nobodyさん
2006/01/07(土) 10:58:29ID:???どういう風にデータをいじるのか分からないからなんとも言えないけど、
統一しておいた方が何かと楽でしょ。いちいち変換するオーバーヘッドが
惜しいってほどパフォーマンス要求がシビアなら別だけど。
0714nobodyさん
2006/01/07(土) 11:10:19ID:???685 じゃないが、意味がわかんね
$link にマッチ結果が配列で入るのが当然であって、
$line[1] になんか何も代入されないだろ?
0715nobodyさん
2006/01/07(土) 11:29:22ID:???当方今までずっと
サーバサイドでEmacs直接編集→Apacheの公開用ディレクトリにコピー→直接WEBから参照
でやってたんですが、
さすがになにかしらマトモなデバッガや開発環境使った方がいいかなと思い始めまして…
Eclipse+dbg辺りかなぁと思っているのですが使用されてる方のコメント等聞けたらな、と
0718nobodyさん
2006/01/07(土) 11:42:13ID:???0719nobodyさん
2006/01/07(土) 12:21:51ID:jsajv2SXテスト環境ではうまく動いたのに本番環境では動きませんでした。
[テスト環境]
Fedora Core 3
Apache 1.3.33
PHP 4.3.11/Apacheモジュールとして組込
[本番環境]
Redhat Enterprise Linux 3
Apache 2.0.46
PHP 4.3.2/Apache2Filterとして組込
レスポンスヘッダを見てみると、なぜか本番環境ではConnectionヘッダが常にcloseだったので、
これが原因かと思ってhttpd.confでKeepAliveディレクティブをOnにしました。
それでもConnection: closeになってしまうので、
PHP側でheader("Connection: Keep-Alive/r/n");と書いたんですが、
それでも後からcloseが追加されてConnection: Keep-Alive, closeみたいになってしまいます。
他のhtmlやcssファイルなどの静的コンテンツも常にConnection: closeで返ってきます。
httpd.confのHeaderディレクティブで書き換えても同様なので、
何かが後から強制的に書き換えているように思えます。
何か対応策をご存知の方、ご教示頂ければと思います。
0720nobodyさん
2006/01/07(土) 13:49:10ID:???ブラウザ側で Persistent Connection が無効になっていると
当然 Apache は Keep-Alive をしようとしない。
ブラウザ側の設定はどうなってるのか確かめた?
0721nobodyさん
2006/01/07(土) 14:03:57ID:TbKqhVyiというデータを入れたい場合どうしたらよいのでしょうか?
array_pushだと値だけなら格納できますがキーまで入れることできないみたいなので・・。
0722nobodyさん
2006/01/07(土) 14:22:54ID:???0723nobodyさん
2006/01/07(土) 14:35:18ID:TbKqhVyi配列の認識自体間違っていたら教えてください。
例えば上の値を最初に入れたら
配列の中は 0 => hello,hoge=>hello でこれはあくまで1つの箱に入っているんですよね?
0724nobodyさん
2006/01/07(土) 14:42:21ID:???0 => helloなんてどっからでてきたんだ。
つーかふつうに$array["hoge"] = "hello"ってやれば「最後」に入るし。
0725nobodyさん
2006/01/07(土) 14:46:45ID:???意味なので、「上の値を最初に入れる」という段階でおかしい。
あと >>724 の言う「最後」は PHP 独自のことなので気をつけておくこと。
他の言語では、ハッシュ(連想配列)に順番なんてものはない。
0726nobodyさん
2006/01/07(土) 16:31:59ID:???filemtime()で取得出来るのは、自分のサーバーにある物だけらしいし・・・
教えて下さい。
0727nobodyさん
2006/01/07(土) 16:41:36ID:???実際に箱を開けて見なきゃ猫が生きているかどうか分からないわけで。。
簡易チェックであれば、HTTPヘッダを調べればよいかと。
0728nobodyさん
2006/01/07(土) 16:56:59ID:???返事トンクス
そのHTTPヘッダを調べる簡易チェックでも更新日とか分かりますか?
また、どのようにすればいいのでしょうか?
ググってるのですが、なかなかページが見つからなくて・・・
0729nobodyさん
2006/01/07(土) 16:59:32ID:???$req .= "Host: ".$host."\r\n";
$fp = @fsockopen($host, "80", $errno, $errstr, "30");
if(!$fp) {
$res .= "Error: ".$errstr." (".$errno.")";
} else {
fputs($fp, $req);
while (!feof($fp)) {
$res .= fgets($fp, 164000);
}
fclose($fp);
}
ヒントみたいなもの。
0730nobodyさん
2006/01/07(土) 17:00:54ID:???(CGI/PHPの類は無理です、と。)
0731nobodyさん
2006/01/07(土) 17:01:47ID:???参考にして頑張ってみます!
0732nobodyさん
2006/01/07(土) 18:03:24ID:???2つのサーバーでセッションの共有がしたいのですが
何かいい方法ありませんでしょうか?
0734719
2006/01/07(土) 18:41:48ID:jsajv2SX有効になっているので、サーバ側に問題があるんじゃないかと考えています。
テストサーバでは問題なくKeep-Aliveを返すので、
PHPがhandler型じゃなくてfilter型なのも一因となっている可能性ってあるんでしょうか?
0735nobodyさん
2006/01/07(土) 18:44:13ID:???0736719
2006/01/07(土) 19:02:51ID:jsajv2SX確かにそうすれば良かったんですが、
工数が少なかったため既存のテスト環境を利用しました。
本番と同一環境であれば今更困ることはなかったと承知しています。
0737nobodyさん
2006/01/07(土) 19:39:47ID:???関係ないと思うけど。
0738nobodyさん
2006/01/07(土) 19:46:33ID:???ブラウザを通すことなく、
Windows用のプログラムを作ったりすることは可能なのでしょうか?
0741nobodyさん
2006/01/07(土) 19:57:49ID:???curlとか使って通信するのも便利
0743nobodyさん
2006/01/07(土) 20:32:34ID:???php-gtkとかWinBinderとかがあるよ。
>>742
外部鯖とセッション共有って、、、なんて恐ろしい子!
0747nobodyさん
2006/01/07(土) 23:01:43ID:???0748nobodyさん
2006/01/07(土) 23:29:15ID:???0749nobodyさん
2006/01/08(日) 00:52:50ID:Gpu+sfrFPHPでメールフォームを作成予定です。
mb_send_mailなどで以前メールフォームを作成した経験があります。
ただ今回作成予定のレンタルサーバのサポートに下記のような記述がありました。
>PHPはCGIモードでインストールされている為、モジュール特化の機能は利用出来ません。
これってどのような意味なのでしょうか?
以前作成したレンタルサーバでは拡張子は.phpで実行できました。
>CGIモード
とは拡張子を.cgiで実行する場合のことなのでしょうか?
また「モジュール特化の機能」とはどのような機能なのでしょうか?
0750nobodyさん
2006/01/08(日) 01:08:45ID:???>>PHPはCGIモードでインストールされている為、モジュール特化の機能は利用出来ません。
>これってどのような意味なのでしょうか?
主にこんな機能
http://www.php.net/manual/ja/ref.apache.php
あとCGI版にsuEXECなんかを組み合わせてると
また別に違いが出てくるけど、それは機能の違いというより機構による差異。
>CGIモード
とは拡張子を.cgiで実行する場合のことなのでしょうか?
これは関係ない。拡張子による動作の割り当てはWebサーバの設定の話であって
PHPがApacheモジュールか、CGI版かには関わらない。
0751nobodyさん
2006/01/08(日) 01:31:01ID:Gpu+sfrFありがとうございます。
mb_send_mailなどは使えるようですね。
またいろいろ調べてみたら、ソースの頭に
#! /usr/local/bin/php
などのパスが必要な場合などあるなどを見ました。
以前のレンタルサーバではサンプルソースなど色々
情報が載っていたので初心者の私でもなんとかなったんですが
今回のレンタルサーバにはPHPは使用可能。
とはあるですが、上記のようなパスの設定が必要なのか?パーミッションの設定は?
などは特に説明がありません。
基本を勉強しないとダメですね・・
とにかく>>750さん
ありがとうございます。
0752nobodyさん
2006/01/08(日) 01:44:03ID:???0754nobodyさん
2006/01/08(日) 05:03:26ID:???指定したサイズより大きい画像をリサイズする処理は完成しているのですが、
それ以下のサイズの画像もimagejpeg()の段階で画像が劣化してしまいます。
何かうまく回避する方法はないでしょうか?
0757754
2006/01/08(日) 05:20:48ID:???ありがとうございます。
サイズ判定はやっています。
ブラウザにjpgを出力するにはimagejpeg()使う以外に無いですよね?
私の勘違いでしょうか?
>そのまま出力する
とは画像ファイルにリダイレクトするということでしょうか?
なるべくなら、それは避けたいのです。
0758nobodyさん
2006/01/08(日) 05:40:18ID:???バイナリで出力できるやつならなんだって構わないと思うんだけど。
0759754
2006/01/08(日) 05:48:57ID:???画像処理にばかり気を取られて頭が固くなってました。
0761nobodyさん
2006/01/08(日) 15:05:00ID:???<html>
<head>
<title>SaveCookie</title>
<?php
mb_language('Japanese');
mb_detect_order('sjis-win,eucjp-win');
mb_internal_encoding("UTF-8");
?>
</head>
<body>
<?php setcookie("email",$_POST['email'],time()+(60*60*24*90)); ?>
SAVED COOKIE "email"
</body>
</html>
を表示してみたところ下のようなメッセージが返ってきたなり。
Warning: Cannot modify header information - headers already sent by
(output started at /home/happylife/public/www/cookie_rec.php:4)
in /home/happylife/public/www/cookie_rec.php on line 13
SAVED COOKIE "email"
セキュリティの設定をすべてのクッキーを有効にしても、
ファイヤーウオールを無効にしてもこのメッセージが出続けます。
どうしたら良いのでしょう?
0762nobodyさん
2006/01/08(日) 15:10:32ID:???警告: (HTTP)ヘッダー情報を修正することができません
- だって、ヘッダーは既に送信されていたんだもん。
0763nobodyさん
2006/01/08(日) 15:16:20ID:???setcookieは、"<?php"の前に何かがあっては送信できませんし、
setcookieより前にecho等があっても送信できません。
"<?php"の前は、たとえ空行でも、入れちゃだめよ。
0764nobodyさん
2006/01/08(日) 21:57:56ID:???ありがとうございます。
動きました♪
0765nobodyさん
2006/01/08(日) 22:37:56ID:???flock($fp, LOCK_EX);
こんな感じでファイルロックを行うと、ファイルをオープンしてからロックするまでの間に他のプロセスがファイルをオープンすることはないのでしょうか?
0768nobodyさん
2006/01/08(日) 23:12:10ID:???0769nobodyさん
2006/01/08(日) 23:15:37ID:???というか、意外とまともに説明されてることって少なくね? < flock
0770765
2006/01/08(日) 23:30:43ID:???ロック用のファイルを作っておいてそれをロックするようにすればいいでしょうか?
0771nobodyさん
2006/01/08(日) 23:34:36ID:???0772nobodyさん
2006/01/08(日) 23:48:15ID:???↓よろ
0773nobodyさん
2006/01/08(日) 23:51:54ID:???パターン的には2通り。
1つは複数のプロセスでopenはできることを前提に、flockが解除されて
順番が回ってきたプロセスは「まずrewindして中身を読み直す」ことから始める。
ファイルのオープンモードがw系以外であることが条件。
もう1つは対象ファイル以外にロック専用のファイルを用意しといて
それがロック中は以降の処理全体を止める。いわゆるプロセスロック。
ファイルをいきなり消しちゃう場合や、複数のファイルを扱う場合などはこれ。
この種の「ロックの粒度」の話はRDBMSの試験にも出ますよw
0774nobodyさん
2006/01/09(月) 00:01:04ID:???するのがいちばんやね。ファイルが増えて邪魔くさいって欠点はあるけど
0776nobodyさん
2006/01/09(月) 00:08:18ID:???0777nobodyさん
2006/01/09(月) 00:15:19ID:???rewind が何をするものなのか考えてみよう
0778nobodyさん
2006/01/09(月) 00:20:19ID:???0780php developer teams
2006/01/09(月) 13:07:16ID:r4dXJ2hkどうすれば改行できるようになるのでしょうか?
0782nobodyさん
2006/01/09(月) 18:06:26ID:???[0]にfile()で読み込んだソース全部を入れることは出来ないんでしょうか?
0784nobodyさん
2006/01/09(月) 18:15:21ID:???>>783のでいいと思うがPHPのバージョンが古くて(4.2.x以前)使えない場合は
join("",file(〜))で同じことができる。(が、file_get_contents()の方が速い)
0787nobodyさん
2006/01/09(月) 18:46:35ID:???fopen して fread( filehandle, filesize( filename ) )
って手もあるな
0788nobodyさん
2006/01/09(月) 20:03:42ID:???は1バイトですが、
あ
は3バイトですか?
0789nobodyさん
2006/01/09(月) 20:13:30ID:???は
あ
は
0792nobodyさん
2006/01/09(月) 22:34:46ID:+5WHmeqfどなたか簡単なプログラムを作成してください。お願いします。
0793nobodyさん
2006/01/09(月) 23:12:01ID:???preg_replaceで正規表現を使うのが筋だが、嫌なら
$str = stripslashes($str); とか
つか少し頭使うなり調べるなりせんと上達しないよ?
0794nobodyさん
2006/01/09(月) 23:26:06ID:???HTML_QuickFormを利用していますが、なんか面倒で。
0795723
2006/01/10(火) 12:55:21ID:s2ru7jHC遅くなってすいません、ありがとうございました。
0796nobodyさん
2006/01/10(火) 13:11:23ID:???一つのディレクトリに納まっている複数のファイルをまとめ、一つのファイルにし、
これを圧縮するにはどうしたら良いのでしょうか。
圧縮はさておきまとめるというとtarを使うと思うのですが、
$aaa = system('tar -cf ./after.tar ./before', $bbb);
なんてことをしてもできないようなのです。
system関数が使えないとなると、他に手はないでしょうか。
0797nobodyさん
2006/01/10(火) 13:55:20ID:???特にさくらの鯖とか、CGI版だって知らないで聞いてるアホも多いんだから。
「system関数が使えない」ってのは、「関数が」使えないの?
それとも、`ls`なんかは出来るわけ?
パスが通ってない可能性も踏まえ、which tarしたフルパスにするとかしてみれ。
tarが使えないようになっている以外なら多分出来るはずだ。
0799nobodyさん
2006/01/10(火) 15:34:18ID:???var $str1 なんだから本来 $str1 と比較してマッチするはずがない
ereg に日本語を突っ込んでも信用できない
スクリプトを sjis で書いてると他にもおかしなこと起きやすい
以上から、たぶん晒した以外のところもかなりおかしなことになってるはず
結論としてはもっと勉強してくれ
0800nobodyさん
2006/01/10(火) 16:04:59ID:hzjvsGhO\が1つ以上ある場合はすべて消去したいのですがエラーが表示され機能してくれません。
0801nobodyさん
2006/01/10(火) 16:08:12ID:???判断に迷う質問だから放置してた。
ふつーに考えたら$str1と$this->str1を入れ替えるなんてこと自体がありえないので、
一体何をやろうとして何に引っかかってしまったんだか想像がつかない感じ。
結論:かなり大ボケかましてない?
というか多分、$this->str1は中身が空っぽになってて、
それで何にでもマッチしちゃうだけじゃないの?という気がする。
0802nobodyさん
2006/01/10(火) 16:09:17ID:???"/\\\\+\/" は "/\\\\+/" の間違いじゃないのか。
最後の \ は何に対しての \ なんだよ。
0803nobodyさん
2006/01/10(火) 16:24:04ID:???ありえないというか意味不明でレスのつけようがない
<?php
class test {
var $str1 = "テスト";
function view($str1) {
echo "\$this->str1=".$this->str1;
echo "<br>\n";
echo "\$str1=".$str1;
}
}
$a = new test;
$a->view("ホゲ");
?>
0804nobodyさん
2006/01/10(火) 16:55:37ID:Gn5rV4CT\と入力すると\\になったりして入力と異なるのでそれを直したいです。
0805nobodyさん
2006/01/10(火) 17:29:27ID:???申し訳ございません。XREAにてmod_phpで動かしています。
仰るとおり $aaa = system('which tar', $bbb); を試みましたが、
>>796のコード同様、$bbbには127という値が入っているのみでした。
0806nobodyさん
2006/01/10(火) 17:55:04ID:???入力元をコピーして残しとけば?
普通、mysql_escape_stringなんてDBに書き込む直前以外には実行しないだろー
0807nobodyさん
2006/01/10(火) 17:55:41ID:???0808nobodyさん
2006/01/10(火) 18:38:31ID:???さくっとPEAR使ったら?
http://pear.php.net/package/PHP_Archive/
http://pear.php.net/package/Archive_Tar/
圧縮は要lib
0811nobodyさん
2006/01/10(火) 21:57:13ID:Gn5rV4CT0812nobodyさん
2006/01/10(火) 22:02:39ID:???0813nobodyさん
2006/01/10(火) 22:20:29ID:V6LwtE82setcookie()する場合、適用ドメインを「.example.com」で発行すると、
それを「hoge.example.com」で上書きすることはできないんですね?
逆は可能なようですが・・・。
この仕様?って普通の感覚とは逆な気がするのですが、どんなもんでしょう?
0814813
2006/01/10(火) 22:27:18ID:???ブラウザが、「.example.com」と「hoge.example.com」
でクッキーを持っていると、
PHPの$_COOKIEは「.example.com」の方を優先して読み込むようです。
0815nobodyさん
2006/01/10(火) 22:46:58ID:???0816nobodyさん
2006/01/10(火) 22:54:11ID:???0817nobodyさん
2006/01/10(火) 23:29:28ID:???どうもありがとう!!
>>814-815 の続きですが、IEで調べたところ、
「example.com」と「hoge.example.com」で同じ名前のCookieがある時、
hoge.example.com にアクセスすると、
IEは、「example.com」のクッキー、「hoge.example.com」のクッキーの
順番で同時に送信してくるようです。
これをPHPの$_COOKIE['XXX']で取得すると、「example.com」の方の
クッキーが返されます。
広域指定が局所指定よりも優先されているわけですが、
これってクッキーの仕様に合致しているのかなぁ…。
0818nobodyさん
2006/01/11(水) 00:00:43ID:???0819nobodyさん
2006/01/11(水) 00:02:19ID:fOyKkotG>>803
レスありがとうございます。
確かにちょっと状況が説明不足ですね。
実は、レッツPHP!にあるTree BBS
http://php.s3.to/bbs/bbs6.php
に書き込み禁止処理を追加しようと思ったのです。
$comに納められたコメントの内容にNGワードが
入っていたらエラーが出るようにしようとしました。
それで最初
if(eregi($bad_word, $com))
としたのですが、うまくいかなくて
if(eregi($this->bad_word, $com))
または
if(mb_eregi($bad_word, $com))
にしたら、うまく動いたんです。ちゃんと動いているので
中身空っぽになって何でもマッチしているわけではないようです。
なお、このif分を追加したのは、function add_chkの中の
ifがずらっと並んでいるところです。
最初からスクリプト中にある
if($com=="" || ereg("^( | |[¥r¥n])*$",$com))
というところは、そのままで全角スペースにちゃんと
マッチしているので、ますますわけがわかないのです。
なので、もしかしたら文字エンコーディングに起因する問題?とか
いろいろ考えたのですがよくわかりません…。
0820nobodyさん
2006/01/11(水) 07:42:19ID:???スクリプトの先頭に
ini_set("display_errors", 1);
error_reporting(E_ALL);
と書け。
if(mb_eregi($bad_word, $com))
は$bad_wordが未定義なのにうまくいくはずない。
0821nobodyさん
2006/01/11(水) 09:29:54ID:???エスパー的には、mysql_escape_stringの問題ではなく、
マジッククォートの問題だと思う。
つ php.ini
初心者は問題の本質を捕らえる努力と伝える努力をすべきだと思う。
0822nobodyさん
2006/01/11(水) 10:32:50ID:???0823nobodyさん
2006/01/11(水) 12:26:46ID:???for ($i = 0; $i < $max; $i++)
より
for ($i = $max; $i > 0; $i--)
の方が早いって聞いたんですけどマジですか?
0824nobodyさん
2006/01/11(水) 12:29:42ID:???for($i = $max; $i ; -- $i)
じゃないのか?
でも微々たるもんだと思うけどね。
0826824
2006/01/11(水) 12:59:20ID:???1.for($i = 0; $i < $max; $i ++) {print ""}
と
2.for($i = $max; $i > 0; $i --) {print ""}
と
3.for($i = $max; $i; -- $i) {print ""}
をそれぞれ$max=1000000;で実行した結果、
おおよそ
1.0.50〜0.52秒
2.0.39〜0.40秒
3.0.31〜0.32秒
という結果になった。(複数回、順番入れ替えも行った上での結果)
環境:WinXP PHP4.3.10 CLI版
おまけ。
4.for($i = 0; $i < 1000000; $i ++) {print ""}
にするだけで
4.0.39秒
になる。
…PHPの変数参照っておせー
0827nobodyさん
2006/01/11(水) 13:22:09ID:???0830nobodyさん
2006/01/11(水) 13:51:56ID:???0832nobodyさん
2006/01/11(水) 14:22:10ID:h33/EqTj確認もないままに消してしまう。
同じスクリプト内に消去するまえの確認メッセージを表示してOKボタンをクリックした場合のみ消去させるにはどうしたらいいのでしょうか?
0833nobodyさん
2006/01/11(水) 14:27:23ID:qDYFXRNq0834nobodyさん
2006/01/11(水) 14:29:52ID:???OKボタンのFORM入力が無ければOKボタンを表示して終了、
FORM入力があれば実際にdelete実行、ってだけ。
0835nobodyさん
2006/01/11(水) 15:19:07ID:???$aa[0][0] = 1;
などとCみたいに扱えないんですか?
0837nobodyさん
2006/01/11(水) 15:32:16ID:???$aa[0][0] = 1;
として、これの中身を
echo "$aa[0][0]";とかすると
1[0]
って表示されるのですが・・
表示方法がまずいとか?
0838nobodyさん
2006/01/11(水) 15:37:00ID:???どうやら表示方法がまずかったみたいな
$aa[0][0]をいったん別の変数にとって
$bb = $aa[0][0];
として、$bbを表示したらうまくいきました。
0839nobodyさん
2006/01/11(水) 15:40:09ID:???"〜"の中で添え字([〜])やメンバ変数参照(->)みたいな記述はそのままでは使えない。
"{$env[0][1]}" みたいに {} で括る必要あり。
参考
【PHP】質問スレッドpart32【php】
http://pc8.2ch.net/test/read.cgi/php/1136276300/4
0841nobodyさん
2006/01/11(水) 15:50:27ID:CQ4aDWhiこのデータベース型CGIを
http://www.breeze.jp/s02_faq_01.php#q23
ここに設置しようと思っています
$datpath = "./";
$binpath = "./";
$BinUrl = "http://www.***.com/~user/";
↑
これらの変更すべき部分に何を書けばいいのかよく分かりません
どなたかお願いします
0843675
2006/01/11(水) 16:06:44ID:???おー、理解しました(多分)。スコープの問題?
if(mb_eregi($bad_word, $com))
が動いていたような気がするのは気のせいですよね、きっと…。
0844nobodyさん
2006/01/11(水) 16:07:55ID:???842の言うとおりだが、
何より
http://www.hero.ne.jp/~db/herodb-othersite.shtml
に説明が書いてあるだろ。
それで分からないなら使わない方がいいだろう。
0845nobodyさん
2006/01/11(水) 16:09:09ID:???if文の前に
echo $bad_word;
echo $com;
とでもして変数の中身確認すれば分かることでは?
0846nobodyさん
2006/01/11(水) 16:14:50ID:CQ4aDWhiまたスレ違いでしたか;;
失礼しました
他をあたります
レスありがとうございました
0848nobodyさん
2006/01/11(水) 18:08:12ID:h33/EqTjしかし意味が分かりません。Shift-JISを使わないってどこをどうすればいいのですか?
0849nobodyさん
2006/01/11(水) 18:11:15ID:???0850nobodyさん
2006/01/11(水) 18:25:34ID:h33/EqTj0851nobodyさん
2006/01/11(水) 18:38:15ID:???0852nobodyさん
2006/01/11(水) 19:07:51ID:???0853nobodyさん
2006/01/11(水) 19:11:28ID:???まずマニュアルを読む
マニュアルを読んで分からなければ丁寧な解説がされていそうな本を読む
こんなところで聞くだけ時間の無駄
0854nobodyさん
2006/01/11(水) 19:23:12ID:923d4820簡単なデータの入力システムをphpとmysqlでつくっています。
"select * from テーブル"で
<table>
while ($col = mysql_fetch_array($rst)) {
<tr>
<td>$col["あああ"]</td>
<td>$col["いいい"]</td>
<td>$col["ううう"]</td>
</tr>
}
</table>
みたいにして、whileでループして表を表示させてるのですが、
表を見易くするために、一行ごとにバックの色を変えるにはどうすればいいでしょうか?
1行目は白、2行目はちょっとグレー、3行目は白.....みたいな。
よろしくお願いします。
0855nobodyさん
2006/01/11(水) 19:30:42ID:???それにしても全角とは恐れ入った。
0856nobodyさん
2006/01/11(水) 19:40:25ID:???for ( $lp = 0; $col = mysql_fetch_array($rst); $lp++ ) {
$bg_class = ( $lp % 2 == 0 )? "bg_white" : "bg_gray";
echo <<<EOS
<tr class="$bg_class">
<td>$col["aaa"]</td><td>$col["bbb"]</td><td>$col["ccc"]</td>
</tr>
EOS;
}
といった感じ.スタイルシートは自分で書いてね.
0857nobodyさん
2006/01/11(水) 19:41:18ID:???俺はこんな感じでやってる
$max = 3;
$color = array("#000000","#ff00ff","#00ff00");
行 $lineとして
色 $color[$line % $max]
0858nobodyさん
2006/01/11(水) 19:58:53ID:h33/EqTj0860まっぷ
2006/01/11(水) 20:35:46ID:+n0M4RULアクセスする際に
Warning: dl(): Unable to load dynamic library '/usr/lib/php/20020429/php_mapscript.so'
- /usr/lib/php/20020429/php_mapscript.so: cannot open shared object file:
No such file or directory in /home/httpd/html/phpinfo_mapscript.phtml on line 21
というエラーがでてしまって困っています。
環境は
vinelinux-3.1
php-4.4.1
mapserver-4.0.1 を使っています。
phpの何かがおかしいと思うのですが。。
/usr/lib/php/20020429というディレクトリは存在せず、
/usr/lib/php/の中にはphp_mapscript.soが存在します。
いろんなとこを調べ、php.iniのextension_dir = ./の部分を
extension_dir = "/usr/local/php-4.4.1/modules/"
にしたりしてみたのですがエラーはかわりませんでした。
何分初心者ですのでつたない文章ですみません。
御指導いただければと思います。。
お願いします。
0862854
2006/01/11(水) 20:50:00ID:923d4820スタイルシートのclassを変数にして条件分岐ですね。
すばらしいですねー。
最近phpを勉強しはじめました。
forはなんとなく好きになれません。
array()っていうのも使ったことないです。
前途多難ですががんばります。
ありがとうございました。
0863nobodyさん
2006/01/11(水) 21:04:06ID:???0864nobodyさん
2006/01/11(水) 21:27:20ID:???0865nobodyさん
2006/01/11(水) 21:44:45ID:a+2jPX+b0866nobodyさん
2006/01/11(水) 23:52:35ID:???漏れは、普通にmysql_fetch_arrayでまわすけど、まわす前にカウント用の変数を$iとして、それが偶数のときはこのcssクラス、奇数のときは・・・って感じだな。
先に件数を取得しておくと、テーブルなんかおしゃれにできる。
(最後の一行がわかるから。)
0867nobodyさん
2006/01/12(木) 00:33:48ID:???httpd下で動作させようと思ってるんですが
一応解説サイトや書籍などを見て、
php5ts.dll php.ini-dist を C:\WINDOWS\system32にコピって php.iniにリネームし
cgi.force_redirect = 0 に書き換えても
Security Alert! The PHP CGI cannot be accessed directly 言われます。
とりあえづXAMPPインスコして、そっちではPHP動くんであまり問題ないと言えばないのですが、
今度はこっちではCGIが動きません(htdocs.confでDocumentRootのパスとかは変えたんですが)
余談ですが、ActivePerlとかXAMPPアンインスコして
XAMPPだけインスコした状態で試したりもしたんですがダメでした。
まあそれはどうでもよくて、実際cgiとphpを連動させる事もないだろうから
別にcgiのテストはhttpdでやって、PHPはXAMPPでやればいいだろ、って言われればそれまでなんですが。
原因が気になってオナニーもロクにできません。
あ、オナニーはインスコ中にやってたのでどうでもいいです。
とにかくよろしくお願いします。
0868867
2006/01/12(木) 01:24:21ID:???オナニーして寝ます。
0869nobodyさん
2006/01/12(木) 09:51:22ID:???0870nobodyさん
2006/01/12(木) 11:17:59ID:???文字列から連想配列へデシリアライズする手段をさがしてます。そういう便利なものないですか。
(PHP4です)
0872nobodyさん
2006/01/12(木) 11:38:49ID:???ありがとう。調べてみます。
ぐぐってみたところ、serialize(),unserialize() というのもみつけました。
入力された複数の値→連想配列を作る→シリアライズしてDBに入れる
→別の画面などでDBからシリアライズしてきた文字をデシリアライズ(連想配列化)して表示
といった感じに使おうかと思ってました。
0875nobodyさん
2006/01/12(木) 15:00:00ID:lQx6xwTN0876nobodyさん
2006/01/12(木) 15:38:55ID:???0877nobodyさん
2006/01/12(木) 15:44:35ID:???0878nobodyさん
2006/01/12(木) 15:55:20ID:???0879nobodyさん
2006/01/12(木) 15:56:23ID:???0880nobodyさん
2006/01/12(木) 16:06:13ID:???では、話が変わるのですが、変数の型がバリアントっぽいのですが
Cみたいにcharの配列でバイナリを扱う方法を教えてください
0881nobodyさん
2006/01/12(木) 16:09:11ID:???知ってる言語の流儀を押し通そうとするのは賢い方法とは言えないぞ
0882nobodyさん
2006/01/12(木) 16:12:43ID:???char aa[8]={ 0x01, 0x02, 0x03, 0x04, 0x00, 0x02, 0x03, 0xAA };
short bb = ((aa[[5] << 8) | aa[6]) & 0xFF;
例えばこんなこと↑
char のバイナリ配列なんでコードにNULLが含まれてることもあるみたいな
0884nobodyさん
2006/01/12(木) 16:27:14ID:???バイトって概念がないのかわからんけど、なんかできないっぽいなあ
ちょっとマニュアルみてくるかな
0885nobodyさん
2006/01/12(木) 16:28:18ID:???0887nobodyさん
2006/01/12(木) 16:33:51ID:???0888nobodyさん
2006/01/12(木) 16:38:00ID:???マニュアルて何故か簡単に説明してくれてないから敬遠しちゃうんだよね
>>886
おろ?まじですか。でもこれってCよりBasicに近い変数の扱いですよね
>>887
ああああああああああああああああああああ!!!
こんな関数があったんですか!!
これ早速ためしてみます
0889nobodyさん
2006/01/12(木) 16:42:52ID:???<?php
$a[] = pack("c", 0x01);
$a[] = pack("c", 0x02);
$a[] = pack("c", 0x03);
$a[] = pack("c", 0x04);
$a[] = pack("c", 0x00);
$a[] = pack("c", 0x02);
$a[] = pack("c", 0x03);
$a[] = pack("c", 0xAA);
$b = (($a[5] << 8) | $a[6]) & 0xFF;
echo bin2hex($b);
?>
0891nobodyさん
2006/01/12(木) 17:24:13ID:???0892nobodyさん
2006/01/12(木) 17:30:39ID:???0893nobodyさん
2006/01/12(木) 17:41:14ID:???0894nobodyさん
2006/01/12(木) 17:50:31ID:???$a = "./a.txt";
$af = fopen($a, "w");
flock($af, 2);
asort($a);
fclose($af);
このコードでは上手くいきませんでした。正しいコードをご教授願います
0896nobodyさん
2006/01/12(木) 18:04:47ID:???asortに与えるべき配列はファイルの中身を配列にしたものであって、"./a.txt"という文字列ではない。
0897889
2006/01/12(木) 18:06:37ID:???すまん。バイナリだと演算できなかった
バイナリをビット操作するときはunpackしてやらないとだめだ
それなら最初からpackするなよってことか
0900nobodyさん
2006/01/12(木) 18:18:40ID:???論理演算て・・・
0903nobodyさん
2006/01/12(木) 18:34:58ID:???0904nobodyさん
2006/01/12(木) 18:36:44ID:???0905nobodyさん
2006/01/12(木) 18:37:00ID:???$ /opt/local/bin/php -version PHP 5.1.1 (cli) (built: Jan 11 2006 20:26:52)
$ /opt/local/bin/phpunit --version PHPUnit 2.3.4 by Sebastian Bergmann.
$ pear -V
PEAR Version: 1.4.6
PHP Version: 5.1.1
Zend Engine Version: 2.1.0
/opt/local/lib/php/extensions/no-debug-non-zts-20050922/xdebug.so
で、
<?php
class Numeric {
public function add($x, $y) {
return ($x + $y);
}
public function sub($x, $y) {
return ($x-$y);
}
}
?>
を
$ ls -a Numeric.php
$ phpunit --skeleton Numecir
PHPUnit 2.3.4 by Sebastian Bergmann.
$
とプロンプトが返ってきて、「Wrote test class skeleton for Numeric to NumericTest.php」はなし。
NumericTest.php という空のファイルが生成されているだけで、中身はなし。
何が原因なのか、誰か教えて…・
0906nobodyさん
2006/01/12(木) 18:44:38ID:???Numeric
Numecir の違いじゃないの?
0907905
2006/01/12(木) 19:04:16ID:???ファイル名とクラス名が同じだから、
名称が問題になっているわけではないと思うんだ。
いちおうスケルトンは生成されているし。
ttp://www.phpunit.de/pocket_guide/2.3/en/installation.html の
ファイル名の変更は問題ないと思うし…。
$ ls -l /opt/local/bin/ | grep php
-rwxr-xr-x 2 root admin 8918652 Jan 11 20:27 php
-rwxr-xr-x 2 root admin 1326 Jan 11 20:29 php-config
lrwxr-xr-x 1 naotaka admin 18 Jan 3 19:32 php5 -> /opt/local/bin/php
-rwxr-xr-x 2 root admin 4107 Jan 11 20:29 phpize
-rwxr-xr-x 1 root admin 1801 Jan 12 18:11 phpunit
xdebug は有効になっているし、assert 関数の評価も有効になっているので、
設定の問題なのかどうかもちょっと切り分けられなくて、困っている…。
ググッても検索結果に参考になるものがないのが、利用者数が少ないのを物語っているよ。
0908854
2006/01/12(木) 19:06:04ID:pSKfqlaX家に帰って帰ってみたら、やっぱり分かってませんでした。
857さんのやりかたがシンプルでいいなと思ったのですが、
行$lineを取得する方法がわかりませんでした。
ttp://php.thm.jp/index.php?know=table_color
これは、856さんのやり方に近いと思うのですが、自分のコードにはうまくあてはめられませんでした。
866さんの方法もよさそうなのですが。。。
どなたかアドバイスをお願いします。
0910854
2006/01/12(木) 19:26:34ID:pSKfqlaX自分のコードには866のやり方が合ってると思うのですが、
具体的にどう書くのか、いろいろと試しているのですが、
全部同じ色になってしまって困っています。
ヒントでもいただけるとうれしいです。
0911nobodyさん
2006/01/12(木) 19:43:55ID:???単純に現在の行が何行目なのかを判定するための変数を設定して、
行が変わる毎に何行目なのかを判定して、背景のコードを print 文なりで付加すればいいだけ。
これぐらいは自分で考えて条件式を書けないと、
プログラムのセンスがないのかもしれないよ。
0912911
2006/01/12(木) 19:47:13ID:pSKfqlaX>単純に現在の行が何行目なのかを判定するための変数を設定して、
>行が変わる毎に何行目なのかを判定して、背景のコードを print 文なりで付加すればいい
という理屈はわかっているのですが、「現在の行が何行目なのか」を判断できませんorz
もうちょっと格闘します。ありがとうございました。
0913nobodyさん
2006/01/12(木) 20:03:14ID:???ログをなくしてしまったので、どのような場合にすべきではないかもういちど挙げていただけませんか?
0915911
2006/01/12(木) 20:49:12ID:???単純に書けば、こんなもんだ。
スマートに書きたいのなら、自分で工夫する。
print("<table>\n");
$i = 0; // 行数を単純にカウント
while($col = mysql_fetch_array($rst)) {
if($i == 0) {
print("\t<tr bgcolor=\"#ffffff\"\n");
$i++;
} elseif($i == 1) {
print("\t<tr bgcolor=\"#000000\"\n");
$i++;
} else {
print("\t<tr bgcolor=\"cccccc\"\n");
$i = 0; // 3行目に来たら、行数を0にして、最初の背景色に戻す
}
print("\t\t<td>$col['あああ']</td>\n");
print("\t\t<td>$col['いいい']</td>\n");
print("\t\t<td>$col['ううう']</td>\n");
print("\t</tr>\n");
}
print("</table>\n");
0916912
2006/01/12(木) 21:30:28ID:pSKfqlaXありがとうございます!
悩んだ結果一応ちゃんと動作するコードを書けたことを報告にきたのですが、
見にきたらコード全文が載っててびっくりしました。
僕の書いたコードはこれです。
while ($col = mysql_fetch_array($rst)) {
$col[0]=0;
@$i++;
if ($i%2 == 0) {
$body .= "<tr bgcolor='#ffffff'>";
}
else {
$body .= "<tr bgcolor='#cccccc'>";
}
$body .= "<td>".$col["あああ"]."</td>\n";
$body .= "<td>".$col["いいい"]."</td>\n";
$body .= "<td>".$col["ううう"]."</td>\n";
}
$body .="</tr>";
0917912
2006/01/12(木) 21:31:26ID:pSKfqlaXレコードを削除したりすると欠番になったりするので、
強引に$col[0]=0;とやって++しました。
++の前に@を付けないと、Noticeエラーがでます。
これは、ダメな感じの書き方なんでしょうか?アドバイスお願いします。
今から915さんのコードと比較検証します。
0918nobodyさん
2006/01/12(木) 23:13:02ID:???> ++の前に@を付けないと、Noticeエラーがでます。
$i = 0; ってどこかでやってる?
$col[0]=0; も謎…
0919911
2006/01/13(金) 00:11:54ID:???> ++の前に@を付けないと、Noticeエラーがでます
>>918が指摘しているけれど、変数 $i を必ず初期化すること。
Notice エラーが出るのは、$i++; を記述する前に、
$i = 0; と初期化していないから。
> $col[0]には自動採番のインデックスが入っていて、
> レコードを削除したりすると欠番になったりする
必要のないカラムなら、SQL で SELECT する際にそのカラムを
取得しない。
必要なカラムなら、条件式でカラムに値が格納されているかどうかを
判定したら?
0920nobodyさん
2006/01/13(金) 00:54:15ID:???css
.line0 { background-color: #ffffff }
.line1 { background-color: #cccccc }
$index = 1;
while ( …
$index = 1 - $index;
$body .= '<tr class="line' . $index . '">';
…
0921912
2006/01/13(金) 01:00:42ID:SV3c3aSx915さんのコードを参考に、本を読んだりしながら検証した結果、
自分の書いたコードがいかにダメかわかりました。
確かに$col[0]=0は謎ですね...。というか、ホントに意味がないです。
mysql_fetch_arrayで取得した配列の中身をどうにかするものだと
思いこんでいた為にひらめいた苦肉の策でした。
変数の初期化はお約束のようなものなのでしょうか?
$i=0;をやらないと、Noticeエラーが出るというのは初耳です。
なにより、$hoge++というのを今まで使ったことがなかったので
かなり勉強になりました。
本当にありがとうございました。
0922912
2006/01/13(金) 01:06:15ID:SV3c3aSxすごいシンプルですね。すばらしいです。
$hoge++とかはやらないんですか?
いまぱっと見ただけでは、$index = 1 - $index;
がどういう値を出すのか、自分には分からないです。
ちょっと本を読んで研究してみます。
ありがとうございます。
0923911
2006/01/13(金) 01:10:53ID:???> $i=0;をやらないと、Noticeエラーが出るというのは初耳です。
基本的に変数の初期化は必須。今後、Java なり C をやればわかる。
今回、Notice エラーが出るのは、初期化されていない変数 $i には、
何も値が代入されていないため、$i++; をした際に、PHP はインクリメント後の
値が不明なため、Notice エラー が出るの。
そのため、$i = 0; と初期化することによって、0 + 1 = 1という加算が成立する。
もしかして、++$i; と $i++; も曖昧なようなら、演算式が詳しく書かれている
参考書から参考にした方がいいと思うよ。
0924675
2006/01/13(金) 01:18:43ID:FGHLzOq/確かにそうですね。今度検証してみます。
ありがとうございます。
0925nobodyさん
2006/01/13(金) 01:21:18ID:???こういうやり方もあるんだねぇ。
>>922
いや、本を読んでも分からないと思う。
ちょっと考えれば分かることだから、紙にでも書いてじっくり考えてみて。
分かるときっとプログラミングが楽しくなるよ。
0926nobodyさん
2006/01/13(金) 01:21:55ID:???while ( … ) {
$color = ($color == "#ffffff")? "#cccccc" : "#ffffff" ;
echo "<tr bgcolor=\"$color\">\n";
これも置いとくね
0927nobodyさん
2006/01/13(金) 09:35:55ID:???0928nobodyさん
2006/01/13(金) 09:37:06ID:???> いまぱっと見ただけでは、$index = 1 - $index;
> がどういう値を出すのか、自分には分からないです。
どういう値を出すのかは、
その直後にecho $indexとでもすれば分かること。
変数の中身を表示して確認しながらやると分かりやすくなるぞ。
0929nobodyさん
2006/01/13(金) 11:32:17ID:???一応エラーだね。
『これは、スクリプト実行時に何かエラーが発生したが、
通常のスクリプト実行を継続できることを示します。
例えば、値が設定されていない変数にアクセスしようとした場合や、
存在しないファイルについて stat() をコールした場合 です。』
NOTICE(通知) < WARNING(警告) < ERROR(エラー) の順。
NOTICE、WARNINGは実行を継続、ERRORは停止みたい。
0930nobodyさん
2006/01/13(金) 11:35:19ID:???0931nobodyさん
2006/01/13(金) 11:41:27ID:???だから初心者でも使える仕様になっているんだしね。
0933nobodyさん
2006/01/13(金) 11:55:00ID:???Notice対応の方がバグ潰しよりよっぽど手間にならないか?
何のために省略ができるようになってるのか考えると不毛だと思うんだけどな。
0934nobodyさん
2006/01/13(金) 12:05:00ID:???手間とも思わないけど。
0935nobodyさん
2006/01/13(金) 12:10:52ID:???0936nobodyさん
2006/01/13(金) 12:18:10ID:???$new_array = array();
foreach ($array as $item) {
$new_array[] = $item . '.html';
}
これを一発でやってくれる関数はありますか?
マニュアル読んだのですが、それらしいのが見つかりませんでした。
しかしPHPならあるんじゃないかと思って、質問してみました。
0937nobodyさん
2006/01/13(金) 12:31:04ID:???$new_array = array_map(create_function('$v', 'return "$v.html";'), $array);
0938889
2006/01/13(金) 12:31:37ID:???>>936
俺に出来るのは
<?php
$array = array('foo', 'bar', 'baz');
array_walk($array, create_function('&$v', '$v = $v.".html";'));
var_dump($array);
?>
ここまでだ
0939nobodyさん
2006/01/13(金) 13:02:14ID:???そんな変数名がかぶるような長いブロック書いちゃダメ
(ひょっとすると全部グローバルかもしれんが)
細かく function で分けるべし
class にしてしまえば必要なものだけ var で(class内で)
共有できる
オブジェクト指向とか考えなくてもメリットは大きいぞ
0940nobodyさん
2006/01/13(金) 13:06:12ID:???できればそうしたいのですが、
70kBほどのXMLのオブジェクトを扱いたいので、 それを値渡しするのはできるだけ避けたいと考えています。
0941nobodyさん
2006/01/13(金) 13:27:19ID:???値渡し(&を使わず代入)を避ける必要がない。素直に書けば不必要なコピーは起こらない。
パフォーマンス改善を目的とするリファレンス渡しはいかなる場合も避けるべき。
0942nobodyさん
2006/01/13(金) 13:29:31ID:???そのものズバリという関数はないということですね。
素直に関数を定義します。
ありがとうございました。
function array_suffix($array, $suffix) {
if (! $array) return NULL;
$array2 = array();
foreach ($array as $item) {
$array2[] = $item . $suffix;
}
return $array2;
}
0943nobodyさん
2006/01/13(金) 14:14:30ID:???贅沢なやつだな。
$new_array = preg_replace('/$/', '.html', $array);
0944nobodyさん
2006/01/13(金) 16:46:16ID:???分かりました。
PEARのDBのサンプルソースに&が必ずついているので、参照渡しは必須のものだと思っていました。
ありがとうございます。
0945nobodyさん
2006/01/13(金) 21:35:56ID:???0946nobodyさん
2006/01/13(金) 23:12:04ID:???そんでもってPHPはその機能は内蔵してないか。
php.iniで入出力文字コードの設定するだけじゃないの?
0947nobodyさん
2006/01/14(土) 00:44:57ID:???Perlは知らないけど、>>946の話を聞く限り
mb_http_output() と mb_internal_encoding() あたりじゃないかと思われ。
php.iniいじったり ini_set() 使うのもありだけど。
0948nobodyさん
2006/01/14(土) 04:30:51ID:???変数への代入等のPHP文をそのファイルに記述してrequireするのと、file()で読み込んで本体のスクリプトで処理するのとではどっちの方が軽快に動くんでしょうか?
0949nobodyさん
2006/01/14(土) 04:38:46ID:???0950nobodyさん
2006/01/14(土) 07:45:24ID:aUotD7Tf0951nobodyさん
2006/01/14(土) 11:56:08ID:???よく分からないが…
逆に聞きたい。なんでそんなことしようと思ったの?
0952nobodyさん
2006/01/14(土) 12:46:22ID:???0953nobodyさん
2006/01/14(土) 13:00:35ID:???0956nobodyさん
2006/01/14(土) 15:29:15ID:???array じゃないのを foreach して出る Warning を
検出するにはどうしたらいいでしょう?
0958nobodyさん
2006/01/14(土) 15:36:54ID:???0959nobodyさん
2006/01/14(土) 15:43:29ID:/np9stAGDBに入っている日付型データがn分経過しているかどうかを判定したかったんですが、
日付関数でn分経過した日付型を返すようなものが見あたりませんでした。
よい方法ないでしょうか?
0960nobodyさん
2006/01/14(土) 15:49:01ID:???0961nobodyさん
2006/01/14(土) 15:49:38ID:???0962nobodyさん
2006/01/14(土) 15:52:43ID:???起きたエラーの検出じゃなくて
function_exists と is_array でチェックするって方法は?
0963nobodyさん
2006/01/14(土) 15:56:49ID:???全部の関数呼び出しで書き間違いをチェックしてられないから
文法チェックみたいな形で一気に検出したい、ってことじゃないの?
理屈からいくと動的な関数呼び出しも可能なPHPで完璧なチェックってのは不可能なんだけど。
配列の方はis_arrayでチェックするのは割と基本だよね。
ま、直前で配列初期化してるようなものまで書き間違いによるミスが無いか
チェックしようとしてるんじゃないかと思ったりするけど。
書き間違いの可能性まで考えたらis_arrayに渡してる引数からして疑われるわけだし。
0967nobodyさん
2006/01/14(土) 16:14:01ID:???基本的には全ての条件パターンでのロジックを通して実行してみるってのは
プログラムテストの基本であり、それもできないやつはプログラマ失格なんだけどな。
(で、システム全体で全条件を通すのは非常に難しいので、関数単位で単体テストとかするわけだけど)
0968nobodyさん
2006/01/14(土) 16:26:28ID:???[.\n]って間違ってる?これを使うとなぜかうまくいかないです
0969964
2006/01/14(土) 16:29:19ID:???おっしゃることもっともです。
とはいえ、全チェックや二重チェック、地道にテストをしても
人間がやることなんで抜けがあるのでシステム側で検知したいんです。
0970nobodyさん
2006/01/14(土) 16:32:28ID:???事前にチェックする方法ってのは原理的に存在しないよ。
それって結局、ロジックによって通過先が変われば状態が変わってしまうもの。
諦めたら?
0971nobodyさん
2006/01/14(土) 16:41:20ID:???間違ってる。[〜] の中での「.」はただの「.」という文字であって全ての文字は表さない。
「.|\n|\r」じゃないの?
0972nobodyさん
2006/01/14(土) 16:43:32ID:???いやー
だからね、その方が難しいんだって
エラーハンドラの定義でも例外処理でもいいけど、その分
作り込む量は多くなるし、エラーの処理も全部チェックしなきゃ
いけないわけ。検知ったってさ、検知だけできてもしゃーないわけ
でしょ。何をしたいのか知らないけど、要求レベルがかなり
高いと思うよ
0973968
2006/01/14(土) 16:45:43ID:???めちゃくちゃはまってたんでマジ助かりました、ありがとう
0974969
2006/01/14(土) 16:49:39ID:???ですね。例外を用意せずに
set_error_handler() のように Fatal や Warning, Notice をキャッチして
その場所をメールで報告、とかできれば楽だと思ったのです。
ありがとうございました。
0975nobodyさん
2006/01/14(土) 16:53:29ID:???その目的って事前チェック?それとも致命的エラーを出してもユーザに見えなければOK?
後者だったらset_error_handler()でとりあえずお待ちください画面でも出してお茶濁しとけば。
0976950
2006/01/14(土) 16:54:40ID:aUotD7TfDBのデータを操作するDAOクラス(基本DAOクラス)があるんですが、
それのextends元クラス(DBクラス)を変更することで、
対応DB(MySQLなど)を選択することができるんです。
で、普段はこの基本DAOクラスをさらに継承した
個別アプリ用のクラス(拡張DAOクラス)を作成して、利用する形です。
基本DAOクラスはどのDBでも同じ内容(メソッド)なので、
拡張DAOクラスからDBを指定して、基本DAOクラスのextends元DBクラスを
選択できればと思った次第です。
今はextends元だけが異なる基本DAOクラスを複数用意していますが、
これは重複していて無駄だし、ソース改良時も複数ファイルで同じ変更を
しなくてはならず手間です。
設計を変えたほうがいいのかなあ。でもすぐにはいい方法を思いつきません。
0977nobodyさん
2006/01/14(土) 16:55:44ID:???0978nobodyさん
2006/01/14(土) 17:02:06ID:???class定義の1行しか違わないんなら、元になるソースファイルを1個だけ用意して
それをベースに改良等を行い、修正したらバッチでDBの数だけ置換コピーして
実際に使用するクラス定義ファイルを生成する。みたいな手順にしちゃえば?
動的に実行時指定できるようにするほどの内容には思えないけど。
0980nobodyさん
2006/01/14(土) 17:03:08ID:???extends したクラスをインスタンス化したものを保持する
ラッパークラスを作る
外からの操作はそのラッパーオブジェクトを介して行う
0981950
2006/01/14(土) 17:23:30ID:aUotD7Tf$this->wrapper->method() となるのはちょっとやだなと思ってたのですが、
よく考えると、それをさらにラップすれば、$this->method() で取り扱えますね。
継承の階層が多くなっちゃいますけど、方法としてはこうなるのかな。
0984nobodyさん
2006/01/14(土) 18:37:40ID:ILCMT976print("<strong>"$data[0]."</strong>は面白い\n");
こうすると「syntax error, unexpected T_VARIABLE」という
エラーが出てしまいます。
0986985
2006/01/14(土) 18:55:25ID:???print("<strong>".$data[0]."</strong>は面白い\n");
「.」が抜けてるだけだ。
0988nobodyさん
2006/01/14(土) 18:57:35ID:???同様に引数区切りなどの , は後ろに空白を空けるようにしてる。
0989nobodyさん
2006/01/14(土) 19:12:43ID:ILCMT976もっとガンバロ((`・ω・)
0990nobodyさん
2006/01/14(土) 19:53:46ID:???なんかここって本スレより勢いある上に
本スレよりまともな質問も多い気がするのは気のせい?w
0992nobodyさん
2006/01/14(土) 20:07:28ID:???【PHP】下らねぇ質問はここに書き込みやがれpart15
http://pc8.2ch.net/test/read.cgi/php/1137236771/
0993nobodyさん
2006/01/14(土) 20:28:39ID:???0995nobodyさん
2006/01/14(土) 20:29:38ID:???【PHP】下らねぇ質問はここに書き込みやがれpart15
http://pc8.2ch.net/test/read.cgi/php/1137236771/
0996nobodyさん
2006/01/14(土) 20:29:46ID:???【PHP】下らねぇ質問はここに書き込みやがれpart15
http://pc8.2ch.net/test/read.cgi/php/1137236771/
0997nobodyさん
2006/01/14(土) 20:30:09ID:???【PHP】下らねぇ質問はここに書き込みやがれpart15
http://pc8.2ch.net/test/read.cgi/php/1137236771/
0998nobodyさん
2006/01/14(土) 20:30:17ID:???【PHP】下らねぇ質問はここに書き込みやがれpart15
http://pc8.2ch.net/test/read.cgi/php/1137236771/
0999nobodyさん
2006/01/14(土) 20:30:42ID:???【PHP】下らねぇ質問はここに書き込みやがれpart15
http://pc8.2ch.net/test/read.cgi/php/1137236771/
1000nobodyさん
2006/01/14(土) 20:30:54ID:???次スレ
【PHP】下らねぇ質問はここに書き込みやがれpart15
http://pc8.2ch.net/test/read.cgi/php/1137236771/
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。