【PHP】下らねぇ質問はここに書き込みやがれ 49
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2007/06/26(火) 03:03:40ID:ox2uyHLdPHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 45 (※実質48)
http://pc11.2ch.net/test/read.cgi/php/1180181033/
◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0341nobodyさん
2007/07/01(日) 11:22:38ID:???. /,. -─‐- 、. ヽ / ,.=j
_,.:_'______ヽ、 .! ./ _,ノ
`‐、{ へ '゙⌒ `!~ヽ. ! /{. /
`! し゚ ( ゚j `v‐冫 , '::::::::ヽ、/ そんなことより野球しようぜ!
. {.l '⌒ ゙ 6',! / :::::::::::::::/ __
. 〈 < ´ ̄,フ .ノー'_ , ‐'´::::::::::::::;/ (_ノ)‐-、
. ヽ.、 ` ‐", ‐´‐:ラ ':::::::::::::::: ;∠. ヽ_} ゙ヽ
,.r` "´ /:::::::::::::::::::ィ´ `ゝ !、 /
/ / :::::::::::::::: ; '´ /´\ / r'\
. i ! ::::::::::::::/ 新 | .!::::::::/ヽ、.._!ヽ. ヽ、
{ {:::::::::::;:イ / ‖i:::::::/:::::::::::::/ \
. ヽ ヽ,.ァ‐'´ /ヽ 二 ,/`ヽ、::::::::: /
0343nobodyさん
2007/07/01(日) 16:18:42ID:SEZkjrix教えてください。
0344nobodyさん
2007/07/01(日) 16:36:58ID:???substr_count()、mb_substr_count()
テキストファイルからのカウントぐらいなら
簡単だから自分でやれ。
0345nobodyさん
2007/07/01(日) 16:46:52ID:AE1jLbRL0346nobodyさん
2007/07/01(日) 17:08:22ID:KsS6Lofm下記のようなエラーがでました
Warning: require_once(Image/Canvas.php) [function.require-once]: failed to open stream: No such file or directory in C:\Program Files\xampp\php\pear\Image\Graph\Common.php on line 56
Fatal error: require_once() [function.require]: Failed opening required 'Image/Canvas.php' (include_path='.;C:\Program Files\xampp\php\pear\') in C:\Program Files\xampp\php\pear\Image\Graph\Common.php on line 56
common.phpの56行目は下記です。
require_once 'Image/Canvas.php';
Canvas.php
が無いって言ってるのだと思いますが、これは別途DLしてくるものなのでしょうか?
0347nobodyさん
2007/07/01(日) 17:26:46ID:SEZkjrixありがとうございます。
substr_countを使ってみました……。
ですが、うまくいきません。
GETで受け取った変数を使うと、エラーになってしまいます。
$test = $_GET['test'];
$count = substr_count("testtesttest", "$test");
で実行すると、
Warning: substr_count() [function.substr-count]: Empty substring. in /home/usernamehogehoge/www/test/test.php on line 2
となって、エラーを吐いてしまいます。
どうにかして変数を使えませんか?
0351nobodyさん
2007/07/01(日) 18:14:45ID:???http://www.google.co.jp/search?hl=ja&safe=off&c2coff=1&q=Canvas.php&lr=
pearのあるじゃん
これじゃなかったらそれらしいものって一体どんなものなんだろう
0352nobodyさん
2007/07/01(日) 18:26:14ID:SEZkjrixありがとうございます。
string(0) ""と表示されるようになりましたが、エラーは直りません;
0356nobodyさん
2007/07/01(日) 18:57:24ID:???0358nobodyさん
2007/07/01(日) 19:46:56ID:???0359nobodyさん
2007/07/01(日) 19:58:41ID:AE1jLbRL<textarea cols=36 rows=15 name="before" wrap="virtual" style="width:320px;height:250px;">方法</textarea>
<textarea cols=36 rows=15 name="after" wrap="virtual" style="width:320px;height:250px;">Method
</textarea>
これを
preg_match_allの'/<textarea.*>(.*)<\/textarea>/ms'で二つとも取得するのですが、
他に色々と長い文字列を打ったうえで上記を取得すると何も表示されません。
ちなみに、文字の長さが半角で2820文字以上になると表示されません。
2819未満だとちゃんと取得して表示してくれます。
preg_match_allの関数のマニュアルを見たところそのような仕様は書いてありませんでした。
何かこれを取得できるように解決する方法はありませんでしょうか?
0360nobodyさん
2007/07/01(日) 20:27:14ID:SEZkjrixすみません。
GETで渡した場合、(0)が渡したバイト数に変わり、
ダブルクォーテーションで内容が囲まれて表示されています。
>>354
読んだのですが、理解不能でした。
最初の相談時は普通に値を送っていて、次は何の値も送らずにテストしていました。
しかもそれに何故か気付いていませんでした。
何を試したかも書かずに相談してしまい、すみません。
0361nobodyさん
2007/07/01(日) 20:31:56ID:???http://pear.php.net/package/Image_Canvas
>>360
うん,その時も同じようにEmpty substringになるの?
$test = $_GET['test'];
var_dump($test)
$count = substr_count("testtesttest", "$test");
は?
0362nobodyさん
2007/07/01(日) 20:53:56ID:SEZkjrix値を渡してもなります。
教えてくださったものだと、NULL、改行(<br />)のあとにエラー文が出ます。
0363362
2007/07/01(日) 20:58:53ID:SEZkjrixNULLではなくて、string(1) "a"といった感じです。
「a」を送信しています。
0364362
2007/07/01(日) 21:00:55ID:SEZkjrix今値を送ってみたところ、受け渡しされている場合はエラーは出ていません。」
0366nobodyさん
2007/07/01(日) 21:02:27ID:AE1jLbRL有難う御座います、解決しました。
mは複数行、sはスペースですよね。
Uとは何なのでしょうか?
0367nobodyさん
2007/07/01(日) 21:09:27ID:???ttp://jp.php.net/manual/ja/reference.pcre.pattern.modifiers.php
0368nobodyさん
2007/07/01(日) 21:12:28ID:IsU+PNQg※退会処理手続きに10〜14日間の時間をいただいております。
退会処理後に再度、メールが送信されることがあるかもれません。
退会手続き後、複数回メールが送付される時はお手数をおかけしますが、
再度退会手続きの空メールを送信してください。
ってメールがきたんだけど、これをphpで迷惑メール対策したいのですが
何かいい案はありませんか?
0369nobodyさん
2007/07/01(日) 21:19:46ID:???その質問は
「朝日新聞の勧誘が来たんですが
これを合気道で迷惑勧誘対策したいのですが」
並に意味不明なわけだが
0371nobodyさん
2007/07/01(日) 21:51:18ID:SEZkjrixありがとうございます。
先程まで、var_dump($test);を抜くとエラーが出てくるという状況だったのですが、
今確認したところ直っておりました。
何だかよくわからない事に初心者が無理に手を出してしまったのがまずかったのだと思いますが、
解決しました。
長く、丁寧に教えてくださって、本当にありがとうございました。
0373nobodyさん
2007/07/02(月) 00:33:57ID:5ynC2VCo正規表現でキーワードをひっかけるやり方を考えたのですが、それだと
迷惑ではないメールもひっかかってしまうと思うんです
0374nobodyさん
2007/07/02(月) 00:38:59ID:???そもそもシステム化はできない。
by ケビン・コスナー
0375nobodyさん
2007/07/02(月) 00:46:01ID:???自前のサーバでメール管理してんのか?
PHPでやることはないと思うけどPHPでもできるな
ヘッダとかである程度対応できるでしょ。
Date: に +0900 を含まないものは削除とか。
0376nobodyさん
2007/07/02(月) 00:55:17ID:???0377nobodyさん
2007/07/02(月) 01:01:49ID:???Thunderbirdのメールフィルタでも使えば
0378nobodyさん
2007/07/02(月) 01:40:40ID:SNqTzj8t・「ユーザ」に複数の「カテゴリ」が設定されている
user
|user_id|user_name|
user_category
|user_category_id|user_id|category_id|
category
|category_id|category_name|
こんなテーブルがあるとして、
ユーザの一覧とそれぞれに設定されているカテゴリを
array(
0=>array("user_id"=>1,"user_name"=>"山田","user_category"=>array(
0=>array("category_id"=>3,"category_name"=>"hoge"),
1=>array("category_id"=>5,"category_name"=>"fuga")
)
),
1=>array("user_id"=>2,"user_name"=>"鈴木","user_category"=>array(
0=>array("category_id"=>1,"category_name"=>"foo")
)
)
)
最終的にこんな形の配列で取得したい。
こういう時のアプローチとして
(1)SQLクエリの結果配列をプログラム側で変形させる
(2)SQLクエリを二回にわけてプログラム側でくっ付ける
(3)テーブルを崩す(userにphoto_idの繰り返しを持たせる)
以外のものは無いでしょうか。
0379nobodyさん
2007/07/02(月) 01:52:56ID:EsE4UsKv$name = 関数名($hoge);
$nameに変数名'hoge'が取得できるような関数ってある?
0380378
2007/07/02(月) 01:53:56ID:???(1)
SELECT * FROM user
LEFT JOIN user_category ON user_category.user_id = user.user_id
LEFT JOIN category ON category.category_id = user_category.category_id;
(2)
(a)SELECT * FROM user;
(b)SELECT * FRON user_category
INNER JOIN category ON category.category_id = user_category.category_id
WHERE user_category.user_id = {$item} ;
(b)をユーザ数だけPHP側でループ
(1)と(2)はこんな感じのイメージです。
これだとパフォーマンス的にあれなのと、
もっとスマートな方法があると思うので、
どなたかご教授お願いします。
0381nobodyさん
2007/07/02(月) 01:54:24ID:???あるかないかでいうならある。
ユーザー関数を利用すればある
0382nobodyさん
2007/07/02(月) 01:57:19ID:EsE4UsKvありがとう、勉強してきます
0383nobodyさん
2007/07/02(月) 02:00:49ID:???0384nobodyさん
2007/07/02(月) 03:14:40ID:???表示される画像の形式の変更の仕方がわかりません
グラフのコードの書かれた.PHP内の
$Graph =& Image_Graph::factory('graph', array(array('width'=>512, 'height'=>280, 'canvas' => 'JPG')));
でJPGとしたら画像はあらくなってJPGっぽくなったのですが
右クリック保存にするとBMPになってしまいます
0386nobodyさん
2007/07/02(月) 03:48:48ID:???PHPオフィシャルのマニュアルが、
最初のページ内にすら出てこないこと多くね?
0387nobodyさん
2007/07/02(月) 04:03:33ID:???今やってみたら確かにそういう傾向はあるな。
ちなみにfput
0388nobodyさん
2007/07/02(月) 04:08:02ID:???0389nobodyさん
2007/07/02(月) 08:56:28ID:???0390nobodyさん
2007/07/02(月) 11:02:07ID:???phpのセーフモードを解除せずにする方法って何かあるのでしょうか?
0391nobodyさん
2007/07/02(月) 11:11:01ID:???0392nobodyさん
2007/07/02(月) 11:12:42ID:???safe_mode_exec_dirで設定されたところに置かれたものは可能。そこに
なければ不可能。
勝手に何でも起動できちゃセーフモードの意味ないだろ。
未知のあるいは既知だが対処されていないセキュリティホールを突けば
なにかできるかもしれないがやるなよ。
0393nobodyさん
2007/07/02(月) 11:34:01ID:???実行したいスクリプトをsafe_mode_exec_dirに置いて動作確認できました
と思いきやそれ以外でも実行できてしまいました。
俺何か勘違いしてるんでしょうか?
>>392
上島に聞こえてしまいます・・・
#!/usr/lib/php
<html><head><title>シェル実行テスト</title></head><body>
<?php
$str = "cal";
exec($str,$array);
for($i=0;$i<count($array);$i++){
print $array[$i]."<br>";
}
?>
</body></html>
0394nobodyさん
2007/07/02(月) 14:01:22ID:???フォームのテキスト等をしょりしていたのですが、
ボタンを押された時に確認ダイアログを出すためにそのボタンに
JavaScriptで確認メッセージをだすようにした場合、同じ処理をさせるにはどうしたらいいのでしょうか?
0395nobodyさん
2007/07/02(月) 14:12:14ID:Oa7ZLlfRで、
$testに
['hoge1']="ホゲ1"
['hoge2']="ホゲ2"
['hoge3']="ホゲ3"
が入るとします。
$test = get_ary();
これで、
$testに['hoge']である「ホゲ1」が入るようにしたいのですが、
$test = get_ary();
$test = $test['hoge1'];
と2行じゃなく
$test = get_ary()->hoge1;
みたいな感じで1行にできないでしょうか?
0396nobodyさん
2007/07/02(月) 14:20:25ID:???意味わかんねぇし
エスパーじゃないんだからget_ary()でなにしとるかわからんのに
そんなこと出来るわけ無いじゃないか
0397nobodyさん
2007/07/02(月) 14:21:33ID:Oa7ZLlfR説明が足りませんでした。
$test = get_ary();
で、
$testに
['hoge1']="ホゲ1"
['hoge2']="ホゲ2"
['hoge3']="ホゲ3"
が入るとします。
というのは配列で入るということです。
(returnで配列を返しています。)
0399nobodyさん
2007/07/02(月) 14:30:32ID:???だーかーらー
こっちで理解できるのは
function get_ary(){
return array('hoge1'=>"ホゲ1",'hoge2'=>"ホゲ2",'hoge3'=>"ホゲ3");
}
こうなるとしか予測ができんのだ
で、$test = get_ary();したときに
$test["hoge"]に"ほげ1"をいれたいんだろ?
論理的に不可能なわけだ
意味わかるか?
0400nobodyさん
2007/07/02(月) 14:33:38ID:Oa7ZLlfRreturn array('hoge1'=>"ホゲ1",'hoge2'=>"ホゲ2",'hoge3'=>"ホゲ3");
}
$test = get_ary()['hoge1'];
や
$test = get_ary()->hoge1;
print_r($test);
不可能なのですね、わかりました
0401nobodyさん
2007/07/02(月) 14:35:30ID:???これはタイプミスかね?
本当は、
>$testに['hoge1']である「ホゲ1」が入るようにしたいのですが、
じゃないんかね?
0402nobodyさん
2007/07/02(月) 14:36:54ID:Oa7ZLlfRよく見ると打ちミスしていました。
すみません、気づきませんでした。
0403nobodyさん
2007/07/02(月) 14:48:38ID:???function get_ary( $idx ){
$array = array('hoge1'=>"ホゲ1",'hoge2'=>"ホゲ2",'hoge3'=>"ホゲ3");
if( $idx != null ){
return $array[$idx];
}else{
return $array;
}
}
// 配列くれ
$array = get_ary( null );
// 値くれ
$test = get_ary( 'hoge2' );
0404nobodyさん
2007/07/02(月) 14:49:56ID:Oa7ZLlfRありがとうございます。
関数の方を変えてしまえば良いのですね。
解決できましたー。
0405nobodyさん
2007/07/02(月) 14:53:15ID:???うちみすかよorz
なら
function get_ary($key=""){
if($key==""){
return false;
}
$array = array('hoge1'=>"ホゲ1",'hoge2'=>"ホゲ2",'hoge3'=>"ホゲ3");
return array($key=>$array[$key]);
}
でどうだ
0406nobodyさん
2007/07/02(月) 14:54:49ID:???0407nobodyさん
2007/07/02(月) 15:41:37ID:???どっちに書こうか迷ったんですけどね。
JavaScriptはただダイアログだしてるだけだからこっちのがいいかなっておもったんだけど
やはりダイアログでの処理は向こうで聞くべきでしたか。失礼しました。
乗りかかった船でsubmitを記述を教えてください><
0408nobodyさん
2007/07/02(月) 15:45:01ID:???submitを記述を
submitを記述を
submitを記述を
submitを記述を
submitを記述を
submitを記述を
submitを記述を
submitを記述を
submitを記述を
はいはい
0409nobodyさん
2007/07/02(月) 15:47:56ID:???0410nobodyさん
2007/07/02(月) 15:58:58ID:mwwSeVGNPDOとmysqliってどっちがいいですか?
0412nobodyさん
2007/07/02(月) 16:13:52ID:???ところがある一つのファイルだけ置き換えができない現象が発生。。
そのファイルはHTMLのヘッダとフッタを書き出すインクルード用のファイルなんですけど
PHPとHTMLが混ざり合っているとUTFに変換はできないのでしょうか??
ちなみにEUCには問題なくできました。
以下そのファイルのソース。
頭のPHPの部分を消すと下の方にPHPスクリプトがあっても正常に置換できます。
<?php
function HEADER_HTML( )
{
echo '<?xml version="1.0" encoding="Shift_JIS"?>' . "\n";
?>
<!DOCTYPE 〜〜 以下HTML文
0413nobodyさん
2007/07/02(月) 16:15:22ID:???そこが一番大事だろうが
0414nobodyさん
2007/07/02(月) 16:20:07ID:???0415nobodyさん
2007/07/02(月) 16:28:58ID:???0416nobodyさん
2007/07/02(月) 16:31:37ID:???0418nobodyさん
2007/07/02(月) 16:35:36ID:???0419nobodyさん
2007/07/02(月) 16:42:20ID:???Windows標準装備のメモ帳ではなくPHPエディタというテキストエディタです。
>>416
数が少ないので一括置換ではなく仰せの通り手作業です。
>>418
原因をご存知なのでしょうか?
0420nobodyさん
2007/07/02(月) 16:43:24ID:???0421nobodyさん
2007/07/02(月) 16:44:44ID:???0423412
2007/07/02(月) 16:47:41ID:???やっぱり2ちゃんねるで聞くんじゃなかった・・・バカの集まりしかいない
0424nobodyさん
2007/07/02(月) 16:49:59ID:Oa7ZLlfRfunction test(){
}
test("aa","bb","cc");
これで、"aa","bb","cc"の部分を配列として受け取れたと思うのですが、
それってclassだけでしょうか?
たしかfunctionでもいけたような気がするのですが。。。
良かったら方法教えてください
(ちなみにtest(array("aa","bb","cc"))を使わない方法でお願いします)
0425nobodyさん
2007/07/02(月) 16:52:23ID:???TeraPadというエディタで変換を試みたところ、
「Null文字を含むファイルです。Null文字は半角スペースへ変換しました」
と出てきました。
他のファイルではでなかったのでこれが原因のようです。
0427nobodyさん
2007/07/02(月) 16:58:50ID:???return array( $a, $b, $c );
}
0428nobodyさん
2007/07/02(月) 16:58:58ID:???先程のエディタでutf-8で新規にファイルを作成し、鯖にアップして確認をしたところ、文字化けもなおって無事ちゃんと表示されました。
普段当たり前のように使ってるツールでもバグがあるかもしれないと疑う事も重要ですね。。
0429nobodyさん
2007/07/02(月) 17:00:48ID:???こういうとき、どうすればマシな検索結果になるんだ。
0431nobodyさん
2007/07/02(月) 17:03:54ID:???0432nobodyさん
2007/07/02(月) 17:15:27ID:???http://jp.php.net/manual/ja/function.func-get-args.php
これかな
0433nobodyさん
2007/07/02(月) 17:25:24ID:???だれかこれと等価になるやつ教えてください
$mode = ($mode) ? 'a' : 'w';
こんなの初めて見たんだが、、、
0434nobodyさん
2007/07/02(月) 17:26:40ID:Oa7ZLlfRそれですそれです!
まじありがと><
0435nobodyさん
2007/07/02(月) 17:28:14ID:???それは覚えるとめっちゃ便利
$mode = ($mode) ? 'a' : 'w';
$modeがTRUEなら$modeにaを、FALSEなら$modeにwを代入
$変数 = (条件式) ? TRUEの場合$変数に格納するもの : FALSEの場合$変数に格納するもの;
0436nobodyさん
2007/07/02(月) 17:29:19ID:???http://jp.php.net/language.operators.comparison#language.operators.comparison.ternary
0438nobodyさん
2007/07/02(月) 17:39:27ID:???0439nobodyさん
2007/07/02(月) 17:41:42ID:???0440nobodyさん
2007/07/02(月) 17:47:43ID:???■ このスレッドは過去ログ倉庫に格納されています