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

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

レス数が950を超えています。1000を超えると書き込みができなくなります。
0001nobodyさん2006/07/07(金) 14:54:53ID:KnVubDvE
PHPに関するくだらねぇ質問用スレです。
ここならお前の下らない質問に回答があるかも知れません。

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

過去スレは>>2
0874nobodyさん2006/07/21(金) 09:04:48ID:???
>>873
2002年の本か…もう情報が古いよーな気がするが。
0875nobodyさん2006/07/21(金) 09:05:58ID:iPhYBOeT
>874さん

たしかに。。。phpのバージョンが4の時の話なので。。。。

パッケージ自体がもうリリースされていないんでしょうか
0876nobodyさん2006/07/21(金) 09:10:02ID:???
っていうか、XSLを使うわけじゃなかったらexpatなんて要らないと思うんだけど。
0877nobodyさん2006/07/21(金) 09:18:41ID:iPhYBOeT
>876さん

なんだか、Authクラスを使うには必要っぽいような書き方されてるんですよねぇ
0878nobodyさん2006/07/21(金) 09:30:43ID:???
くだる話はやめてください
0879nobodyさん2006/07/21(金) 09:37:00ID:???
>>877
とりあえずその本は捨てちゃえば?
0880nobodyさん2006/07/21(金) 10:06:48ID:5NMNDw00
>861
ありがとうございます。凄くわかりやすいです。助かりました。
質問ばかりで申し訳ないのですが、
インクルードしたいファイルが同一サーバではない場合(サーバのパスを指定できない場合)はどのようにしたらいいでしょうか?
前述のように拡張子をphp以外のもの(webサーバを経由しても内容が変化しないもの)にするのが一般的でしょうか?
08818602006/07/21(金) 11:30:17ID:???
mb_ereg_match使ってました
で、やっぱりマッチしない
mb_eregならマッチしてました

mb_regex_encoding('sjis');
$str = "こんにちは山田太郎です";
$pattern = "(山田|田中)";

if (mb_ereg($pattern, $str)) echo "mb_eregマッチしました";
else if (mb_ereg_match($pattern, $str)) echo "mb_ereg_matchマッチしました";
else echo "no match";
08828602006/07/21(金) 11:32:37ID:???

すいません
テストコード整形したので分岐がおかしい
両方チェックするようにしてもmb_ereg_matchはマッチしない
PHP4.3系
0883nobodyさん2006/07/21(金) 11:39:59ID:???
他サーバのphpファイルをincludeってことは
allow_url_fopenが有効ってことか、
他サーバのソースをそのまま実行するってのは、
きもちわるく思ってしまう
最も、他サーバが信頼できるサーバであるなら
そういう機能は積極的に使うのが賢いのだと思いつつ
ここぞという使いどころにめぐり合っていない
allow_url_fopen のステキな使い方ないかな?
0884nobodyさん2006/07/21(金) 11:44:06ID:???
>>880
まー、拡張子を変えちゃうか、あるいは.htaccessで拡張子に対するApacheの扱いを変えちゃうか、
あるいはラッパーのプログラムを経由してファイル内容をreadfile()とかで垂れ流させるか、ってとこじゃない?
0885nobodyさん2006/07/21(金) 14:41:49ID:???
フォームに入力された半角のバックスラッシュまたは円マークを
全角の¥に変換したいのですがうまくできません。
PHP Version 5.1.2です。

$a = "\2,000";
//$a = mb_ereg_replace("\","¥", $a); //エラー
//$a = mb_ereg_replace('\',"¥", $a); //エラー
//$a = mb_ereg_replace("\\","¥", $a); // ワーニング変換できず
//$a = mb_ereg_replace('\\',"¥", $a); // ワーニング変換できず

