トップページ⇒php
1001コメント353KB

【PHP】質問スレッド Part8

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん03/04/14 00:52ID:???
■本家
 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-4
0421nobodyさん03/05/31 02:39ID:???
>>418
文字列ってのは普通配列として扱われる。
C辺りをやると良くわかるが。

ってのが答えな訳だが。
詳しくはphpマニュアル嫁。

>>419
移植スレ送りじゃないのか?

>>420
じゃqwerで。
042241803/05/31 02:42ID:???
>>421
丁寧な解説ありがとうございました!
多謝
0423nobodyさん03/05/31 12:10ID:yd2VAwYd
4.3.2に含まれてるGDで日本語表示できた人いる?
ext/gd/config.m4に-DJISX0208を追加すれば4.3.0の時はいけたんだけど
今回もそうなのかと思いやってみたが玉砕

if test -n "$FREETYPE2_DIR"; then
AC_DEFINE(HAVE_GD_STRINGFT, 1, [ ])
AC_DEFINE(HAVE_GD_STRINGFTEX, 1, [ ])
GDLIB_CFLAGS="$GDLIB_CFLAGS -DHAVE_LIBFREETYPE -DJISX0208"
fi

これだけじゃだめなのかな?
0424動画直リン03/05/31 13:10ID:1EAhrEiJ
http://homepage.mac.com/hitomi18/
0425nobodyさん03/05/31 14:27ID:???
文字列を配列として扱う方が珍しい。
0426nobodyさん03/05/31 15:18ID:???
>>423
./configure --help
してみ。
--enable-gd-jis-conv GD: Enable JIS-mapped Japanese font suppert.

