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

【PHP】下らねぇ質問はここに書き込みやがれpart15

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2006/01/14(土) 20:06:11ID:???
PHPに関するくだらねぇ質問用スレです。
ここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。
次スレは流れを見て970/980/990の誰かが建てれ

まず読め【PHP マニュアル】
http://www.php.net/manual/ja/

本スレ【PHP】質問スレッドpart32【php】
http://pc8.2ch.net/test/read.cgi/php/1136276300/
前スレ【PHP】下らねぇ質問はここに書き込みやがれpart14
http://pc8.2ch.net/test/read.cgi/php/1134868212/

過去スレは>>2
FAQは>>3
0175nobodyさん2006/01/17(火) 19:51:22ID:???
ブログだろうね。その前にもっと簡単なのを作れないと無理だろうけど。
0176nobodyさん2006/01/17(火) 19:51:49ID:???
とりあえず勉強してから考えてみてはいかがでしょう。
0177nobodyさん2006/01/17(火) 20:16:03ID:???
>>172
そのPerlのCGIをPHPからsystemで呼び出せば?
0178nobodyさん2006/01/17(火) 23:16:30ID:klTcMYuU
PHPでクライアントから送られてきたデータが 半角の英数字と , と / のみか確かめるにはどうしたらいいのでしょうか?
0179nobodyさん2006/01/17(火) 23:26:47ID:???
正規表現一発
0180nobodyさん2006/01/17(火) 23:28:35ID:???
先に言っておこう、正規表現に関しては正規表現スレへ
0181nobodyさん2006/01/17(火) 23:58:58ID:xKRv/KZl
MySQLか、PostgeSQLどっちのほうを使ったほうが吉?

サーバーはXREA
0182nobodyさん2006/01/18(水) 00:03:10ID:zQtemvMy
PHP4.4.2-dev〜PHP4.4.2 Windows XP/Apache2.0.52〜Apache2.0.55のどの組み合わせでも
$foo = file('http://example.com/');
と、HTTPプロトコルを使用するとクラッシュしてしまいます。

Windowsユーザーで同じ現象の方いらっしゃいますか?

本家のChangeLog、Fixed Bug #34359 で修正済となっており、
Linux版では問題ありませんでした。
当WindowsサーバーでもPHP4.3.11 では問題なく動作しています。

同じ現象の方がいらっしゃればバグレポートを出したいと思うのですが。
0183nobodyさん2006/01/18(水) 00:06:13ID:zQtemvMy
>181

Postgres をお勧めします。
0184nobodyさん2006/01/18(水) 00:08:53ID:???
>>182
同じこと内容を本スレでみた
0185nobodyさん2006/01/18(水) 00:13:20ID:zQtemvMy
>184
レスありがとうございます。
本スレ見落としてました。すみません。
バグのようですね…。報告&4.4.3待ちます。
01861842006/01/18(水) 00:19:59ID:???
俺の日本語システムにバグがorz
0187nobodyさん2006/01/18(水) 08:47:20ID:???
>>183
>>181じゃないですが面倒でなければ両者を比較したときにPostgresを選んだ理由っていうのを
教えてもらってもよろしいでしょうか?

俺はMySQLしか使ったことないので・・
0188nobodyさん2006/01/18(水) 09:29:55ID:???
>>163
voidみたいだ
0189nobodyさん2006/01/18(水) 09:31:51ID:???
>>174
ttp://www.sbcr.jp/books/products/detail.asp?sku=4797327073
0190nobodyさん2006/01/18(水) 10:09:56ID:???
ブログってXMLとかフィードバック・トラックバックとかややこしくない?
0191nobodyさん2006/01/18(水) 10:16:37ID:???
じゃあ掲示板
0192nobodyさん2006/01/18(水) 11:07:17ID:???
$file_nameにはファイル名称の変数が事前に定義してあります。
mbstring関数は有効になっています。


$file = fopen($file_name,"r");
$data_size = 0;
for ($line_num = 1 ; !feof($file) ; $line_num++) {
$line = fgets($file);
$line_size = mb_strlen($line);
$data_size = $data_size + $line_size;
if ($data_size >= 512 * $page_num - 1) {
if ($data_size < 512 * $page_num) {
$line = str_replace ("<","<",$line);
$line = str_replace (">",">",$line);
echo $line;
}
}
}

