【PHP】質問スレッドpart27【php】
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001nobodyさん
05/03/03 22:41:23ID:???・新規質問の方は上げてください。age進行でお願いします。
・質問する際には環境も明記。
・正しい日本語で分かりやすく。
・レスがつかないからって逆切れする厨お断り。
・解決しなくてもこたえてもらったら礼を。
■本家
http://www.php.net/
■日本 PHP ユーザ会
http://www.php.gr.jp/
■PHP マニュアル
http://www.php.net/manual/ja/
■PEAR マニュアル
http://pear.php.net/manual/ja/
過去スレ, 関連スレ等>>2-10辺り
0002nobodyさん
05/03/03 22:44:18ID:???【PHP】質問スレッドpart26【php】
http://pc5.2ch.net/test/read.cgi/php/1103636095/l50
関連スレ
【PHP】くだらねぇ質問はここに書き込みやがれpart3
http://pc5.2ch.net/test/read.cgi/php/1107780435/l50
【PHP】セッションについて語ろう!【PHP】
http://pc5.2ch.net/test/read.cgi/php/1064399467/l50
PHPでPDF
http://pc5.2ch.net/test/read.cgi/php/983858078/l50
【PHP】Phrameを使う【フレームワーク】
http://pc5.2ch.net/test/read.cgi/php/1093238107/l50
PHP + PostgreSQL
http://pc5.2ch.net/test/read.cgi/php/983128806/l50
0003nobodyさん
05/03/03 22:44:40ID:???http://pc5.2ch.net/test/read.cgi/php/1094725439/l50
PHPBB
http://pc5.2ch.net/test/read.cgi/php/1065334037/l50
Pear
http://pc5.2ch.net/test/read.cgi/php/985665522/l50
★負荷軽減対策委員会(Perl、PHP)★
http://pc5.2ch.net/test/read.cgi/php/1034645635/l50
【PHP】Smarty【Template】
http://pc5.2ch.net/test/read.cgi/php/1047225437/l50
【PHP】処理能力向上テクニックスレ
http://pc5.2ch.net/test/read.cgi/php/1088823837/l50
【PHP】自作スクリプト発表会
http://pc5.2ch.net/test/read.cgi/php/1017456911/l50
親切な人が初心者にPHPの関数を使い方を教える
http://pc5.2ch.net/test/read.cgi/php/1068190843/l50
0004nobodyさん
05/03/03 22:45:14ID:???1. ハードウェア、OSのバージョン等には一字一句触れない。
2. 大切な個人情報が漏れるとまずいので、己の行った操作、変更などは秘密。
3. エラーメッセージの類は決して書かない。「エラーが出るんです」で留める。
目の前で生じている現象をそのまま具体的に書くなどもっての外。
事実より俺様の脳内解釈を優先すべし。
4. 独り言文体で必勝。
「…なんだけど、どうすればいいのかなぁ」「何が悪いんだろう?」
5. 「急いでいます」「困っています」等、自分の都合を全面に押し出す。
6. もう試したことを得意げに指摘してくる奴には、厳しく対応。
「それが駄目だったから質問してるんです」「それはもう試してみて駄目でした」
"どう"だめだったのか、本当に実際それを行ったかどうかなんか問題じゃない。
7. ストレートに答えを書かないもったいぶったレスには、逆切れで対応。
「だからどうすればいいんですか?」「分からないなら引っ込んでろやゴルァ」
示されたURL等を参照するなんて態度は、回答者を甘やかすことに他ならないので
絶対に避ける。
8. 情報は小出しに。
「エスパーきぼんぬ」 補足
上の八ヵ条を「一つでも」満たす者は質問者として不適格だということだ。
そのような悪い質問に対して答えられるのは,
質問者の意図をすべて汲み取ることのできるエスパーでもなければムリ,
という意味であって,決して,高度な技術を持つユーザに対する尊称でなはい。
まちがっても「エスパーの方,回答お願いします」
なんて痛い質問するな。つうか氏ね。
0005nobodyさん
05/03/03 22:46:04ID:???補足ヨロ
0006nobodyさん
05/03/04 01:00:13ID:3xlEv0k9下記のように、プロパティでpublic宣言してないものを、コンストラクトしても、別に問題ないのでしょうか?
一応、エラーは出ないのですが、気持ち悪いような気がして。。。
// クラス
class Category{
// プロパティ
public $aCategory;
// コンストラクタ
function __construct()
{
global $g_hDB;
while(1){
$sSQL = "select * from category where categoryname = '" . $_REQUEST['categoryname'] . "'";
$result = pg_exec ($g_hDB, $sSQL);
$pg_num_rows = pg_num_rows($result);
if ($pg_num_rows >= 1){
$this->aCategory = pg_fetch_array ($result, 0, PGSQL_ASSOC);
break;
}
else{
$_REQUEST['categoryname'] = "top";
}
}
//★★★↓ここが気持ち悪い・・・★★★
foreach ($this->aCategory as $key => $val){
$this->{$key} = $val;
}
unset($this->aCategory);
}
(後略)
0007nobodyさん
05/03/04 01:27:42ID:???おれとしては
>$_REQUEST['categoryname'] = "top";
ってスーパーグローバル変数に代入しちゃってるのがきもちわるい。
0009nobodyさん
05/03/04 09:10:17ID:JryQONc+桁数の制限ってあるんでしょうか?
変数に格納できる桁数の制限も知りたいです。
0010nobodyさん
05/03/04 10:49:45ID:???0011nobodyさん
05/03/04 11:39:10ID:???001211
05/03/04 11:40:07ID:???0013nobodyさん
05/03/04 13:12:11ID:???0014nobodyさん
05/03/04 13:24:43ID:???0015nobodyさん
05/03/04 13:49:05ID:???0016nobodyさん
05/03/04 13:56:36ID:???よーしパパへそくりしちゃうぞー
$i=2;
while(1){
$i*=2;
echo$i,"\n";
if(is_infinite($i))break;
}
0018nobodyさん
05/03/04 15:44:14ID:???INF
で終了。@32bitなLinux
0019nobodyさん
05/03/04 16:29:47ID:???Fatal error: Call to undefined function: is_infinite()
自分には、かみさんがいませんから。
残念!
0020nobodyさん
05/03/04 16:35:56ID:???妊婦
で終了。予定日:3月12日
0021nobodyさん
05/03/04 18:28:58ID:???0022nobodyさん
05/03/06 03:31:13ID:pz614Rae具体的には、ブラウザでサーバー内ファイルの圧縮・解凍操作を行いたいと思っています。
どうすればよいのでしょうか?
【実際のテスト結果】
phpファイルと解凍したいファイルは同じフォルダ内で以下のようにすると・・・
<?php
echo system("pwd\n");
echo system("unzip file.zip\n");
?>
-->(phpファイルの置かれた場所がちゃんと表示される)
-->127
(unzipコマンドの返り値が”127”のみでで解凍されている様子はない)
<?php
echo system("echo hello\n");
?>
-->hello
(正常)
<?php
echo system("rm file.zip\n");
-->0
(正常に削除される)
【環境】
FreeBSD 4.7
PHP4.3.9(apacheのモジュールとして動作)
Apache/1.3.33
0023nobodyさん
05/03/06 04:30:41ID:???アクセス権限を確認しる。
0024nobodyさん
05/03/06 04:37:48ID:???system('unzip file.zip 2>&1')
みたいにして標準エラーの内容を見る、とかしてみたら?
あとはエラーが127だからunzipがちゃんとパスの通った場所にあるのか確認
002522
05/03/06 05:19:00ID:pz614Rae答えになってないかもしれませんが・・・
とあるレンタルサーバーのVPSプランを利用しているんですが、ユーザー名を username とすると
phpinfo()で見る限り、apacheのユーザーと _SERVER["USER"] は usernameになっています。
sshで usernameでログインした場合、 unzip , zip ともに可能です。
念のためですが、 >>22 の 【実際のテスト結果】 はブラウザからのアクセスでの結果です。
>>24
> system('unzip file.zip 2>&1')
を実行すると 1127が帰ってきました。
googleで検索してるんですが検索の仕方が悪いのか このエラーの意味がわかりません。
unzipのパスについては、sshでログインした場合にunzipは可能なのですが、それとはまた違うのでしょうか?
0026nobodyさん
05/03/06 05:48:59ID:???>unzipのパスについては、sshでログインした場合にunzipは可能なのですが、
>それとはまた違うのでしょうか?
違う。両方でwhoamiしてみ。
002722
05/03/06 08:33:52ID:pz614Rae>>24
>>26
感謝!解決しました!
実行権限、コマンドのパス、VPSであることあたりがからんでたようです。
(VPSがからんでるかは微妙ですが)
【結果報告】
whoamiも両方試すと ブラウザからはwhoamiができませんでした。
よく確認してみると、同じディレクトリでもブラウザからとSSHではpwdの出力が違うことに気づきました。
apacheで見えてない(ブラウザからのpwdでは見えてない)上位のディレクトリに whoamiとunzipの実行ファイル(?)があったのでそれをapacheで見えるディレクトリにコピーして、権限設定。
phpのsystemでそのコピーした実行ファイルのパスを指定したら、実行できました。
*表現がおかしいところがあると思いますが、そこはごめんなさい
皆様の助言のおかげで解決しました、ありがとうございました!
0028nobodyさん
05/03/06 18:14:42ID:pWV0LcHNname=AAA&from=BBB&age=CCC
というようになっているのですが
これをPHPで各値を取得するために
$yomi = mb_split("&", $text);
for($i=0;$i<5;$i++){
if(mb_ereg("name=", $yomi[$i])) $ad_name = mb_ereg_replace("name=", "", $yomi[$i]);
if(mb_ereg("from=", $yomi[$i])) $ad_from = mb_ereg_replace("from=", "", $yomi[$i]);
if(mb_ereg("age=", $yomi[$i])) $ad_age = mb_ereg_replace("age=", "", $yomi[$i]);
}
というようにしてます・・
がこれだとスマートじゃないですよね・・
皆様はどうやっていますか?m(_ _ )m
0030nobodyさん
05/03/06 23:18:40ID:???if(ereg("[^._0-9A-Za-z]+", $_FILES['userfile']['name'][0])) {
と記述されている部分があるのですが、
この場合、「ハイフン」も含めるにはどう書けばいいでしょうか?
0031nobodyさん
05/03/06 23:25:13ID:???くだらない質問スレに行ってきます。
0032nobodyさん
05/03/07 09:34:01ID:???としたときに hoge.inc が自分のいるパスを知ることができますか?
0035nobadyさん
05/03/07 15:33:31ID:???session_start();
と記述した後に
header("Content-type: application/octet-stream;");
を使用したいのですが思うように使用できません。
ダウンロードダイアログが表示されるのですが、
"開く"を選択してもファイルを開くことができません。
sessionとheaderは同時には使用できないのでしょうか?
よろしくお願いします。
0036nobodyさん
05/03/07 15:55:21ID:???0037nobodyさん
05/03/07 16:05:42ID:???session_start();
if($_SESSION[go] == 'ok'){
header("Content-type: application/octet-stream");
print "session value is ".$_SESSION[go];
}else{
$_SESSION[go] = 'ok';
print "<a href='$_SERVER[PHP_SELF]'>a</a>";
}
0038nobodyさん
05/03/07 16:34:18ID:???0039nobadyさん
05/03/07 16:38:54ID:???保存は正常にすることができました。
保存したファイルを開くこともできました。
>>37
session_start()で取得した情報に基づきファイルをreadfile()で出力し、
それらを保存、及び開こうとしているのですが、
session_start()を使用した後にheader()を使用すると
保存ができて、開くことができません。
session()とheader()はなにか相性が悪いのでしょうか?
ご教授いただきたいです。
0040nobodyさん
05/03/07 16:46:42ID:???PHP関係無い
0042nobodyさん
05/03/07 17:39:59ID:???マニュアルのheader()の項を読む。
session_start()時にどんなパケットが流れるか見てみる。
対策は確かマニュアルにあったと思うし、メーリングリストに回答がある。
0043nobodyさん
05/03/07 23:17:18ID:PL7b7WJgPHPエディターを使ってWebサイトでの使用を目的としたPHPの勉強をしようとしているのですが、
文字コードについてよく判りません。
エディタでEUCを指定するとブラウザがISOの欧州フォントなどに切り替わり日本語部分が文字化けし、
Shift_JISで保存すると今度は自動的にEUCに変わり文字化けします。
動作確認をIE6.0とFirefox1.0で行っているのですがどちらも同様の反応が出ます。
PHPの保存時の文字とPHPをhtml内で表示させる場合のmeta内での文字コードなどはどのような関係になっているのでしょうか?
どなたか御教授お願いします。
0044nobodyさん
05/03/07 23:29:30ID:???0045nobodyさん
05/03/07 23:38:41ID:???PHPで文字エンコーディングを意識する必要があるのは3個所あって、
1. HTTP入力 - POST,GET等
2. 内部文字エンコーディング - スクリプト自体の文字エンコーディング
3. HTTP出力 - 結果の出力時の文字エンコーディング
詳しい内容は、ttp://www.php.net/manual/ja/ref.mbstring.php
その他に、apacheが付加するcharsetも関係してくる。AddDefaultCharset等。
0046nobodyさん
05/03/08 00:08:13ID:zgtI7JIE>>45
回答有難うございます。
示されたリンク先を見ましたが、ISO-8859-*, EUC-JP, UTF-8の何れかで記述して、
php.iniを書き換えれば良いということなのでしょうか?
0048nobodyさん
05/03/08 01:05:36ID:/emJr0GT以下の3行が書き込まれている test.txt
あいうえお
かきくけこ
さしすせそ
からデータを読み出す際は、$data = file("text.txt"); で読み出せたのですが、末尾の改行が邪魔です。
Perl でいうところの、
open(IN,"text.txt"); chomp(@data = <IN>); close(IN)
を実現しようとすれば、
$fp = fopen("test.txt","r");
while( ( $x = fgets($fp) ) ){
$data[] = chop($x);
}
とするしかないのでしょうか?
0049nobodyさん
05/03/08 01:09:06ID:???(エラーメッセージを画面に出さない)
0050nobodyさん
05/03/08 01:09:15ID:???見て読んで理解しろ。(貴方の既存の知識量等により)場合によっては
理解には別の情報が必要かもしれん。その場合はまたWebとか本から入手。
答えのひとつとして
「理解できなければ、全部'EUC-JP'に統一する」
を挙げておく。
0053nobodyさん
05/03/08 05:23:03ID:???submitで計算をさせるページを作っています。
cookie?などでこの$a〜$eを保存・読み込みをしたいのですが
(出来れば過去数回分を記憶してテキストフィールド以外の場所に表示させたい。)
php初心者で計算させるので精一杯で・・・
検索してもカウンターとかは見つかるんですがこういう手法がみつかりませんでした。
どのような記述で出来るのかご教授お願いします。
0054nobodyさん
05/03/08 06:37:29ID:???0056nobodyさん
05/03/08 07:55:52ID:???マニュアルには使い方の例も結構載ってるので悩むことは無いかと。
ttp://jp2.php.net/manual/ja/function.setcookie.php
005728
05/03/08 13:05:07ID:QMVO20O7返答遅くなってすいません。
そんな便利なコマンドがあったなんて・・有難う御座いますm(_ _)m
0058nobodyさん
05/03/09 01:11:34ID:???id,name
1,a born
MySQLに以上のデータが入っているとして、
$sql="select * from hoge where id=1";
$result=$db->query($sql);
$row=$result->fetchRow(DB_FETCHMODE_ASSOC);
でデータを呼び出すと、name列がaしか出てきません。
半角スペース以降も認識させる方法を教えてください。
必要な情報があれば出しますので!
006058
05/03/09 01:35:32ID:???×でデータを呼び出すと、name列がaしか出てきません。
○でデータを呼び出すと、name列が正しく出てきますが、フォームのtextエリアに入れるとaしか出てきません。
でした。ごめんなさい。よろしくお願いします。
0061nobodyさん
05/03/09 02:01:08ID:???<input type=text value=a born>
0062nobodyさん
05/03/09 02:24:45ID:???0063nobodyさん
05/03/09 02:32:54ID:???その通りでしあ
<input type=text size=50 name=\"name\" value=\"",$row["name"],"\">
ダブルクォーテーションで囲えば正しくフォーム部分にも出てきました。
でもこれで正解なんです?なんか野暮ったい気もするんですが
0065nobodyさん
05/03/09 10:29:04ID:???&を使用する事はできないのでしょうか?
<link>http://〜/a.php?abc=1&def=b</link>
0066nobodyさん
05/03/09 10:39:24ID:???& そのものを書くなら & と書かなければならない。
これは HTML でも同じ事
006865
05/03/09 10:42:13ID:???あ、そうですよね。失礼しました。
細工をするならリーダーの方で行うしかないのでしょうか?。
また、RSSで&を使用する事はモラル違反とはならないのでしょうか?。
006965
05/03/09 10:43:32ID:???どうにもならないのでしょうか。
007065
05/03/09 10:47:44ID:???ありがとうございますm(_)m
&が見えると先入観が^^;;
0071nobodyさん
05/03/09 12:44:45ID:???0072nobodyさん
05/03/09 12:48:45ID:???0075nobodyさん
05/03/09 13:18:58ID:???Perlの正規表現で有名なサイト(Perlメモ)にある正規表現を
preg_match で使用したところ、
Compilation failed: PCRE does not support \L, \l, \N, \P, \p, \U, \u, or \X at offset
と怒られてしまいました。
内容から察するに、preg_match でサポートしていない
正規表現だったためのエラーだと思うんですが、
どなたかPHPで動くものをご存知の方いらっしゃいますでしょうか?
文字コードはEUCを想定しています。
007775
05/03/09 17:36:34ID:???有難うございます。
\X を \x にしたところ、
Compilation failed: nothing to repeat at offset
という警告が出ました。
正規表現中のグループ化のカッコ(?: 〜 )
を外したところ、警告はなくなったのですが、
正常な文字でもひっかかるようになってしまいました。。
0078nobodyさん
05/03/10 10:51:45ID:BLVfW5EX今はstripslashesで¥を取り除いて処理しています。
ただサーバによっては文字化けしないので、stripslashesを使うと逆に文字化けするので、
stripslashesを使うのはちょっと怖いです。
これって正しいやり方なんでしょうか?ほかになにかいい方法があるのでしょうか?
よろしくお願いします。
008078
05/03/10 11:21:56ID:???有難うございます。ということは
function convert($str){
$result = htmlspecialchars($str);
if(get_magic_quotes_gpc()) {
$result = stripslashes($result);
}
return $result;
}
こんな感じでよろしいんですよね。
0081nobodyさん
05/03/10 16:07:59ID:???.newというバイナリが入っているんだけど、これは
何なんでしょうか。
0082nobadyさん
05/03/10 16:17:18ID:???<?php
$fp = fopen("log.dat", "a");
fseek($fp, 0);
flock($fp, LOCK_EX);
fwrite($fp, "xxxxx");
flock($fp, LOCK_UN);
fclose($fp);
?>
とやると、ファイルの最後に文字列が追記されていきます。
ファイルオープンモードを"a"で開いて、ファイルの最後ではなく、
最初に文字列を追記することはできますか?
0083nobodyさん
05/03/10 16:40:11ID:???バージョン管理用のゴミか差分じゃないかなぁ。
削除して問題ないですよ。
>>82
関数1つではできませんので、そういう処理をするロジックを書いてください。
0084nobodyさん
05/03/10 16:57:22ID:tcK+MKqwdbから一定時間経っても反応が無いとき(例えば5秒)、
タイムアウトさせる方法ってどうやるのでしょうか??
0085nobodyさん
05/03/10 17:12:06ID:krxtmGDVもとになるファイルの拡張子は
incでもhtmlでも何でもいいですよね?
この中で、この拡張子だと他のよりも読み込みが早い!
なんてのはないですか?
0086nobodyさん
05/03/10 17:37:08ID:???0087nobodyさん
05/03/10 17:47:38ID:???「ファイルネームによって読み込みの速度が違うのではないか?」
なんて、頭が固い私には全く思いつかなかった。
0088nobodyさん
05/03/10 18:44:56ID:???「a01」
というファイル名と
「a000000000000000000000000000000000000〜0000000000000000000000001」
というファイル名ではスクリプト全体としての速度は違うかもよ。
読み込み自体は変わらんと思うけど。
0090nobodyさん
05/03/10 19:15:55ID:???まさかそんな大事なことを無視してDBの使い方に終始してんじゃねーだろうな
0091nobodyさん
05/03/10 23:22:12ID:???を参考に XML-RPC を勉強してます。
例のように渡す値は 2 つだけ、と固定の場合は分かりましたが、
渡す値が可変の場合はどうしたらいいでしょうか?
例えば、果物の名前と個数を複数個渡す、という場合です。
0093nobodyさん
05/03/11 00:36:54ID:???ディレクトリエントリキャッシュあたりのような
偶然に左右される要素が影響してくるので、
キニスルナつーか気にしてもどうしようも無いって感じだろうね。
元質の話に戻ると、
拡張子は何でもいい、つーか拡張子が無くてもいい、
PHPの中の人はそのファイルに<?phpがあるかどうかだけ気にしている。
つー所でいいんでなかろうか?
0094nobodyさん
05/03/11 03:33:23ID:???ここを参考に機種依存文字を判定するFunctionを作っているのですが、
どうしても機種依存文字以外の文字も検出してしまいます。
$str = '文字列';
if (is_kisyu_sjis($str)) {
print "true";
} else {
print "false";
}
function is_kisyu_sjis($str) {
$ascii = '[\x00-\x7F]';
$sjis_twoBytes = '[\x81-\x9F\xE0-\xFC][\x40-\x7E\x80-\xFC]';
$sjis_pattern='[\xA0-\xDF]|[\x87\xED\xEE\xFA-\xFC][\x40-\x7E\x80-\xFC]';
if (preg_match("/(($ascii|$sjis_twoBytes)*?)($sjis_pattern)/", $str)) {
return true;
}else {
return false;
}
}
正規表現がマズってますかね?
0095nobodyさん
05/03/11 22:42:09ID:???0096nobodyさん
05/03/11 23:43:35ID:???つか、正規表現はスレ違いかと
0097nobodyさん
05/03/12 00:44:49ID:???009894
05/03/12 16:03:01ID:???検索ですか・・
0099nobodyさん
05/03/12 23:00:23ID:???現スレまでに入って無いのって何か理由あったっけ?
とりあえず
正規表現道場@2ch Part4
http://pc5.2ch.net/test/read.cgi/php/1105930285/
0100nobodyさん
05/03/13 04:53:03ID:???PHP Version 4.3.10
EXPAT Version 1.95.6
XSLT support enabled
Sablotron Version 1.0.1
$data = xslt_process($xslt, $xml, $xsl, NULL);
上記からコンバートはできるのですが、書き出されたhtmlの
文字コードがutf-8になってくれません。
xslt_set_encoding($xslt, "UTF-8");
と指定すると、
Fatal error: Call to undefined function: xslt_set_encoding()
となりおかしいです。
PHP 4.3.10ではxslt_set_encoding()が使えると思うのですが。
0101nobodyさん
05/03/13 05:22:51ID:???Fatal error: Call to undefined function: xslt_set_encoding()
にならなかった。何が違うだろ。
0103nobodyさん
05/03/13 07:23:25ID:???|#ifdef HAVE_SABLOT_SET_ENCODING
|PHP_FE(xslt_set_encoding, NULL)
|#endif
みたいになってるし、マニュアルには
|Sablotronバックエンドを使用する際、このオプションは
|Sablotronにエンコーディングサポートを付けて
|コンパイルした場合のみ利用可能です。
とあるよ。xslt使ったこと無いから具体的にどうするのか知らないが。
0104nobodyさん
05/03/13 07:30:56ID:???こんなコメントも付いてた。
|The user has to explicitly compile sablotron with sablotron encoding functions
|in order for SablotSetEncoding to be enabled. config.m4 automatically checks for this...
0105nobodyさん
05/03/13 12:46:53ID:owz6Nafxincludeを利用して、メニューを埋め込むようにしたんですが、
階層が変わると、menu.php内に書かれたリンクが相対パスでは
上手くいかなくなるんですが、
絶対パス以外でなんか良い方法はありますか?
0106nobodyさん
05/03/13 13:08:42ID:IhUUdOoo・実際の動作を司っている「b.php」
という2つのファイルがあります。
b.phpはinclude("a.php");でa.phpの設定を受け継いでいます。
そのb.phpで出力された変数「$2ch」をa.phpで使うにはどうすればいいでしょうか。
0107nobodyさん
05/03/13 13:11:58ID:???0109nobodyさん
05/03/13 13:32:40ID:j3cG5KiD0111106
05/03/13 13:51:11ID:???変に例を作ったのが墓穴を掘りました。実際には文字から始めてます。
>>108
すいません忘れてください。
変数に変数を代入することは可能でしょうか?
例)
<form>
-略-
<input type=text name=yyyyy value=>
</form>
$zzzz = "<a href=$yyyyy>";
というように。
0112105
05/03/13 14:02:04ID:4ktgufgkmenu.phpにサイトマップやヘルプなどへのリンクを張って
includeを使用して、全ファイルで共有したいのですが、
サイトマップなどへのリンクを相対パスで記述した場合、
フォルダの階層が変わると、上手くいきません。
menu.phpのincludeは
<?include($_SERVER['DOCUMENT_ROOT'] . 'menu.php') ?>
を使用して、階層が変わっても対処できたんですが、
同じような感じでmenu.php内のリンクに対しても対処方法はないでしょうか?
0113nobodyさん
05/03/13 14:13:13ID:???・htmlでbase要素を用いる
・メニュー内のリンクを/からのパスにする
・menu.phpに相対パスを計算させる
0114105
05/03/13 14:29:21ID:4ktgufgkmenu.phpに相対パスを計算させる
とはどういう事ですか?
0119100
05/03/13 19:14:17ID:???どうやって指定するのでしょうか。
--with-xslt-sablot以外になさそうなのですが。
./configureの中身は読んでみましたがさっぱりでした。
0120nobodyさん
05/03/13 21:02:24ID:???読むのならむしろ libsablotron の configure とか /usr/include/sablot.h かと。
0121nobodyさん
05/03/13 21:15:58ID:???だからexpatはともかく、sablotは使っとらんので知らんがな。
>--with-xslt-sablot以外になさそう
それはPHPのconfigureオプションであって、PHPで該当するオプションは
sablotの設定を見て自動で設定するからいらない。
コメントで書いてあるのは、それ故「必要ならsablotの設定をちゃんとしろ」ってこと。
0122100
05/03/14 03:18:42ID:???ないみたいです。
gingerall にいったら、新しい1.0.2が出てたのでそれをインスコ中
0123100
05/03/14 05:32:21ID:???http://bugs.php.net/bug.php?id=21427
これを参考にしたんですけど。
●Sablot-1.0.2
$ ./configure --with-expat=/usr/local --with-iconv=/usr/local
●php-4.3.10
./configure --with-apxs2=/usr/local/apache2/bin/apxs \
--enable-mbstring \
--enable-mbstr-enc-trans \
--enable-mbregex \
--enable-zend-multibyte \
--with-zlib \
--with-mysql=/usr/local/mysql \
--with-zlib-dir=/usr/lib \
--with-gd \
--with-jpeg-dir=/usr/local \
--with-png-dir=/usr/local \
--with-xml \
--with-dom=/usr/local \
--enable-xslt \
--with-xslt-sablot=/usr/local \
--with-iconv-dir=/usr/local \
--with-expat-dir=/usr/local
expatとiconvのインストールディレクトリ合わせてるんですけど
だめなんですよ。
0124nobodyさん
05/03/15 02:58:15ID:hZ3yLB9y携帯で着メロのダウンロードサイトを作成しているのですが、
開発環境のWindows版ではうまく動作するのですが、
本番環境のLinux版ではダウンロードしようとするとで502エラーを返してきます
fopen(ファイル)
fput(ファイルの中身吐き出し)
fclose
って方法で接続端末に着メロを出力しているのですが、
なぜかうまくいきません。
502エラーってことはApacheの設定が悪いのでしょうか?
そして、対処法はどのようにすればよろしいでしょうか?
0127nobodyさん
05/03/15 21:24:22ID:???0128nobodyさん
05/03/16 22:49:46ID:???00分になりアクセスがあったらファイルを出力し次の00分になるまで出力はなし。見たいな考え方でいいですか?
この考え方だと一回もアクセスがないと出力されないことになりますが、何か便利な関数があるんですか?
0129nobodyさん
05/03/16 23:10:09ID:???これが使えないようなら、データ投入時や表示時になんとかするしかない。
表示時(アクセス時)に必要なデータをかき集められるものなら、表示時に時間をチェックして誤魔化す。
データ投入時にあらかじめページを作成しておいて、表示時の時間チェックと組み合わせるのもありだな。
実行環境ややりたい事が分からんことには、可能か不可能かさえも分からんよ。
0130nobodyさん
05/03/16 23:49:33ID:???背景が透過gifな画像をリサイズした場合に透過ではなくなるのですが、
これを透過のままリサイズ出来ないのでしょうか?。
出来るのであれば参考になるサイトまたは方法を教えてください。
0131nobodyさん
05/03/17 10:53:09ID:???基本は、>>129が言うように、OSの自動処理を使う。
連鯖などでcrontabが使えない場合、いかにしてトリガを引くか、それを考える。
・WEBアクセスの際に前回処理時間と比較しトリガ発生→アクセス無ければ無意味
・自宅のPCのタスクスケージュラや、DiCE等で定期的にトリガプログラムへアクセス →PC付けっぱなし必須
・携帯電話などで自分でトリガプログラムに定期的にアクセス → 鬱陶しい、眠れない、パケ代かさむ
さぁ、どれにする?
0132128
05/03/17 11:48:17ID:???リナックスのことワカメだから本買ってしらべてみます
0134nobodyさん
05/03/17 17:42:24ID:???こんな感じ。フルカラーじゃないから汚いけど。
$src_info = getimagesize ($src_path);
$src_image = imagecreatefromgif ($src_path);
$dst_image = imagecreate ($dst_width, $dst_height);
$trans = imagecolortransparent ($src_image);
if ($trans) {
imagepalettecopy ($dst_image, $src_image);
imagefill ($dst_image, 0, 0, $trans);
imagecolortransparent ($dst_image, $trans);
}
imagecopyresized ($dst_image, $src_image, 0, 0, 0, 0, $dst_width, $dst_height, $src_info[0], $src_info[1]);
imagegif ($dst_image, $dst_path);
0135128
05/03/17 18:11:56ID:???使ってるサーバーがカゴヤなんだけど
cron設定はノーサポートでおしえてくれないや
自分なりに考えてみたんだけど
カゴヤ管理画面のCRON設定 で
*/1 * * * * /home/カゴヤアカウント/public_html/count.php
のみ入力してみたんだけどでなにがちがうんですかね?
/bin/sh: /home/カゴヤアカウント/public_html/count.php: cannot execute binary file
ってなのがメールで送られてくるんだけど
エロイ人教えてください
0136nobodyさん
05/03/17 18:24:21ID:???エロくはないけど、
たぶん、
*/1 * * * * php /home/カゴヤアカウント/public_html/count.php
だろうね。
それでもエラーが出るようなら、phpのパスを調べれ。・
0137128
05/03/17 18:41:56ID:???/bin/sh: php: command not found
のエラーのメールがきますわ
count.phpのパーミッソンハ705
中身は
<?/* シンプルカウンタ by ToR tp://php.s3.to 2000/10/18 */
$fp = @fopen("count.txt","r+") or die("ファイルが開けません");
$count = fgets($fp, 64);
$count++;
rewind($fp);//set_file_buffer($fp, 0);
flock($fp, LOCK_EX);
fputs($fp, $count);
fclose($fp);echo $count;?>
何がちがうんですかね?
0138nobodyさん
05/03/17 18:45:35ID:???>>136 wrote
> それでもエラーが出るようなら、phpのパスを調べれ
環境変数、特にコマンドの検索場所を指すPATHが違う。
0141128
05/03/17 19:10:27ID:???できたよありがとうぅ
こんなん何処でおしえてもらうん?
専門学校かね?
んまありがとー
0142130
05/03/17 19:11:49ID:???ありがとうございます。
imagecolortransparent()の返り値が0の場合があるのでif ($trans) {の分岐を外して
実行しているのですが、返り値が0以外の場合には透過になりません。
$trans = imagecolortransparent ($src_image);
imagepalettecopy ($dst_image, $src_image);
imagefill ($dst_image, 0, 0, $trans);
imagecolortransparent ($dst_image, $trans);
パレットをコピーし透過になる色で塗りつぶし、その色を透過に指定しているので
正しく透過出来そうだと想うのですが、これはフルカラーではないという所が問題
なのでしょうか?。
imagecreatetruecolor()で作成した場合は正しく利用できないのでしょうか。
塗りつぶしをしているので問題がある場合もありそうですが、とりあえず
$trans = 0で指定しています。
0143nobodyさん
05/03/17 19:52:29ID:???AnHttpDでISAPI経由でPHPを動かしているのですが
ISAPIだと設置した掲示板やチャット等で、IPやHOSTの情報を取得してくれません。
CGI経由だと取得してくれるのですが、この問題を解決する方法はありますか?
■バージョン
PHP 5.0.3
AnHttpD1.42n
0144nobodyさん
05/03/17 20:22:09ID:???PHPのバージョンを変えてみるという手がある。
が、「問題を解決する方法」としては選択しづらいだろうね。
つか、なんでバージョンでその辺が変わるのかねぇ>PHP
サーバ側とのAPIが変わってるわけでもないのに。
0145143
05/03/17 20:25:16ID:???スクリプト上で取得の方法を変えたら出来ました。
(前)$ip = getenv("REMOTE_ADDR");
(後)$ip = $_SERVER["REMOTE_ADDR"];
お騒がせしますた(;´д`)
0147nobodyさん
05/03/17 21:12:04ID:PAcs7vRbrequire_once('../main.inc');
と相対パスで一つ上を指定したいんだけど、open_basedirをどう設定すればいい?
0150nobodyさん
05/03/18 10:44:51ID:0xXwO3moAUTO指定でEUCに変換すると
preg_replace("/(\r\n|\r)/","\n",$str);
$str = mb_convert_encoding($str,"EUC","AUTO");
毎回ではないのだが、頻繁にエンコードに失敗するのですが
Warning: mb_convert_encoding(): Unable to detect character encoding in hoge.php on line ○○
何故?改行コードでエンコードの判断してるの?
エンコードしてから改行コードの変換をすれば良いって問題なんかな?
formはSJISで、PHPのバージョンは4.3.4です。
0151nobodyさん
05/03/18 11:00:56ID:???SJISでスクリプト掻いてますか
EUCですか?
0153nobodyさん
05/03/18 11:44:31ID:???formがSJISならSJISで来る確率が高かろうから'auto'じゃなくて
'SJIS, EUC-JP, UTF-8, JIS, ASCII'とでも指定してみれば
私はhiddenに判定文字列入れてmb_detect_encodingやってるけども
0156nobodyさん
05/03/18 14:09:11ID:???0157nobodyさん
05/03/18 15:47:30ID:H8eZrdKtErrorDocument 404 /404.php
として404をPHPに飛ばしてるのですが
このPHPで本来どこにアクセスされたのかを
知ることってできますか?
0158nobodyさん
05/03/18 16:06:59ID:???0160nobodyさん
05/03/18 17:05:03ID:???0162nobodyさん
05/03/19 00:12:12ID:???ファイルの行数を取得したいのですが、
極力負荷を低くやりたいです。
ファイルのサイズはデカくて、
1行の文字数は不定なのですが
なにかウマい方法はないでしょうか?
0164nobodyさん
05/03/19 00:53:10ID:???0165nobodyさん
05/03/19 00:57:40ID:???>>163
す、すみません…
バイナリは扱ったことがないので分からないのですが
もう少し詳しく教えていただけませんか?
>>164
ファイルがかなりデカいので、fileで読み込むと悲惨なことになりそうです…
0167nobodyさん
05/03/19 01:00:14ID:???PHPでできないと少々具合が悪いのですが…
0173nobodyさん
05/03/19 01:18:16ID:???1行がよっぽど長くなければメモリも食わん。
0175nobodyさん
05/03/19 07:56:37ID:???∠( ゚д゚)/「え?」
釣りですかそうですか
λ..........
0176nobodyさん
05/03/19 08:27:15ID:???>>168みたいなうそつきの言うことは聞かないで
<?php
$file = 'C:\Program Files\Apache Group\Apache2\logs\access.log';
$fp = fopen($file, "r");
$count = 0;
while(!feof ($fp)) {
if ($line = fgets($fp) and substr($line, -1) == "\n") $count++;
}
fclose($fp);
echo $file."の行数は".$count."です";
?>
最後の行に改行が無いと1行少なくなる
0177nobodyさん
05/03/19 10:32:13ID:???ここに出て来る @ ってなに?
$fp = @fopen($file, "w");
$write = @fputs($fp, $contents);
@fclose($fp);
0178nobodyさん
05/03/19 10:41:48ID:???@があるとないの違いがわかる。
0179177
05/03/19 10:45:34ID:???で見つけたけど、warning を出さなくする修飾子ってこと?
0180にーchan
05/03/19 10:54:51ID:XBx83jBtWarning: mb_send_mail(): Failed to connect to mailserver at "192.168.11.100" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\home\mail\a.php on line 10
とエラーが出てしまいます。
portはwebで開いているか確認できるページで確認したら開いてました。
php.iniでもsmtp_port = 25と記述もしてみたのですがだめでした。
php.iniのSMTPをniftyのSMTPサーバー名にしても同じく・・・
他に考えられる原因は何があるでしょうか?
0181nobodyさん
05/03/19 11:21:46ID:???・SMTPサーバが動いていない
・SMTPサーバを勝手に使えないよう制限されている
のどちらか。
0182nobodyさん
05/03/19 11:40:40ID:???>portはwebで開いているか確認できるページで確認したら開いてました。
例示がローカルアドレスなのに、webでのチェッカーで確認したというのが怪しい。
0183にーchan
05/03/19 12:06:15ID:???・SMTPサーバが動いていない
・SMTPサーバを勝手に使えないよう制限されている
とはメールサーバを立てているのですがそれの設定が違ってるってことでしょうか?
>182
外部へポートが開いていた場合でもローカルは閉じている場合はあるのでしょうか?
0184nobodyさん
05/03/19 12:07:10ID:0sO4bGN40187nobodyさん
05/03/19 14:05:22ID:oXb2sDzY暗号化してDBに保存、読み出して複合化とかしたいんだけどPHP中やDBに複合化の
Keyとかプレーンで書いておいたら意味が無いかとも思うしかといってKey暗号化しておいたら
Keyの複合化どーすんのよっつーか
0188nobodyさん
05/03/19 14:12:54ID:???0189nobodyさん
05/03/19 14:20:54ID:oXb2sDzY比較だけなら暗号化したもの同士で行えば良いんだろうけど
例えば会員がパスワード忘れて問い合わせてきた場合は?
もっかい登録しなおせって訳にもいかないだろうし、個人情報についても
保護法絡みで共有サーバなんかの場合暗号化しときたいんだけど
0192nobodyさん
05/03/19 18:21:51ID:Mh3YU28Aなぜでしょう?
0193nobodyさん
05/03/19 18:35:39ID:???基本的には通常通りサーバが吐いてれば取れるはずだが、
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/iissdk/html/21b3be8f-d4ed-4059-8e21-6cba2c253006.asp
AN-httpdとISAPI版PHPとではバージョン違いの組み合わせで
取れたり取れなかったしてた時があったな。
CGI版だと取れたり。
0195nobodyさん
05/03/20 03:54:17ID:34HEFa63Ver.4.3.10を使っていてphpinfoをみると
--enable-mbstring=shared
という一文があるのですが、mb_string系の関数がundifinedといわれて困っています。
どうすればmb_string系の関数を使用できるのでしょうか?
0197nobodyさん
05/03/20 04:21:53ID:34HEFa63ちょっと意味がわからないのですがどういう意味でしょう?
0199nobodyさん
05/03/20 04:32:48ID:34HEFa63ちなみにロードするファイル名は何でしょうか?
教えて君ですいません
0201nobodyさん
05/03/20 05:45:12ID:???http://jp2.php.net/manual/ja/function.dl.php
*mbstring*なファイル名。最もmbstringはdlできたんだっけ?
0202nobodyさん
05/03/20 17:42:42ID:???最初にチェックボックス形式でチェックした品名だけをドロップダウンリスト形式で表示させ
ドロップダウンリストから選択した品名の個数を入力して値段を計算させる、という感じで作ろうとしています。
↓-----index.phpの一部-----↓
<form method="POST" action="test.php">
<input type="checkbox" name="check[]" value="みかん">みかん<br>
<input type="checkbox" name="check[]" value="林檎">林檎<br>
<input type="checkbox" name="check[]" value="梨">梨<br>
<input type="submit" value="OK">
↑----------↑
↓--test.phpの一部--↓
echo "<form method=POST action=" . {$_SERVER['PHP_SELF']} . ">\n";
echo "<select name=name>\n";
for( $i=0; $i<count($_POST['check']); $i++) {
echo " <option value=$_POST['check'][$i]>$_POST['check'][$i]\n";
}
echo "</select><br>\n";
echo "個数:<input type=text size=6 name=pieces value=" . {$_POST['pieces']} . ">\n";
echo "<input type=submit value=計算>\n";
echo "</form>\n";
↑----------↑
ドロップダウンリストから選択して計算までは出来るのですが、
計算を実行したあとドロップダウンリストの中身が空っぽになってしまいます。
このドロップダウンリストの中身を保持して欲しいのですが、どの様にすればよいのでしょうか?
0203nobodyさん
05/03/20 17:58:06ID:???> ドロップダウンリストから選択して計算までは出来るのですが
いや、どうみても出来てないっしょ、そのソースを見る限り。
それは置いておくとして、
1回目のtest.phpで<select name="name">の指定があるので
2回目のtest.phpでは $_POST['name'] と $_POST['pieces']の2つの変数がセットされます。
従って、for($i=0;$i<count($_POST['check']);$i++)の内部が実行されることはありません。
0204202
05/03/20 19:06:41ID:???速レス有り難うございます。
すいません、よく分からなくなってしまったのでソース全部晒します。
################test.php################
<?php
include_once("display.inc");
include_once("input.inc");
include_once("calc.inc");
include_once("result.inc");
if (empty($_POST['pieces'])):
$_POST['pieces'] = "";
endif;
display_input_area();
if (!empty($_POST['pieces']) && input_is_valid()):
$result = calc_mikan();
display_result($result);
endif;
?>
################item_data.inc################
<?php
$check = $_POST['check'];
$item_data = array(
"みかん" => array(
"price" => "26",
"tax" => "0"
),
"林檎" => array(
"price" => "30",
"tax" => "0"
)
);
?>
0205nobodyさん
05/03/20 19:08:08ID:???<?php
function display_input_area()
{
require("item_data.inc");
print <<<__EOD1__
<form method=POST action="{$_SERVER['PHP_SELF']}">
<table><tr><td>
__EOD1__;
echo "<select name=name>\n";
for( $i=0; $i<count($check); $i++) {
echo " <option value=$check[$i]>$check[$i]\n";
}
echo "</select>\n";
print <<<__EOD2__
</td><td>個数:<input type=text size=6 name=pieces value="{$_POST['pieces']}">
</td><td>税率(%):<input type text size=4 name=tax value="{$_POST['tax']}">
</td></tr></table><br><input type=submit value="計算"></form>
__EOD2__;
}
################calc.inc################
<?php
function calc_mikan()
{
require("item_data.inc");
$name = $_POST['name'];
$char_tax = $_POST['tax'];
$base_price = $item_data[$name]['price'];
$mikan = $base_mikan * (1 + $char_tax / 100);
return (integer)$mikan;
}
?>
0206nobodyさん
05/03/20 19:13:18ID:???<?php
function input_is_valid()
{
if ($_POST['pieces'] > 0):
return TRUE;
endif;
return FALSE;
}
?>
################result.inc################
<?php
function display_result($result)
{
require("item_data.inc");
print <<< __EEE__
<table border=0 cellpadding=2 cellspacing=1 bgcolor=#696969><tr>
<td width=120 align=center bgcolor=#e6e6fa>品名</td>
<td align=center bgcolor=#e6e6fa>個数</td>
<td align=center bgcolor=#e6e6fa>値段</td></tr><tr>
<td width=120 bgcolor=white>{$_POST['name']}</td>
<td bgcolor=white>{$_POST['pieces']}</td>
<td bgcolor=white>{$result}</td></tr></table>
__EEE__;
}
?>
徹底攻略見ながら作ったのがバレバレで恥ずかしい・・・
>2回目のtest.phpでは $_POST['name'] と $_POST['pieces']の2つの変数がセットされます。
>従って、for($i=0;$i<count($_POST['check']);$i++)の内部が実行されることはありません。
なぜ、2度目以降ではforループの内部が実行されないのでしょうか。
0207nobodyさん
05/03/20 19:27:47ID:???0208nobodyさん
05/03/20 19:40:30ID:???制御構造に関する別の構文
ttp://www.php.net/manual/ja/control-structures.alternative-syntax.php
これって、マニュアルでしか見た事なかったよ。。実際に使っている人がいたのか(笑)
0210nobodyさん
05/03/21 00:42:45ID:???連想配列を渡すとリストとして返ってくる関数とか無いですか?
0211nobodyさん
05/03/21 00:44:11ID:???0213nobodyさん
2005/03/21(月) 09:29:01ID:???例えば strip_tags()した後、 だけ取り除きたい時って
どうすればいいの?
0214213
2005/03/21(月) 09:33:40ID:???例えば strip_tags()した後、&ンBSP;だけ取り除きたい時って
って書きました…
0216214
2005/03/21(月) 09:42:15ID:???ttp://www.softinn.jp/doc/lib/
これって使った事ある人いる?ググったらでてきた。
今んとこ str_replace で充分そうだけど、もしかしたら後で使いたいかも。
どう?
0217202
2005/03/21(月) 10:44:09ID:???少しだけど前進した。スレ汚しスマンカッタ
0218nobodyさん
2005/03/21(月) 20:52:21ID:???音楽ファイルよみこんでバイナリで吐き出しても
音楽は聴けるけど保存できません・
header("Accept-Ranges: none");
header("Content-Length: $filesize");
header("Content-Type: application/x-smaf");
header("Content-Disposition: attachment; filename=".$strMusicname);
i18n_http_output("pass");
$fp=fopen($strPath,"rb");
fpassthru($fp);
fclose($fp);
こんな感じで書いてるけどDocomoは再生・登録ともにできました。
何かヘッダー情報たりないんでしょうか?
0219218
2005/03/21(月) 20:53:20ID:???Vodafone端末に送付したら登録はできました
どなたか宜しくお願いします;−;
0220nobodyさん
2005/03/21(月) 21:34:19ID:???0221nobodyさん
2005/03/21(月) 21:53:40ID:???0222218
2005/03/21(月) 22:33:01ID:???ありがとうございました
0223nobodyさん
2005/03/22(火) 21:34:33ID:FZjBD8FMPHPのエディタってあんまりないですよね。。。
0224nobodyさん
2005/03/22(火) 21:41:44ID:???PHPエディタって、どうよ?
http://pc8.2ch.net/test/read.cgi/php/1079460638/
0225nobodyさん
2005/03/23(水) 00:55:18ID:???もしないのであれば、何故両立している状態があるのでしょうか?
0226nobodyさん
2005/03/23(水) 00:56:49ID:???0229225
2005/03/23(水) 01:04:23ID:???http://e-words.jp/w/PHP.html
これも読みました。。。
理解できていないと思うのですが、PHPの解説サイトとか見てみると、「cgiより軽い」とか「cgiよりサーバーへの負担が少ない」とか書いてあって。
cgiで出来てphpで出来ないことがないとしたら、両立している理由が分からないのです。。。 orz...
0230nobodyさん
2005/03/23(水) 01:15:31ID:???0232nobodyさん
2005/03/23(水) 01:25:25ID:???CやPerl、RubyなどもちろんPHPも含めてあらゆる言語を利用できる。
って、答えたらよかったのかなぁ?
0233nobodyさん
2005/03/23(水) 02:03:24ID:???レースドライバーと耕運機を比較するくらいズレてる。
そもそもPHPはCGIとして動かすことも可能。
0234nobodyさん
2005/03/23(水) 02:27:10ID:???巷の初心者に毛が生えたのが解説してるPHPサイトとかも
ちゃんと理解できていないからその記述になってるので安心汁。
(CGI=Perlらしい)
0236nobodyさん
2005/03/23(水) 09:15:07ID:???PHP5では
public $mona = array(0,1,2);
class giko {
}
PHP4では
$mona = array(0,1,2);
class giko {
global $mona;
}
という認識であってますか?
0237nobodyさん
2005/03/23(水) 10:00:02ID:???PHP自体が速いのではなく、Apacheモジュールとして立ち上げたPHPが(既にPHPが起動しているので)CGI版PHPより速い。
Perl→mod_Perl、CGI版Perl
多くのレン鯖はCGI版Perlで、Perlの起動に時間がかかるからmod_PHPと比べるとたいてい遅くなる。だからPHPはPerlより速くて負荷が小さいですよ、とか紛らわしい書き方をしている。mod_Perlとmod_PHPなら差はほとんどない。 であってるのかな。
モジュールとして動作→速い、モジュール限定機能あり
CGIとして動作→SuEXECが効く、Perlが落ちてもHTTPDまで落ちない
0240nobodyさん
2005/03/23(水) 10:44:39ID:???>>230みたいな勘違いしてる人は結構珍しいかも。
0241nobodyさん
2005/03/23(水) 10:51:38ID:???そのPHPを記述したファイルの拡張子(.php)を着メロ用ファイルの拡張子(何かは知らんが仮に.xxxとする)にし、
htaccess使うとかして、.xxxというファイルがPHPとして動作するようにしてみ。
試してないので上手くいくかどうかは知らんが。
あとPHPのバージョン(3使ってる?)の関係であえてそうしてるのだとは思うけど、
5行目 ⇒ mb_http_output('pass');
7〜9行目 ⇒ readfile();
一応、バージョン4以降使ってる人の為に。。
0243nobodyさん
2005/03/23(水) 11:08:37ID:???foreach ($arr[$k] as $key => $value) {
echo $key.$value;
}
}
エラー出る。なんで?
0244243
2005/03/23(水) 11:18:24ID:???ごめん。
0245nobodyさん
2005/03/23(水) 11:41:30ID:7EAkLlhUWarning: copy(): SAFE MODE Restriction in effect. The script whose uid is 574 is not allowed to access / owned by uid 0 in
↑こんなエラーがでるのは、レンサバの設定がセーフモードだからってことですか?
そんなときは、どうやって、fopenしたりmkdirしたりするんですか?
PHP Version 4.3.8
0247245
2005/03/23(水) 11:52:15ID:???ディレクトリは最悪、事前に準備することが可能なんですが、動的にHtmlファイルを生成(書き換え)したいと思っていまして、そんなとき、fopen()使わずにいけますか?
0248nobodyさん
2005/03/23(水) 11:57:35ID:???あらかじめ作ったディレクトリ(所有者がPHPスクリプトの所有者と同じ)内であれば特に制限は無いのでfopenでもcopyでも好きにやってくれ。
0249245
2005/03/23(水) 12:15:22ID:???ありがとうございます。
試してみました。↓
$result2 = copy("test_dummy/test.txt","test_dummy/test2.txt");
。。。でもダメでした。(同じメッセージ)
かなり初歩的なことだと思いますが、引き続きご指南いただけませんか。
0251nobodyさん
2005/03/23(水) 14:29:11ID:???>mod_perl > mod_php > Perl(CGI) > PHP(CGI)
その順番は一般にPHPは最初から拡張モジュールてんこ盛りでビルド
Perlは最初から余り入れずプログラムで必要に応じて採用する傾向のよるもの。
(PHPでdl()させてるところって殆どないやん)
実際に測ると総合力は余り変わらんよ。
0252nobodyさん
2005/03/23(水) 14:30:45ID:???0253nobodyさん
2005/03/23(水) 15:37:48ID:ZnAQR4mO0255nobodyさん
2005/03/23(水) 16:04:12ID:???PHPスレで聞いたって事はPHPにそういう関数はないかってことやね
無い と思う
linuxならduコマンド呼べ
0256nobodyさん
2005/03/23(水) 16:23:40ID:???0257nobodyさん
2005/03/23(水) 16:28:09ID:???http://www.itmedia.co.jp/enterprise/articles/0502/28/news003_2.html
view.php
http://www.itmedia.co.jp/enterprise/articles/0502/28/news003_3.html
漠然とした質問で申し訳ないのですが
練習としてやっていて初っ端でつまづいております・・・。
上のソースの必要個所を修正し、
その後アップロードをしview.phpにアクセスしても真っ白で何も表示されません・・・。
サーバーはlinuxでphpは4です
よろすくおねがいします
0258nobodyさん
2005/03/23(水) 16:29:44ID:???いや できないだろう
ハードディスクの空き容量が出るだけかquotaで割り当てられた容量が出るかじゃないのか
filesize()で一個ずつ足していくのはどうかね
0259PHP初心者
2005/03/23(水) 16:34:27ID:OtBPoiR1seach.phpでデータベースに接続して、検索結果を表示しています。
例えば、データベースは次のようなものです。
number | name | comment
1 | 太郎 | 1番足が速い
2 | 次郎 | クラスで5番目に背が高い
3 | 三郎 | 至ってhutuuな成績
検索フォームは次のようなものです。
<FORM action="search.php">
<INPUT size="20" type="text" name="key"><BR>
<INPUT type="submit" value="検索"><INPUT type="reset" value="リセット">
</FORM>
seach.php には次のようなものを記述しています。
$key = $_GET['key'];
・
・(省略)
・
$result = mysql_query("SELECT * FROM abc WHERE comment LIKE '%$key%'",$db);
「5」で検索すると、次郎君のデータが表示され、
「hutuu」で検索すると、三郎君のデータが表示されます。
しかし、「足」を入力して検索すると、検索ができません(何も表示されません)。
どうすれば、日本語でも検索できるようになるでしょうか?
何かお気付きの点がありましたら、教えていただきたいです。 m(_ _)m
0261nobodyさん
2005/03/23(水) 16:42:32ID:???MySQLのバージョンは?
4.0ならSELECT * FROM abc WHERE comment LIKE BINARY '%$key%'
3ならcommentフィールド自体にBINARYをつける
0262nobodyさん
2005/03/23(水) 16:46:08ID:???その両方の関数のユーザコメントでその手のが色々書いてある。
でもWindowsで試したけど、まあ上手くいかんね。
>>258の言うとおりdir()辺りで一覧とって、ファイルに限って
逐一filesize()で調べて合計出すのが良いと思う。
# du使えればそれが一番楽だけどね。
0263nobodyさん
2005/03/23(水) 16:48:48ID:???MySQLのサーバ設定で「日本語(ujis/sjis等)」ときちんと設定する。
サーバ設定が変更できない場合は、次善の策として>>261の方法で対処。
0264261
2005/03/23(水) 16:56:08ID:???ただ英字のHUTUUとかがhutuuでは検索できなくなります。
0267245
2005/03/23(水) 17:55:48ID:???遅くなりました。すみません。(>>245 >>247 >>249の件です)
パーミッションはrwx r-x r-xです。
所有者は私のFTP接続アカウントと同一です。
よろしくお願いします。
0268nobodyさん
2005/03/23(水) 17:59:15ID:???あらゆる処理の前に print "(行番号):"; てなものを放り込んで、
どこまで実行できているのか調べる。
君にはそれがお似合いです。
0269PHP初心者
2005/03/23(水) 18:49:14ID:2nyWi/q2取り急ぎ、お礼を申し上げます。 m(_ _)m
MySQLのバージョンは4.0.22です。
お教えくださったことを早速、試してみたいと思います。
0270245
2005/03/23(水) 19:32:25ID:???ディレクトリのパーミッションをrwx --x rwxです。
ありがとうございました。
0271nobodyさん
2005/03/23(水) 21:04:21ID:???自分に知識が無いのは分かってまつ(;´Д`)
最後にこれだけ教えてください
ほぼコピペしただけでも動かないってことは
>>257のソースには不備があるってことですか?
0272nobodyさん
2005/03/23(水) 21:17:45ID:???0273nobodyさん
2005/03/23(水) 21:17:52ID:???まず、view.phpのほうで、ちゃんとincludeできてるかどうかとか、
そういうのを>>265の言うとおり、
一個一個表示して確かめないとね。
そうしないと何行目がまずいんです!ってのはわかんないと思うよ。
0274nobodyさん
2005/03/23(水) 21:18:25ID:???同じテレビでも違う地域に引っ越したら、場合によっては受信設定を変える罠
0275nobodyさん
2005/03/23(水) 23:11:40ID:fSPzJGOM$case = '17,241';
?>
<?
print"\\$case(送料等含む)<br>";
?>
これで表示されませんorz
なにかまちがえてますでしょうか・・・?
0278nobodyさん
2005/03/23(水) 23:45:07ID:fSPzJGOMありがとうございました!
0279nobodyさん
2005/03/23(水) 23:46:15ID:???print"\\$case(送料等含む)<br>"; の 変数名の部分$case〜をうまく認識できていないんですよ。
<?
$case(送料等含む) = '17,241';
print"\\$case(送料等含む) (送料等含む)<br>";
?>
これで解決ですね(゚∀´)b
print"\\$case (送料等含む)<br>"; // 次の文字との間をスペースで分離
print"\\".$case."(送料等含む)<br>"; // 文字列演算子で分離
print"\\{$case}(送料等含む)<br>"; // { }で囲む
のように変数名の部分を(PHPの中の人に)分かり易く書くこともできます。
0280nobodyさん
2005/03/24(木) 00:40:10ID:???'\'.$case.'(送料を含む)'."\n"
このくらいから始めとけ。
printf()の説明もついでに見とけ。
0281nobodyさん
2005/03/24(木) 02:41:20ID:03HxTlZF<input type="button" value="a" onclick="javascript:a_check();">
<input type="button" value="b" onclick="javascript:b_check();">
javascriptのa_check()関数b_check()関数でそれぞれ簡単な
問い合わせ等をした後にOKならdocument.form.submit()で
PHPスクリプトに飛ばしてます。
で$_POSTで入力項目の値は取れるのですが、どちらのボタンが押されたか
判別出来ませんでした。ボタンにname属性を指定しても渡りません。
何か良い方法はあるでしょうか?お願いします。
0282nobodyさん
2005/03/24(木) 02:48:48ID:???<input type=hidden name=hoge>
を用意して、JavaScriptで値を渡してからform.submit()している。
面倒なんだけどね。
0284nobodyさん
2005/03/24(木) 03:08:48ID:???function a_check(){
if( ok ){ return true; }
else{ return false; }
}
<input type="submit" name="a" value="a" onclick="return a_check()">
てのもありかと。
0285nobodyさん
2005/03/24(木) 03:15:10ID:???これってJavaScriptでエラーが発生したら問答無用でsubmitされるんだよね
どうせならフェイルセーフにして欲しいなぁ
0286nobodyさん
2005/03/24(木) 03:21:04ID:???submitを用意すると、textのところでEnterキーを押されると飛んでしまうからヤダ。
当然onclickのところも処理されないし。
0287284
2005/03/24(木) 03:55:09ID:???鯖へのsubmit(意図しないものも含めて)をなるべく減らしたい場合には不適ですね。
0288281
2005/03/24(木) 04:30:41ID:???自分のほとんどjavascriptの質問でしたねすいません・・・
0289nobodyさん
2005/03/24(木) 10:48:10ID:RDA5se46やり方でやるのでしょうか?
0290nobodyさん
2005/03/24(木) 11:27:27ID:???0291nobodyさん
2005/03/24(木) 13:00:58ID:qO9+zWTj内容は↓とよく似ていて、php.ini や、configure の条件もほとんど同じなのですが、
この問いにレスがありません;;
ttp://ns1.php.gr.jp/pipermail/php-users/2005-March/025317.html
さらに、ファイルの末端行について↓のようなエラーが出て、ページが表示されません。
Parse error: parse error, unexpected $ in filename on line 316
{ } が閉じていないとこのエラーが出るようですが、全てのスクリプトは移行前は動いていましたし
括弧のチェックも行いましたが、何が悪いのかわかりません。
何かヒントか勘所ありましたらお教えいただければ幸いです。
よろしくお願いいたします。
0292nobodyさん
2005/03/24(木) 15:26:01ID:???dumpして、縦罫を区切り文字に変換、
行頭、行末の区切り文字を削除
残りの罫線文字を全て削除。
で、csvデータの出来上がり!
0294nobodyさん
2005/03/24(木) 18:06:13ID:???受け渡しが上手くいきません。
(画面)推移は[chageAction]->[chageView]->[resultAction]->[resultView]の
各Actionでデータを加工しています。加工したデータのオブジェクトを
[changeAction]から[resultView]まで持ち回したいのですが、[changeView]->[resultAction]へデータが渡りません。
以下の状況です。
[chageAction]で$request->setAttribute['datalist', $datalist];
[chageView]では受け渡しは何もしていません。
[resultAction]で$datalist = $request->getAttribute['datalist'];
とすると、print_r($datalist)は出力されません。(empty($datalist)がTrueです)
[changeView]でprint_r($request->getAttribute['datalist']);するときちんと表示されます。
また、$requestの利用をやめて単純にセッションで持ち回してみると
[changeAction]で、$_SESSION['datalist'] = $datalist;
[changeView]で、print_r($_SESSION['datalist'])は正しく表示されます。
[resultAction]で、print_r($_SESSION['datalist'])とすると
__PHP_Incomplete_Class Object( [__PHP_Incomplete_Class_Name]といった
失敗したクラスオブジェクトという表示がついたデータ(中身は正しそうです)
が表示されます。直前の[changeView]までは正しく表示されているのに
直後の[resultAction]で失敗していると言われます。
何か、怪しいところ、解決のヒントをいただけないでしょうか。
よろしくお願いいたします。
0295294
2005/03/24(木) 18:09:02ID:???あと、sage質問してしまいました。重ね重ねすみません。
0296nobodyさん
2005/03/24(木) 19:20:48ID:vhVEynDRpearのSpreadSheetExelWriter使えば?
0298nobodyさん
2005/03/24(木) 20:16:47ID:???session_start();
session_unset();
session_destroy();
echo "<form method=POST action=test.php>\n";
echo "<input type=checkbox name=checkbox[] value=test1>test1<br>\n";
echo "<input type=checkbox name=checkbox[] value=test2>test2<br>\n";
echo "<input type=checkbox name=checkbox[] value=test3>test3<br>\n";
echo "<input type=submit value=OK>\n";
echo "</form>\n";
-----------------------test.php-----------------------
session_start();
$checkbox = $_POST['checkbox'];
if (!isset($checkbox)) {
$checkbox = $_SESSION['checkbox'];
}
else {
$_SESSION['checkbox'] = $checkbox;
}
echo "<form method=POST action=" . $_SERVER['PHP_SELF'] . ">\n";
echo "<select name=name>\n";
for ($i=0; $i<count($checkbox); $i++) {
echo "<option value=" . $checkbox[$i] . (($checkbox[$i] == $_POST['name']) ? ' selected' : '') . ">" . $checkbox[$i] . "\n";
}
echo "</select>\n";
echo "<input type=submit value=GO>\n";
echo "</form>\n";
--------------------------------------------------
自鯖だとGOボタンを押してもプルダウンメニューが空っぽにはならないのですが
www.tripod.lycos.co.ukでテストしてみたらGOボタンを押すと同時に空っぽになってしまいました。
セッションの使い方間違っているのでしょうか?
0300nobodyさん
2005/03/24(木) 21:29:55ID:6QAMAmhS多次元配列で、指定したキーの要素が存在するかどうか
チェックする時、キーの範囲を絞って検査する方法
はどうやってますか?
幾つかサンプルを探してみましたが、1次元配列の例しか
見当たりません。
array_key_existsやissetを使うことになると思いますが
どうでしょう?
0301nobodyさん
2005/03/24(木) 21:33:01ID:???0302nobodyさん
2005/03/24(木) 22:00:15ID:???考えてるイメージどおりでいいんでね?
絞った範囲を逐次舐めていくか、一旦範囲を切り取った
別の配列用意して、そこを見ても良いと思うけど。
0303nobodyさん
2005/03/24(木) 22:22:14ID:6QAMAmhSレスありがとうです。
issetやarray_key_existsの第二パラメータを
[]付きで指定するとエラーになりますね。
やはり別の配列に切り取って、上記関数を
使う方法しかないでしょうか。
0304nobodyさん
2005/03/24(木) 22:29:27ID:???とか普通にやるけど?
0305nobodyさん
2005/03/24(木) 22:46:10ID:6QAMAmhSすみません、isset内の$Arr['hoge']は多次元配列でしょうか?
0307nobodyさん
2005/03/24(木) 22:53:52ID:???if(isset($Arr['hoge']['fuga'])){
とかも念の為確認したけど普通に通るね
4.3.4で確認したが、レン鯖とかでもエラーでた覚えはないな
0308nobodyさん
2005/03/24(木) 22:56:24ID:???では、'hoge'や'fuga'の部分を配列変数で指定したらどうでしょうか?
当たり前かもしれませんが、教えてください。
0309nobodyさん
2005/03/24(木) 23:09:46ID:???preg_replaceのパターンに配列使うみてーなん期待してんのなら
無理じゃね?そういう引数とれる関数じゃ元からねーだろ
0310nobodyさん
2005/03/24(木) 23:24:39ID:???登録の時は普通に配列変数を指定できるはずですが、
キーが存在するかどうかのチェック時に指定できない
となると、PHPの配列というのは、用途が限定されてきますね。
存在しないキーを指定して値を取り出そうとすると、
ランタイムエラーになるのですよね?
0311nobodyさん
2005/03/24(木) 23:27:47ID:???ttp://www.php.net/manual/ja/types.comparisons.php
0312310
2005/03/24(木) 23:35:17ID:???私はPHPを詳しく理解してないですけど、
あなたは私が何を言いたいのか理解していない気がします。
0313nobodyさん
2005/03/24(木) 23:42:31ID:???限定も何もPHPがどーのこーのの前に配列が何か良くわかってないんじゃない?
指定の仕方がおかしいっつーてるだけの話よ
別に存在しないKeyの連想配列参照したって構文エラーは出んぞ
0314310
2005/03/24(木) 23:56:46ID:???無効なキーを指定した場合、返ってくる値はNULLでしょうか?
マニュアルで配列のところを見てみましたが、どこに書いてあるのでしょう?
聞いてばかりですみません。
0316nobodyさん
2005/03/25(金) 00:22:20ID:???0317nobodyさん
2005/03/25(金) 02:48:05ID:????? ?? ?? ?? ???? ????
??:: ??
???:: ? ??
????::?:: ???????? ???? ? ????
??????::?::: :::?::??? ? ?
???????::?::?::::: :: :: ::::?::????????? ???
?????????::?:::?:::::::?::??????????? ???
0318nobodyさん
2005/03/25(金) 07:14:19ID:???正確には存在しないキーの配列を普通に参照すると
undefind indexでNoticeレベルのエラーは発生してる
(デフォルトのphp.iniでは確かNoticeレベルのエラーはレポーティングされない)
ただしissetで調べる時はNoticeも発生しない
存在しないキーの変数を無理矢理使おうとすると
NULL補完されてそのまま実行される
$array = array();
$hoge = $array['unknown'];
だと$hogeはNULL
でもあくまでPHPが補完してくれるだけであって
ちゃんとキーが存在するか調べてから
参照するコードを書く方がもちろん良い
話を元に戻して
多次元配列でキーの存在を調べるなら
$list = array(調べるキーのリスト);
foreach ($list as $key) {
if (isset($array['hoge'][$key])) {
・・・
}
}
あとはまあ応用で
0319nobodyさん
2005/03/25(金) 10:40:31ID:???0320294
2005/03/25(金) 10:48:05ID:TwEbcJkKどなたかアドバイスいただけないでしょうか。
0321nobodyさん
2005/03/25(金) 12:01:06ID:???chage〜とchange〜はtypoですか?
あと、文系っぽい質問の書き方を改めた方がいいと思った。
0322nobodyさん
2005/03/25(金) 12:59:58ID:???setAttribute[〜]、getAttribute[〜]は 見るからに怪しい。
0324nobodyさん
2005/03/25(金) 17:37:14ID:???0325294
2005/03/25(金) 17:53:55ID:???>321
typoです。文系っぽいというのはすみません。よくわかりません。
>322,323,324
typoです。わざとじゃありません。()です。でなきゃこの状況以前のエラーになります。
[]なしで書いてみたらもっとわかりづらかったです。
typoがおおくてすみません。なるべく状況をわかってもらえるように
書けば書くほどわかってもらえなくなります。
見直しはしてるのですが、気持ちの方があせってます。
わかりずらい書き方ですみませんが、どなたかアドバイスいただけないでしょうか。
よろしくお願いいたします。
0326nobodyさん
2005/03/25(金) 17:59:29ID:???ソースは基本的にコピペ。投稿する前には再確認しろよ。
0329294
2005/03/25(金) 18:29:56ID:???「typoです。
()と[]の区別がつきません…」
とかのネタは実は覚悟してたんですが、意表をつかれました。
わかりづらい書き方についてのアドバイスを拒否するわけではありませんが
できましたら、その、変数(オブジェクト)の引き渡しについても
アドバイスいただけないでしょうか。
0332294
2005/03/25(金) 18:57:30ID:???>>331
いえ、そうしていいならそうさせてください。上手くかけるかどうかわかりませんが。
今夜もう一度書きます。お目汚しすみません。
0334294
2005/03/25(金) 21:57:21ID:???あの、すみません。本当に4のどこに該当したでしょうか。
再度書こうとしているのですが、うまくまとまりません。
あと、他の方からのご指摘ですが文系っぽい文章もよくわかりません。
自覚がないのは手に負えないとは思うのですが…。
なんだか簡潔に書こうとすると省略が増えて、「最初から言えよ」と
言われそうです。コードを中心に助詞とかはぶいて書くと(理系っぽい?)
傲慢な感じです。(「コード見てわかれよ」というような)
結局typo部分を修正する程度になってしまうかもしれません。
といいつつもうすぐイラン戦なので、明日になるかもです。
typoについてご指摘いただいた方には、感謝してます。少なくとも
わかりづらい文章を読んでいただいたので。
>>333
もっと意表を衝かれました。
0335nobodyさん
2005/03/25(金) 22:00:57ID:???どっかにうpした方がよくなくって?
フレームワークスレ(Phrameと銘打ってあるが多分mojaviでも良かったかと)もあるけど、
あの書き方だとレス付かない希ガス
0336nobodyさん
2005/03/25(金) 22:19:34ID:???0337nobodyさん
2005/03/25(金) 22:30:53ID:???> コードを中心に助詞とかはぶいて書くと(理系っぽい?)
> 傲慢な感じです。(「コード見てわかれよ」というような)
「コード見ずにわかれよ」よりはマシ。
ソースをまるまるうpして、「動きません」だけ言われた方が解決出来る。
0338nobodyさん
2005/03/25(金) 22:37:42ID:???元理系で文系卒業したオレに一言言わせてくれ!
理系とか文系とかいう問題では無い!
人の問題なのですよ。
0340山田
2005/03/26(土) 01:05:40ID:FsI5PzWCプログラム自体は他のPCで動いたので大丈夫だと思います。
動かないPCはサーバ機として使っているものでwindows server 2003を使っています。
PHPを動かすと
Warning: mb_send_mail(): Failed to connect to mailserver at "192.168.1.100" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in・・・
というようなエラーが出ます。
同じようにphp.iniでSMTPをプロバイダのSMTPにしてもエラーメッセージが
192.168.1.100の部分がプロバイダのSMTPサーバ名に変わるだけでした。
何か問題があるとしたらどこがいけないのでしょうか?
0341nobodyさん
2005/03/26(土) 01:31:23ID:???逆に言うと、SMTP接続を受け付ける鯖がなければメールを送信できません。
192.168.1.100にメール鯖が無ければ当然そのようなエラーが起きます。
プロバイダのメール鯖を使うとしても、最近はPOP before SMTP等色々な制約があります。
そのWeb鯖が本番環境なら管理者に相談してみましょう。
0342nobodyさん
2005/03/26(土) 01:32:57ID:???> が、オブジェクトの受け渡しが上手くいきません。
> 画面推移は A->B->C->D
> オブジェクトをAからDまで持ち回したいのですが、B->Cへデータが渡りません。
> 状況は以下のとおりです。
> A
> $request->setAttribute['datalist', $datalist];
> B
> print_r($request->getAttribute['datalist']);
> 出力されます。
> Bでは受け渡しは何もしていません。
> C
> $datalist = $request->getAttribute['datalist'];
> print_r($datalist)
> 出力されません。
> $requestの利用をやめて単純にセッションで持ち回してみると
> A
> $_SESSION['datalist'] = $datalist;
> B
> print_r($_SESSION['datalist'])
> 出力されます。
> C
> print_r($_SESSION['datalist']);
> __PHP_Incomplete_Class Object( [__PHP_Incomplete_Class_Name]
> が出力されます。
> 何か、怪しいところ、解決のヒントをいただけないでしょうか。
> よろしくお願いいたします。
Bでも受け渡ししろ。ってことか?
0344山田
2005/03/26(土) 01:42:05ID:FsI5PzWC他のPC(windowsXP home)では同じプロバイダのSMTPサーバを指定したところ動きました。
そのためどこか設定がおかしいのかなと思ったんですが・・・
他には考えられる問題というのはないでしょうか?
0345山田
2005/03/26(土) 01:57:41ID:VYgvgifgどこかの設定のせいで25番ポートが遮断されているんですか?!
可能性としてどこがありえますか?
0346nobodyさん
2005/03/26(土) 02:00:01ID:???翻訳thx.
>>294
それみると、$datalistの型が気になってくるわけだが。
classだとしたら、ABでは定義されていて、Cでは定義されていない。とか。
クラスの定義はセッション開始前になければならない。requireなりincludeなりするのも前。
mojaviは使ったことないから知らん。
というか、「__PHP_Incomplete_Class Object」でぐぐれば答えがあるんだがな。
んで、何が見にくいかって、コードが本文中にメリ込んでるあたり。
どこがコードでどこが本文かわからん。
一旦左脳つかってから右脳に渡すとか面倒だ。
0347346
2005/03/26(土) 02:01:11ID:???>classだとしたら
クラスだろうな。 寝ぼけたこといってすまん。
0348nobodyさん
2005/03/26(土) 06:11:57ID:???> 翻訳thx.
シヤ−プの翻訳機だ。
脳内厨−>エスパー変換機能バンドル版
めいどいんシナ(海賊版)
入手困難。
0349nobodyさん
2005/03/26(土) 07:50:30ID:t6rEtfl2試したんですが出来ないみたいで。。
php5は出来ますか?
0350山田
2005/03/26(土) 08:02:13ID:VYgvgifg25番ポートは開放されています。
しかし設定によって遮断されているというのはありえるのでしょうか?
0351nobodyさん
2005/03/26(土) 08:26:24ID:???エラーメッセージでググッてみた?いろいろ出たよ。例えばこれ。
マルチバイト関数を使う場合以下の設定をします。
まずPHP.iniを開き編集します。
include_pathを探し自分の環境に合わせます
include_path = ".;c:/php/includes"
※例はPHPをc:\phpにインストールした場合
;extension_dirを探し;を外しコメントアウトを解除します。
さらにパスを自分の環境に合わせます
extension_dir ="c:/php/extensions"
※例はPHPをc:\phpにインストールした場合
マルチバイト関数モジュールを組み込みます。
;extension=php_mbstring.dllをさがし
;を外しコメントアウトを解除します。
PHP.iniを保存しApacheを再起動します。
※モジュール組み込みの場合
有効になったか確認する
phpinfo();
と記述したphpを開きmbstringの設定が表示されることを確認してください。
なければ設定が間違っています。
PHP.iniでデフォルト言語とデフォルト文字コードを設定しておくことができます。
;; デフォルトの言語を日本語にする
;mbstring.language = Japanese
;; 内部エンコーディングをEUC-JPに設定
;mbstring.internal_encoding = EUC-JP
それぞれ;mbstringから;を外してコメントアウトを解除し保存します。
mbstring.internal_encodingはPHPの文字コードを指定しています。
Shift-JISで記述されたPHPでマルチバイト関数を使うなど
設定した文字コード以外の文字コードや設定した言語以外の言語を利用する場合
PHP内で以下の関数を使い指定しておきます。
mb_language("Japanese");//言語指定
mb_internal_encoding("SJIS");//文字コード指定
0352nobodyさん
2005/03/26(土) 08:35:51ID:???試したコードを晒してみ。話はそれからだ。
0353山田
2005/03/26(土) 09:07:31ID:VYgvgifgぐぐってみてその設定はすでに完了しています。
php.iniファイルは他のPC(メール送信PHPが動いたPC)で使っていたものを
持ってきて環境設定したので大丈夫だと思うんですが・・・
0354294
2005/03/26(土) 10:08:37ID:???ありがとうございます。すごくわかりやすいです。
Bでの受け渡しも試してみましたがCには渡りませんでした。mojaviを使われている方が
居ないようなので、フレームワークスレへ行きます。
342さんの文章使わせていただきます。
>>346
オブジェクトの受け渡しに宣言が必要でしょうか。
session_start()等はmojaviが行ってる部分で何とも言えませんが
データの引き渡しを確認するためのものです。
アドバイスありがとうございました。
>>349
PHP4はオーバーライドはできますが、オーバーロードはできません。
PHP5は使ってないのでしりませんが、ぐぐれば情報出そうに思います。
>>353
動作したPCと動作しないPCと同じネットワーク環境でしょうか。
(内と外それぞれのIPアドレスとかHOST名とか…)
環境が変われば、SMTPサーバの設定が変わる可能性がありますよ。
(同じ設定ファイルでは動作しなくなるということです。)
では、もう50以上前の番号294はこれにて潜行します。
別スレでもひとつ穏便によろしくお願いしますね。
ありがとうございました。
0356PATH_INFO
2005/03/26(土) 10:44:38ID:RieTtHlGhttp://www.example.com/index.php
ディレクトリインデックスのファイルを index.php に指定しているので
http://www.example.com/ でもアクセスできます。
このスクリプトで PATH_INFO を使って様々なページを提供しています。
http://www.example.com/index.php/Page1
http://www.example.com/index.php/Page2 などなど
が、index.php が必ず見えるのは不細工なので
http://www.example.com/Page1
http://www.example.com/Page2
のようなURLでアクセスできるようにしたいと思っています。
Apache 2 を使っているのですが、どのように設定すればいいのでしょうか?
0357nobodyさん
2005/03/26(土) 11:01:27ID:???0358nobodyさん
2005/03/26(土) 11:08:00ID:qY7QRnsDhttp://tools.live365.com/cgi-bin/api_station_status.cgi?member_name=bcname&password=bcpassword&action=listeners
上記記CGIにアクセスすると下記ようにテキストでのXML形式のデータが出力されます。
<?xml version="1.0" encoding="ISO-8859-1" ?>
- <LIVE365_API_STATION_STATUS_CGI>
<Code>0</Code>
<Reason>Success</Reason>
<Stream_status>OK</Stream_status>
<Current_listeners_reg>35</Current_listeners_reg>
<Current_listeners_pm>2</Current_listeners_pm>
<Current_listeners>37</Current_listeners>
<Rating>8.73</Rating>
</LIVE365_API_STATION_STATUS_CGI>
そしてこれをPHPから読み取り、<Current_listeners>37</Current_listeners> の値だけPHPに出力したいのですがどのようにすればいいのでしょうか?
0359nobodyさん
2005/03/26(土) 11:15:24ID:???・対象URLからXMLデータを取得
・XMLをパース
・<Current_listeners>のValueを出力
_以上_
0360359
2005/03/26(土) 11:18:38ID:???・「file」で
・「xml」で
・「echo」で
幸れ。
_以上_
0361nobodyさん
2005/03/26(土) 11:20:04ID:qY7QRnsD>>538-539
thanks a lot!!
0362nobodyさん
2005/03/26(土) 12:35:36ID:???PHPの話ではないようなんですが、この方法は私も気になります。
どなたか知ってる方いれば・・・と思うんですが。
いないようならこちらに誘導しときます・・・。
人頼りマンセー
【俺たちゃ裸が】Apache質問スレ【ユニホーム♪】
http://pc8.2ch.net/test/read.cgi/mysv/1103367974/
0363nobodyさん
2005/03/26(土) 12:43:53ID:???たぶんmod_rewriteなら出来るとおもうよ。
0364358
2005/03/26(土) 12:53:31ID:qY7QRnsDエラーが出てしまいます。
ファイルの指定がおかしいみたいなのですが
function characters ($parser, $text) {
global $tmp;
$tmp = $text;
}
function startElement ($parser, $name, $attrib) {
}
function endElement ($parser, $name) {
global $tmp, $Current_listeners;
switch ($name) {
case "Current_listeners":
$Current_listeners= $tmp;
break;
default:
break;
}
}
$xml_parser = xml_parser_create ();
xml_parser_set_option ($xml_parser, XML_OPTION_CASE_FOLDING, false);
xml_set_element_handler ($xml_parser, "startElement", "endElement");
xml_set_character_data_handler ($xml_parser, "characters");
$fp = file (http://tools.live365.com/cgi-bin/api_station_status.cgi?member_name=*****&password=*****&action=listeners, 'r');
while ($filedat=fread($fp, 4096)) {
if (!xml_parse($xml_parser, $filedat, feof($fp))) {
}
}
fclose ($fp);
xml_parser_free ($xml_parser);
echo "$Current_listeners";
0365358
2005/03/26(土) 13:07:15ID:qY7QRnsDCGIのアドレスに無理やり拡張子 &.xml と入れても問題なかったので
下記のようにFILEだけならちゃんと動きました
バースがおかしいようです
<?php
$lines = file ('http://tools.live365.com/cgi-bin/api_station_status.cgi?member_name=****&password=****&action=listeners&.xml');
// 配列をループしてHTMLをHTMLソースとして表示し、行番号もつけます。
foreach ($lines as $line_num => $line) {
echo "Line #<b>{$line_num}</b> : " . htmlspecialchars($line) . "<br>\n";
}
// 他の例として、Webページを文字列に取り込みます。file_get_contents()も参照してください。
$html = implode ('', file ('http://tools.live365.com/cgi-bin/api_station_status.cgi?member_name=eurobeat&password=07075710&action=listeners&.xml'));
?>
0366358
2005/03/26(土) 13:44:52ID:qY7QRnsD以下で出来ました
<?php
function characters ($parser, $text) {
global $tmp;
$tmp = $text;
}
function startElement ($parser, $name, $attrib) {
}
function endElement ($parser, $name) {
global $tmp, $Current_listeners;
switch ($name) {
case "Current_listeners":
$Current_listeners= $tmp;
break;
default:
break;
}
}
$xml_parser = xml_parser_create ();
xml_parser_set_option ($xml_parser, XML_OPTION_CASE_FOLDING, false);
xml_set_element_handler ($xml_parser, "startElement", "endElement");
xml_set_character_data_handler ($xml_parser, "characters");
$fp = fopen ('http://tools.live365.com/cgi-bin/api_station_status.cgi?member_name=****&password=****&action=listeners&.xml', 'r');
while ($filedat=fread($fp, 4096)) {
if (!xml_parse($xml_parser, $filedat, feof($fp))) {
}
}
fclose ($fp);
xml_parser_free ($xml_parser);
echo "$Current_listeners";
?>
0368nobodyさん
2005/03/26(土) 16:53:02ID:???>25番ポートは開放されています。
実際に開放されてることはどうやって確認したの?
>しかし設定によって遮断されているというのはありえるのでしょうか?
自分はWindowsは良く知らないので、思わぬところに設定があったりして
はまることは良くある。あと今回はNATかなんかで外のISPのSMTPに繋ぐから
関係ないんだろうけど、外のSMTPサーバ側で接続規制してることも稀にあるからね。
0369nobodyさん
2005/03/26(土) 17:22:24ID:???unpack 'B133',substr($data,8,17);
0370nobodyさん
2005/03/27(日) 01:12:17ID:KQq1VVe4一回のGetに対してphp.iniで設定されているmemory_limit分のメモリが
割り当てられて複数のGetに複数の処理系が動くのでしょうか?
0372nobodyさん
2005/03/27(日) 08:15:29ID:x1LbwUGsセーフモードとか全オフなのになー
0374nobodyさん
2005/03/28(月) 08:16:30ID:???php in malloc(): error: allocation failed
って出て、Core を吐きます。内容としては、データベースにアクセスして、
データをメモリにじゃんじゃんぶち込んでるんですけど…
PHP だとどのくらいまで耐えられるんでしょうねぇ?
Machine は FreeBSD 5.2.1-R で確かに物理メモリで 512MB しかつんでないけど、
top で見てみても PHP がぶっちぎってる感じはしないし、swap は 4GB ちかくあります。
ちなみに core の容量はだいたい…500MB くらい。
0375374
2005/03/28(月) 08:19:01ID:???PHP 4.3.10 (cli)
です。 >> 374 の s/CUI/cli/g ですね。。
0376nobodyさん
2005/03/28(月) 09:23:27ID:???メモリ食いつぶしても俺のせいにしないでね
0377nobodyさん
2005/03/28(月) 10:02:33ID:YyD4GvIT$keyword = 'きーわーど';となってて、キーワード指定しないで全て表示したいときは
$keyword = '*';でOKでしょうか?
0379nobodyさん
2005/03/28(月) 10:48:41ID:8BD5QTo3どんな感じか解んねーけど、取りあえずチェキッとけとって。
0380nobodyさん
2005/03/28(月) 11:45:09ID:Z3hOsg+9「05/03/28(月)」という形式にしているのですが、
保存するときはタイムスタンプで保存して、
出力時に日付に変換するほうがいいのですか?
0381nobodyさん
2005/03/28(月) 11:54:19ID:???どっちが良いのかは、必要があるか無いかで判断すれ。
0382nobodyさん
2005/03/28(月) 13:08:42ID:1BLl4/4Mだとすると、バイナリデータを操作して作るしかないのでしょうか?
0385382
2005/03/28(月) 16:02:00ID:???ありがとうございました。
0386nobodyさん
2005/03/28(月) 17:48:52ID:0by1676F【言語】 問いません
【備考】
ttp://pc5.2ch.net/test/read.cgi/hp/1106947416/
上のような感じのものがいいのですが
0388nobodyさん
2005/03/28(月) 18:11:52ID:???0389nobodyさん
2005/03/28(月) 20:16:03ID:YyD4GvIT実は人様(今連絡とれませんorz)に作って頂いたスクリプトなので、
その部分を公開したいのですがちょっと気が引けます。。
でもそれじゃあ相談できませんよねorz
うーん。。。
0390nobodyさん
2005/03/28(月) 23:32:54ID:IX4olP0VSSHでルート権限でログインして du $dir とした場合と
phpで shell_exec( 'du $dir') を実行した場合(ブラウザからアクセス)では
なぜかSSHからのサイズのほぼ2倍になってしまいます。
ディレクトリのリストは同じように表示されるのですがそれぞれのサイズがほぼ2倍になっています。(サイズが1の場合は1のままでトータルでほぼ2倍)
念のため:容量計算対象のディレクトリ内ファイル・サブディレクトリ等は全てphpで作成されてます
これは何が原因なのでしょうか?
【環境】
レンタル鯖のVPS
FreeBSD 4.7
PHP4.3.9(apacheのモジュールとして動作)
Apache/1.3.33
0391nobodyさん
2005/03/29(火) 03:08:23ID:sh3sT6Ybclassのメンバ変数に他のクラスのインスタンスを置いたとき、
そのメンバ変数のメソッドを実行する時は
$this->hoge->proc();
では駄目なんでしょうか?
Call to a member function on a non-objectとエラーが出てしまいます。
何かヒントでもあればお願いします。
0394nobodyさん
2005/03/29(火) 10:58:39ID:ChFumad5ブラウザでFTPの様にディレクトリ表示させリンクでファイルを開きたいのですが
良いスクリプトがあれば教えてください。
0395nobodyさん
2005/03/29(火) 11:08:40ID:???0396394
2005/03/29(火) 13:04:39ID:???0397nobodyさん
2005/03/30(水) 19:06:28ID:???2次元配列全部の要素をループで取得したいのですけど、どのようにすればいいのでしょうか?
宜しくお願いします。
0398nobodyさん
2005/03/30(水) 19:12:55ID:???0401nobodyさん
2005/03/30(水) 20:26:55ID:???foreach ($out_value as $in_key => $in_value) {
//ここで好きに処理汁。
}
}
array関連の関数を見るのも吉
0402nobodyさん
2005/03/30(水) 20:27:14ID:???foreach($array1 as $key1=>$value1){
// 1. foreach ver.
foreach($value1 as $key2=>$value2){ /* 処理内容 */ }
// 2. for ver.
for($i=0; $i<count($value1); $i++){ /* 処理内容 */ } // forの2重ループでも当然可
}
実際のコードを書く時には、配列要素のチェック等が必要。
0403nobodyさん
2005/03/30(水) 20:45:00ID:???0405nobodyさん
2005/03/30(水) 21:12:44ID:???原因として何が考えられるでしょうか?
sleep()で止めてファイルを確認しても作られません。
file_uploadsOn
0406nobodyさん
2005/03/30(水) 21:16:14ID:???table1に(テーブル名vendor_info)
vendor_name vendor_url
Abit http://abit.....
ASUS http://asus....
table2に(テーブル名mb_info)
mb_name mb_url vendor_kind その他諸々
AV8 http:// Abit
A8V http:// ASUS
から、リストを
Abit(リンクvendor_url) AV8(リンクmb_url) その他諸々データ
という風にmb_infoのベンダー名からvendor_infoのvendor_urlのデータを
持ってきたいんだけど、試行錯誤した結果思ったとおりに出力できたソースが
(続く)
0407406
2005/03/30(水) 21:19:08ID:???$res = $conn->query($SQL);
if (! DB::isError($res)) {
// レコードの取得
while ($row = $res->fetchRow(DB_FETCHMODE_ASSOC)) {
vendorurl ();
echo "<a href=\"" . $row['mb_url'] . "\">" .$row['mb_name'] . "</a> |\n";
echo "<br>\n";
}
}
echo $res->numRows();
// データベースの切断
$conn->disconnect();
function vendorurl(){
global $conn;
global $row;
$sqlurl = "SELECT vendor_url FROM vendor_info WHERE vendor_name='" . $row['vendor_kind'] . " '";
$resurl = $conn->query($sqlurl);
if (! DB::isError($resurl)) {
while ($rowurl = $resurl->fetchRow(DB_FETCHMODE_ASSOC)) {
echo "<a href=\"" . $rowurl['vendor_url'] . "\">" . $row['vendor_kind'] . "</a> |\n";
}
}
}//function vendorurl
こうなった。んで思ったとおりに表示されてるんだけど、リレーショナルデータベース
の使い方としてこれで良いのか、もっとスマートなやり方があるのかお聞きしたい。
0408405
2005/03/30(水) 21:36:19ID:???0409nobodyさん
2005/03/30(水) 22:23:17ID:???SELECT * FROM mb_info,vendor_info
WHERE mb_info.vendor_kind = vendor_info.vendor_name
GROUP BY mb_info.mb_name
ORDER BY mb_info.vendor_kind;
0411nobodyさん
2005/03/30(水) 23:14:01ID:???なるほど、そうやって使うものなのね。
自分で>>407を書いててこれってリレーショナルな使い方じゃないよな・・・
って素人ながらに感じていたんだよ。
完全にSQLスレで聞いたほうが良い内容だったけど、お蔭様で先が見えてきました。
ありがとう。
0412nobodyさん
皇紀2665/04/01(金) 00:38:54ID:6CcmQp6cこのエラー内容を、ブラウザに表示できないでしょうか?
Perlだと、
use CGI::Carp qw(carpout fatalsToBrowser);
とか、
Kcatch.pm
っていうものがあるのですが・・・
なんかライブラリなりコードでもいいので、
ご存じの方、教えていただければ幸いです。
0413nobodyさん
皇紀2665/04/01(金) 01:25:04ID:???どうすればいい?
0415nobodyさん
皇紀2665/04/01(金) 01:55:33ID:???何ページですか。
0416nobodyさん
皇紀2665/04/01(金) 01:59:08ID:6CcmQp6cwww.php.net いって、sessionで検索。
あとはまかせた。
session はある程度の知識がないうちに公開しちゃうと、
いろいろとセキュリティーホールになるので注意
0417nobodyさん
皇紀2665/04/01(金) 02:02:03ID:???0418nobodyさん
皇紀2665/04/01(金) 02:02:12ID:???エイプリルフールですyo!
0419nobodyさん
皇紀2665/04/01(金) 02:08:52ID:???0420nobodyさん
皇紀2665/04/01(金) 08:16:41ID:???昨夜PHP4も5もコンパイルしたばっかりだというのに...orz
0423nobodyさん
皇紀2665/04/01(金) 11:16:34ID:???0424nobodyさん
皇紀2665/04/01(金) 12:21:42ID:???ttp://www.sitepoint.com/blog-post-view.php?id=248887
0425421
皇紀2665/04/01(金) 12:41:40ID:???リリースの日付は3/31だからエイプリルフールじゃないよな
0426nobodyさん
皇紀2665/04/01(金) 19:11:43ID:???0427nobodyさん
皇紀2665/04/01(金) 19:12:12ID:???phpinfo() や公式に確認可
0428nobodyさん
皇紀2665/04/02(土) 01:44:36ID:???2つのブラウザで同時にアクセスすると同一セッションになりますが、
1つ目のブラウザが決済のページに入ったら2つ目のブラウザは
決済ページを表示できないようにしたいです。
0430nobodyさん
2005/04/02(土) 05:01:43ID:4/Eqlz9k0431nobodyさん
2005/04/02(土) 05:02:31ID:???0432nobodyさん
2005/04/02(土) 11:45:09ID:???0433nobodyさん
2005/04/02(土) 18:06:21ID:55/k15cN知り合いにそういったツールがあると聞いたのですが、どんなものがあるのでしょうか?
0434nobodyさん
2005/04/02(土) 18:37:44ID:???0436nobodyさん
2005/04/02(土) 20:25:51ID:A7D+JrLe0438nobodyさん
2005/04/02(土) 23:20:20ID:A7D+JrLe0440nobodyさん
2005/04/02(土) 23:39:27ID:???ここにLinuxでパスワード付きのzipファイル生成する話題が出てるんで
このコマンドをphpからsystem関数で発行すれば良いかも
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=19632&forum=10&3
0441nobodyさん
2005/04/03(日) 09:11:32ID:rv9qNWYeどうしてもファイルの中身がブラウザに表示されてしまいます。
(以下が、スクリプトまるごと全部です。)
//===========================================================
$sFilename = "seminar.csv";
$sUnixPathFile = $_SERVER["DOCUMENT_ROOT"] . "../data/" . "seminar_request.csv";
$fh = fopen ($sUnixPathFile, "r");
flock($fh,LOCK_EX) or die();
$buffer = fread ($fh, filesize ($sUnixPathFile));
flock($fh,LOCK_UN) or die();
fclose ($fh);
header("Content-disposition: attachment; filename={$sFilename}");
//dummyはIE対策
header("Content-type: application/octet-stream-dummy; name={$sFilename}");
print $buffer;
exit;
//===========================================================
どうすればダウンロードできるのでしょうか?
お助けいただければ幸いです。よろしくお願いします。
0442nobodyさん
2005/04/03(日) 10:23:20ID:???0444nobodyさん
2005/04/03(日) 13:35:14ID:???OSSの性能・信頼性評価/障害解析ツール開発
ttp://www.ipa.go.jp/software/open/forum/DevInfraWG.html
0445nobodyさん
2005/04/03(日) 13:42:01ID:QiTsRZ7FみなさんはどのようにしてPHPを覚えられましたか?
本でしょうか、それともネット上で?
0446nobodyさん
2005/04/03(日) 13:54:12ID:???マニュアルを読めば十分。
マニュアルはネットで配布されている。
関数が豊富に用意されているので、
まったくのド素人でも、覚えることそんなに無いかと思う。
とは言っても、アルゴリズムの一つや二つ知ってるだけでも、
かなり違ってくると思うので、本を買うのも、また良し。
(本に書いてあるかどうかは不明)
0447nobodyさん
2005/04/03(日) 14:00:57ID:QiTsRZ7Fマニュアルってこれのことですね。
ttp://php.s3.to/man/
早速トライしてみます。
0448nobodyさん
2005/04/03(日) 14:47:13ID:IkqaEHUCメールアドレスを登録してくれた人に、返信メールを送るシステムを作ったのですが、
携帯に返信できません。(実験したdomainは@t.vodafone.ne.jp)
Mb_Send_Mail($address, $subject, $text, $header)
で、$headerには自分のドメイン(DDNSで運営している)を入力しているのですが。
知ってる方いらっしゃいませんか?
0449441
2005/04/03(日) 16:00:01ID:rv9qNWYe0450nobodyさん
2005/04/03(日) 17:24:55ID:???俺はPEARのHTTP_Downloadを使ってる。
$dl = &new HTTP_Download();
$dl->setData($fileData);
$dl->setLastModified(time());
$dl->setContentType("application/x-octetstream");
$dl->setContentDisposition(HTTP_DOWNLOAD_ATTACHMENT, $fileName);
$dl->send();
$fileData:ファイルの中身
$fileName:ファイル名
こんな感じでo.k.
0451nobodyさん
2005/04/03(日) 18:06:18ID:???以下の正規表現ではだめなのでしょうか?
どうしてもfalseになってしまいます・・・
if (preg_match("/^[ア-ン・−]+$/",$aParam["company_name_kana"]))
お助け願えれば幸いです。
0452nobodyさん
2005/04/03(日) 18:42:28ID:???mb_eregiかmb_eregを使って正規表現できる
0454nobodyさん
2005/04/03(日) 18:44:49ID:???0455451
2005/04/03(日) 19:45:30ID:rv9qNWYeんー、PHPのサイトみたらnmb_eregiかmb_eregは、まだ実験的ってあるので、避けたいところでして・・・
>>453さん
んー、しらべてみたところ、
if (preg_match("/^[ァ-ヶ・−]+$/"/",$aParam["company_name_kana"]))
かな、と思ったのですが、実行してみたら、だめでした・・・_| ̄|○
>>454さん
「preg_*だとUTF8使えば可能」ってのは、UTF8を使わないとダメってことでしょか?
あるいはEUCでも可能な方法はあるのでしょうか・・・
恐縮ですが、よろしくお願いします。
0456nobodyさん
2005/04/03(日) 21:22:06ID:???Windows版PHPでphp-ts.dll他を入れ替えてないというオチでは?
>>447
検索だとそのサイトがどうも上位に来るようなんだけど、マニュアルが古いから
ちゃんと本家のマニュアルをベースにした方が良いよ。
あと手元にアーカイブをコピーしてそっち見るとか。
http://jp.php.net/manual/ja/
0457nobodyさん
2005/04/03(日) 21:47:00ID:wg0bg1Ve2ch
という2つのフォルダが同じディレクトリ内にあるとして、
2chのindex.phpからhogehogeのindex.phpを指定する場合
<?php chdir("../hogehoge/"); include("index.php"); ?>
と記述するとエラーが出てしまうんですが、どこが間違っていますか?
0458nobodyさん
2005/04/03(日) 21:55:15ID:???<? include("../hogehoge/index.php") ?>
と書かないの?
0459nobodyさん
2005/04/03(日) 22:02:23ID:???マニュアルの記述は古いので現在は実験的ステータスってのは英語版のマニュアルには無い。
preg_*はUTF8でないと正確に日本語を扱うことは出来ない。
0460457
2005/04/03(日) 22:08:12ID:???以前その書き方をした時にエラーが出て、457のような書き方を知ったんですよ。。
でも今それを試してみたらできました。
よくわかんないけど解決しました。
ありがとうございました。
0461nobodyさん
2005/04/03(日) 22:39:13ID:???その環境のセーフモードに関わるあたりの設定か、
その当時の(PHPのセーフモード絡み)バグかと思われ。
# セーフモード絡みのバグは結構多い。
0462nobodyさん
2005/04/04(月) 00:28:53ID:/X5zJ+6Whttp://www.itmedia.co.jp/enterprise/articles/0504/03/news010.html
0463nobodyさん
2005/04/04(月) 00:53:24ID:???マニュアル読んだけどポンとこないいだなぁ
どんなとき使うの?
0464nobodyさん
2005/04/04(月) 01:25:35ID:???ob_start();
curl_exec($ch);
$str = ob_get_contents();
ob_end_clean();
0465nobodyさん
2005/04/04(月) 02:28:34ID:???0466nobodyさん
2005/04/04(月) 02:51:56ID:???curl_exec()はphpinfo()等といっしょで、実行すると(通常は)標準出力に垂れ流しちゃうから、
こうやってバッファリングでキャッチするしか、その出力を変数として取得できないんよ。
0467nobodyさん
2005/04/04(月) 04:10:19ID:???こんな使い方で着ますか?
header("location...."の出力の前になにか出力されていると
エラーになるけどob_start()使えば大丈夫?
0468nobodyさん
2005/04/04(月) 04:21:27ID:???header前に出力してしまうような仕様を見直したほうがいいぞ。
不意に出力してしまうのを回避ってなら、ob_start()前に出力してしまう可能性もあるわけだし。
あと、某スレへの誤爆してしまったものだがw
> 881 名前:nobodyさん[] 投稿日:2005/04/04(月) 03:08:04 ID:Es2o76gF
> PEARのエラーハンドリングもob_start()でphpが出す
> エラーメッセージをそのまま出力しないように取り込んでるね。
0469nobodyさん
2005/04/04(月) 09:34:12ID:???$_SERVER['REMOTE_HOST']
$_SERVER['PATH_INFO']
$_SERVER['CONTENT_TYPE']
$_SERVER['HTTPS']
$_SERVER['HTTP_RANGE']
$_SERVER['HTTP_IF_NONE_MATCH']
$_SERVER['HTTP_IF_MATCH']
$_SERVER['HTTP_IF_UNMODIFIED_SINCE']
$_SERVER['HTTP_IF_MODIFIED_SINCE']
の様な記述を見たのですが、cliでもApacheモジュールでも値が取得できません。
これらの値はどういうときにセットされるんですかね?
0470nobodyさん
2005/04/04(月) 09:59:45ID:???CLIは無理だろ。サーバモジュール版で取れない理由は判らんが、
サーバ側がセットしてないからかな。mod_envを入れてないとか。
0471447
2005/04/04(月) 10:43:04ID:???わざわざありがとうございます!ここの板の方は親切な方ばかりで。
本家のマニュアルを参考にしてPHPを使いこなせるように精進します。
0472nobodyさん
2005/04/04(月) 12:54:34ID:???0473nobodyさん
2005/04/04(月) 15:50:32ID:8msdlW8Q0474469
2005/04/04(月) 16:14:02ID:???> >>469
> CLIは無理だろ。
いや分かってますが、一応お約束ということで確認しました。
Apacheのhttpd.confではmod_envが有効になっていますが、
$_SERVER['HTTPS']を表示させようとするとUndefined indexが
返ってくるので有効になってないということですかね。
0475nobodyさん
2005/04/04(月) 16:21:11ID:???$_SERVER['REMOTE_HOST']
Apache の設定がHostnameLookups Offになってるとセットされない
$_SERVER['PATH_INFO']
URLにPath infoが含まれないとセットされない
$_SERVER['CONTENT_TYPE']
GETの場合はセットされない
$_SERVER['HTTPS']
httpsじゃないとセットされない
$_SERVER['HTTP_RANGE']
$_SERVER['HTTP_IF_NONE_MATCH']
$_SERVER['HTTP_IF_MATCH']
$_SERVER['HTTP_IF_UNMODIFIED_SINCE']
$_SERVER['HTTP_IF_MODIFIED_SINCE']
ユーザーエージェントが送らないとセットされない
0476nobodyさん
2005/04/04(月) 16:22:11ID:???あったとしてもSSL関連のっぽいし
print_r($_SERVER)してみたら
0477469
2005/04/04(月) 17:01:34ID:???おお、ありがとうございます。
まさに解説のとおりでした。
>>476
HTTP.phpでは、
$protocol = isset($_SERVER['HTTPS']) ? 'https' : 'http';
みたいな感じで使ってました。
何がしたかったのかというと、$_SERVER と getenv が等価なのかを
知りたかったのです。
完全に等価なら getenv に書き換えて、php.iniの
variables_order = "EGPCS" を "GPC" にしてメモリを節約しようかと。
foreach ($_SERVER as $key => $value) {
echo $key .":". $_SERVER[$key] ."=>". getenv($key) ."</ br>";
}
でチェックすると、getenv には 'PHP_SELF' はセットされていないようですね。
PATH_INFO は使わないことにして、getenv('SCRIPT_NAME') で代替するかな。
0478nobodyさん
2005/04/04(月) 17:42:57ID:???例えばtest.phpがあったとして
そのソースの中にtest.phpを読み込む記述をしたら無限ループしちゃうの?
0479nobodyさん
2005/04/04(月) 17:46:46ID:???0482nobodyさん
2005/04/04(月) 18:29:31ID:???2chに書き込んでいるマシンにPHPを入れて試せばいいやん。
別にApache入れたりせんでもコマンドラインで試せるでしょ。
0483nobodyさん
2005/04/04(月) 19:41:50ID:???0484nobodyさん
2005/04/04(月) 20:01:18ID:???0486nobodyさん
2005/04/05(火) 00:26:42ID:???以下のxmlスクリプトをsimpleXML関数で読み込み、
<root>
<p>ああ</p>
<p>いい</p>
<comment>アア</comment>
<p>うう</p>
<comment>イイ</comment>
</root>
これを上から順に、以下のように出力したいのですが、どうすればいいのでしょうか?
ああ
いい
アア
うう
イイ
0487nobodyさん
2005/04/05(火) 09:06:53ID:???fsockopen()みたいにHTTPヘッダを自分で用意することはできないのでしょうか?
もしくはfsockopen()でソケット接続ときに上の関数で取得する方法
またfilesize()を使ってからgetimagesize()使うと
URLに2回アクセスすることになるのですが、
1回のアクセスで同時に取得することは可能ですか?
分かる方がいたら教えてください。
0488nobodyさん
2005/04/05(火) 09:29:10ID:???リモートのファイルを取得してローカルの/tmpに保存。
そのファイルに対して各関数を適用すればいいんじゃないの?
httpのheadリクエストでも取得できる場合もあるけども。
0489U N S E T( ) ◆g9jPPQs3mo
2005/04/05(火) 10:07:51ID:???俺はチャレンジャーなのでやってみた。
winxpsp2
コードは下記
<?php
include "incl.php";
?>
結果はページは表示されません、っとでます。
ちょっと期待してたのに詰まんないので、下記もやってみる。
<?php
echo "a";
include "incl.php";
?>
一緒だったorz
0490nobodyさん
2005/04/05(火) 10:44:32ID:???0491nobodyさん
2005/04/05(火) 11:21:06ID:???0492nobodyさん
2005/04/05(火) 11:22:29ID:???実は俺もやった
Windows のApache2.0 moduleで
Parent: child process exited with status 3221225477 -- Restarting.
>>490
Apacheの子プロセスがこけたので何も帰ってきません
0493nobodyさん
2005/04/05(火) 13:16:47ID:FyaY+6Ab改行コードだけを取り除き、ファイルに保存しようとしているのだが
$str = nl2br(trim($_POST['str']));
$str = str_replace("\n", "", $str);
$str = str_replace("\r\n", "", $str);
$str = str_replace("\r", "", $str);
改行が取れない、nl2brを行わなければ問題なく改行コードを
除去できるのだが、何故?
0495nobodyさん
2005/04/05(火) 13:48:01ID:???PHP Warning: Unknown(): Unable to load dynamic library
のエラーが出ます。普通に起動した場合はちゃんと動きます。
どんな理由が考えられるでしょうか。どなたかお助けを・・・。
0499nobodyさん
2005/04/05(火) 14:22:34ID:???返信ありがとうございます。
そちらのほうが効率も良さそうなので早速使ってみました。
調子に乗って悪いのですが
受け取るデータの量を制限したいので↓みたいにして動作はするのですが
while(!feof($fp)){
$data .= fgets($fp, 128);
if(strlen($data) > 1048576){
fclose($fp);
echo "IMB超えちゃった";
break;
die;
}
}
ループ毎にstrlenで数えて判定をだすというのは効率が悪い気がするので
うまくチェックする方法はないですか?
0500499
2005/04/05(火) 14:23:59ID:???0501nobodyさん
2005/04/05(火) 15:24:53ID:???ありがとうございます。
php自体は動くようになったのですが、今度はpostgresが動かない。
configureの確認かな・・・。
0502nobodyさん
2005/04/05(火) 15:54:20ID:???postgres単独では動作してるの?
PHP + PostgreSQL
http://pc8.2ch.net/test/read.cgi/php/983128806/
こんなのもあるよ。
0503nobodyさん
2005/04/05(火) 16:42:18ID:???phpinfo()で表示される
Thread Safety disabled
ってPHPのこといってるんでしょうか。
0504nobodyさん
2005/04/05(火) 17:05:06ID:???Yes.
Zend Thread Safety(ZTS)
--enable-maintainer-zts
--enable-roxen-zts
0505491
2005/04/05(火) 19:04:41ID:???どーもです。
<?php
ini_set('error_reporting', E_NOTICE);
echo $a[0];
echo $b;
?>
としたら
Warning: Undefined variable: a in /home/miyakegumi/public_html/wat/php/test.php on line 3
Warning: Undefined variable: b in /home/miyakegumi/public_html/wat/php/test.php on line 4
と吐いてくれました。
代入は検出できませんが、これだけでもあると助かります。
0506nobodyさん
2005/04/06(水) 07:26:06ID:nH8oVa9B0508nobodyさん
2005/04/06(水) 07:53:21ID:???ありがとう。
このオプションを付けてメイクしApache2と組み合わせれば、スレッドセーフな
PHPが利用できるということですか?
今はApache 1.3の環境しかないので週末にでも試してみます。
0510nobodyさん
2005/04/06(水) 10:46:50ID:gc7DD2Cw'<mojiretsu>moji"retsu</mojiretsu>'
みたいなかんじに、その文字列内に実体参照が入っています。
これを xml_parse_into_struct() に喰わせてやると、
実体参照がことごとく消えてしまうのですが、
これはそういう仕様なんでしょうか?
'MOJIRETSU' => 'moji"retsu'
みたいに取り出すにはどうすればいいでしょうか?
PHPは5.0.3を使っています。
0511nobodyさん
2005/04/06(水) 10:57:56ID:???'<mojiretsu>moji"retsu</mojiretsu>'
0512nobodyさん
2005/04/06(水) 11:18:54ID:???><mojiretsu>moji"retsu</mojiretsu>
そもそも、これはXMLの仕様で許されるのか?
CDATAセクションでもなしに。
0514nobodyさん
2005/04/06(水) 12:04:20ID:???<?php
$str = '<mojiretsu>moji&"retsu</mojiretsu>';
$p = xml_parser_create();
xml_parse_into_struct($p,$str,$val,$idx);
xml_parser_free($p);
var_dump($idx);
var_dump($val);
?>
PHP4.3.9(Win)もPHP5.0.4(Win)でも
array(1) {
["MOJIRETSU"]=>
array(1) {
[0]=>
int(0)
}
}
array(1) {
[0]=>
array(4) {
["tag"]=>
string(9) "MOJIRETSU"
["type"]=>
string(8) "complete"
["level"]=>
int(1)
["value"]=>
string(10) "moji"retsu"
}
}
0516nobodyさん
2005/04/06(水) 15:51:09ID:???addslashesみたいなのキボン
0517516
2005/04/06(水) 15:52:37ID:???空白(半角スペース)を&nbspに変更する関数はありますか?
0518nobodyさん
2005/04/06(水) 16:27:24ID:???0519nobodyさん
2005/04/06(水) 16:32:27ID:???どうもです。
それをしてもこうなるんですよね。
バージョンの問題か、OSの問題か、php.iniあたりかということですね。
array(1) {
[0]=>
array(4) {
["tag"]=>
string(9) "MOJIRETSU"
["type"]=>
string(8) "complete"
["level"]=>
int(1)
["value"]=>
string(9) "mojiretsu"
}
}
0520nobodyさん
2005/04/06(水) 17:23:20ID:???Linuxでも試してみたけど、
-PHP4.3.10(Linux)/EXPAT 1.95.6
-PHP4.3.10(Linux)/EXPAT 1.95.7
-PHP4.3.11(Windows)/EXPAT 1.95.6
-PHP5.0.4(Windows)/libxml2 2.6.11
全部結果は同様にちゃんと出てる。
0521nobodyさん
2005/04/06(水) 17:31:41ID:???つーか、changelogみたら、PHP5.0.3の
Bug#31139 "XML Parser Functions" seem to drop & when parsing
http://bugs.php.net/bug.php?id=31139
そのものじゃないのか?
0522nobodyさん
2005/04/06(水) 17:38:27ID:???やっぱ>>521だわ。
-PHP5.0.3(Windows)/libxml2 2.6.11で再現確認。
-PHP5.0.2(Windows)/libxml2 2.6.11では問題なし。
0523nobodyさん
2005/04/06(水) 17:44:55ID:???選択名<BR>
<select name="数字">
<option value="1">1
<option value="2">2
<option value="3">3
</select><BR>
<input type="submit" value="OK">
</form>
1を選択した時に1が表示出来るようにしたいのですが、***のスクリプトが
わかりません。どなたか教えて下さい。
0524nobodyさん
2005/04/06(水) 17:45:23ID:???選択名<BR>
<select name="数字">
<option value="1">1
<option value="2">2
<option value="3">3
</select><BR>
<input type="submit" value="OK">
</form>
1を選択した時に1が表示出来るようにしたいのですが、***のスクリプトが
わかりません。どなたか教えて下さい。
0525nobodyさん
2005/04/06(水) 17:59:54ID:???---------------------------------
<form action="test.php"method="post>
選択名<BR>
<select name="num">
・
・
・
---------------------------------
[test.php]
<?php
echo $_POST['num'];
?>
---------------------------------
0527nobodyさん
2005/04/06(水) 18:22:48ID:???0529nobodyさん
2005/04/06(水) 19:21:44ID:???質問の仕方が間違っていました。
<form action=www.test.com/test.php method="post">
選択名<BR>
<select name="num">
<option value="1">1
<option value="2">2
<option value="3">3
</select><BR>
<input type="submit" value="OK">
</form>
test.php
<?php
if ( $_POST["num"] == "1" ) {
header("LOCATION:http://www.test.com/ 1.html");
}elseif ( $_POST["num"] == "2" ) {
header("LOCATION:http://www .test.com/2.html");
}elseif ( $_POST["num"] == "3" ) {
header("LOCATION:http://www.test.com/ 3.html");
}else {
header("LOCATION: form.html");
}
?>
あっていますか?
0530nobodyさん
2005/04/06(水) 20:30:31ID:???0531nobodyさん
2005/04/06(水) 20:52:36ID:???間違っています
どこかのブラウザでどこかの鯖なら間違って動く事もあるかもしれないが。
ってかそれだけの事だけだったらJS使えば?
0533nobodyさん
2005/04/07(木) 00:22:36ID:???htmlのformで注文情報をpostして値をチェック
入力不適切なところがあれば前のページへ戻すのですが、
そのときに値が消えてしまいます。
どうすればよろしいのでしょうか。
0535nobodyさん
2005/04/07(木) 00:48:26ID:???了解しました。
0536nobodyさん
2005/04/07(木) 00:48:40ID:???<input type="text" name="hoge" value="$_REQUEST['hoge']">
0539nobodyさん
2005/04/07(木) 08:02:27ID:???0540nobodyさん
2005/04/07(木) 08:17:27ID:???ぐらいしてるだろ。
0541nobodyさん
2005/04/07(木) 09:18:19ID:???0542nobodyさん
2005/04/07(木) 09:35:15ID:???そりゃ悪さする奴が悪いが、悪さされたことにより
それが誰かに被害を与えれば、被害を与えた奴が(も)悪い。
ある程度同情はするが免責はせんよ、自分が被害者なら。
0543nobodyさん
2005/04/07(木) 15:07:02ID:???in filename on line 537
というエラーでチュンとも鳴かないスクリプトに困っています。
該当行は、
if(!isset($_POST['datalist'])) { // <----- ココ
return;
}
で、何が悪いのか判りません。
$_POST['datalist'] を、$_POST[datalist] にすると、とりあえずその行でのエラーは消えますが
また次に出てくる配列の部分でエラーになり、配列キーの ' ' を全部消すと、
今度はファイルの最終行で「$が余計です」というエラーになります;;
" " でくくった配列は一つもありません。環境は、PHP4.3.9+Apache2.0 です。
何か思いつく方おられましたら教えてください。よろしくお願いいたします。
0544nobodyさん
2005/04/07(木) 16:07:19ID:???0545nobodyさん
2005/04/07(木) 16:07:57ID:???鳴かぬならぶち殺してしまえ、そのスクリプト。
APCとかZendのプリコンパイラとか最適化ツール使ってない?
0547nobodyさん
2005/04/07(木) 16:44:56ID:???次のようなスクリプトでT_ENCAPSED_AND_WHITESPACE部分を抽出してみるとか。
$source = file_get_contents("test2.php");
$tokens = token_get_all($source);
foreach($tokens as $token){
if(is_string($token)){
// echo $token."<br>\n";
}else{
list($id,$text) = $token;
print $text."<br>\n";
if($id == T_ENCAPSED_AND_WHITESPACE){
print "[this line]".$text."[/this line]<br>\n";
}
}
}
0548nobodyさん
2005/04/07(木) 17:36:31ID:???↑これですが、Sn Uploaderのように、
下部にディスク使用量を表示させるにはどうすればよいでしょうか?
0553nobodyさん
2005/04/07(木) 18:43:53ID:???547さんに教えていただいた方法を元に虫潰しにかかりましたが、
今度は別の行でひっかかって動きません;; 想像を絶する見落としなんですかねぇ・・・
問題ないように見えるし、元は4.0.2でちゃんと動いていたものなのですが・・・・・ プンスカ
>545 業者納入なので判りませんが、フツーにしか入れてないと思います
早くしないと旧機が持っていかれてしまう;; 焦りまくりッス
愚痴スマンです。 ありがとうございました。
0554nobodyさん
2005/04/07(木) 19:38:04ID:vs0utpq/0555nobodyさん
2005/04/07(木) 21:15:40ID:???無償なんで普通に入れてたりしますが。
# まあ運用上は有益だけど問題が出るケースもあるから、
# 依頼されなけりゃ入れないが正解だが。
phpinfo()で入ってるか簡単に判るので念のため確認しとき。
何にせよ自分が使ってる環境を本人が認識できてないなんて、良くないことなんだから。
PHP4.3.9ならPHP Accelerator(PHPA)か、Zend Optimizerのどっちか。APCはない
0556nobodyさん
2005/04/07(木) 23:41:29ID:???設定した行数を超えたら最初の行を消すようにしたいのですが、
全部書き換える以外にいい方法はありますか?
0558nobodyさん
2005/04/08(金) 00:19:57ID:???0559nobodyさん
2005/04/08(金) 01:21:41ID:???スクリプトはシフトジスで書いていますか?
もれはいままでEUCだったけど、なんかスクリプト書くの
ウィンドウズだしシフトジスでいいかなぁなんて思えてきた。
0561nobodyさん
2005/04/08(金) 01:51:02ID:???mbstring.internal_encodingがeucでhtmlのencodingがシフトジス
でphpの記述がシフトジスで問題ないですか?
0562nobodyさん
2005/04/08(金) 01:55:51ID:???0563nobodyさん
2005/04/08(金) 02:03:09ID:???デザがシフトジスでhtlm作るんだよ。
そーするとスクリプトとhtmlですげー厄介
HTML_QuickFormではスクリプト内でformのアトリビュートとか
設定するでしょう、
0564nobodyさん
2005/04/08(金) 02:06:51ID:???どちらにせよデザの持ち込むhtmlは、文字エンコードも
改行コードも信用ならんので、間に一括変換噛ますでしょ?
0565nobodyさん
2005/04/08(金) 02:12:39ID:???でもさぁ EUCにするメリットはあるのか?
いままで鯖のロケールがEUCだったので合わせてたけどね。
クライアントからscpでアクセスしてウィンドウズから
ソース見るしね。
気になるのがDBへのインサートかな。おもにMYSQL使ってんだけど
mysqlの文字コードはどーなってのか心配・・・・
0566nobodyさん
2005/04/08(金) 02:27:39ID:???0567nobodyさん
2005/04/08(金) 02:30:41ID:???0568nobodyさん
2005/04/08(金) 02:36:36ID:???裏山椎茸
漏れも速くUTF8に移行したい。
スクリプトはEUCに統一してたんだが、
OSがUTF8な物が増えてきた。
0569nobodyさん
2005/04/08(金) 04:17:13ID:???0570nobodyさん
2005/04/08(金) 04:33:19ID:???,イ〃 `ヽ,__
. N. {' \
. N. { ヽ
. N.ヽ` 〉
N.ヽ` ,.ィイ从 /
. ヾミ.___-‐=彡'ノノノ__,ゞミ=-_rく
lrf´ゞ"モ=ヾーf =モチ<}rv^i !
ヾト、` ̄,り「弋!  ̄´ノ ソ
!  ̄ ii{_,.  ̄ /r'´
. ┌────────────‐┐
.| .|
,. -‐ '| .|
/ :::::::::::| >>569 .|__
/ :::::::::::::| おまいはとんでもない rニ-─`、
. / : :::::::::::::| 考え違いをしているようだ `┬─‐ .j
〈:::::::::,-─┴-、 |二ニ イ
. | ::/ .-─┬⊃ |`iー"|
.レ ヘ. .ニニ|_____________.|rー''"|
〈 :::::\_ノ::::::::::::::::::::::::::::::::::::::::::::::::::::::: |:::::::: /::::::::::::|
0571nobodyさん
2005/04/08(金) 07:24:59ID:???SJISの場合は、PHP処理の内部で変換が何度も掛かるので効率が悪い。
(Zend Engineがそのまま扱えないため)
EUC-JP/UTF-8はそれがない。ケータイ向けであっても全部SJISで扱わずに、
最終的な出力でSJISにしてやるのが良い。
という理由はあるが、--enable-zend-multibyteして適正に
mbstring関係設定して使うのなら、別に構わんと思うよ。
判ってて使ってるんだから。理解しないで文字化けがとかが一番ウザイ。
0572nobodyさん
2005/04/08(金) 09:42:26ID:???MySQLのバージョンなんぼからだったかは忘れたけど、SJIS対応してるから
SJISに設定すれば問題なく使えるよ。もちろん全く問題なしというわけではないが、
携帯向けの開発中心にやってる俺からすれば、デメリットよりもメリットの方がかなりデカイ。
0573nobodyさん
2005/04/08(金) 11:54:02ID:KGAjK1pcフォームの適当な箇所でEnterを押すと
複数あるsubmitボタンの表示が一番上の値が取得されてしまうのですが
これを下のsubmitボタンの値を取るように、又は値を取らないようにするには
どうしたらよいのでしょうか?
0575nobodyさん
2005/04/08(金) 14:38:39ID:???<input type="submit" />じゃなくて<input type="button" />にしてやれば
Enterを押しても送信されない・・・と思う。
0576nobodyさん
2005/04/08(金) 17:38:23ID:???0579nobodyさん
2005/04/08(金) 18:27:44ID:???FirefoxやOperaでは問題ないのにWin-IEでは実行されません(画面真っ白)。
スクリプトの内容は単なるdocument.writeの羅列です。
同じ内容のJavascriptを普通のjsファイルに書いて読み込めば実行されるのですが・・・
また、そのPHPファイルを直接IEから呼び出すとちゃんとダウンロードされます。
何かIE特有の注意点等ありますでしょうか?
0580nobodyさん
2005/04/08(金) 18:53:23ID:???マルチ
>>579
JavaScriptはよく知らないからアレだけど
HTMLのscriptタグ内にtype=text/javascript入れるとか
phpでheader()でContentーtype:text/javascript入れるとか
0581579
2005/04/08(金) 18:58:51ID:???どうもです。
一応そこらへんはやってるはずです。
phpのheaderではContent-type: application/x-javascriptを吐いてます。
Contentーtype:text/javascriptもやってみましたが同じでした(´・ω・`)
0582nobodyさん
2005/04/08(金) 19:06:02ID:???0584579
2005/04/08(金) 19:39:11ID:???サーバ側の設定の問題でしょうか・・・他のサーバでも試してみます。
[PHPスクリプト]
<?php
header("Content-type: application/x-javascript");
print("document.write('TEST');");
?>
[HTMLファイル]
<body>
<script language="javascript" type="text/javascript" src="http://hoge.com/test.php"></script>
</body>
0585nobodyさん
2005/04/08(金) 19:43:24ID:???<script type="text/javascript" src="test.php"></script>
[PHP]
<?php
header('Content-type:text/javascript');
print 'document.write("テスト")';
?>
でうまくいくんだが(IE6SP1)
0586nobodyさん
2005/04/08(金) 19:49:50ID:???WinXP + Apache2 +PHP5.0.4 では問題なし
あとhttp://hoge.com/は他人のサイト。http://example.com/を使う。
0587nobodyさん
2005/04/08(金) 19:57:50ID:???原因でした・・・3回ほど吊ってきます・・・どうもありがとうございました orz
0588nobodyさん
2005/04/08(金) 20:15:17ID:???function Hoge(&$arg)
これと
function & Hoge($arg)
のちがいわなんですか>?
0589nobodyさん
2005/04/08(金) 20:45:48ID:PH5IR/1K例えば、
http://example.com/login.php
↑のような認証ページを用意し、ログインをさせます。
その際にセッションなりで保持したIDとパスワードを用いて、
ftp://example.com/
↑のようなFTPサーバにブラウザでログインさせたいと思っています。
通常のやり方だと、WEBでログインさせ、再びFTPでも認証ダイアログから
ログインさせるか、あるいはURLに
ftp://ID:[email protected]
↑のようにIDパスワードを混ぜることになり、どちらも不本意です。
どうにかならんものでしょうか?
0590nobodyさん
2005/04/08(金) 21:07:52ID:???探してもなかったもんで・・・
0591nobodyさん
2005/04/09(土) 01:45:25ID:BWP/VWkuこんなことがしたいでつ
こういうのを組むのに参考になるサイトだけでいいんで教えてください
0592nobodyさん
2005/04/09(土) 03:14:41ID:???unix系なら cronjob で好きな時に wget --mirror すればいいだけだろう。
windowsは知らない。
0593nobodyさん
2005/04/09(土) 03:32:30ID:???リファレンス渡し http://www.php.net/manual/ja/language.references.pass.php
リファレンスによる返り値 http://www.php.net/manual/ja/language.references.return.php
0594nobodyさん
2005/04/09(土) 09:46:58ID:???リファレンスによる返り値でマニュアル読んでたんですけど
わからないです。
マニュアルには リファレンスを返すことは、結合する変数を見付けるために
関数を使用し たい場合に便利です・・・
pear のMDBとかはじめのconnectionなどで使われています。
結合する変数・・・ うーん難しい
0595nobodyさん
2005/04/09(土) 10:17:11ID:???Returning by-reference is useful - リファレンスで値を返すことは便利だ
when you want to use a function - 関数を使おうとする時に
to find - 見つけるために
which variable a reference should be bound to. - どの変数をリファレンスと結びつけるか
リファレンスで値を返すのは便利やねん。
どんな時に便利かつーとな、どの変数をリファレンスと結びつけるかを関数でやろうとする時やねん
0596nobodyさん
2005/04/09(土) 10:53:53ID:???レンタルサーバーのさくらで、PHPを使ったサイトを作ってます。
2年間、問題なくうごいていたのですが、何の変更も
していないのに急に動かなくなりました。
さくら側で何か変更したのかと思いきや
何もしていないと言われました。
唯一変更したとすれば、アパッチのmod_rewriteを使用できるように
しました。。。とだけ言われました。
質問が抽象的ですが、いままでうごいていたのに
うごかなくなった場合、どこから手をつけていけば良いのでしょうか?
0597nobodyさん
2005/04/09(土) 11:10:36ID:???0598596
2005/04/09(土) 11:25:03ID:???本当に助かります。
具体的には、クリック数をカウントするリダイレクトが
使用できなくなっているのが1つ。
require_once("password.php");
$con = mysql_connect($DBSERVER, $DBUSER, $DBPASSWORD);
$selectdb = mysql_select_db($DBNAME, $con);
//クリック数をインクリメントするSQL文を発行
$sql = "update sample set clickcount = ifnull(clickcount, 0) + 1
where no = $no";
mysql_query($sql, $con);
//指定されたURLへリダイレクト
header("Location: " . $url);
$con = mysql_close($con);
もう一つは フォームからのデータの受け渡し系が
うまく作動しておりません。
またまた抽象的なのですが、
どこから手をつけていくと、原因を発見できるのでしょうか?
0599nobodyさん
2005/04/09(土) 11:56:43ID:???思えないんだが・・・
データをあげてphpinfo見てみそ
0600nobodyさん
2005/04/09(土) 12:07:15ID:???ttp://www.sakura.ne.jp/news/20050325-001.news
0601nobodyさん
2005/04/09(土) 12:58:22ID:???0602596
2005/04/09(土) 13:01:48ID:???本当にありがとうございます。
早速、見て見ました。
すると、 register_globals が OFF
でした。以前は ON が仕様でしたが
いつのまにか OFF に・・・・
おいおい 連絡してこいよ
と思いましたが、まぁ原因が分かったので
よかったです。
私のサイトはONじゃないとうごかないものが
ほとんどでして・・・・
ON が OFF になる。
これだけで大きく被害を受けました。。。。
0603nobodyさん
2005/04/09(土) 13:05:47ID:???オイラなら素直にスクリプトのデバッグをするけども。
きちんとエラー処理をしてれば速攻で問題個所を絞れそうな・・
0604nobodyさん
2005/04/09(土) 13:10:17ID:???得ようしたんですが、
$_SERVER["REQUEST_URI"]
$_SERVER['QUERY_STRING']
などの情報が取得できないようです。
$_SERVERを$_ENVに変えたり、serverVar("URL")とか試したりしたんですが、
全て値を得ることが出来ませんでした。
他に呼び出された完全なURLを取得する方法などはございませんでしょうか…。
無料のHPスペースなのでhtaccessを触ったりとかそういうことはできませんです。
0605nobodyさん
2005/04/09(土) 13:12:36ID:SXkH7OvC256進数(つまり1バイト文字全て使う)に直そうと単純に$string = chr($int)として$stringを入れようとすると、
SQL文のダブルクオーテーションが消えてしまったり、あるいは増えてしまったりしてMySQLに格納出来ません。
何か良い方法は無いでしょうか?
0606nobodyさん
2005/04/09(土) 13:16:17ID:???0607nobodyさん
2005/04/09(土) 13:25:32ID:SXkH7OvCMySQLのリファレンスに、インデックスを使う際は対象となるデータの桁数が短いほうが良いと書かれていたからです。
データ容量も落とせると思うし。
0608nobodyさん
2005/04/09(土) 13:36:58ID:???そもそもブラウザが#以降の文字列を鯖に送出していない。
ブラウザのhttpリクエスト・レスポンスヘッダを見るツールがあるのでそういうので確かめてみるとよい。
ieHTTPHeaders、proxomitron、パケットキャプチャー等。
0609nobodyさん
2005/04/09(土) 14:50:00ID:???桁数の問題って、そんなに対象のフィールドに入れるデータが
数字が膨大な長さのデータばかりなのか?
よっぽど特殊なデータとか膨大なレコード数になるとかでもない限り
素直に整数型で入れればと思うが
ミクロレベルの問題を凄い上の層でどうにかしようとしてる感が
0610nobodyさん
2005/04/09(土) 15:30:06ID:SXkH7OvCMySQLは符号無しbigintでも20桁くらいしか扱えませんよね。
それをオーバーしてしまうのです。
その長い10進数の文字列を左から3桁ずつで区切ると各区分のパターン数は256以内に収まります。
そこで、各パターンに0〜255までの数字が1対1に対応するよう割り振り、(最小完全ハッシュのような事)
その数量を256進数に直し、区切っていたものを再結合して一つの文字列にしてMySQLに格納したいのです。
区切らずに全桁で考えたほうがパターン数が節約出来ますが、検索時の事情でそれは出来ません。
3桁の区分ごとに専用のフィールドを用意する事も速度の低下とHDD使用量の増加になってしまうので、
やはり一つの文字列として一つのフィールドに格納したいのです。
0611nobodyさん
2005/04/09(土) 15:44:49ID:???アップしたときに××.
php.txtと出ますが、問題ないでしょうか?
0612nobodyさん
2005/04/09(土) 15:47:55ID:???普通にphpファイルとして動作させるのなら.txtは要らない。
0615nobodyさん
2005/04/09(土) 15:56:09ID:???0617596
2005/04/09(土) 16:18:04ID:???なんなくうごくのですが、
危険ですよね。。
でも引数ってregister_globals OFFだと
どうやって渡すのですか?
register_globals ONでしかうごかない
プログラムしか掛けません。。
どなたか、OFFで動かすテクニックというか
そんなサイトにでも誘導していただけませんか・・・
0619nobodyさん
2005/04/09(土) 16:23:33ID:???0620nobodyさん
2005/04/09(土) 16:23:50ID:???0622nobodyさん
2005/04/09(土) 16:28:27ID:???はじめに(初歩の初歩)ぐらいは読もうな。
http://www.php.net/manual/ja/tutorial.php
最もその中で書かれてるハイパーリンク先の詳細が重要
0623nobodyさん
2005/04/09(土) 16:40:38ID:???【PHP】くだらねぇ質問はここに書き込みやがれpart4
http://pc8.2ch.net/test/read.cgi/php/1110697712/l50
0625605
2005/04/09(土) 17:11:13ID:SXkH7OvCそれだと必要な機能は出来ますが、
MySQLのリファレンスによるとインデックスを使う際は対象となる文字列の桁数が少ない方が良いらしいのです。
1桁に使われる文字の種類数が少ない事で桁数を減らした場合と同様な効果があるとしたらくたびれもうけだけど。
(これがありえそうで怖い)
でもHDD使用量が抑えられるという効果は確実にありそうだし出来ればやりたいのです。
0626589
2005/04/09(土) 17:26:34ID:fpNXc15C>>589もよろしくお願いします。。。
0627nobodyさん
2005/04/09(土) 17:26:57ID:???その数値がどれくらいユニークなのかは知らんが、先頭の数バイト分だけ
インデックスを作成することもできるよ。
alter table hoge add index (column(4))
見たいな感じでね。
ま、しかしHDDのお値段と復号やらなんやらの手間とを天秤にかければ・・・
てなことも考慮した方が良いのでは。
0628nobodyさん
2005/04/09(土) 17:35:07ID:???認証ページにて、
1.認証に成功→サーバ内にセッション情報を保存して該当ページへリダイレクト
2.認証に失敗→認証ページへ戻る
FTPの該当ページではセッション情報を検索して、存在すればアクセス許可。
なければ認証ページへリダイレクト。
セッション情報の保存法はcookieでもセッションでもファイルでもDBでも
お好きなように。検索のためのキーはリダイレクトするときに渡す必要が
あるのでGETにするしかないので、セッション作成毎にユニークなIDを作成する。
こんなところか。
あ、当然セッション情報は有効期限を設けて定期的に消去する。
普通はログオフ時に削除すればいいんじゃね。
盗聴が怖ければSSLで暗号化するしかないんじゃないの?
と、とりあえず適当に書いてみた。推敲もしてません。
0629589
2005/04/09(土) 19:04:25ID:fpNXc15C> FTPの該当ページではセッション情報を検索して
↑これ、具体的にどうしたら良いのでしょうか?
FTPのページではPHP等は動かせないですよね?
0630nobodyさん
2005/04/09(土) 19:47:32ID:6OokWNUOトップページにて認証を行いアカウント等セッションに登録して別ページにheaderで飛ばします。
ここではセッション内容が正しく表示されます。
次にこのページから適当なページに<a href〜でリンク先に飛びます。 このページでもセッションは表示されます。
続いてブラウザを閉じずに認証ページにURL指定か戻るとかで移動して違うアカウントで入ります。
headerで飛んだページは2つ目のアカウントが正しく表示されます。
が、この後このページから先ほどの3ページ目へリンクで飛ぶと前のアカウントのデータが表示されてしまいます。
リミッターはnocache lifetimeも0にしているのですがどうしてなんでしょうか?
取得するだけのページならsession_start()だけでいいですよね?
0631nobodyさん
2005/04/09(土) 19:54:09ID:???ファイルをダウンロード(orアップロード)させたいんでしょ?
プロトコルにhttpを使うかftpを使うかは関係なく、
urlを直打ちしてダウンロードさせなければよいのでしょ?
そのための認証ページを作るという意味なんだけど・・・
0632nobodyさん
2005/04/09(土) 21:15:02ID:???サーバーとしてファイルの数が多くなるというのは良くないのでしょうか?
0633nobodyさん
2005/04/09(土) 23:52:34ID:???クラス概念が有る様ですが、ディストラクタの起動する要因が判らない
ので、知っていたら教えて下さい。
0634nobodyさん
2005/04/09(土) 23:58:39ID:???ちょっと書き方がわるかった。
要はhttpでもftpでもいいが、ユーザがアクセスできるところにファイルを
置いては認証もへったくれもないという事。
だからダウンロードさせるファイルはブラウザでアクセスできない場所へ
置いておいて(※)、ダウンロードのページではまず認証状況を確認し、次に
phpを使ってファイルを読み取り、ftpのヘッダと共にファイルを送信してやる。
とこういう流れになるかと。
※たとえばApacheでDocumentRootを/usr/local/apache/htdocsにしてるなら、
/usr/local/apache/Download(適当)/に置いておけば、url直うちでは
たどり着けない。
0636nobodyさん
2005/04/10(日) 00:03:44ID:???0640nobodyさん
2005/04/10(日) 03:02:33ID:???SOHOとしてはレン鯖とかホスティング鯖に普通に入りだしたら移行
っつーか移行せざるを得ない、結局みんなが使い出したらかw
0641nobodyさん
2005/04/10(日) 07:20:50ID:???同じく...なんだけど、php3->php4のときは共存できたので、
未だにphp3のままのところがあるわな。
php4とphp5は(通常)共存できないので、中小企業向けレン鯖は当面php4のままだろう。
レン鯖のphp5対応鯖に新規or乗換する蔵が出てくるのはいつのことなんだろう。。。
0642nobodyさん
2005/04/10(日) 09:04:55ID:???Zend製品は対応してる。PHPAは全然動き無いし、
MMcacheは開発休止してる。
スクリプトキャッシュじゃないけど、VM最適化パッチはかなり効くね。
PHP5.1だけじゃなくて、PHP4.4とかで入れてくんないかな。
0643nobodyさん
2005/04/10(日) 12:00:23ID:???0644nobodyさん
2005/04/10(日) 12:59:48ID:jGzXhnVHこれを↓で変換すると
$message = preg_replace( "/(.+?)(選手|さん|様)?$/" , '$1選手', $message);
「中田選手、小野選手、中村選手、用務員選手、警備員選手、柳沢選手」
となってしまいます。
「中田選手、小野選手、中村選手、用務員、警備員、柳沢選手」
となるように(語尾に「選手」「さん」「様」がついていない場合はそのままにしておくように)
するには、どのように書き換えたら良いですか?
0645nobodyさん
2005/04/10(日) 13:26:17ID:???mb_ereg系を使って方がよさげ。
$message=mb_ereg_replace('([^、])(選手|さん|様)' , '\1選手', $message)
0646nobodyさん
2005/04/10(日) 13:46:51ID:jGzXhnVHお答えありがとうございます。
ごめんなさい、mb_ereg_replaceのように実験的なステータスにある関数は使えないんですよ。
0647nobodyさん
2005/04/10(日) 14:08:09ID:???そうなのか。いっそ単純に
$message=preg_replace('/(さん|様)/' , '選手', $message);
でいいんじゃね。>>644も「、」が区切りと認識してないし。
0648nobodyさん
2005/04/10(日) 14:11:22ID:???こう書くと区切りの「、」がそれなりに機能するかな。
$message=preg_replace('/(さん|様)(、|$)/' , '選手$2', $message);
0649nobodyさん
2005/04/10(日) 14:14:59ID:jGzXhnVH>>648
出来ました。
そうでした。なんか難しく考えすぎてたみたいでした。
ありがとうございます!
0650nobodyさん
2005/04/10(日) 14:38:57ID:???mb_ereg_replaceは、今はもう実験的位置づけじゃないよ。
http://jp2.php.net/manual/en/function.mb-ereg-replace.php
0651nobodyさん
2005/04/10(日) 18:05:37ID:???2次元目の配列の個数で、
1次元目をソートすることはできますか?
ランキングっぽいことをやろうとしているんですが…
0652nobodyさん
2005/04/10(日) 18:14:29ID:???multisort使えば出来そうですね
おさわがわせいかましt
お騒がせしました。
0653nobodyさん
2005/04/10(日) 18:27:15ID:???なんというか、質が落ちたな・・・
0654nobodyさん
2005/04/10(日) 18:28:19ID:???0655nobodyさん
2005/04/10(日) 18:45:34ID:???0656nobodyさん
2005/04/10(日) 18:46:28ID:???「効率的な」とか「高速な」ソートを作るという訳でなければ、
要するにアルゴリズムが理解できないプログラマといえる。
まあ色んなプログラマがいるからソートの仕組みが組み立てられない
ことが即駄目プログラマとは言えないけど、概ね駄目。
0657nobodyさん
2005/04/10(日) 18:55:28ID:???変なたとえだけど、鉛筆をカッターで削ってた時代の人が、機械でガ〜〜ってやってる若者を見て、今時の若者はカッターも使えんのか、みたいな感じなんだよ。
0658nobodyさん
2005/04/10(日) 19:08:28ID:???そんな経験ない?
0659nobodyさん
2005/04/10(日) 19:30:15ID:???質問スレなんて必要ないわけだが。
PHPが普及してきたからこそ、質問スレは盛り上がるし
質問は増えてくるのに、それをみて
レベルが下がったというのは如何な物か。
0660nobodyさん
2005/04/10(日) 19:39:15ID:???>>653
こういう事をさらさら言えるほうが、人間として質が落ちてる気がするよ。
0661nobodyさん
2005/04/10(日) 19:42:57ID:???うん?平均的にレベルが下がったのは事実だよね。
いいんじゃないの。平均が下がったお陰で
マニュアル読まずにこういったスレに書き込んでも、
怒られることもなしに誰かしら教えてくれるような
環境が出来た訳だから。英語が読めなくても誰か
翻訳してくれるしね。
0662nobodyさん
2005/04/10(日) 19:45:16ID:???0663nobodyさん
2005/04/10(日) 19:58:13ID:???給料いくら?
0664nobodyさん
2005/04/10(日) 20:10:10ID:???0665nobodyさん
2005/04/10(日) 20:23:06ID:???2chのこんなところにいんなよpu
0666nobodyさん
2005/04/10(日) 20:38:13ID:???俺の知り合いの奴らなんてみんな月の手取り30〜40ぐらいでひ〜ひ〜言ってるが、普通はそんなもんだろ。
俺はリーマンやったことないから分からんが。
知り合いに>>653みたいな事を言う職業プログラマがいるんだが、年収350万ぐらいだって聞いて
なんか惨めだな〜と思って。
俺は大学時代な〜んも勉強せずに、5年程前フリーターやりながら趣味で覚えたperl⇒PHPレベル。
今年の確定申告で250程国に貢いできたといえば、年収も分かるだろ。
大した事はないが、それでもそこらのリーマンよりはよっぽど稼いでるわけで。
何が言いたいかというと、くだらん事にこだわらずに効率よく結果を出しゃぁいいんだよって事だ。
苦労せずとも結果が出せるに越した事はない。
自己満足の世界に陶酔しても、金が稼げるわけでもなし。
>>665
携帯関連とか株関連の板見た事無いみたいだね。
年収1000万程度(スレによってはカス扱い)の奴なんか腐る程いるぞ。
0667nobodyさん
2005/04/10(日) 20:38:29ID:???どんどん便利になっていくし使う人への敷居も低くなっていく
でもそれを先人が「使う人間のレベルが下がった」だけで
割り切ってしまうのもなんだかなあ
0668nobodyさん
2005/04/10(日) 21:02:23ID:H4Hn0Vk9ディレクトリの所有者とスクリプトの所有者が一致していなければ
いけないらしいので、PHPスクリプトを自動生成するスクリプト内で、
//makephpfile.php
$filep = fopen("test.php","w"); //open file
chown("test.php",'username');
flock($filep, LOCK_EX);
fputs($filep,$dat); //write data
fclose($filep);
としたのですが、スクリプトファイルの所有者がapacheになってしまい
ファイルの読み込みなどがうまくいきません。
スクリプトを生成するファイル(makephpfile.php)とそれが入っている
ディレクトリの所有者は、usernameで統一しています。
誰かいい解決方法を知っていたら教えてください。
よろしくお願いします。
0669nobodyさん
2005/04/10(日) 21:16:07ID:???昔はよかったとか、今はミーハーなファンばっかりだとか言う奴いるけど
そういうのと同じじゃない?
0670nobodyさん
2005/04/10(日) 21:41:42ID:???0671nobodyさん
2005/04/10(日) 21:48:57ID:???0672nobodyさん
2005/04/10(日) 22:26:19ID:???ファイルの所有者を変更できるのはふつうrootだけ
というわけで別の方法を考えた方が良さそう。管理者にgidで
チェックするようにしてくれって頼むとか。
0673nobodyさん
2005/04/10(日) 23:14:44ID:???ereg_replace("^.+?\.","*****.",$str);
これで下の様に頭の部分を隠したいのですがエラーが発生してしまいます
何かPHPの記述方法があるのでしょうか?
*****.hoge.tokyo.ne.jp
0674nobodyさん
2005/04/10(日) 23:29:59ID:???フォルダの残量は disk_free_space を使って表示できたのですが、
使用量をどのようにして表示させようか悩んでいます。
ちなみに、PHPはセーフモードで動いています。
$dir_space = `du -sb ./test`;も使おうとしましたが、うまくいきません。
ご教授よろしくお願いします。
0675nobodyさん
2005/04/10(日) 23:30:42ID:???ereg_replace("^[^\.]+(\..+)$",\\1 ,$hoge)
質問です
ファイルに書き込みをしていますが
fputs($fp, 'うんうん'."\n")
を2回繰り返しても改行されず「うんうんうんうん」になってしまいます。どこがおかしいのですか?
0676nobodyさん
2005/04/10(日) 23:51:06ID:???ドットの否定で逝けましたヒントありがとん
ereg_replace("^[^\.]+","*****" ,$str);
1. \n --> <BR>
2. \n --> \r\n
とかかな
0677nobodyさん
2005/04/11(月) 16:47:47ID:???if (pg_connection_status($db) == PGSQL_CONNECTION_OK) {
echo "DB Connetcion status is OK!";
}
else {
echo "DB Connection status ERROR";
}
$sql = 'select * from tablename';
$result = pg_query($db, $sql);
で、結果が
Connection status is OK!
Warning: pg_query(): supplied argument is not a valid PostgreSQL link resource in filename.php on line 10
となってしまうのは、何が原因なんでしょう??
postmaster は動いていますし、一瞬検索ができた時もありました・・・・・
PHPは事象の再現性がヘンな時が多々ありますが、「そういうもの」なんでしょうか?
0678nobodyさん
2005/04/11(月) 21:57:46ID:???例えば
$int1 = 5; バイナリデータで101
$int2 = 10; バイナリデータで1010
この$int1と$int2をくっつけて、1011010というデータを持った変数を作りたいのです。
0679nobodyさん
2005/04/11(月) 22:21:08ID:d8tTZrxp以下の文を書いたのですがうまくいきません。
$text = preg_replace("^(1$)", "←合格", $text);
鈴木1
佐藤
田中
山本1
↓スクリプト実行
鈴木
佐藤←合格
田中←合格
山本
このような結果を出すためにはどのように書き換えたらよいでしょうか?
0680nobodyさん
2005/04/11(月) 22:45:48ID:???そういう値が欲しいのなら素直にシフトさせてandを取る。
二進数表現の文字列が欲しいのならsprintf("%b%b",,)
>>679
ハット記号はその場合否定じゃなくって行頭になる
多分こんな感じかな
preg_replace('/([^1])$/', '¥1<-合格', $text)
0681nobodyさん
2005/04/11(月) 23:45:32ID:???GD Graphics Library "gdImageCreateFromPngCtx()" Integer Overflow
Software: GD Graphics Library 2.x
Update to version 2.0.32 or later.
http://secunia.com/advisories/12996/
これに対応してるのかな?
0682668
2005/04/12(火) 00:12:58ID:???返信ありがとうございます。
Xreaのサポート掲示板に問い合わせたところ、
GIDチェックモードは無理でしたが、PerlのCGIで
何とか解決しました。
0683nobodyさん
2005/04/12(火) 01:25:26ID:???preg_match("/[\x20-\x7E\xA1-\xA5\xDE-\xDF]{50,}?/", $str)
└OK
mb_regex_encoding("SJIS");
mb_ereg("[\x20-\x7E\xA1-\xA5\xDE-\xDF]{50,}", $str)
└OK(?つけてもOK)
mb_ereg("[\x20-\x7E\xA1-\xA5\xDE-\xDF]{50,}", $str)
└mb_ereg(): mbregex compile err: premature end of regular expression
mb_ereg("^[0-9a-zA-Z_\.\-]+@[0-9a-zA-Z\.\-]+\.[0-9a-zA-Z]+$",$str)
└OK
ereg("[\x20-\x7E\xA1-\xA5\xDE-\xDF]{50,}?", $str)
└ereg(): REG_BADRPT
ereg("[\x20-\x7E\xA1-\xA5\xDE-\xDF]{50,}", $str)
└OK
お聞きしたいことがあります、
・eregの最短指定"?"の有無
・mb_eregのエンコーディング指定によってエラーが起こらないもの
そもそもエラーが起こらないものの違い
0684nobodyさん
2005/04/12(火) 02:16:01ID:???$name[] = &HTML_QuickForm::createElement('text', '姓', null, '姓');
$name[] = &HTML_QuickForm::createElement('text', '名', null, '名');
$form->addGroup($name, 'name', '名前', ' ');
こんな感じでテキストフィールドの前にラベル付けたいんだけど、
できなかった毛?
0685nobodyさん
2005/04/12(火) 06:51:49ID:???$renderer = & $form->defaultRenderer();
$renderer->setGroupElementTemplate('{label} {element}', 'name');
てな感じで可能かと。
group.phpのtoHTML()の中で、上と同様の処理があって そこで{element}だけにしているので
elementのラベルが消えてるんじゃないかなぁ。あんまり自信ないけど。
0686nobodyさん
2005/04/12(火) 09:55:50ID:???<FORM ACTION="http://www.example.com/example.php" METHOD=POST>
氏名:<INPUT TYPE=TEXT NAME="name"><BR>
メールアドレス:<INPUT TYPE=TEXT NAME="email" ISTYLE=3> <BR>
<BR>
選択<BR>
<SELECT NAME="test">
<OPTION VALUE="a">A
<OPTION VALUE="b">B
<OPTION VALUE="c">C
</SELECT><BR>
<BR>
テスト<BR>
<TEXTAREA NAME="impression" rows=" COLS=10 5"></TEXTAREA><BR>
<BR>
テスト<BR>
<INPUT TYPE=RADIO NAME="test1" VALUE="a">A<BR>
<INPUT TYPE=RADIO NAME="test1" VALUE="b>B<BR>
<INPUT TYPE=RADIO NAME="test1" VALUE="c">C<BR>
<INPUT TYPE=RADIO NAME="test1" VALUE="d">D<BR>
<BR>
<INPUT TYPE=SUBMIT NAME="submit" VALUE="送信" id="submit"> <INPUT TYPE=RESET VALUE="やり直し"><BR>
<BR>
<BR>
</FORM>
内容を一度確認して送信するようにするには、どうすればよろしいですか?
0687nobodyさん
2005/04/12(火) 10:24:19ID:???http://pc8.2ch.net/test/read.cgi/php/1110697712/511-512
0688nobodyさん
2005/04/12(火) 11:42:38ID:???PHP でも欲しくね?もうある?
0689nobodyさん
2005/04/12(火) 11:51:03ID:???使いたくなったらRubyを使えばいいだけだし。
0690nobodyさん
2005/04/12(火) 17:41:03ID:???どうすればよいでしょうか?
思いつきません・・・
0692nobodyさん
2005/04/12(火) 20:28:41ID:???もれHTML_QuickForm_Renderer_Object使ってるから、
そのソメッド使えんみたいだわ。
QuickFormやめて、Flexyおんりーにするぽ。
0693nobodyさん
2005/04/12(火) 20:44:35ID:???perlの正規表現ではカッコで括ったところがマッチすると、
$1,$2という変数に格納してくれるという便利な機能がありますけど、
phpで似たようなことは出来ますでしょうか。
具体的には
2005/04/09(金),01時12分00秒,ほげほげ
という形のデータを
[01:12:00],ほげほげ
という、時刻とテキストだけの形に直したいんですが…。
自分ではカンマでsplitして、substrで何回かに分けて時、分、秒の変数を作って
後でそれをくっつけるという処理しか思いつきません。
どなたか簡潔な方法を知っていらしたらよろしくお願いします。
0694nobodyさん
2005/04/12(火) 20:52:21ID:???0695nobodyさん
2005/04/12(火) 21:22:42ID:???0696nobodyさん
2005/04/12(火) 21:23:32ID:???0697nobodyさん
2005/04/12(火) 23:22:24ID:???$hoge=ereg_replace("([0-9]{2})時([0-9]{2})分([0-9]{2})秒", "[(\\1):(\\2):(\\3)]", $hoge);
みたいにしたんですが無理でした。
なんでだろ…。
0698697
2005/04/12(火) 23:24:47ID:???0699nobodyさん
2005/04/12(火) 23:46:47ID:???0700697
2005/04/12(火) 23:47:03ID:???0701nobodyさん
2005/04/13(水) 00:31:58ID:???0702nobodyさん
2005/04/13(水) 01:11:49ID:???漏れはセッション使用するときに
session_cache_limiter('none');
こうやって設定しているんだが、これはセキュリティーホールになりますか。
0703nobodyさん
2005/04/13(水) 01:42:35ID:???フォームから投稿内容を受け取り記事追加処理をするphpファイルを新たに作るか、
それとも外部ファイルに記事追加処理関数を書いてその関数を呼び出す形を取るか、
どちらがいいと思いますか?あるいは他にもっといい方法がありますか?
0704nobodyさん
2005/04/13(水) 02:02:01ID:???0705nobodyさん
2005/04/13(水) 02:11:31ID:???もしそうだと、どの処理をする時にもswitch処理が必要になって
それなら最初から関数を分けてしまった方が処理が速そうな気がするんだけど。
0706nobodyさん
2005/04/13(水) 02:23:22ID:???レスありがとう。
ファイルにするとユーザーとの通信の手間が入ってくるわけでその点が余計な負荷になる。
外部ファイルの関数にすると、もしかしてその関数を使わない場合でもメモリに外部ファイルがロードされてしまうのかと思うと
フォームを開いただけで投稿処理をしなかった場合に無駄になる。
単純に書きやすい方で選ぶというだけでは無い選択肢だと思うんだが。
0707nobodyさん
2005/04/13(水) 03:28:56ID:???関数が増えると関数を特定する処理に選択肢が増え(ry
ていうかそれくらいのこと、処理速度にはほとんど影響ないだろ
気にするな
>>706
おまえもその程度の負荷は気にするな
0709nobodyさん
2005/04/13(水) 07:54:01ID:???いいぞ ベイべー!
負荷をかけるやつは普通のプログラムだ!!
負荷をかけないやつは何もしないプログラムだ!!
ホント 戦場は地獄だぜ! フゥハハハーハァー
0710nobodyさん
2005/04/13(水) 09:06:20ID:???処理の多くが他のユーザー定義関数と「かぶる」場合、「かぶらない」部分だけ
switch〜caseなんかで分岐させれば、コードを短くできる。また「かぶる」部分
に何らかの修正が必要となった場合、関数1つなら1つ修正すればいいだけだが、
関数を分けていれば全部を修正しないといけない。
>>706もだけど、処理スピードなんて気にする暇あったら、もっと他に考えなけ
ればいけない事があるんではないの?と俺は思った。
>>706
そこまで気にするなら、投稿処理の時だけ該当ファイルをrequireすればいい。
CPUやメモリの負荷率見れるなら見てみ。
全く気にする必要のないレベルに間違いない。
0711nobodyさん
2005/04/13(水) 13:42:08ID:y+S//+Zcphpでブラウザのjavascriptがonになっているかどうかは、確認できるの?
0712nobodyさん
2005/04/13(水) 14:01:22ID:???JavaScript(の適当な命令)がphpを呼び出せればJavaScriptを使える
(少なくとも呼び出しに使ったJavaScriptの命令が使える)、つー方針でなら可能かと。
オイラはそんな面倒なことをしたくないので、ブラウザ側でJavaScript利用可・不可のチェックをさせるけど。
0713nobodyさん
2005/04/13(水) 15:50:16ID:???こちらのスレで質問させて頂きたく思います。どうか宣しくお願い致します。
自分は今現在、趣味の範囲と見様見真似で「見た目が 2ch 型」のソレらしい掲示板を
自力で作り、一通りの動作確認を終えて、ソースコードの整理をしているところなのですが、
自分の思い付きで書いたコードが今一つしっくり来ないと言うか、もっとスマートな書き方が
出来ないものかと少し悩んでいます。
実際に真似をし始めて初めて知った 2ch 型掲示板特有?の妙なレス番指定方法
(/l50 とか /-50 とか) の文字列に対応させる為、
preg_match("/^(\d+)$|^l(\d+)(n)?.*$|^(\d+)(n)?-$|^-(\d+)(n)?$|^(\d+)(n)?-(\d+)(n)?$/",$string,$result);
という様な正規表現を指定し、$string 中に有るレス番指定文字を $result に取り込んだ
後、配列 $result の個数とその中身によって処理を分岐させる様な事をしています。
これらをもっとスマートに書こうとしたら、一体どの様にすれば宣しいのでしょうか?
0714nobodyさん
2005/04/13(水) 16:55:06ID:???スマートって言うのがどういうのかわからない
1行で済ませるのがスマートだったら全然駄目だけど
昔のクエリ方式と互換性も足せるために
$st = $to = 0;
$nofirst = '';
$ls = 0;
if ($_SERVER['PATH_INFO']) {
$pairs = explode('/',$_SERVER['PATH_INFO']);
$bbs = $pairs[1];
$key = $pairs[2];
if ($pairs[3]) {
if (strstr($pairs[3], 'n')) {
$nofirst = 'true';
$pairs[3] = str_replace("n","",$pairs[3]);
}
if (substr($pairs[3], 0, 1) == 'l') {
$ls = substr($pairs[3],1);
}
elseif (strstr($pairs[3], '-')) {
list($st, $to) = explode('-',$pairs[3]);
if (!$st) $st = 1;
}
else {
$st = $pairs[3];
$to = $pairs[3];
$nofirst = 'true';
}
}
}
0715nobodyさん
2005/04/14(木) 00:11:49ID:???頭から置換の「^」を使って行頭から置換していると、
なぜかファイルの先頭の最初の一行だけマッチしません。
何かファイルの先端を示す不可視文字のようなものがくっついてるんでしょうか。
出来ましたら対処方法など教えて頂けたらうれしいです。
よろしくお願いします。
0716nobodyさん
2005/04/14(木) 00:21:43ID:???http://www.atmarkit.co.jp/aig/01xml/bom.html
http://e-words.jp/w/BOM.html
http://www.wdic.org/?word=BOM+:WDIC
http://www.birdport.jp/Others/unicode/
先頭3バイトを無視すればいい。
でも、UTF-8はBOMが付いていないことが多いから
単に3バイト無視すると悲劇が起こる予感。
0717nobodyさん
2005/04/14(木) 00:40:13ID:???ああ、ややこしそうですね。
とりあえずデータの形は全部一緒なので、
あまり意味のない保険かけずに
「^」の先頭マッチは外しておきます。
ありがとうございます
0718nobodyさん
2005/04/14(木) 01:02:17ID:???レスポンスヘッダー
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
がなくなります。このときに、コンテンツはプロキシ、クライアントに
キャッシュされるのでしょうか。
0719713
2005/04/14(木) 01:31:56ID:???自分としては、その辺の処理を正規表現で実現しているのかと思い込んでいたの
ですが、実際にはそんなに難しくない文字列操作関数だけでも十分なのですね。。
具体的な例を示して頂けた事も有って、その仕組みが良く理解出来ました。後は、
自分で組んでいるコードに合う形に直した上で拝借させて頂きたいと思います。
素早い返答を頂きながらも、こんな時間になるまでレス出来ず、申し訳有りません
でした。そして、ありがとうございました。
0720nobodyさん
2005/04/14(木) 07:53:17ID:???see RFC 2616.
post-check pre-checkはIE専用の拡張でMSDNに説明があったかと。
0722nobodyさん
2005/04/14(木) 12:49:56ID:ai8mxHPm最近になりApache2.0.52 + PHP5.0.2 + MySQL4.0
と言う構成にアップグレードしたのですが、CMS関係のPHPアプリケーションがインストールできなくなりました
特にphpMyAdminでは下記のようなエラーが表示されます
[1.20] 「cannot load MySQL extension, please check PHP Configuration(MySQL エクステンションをロードできません。PHP の設定をチェックしてください)」というエラーが出ます。
PHP が MySQL サーバに接続する際には「MySQL エクステンション」という MySQL の関数セットを必要とします。
このエクステンションは PHP の配布ファイルに含まれている(コンパイルで組み込まれている)こともありますが、そうでない場合、動的にロードする必要があります。
エクステンション名はたぶん mysql.so か php_mysql.dll のはずですが、phpMyAdmin はこのエクステンションをロードしようとして失敗しているわけです。
ふつう、この問題は「PHP-MySQL」とかなんとかという名前のソフトウェアパッケージをインストールすれば解決します。
php_mysql.dll は C:/WINNT/php.ini ファイルにて確かに指定しているため原因が掴めません。
extension_dir = "C:\php\ext"
extension=php_mysql.dll
Apache の再起動時にこのようなエラーが表示されます。
PHP Startup: Unable to load dynamic library 'C:\php\ext\php_mysql.dll' - 指定されたモジュールが見つかりません。
どうかご助力お願いします。
0723nobodyさん
2005/04/14(木) 13:06:16ID:???「指定されたモジュールが見つかりません。」
声を出して読んでみて!。
php_mysql.dllを検索してディレクトリを探し、そのディレクトリを
extension_dirにセットする。
窓ではディレクトリではなくフォルダか。
それにそんな事で悩んでいるようではtsファイルの移動も怪しいな。
Windowsで悩む奴の気がしれん・・・。
0725722
2005/04/14(木) 13:42:31ID:ai8mxHPmレスありがとうございます。
php_mysql.dll はc:/php/ext/php_mysql.dll にあります。
extension_dir = "C:\php\ext"
extension=php_mysql.dll
それで上記のように指定し C:/WINNT/php.ini に設定しました。
しかし動作してくれません、/と\を変えても効果なしでした。
tsファイルは C:/WINNT/system32/php5ts.dll にあります。
httpdやその他の設定などは、手元の教本と下のウェブを参考にしました。
http://okweb.jp/kotaeru.php3?q=945621&rev=1
0727nobodyさん
2005/04/14(木) 15:10:19ID:???残業でストレス溜まってるのは分かるけどさ
0728nobodyさん
2005/04/14(木) 15:57:15ID:???0729nobodyさん
2005/04/14(木) 17:47:12ID:HOg80ZtTソースは
$txt = "あいうえお#かきくけこ#";
preg_replace("#", " ", $txt, 1);
です。ereg_replaceだと見つけてくれるのですが、
回数を指定したいので、pregを使いたいのです。
よろしくお願いします。
0732nobodyさん
2005/04/14(木) 18:41:06ID:???$tpl = preg_replace("/{html:([a-z\_])}/",$bd[\\1],$tpl);
という感じで\\1をキーとして利用する方法はないでしょうか。
$key = array_keys($bd)でキーを拾得してwhileするしかないでしょうか?
0733nobodyさん
2005/04/14(木) 21:37:04ID:hazlvdsC質問するんならソースをもうちょっと分かりやすくして欲しい。
で、本題だが。
ちとズレるかもしれんが、strtrを使ってどうにかならんか?
0734733
2005/04/14(木) 21:42:49ID:???謝罪ついでに、もうちょい具体的に書いとく。
$tbl = strtr($tbl, $bd);
preg_replace("/html:[a-z\_]/","",$tbl);
この2行で希望する動作すると思うんだがどうだろう。
0735732
2005/04/14(木) 22:18:30ID:???お返事ありがとうございます
以下の行程を一行で出来ないかと想いまして^^;
$template テンプレートファイル {key}が仕込んであります
$this->bd {}と差し替えるキーと値
while($tmp = each($this->bd)){
$pt = '{'.$tmp[0].'}';
$template = str_replace($pt,$tmp[1],$template);
}
0736nobodyさん
2005/04/14(木) 22:59:25ID:4Pev5d6u以前(5.0.2の時)ちょっと触ってみて、
しばらく動かしていたら挙動があやしくなったので4に戻したのですが。
「一日一回くらい再起動させたら大丈夫」くらいの感じでしたが。
そろそろですかね。
0737733
2005/04/14(木) 23:09:50ID:???$this->bdってのがよく分からんが、、、
要は、
$bd['hoge'] = 'hage';
$bd['am'] = 'was';
という配列を元に
$template = 'i {am} {hoge}.'を
$template = 'i was hage.'にしたいんだろ?
それなら上にも書いてるが、$bdを加工してからstrtr使えば一発じゃないか?
foreach($bd as $key=>$value){
$newKey = '{'.$key.'}';
$bd_use[$newKey] = $value;
}
$template = strtr($template, $bd_use);
オレなら最初から$bdのキーを{hoge}にしとくけどな。そうすりゃ1行で済む。
0738nobodyさん
2005/04/14(木) 23:42:06ID:???preg_* の e オプションを使えば一行で書けるのでは?
$tpl = preg_replace("/{html:([a-z\_]+)}/e",'$bd["\\1"]',$tpl);
0739732
2005/04/15(金) 09:22:08ID:???テンプレファイルから{}で囲まれている全てのキーを拾得してから処理するように
しました。これはマッチしなかった{}がそのまま表示されるのを回避させる為です。
複数のページ構成を1つのテンプレで処理しようと考えております。
ただ、これだと{}で囲まれる全てが・・アウトですね--;
$template = $this->open_fie($path,'r');
preg_match_all('/{[1-z\_:]}/',$template,$keys);
while($pt = array_shift($keys[0])){
isset($this->bd[$pt]) || $this->bd[$pt] = '';
$template = str_replace($pt,$this->bd[$pt],$template);
}
echo $template;
>>737
$bdのキーを{hoge}にしておいてstrtr一行にしてみたけど上記より処理速度が遅いみたいです
>>738
上手く行かなかったです-;
0740732
2005/04/15(金) 09:25:12ID:???自己レス
preg_match_all('/{[1-z\_:]}/',$template,$keys);
↓
preg_match_all('/{[a-zA-Z\_\:]+}/',$template,$keys);
0741733
2005/04/15(金) 10:58:48ID:???対象の$templateのサイズ次第でスクリプトは変えなきゃいけないだろな。
時間や負担がかかるようなものならば、
毎回$templateを読み込む処理はまずい。
つまり、cron等で自動実行することになるが、それに速度は必要なのか、と思う。
余談だが、
$this->は実際にクラス処理だったのね。。。
なんか配列にキーを入れてるってのを示してる初心者かと思たよ、すまそ。
0742732
2005/04/15(金) 12:11:58ID:???いえいえ、こちらこそ小出しで申し訳ありません。
$templateのサイズが大きいので負荷が高くなりました-;。
$templateはブログのような感じで各ユーザーがテンプレではなく本当の意味で
自由にカスタマイズ出来る仕様にしたいと考えて試みたのですが負荷を考えると
ページ作成後に.htmlで吐き出して利用する事でしか方法はなさそうです。
ただ動的ページの事もありますし、sessionも利用しているので悩み所です。
ありがとうございました。
0743nobodyさん
2005/04/15(金) 12:32:06ID:???if($Slog[2]){
$Slog[2] =~ s/>/>/g; $Slog[2] =~ s/</</g;
print<<"<!--HTML-->";
<tr id=log-10>
<td><font id=kei>$Slog[2]</font></td>
</tr>
<!--HTML-->
CGIで書いたこれをPHPに書き直すとどうなるんでしょうか?
<?php
if($Slog[2]){
?>
$Slog[2] =~ s/>/>/g; $Slog[2] =~ s/</</g;
<tr id=log-10>
<td><font id=kei><?=$Slog[2]?></font></td>
</tr>
としてみたんですが、"$Slog[2] =~ s/>/>/g; $Slog[2] =~ s/</</g;"が
ページに表示されてしまい上手くいきません。
0744nobodyさん
2005/04/15(金) 12:43:28ID:???phpの処理は<?php 〜 ?>の間でやるべし。
置換処理が外に出ちゃってるし、変数の表示も外。
PHPの記述概念を根本から勉強するべし。
0745nobodyさん
2005/04/15(金) 12:48:13ID:???関係しそうな部分をPerl - PHP - 内容 の表で書くと、
=~ str_replace 文字列の置換
print<< print<<< ヒアドキュメント
ってな感じになるが、単純な命令の置き換えじゃ無理だから理解しながら変更すれ。
0746743
2005/04/15(金) 12:59:34ID:???if($Slog[2]){
$Slog[2] =~ s/>/>/g; $Slog[2] =~ s/</</g;
?>
<tr id=log-10>
<td><font id=kei><?=$Slog[2]?></font></td>
</tr>
ともして見たんですが、これだと画面が真っ白で何も表示されなくなります。
どう記述すれば上手くいくんでしょうか?
0747nobodyさん
2005/04/15(金) 13:00:18ID:???お前「教えてgoo」でも質問しとったな
質問者がマルチする掲示板は回答者側も見てることが多いからマルチしても怒られるだけだよ。
0748nobodyさん
2005/04/15(金) 13:04:42ID:???0749743
2005/04/15(金) 13:23:34ID:???0750nobodyさん
2005/04/15(金) 13:34:58ID:???<?php
if($Slog[2]){
$Slog[2] = htmlspecialchars($Slog[2]);
print <<<_HERE_
<tr id=log-10>
<td><font id=kei>{$Slog[2]}</font></td>
</tr>
_HERE_;
?>
未確認なので動作保障は無し。
0751750
2005/04/15(金) 13:36:00ID:???<?php
if($Slog[2]){
$Slog[2] = htmlspecialchars($Slog[2]);
print <<<_HERE_
<tr id=log-10>
<td><font id=kei>{$Slog[2]}</font></td>
</tr>
_HERE_;
}
?>
0753nobodyさん
2005/04/15(金) 16:07:31ID:???しょうがないな
どうせ$Slog[2]に何も入ってないんだろ。
<?php
$Slog[2] = 'test';
if($Slog[2]){
$Slog[2] = htmlspecialchars($Slog[2]);
print <<<_HERE_
<tr id=log-10>
<td><font id=kei>{$Slog[2]}</font></td>
</tr>
_HERE_;
}
?>
0755nobodyさん
2005/04/15(金) 16:57:42ID:???0757755
2005/04/15(金) 17:14:31ID:???モバイルで現在の北緯と東経を求める関数教えてくれ
0759755
2005/04/15(金) 17:32:49ID:???0760nobodyさん
2005/04/15(金) 17:33:21ID:???fsockopen( )で位置情報を送ってくれるサーバに接続。もちろんただでは接続させてもらえない。
ゼンリンから電子地図と地図データベース買えば位置を地図で表示できるかもしれない。
0765nobodyさん
2005/04/16(土) 00:06:16ID:???こいつは見逃せないぜ…(゚Д゚)ゴクリ
0769nobodyさん
2005/04/16(土) 22:53:03ID:???0770nobodyさん
2005/04/16(土) 22:59:10ID:???で、ImageCreateFromPNG("test.png") を実行すると、以下のエラーが発生します。
Allowed memory size of 8388608 bytes exhausted (tried to allocate 256 bytes)
php.ini の memory_limit は初期値の 8M です。
これを 16M に変更するとエラーが発生しなくなるので、メモリが足りないのは
間違いないんでしょうけど…。
107KB 程度の PNG ファイルでなぜに 16MB も必要?
環境は、Solaris10 + PHP5.0.4(ビルトインGD)
0771nobodyさん
2005/04/16(土) 23:00:54ID:???0772nobodyさん
2005/04/16(土) 23:23:04ID:???この板の看板を300%拡大してpng8に変換すると大体100kBになった。
これをさらにbmp8に変換すると、、、427MBになった。。。
画素をメモリ上に展開してゴニャゴニャすると考えると8MBくらい可愛いものかと。
0773nobodyさん
2005/04/16(土) 23:57:24ID:???元のファイルを読み込んで PHP が何かしらの形式に変換して
保持するから、元のファイルサイズ = 必要なメモリサイズではない、
という理解でいいんですね。
memory_limit を変更することにしますです。
んで、調べたら memory_limit は ini_set で変更できるんですね。
知らんかった。
共用サーバーで、無茶苦茶な値を設定されると怖いような。
0774nobodyさん
2005/04/17(日) 00:35:54ID:???何でPHP_INI_ALLなのか俺も理解できない。
自分のとこはPHP_INI_SYSTEMに変更してるけど。
0775nobodyさん
2005/04/17(日) 03:42:37ID:???9割方同じ値が出てきて乱数として使えません。
何が悪いのでしょうか?
make_seed()はPHPの乱数についてぐぐって出てきたページに書いてあったものを流用しました。
function make_seed() {
list($usec, $sec) = explode(' ', microtime());
return (float) $sec + ((float) $usec * 100000);
}
while($i < 100){
mt_srand($i*make_seed()+3);
$A = mt_rand(0,1800000).mt_rand(0,6000000);
mt_srand($i*make_seed()+4);
$B = mt_rand(0,1800000).mt_rand(0,6000000);
$i++;
}
0776nobodyさん
2005/04/17(日) 05:16:51ID:???mt_srand() の引数が大きすぎる。「$i*」を消しなされ
mt_srand(make_seed()); で良い。
0777nobodyさん
2005/04/17(日) 09:17:07ID:???0778nobodyさん
2005/04/17(日) 09:53:06ID:???mt_srand((double)microtime()*123456);
$A = mt_rand(0,1800000).mt_rand(0,6000000);
$B = mt_rand(0,1800000).mt_rand(0,6000000);
とでもしとけば
0779nobodyさん
2005/04/17(日) 14:30:56ID:???0780nobodyさん
2005/04/17(日) 20:51:04ID:???日記中のurlに自動リンクを貼ろうと思ったんですが正規表現が苦手なんで、
あれこれ検索して見つけたのがこれなんですが
$url = ereg_replace("([^[:punct:]]+)(https?|ftp)(://[[:alnum:]\+\$\;\?\.%,!#~*/:@&=_-]+)",
"\\1<a href=\"\\2\\3\" target=\"_blank\">\\2\\3</a>", $text);
これだと例えば
http://hoge.jp/img/hoge[1].jpg
みたいなアドレスだとurl中の[ ]以降が無視されてしまいますよね。
その辺りを改善するとどのようなコードになるんでしょうか。
どなたかよろしくおねがいします。
0782nobodyさん
2005/04/17(日) 21:56:29ID:???ああ、それ実はやってみたんですよ。
間違ってるかも知れないですけどこんな感じ
$url= ereg_replace("([^[:punct:]]+)(https?|ftp)(://[[:alnum:]\[\]\+\$\;\?\.%,!#~*/:@&=_-]+)",
"\\1<a href=\"\\2\\3\" target=\"_blank\">\\2\\3</a>", $text);
でもこうすると完全に最初から最後までマッチしなくなってしまったんです。
\[\] だと文字クラスとして囲んでると判断されるのかなあと思って
\]\[ とかにもしてみたんですけど駄目で…。
0783nobodyさん
2005/04/17(日) 21:58:19ID:???0784nobodyさん
2005/04/17(日) 22:15:30ID:???0785nobodyさん
2005/04/17(日) 23:21:10ID:???regexの[ゴニャゴニャ] を使う時のお約束として、] というキャラクタを使うには 一番最初に置かなければいけない。
[ の方は置く場所の縛りは無い。
これまたお約束により \[ \] のようにエスケープする必要もない。
苦手とか言ってないで使う道具のことぐらい勉強しなさい
0787nobodyさん
2005/04/18(月) 02:25:22ID:Wa22FSpF・・・というようなワイルドカードを用いた判定をさせたいのですが、出来るんでしょうか?
if(変=='%あ%'){処理} みたいな書き方では動かなかったんですがー。
0788nobodyさん
2005/04/18(月) 03:05:59ID:???ちょっとは読みなさい
http://www.php.net/manual/ja/ref.strings.php
0789nobodyさん
2005/04/18(月) 10:51:35ID:???function yen_format($a) {
for ($n = 0; $n < count($a); $n++) {
$a[$n]['yen'] = number_format($a[$n]['yen']);
}
return $a;
}
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
class cYen {
function yen_format($a) {
for ($n = 0; $n < count($a); $n++) {
$a[$n]['yen'] = number_format($a[$n]['yen']); //←警告の出る行
}
return $a;
}
}
以下のような警告が出てしまいます。
Warning: Cannot use a scalar value as an array in /yen.inc on line **
どの様にすればよいのでしょうか。
0790nobodyさん
2005/04/18(月) 11:13:13ID:???$arr = array(
array('yen'=>10),
array('yen'=>100),
array('yen'=>1000)
);
var_dump(cYen::yen_format($arr));
こんな感じで試してみましたが、そのwarningを出せませんでした。。。
0791789
2005/04/18(月) 11:41:50ID:???ナンダッテーΣ(´Д`lll)
もう一度よくチェックしてみたら配列ではな変数値を放り込んでいたことに気が付いたorz
お騒がせしました。
0792nobodyさん
2005/04/18(月) 13:22:31ID:???http://www.ne.senshu-u.ac.jp/~n130127/photo/
のみたいな感じで個々の画像から代表的な色を取得したいんだけど、
これって全てのピクセルを捜査してRGBの平均値を出すって感じなのかな?
0793nobodyさん
2005/04/18(月) 15:03:24ID:tUq/WRMtUIDを参照しようにも
ttp://www.php.net/manual/ja/function.imap-uid.php
注意: この関数は、POP3メールボックスではサポートされません。
ということでたしかに取得できないぽい(msgnoと同じになってしまう)
UIDLみたいなことができればいんだけど…
0794nobodyさん
2005/04/18(月) 17:47:50ID:8vSm+nX3おおまかな処理的には
アドレスはデータベースからひらって配列に入れる
For文にてbccに100アドレスずつ積んだら送信の繰り返し
(他人のアドレスが知れるとまずいのでBcc)
余ったアドレスと自分(確認)に送信して完了
//mb_send_mail使用
って感じなんですがすごく遅くて
処理を完了しました と表示させる画面が固まってしまいます。
うまくいえないが例えば、処理はバックグラウンドでやらして画面はすぐ完了させたり
PHP/SendMailにて早くなるような処理設定等ありませんでしょうか?
0795nobodyさん
2005/04/18(月) 17:55:43ID:???0797nobodyさん
2005/04/18(月) 18:05:45ID:pALXDwicDBからアドレスひらいたいからじゃねーの?
0798nobodyさん
2005/04/18(月) 18:15:59ID:???DBからアドレス拾うのはPHPじゃなきゃ出来ない処理でもない気がする・・・
それに>>796が言いたいのはWebシステムで処理する内容じゃないって事じゃないのか?
わざわざWeb画面からメール送って確認画面出す必要も無い気がする。
どうせ確認用に自分にもメール送るんだから、
スケジュール組んでサーバーに決まった時間に処理させれば良いだけじゃないか?
0799750
2005/04/18(月) 19:10:28ID:???ま、連鯖で大量メール配信は迷惑だが
0801nobodyさん
2005/04/18(月) 19:58:12ID:???0802nobodyさん
2005/04/18(月) 20:27:37ID:???0803794
2005/04/18(月) 20:48:59ID:8vSm+nX3その機能の一貫としてメルマガ配信みたいなもんですかね。送信って押したらメール発射されます。
なんでスケジュールとかは無理だと思います。
PHPではアドレス拾いたいからです。
処理命令下した後Webの方はそのまま終了したいんですが今は処理終わるまで待ってる感じになるんで遅いんですかね・・。
execやsystemとかにてできるんであれば知りたいんですが。。
sendmailコマンドにアドレスつけたりメッセージ入れたりとかできるんでしょうか・・
あ、あと俺は残念ながら宮崎ではないです。
ごめんなさい。
0804nobodyさん
2005/04/18(月) 21:06:11ID:???PHPではキューテーブルかなにかに追加するだけで、5分おきくらいに
起動されるcronjobがキューを処理するとか。
その手のメーリングリストの処理はいろいろ面倒なので、fmlとかを
バックエンドに使うのが便利。perlが読めればの話だけど。
0805nobodyさん
2005/04/18(月) 21:09:26ID:???オイラなら(PHPの)シェルスクリプトを作って system("shell_script $arg > /dev/null &");
ってな感じでバックグラウンドで実行させるかな。
0806nobodyさん
2005/04/19(火) 01:19:16ID:Y9FcOWFA$data="./hoge.xml"; //xmlのURI
while ($data = fgets($fp)) {
//パース処理
}
という感じで、通常なら問題なくパースできているんですが、
元のxmlファイルの要素に改行が入っていると、最後の行しかパースできず、悩んでいます。
<detail>あああああ
あああああああ
ああ
</detail>
(↑元データがこんな感じだと、最終行の「ああ」しかパースされない。)
fgetsだと1行ずつ読みこんでいくために、そうなってしまうのかとは思います。
が、readfile()やfile()で一旦メモリに全部読み込んで、改行を除去してからパース、
なんて事をやるのも、ナンセンスかな、と思ってます。
こんなとき、どうしたらいいものでしょうか??参考になるものなどありましたらよろしくお願いします。
PHP4です。
0807806
2005/04/19(火) 01:23:31ID:???$fp = @fopen($xml, "r");
すいません、初期設定は↑です。
0809nobodyさん
2005/04/19(火) 04:24:48ID:???>>776
最初はmt_srand(make_seed());でやってみたんですがそれでダメだったので適当に種を変えて見たのです。
>>777
最初はループの外に出してやってたんですがほとんど同じ数値しか出さないので
ループの中で毎回やってやろうと思った次第です。
>>778
そのコードでやりましたが9割以上同じ数値を出します。
>>779
srandはこまめにやると乱数の乱れ具合が良くなるというわけではないのですね。
ところでまだ正常な乱数が出せて無いんです。
mt_randの範囲がでかすぎるとまずいのでしょうか?
0810809
2005/04/19(火) 05:17:56ID:???正常な乱数が出せました。
お騒がせしました。
0811806
2005/04/19(火) 05:18:52ID:???(読み込んだ行に"</"が含まれていなかったら){trim($data);→whileをcontinue;→$data.=$data;}
行がxmlの終了タグまで読み込まれた時点でxml_parse();することで、なんとなく回避できるような感じにはなったんですが、
今度は要素内にhtmlタグ(<〜>など)がある場合に、挙動がおかしいことに気づきました。
"<"などが、パースしているときに"<"と認識されて、xmlなんだかhtmlだか、パーサが理解してくれない、
という感じでしょうか…。
要素内のhtmlを除去か、一時的に置換する目的で、
ereg_replace("<","",$data)や、strip_tags($data);htmlspecialchars($data);など試してみましたが、うまく認識してくれません。
そもそも、"</"←これが、htmlの終了タグが現れた時点でtrueになってたりするのかなぁ、という感じです。
もう少し色々やってみますが、何か根本的に間違っていたり、解決法がありましたら、助けてください。
0812806
2005/04/19(火) 05:22:43ID:???>>808さんのレスをよーく読み返してみると、「要素終了ハンドラが呼ばれるまで」という事ですね…
自分のやり方だと、「終了タグが現れるまで」ってことになっちゃってて、条件指定がおかしいですね。
んー、ちょっとこんがらがってますが、やってみます!
0813806
2005/04/19(火) 06:18:57ID:???fgetで読み込んだデータには手を付けず、そのままパース処理へ投げ、
その中で変換→バッファする事で、正常にパースできるようになりました。
>>808さん
ヒントありがとうございました!おかげさまで深く理解することができました。
0814nobodyさん
NGNGApache2.0.49
PHP4.3.11
を使用しているのですが
Apacheを起動するとき何故か
Unknown():Unable to lpad dynamic library 'C:\php\extensions\php_curl.dll' - 指定されたモジュールが見つかりません。
というエラーが出ます
extensionsフォルダを調べてみてもちゃんとphp_curl.dllはありますし
extensionsフォルダまでのフォルダ構成もあってます
4.3.8から4.3.11にバージョンアップした時は特にエラーは出なかったのですが…
どうやれば直るんでしょうか?
0815814
NGNGそれから4.3.11へのバージョンUPはphpフォルダを全て上書き
php4ts.dllをsystem32へコピー
という風にやりました
php.iniは以前のものをそのまま使っています
0816814
NGNGこのスレではちょっと返信が遅いみたいなので>>1の
【PHP】くだらねぇ質問はここに書き込みやがれ
このスレで質問してきます
0817794
2005/04/19(火) 19:53:29ID:oaiprVhlありがとうございました。
シェルスクリプト知らなかったので勉強したらそれでいけそうです。
0818nobodyさん
2005/04/21(木) 09:34:27ID:???0819nobodyさん
2005/04/21(木) 17:29:17ID:EYYR0zng画像ファイルの全てのピクセルのRGBを取得するために
ループでそれぞれのピクセルに対して
$c1 = ImageColorAt($im, $x, $y);
$c2 = ImageColorsForIndex($im, $c1);
としてるのですが、激しく重いです。
他にRGBのそれぞれの値を取得する方法はないでしょうか?
0820nobodyさん
2005/04/21(木) 20:59:20ID:???Apache/1.3.28 (Win32) PHP/4.3.10 です。
session_regenerate_id();でセッションIDをページ毎に書き換えたいと思っています。
c:\tmp にセッションファイルが残るのが嫌なので下記の様に以前のセッションファイルを
消去しようとしたのですが、効果無しです。
(c:\tmp\sess_******************************** が残ります。)
session_start();
$session_id = session_id(); //旧セッションファイル�b�バックアップ
session_regenerate_id(); //セッション番号を変更する
$session_file = "c:\\tmp\\sess_".$session_id; //ファイル名を組み立てる
unlink ($session_file); //旧ファイルを消去する
何が悪いのでしょうか?
0821nobodyさん@820
2005/04/21(木) 21:06:52ID:???session.save_handler = files にしています。
0822nobodyさん
2005/04/21(木) 21:09:57ID:???http://www.php.net/manual/ja/ref.session.php
「User Contributed Notes」 の一番上は試してみては?
0823nobodyさん@820
2005/04/21(木) 21:31:41ID:???http://www.php.net/manual/ja/function.session-is-registered.php
の方ですか?
0824nobodyさん
2005/04/21(木) 21:32:50ID:???http://www.php.net/manual/ja/function.session-regenerate-id.php
0826nobodyさん
2005/04/22(金) 01:08:55ID:x5pK6rr1--enable-exifをつけてPHPをコンパイルし直して
$exif = exif_read_data($img);
foreach($exif as $key=>$section){
foreach($section as $name=>$val){
echo "$key.$name: $val<br />\n";
}
}
実行した結果↓のようになったのですが、撮影日時や撮影機種などが取得できません。
XP上だとファイルの機種名、撮影日時などが取得できます。
機種名、撮影日時、ファイルサイズなど取得したいのですが、exif_read_dataではできませんでしょうか?
COMPUTED.html: width="640" height="480"
COMPUTED.Height: 480
COMPUTED.Width: 640
COMPUTED.IsColor: 1
COMPUTED.ByteOrderMotorola: 1
COMPUTED.CCDWidth: 10mm
COMPUTED.ExposureTime: 0.016 s (1/64)
COMPUTED.ApertureFNumber: f/2.8
COMPUTED.Copyright:
COMPUTED.Thumbnail.FileType: 2
COMPUTED.Thumbnail.MimeType: image/jpeg
THUMBNAIL.Compression: 6
THUMBNAIL.Orientation: 1
THUMBNAIL.XResolution: 72/1
THUMBNAIL.YResolution: 72/1
THUMBNAIL.ResolutionUnit: 2
THUMBNAIL.JPEGInterchangeFormat: 1078
THUMBNAIL.JPEGInterchangeFormatLength: 8360
THUMBNAIL.YCbCrPositioning: 2
0827826
2005/04/22(金) 02:47:42ID:???$exif = exif_read_data($img,0,true)
としたところ取得できました。
0828nobodyさん
2005/04/22(金) 14:09:38ID:gzTYsMYc$xmlrpc_host = "https://www.hoge.jp";
$xmlrpc_path = "/server.php";
$c = new XML_RPC_client( $xmlrpc_path, $xmlrpc_host, 443 );
で動いてはいるんだが、使い方正しいんかな?
0829nobodyさん
2005/04/22(金) 15:01:05ID:???なので ttp://xmlrpc.usefulinc.com/ を使ったよ。
0830828
2005/04/22(金) 15:53:04ID:???1.2.2で確認。
fsockopenのport引数変えてるだけみたいだけど。
xmlrpc1.0.9.22の方だとcurl使ってるみたいなので、
今回はpearで行きます、ありがと。
0831nobodyさん
2005/04/22(金) 21:41:32ID:hJmunfCO今まで2年間動いてた、あるPHPスクリプトが、突然「$_POST」だけ全く受け取れなくなった。
$_GETは受け取れる。ちなみに他のスクリプトは$_POSTも$_GETも受け取れる。
特に更新も環境の変更もしてない(つもり)。
誰か原因わかる??
0832nobodyさん
2005/04/22(金) 22:53:17ID:???0833nobodyさん
2005/04/22(金) 23:03:14ID:???ダメ元でエスパーしたる
お前、スクリプトを弄って$_POST = とか ==と間違えて書き換えてないか?
unset()は流石にしてないだろうしなぁ
他のスクリプトが健在なら他に想いつかん
0834831
2005/04/23(土) 07:01:41ID:jIuqqiHIwindowsなので。
>>833
そんなお粗末はせんよ。
俺もこんなん初めてで、非常に困っちょる。
OSぶっ壊れたかな・・・(泣)
0835nobodyさん
2005/04/23(土) 08:21:10ID:???確認してみては?
あとはerror_reportingをE_ALLにするとか、コマンドラインから
環境変数と標準入力をエミュレートして与えてちゃんと動くかとか
変なエラーログは吐いていないかとか、他のサーバーでは動くのかとか。
こんなもんかね。
0836nobodyさん
2005/04/23(土) 09:18:28ID:???しょぼいミスの原因を追及出来ない奴は何を書いても向かないぞ
0837nobodyさん
2005/04/23(土) 12:04:56ID:???0838nobodyさん
2005/04/23(土) 12:22:27ID:eEFfrUoOコントロールクラスのコンストラクタ中で
変数のインポートから表示まで行ってしまうか、
コンストラクタの中ではほとんど何もせず、
後からインポートと表示のメソッドを呼ぶか、
どっちが適当でしょうか?
0839nobodyさん
2005/04/23(土) 12:33:38ID:???コンストラクタに変数インポートや表示を組み込むと、
特定のページだけにしか使えないような気がするけど・・?
例えばView部分を変更しようとしても、Viewのwrapperみたいのが必ず必要になって面倒な希ガス
0840nobodyさん
2005/04/23(土) 12:35:45ID:???コントロールはあくまでもコントロール。
ページ遷移とかするだけだろう・・・
本当に、MVC分かってるの疑問だな・・・
0841nobodyさん
2005/04/23(土) 12:37:24ID:???rdf:RDF -> Channel -> items -> rdf:Seq ->rdf:li にある、rdf:resource attribute を
取得するのに便利なクラスってありますか?
PEAR の RSS は rdf:Seq を処理して無いっぽいんですが?
0842nobodyさん
2005/04/23(土) 15:09:46ID:sp0JwmHnDBへの問い合わせ時間は含まれないようですが、
max_execution_time で対象になる実行時間
を簡単に求める方法はあるのでしょうか。
0843nobodyさん
2005/04/23(土) 18:41:37ID:???レスありがとうございます。
どうも自分の理解があやしいので
もう一度MVCを勉強してみました。
ビジネスロジックをコントローラーに組み込んでいたようです。
DAO的なもの=モデルと理解していたので、それを操作するビジネスロジックは
Cなのかなと思っていました。
0844nobodyさん
2005/04/23(土) 19:26:58ID:oo8/fFQwsubstr()1文字目取ってスペース入れてsubstr()2文字目取って足す
以外にいい方法ないでしょうか・・
0846nobodyさん
2005/04/23(土) 20:21:00ID:???''でexplodeはできんだろ
>>844
$str = implode(' ',preg_split('//', $str, -1, PREG_SPLIT_NO_EMPTY));
でどうだ?
0847nobodyさん
2005/04/23(土) 20:26:39ID:???0848844
2005/04/23(土) 20:38:26ID:oo8/fFQwがしかし今でてる分ではできなかったっす・・
0849846
2005/04/23(土) 20:51:15ID:???<?php
$str = 'abcdefgh';
$str = implode(' ',preg_split('//', $str, -1, PREG_SPLIT_NO_EMPTY));
print $str;
?>
で、'abcdefgh' が
a b c d e f g h
となるわけだが。
望んでいる事が違うのか?
0850844
2005/04/23(土) 22:28:38ID:oo8/fFQwあ、失礼致しました。
さっき文字列に日本語入れてたから駄目だったんですね。
英語でやったらいけました、すみません。
日本語もやろうと思ったら-2にしたりとかしたらいけそうですね。
ありがとうございました。
0851nobodyさん
2005/04/23(土) 22:39:29ID:???オイちゃんは$str[0].' '.$str[1]とかやっちゃう所だったよ
0852846
2005/04/23(土) 23:11:46ID:???んだよ、日本語入るんだったら駄目駄目ジャン。
最初から言えよ。
<?php
$str = 'abcあefほhまぬけ';
for ($i=0;$i<mb_strlen($str);$i++) {
$tako[] = mb_substr($str,$i,1);
}
$str = implode(' ',$tako);
print $str;
?>
0853nobodyさん
2005/04/23(土) 23:46:20ID:???マルチバイト正規表現が使えるならたぶんもっと簡単。
echo mb_ereg_replace('(.)', '\\1 ', $str);
一番最後にゴミのスペースが残るけど不要な場合は rtrim() で削除。
0855nobodyさん
2005/04/24(日) 14:13:38ID:???class First {
var $x = "fist";
function disp() {
print "x=" . $this->x . "<BR>"; //*1
}
}
class Second extends First {
var $x = "second";
function disp() {
print "x=" . $this->x . "<BR>";
parent::disp();
}
}
$obj = new Second;
$obj->disp();
*1 の部分で、Second クラスの x の値が表示されますが、ここで First クラスの x の値を
表示したい場合、どうすればいいのでしょう?
メソッドであれば、self::メソッド名 で指定できるみたいですが、プロパティの場合はどうれすれば…。
今回のは、わざとらしい例ですが、継承クラスでプロパティがオーバーライドされて、
親クラス内での処理が、影響を受けるのは怖いんですけど。
0856nobodyさん
2005/04/24(日) 16:40:04ID:???$SQL = "SELECT * FROM hoge ";
$res = $conn->query($SQL);
if (! DB::isError($res)) {
while ($row = $res->fetchRow(DB_FETCHMODE_ASSOC)) {
echo "<option>" . $row['hage'] . "\n";
}
}
と書いてるんだけど、同一フォーム内にプルダウンメニューが複数ある場合
その度にこの処理を繰り返しで良い?
$SQL = "SELECT * FROM hoge,hage";
で取れそうな気がするんだけど、その場合2回目以降をどっからループして良いのか
判らぬ・・・
0857nobodyさん
2005/04/24(日) 17:32:42ID:???0858nobodyさん
2005/04/24(日) 18:02:25ID:???だから、2つ以上のテーブルの内容を全部セレクトしても、
どのデータがどっちのプルダウンメニューのデータだか判断つかないんだろ。
こういった場合、普通はテーブルのデータに区分を付けて、
抽出する時にWHEREでAND条件で一気に取得しておいて、
区分ごとに配列か何かに入れておいて、
HTMLの出力時にその配列の内容を出せば良いんじゃないか?
0859nobodyさん
2005/04/24(日) 18:48:14ID:BUoUvVp6デザインパターンについて書かれているものってほとんどないと思います。
自己流だと、どういう風にクラスを切り分けるのかが
定まらず、便利を追求しようとして逆に不自由になってしまったり(ひとつのクラスに詰め込みすぎ)して
「お手本」が見たい時が多々あるんですよね。
こういうのは定番デザパタ本とかJ2EEの本などを読んで勉強するのでしょうか?
0860nobodyさん
2005/04/24(日) 18:50:21ID:???0861nobodyさん
2005/04/24(日) 19:03:15ID:???ttp://www.phppatterns.com/
日本語のページでPHPでのデザインパターンを解説してた所もあった希ガス
0862名無しさん
2005/04/24(日) 19:58:00ID:5GHKEND3http://www.pahoo.org/e-soul/webtech/
0863nobodyさん
2005/04/24(日) 21:52:47ID:???「First クラスの x の値」は既に"second"なんじゃないの?
$xは1個しか存在していないと思われ
0865nobodyさん
2005/04/24(日) 22:32:34ID:???をを。オイラもちょっとビビッた(3滴ほど)。 @php4
他の言語だと parent::メソッド内では親クラスのプロパティが使える事が多いんで、
そのつもりでつい書いちゃいそうだ。。
0866nobodyさん
2005/04/25(月) 10:19:18ID:???なるほど、目からウロコ。
プロパティが参照できる、できないという部分で凝り固まってたんですけど、
そもそも、オーバーライドされた時点で、存在していないのかもしれませんね。
>>865
自分自身がそのように書いてしまって、はまる可能性もあるんですが、
・親クラスを A 氏
・継承クラスを B 氏
が担当して、B 氏が継承クラス内で同名のプロパティを定義した場合、
(本人はオーバーライドしたつもりはない)、親クラス内の処理が影響を
受けてしまうのが怖いです。何のためのクラスなのかと。
親クラス内のプロパティに何らかの命名規則を与えるか、PHP5 を採用して、
アクセス制限をかけるか…
0867nobodyさん
2005/04/25(月) 13:05:53ID:S70RkVOTmysql 4.1.11
カレンダーを表示するページA。休日をmysqlから呼び出し、赤くする。
AページをBページから呼び出すと、休日が正しく赤く表記される。
AページをCページから呼び出すと、休日が赤くならず、黒くなる。
正しく赤く表記させたいのですが、何が原因と考えられますか?
0868nobodyさん
2005/04/25(月) 13:34:08ID:???カレンダー表示のページって、そのページだけで完結してるのか?
前ページから何かデータもってきたりしてるのか?
それと、休日の色が黒いのはなぜ?
なぜというのは、生成されたHTMLのソースを見てみたか?
まずは、生成されたHTMLのソースをお互いに比べて、
なぜ赤くならないかを見つけてみたらどうだ?
0870nobodyさん
2005/04/25(月) 14:54:37ID:S70RkVOT皆さんのアドバイスんおおかげで解決しました。
Bページはログインした後のページ(セッション中)。
Cページはログインしていないページ。
あるセッションデータがmysqlから休日データを呼び出すのに必要でした。
ありがとうございました。
0871nobodyさん
2005/04/25(月) 16:55:33ID:pLRqysOO不意にCPU使用率が90%とか越えて重くなるときがあるんですが
何か策はありませんでしょうか?
mysql_free_resultは使ってないんですがやっぱ使った方がよいのでしょうか?
0872nobodyさん
2005/04/25(月) 17:12:24ID:9VNbQ96Q<html>
<body>
<? print("こんにちは") ?>
</body>
</html>
こんな風に書いたけど、何も表示されませんでした。
0873nobodyさん
2005/04/25(月) 17:36:43ID:???あるファイルをphpとして解釈するかどうかはWebサーバの仕事の範疇。
webサーバの設定を変更する権限があれば可能です。
0874nobodyさん
2005/04/25(月) 17:49:57ID:Yt1bOngSさくらのレンタルサーバーなのですが、もしかしたら変更できるかもしれません。
よろしければ、どこをどうへんこうすればよいか、教えてください。
0876nobodyさん
2005/04/25(月) 20:12:26ID:???0877nobodyさん
2005/04/26(火) 00:51:31ID:2lFfU82SWarning: file(http://xxx/top.html): failed to open stream:
Connection timed out in /test.php on line 71
とタイムアウトが出ます。
URLをIEに貼り付けると普通に開くことが出来ます。
file_get_contentsで取得できないページってサーバ側で環境変数の
確認など行っているのですか?
0879nobodyさん
2005/04/26(火) 03:05:53ID:2lFfU82Sおぉ!それっぽい。
どうもです。
DNSには問題ないはずなのに。。。
何が駄目なんだ〜
試しのwindows環境では取得できたのにLinuxで動かすと駄目だ。
0881nobodyさん
2005/04/26(火) 09:57:49ID:???$t = tempnam(".", "abcdefgh");
ってやるとprefixが3文字までしか有効にならないのは仕様?
0882nobodyさん
2005/04/26(火) 10:57:06ID:???php-4.3.11/main/php_open_temporary_file.c
を見てみると
winではGetTempFileName()を使っている。この関数はprefix先頭3文字しか使わないようだ
win以外ではmktemp()を使っている。こちらにはそういう制限はない
というわけでwinでは仕様
0883nobodyさん
2005/04/26(火) 14:34:58ID:W1jHtFGJしかしPHP5でエラーが出て困っています。是非知恵を貸してください。
IIS上ではPHP正常稼働で、MySQLを認識&動作しますが、Apach側では
〜php_mysql.dll-指定されたモジュールが見つかりません
と言われ、MySQLを認識してくれません(鯖とPHP自体は動作します)
しかし、モジュール全般が認識しないのではないらしく、mbstringの方は認識しています。
設定ファイル(PHP.INI)はそれぞれ用意してみたのですがそれでも同じ結果です。
もちろん、PHP_MYSQL.DLLファイルは存在します(同設定ファイル使うとIISで動作する)
これらの現象を治す為に何か注意すべき点や設定変更など心当たりがありましたら是非教えてください。お願いします。
IIS6,Apach2,Mysql4.1
0884nobodyさん
2005/04/26(火) 14:35:47ID:???0886nobodyさん
2005/04/26(火) 22:33:25ID:???0888nobodyさん
2005/04/26(火) 22:49:47ID:???マニュアルでは
>設定オプションは、スクリプトの実行中、新し い値を保持し、スクリプト終了時に元の値へ戻されます。
と記述されているのですが、スクリプト実行中というのは具体的にどういった範囲なのでしょうか。
セッションなどと同じようにブラウザが終了するまで値が保持されているものなのでしょうか。
0889nobodyさん
2005/04/26(火) 23:00:48ID:???厳密に言うと違うというか例外もあるだろうけど、
あなたの感覚にあわせると概ね1ページ表示されたら元に戻る感じ。
0890nobodyさん
2005/04/26(火) 23:00:52ID:???0891890
2005/04/26(火) 23:01:44ID:???0893888
2005/04/26(火) 23:08:57ID:???サーバにPEARのパッケージが無い場合とか、
自分のpublic_htmlの中にPEARをインストールした場合、
既存のシステムとかだとPEARを使ってる部分でパスが通ってないから、
ini_setを使えばと思っていたのですが、
こうなると、結局はPEAR使ってる部分のパスを全部書き換えるか、
その前にini_setを追加しないといけないから、手間は一緒という事ですね。
PEARだけでなく、Smartyや各種フレームワークでもそうなのですが、
鯖で用意されていない場合、自分のHP領域にインストールした場合、
皆さんどうしてるんですかね。
0894nobodyさん
2005/04/26(火) 23:19:26ID:???最初のページでini_set、次のページでini_getしてみれば、聞くまでもないと
思うんだが、なぜしないんだろ?
0895888
2005/04/26(火) 23:29:50ID:???申し訳無い。
今、出張中でインターネットとPCが付いてる部屋なんだけど、
さすがに開発環境は無くて。
PHPが使える無料鯖とかも申し込みしてなくて確認出来ないんです。
0896nobodyさん
2005/04/26(火) 23:35:19ID:???いやいや。責めてるんではないので謝らなくても…
社内のプログラマ(複数)が試せば判るようなことをすぐ聞いてくるので
最近の若い人の傾向なのかなぁ、と思っただけ。
895 が若いのかどうかは知らないけど。
0897nobodyさん
2005/04/26(火) 23:37:38ID:???なぜPHPの疑問の答えが必要だったの?
0898nobodyさん
2005/04/26(火) 23:39:32ID:???答えてもらっても確認できなきゃ御礼のしようもないじゃん
0900nobodyさん
2005/04/26(火) 23:55:43ID:???それは仕様です
俺も同じ事思ってるけど、どうにもならない
俺はSEでもプログラマーでもないけど、どんな職種も同じ模様
0901888
2005/04/27(水) 00:10:45ID:???もうちょっとで30歳ですね。
若くは無いと思います。
>>897
システムの納品で出張に来ているのですが、
本日確認した所、自社サーバと言っていたのが実は外部のホスティングサーバであり、
そのサーバにシステムに必要な物が入っていなかったのです。
開発チームに連絡すると、ソースを書き換えろと指示されたのですが、
自分の中ではもっとスマートなやり方があるだろと疑問に思った訳で。
>>898
帰れるなら帰りたい・・・
>>899
なるほど。
.htaccessの中にphp_valueでinclude_pathを設定すれば良いんですね。
0902883です
2005/04/27(水) 00:48:50ID:6cV9WQUI仰るとおりのファイル(LibMysql.dllの間違いですね)をコピーすれば無事文句言われなくなりました。
助かりました。本当にありがとうございました。
0903nobodyさん
2005/04/27(水) 01:00:19ID:EFQX6yg2ありがとうございます。
特定のURLだけ駄目みたいです。
因みに
http://www.citibank.co.jp/invest/top.html
を取得しようと試みて失敗します。
相手鯖でICMP系が弾かれる設定になってるようです。
0904nobodyさん
2005/04/27(水) 01:26:19ID:???phpスクリプトじゃなくて、wgetで試してみたらどうなるか?
ネットワーク環境がわからないのだけど、どの手段でも
特定のURLだけダメってことなら
Path MTU Discovery 問題辺りじゃね?
0905nobodyさん
2005/04/27(水) 03:02:35ID:EFQX6yg2「Path MTU Discovery」メモメモ
�dクス。設定してみます。
現状↓
# wget http://www.google.com
--03:14:54-- http://www.google.com/
=> `index.html'
Resolving www.google.com... done.
Connecting to www.google.com[66.102.7.104]:80... connected.
(省略・・・)
03:14:54 (2.15 MB/s) - `index.html' saved [2259]
# wget http://www.citibank.co.jp/
--03:14:57-- http://www.citibank.co.jp/
=> `index.html.1'
Resolving www.citibank.co.jp... done.
Connecting to www.citibank.co.jp[192.193.77.83]:80...
コネクトしないよ〜
0906nobodyさん
2005/04/27(水) 11:38:52ID:???citibank.co.jpのIPを見てふと思った。
TCP/IPのサブネットマスクが 255.0.0.0 とかになっていて
ローカルを探しているとか。ありえないとは思うけど
0907nobodyさん
2005/04/27(水) 12:10:47ID:???前に、本をよんでソースから4.3.10をインストールしました。
アップグレードしたいんですけど、make uninstallコマンドができない
ようです。
この場合はどうすればいいでしょうか。
0908nobodyさん
2005/04/27(水) 12:42:28ID:???ソースからインストールした後、checkinstallを走らせてパッケージを作り、
それを利用してアンインストールする。
OS何か分からないけど、用意されているパッケージを使うってのもありかもね。
0909nobodyさん
2005/04/27(水) 14:03:55ID:jTWb4pCn$var[1] = "UNNKO";
として
$var = "";
などとしても、$var[0]、$var[1]の
中身は残っているのですが、どのように
したら変数をクリアできますでしょうか。
0910909
2005/04/27(水) 14:07:48ID:???0912nobodyさん
2005/04/27(水) 14:42:28ID:r4JIiyTCphp.iniのセッションの設定でMaster Valueの値より高い数値をPHPスクリプトや、.
htaccessで設定しても、MasterValueの上限を超えられませんか?
0913912
2005/04/27(水) 14:43:58ID:r4JIiyTCsession.gc_maxlifetime
の値です。php.iniデフォルトで1440ですが、LocalはMaster以下でしか設定できませんか?
0915nobodyさん
2005/04/27(水) 15:08:03ID:???0916nobodyさん
2005/04/27(水) 15:12:44ID:???4.3.11にバージョンアップするんなら別にいいんじゃないの。
インストールパスの変更とかしなければ全部上書きされるでしょ。
PHP5にするんならゴミが残るかもしれないからアンインストールした方が良いと思うけどね。
0917nobodyさん
2005/04/27(水) 15:17:30ID:/c75FEFA例えばmysql_connect関数を
class CLASS_DB {
function Open($host, $user, $pass) {
$this->link = @mysql_connect($host, $user, $pass);
return $this->link;
}
}
というように定義して通常、mysql_connectと書くべき部分を
$c_db = new CLASS_DB();
$dbh = $c_db->Open('host', 'user', 'pass');
と書くようにするといった感じです。
利点としては
・postgres等に変更した場合等にmysql_connectの部分を変更するだけでよくなる
・DBをメンテナンスした場合等に
function Open($host, $user, $pass) {
print "DBメンテナンス中です";
}
と変更するだけでDBに接続する全ての処理の部分でコードを変更することなく
メンテナンス中ですと表示できる。
といったようにワンクッション置くことで何らかの変更があった場合に
class CLASS_DBの中を変更するだけで全て変更される事です。
0918nobodyさん
2005/04/27(水) 15:18:43ID:/c75FEFA・DBをメンテナンスした場合等に
function Open($host, $user, $pass) {
print "DBメンテナンス中です";
}
と変更するだけでDBに接続する全ての処理の部分でコードを変更することなく
メンテナンス中ですと表示できる。
といったようにワンクッション置くことで何らかの変更があった場合に
class CLASS_DBの中を変更するだけで全て変更される事です。
0920nobodyさん
2005/04/27(水) 16:11:15ID:???それにメンテ時の表示なんて、ビジネスロジックじゃなくて、
上の層で制御した方がいいんじゃね。
0921nobodyさん
2005/04/27(水) 17:05:12ID:FF8E+B0xAから順に昇順に並べ替えたりしたいんですが一般的には
どのように行うのがいいのでしょうか・・
0922nobodyさん
2005/04/27(水) 17:14:13ID:???そういう処理の事をソートと言いますが、PHPでは マニュアルの配列関数の章に
ソート用の関数が記載されています。
並べ替える処理自体を自分で作ってみたい、ということであれば、
「ソート アルゴリズム」等のキーワードでググってみると、いろいろな情報が見つかると思います。
0923921
2005/04/27(水) 18:20:50ID:FF8E+B0xわかりました。どうもありがとうございました。
0924nobodyさん
2005/04/27(水) 19:42:19ID:4osKkRFK0925nobodyさん
2005/04/27(水) 21:16:57ID:???マニュアルを検索しても出てこないです。
検索ワードだけでもいいので教えてもらえないでしょうか?
0926nobodyさん
2005/04/28(木) 00:28:42ID:J6yThIwGマニュアルに書いていた気がする。
0927nobodyさん
2005/04/28(木) 00:34:06ID:CYm47rBrトレースで外につなぎに行ってるのは確認してるので
ローカル参照ってことはないです。
以下をLinuxでPHP5.0.4、apache2.0.54環境で取得可能な方おられますか?
$url_txt = file_get_contents("http://www.citibank.co.jp/invest/top.html");
$fws = fopen("citi.log","a");
flock($fws,2); // ファイルロック
fwrite($fws,$url_txt); // ファイルの書込み
flock($fws,3); // ファイルロック解除
fclose($fws);
0930nobodyさん
2005/04/28(木) 07:58:58ID:???マニュアルにはキーは整数または文字列とある
で文字列は1連の文字(1バイト 256個の異なる文字)とある
で文字列リテラルに3種類ある
こんなこともできる
<?php
$test[<<<EOD
配列の
キー
EOD
] = '配列の値';
echo $test["配列の\r\nキー"];//Windowsなので\r\n
?>
0931nobodyさん
2005/04/28(木) 11:57:10ID:WXfImJ/O0932nobodyさん
2005/04/28(木) 12:00:04ID:WXfImJ/Oすぐに戻ってもページの有効期限切れってでてしまうんですが
直し方ありませんでしょうか?
0934nobodyさん
2005/04/28(木) 12:04:39ID:???POSTしたページにブラウザの戻るで戻ったらそうなるよ
Mozillaなんかはもう一度POSTしますかとか聞いてくるし
キャッシュもセッションも関係ないよ
0936nobodyさん
2005/04/28(木) 13:12:02ID:???PHPのソース内で使用した変数は、人の手で明示的に解放しないといつまでもメモリに蓄積され続けるんでしょうか?
それとも、あるファイルの一連の処理が終了するとメモリは解放されるのでしょうか?
ぶしつけな質問で申し訳ありません。
0937nobodyさん
2005/04/28(木) 13:17:29ID:???続けて実行されない別のスクリプト間で変数をやり取りする方法として
セッションがあって、通常はファイルに保存するし、
同時に実行するスクリプト間でのやりとりなら共有メモリって方法もあるし
まあバグでメモリが開放されないって可能性ならあるけど、
それは意図的なものじゃない
0938nobodyさん
2005/04/28(木) 13:23:19ID:???ただ単にPHPというよApacheのメモリ管理がどうなっているのかと。
通常は実行し終え、ページを出力したら解放されるものなのかどうかと。
深い意味はありません。
0939nobodyさん
2005/04/28(木) 13:37:36ID:???小出しですか?
0940nobodyさん
2005/04/28(木) 13:54:26ID:CYm47rBr早速実験どうもです。
私もwindowsでは取得出来たのですがLinuxで駄目なんですよ。。
後はLinuxのoperaでHPが見れるか実験したいです。
ここ手のエラーは初めてで・・・四苦八苦してます。。。
0941nobodyさん
2005/04/28(木) 15:41:15ID:???仕事でシステム組むとかは別にして、
PHP(+MySQL)つかってお前らってどんなシステム組んでるの?
カウンタとかBBSとかレベルなのか?
0942nobodyさん
2005/04/28(木) 15:50:28ID:???【PHP】くだらねぇ質問はここに書き込みやがれpart4
ttp://pc8.2ch.net/test/read.cgi/php/1110697712/
0943nobodyさん
2005/04/28(木) 19:02:46ID:???ありがとうございます。
日本語も可能なんですね。
今さっきgoogleでも、PHP公式マニュアルでも検索したんですが出てこない
んです。
一体どこにあるのでしょう?
0944nobodyさん
2005/04/28(木) 19:29:55ID:???配列
ttp://www.php.net/manual/ja/language.types.array.php
key は、整数 または 文字列です。 〜(略)〜 整数または文字列のインデックスを使用することができます。
文字列
ttp://www.php.net/manual/ja/language.types.string.php
PHPでは、文字は1バイトと同じです。つまり、256個の異なる文字を使用可能です
shift-jisで次のような物を実行してみれば(\無しと\ありの2ケース)、その意味が分かるかと。
$arr['ソ\'] = 'data';
print $arr['ソ\'];
0945nobodyさん
2005/04/28(木) 20:13:02ID:???ありがとん。
いつもマニュアル読むのですが、読んでもよくわからないことが多い orz...
あと検索使うと日本語が文字化けして検索できないのは私だけ?
英語のサイトだからか...欝
Firefox 1.0.3 on Fedora Core3
0946nobodyさん
2005/04/29(金) 16:06:05ID:???一度mallocしたメモリは開放せずそのまま使いますよ。
外見は藤崎、性格は虹野、夜は鏡、そんな娘
足りなくなったらremallocという実装なのですよ。
0947nobodyさん
2005/04/29(金) 16:10:37ID:???途中でパースエラーがでてしまます。コードは以下のです。
どのように修正したらよいのでしょうか?
/*$logファイルの指定行から指定行までを読み込み、整形してHTMLで返す関数*/
/*以下の3変数はすべてURLで指定するつもりです。*/
function html_diary($log , $from_number , $to_number){
$all_lines = file($log);
$chosen_lines = array();
for($count = $from_number; $count =< $to_number; $count++){
/*ここでエラーが出てしまいます*/
array_push($chosen_lines,$all_lines[$count]);
}
0948nobodyさん
2005/04/29(金) 16:11:31ID:???$words = explode("\t",$value);
echo("
<TABLE style=\"border-color:#666666; border-width:1px; border-style:solid;\" align=\"center\" cellpadding=\"2\" width=\"85%\">\n
<TBODY>\n
<TR>\n
<TD colspan=\"2\">$words[0] : words[2] by words[1]</TD>\n
</TR>\n
<TR>\n
<TD align=\"center\" valign=\"top\" width=\"47\"></TD>\n
<TD width=\"299\">words[3]</TD>\n
</TR>\n
<TR>\n
<TD></TD>\n
<TD align=\"right\"><comment></TD>\n
</TR>\n
</TBODY>\n
")
}
}
0949nobodyさん
2005/04/29(金) 16:15:16ID:???for がおかしいと思われ。
for($count = $from_number; $count =< $to_number; $count++){
↓
for($count = $from_number; $count <= $to_number; $count++){
0950947=948
2005/04/29(金) 16:18:56ID:???そんな初歩的なミスだったとは・・・w
0951nobodyさん
2005/04/29(金) 16:42:57ID:4NbFGjgpPHP4.3.10/WinXP で開発しています。
セッションIDを以下のようにして5桁にしようとしたのですが、
上手くいかず悩んでおります。
php.iniの
-------------------------------------------------------
;session.entropy_length = 16
;session.entropy_file = /dev/urandom
-------------------------------------------------------
を
-------------------------------------------------------
session.entropy_length = 5
session.entropy_file = "c:\xxx\uuidgen.exe" ※注
(※注 Windows環境の為、VC同梱の乱数生成ファイルで/dev/urandom/の代替)
-------------------------------------------------------
に変更
マニュアル・バグレポート・Googleなど一通り見たのですが
これに関する記述が見つかりませんでした。
セッションIDの桁数や文字構成でPHP運用していることに
気付かれたくないので何とかIDを変えたいのですが。。
お知恵を拝借したく、宜しくお願い致します。
0953nobodyさん
2005/04/29(金) 17:08:38ID:4NbFGjgp早速のレスありがとうございます。
そもそも渡している値(ロジック?)が違かったんですか…(^_^A;)
当方にはLinux環境がなく、できればもう一声だけ
アドバイスをお願い致しますm(_ _)m
Cygwinで/dev/urandom/を移植できることは調べたのですが、
ID生成の為だけに300MB近いハード容量を取られたくないので、
何かしらのツールや自作プログラムで代用したいと思います。
こういった方法でWindows上で /dev/urandom/ と
同様の働きをさせることはムズカシイのでしょうか…?
0954nobodyさん
2005/04/29(金) 18:03:57ID:???0955nobodyさん
2005/04/29(金) 18:08:22ID:???ファイルベースだと使える文字列が限られるから、DBと連携したら?って趣旨です。
0956nobodyさん
2005/04/29(金) 18:29:15ID:4NbFGjgp先ほどEGADSという代用ツールに出会い、使ってみたのですが、
どうも session.entropy_file では /dev/urandom/ と
同じ様に認識することはできないみたいです。
/dev/urandom/は「デバイス」という扱いだったんですね…。
(Linux初心者なので間違ってたらすみません汗)
session_set_save_handlerでのDB接続関数は既に作ってありましたので、
アドバイスいただいた通り、適当なハッシュ関数を作って
session_id(生成値)で逃げようかと思います。
>>952のヒントでとても助かりました。
ありがとうございました。
0957nobodyさん
2005/04/29(金) 21:42:30ID:s7r+/5xEunicodeで書かれたサイトの抜き取りができません
どうすればいいですか
0958nobodyさん
2005/04/29(金) 21:43:19ID:???0959nobodyさん
2005/04/29(金) 21:48:43ID:???0960nobodyさん
2005/05/02(月) 04:22:58ID:zPNJQI1Nディレクトリごとに変えることは可能でしょうか?
/pc配下では、出力コード=EUC
/mobile配下では、SJISにトランスレートする
というようなことを実現したいのです。
0963nobodyさん
2005/05/02(月) 12:17:42ID:QMo3ti9w具体的にどの関数を使用すればよいのでしょうか?
0964nobodyさん
2005/05/02(月) 13:43:21ID:???突っ込みどころ満載だな…w
ソートアルゴリズムすら聞いたことありません。
みたいな雰囲気漂ってるぞ。
君の知識じゃ無理なのは目に見えているので、
Googleの機能使え。
0965nobodyさん
2005/05/02(月) 14:01:52ID:???0966nobodyさん
2005/05/02(月) 14:06:42ID:???まずはopendirかな
0968nobodyさん
2005/05/02(月) 14:55:45ID:???検索だからソートが必須なわけでもないな。
俺もGoogleに一票。
融通が利かない面もやはりあるが、普通にブラウザで見れる範囲しか
引っかからないので、誤って見せてはいけないものまで出してしまうミスがない。
もちろんWebサーバの設定で既にミスってる場合には終わってるが。
0969963
2005/05/02(月) 18:35:48ID:QMo3ti9wmsearch使って解決しましたw
0970nobodyさん
2005/05/02(月) 21:43:58ID:uI0QKQTW0971nobodyさん
2005/05/02(月) 23:19:43ID:???本を買ってきました。
echo文でつまづきましたw
技術評論社「はじめてのPHP言語プログラミング入門」大垣靖男著
なんだけど、タイトルよく見たら、「はじめて」と「入門」が重なるのおかしくないか!?
それとも、QuickBASICで挫折した俺の頭が悪いのか!?
もうこのスレも1000近いので、大目に見てネ
0972nobodyさん
2005/05/02(月) 23:24:16ID:kmCmIsRa何処が悪いのか分かりませんorzどなたかご指摘して頂けると嬉しいです。
mysql_query("INSERT $table SET " . implode(', ', $in) . ';')
or die 'カラムを挿入できません。';
0975nobodyさん
2005/05/03(火) 02:25:12ID:???そこの改行を<BR>にかえようと思い
//$comは、フォームからの入力
$com = htmlspecialchars($com);//タグ変換
if(get_magic_quotes_gpc()) $com = stripslashes($com);//¥除去
$com = ereg_replace("\n","<BR>",$com);
と書き、ファイルに書き込んだのですが、<BR>の手前に、
改行マーク(?)が入ります。
Win付属のノートパッドでは、
・ のように表示されています。
どういう風にすれば直るんでしょうか?お助けください
0976nobodyさん
2005/05/03(火) 02:52:21ID:???その状況から察するに、\r\nを改行コードとして送られてきていて
\nだけを<br>に置き換えたので、\rが残ってしまったのでしょう。
処理の前後でbin2hex($com)をしてみると、0d -> \x0d -> \r が
除去されずに残っていることが確認できると思います。
ereg_replace("\r|\r\n|\n","<br>",$com) か nl2br($com)が希望する処理内容になります。
0977nobodyさん
2005/05/03(火) 08:12:27ID:???die ('カラムを挿入できません。');
>>975
$com = str_replace(array("\r\n","\r","\n"), "<BR>", $com);
//技巧的な置換ルールを 必要としない場合、ereg_replace() または preg_replace()の替わりにこの関数を常用するべきです。
0979nobodyさん
2005/05/03(火) 14:10:42ID:???俺サンデープログラマーだけど、SQLのテキストボックスの
改行コードが無視されるんでSQLに<br>を突っ込んでたよ。
str_replaceを知ったのは最近だ。
やっぱマニュアルはじっくり読まなきゃ駄目だね
0980nobodyさん
2005/05/03(火) 16:06:06ID:???0981nobodyさん
2005/05/03(火) 22:27:12ID:???何が違うのですか?
0982nobodyさん
2005/05/03(火) 23:29:17ID:???0983nobodyさん
2005/05/04(水) 00:09:29ID:???$a=1;$b=2;
switch($a,$b){
case 0,1:
break;
case 1,1:
:::::::::::::::::::
ってな具合に書いてみたけどポーズエラー発生
,をandに変えると実行はするけど$aしか判定してない様子
無理?
0984nobodyさん
2005/05/04(水) 00:17:08ID:???でもPHPのswitchは文字列も使えるのでこんな風に書けなくもない
お勧めはしないが
$a=1;$b=2;
switch($a . "," . $b){
case "0,1":
echo "0,1";
break;
case "1,1":
echo "1,1";
break;
case "1,2":
echo "1,2";
break;
}
0985nobodyさん
2005/05/04(水) 00:25:07ID:???そっか、無理なのか。
2つ以上の$HTTP_POST_VARS['***']の組み合わせで、それぞれ違うSQL構文を
発行しようと思ったんだけど、ifでやるしかなさそうだね。
ありがとう
0986nobodyさん
2005/05/04(水) 00:35:17ID:???$HTTP_POST_VARS['***']の組み合わせが多いのなら配列を使って
テーブル化したほうがメンテしやすいと思うよ
レス数が950を超えています。1000を超えると書き込みができなくなります。