ってのが増えてるんだが(w
0427nobodyさん03/05/31 15:32ID:???
>>421
>文字列ってのは普通配列として扱われる。
>C辺りをやると良くわかるが。

C 以外で文字列を配列として扱う言語ってなによ?

PHP のマニュアルにも文字列が配列として扱われるなんて書いてないぞ。
0428nobodyさん03/05/31 15:37ID:???
>>427
> C 以外で・・・

Pascal
0429nobodyさん03/05/31 15:45ID:???
>>418は何で一文字ずつ取り出したかったのだろう?
と考えてたら、縦書きスクリプト作ってしまいますた。(w

function tategaki($bunsyou, $kaigyou=20) {
$bunsyou = str_replace("\t", '  ', $bunsyou);
$bunsyou = preg_split('/\r\n|\r|\n|<br ?\/?>\r?\n?/i', $bunsyou);
echo '<div style="text-align: right;">';
echo '<table border="0" cellspacing="5" cellpadding="0" style="margin-left: auto;"><tr>'."\n";
while ($bunsyou[0]) {
$danraku = array_pop($bunsyou);
$retsu = array();
if ($danraku == NULL) {
echo '<td style="text-align: center; vertical-align: top;"> </td>'."\n";
continue;
}
0430nobodyさん03/05/31 15:45ID:???
つづき。

if (mb_strlen($danraku) < $kaigyou) {
$retsu[] = $danraku;
} else {
$i = 0;
while ($gyou = mb_substr($danraku, $i, $kaigyou)) {
array_unshift($retsu, $gyou);
$i += $kaigyou;
}
}
foreach ($retsu as $gyou) {
echo '<td style="text-align: center; vertical-align: top;"><pre>';
$i = 0;
while ($moji = mb_substr($gyou, $i, 1)) {
echo htmlspecialchars($moji) . "\n";
$i++;
}
echo '</pre></td>'."\n";
}
}
echo '</tr></table></div>'."\n";
}

ヒマがあったらxreaあたりにクズスクリプト置き場つくりまつ。
0431nobodyさん03/05/31 16:26ID:2x+J2a52
SARSの死者よりずっと日本の過労死者のほうが多い
過労死をさせる日本ロジテム株も大暴落の予感
佐川とロジテムどっちがひどい?
田中真紀子と親密な日本ロジテム(日清系 上場企業 みずほの融資先)の
子会社せいも素(みずほの融資先)で  
サービス残業させすぎの過労死者を出した上、大量の不当解雇を行った社長の辻
にまた労働基準監督署の立ち入り調査があり,またも多くの勧告が出された。
http://www.samos.co.jp
http://tmp.2ch.net/test/read.cgi/company/1046775680/l50
.      / ̄\  +.  ∧_∧アハハハ テンゴクヘイッチャウヨー  +
  イクナヨー( ´∀`)    (´∀` )  
      (つ  つ     (つ  つ■
.   +  ( ヽノ      ( ヽノ
0432nobodyさん03/05/31 20:28ID:???
あーわりぃ。
確かに「配列として扱う」ってのは無かった。
誤読しとったよ。

文字列への文字単位のアクセス
波括弧の後に任意の文字をゼロから始まるオフセットで指定することに より、文字列内の文字にアクセスすることが可能です。

注意: 過去の互換性のため、配列括弧を使用することが可能です。しかし、 この構文はPHP 4に依存しています。

0433nobodyさん03/05/31 23:02ID:???
>158
http://d.hatena.ne.jp/

一般キーワードがぜんぜん一般じゃないのが笑える。
0434nobodyさん03/06/01 03:22ID:???
>>431
佐川のほうが断然ひどい。
佐川のほうは精神も疲れるが肉体労働もありだからな。
0435nobodyさん03/06/02 16:58ID:z9K16qFI
リンク集のチェックをしたいんですけど、
サーバーエラー404だとか403だとかのチェックってできるんでしょうか。
0436動画直リン03/06/02 17:10ID:mGHfwiJV
http://homepage.mac.com/hitomi18/
0437nobodyさん03/06/02 17:51ID:???
>>427
ざばも配列として扱う
0438nobodyさん03/06/03 00:30ID:???
>435
すれ違いだけど、、。
ソケットでHEADメソッド使えばいいんでないの。
0439nobodyさん03/06/03 03:01ID:t+Lmvee5
http://www.php.net/manual/ja/printwn/index.php
で、こんなエラーが出た。ちゃんとデバッグしなきゃ。

Parse error: parse error, expecting `')'' in /local/Web/sites/phpweb/error/index.php on line 172
0440直リン03/06/03 03:10ID:HzexL3AB
http://homepage.mac.com/yuuka20/
0441nobodyさん03/06/03 03:35ID:NImEtxUN
http://www.micromusic.net/
このHPに流れるwavが欲しいのですが誰か知りません
ぶっこ抜く方法
0442直リン禁止03/06/03 03:48ID:???
>>441
0443_03/06/03 04:38ID:???
http://homepage.mac.com/hiroyuki43/moe/jaz02.html
0444nobodyさん03/06/03 05:04ID:???
444get, zuzaa
0445nobodyさん03/06/03 23:21ID:???
441
eggyキタ━━━━━(゚∀゚)━━━━━!!!!
0446nobodyさん03/06/04 23:16ID:nhSLUtrZ
過去ログで見かけた気がしたんだが、みつからず
PHPの設定で実行速度上げる方法を知っている人居たら教えてください
0447山�ア渉(^^) 03/06/05 06:14ID:???
>>446
zend compiler
0448nobodyさん03/06/05 13:37ID:dHb/5JOi
質問
anhttpd環境で作ったphp + vbsをapacheに持って行ったところ
system()で止まってしまいます。
どこを見たら良いでしょうか?

作成環境
anhttpd + php4.3.1
⇒httpdからはphp.exeを使用

不具合の発生した環境
apache1.3 + php4.3.1

試してみたこと
動作確認プログラムを作成
・php側 引数を渡しvbsを呼び出すすだけの処理を記述
・vbs側 受け取った引数をmsgboxで表示
コマンドラインからphpを実行 ⇒ msgbox表示
ブラウザからphpを実行 ⇒ msgboxが出ずに処理が終わらない
044944803/06/05 15:44ID:dHb/5JOi
解決しました
0450山�ア渉(^^) 03/06/05 16:20ID:???
>>449
せっかくだからどうやって解決したかを書いてください。
同じような不具合が将来でるかもしれない人の助けになると思うから
0451nobodyさん03/06/05 19:23ID:FwOkzQ0W
質問です。
ログファイルで

aaaa.aa.com
bbbb.skf.com
gjrgjlfmse.jp

のように書いたA.logがあるとします。
これをアクセス禁止.phpでインクルードして
拒否に使いたいのですが
A.logの各行から取得したものを
"aaaa.aa.com",
"bbbb.skf.com",

のように"",で囲むにはどうすればよいのでしょうか?
0452nobodyさん03/06/05 22:12ID:???
めんどくさいから取得周り省略

for ($i = 0;@$line[$i];$i++) $line[$i] = "\"". $line[$i] ."\"";

終了。
0453nobodyさん03/06/05 22:18ID:???
>>452
ありがとうございます。
これを元に作ってみます。
0454nobodyさん03/06/05 23:06ID:nsYVSs9h
php-4.3.2+sybaseで正常にインストールできた人います?
うちは、 4.3.2RC3からできなくなった。
0455_03/06/05 23:08ID:???
http://homepage.mac.com/hiroyuki43/2ch.html
0456直リン03/06/05 23:10ID:C/yWLjzO
http://homepage.mac.com/yuuka20/
045745103/06/05 23:25ID:???
>>452
うまくいかない…
取得周りもおしえてホスィ…ずうずうしくてスマソ
0458nobodyさん03/06/05 23:43ID:???
>>451
文字列として取得したい場合はこんな感じにしてみるとか。
echo "\"" . implode("\",\n\"", array_map("trim", file("A.log"))) . "\"";
0459nobodyさん03/06/05 23:50ID:???
>>458
アドバイスどうもです。


<?php
$bl=array(
"05001014230625_me.ezweb.ne.jp",
"07031041765051_ae.ezweb.ne.jp",
);
while(list($n,$s)=each($bl))
if(getenv("HTTP_X_UP_SUBNO")==$s)exit;
?>
こんな感じでやってるんですが

"05001014230625_me.ezweb.ne.jp",//荒らし
"07031041765051_ae.ezweb.ne.jp",//変人

の部分を外部のファイル(たとえばbye.log)

05001014230625_me.ezweb.ne.jp
07031041765051_ae.ezweb.ne.jp

のように書かれているものをIncludeして
使いたいんです。
0460nobodyさん03/06/06 00:13ID:???
それなら "", で囲むというのは必要ないのでは?

<?php
$bl=array_map("trim",file("bye.log"));

while(list($n,$s)=each($bl))
if(getenv("HTTP_X_UP_SUBNO")==$s)exit;
?>
0461nobodyさん03/06/06 01:18ID:H834oKjr
Header関数について質問です。
WindowsXP+Apache2.0.49+PHP4.3.2(php4apache2.dllを使用)で
インストールしました。
<?php
Header("Content-type: text/plan");
?>
<b>test<b>
というソースを動かそうとすると、
Warning: Cannot modify header information - headers already sent by ...
と出てきてHTMLで出力されてしまいます。
Content-typeに何を指定しても同様の結果です。
以前Linux版を使っていたときにはこのような事はなかったと思うのですが、
何か私が設定を忘れているのでしょうか?
046246103/06/06 01:19ID:H834oKjr
text/planはtypoです。
0463nobodyさん03/06/06 01:59ID:???
>>461
なにか出力されてるらしいから、telnet <server> 80 で確認してみたら?
0464nobodyさん03/06/06 02:22ID:???
>>461
ファイルの先頭に
   <?php
が来てるか?
空白文字か空白行があるとみた。
0465 03/06/06 04:24ID:dN43aHgM
すいません。質問させて下さい。

プログラムの中でfopenを使ってあるURLの文章を取得するのですが、
リダイレクトなども含めて最終的に取得したデータのURL名を知りたいのです。

具体的には http://xxx.com/test というURLがあるとして、
testはディレクトリ名で実際はリダイレクトされた結果、
http://xxx.com/test/index.html というURLのデータを取得する事になります。

この http://xxx.com/test/index.html というURLを http://xxx.com/test から
知る方法はありませんか?

PHPは4.2.4です。
0466nobodyさん03/06/06 04:29ID:iJzdeZKD
みてね、無修正だよ〜♪
http://www1.free-city.net/home/s-rf9/page002.html
0467_03/06/06 04:41ID:???
http://homepage.mac.com/hiroyuki43/moe/jaz04.html
0468nobodyさん03/06/06 08:33ID:???
>>460
arigatougozaimasu

Warning: file(./log/bye.log) [function.file]: failed to create stream: No such file or directory in /virtual/new/shared_html/test.php on line 2

Warning: array_map() [function.array-map]: Argument #2 should be an array in /virtual/new/shared_html/test.php on line 2

Warning: Variable passed to each() is not an array or object in /virtual/new/shared_html/test.php on line 4
test.phpは>>460様の書いていただいたものを書いてアップしてます。
言い忘れましたがサーバーはXREAです。
ログファイルのパーミッションは666、logフォルダの中に入れてパスは./log/bye.logのようにしています。
0469nobodyさん03/06/06 08:46ID:???
>>465
http://xxx.com/test にアクセスすると、そんなの無い、http://xxx.com/test/ へ行けと応答がある。
http://xxx.com/test/ にアクセスすると、サーバ内部で 適当にファイルをみつくろって応答する。
(見繕うファイル名の指定は、apacheの場合DirectoryIndex)
ディレクトリに関しては、上のような感じになる。

index.htmlというファイル名かどうか確実に知るには、実際にindex.htmlにアクセスするしかない。
ひょっとしたら index.cgiかも知れないし、index.cfmなのかも知れない。
0470nobodyさん03/06/06 10:16ID:???
>>468
./log/bye.log がないか読めないと言われているのだが・・・。

ディレクトリに実行権限がないとか。
XREA は知らないが、suExec 環境の場合は、
ログファイル : 600
ディレクトリ : 700
とかにしておかないと駄目だったかも。

<?php
$log="./log/bye.log";
if(!is_file($log)) die("ファイルが見つかりません");

$bl=array_map("trim",file($log));

while(list($n,$s)=each($bl))
if(getenv("HTTP_X_UP_SUBNO")==$s)exit;
?>
0471 03/06/06 12:25ID:dN43aHgM
>>469
>http://xxx.com/test にアクセスすると、そんなの無い、http://xxx.com/test/ へ行けと応答がある。
せめて「http://xxx.com/test/」がわからないでしょうか?
要は「test」がディレクトリなのかファイルなのかURLからじゃ判断できないのです。
そこら辺を知るためにはソケットで実際にそのURLにアクセスしてみるしかないんでしょうか??
0472nobodyさん03/06/06 12:53ID:ww01wu87
ちょっと質問ですが、ユニーク数を取得するようなログプログラムを作るとして
IE6のようなデフォルトでクッキーを受け付けない場合って、どうやって正確にユ
ニーク数を取得するのでしょう?
0473nobodyさん03/06/06 12:59ID:???
>>471
例えば、ここWebProg板にアクセスするときの リクエストと応答はこんな感じ。

GET /php HTTP/1.1 <- リクエスト
HTTP/1.1 301 Moved Permanently <- 応答(ここには無い)
Location: http://pc2.2ch.net/php/ <- あっちに行け

GET /php/ HTTP/1.1 <- リクエスト
HTTP/1.1 200 OK <- 応答(あったよ)

2つ目のリクエストの /php/ (=1つ目のLocation) をチェックすればいいよね。
HTMLの meta refresh まで考慮するならHTMLもパースするしか無いけど...
0474 03/06/06 13:52ID:dN43aHgM
>>473
有難うございます。
結局、ソケット使って実際にWEBサーバーにアクセスし、レスポンスを調べてみるしかないのですね・・・
PHPの関数か何かで簡単に調べられないかなと思ったのですが・・・
0475_03/06/06 14:11ID:???
http://homepage.mac.com/hiroyuki43/jaz09.html
047645403/06/06 14:40ID:WWTnaPYl
PHP+SYBASEてあまりいないのかな?
分かる非説いたら教えて!
0477nobodyさん03/06/06 17:05ID:LOE5TNUN
>>474

そんなもんまで関数に頼ってどうする。
んなことできるようならばphpの関数の数が今の百倍ぐらいになるだろが。
0478 03/06/06 18:35ID:dN43aHgM
>>477
何いちいち食ってかかっきてんだ、厨房が。
俺が現在のPHPに関数の数を100倍にするように要求したのならともかく、
そういった関数があるかどうか聞いただけだろ?ここは質問スレだろうが?
0479nobodyさん03/06/06 18:42ID:???
dN43aHgM必死すぎ
( ´,_ゝ`)プッ
0480 03/06/06 18:50ID:???
>>479
LOE5TNUNは自作自演ご苦労。
おまえは自信に非があるので、( ´,_ゝ`)プッとか必死とか言って煽るしかないんだね(ワラ

0481nobodyさん03/06/06 20:05ID:FptlQyuA
>>470
ありがとうございました。
ここまでやっていただいたので後は自分で解決します。
ほんとにどもでしたm(__
0482_03/06/06 20:54ID:???
http://homepage.mac.com/hiroyuki43/jaz07.html
0483無料動画直リン03/06/06 21:10ID:6EFZr+OJ
http://homepage.mac.com/norika27/
048446103/06/06 22:12ID:???
昨日の>>461です。
>>463,>>464
お返事ありがとうございます。ご意見いただいたとおりtelnetで
確認してみました。
するとソース上では1行目に<?phpが入っているにもかかわらず、
何か文字が出力されていました。
元のソースファイルをよく確認してみると、UTF-8で保存されており、
それをANSIで保存しなおすと無事表示されました。
お騒がせしてすみません。ありがとうございました。

ちなみにunicodeで保存するとソースがそのまま出力されてしまいました。
0485nobodyさん03/06/07 00:16ID:???
>484
あ、その何か多分BOM。
「UTF-8 BOM」でぐぐーれ。
048646103/06/07 01:10ID:???
>>485
早速調べてみました。
UTF-8で保存されたファイルをバイナリで確認してみると、
確かにファイルの先頭に何かくっついています。
元ファイルのエディタはWinXPの「メモ帳」でした。
0487おいおい03/06/07 04:31ID:???
>>478

・・・ある用途の関数の有無を質問するのってありなの?
   こんなにマニュアルが良くできててwwwでミラーだらけなのに。
   質問書き込み自体は手間暇かけているけど、マニュアル見たら
   それ以下の労力で解決できるよ。頭の使い方間違ってない?
0488nobodyさん03/06/07 04:38ID:???
ガイドライン級
0489nobodyさん03/06/07 05:00ID:???
めっちゃ初心者質問で悪いのですが
PHPのファイルを保存するときは文字コードは何で保存すればいいんですか
現在EUCで保存してるのですが
PHPのスクリプトを落としてくるとShift-JISで保存されているのがほとんどで
そのまま設置して動作確認をすると文字化けします

なので現在落としたヤツはEUCに保存しなおしているのですが
PHPの文字コードはどれが一番ベターなのですか?

環境は WinXPPro / Apache 1.3.27 / PHP4.3.1
0490nobodyさん03/06/07 05:35ID:???
PHPとは本質的に無関係な問題でしょ
0491nobodyさん03/06/07 07:03ID:dfQas5D8
みなさん、Webプログラムを作る際、仕様書は書いていますか?

業務でアプリを組もうと思うと仕様書は必要だと思うのだけれど、
どう書いていいのかわかりません。

GET/POSTのフォーム入出力パラメータとか、画面遷移とか、セ
ッション変数の引渡しと、それを破棄するタイミングとか、考える
項目はいろいろありますよね。
これらを系統だてた文書形式にして仕様書形式にまとめたいの
ですが、仕様書の書き方で参考になる本やホームページがあっ
たら教えてください。
0492_03/06/07 07:53ID:???
http://homepage.mac.com/hiroyuki43/jaz09.html
0493無料動画直リン03/06/07 09:10ID:XZEhfRTk
http://homepage.mac.com/norika27/
0494nobodyさん03/06/07 10:06ID:???
>できた人います?

この物言いするバカが多いがいたらどうだというのだ。お前の環境もしくはお前の頭では動かんことには代わりはない。
0495nobodyさん03/06/07 11:46ID:???
>>491
個人で使うレベルなら、1枚目に要求定義(そのプログラムで何をするのか)を箇条書き
2枚目以降にそれぞれをどう実装するのかを書くだけで良いと思われ
0496nobodyさん03/06/07 13:57ID:???
>489
EUCがスタンダードで、UTF-8Nがベターかな?
#折れは自分で使う分は、最近はUTF-8Nで書いてる。

SJISなのは本人がEUC/UTF-8Nが吐けるエディタもってない…とは考えられんので
落とした誰かがWindows9xのNotePadで開けないんですけどなんて、ベタな質問をするのでウザイから
態々SJISにしてるパターンはある。

んでそのままアップロードするヤツが「可能は可能?」とか次のベタな質問を…
0497 03/06/07 15:04ID:8PleCnwy
487,494みたいなクズは消えるべきでは?
答える気も無いくせに、わざわざ荒らしにくるんじゃねぇ〜すげぇウゼぇよ。
0498直リン03/06/07 15:10ID:XZEhfRTk
http://homepage.mac.com/yuuka20/
0499nobodyさん03/06/07 15:35ID:???
>>495
貴方の仕様書が見たいです。

>>497
そーゆーチミも結局同じ事してるって事に気づこうよ
0500nobodyさん03/06/07 15:36ID:???
昔は「EUCで保存しとけ」だったけど、この間S-JISに対応したんだよね?
0501 ◆AngelH/kMI 03/06/07 16:10ID:???
>>500
どっちにしろサーバの設定次第・・・。
もしくは.htaccessやスクリプトの最初の方で
きっちり設定するか。
050248903/06/07 18:35ID:???
>>496,500,501
ありがとうございます
カキコの後色々ググってみたら
EUC等で書いて出力だけSJISに変換してするってのも手みたいですね
とりあえずはEUCかUTF-8Nで書いてみることにします


0503nobodyさん03/06/07 18:47ID:fJYAIl/S
現在PHPでプログラミングしていますが、セーフモード関連でつまづいています。
opendir関数ですがUIDの違いでエラーがでます。

main.phpで同ディレクトリにフォルダをパーミッション777で作成して
その作成したフォルダに対しopendirをするとエラーが起こります。
作成されたフォルダの所有者はnobodyになるのですが、このフォルダに
対してFTPを使わずアクセスして一覧を取り出すことはできないのでしょうか?

PHP Version 4.2.2
Apache Version 1.3.26
です。

よろしくお願いいたします。
0504預言者03/06/07 20:52ID:???
http://elife.fam.cx/mfg/

0505nobodyさん03/06/07 21:38ID:???
>>503
エラーが出たなら、それくらいコピペしろ。
そうした方が解決が速いだろ
050650303/06/07 22:10ID:fJYAIl/S
>>505
すいません。
セーフモード時のよくあるエラーメッセージだとおもいます。
Warning: SAFE MODE Restriction in effect. The script whose uid is 4400 is not allowed to access フォルダ owned by uid 99
0507nobodyさん03/06/07 23:58ID:???
SJISスクリプトが増えてるのは、馴染みの問題かとも思う。
EUC-JPとかUTFよりも「Shift_JIS」のほうが名前がクールだし。
まあ、最終的にSJISで出力したいとき、いちいちバッファ内で出力、
入力、内部エンコードを想定して変換かけるのが(設定含め)面倒
てのが本音じゃないのかな。SJISは案外動いてしまうもので、

>そのまま設置して動作確認をすると文字化けします

というほうが少数派じゃないかと思う。
何で文字化けするんだろう?すくなくとも ParseError は出ていないのに。
489の書き込みだと、DATが化けてるのか、スクリプトの
出力がブラウザで化けてるのかよく分からないし、
動作って何のことなのかも不明なので想像するしかないけど、

DATじゃなくてスクリプトの文字コードの話ではあるらしいものの、
SJISでブラウザに出力されてるということなら化けるとは思えない。
「現在EUCで保存してる」ことが、落としたスクリプトに影響を与え
ることは物理的にあり得ないので、なんか ini をいじって強制的に
EUCで出力する結果、head 要素の Shift_JIS 指定とバッティング
して化けてるとか、そういうことかな。

だとすると、どの文字コードがベターかというのはこの場合問題外で、
ベターというのを文字化けしない=汎用性と考えるなら、文字コード
以前に、どの設定が汎用性に富むか、とまずもって問いを立てておい
たほうが適切なのではないかと。
0508nobodyさん03/06/08 00:26ID:???
国際化版PHPでjcode.phpを使い。
0509nobodyさん03/06/08 00:34ID:???
>EUC-JPとかUTFよりも「Shift_JIS」のほうが名前がクールだし。
俺には全部似たようなものに見える。。
0510nobodyさん03/06/08 00:38ID:g6xWac4n
あるHTMLタグを含んだ文字列の置換でタグを以外を
置換したいのですけどなにかいい関数とかないですか?
タグを除去する関数はあったのですが、それだと
タグ情報が失われてしまうので・・・
0511nobodyさん03/06/08 00:43ID:???
簡単なコンテンツフィルタを作ろうとしていますが

$inq = array('ち●ぽ','チ●ポ','チ●ポ','ま●こ','マ●コ','マ●コ','●す','●した','●イプ','●せる','爆●','放●');

foreach($inq as $yu){

$rps = ereg_replace($yu,'', $sub[3]);

$sub[3] = $rps;

}

を実行すると
$rps = ereg_replace($yu,'', $sub[3]);
の所で
Warning: REG_EMPTY: in
がでます。構文に問題あるんでしょうか。さっぱりわからないんでお助け
ください。よろしくお願いします
0512nobodyさん03/06/08 00:49ID:???
バイナリを出力しつつ文字データをエンコードってな時に
SJISだと手が抜ける。
051351103/06/08 00:50ID:56soIgor
●の中身は何かとかはきにしないでください
0514nobodyさん03/06/08 00:50ID:???
ぱっと見コードに問題なさそうだし、SJIS絡みの問題じゃないかな。
051551103/06/08 00:54ID:???
文字コードは多分SJISのCRLFです。エディタを見ての判断ですが。
実行するマシンはWin98+AN HTTP、PHP4.2.3です。
0516nobodyさん03/06/08 01:03ID:???
>510
preg_replace() じゃだめなん?

>511
変数名は分かりやすい物を使ってください。
見たことないエラーなので、その文だけだとよく分からないのですが、
EMPTYというからには $yu か $sub[3] が空なのかもしれません。
echo ' yu= ' . $yu . ' <br> ' . ' sub[3] = ' . $sub[3] . ' <br> ' ; とやって
変数が空でないか確認してみてはどうでしょうか。

変数が空ではない場合、文字コードの問題が考えられます。
タイムリーですね。
0517nobodyさん03/06/08 01:56ID:???
>502
それは良くやる>出力はSJIS
何故ならケータイなどでSJISしか読めない端末もあるから。
(あとMSのExcelはSJISのCSVじゃないと読めない。最近のは知らんが)

ならコードもSJISにすればと思うかもしれんが、どちらにしてもケータイの
SJISは特殊なため、ちょっとした変換が必要な点はパッチを当てて
SJIS対応させたPHPであっても変わらないので、SJISにする意味もない。

ただPHP4.3以降はパッチ不要できちんと設定すれば、コードはSJISで書いても
まあ問題ないので、その辺のケータイの特殊性を無視して"手抜き"するんだったら
SJISで書くのも悪くは無い。"手抜き"による弊害は認めた上でね。
0518nobodyさん03/06/08 02:34ID:???
zlibで圧縮されたHTMLファイルをgzinflateすると以下のようなエラーが出てしまいます。
Warning: gzinflate(): data error in C:\hoge.php on line hoge

# ソース
$gzdata = ヘッダを取り除いて本体だけを受信
$data = gzinflate($gzdata) // エラー発生

ちなみに一旦テンプファイルに保存してgzopenで読み込むときちんと解凍できます。
$fp = fopen("tmp.gz", "wb");
fwrite($fp, $gzdata);
fclose($fp);

$gzfp = gzopen("tmp.gz", "r");
while(!gzeof($gzfp))
$data .= gzread($gzfp, 600000);
gzclose($gzfp);

どこが間違っているのでしょうか?
051951803/06/08 02:38ID:???
書き忘れましたがバージョンは4.3.2です。
Windows2000上でCGIモードで動かしています。
052051103/06/08 03:15ID:???
みなさんレスありがとうございます。

最新Verにしたら(4.3?)少し変わるのでしょうか。
一度他の文字コードで保存してみます
■ このスレッドは過去ログ倉庫に格納されています