こんな感じです…。何かうまいやり方がないでしょうか?
0886nobodyさん2006/07/21(金) 14:45:03ID:???
str_replace
0887nobodyさん2006/07/21(金) 15:14:02ID:???
>>886
おおおおお・・・・・・・・
すんなりできました。この辺の似た機能だけど違う関数を
勉強しないとダメですね。886さんありがとうございました。助かりました。
0888nobodyさん2006/07/21(金) 15:15:36ID:???
覚えたての正規表現ってのはなぜかかっこつけて使いたがるからね。
str_replace は天才
0889nobodyさん2006/07/21(金) 16:28:20ID:???
>>887
文字コードがシフトジスだとstr_replaceじゃ駄目だけどね
0890nobodyさん2006/07/21(金) 16:51:58ID:???
マニュアルに内部コードとしてsjis使うのは薦めないってちゃんと書いてあるんだから、
おとなしくUTF-8でも使ってろってもんだ。
0891nobodyさん2006/07/21(金) 17:43:50ID:5NMNDw00
mysqlに接続するために必要な、DBの名前とかURL、パスワード、ユーザー名を
config.phpというファイルに書いて、必要なときにincludeしているのですが、
スクリプト中にパスワードとかを直接記述しているのは、やっぱりセキュリティー的に危険なのでしょうか?
また、こういう場合は一般的にどうやって対処しているのでしょうか?
0892nobodyさん2006/07/21(金) 17:46:37ID:???
>>891
その、config.php がドキュメントルートの下にないのなら、別に問題ない
0893nobodyさん2006/07/21(金) 17:48:01ID:???
>>891
Zend Guard
0894nobodyさん2006/07/21(金) 17:48:14ID:???
Perlの時は、Qとか駆使してSJISで書いてたな。
0895nobodyさん2006/07/21(金) 18:00:02ID:???
http://www.example.com/から、
http://hogehoge.com/へのリンクが貼られているかどうか
調べたいのですが、どうすれば良いのでしょうか?
ちなみに、http://www.example.com/は自分のサイトではないこと前提とします。
0896nobodyさん2006/07/21(金) 18:11:32ID:???
www.example.comから飛んできた人のリファラーをチェックすればいい
0897nobodyさん2006/07/21(金) 18:12:48ID:???
>>895
能動的にはwww.example.comを走査してリンクを探す。
受動的にはhogehoge.comにアクセス解析を設置してリファラを見る。
0898nobodyさん2006/07/21(金) 18:14:46ID:b+2L373x
名前の入力フォームでテキストに入力された漢字をもう一つのテキストにphpで
カタカナに変換するにはどうしたら良いでしょうか?ご教授お願いします
0899nobodyさん2006/07/21(金) 18:23:35ID:???
>>897
能動的にリンクを探したいのですが、
何か他のサイトを読み込む方法などあるのでしょうか?
0900nobodyさん2006/07/21(金) 18:36:31ID:???
>>899
ttp://www.mukom.netfirms.com/scripts/linkman.php
参考になるかもね
0901nobodyさん2006/07/21(金) 18:38:32ID:???
mb_send_mail()でメールを送信しました。
From:test@example.comで

From 【test@example.com (test@example.com)】

となるのですが、このFromに名前をつけれないのでしょうか?

たとえば
From 【EXAMPLEからメールです。 (test@example.com)】