と書いて実行したものの、何も表示されません…
どうすれば現状を回避できるのでしょうか…orz
0193nobodyさん2006/01/18(水) 11:19:15ID:???
>>192
お前のやりたいのはひょっとして
$data_size >= 512 * ($page_num - 1)
じゃないのか
0194nobodyさん2006/01/18(水) 11:21:47ID:???
>>192
>どうすれば現状を回避できるのでしょうか…orz
小学校の算数からやり直す
0195nobodyさん2006/01/18(水) 11:30:20ID:???
>>193
('A`)
すいませんでした
01961832006/01/18(水) 14:07:51ID:zQtemvMy
>>187
Mysql4.1からはUnicodeがサポートされていますが、それ以前はUnicodeがサポートされていませんでした。
SJIS、EUCでは必ずどこかで文字化けが起きる(5C文字や第2水準漢字など)ので
私がコーディングする際は内部をUTF-8で統一するようにしています。

また、PostgreSQLではplpgsqlでストアドが作れますので、
プログラムの質を上げることができます。

PostgreSQLはMySQLよりもUnicodeに強い。
複雑な処理をストアドで行える。

が選択の理由です。
バグをあまり気にしない環境・掲示板程度でしたらMySQLの方が早いですけど…。
0197nobodyさん2006/01/18(水) 14:19:16ID:???
内部エンコーディングの今の流行はUTF-8ですか?
01981962006/01/18(水) 14:28:54ID:zQtemvMy
>>197
文字化けを完全解消するならば全面Unicode
http://www.atmarkit.co.jp/fxml/rensai/xmlwomanabou06/learning-xml06.html
ですが、そうもいかない現状ですので、
私は 内部UTF-8 -> SJISやEUC出力 にしています。
これでDBへのINSERTの段階で失敗するということが少なくなります。
0199nobodyさん2006/01/18(水) 14:36:19ID:???
はやりかどうかはわからんけど
おれの周りは全部UTF-8だな。文字に関するトラブルは特にない希ガス

PostgreSQLは8.1になってMySQLレベルにまで速くなってきたな。
複雑なクエリなんかはストアド使ったりして構造をわかりやすくしたりできるな

あと、

>>バグをあまり気にしない環境・掲示板程度でしたらMySQLの方が早いですけど…。

「速い」の間違いな。国語勉強しとけよ。韓国人に笑われるから(何
0200nobodyさん2006/01/18(水) 14:41:01ID:???
2chの書き込みなんて脊髄反射でやるんだから
いちいち誤変換なんて確認したことねーぞ
02011972006/01/18(水) 14:45:27ID:???
お返事ありがとうございます。
いままで数年、内部エンコーディングはEUC-JPでしたけどUTF-8に乗り換えることにします。
現在、日、中、英の3ヶ国語に対応しなければならない案件を抱えてまして
出力はUTF-8、DBもUTF-8、内部はEUC-JPというへんな状況で苦しんでました。
これで楽になれます。
0202nobodyさん2006/01/18(水) 14:51:23ID:???
なんで何処の下らない質問系スレは住人が荒いの
ウザい回答するぐらいなら答えんなボケ
0203nobodyさん2006/01/18(水) 14:58:08ID:???
あっかんべーだ ;-P
0204nobodyさん2006/01/18(水) 20:00:42ID:???
ttp://www.asial.co.jp/products/ioncube/
ここの販売しているソフトがPHPスクリプトの暗号化で有名ですが、
日本語でここより安くて単純に暗号化出来るソフトってないでしょうか?
0205nobodyさん2006/01/18(水) 20:38:43ID:???
>>204
"日本語で"つうのが、日本語も対応しているという意味なら無料のものもあるが、
日本語で手取り足取り導入解説からサポートまであるという意味のものなら、それは無い。
日本人が作ったBコードコンパイラはあったと思うけどね。
0206nobodyさん2006/01/18(水) 21:04:14ID:???
Zend Encoderは詐欺価格だからなぁ。
安いのは英語で良ければSource Guardianかな。
0207nobodyさん2006/01/18(水) 21:06:39ID:l30CFxYx
php初心者です、おしえてください。
他のファイルにstaticメソッドを宣言して、インクルードするとエラーが起こるのですが、
なぜでしょうか、staticじゃないのは普通に呼び出せるのですが、
宜しくお願いします。(_ _)
0208nobodyさん2006/01/18(水) 21:18:00ID:???
>>207
うちではエラーにならないから、エラーが発生する最低限のコードくらい書いてくれ
0209nobodyさん2006/01/18(水) 21:38:28ID:???
>>207
エラーメッセージ読め
02102072006/01/18(水) 21:52:41ID:l30CFxYx
>>208,209
すみません、ソース、本など会社で、
大体下のような感じだと思います。
うろ覚えで書いてるので間違ってるかもしれませんが、


<?
require('staticTest.php');

$data = ->testfunction();
print $data;
?>

<?
class staticTest{

public static function testfunction(){
$data="1";
return $data;
}

}
?>
0211nobodyさん2006/01/18(水) 23:12:39ID:zipv+nb6
locationで一回飛ばして、HTTP REFERERをとると、飛ばす前のURLになりますよね。imodeの場合うまくいかないのですが。ezwebだと普通に$ SERVER[HTTP REFERER]でとれるのですが
0212nobodyさん2006/01/18(水) 23:40:56ID:???
そうですか。
ところでスレタイは読まれましたでしょうか。
0213nobodyさん2006/01/19(木) 00:28:06ID:???
>>211
だから?
0214nobodyさん2006/01/19(木) 01:35:01ID:???
>>207
> $data = ->testfunction();
こんなの Syntax Error だ、アフォ。
マニュアルを全然見てないだろ。
いますぐ >>1 からマニュアルを参照してくるんだな。
0215nobodyさん2006/01/19(木) 03:12:55ID:wmue64mu
文字コードEUC-JPで
下記のソースを書き、ブラウザで見てみました。

echo("<html xmlns=\"http://www.w3.org/1999/xhtml\">");
echo("<head>");
echo("<meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\"/>");
echo("</head>");
echo("<body>");
echo("テスト");
echo("</body>");
echo("</html>");

すると
ブラウザがUTF-8ではなく、
EUC-JPでHTMLを読み込んでしまうのですが、
どうすれば解消できるでしょうか?
0216nobodyさん2006/01/19(木) 03:30:10ID:???
>>215
Webサーバの適正な設定。
0217nobodyさん2006/01/19(木) 03:37:08ID:???
テストのとこをUTF-8に変換して出力すればいいんじゃにの?
0218nobodyさん2006/01/19(木) 03:47:05ID:???
mb_http_output("UTF-8")では?
0219nobodyさん2006/01/19(木) 04:30:52ID:???
>>215
釣り?
0220nobodyさん2006/01/19(木) 04:54:25ID:???
>>216
PHP.iniは

default_charsetEUC-JP

mbstring.detect_order      auto
mbstring.encoding_translation Off
mbstring.func_overload     0
mbstring.http_input        auto
mbstring.http_output       pass
mbstring.internal_encoding   no value
mbstring.language        Japanese
mbstring.substitute_character no value

という感じになってますが、
これはちょっとワケ有りで変更でないのです。
そのためソース側で対処しないといけません。

>>217
echo( mb_convert_encoding("テスト", "UTF-8", "EUC-JP"));
とやると、「テスト」だけはUTF-8に変換されますが、
ブラウザの読み込みモードがEUC-JPで読み込んでしまうのです。

>>218
default_charsetがEUC-JPになっているのが
原因だと思い、同じようにやってみたのですが、
どうしてもブラウザがEUC-JPで読み込んでしまいます。


0221nobodyさん2006/01/19(木) 04:56:12ID:???
>>220
php.iniじゃなくて「ウェブサーバの設定」だぞ
0222nobodyさん2006/01/19(木) 05:18:30ID:???
ttp://httpd.apache.org/docs/2.0/mod/core.html
ttp://httpd.apache.org/docs/1.3/mod/core.html
02232202006/01/19(木) 05:21:24ID:???
>>221
おっと、ウェブサーバーの設定でしたか、
ウェブサーバーの設定は・・
・・不明です。。。お恥ずかしいですが。。
唯一わかっているのはApache2系ということだけです。
PHPの関数で対応できると思っていたのですが
あまかったですか??
0224nobodyさん2006/01/19(木) 06:48:14ID:???
Apacheのhttpd.confを見直してみな。
あとxhtmlで書くなら、ちゃんとDTDで定義しとこうな。
0225nobodyさん2006/01/19(木) 07:21:41ID:???
>>215
<meta>タグなんかで指定しないでちゃんとheader()で指定しろってこと
ブラウザはresponse headerの方を優先するからね
0226nobodyさん2006/01/19(木) 17:15:52ID:???
配列をsubmitで飛ばして受け取りたいのですがどうすればよいのでしょうか?
一要素ずつhiddenで記述してやるしかないのでしょうか?
簡単な方法があればよろしくお願いします。
0227nobodyさん2006/01/19(木) 17:19:18ID:???
カンマ区切りの文字列にして飛ばして、アプリ側で配列を作るってのはだめ?よくやるんだけど
0228nobodyさん2006/01/19(木) 17:24:06ID:???
>>226
session使う
serializeする
0229nobodyさん2006/01/19(木) 18:02:59ID:???
俺は普通にforで数の分だけhiddenを生成しちゃうかな。
それで困るほどでかいデータならそもそもsubmitで飛ばさない。
02302262006/01/19(木) 18:43:27ID:???
>>227-229
なるほど、十人十色なんですね。
参考になりました。ありがとうございました。
0231nobodyさん2006/01/19(木) 20:47:26ID:???
>>230
十人十色だが、セッションを使うのがベター。
hiddenで持ち回すと汚染される可能性が出てくる。
0232nobodyさん2006/01/19(木) 21:50:34ID:???
セッションだって汚染される可能性あるぞ。
ユーザーのクッキーから情報を取得してる場合だけど。
0233nobodyさん2006/01/19(木) 22:33:15ID:???
何でもセッションに頼っちゃうと今度はウインドウを2枚出したときとかに
ややこしい状態になることがあるんで、安易にそれをベターというのもどうかと。
「そのユーザにとって最新の状態は常にどの画面でも同じもの」ってデータ以外は
セッションに入れるべきじゃないと思うんだけど?
0234nobodyさん2006/01/20(金) 03:43:15ID:???
"A B"

「A」と「B」の間にあるスペースを
1個のスペースに置き換える場合、
for(),while()を使わずに処理する方法ってありますか?
0235nobodyさん2006/01/20(金) 03:55:25ID:???
あります
02362342006/01/20(金) 04:09:04ID:???
>>235
あるの?
0237nobodyさん2006/01/20(金) 04:28:24ID:???
>>236
あるってば。
0238nobodyさん2006/01/20(金) 05:18:21ID:???
>>237
どうやんの?
0239nobodyさん2006/01/20(金) 05:27:20ID:???
php5をsuse linuxにインストールする方法を教えてください
0240nobodyさん2006/01/20(金) 05:35:41ID:???
スレ違い
0241nobodyさん2006/01/20(金) 07:35:50ID:???
>>238
preg_replace("/( | )+/", "1", "A        B")
0242nobodyさん2006/01/20(金) 07:36:57ID:???
"1"ってなんだ(´・ω・`)
preg_replace("/( | )+/", " ", "A        B")
0243nobodyさん2006/01/20(金) 08:36:42ID:kKXqMXNs
全然わからない!教えてください
仮に○○.phpってファイルをアップロードしたのだけど、
実行してみると「ページを表示できません」ってなってしまう。
何かほかにやらないといけないの?
助けてください。
0244nobodyさん2006/01/20(金) 08:40:54ID:???
>>243
そもそもphpが使えるサーバーにアップロードしてるのか?
0245軟式PHP2006/01/20(金) 09:14:07ID:???
>>243
近年稀に見る馬鹿だな。
0246nobodyさん2006/01/20(金) 09:34:48ID:???
>>244
いやいや、PHP云々以前にアップロード出来ているのかが怪しい
0247nobodyさん2006/01/20(金) 10:00:55ID:???
たまたまアップロードして確認しようとした時、
ネットワークがきれてたんじゃないの?
phpが使えない鯖なら、phpの中身が表示されるか
ダウンロードマネージャが起動するはず。
404なら「ページが見つかりません」と出るはず。
phpは特に鯖側でパーミッションとかいじったりしなくても使える。
(ログファイルとかは別だけど)
0248nobodyさん2006/01/20(金) 10:03:25ID:???
>>247
さくらとか、phpがCGIでしか動かないってパターンもあるね
0249nobodyさん2006/01/20(金) 10:13:04ID:???
何にせよ、エスパーキボンて事だな
0250nobodyさん2006/01/20(金) 10:17:36ID:VgY7exIA
ウィンドウズのローカルでphpをブラウザで見たいんですがこれはphpをインスコする以外に
サーバーソフトもインスコしないとみれるようになりませんか?
0251nobodyさん2006/01/20(金) 10:26:47ID:???
>>250
もちろんです。
ただ、結果だけみたいならコマンドラインでxxxx.htmlに
リダイレクトすれば見られます。
0252nobodyさん2006/01/20(金) 11:04:18ID:???
鯖PC経由の書き込みをしない設定にすると、公式に直接飛ばす事になってしまいます。
公式に飛ばさずに直接値を渡すにはどうすれば良いのでしょうか。
0253nobodyさん2006/01/20(金) 11:05:12ID:???
あ、p2スレと勘違いした_| ̄|○
0254nobodyさん2006/01/20(金) 11:06:08ID:???
>>250
正確な用語の使い方ではないので、YesともNoとも回答ができる。
でも多分Yesだと思われ。
0255nobodyさん2006/01/20(金) 11:06:09ID:???
>>252
鯖PCって何? 公式って何? 値って何?
前提がすっぽ抜けすぎてて何が聞きたいのかまったくわかりません。
0256nobodyさん2006/01/20(金) 11:06:53ID:???
誤爆かよ!
02572542006/01/20(金) 11:08:52ID:???
ごめん。多分「なりません」が正解ということ。
0258nobodyさん2006/01/20(金) 14:14:53ID:+oUGIFYt
function()文で数値を戻り値として返す場合、
"で囲ってあがないといけないんですよね?

function(){
return "0";
}

みたいに。
0259nobodyさん2006/01/20(金) 14:20:31ID:???
>>258
だから何?
0260nobodyさん2006/01/20(金) 14:50:22ID:???
>>259
あってんの?あってないの?
0261nobodyさん2006/01/20(金) 14:57:20ID:???
>>259
スレタイ嫁
0262nobodyさん2006/01/20(金) 15:13:24ID:???
>>258
数字じゃなくて数値なんだろ?なら括る必要はない。
裸で気になるんだったら()で括っとけ
0263nobodyさん2006/01/20(金) 16:06:28ID:utcSO+tE
PHP 4.4.2で eaccelerator使えてます?FreeBSDなんですが。
0264nobodyさん2006/01/20(金) 17:19:01ID:???
>>258
どっちでも大して変わらない
0265nobodyさん2006/01/20(金) 17:30:09ID:???
>>258>>264
そのまま戻り値をprintしたときに0って出るか何も出ないかの差はあるかな。
0266nobodyさん2006/01/20(金) 17:56:01ID:???
>>265
どっちでも出る。
0267nobodyさん2006/01/20(金) 18:15:36ID:???
>>264
型を含んだ比較の結果がかわったりする
仕様上の型でかえすべき
0268nobodyさん2006/01/20(金) 19:24:34ID:???
質問です。
<html>
<body>
<?php
$page = @readfile("http://www.yahoo.co.jp");
?>
</body>
</html>
と言うような感じで他サイトを読み込んだのですが
読み込んだサイトにあるリンクのURLが自分のドメインを
含んでしまい、リンク先に正常に飛べません。
リンクのURLが読み込んだファイルと同様のドメイン
上の例ですとhttp://yahoo.co.jp/hogehoge.htmにするにはどうすればよいのでしょうか?
今の状態ですとhttp://hogehoge.jp/hogehoge.htmとなってしまいます。

よろしくお願いします。
0269nobodyさん2006/01/20(金) 19:29:21ID:???
>>268
preg_replaceで相対パスを絶対に置き換えれば言い。
02702682006/01/20(金) 19:42:50ID:???
>>269

preg_replaceを使用するということは
fileで一度ソースを読み込んで置換してという
順序になると思うのですが

readfileでやることは不可能なのでしょうか?

get? post? あたりを駆使してムリでしょうか?
0271nobodyさん2006/01/20(金) 19:44:05ID:???
>>270
むり。
0272nobodyさん2006/01/20(金) 19:44:50ID:???
>>270
<base href="〜">
02732682006/01/20(金) 19:52:51ID:???
すげえええええええええええ
来ました出来ました。有難うございます。

>>272様感謝します。

>>269様 >>271様
ご意見有難うございました。
0274nobodyさん2006/01/20(金) 20:01:45ID:???
ttp://pear.php.net/manual/ja/package.http.http-download.php
これとsetGzip()で特定のディレクトリを圧縮しつつダウンロード、
ということをしたいのですが、以下のどこがおかしいか
教えてくださいませ。
疑問点はまずsetFile()がディレクトリを指定するのが不可能っぽいですが、
解決方法はないか、setFileをファイルで試しても
setGzipの部分が上手く動作していないようです、何か間違っているでしょうか?
お願いしますm(_ _)m

<?php
require_once("HTTP/Download.php");
$dl = &new HTTP_Download();
$dl->setFile($directory);
$dl->setGzip(TRUE);
$dl->setContentType('application/x-gzip');
$dl->setContentDisposition(HTTP_DOWNLOAD_ATTACHMENT, 'latest.tgz');
$dl->send();
?>
■ このスレッドは過去ログ倉庫に格納されています