このような感じでしたいのですが、どうすれば良いのでしょう。
どなたか教えていただけませんか?
0902nobodyさん2006/07/21(金) 18:42:33ID:???
>>901
additional_headers に所望の From ヘッダを挿入
http://jp.php.net/manual/ja/function.mb-send-mail.php
mime_encode とか忘れずに。アドレスを囲むのは <> で。
0903nobodyさん2006/07/21(金) 18:46:14ID:???
>>902
有難う御座います。
タイトル(?)の部分が文字化けしてしまったのですが、
mime_encodeというのは何でしょうか?
ググってみたのですが、それらしいサイトが見当たらなくて
0904nobodyさん2006/07/21(金) 18:47:58ID:???
>>903
3分ググっただけかよ と。
0905nobodyさん2006/07/21(金) 18:49:09ID:???
>>903
http://www.google.com/search?hl=ja&q=mime_encode&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=
それらしいサイトだらけに見えるんだけどー
0906nobodyさん2006/07/21(金) 18:49:17ID:???
>>903
最近 mime_encode せずにメールのヘッダ部分が化けるって質問多いな。
なんだかなぁ。
0907nobodyさん2006/07/21(金) 18:50:01ID:???
mb_encode_mimeheaderですね。
今見つけました。
0908nobodyさん2006/07/21(金) 19:01:03ID:???
SMTPサーバーを立ち上げたいのですが、
何か参考になるサイトがあれば教えてください。
0909nobodyさん2006/07/21(金) 19:15:24ID:???
PHPでSMTPサーバを書くっていうことか?
0910nobodyさん2006/07/21(金) 19:15:44ID:???
>>909
いや、自分のローカルサーバーでメールが送信できるようにしたいんです
0911nobodyさん2006/07/21(金) 19:18:24ID:???
それ、phpの質問?
0912nobodyさん2006/07/21(金) 19:21:06ID:???
>>911
すみませ4ん、どこで質問していいのか
0913nobodyさん2006/07/21(金) 19:21:24ID:???
>>908
>>634 だろ?
こんなところで聞かないと駄目なようなら SMTP サーバなんて立ち上げるな。
0914nobodyさん2006/07/21(金) 19:27:27ID:???
>>913
すみませんが別人です。
0915nobodyさん2006/07/21(金) 19:31:58ID:???
>>914
どっちでもいい。立ち上げるな。
0916nobodyさん2006/07/21(金) 19:32:25ID:???
>>915
立ち上げてはいけないのですか・・・。


・・・あれ?
0917nobodyさん2006/07/21(金) 20:11:14ID:???
PHPってサーバーにウプしたらソースがばれますか?
0918nobodyさん2006/07/21(金) 20:19:23ID:???
サーバの設定による
09199172006/07/21(金) 20:28:16ID:???
>>918
必死につくったのがバレるのはいやだなとおもったんですが、
サーバーにどんな設定をすれば盗まれないのでしょうか?
0920nobodyさん2006/07/21(金) 20:40:06ID:???
>>919
ロジックを記述した部分をドキュメントルートの下に置かなければ
よほどのことがない限り、ソースは流出しないよ
0921nobodyさん2006/07/21(金) 20:47:25ID:???
>>920

ありがとうございます。ちょっと勉強してみます。
0922nobodyさん2006/07/21(金) 21:22:58ID:5NMNDw00
>892
>みなさん

パスワードなどが書かれたファイルを、ドキュメントルートより下にしか置けない場合、対処法はありますか?

そもそも、ドキュメントルート以下に置いたPHPファイルの中身を見るのは、結構簡単なのでしょうか?
0923nobodyさん2006/07/21(金) 21:23:48ID:???
その程度の知識で作ったコードなんて、誰も見たいとは思わんだろう
参考になるコードなら、山ほど公開されてるしな
0924nobodyさん2006/07/21(金) 22:01:11ID:???
ajax の使いやすいグラフィックライブラリってありますか?
09259242006/07/21(金) 22:02:12ID:???
↓こういうのが出来るやつ
http://www.nextapp.com/platform/echo2/echo/demo/
0926nobodyさん2006/07/21(金) 22:34:26ID:???
system()を利用してシェルをコマンドを送った場合に、
ブラウザを閉じたり、セッションが終了すると
勝手に送ったジョブが終了してしまいます。

ブラウザを閉じたりしても、
ジョブが残るにはどうすればいいんでしょ??

環境は
FedoraCore 5
PHP 5
Apache 2
です。
0927nobodyさん2006/07/21(金) 22:46:08ID:???
>>898
漢字の正確な読みなんて人間にだって分からないんだからプログラムじゃ不可能
0928nobodyさん2006/07/21(金) 22:46:38ID:???
>>924
PHPじゃないだろそれ
0929nobodyさん2006/07/21(金) 22:49:37ID:???
>>922
拡張子またはパーミッションの変更、あるいは特定のディレクトリに入れた上で
そのディレクトリに対して全IP制限やBASIC認証を施すなど。
0930nobodyさん2006/07/21(金) 23:40:53ID:???
header('Content-type: application/xml; charset=utf-8');

$rdfData = simplexml_load_file('new.rdf');
$rdfData->channel->items->Seq->addChild('li', 'testurl', 'rdf');
echo $rdfData->asXML();

このコード実行するとApacheが死ぬんだが・・・・・
0931nobodyさん2006/07/22(土) 00:02:32ID:???
>>930
サーバモジュールとしてPHPを入れてるなら、
PHPとサーバ(Apache)は一連托生。
PHPが落ちるような時にはApacheも引きずられる。
0932nobodyさん2006/07/22(土) 11:39:11ID:6iz1vYAq
カウンタを作るためテキストファイルの読み書きをしているのですが、ごくたまにファイル内容が壊れてしまうときがあり悩んでおります。
コードは
$fp = fopen($count_file,'r+');
if (flock($fp, LOCK_EX)){
$count = trim(fgets($fp));
if (empty($count)) $count = 0;
$count++;
ftruncate($fp, 0);
fseek($fp, 0);
fputs($fp, $count);
}
fclose($fp);

flockでロックしてるので、ftruncateでファイル内容をクリアしても他から妨害されないと思ってるのですが…
お知恵をいただきたく。
0933nobodyさん2006/07/22(土) 12:30:20ID:???
>>932
俺は書き込んでから丸める主義
fputs($fp, $count);
ftruncate($fp, ftell($fp));
ファイルが空になる瞬間がないと思ってるんだけど
0934nobodyさん2006/07/22(土) 12:42:04ID:QMrS4QvA
URLを指定してtitleを取得したいんですけど、
良い方法ありませんか?

XMLパーサーでなんとか、文字列にして無理やり、正規表現でなんとか、
頭の悪い私にはどれも難しくて、スマートな方法はありませんか?
お願いします。

0935nobodyさん2006/07/22(土) 12:46:35ID:???
>>934 手動でやれば。
0936nobodyさん2006/07/22(土) 12:51:37ID:???
>>934
file_get_contents ()で開き、正規表現でマッチさせればいいやん。
09379342006/07/22(土) 13:05:30ID:QMrS4QvA
preg_split ですよね?
たぶん正規表現の書き方がおかしくて、出来ませんでした。
正規表現、勉強してきます。
0938nobodyさん2006/07/22(土) 13:08:47ID:???
PHP4でこれを使ってftp_chmodを実現してるんですが、
指定ディレクトリ以下のファイル全てのパーミッションを変更、
またはワイルドカードでの指定を可能にすることはできないでしょうか?
あるディレクトリ内のファイルのパーミッションをphpからftp関数経由で
全て変更したいのですが、数が膨大なため、苦労しています。

<?php
if (!function_exists('ftp_chmod')) {
function ftp_chmod($ftp_stream, $mode, $filename)
{
return ftp_site($ftp_stream, sprintf('CHMOD %o %s', $mode, $filename));
}
}
?>
0939nobodyさん2006/07/22(土) 13:09:04ID:???
split?
0940nobodyさん2006/07/22(土) 13:10:43ID:6iz1vYAq
>>933
おお、なるほど!
参考にさせていただきます。
09419342006/07/22(土) 13:15:54ID:QMrS4QvA
matchですね、、、、、
splitでやってました。
それにしても正規表現、苦手ッス
0942nobodyさん2006/07/22(土) 13:17:48ID:???
>>938
普通に他のFTPクライアントがやってるように
一覧を取得して(必要なら再帰)、各々にchmodを掛ける。
0943nobodyさん2006/07/22(土) 13:36:41ID:???
while で配列の要素数だけ繰り返し、という場合、
$i = 0;
while($i < count($array)){

$i = $i + 1;
}

としてますがもっと簡単なコーディング教えてくださいませ
0944nobodyさん2006/07/22(土) 13:44:06ID:???
>>943
foreach($array as $value)

foreach($array as $key => $value)
0945nobodyさん2006/07/22(土) 14:16:42ID:wSNHExxb
ああああ
0946nobodyさん2006/07/22(土) 14:45:14ID:???
現在のURLを取得するにはどうすればいいですか?
0947nobodyさん2006/07/22(土) 14:55:26ID:???
$host = $SERVER['HTTP_HOST'];
$req_uri = $SERVER['REQUEST_URI'];
$scr_name = $SERVER['SCRIPT_NAME'];
$php_self = $SERVER['PHP_SELF'];

// 1
$url1 = $host . $req_uri;
// 2
$url2 = $host . $scr_name;
// 3
$url3 = $host . $php_selfi;

ケースバイケースで好きなのを選べ
0948nobodyさん2006/07/22(土) 15:00:05ID:???
>>947
ありがとうございます!
0949nobodyさん2006/07/22(土) 15:33:52ID:???
phpのPCREパターン修正子で
「デフォルトで、PCREは検索対象文字列を(実際には複数行からなる 場合でも)単一の行からなるとして処理します。 」
の'm (PCRE_MULTILINE)'の意味が分かりません。
0950nobodyさん2006/07/22(土) 15:40:13ID:kdb16aHf
漢字などの文字列を数字に変換するような関数ってないですか?
0951nobodyさん2006/07/22(土) 15:46:36ID:LAiwhQ0T
>>949
文字列の途中に改行コードがあっても、複数行とは認識しないってこと

"bar\nfoo\n"
こんな場合の文字列のこと
09529492006/07/22(土) 16:45:47ID:???
>>951
m有りでもmナシでも同じじゃないですか。
0953nobodyさん2006/07/22(土) 16:49:24ID:???
>>952
違う、mが付くと\nが末尾として扱われる
0954nobodyさん2006/07/22(土) 16:52:44ID:???
≪前の5件 |1| |2| |3| 次の5件 >>

こんな感じでページ送りしたいのですが、参考になるソースをおいてる
サイトありますか?
0955nobodyさん2006/07/22(土) 16:56:53ID:???
>>954
マルチは死ねばいいと思うよ
0956nobodyさん2006/07/22(土) 17:03:27ID:???
>>955

今生き返りました。教えてください。
0957nobodyさん2006/07/22(土) 17:05:03ID:???
その程度のアルゴリズムも考えられないならプログラム止めれば?
0958nobodyさん2006/07/22(土) 17:05:42ID:???
>>954
pearのpager
0959nobodyさん2006/07/22(土) 17:25:32ID:???
>>958
ttp://elf.no-ip.org/~elf/php/peardoc/ja/package.html.pager.html

ここを参考にして勉強してみます。 今はチンチンカンプンプンです Qrz

もう一回しんできます。 生き返ったらもう一回質問させてください。・

0960nobodyさん2006/07/22(土) 17:53:18ID:???
>>954
パラメータでページ番号を渡す
→ページ番号から表示範囲を計算する
→表示範囲の分だけHTMLを表示する

終わり
0961nobodyさん2006/07/22(土) 18:07:19ID:???
cron を使って PHP のプログラムを動かしたいのですが、
本来の php.ini の設定は mbstring.script_encoding = EUC-JP なのですが
cron で動かしたいプログラムが置かれているディレクトリに
.htaccess を置いて、UTF-8 で書いています。
コマンドラインから、この PHP を動かそうとすると、
どうやら文字コードが違うのでエラーが表示されます。
コマンドラインに文字コードを指定する、なんてのはできないでしょうか?
0962nobodyさん2006/07/22(土) 18:15:38ID:???
>>961
utf-8な設定のphp.iniを書いて、実行時に読み込ませる。

$ php -h

-c <path>|<file> Look for php.ini file in this directory
0963nobodyさん2006/07/22(土) 19:21:36ID:???
>>949
$text = "abc
123
def";
echo preg_match("/\A.*\Z/", $text)," <= /\A.*\Z/\n";
echo preg_match("/\A.*\Z/s", $text)," <= /\A.*\Z/s\n";
echo preg_match("/^\d/", $text)," <= /^\d/\n";
echo preg_match("/^\d/m", $text)," <= /^\d/m\n";
0964nobodyさん2006/07/22(土) 20:40:44ID:???
Windows2003 + Apache2 + PHP5 をインスコして動かそうとしてます。

WebサーバにIEで接続して下記のPHPファイルを見たら
「HTTP400 正しくない要求」と怒られました

<? phpinfo(); ?>

phpがうまく動いてないんだけど、httpd.confが悪いんかな?
0965nobodyさん2006/07/22(土) 20:55:49ID:???
>>961
.htaccessってのはApacheの設定。PHPもApacheモジュール版は
Apacheの一部分という形なので、それで設定が出来る。
PHPの設定は、基本はphp.iniの方でやるんだよ。
0966nobodyさん2006/07/22(土) 21:06:31ID:???
>>964
もちろんIISは動いてないよな?

拡張子の設定をApacheにちゃんとしてる?
0967nobodyさん2006/07/22(土) 23:52:08ID:???
>>966
IISは動いてない。ほかのhtmlも見れる

AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
Action application/x-httpd-php "c:/php/php-cgi.exe"

こんな感じで拡張子も設定してある

ほかのサイトを見てたら
LoadModule php5_module "c:/php/php5apache2.dll"
php-cgi.exe使わないでこうしろってのもあったけど、
なんかこれだとApache自体起動しないんだよね。

c:\php\php5apache2.dllはあるくせに
Syntax error on line 115 of C:/Program Files/Apache Software Foundation/Apache2.2/conf/httpd.conf: Cannot load C:/PHP/php5apache2.dll into server
と怒られるんだよね。PHPが設定できてないのかな?
0968nobodyさん2006/07/23(日) 00:02:14ID:???
php4.3にて検索用の管理用データベースを作成しています。
検索時にはクエリーに日本語を含めることもあるのですが、
そのときに「ー」が入るとREG_EBRACKというエラーが返ってきます。

調べてみたところJIS特有?のエラーで別の文字コードで回避出来るらしいのですが、
システムの都合上JISで構築する必要があります。

この場合「ー」を含んだ文字のエラーを回避する方法はありますでしょうか。

よろしくお願いします。
09699682006/07/23(日) 00:04:05ID:???
すみません、補足です。
具体的には、

if( ereg($target, "探してるものー") ){ echo "HIT"; }

のようにereg系統の関数で上記のエラーが発生しました。
試しにmb_eregを用いてみましたが同様にエラーが発生しました。
0970nobodyさん2006/07/23(日) 00:16:40ID:TM25KdOC
MagpieRSS【http://www.hyuki.com/yukiwiki/wiki.cgi?MagpieRSS

これを利用して仲間内で必要な情報をまとめたサイトを作ろうと考えました。
それで、実際にこれを導入してみたところ
2バイト文字が ? で表示されてしまいます。

そのため、このページの下にある 「Jcode.phpを使う方法」を試してみましたが
やはり、2バイト文字が ? で表示されてしまいます。

Windows上で下記のような条件で動かしています。
PHP Version 4.4.2-pl1
Apache 2.0 Handler

最初は、マルチバイト系の問題だと思ったのですがJcode.phpを使っても
解決しないため、原因がわからなくなってしまいました。

どなたか、経験のある方がいらっしゃったらご教授願いたいです。
宜しくお願い致します。
09719682006/07/23(日) 00:29:17ID:???
スミマセン自己解決しました><; パソコン止めればよかったんですね。
0972nobodyさん2006/07/23(日) 00:35:24ID:???
>>967
お前みたいなバカには無理ってことだよ
0973nobodyさん2006/07/23(日) 01:59:11ID:V6UlX/Ft
[root@localhost ~]# pear install DB
No releases available for package "pear.php.net/DB"
Cannot initialize 'DB', invalid or missing package file
Package "DB" is not valid
install failed

pear install の使い方間違ってるかな?
レス数が950を超えています。1000を超えると書き込みができなくなります。