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

【PHP】下らねぇ質問はID出して書き込みやがれ 111

レス数が900を超えています。1000を超えると表示できなくなるよ。
0001 忍法帖【Lv=40,xxxPT】 2011/09/29(木) 02:56:06.94ID:???
質問者はまず>>1を良く読むこと(必須!)
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。

◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 110
http://hibari.2ch.net/test/read.cgi/php/1314692611/

◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】

◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)

◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)

◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。

【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0828nobodyさん2011/10/26(水) 14:01:32.26ID:???
js: str.slice(start, end);
php: substr(str, start, end-start+1);

上のほうが直感的で読みやすいし、PHPにしても利用する場合は関数にしてしまうと思う。
でも、みんなが独自に関数にするんだったらPHP側で用意しろってのは真っ当な意見だろ?

理解してくれそうにないんでここらへんで解散するわ。
0829nobodyさん2011/10/26(水) 14:01:46.62ID:???
ないなら作るのがPHPerだろjk
0830nobodyさん2011/10/26(水) 14:04:54.22ID:???
将来的にはPHPもオブジェクト指向で再編されると思うが、その頃には実装されてると思うよ。
確かにsliceの需要はあって、現状は各々が補っている状態だからね。
0831nobodyさん2011/10/26(水) 14:07:14.01ID:???
substrがそれにあたるから改めて実装する予定もないし必要ないかな
0832nobodyさん2011/10/26(水) 14:11:15.13ID:???
実現できればいい |壁| 綺麗なコードを書きたい
0833nobodyさん2011/10/26(水) 14:21:06.50ID:???
言いたいことも、あってもいいだろまではわかるが、何で無いんだと言い出すのはさっぱり分からん。
しかも俺の思ったことに同意しろ、出来ないやつらばかりだからいやだみたいなのは変だろ。
0834nobodyさん2011/10/26(水) 14:22:29.14ID:???
>>828
あれか、JSの場合sliceじゃなくJSのsubstrが欲しいという事だな
始点からn文字抜き出したいと
0835nobodyさん2011/10/26(水) 14:24:58.96ID:???
hoge.func()形式にしろと言いたいだけちゃうんかと思ったわ
文字のカウント方式なんて言語間で異なるのが普通
配列のはじめが1からの言語もあれば0からの言語もあるしな
0836nobodyさん2011/10/26(水) 14:32:11.31ID:???
いや、それ違う話
0837nobodyさん2011/10/26(水) 14:33:28.75ID:???
アホばっかりでワロタ
0838nobodyさん2011/10/26(水) 14:33:52.24ID:oGpVbHsj
htmlspecialcharsって第三者が書きこむ可能性を考慮してやるものですよね?
例えば管理画面から自分一人が使うものなら不必要ですか?
それとも管理画面に不正アクセスされることを考慮するべきでしょうか?
0839nobodyさん2011/10/26(水) 14:36:38.08ID:???
>>838
セキュリティをhtmlspecialcharsだけで語るのは滑稽だが、心配なら通しとけ。
0840nobodyさん2011/10/26(水) 14:45:28.31ID:???
>>838
ぽまえがトイレ言っている間に泥棒が侵入したり
ねこがキーボードの上を歩いたり
意図しない結果もあるから黙って考慮しておきたまえ
0841nobodyさん2011/10/26(水) 14:47:28.42ID:???
俺がJavaScriptでslice覚えたのにPHPでも.slice(1,2)って書けるようにしろ
クレーマー乙
0842nobodyさん2011/10/26(水) 15:13:02.96ID:/kGweZxN
PHPに限らないんですけど、GETにメールアドレスを入れるのってどうですか?
簡単なSNSで招待メールを送るときにどのデータベースに入れたらいいか思いつかなかったんで、なんとなくGETに入れてみたんですが。。
URLみたら違和感たっぷりでセキュリティ的にまずかったりするのかなと。
0843nobodyさん2011/10/26(水) 15:15:41.24ID:???
別にgetにメールアドレスを入れる事自体はよくありますよ
0844nobodyさん2011/10/26(水) 15:25:49.87ID:???
>>843
そうなんですか!ありがとうございます!
新しくテーブル作ってそこに入れようかとおもってたんですが、このままGETに入れることにします。
0845nobodyさん2011/10/26(水) 15:36:37.52ID:???
>>833
オープンソースは必要な奴が実装するという事が分からない小学生か
コミッターに成れないコミュ障なんだろ
何の説明もなくsliceやlengthを出してドヤ顔する辺り、後者だと思うが
0846nobodyさん2011/10/26(水) 15:38:04.48ID:???
全般的にかみ合ってなさすぎワロタ

startからendがほしいっても、こんな感じになって結局計算することにならね?
str.slice(str.strpos(startTag) + startTag.length, str.strpos(endTag))
擬似コードだが。

>>834
始点からn文字抜き出すのはJSのsubstr、PHPもsubstr
JSのsliceがPHPにないことが不満みたい
0847nobodyさん2011/10/26(水) 15:45:52.91ID:???
>>846
それはsliceに焦点があってるから問題ないんじゃねーの。
0848nobodyさん2011/10/26(水) 15:47:18.59ID:???
始端と終端両方をオフセットで指定したいのは分かるが
説明下手すぎ態度悪すぎで答える気になれないわ
0849nobodyさん2011/10/26(水) 15:48:12.54ID:???
>>846
難しいかも知れないが、それは start と end の計算であって、slice自体に関わる計算じゃない。
0850nobodyさん2011/10/26(水) 15:53:05.99ID:???
startからendが欲しいならsliceなんて必要ないのに
0851nobodyさん2011/10/26(水) 16:07:37.07ID:???
>>850
その理論ならPHPから沢山の関数が消えることになるな。もうC言語に戻ればいいんじゃね。
0852nobodyさん2011/10/26(水) 16:12:58.26ID:???
また極端な人が来たか
08537812011/10/26(水) 17:32:33.76ID:???
sqlインジェクションあるんですね!こわいです。
もうちょいちゃんと調べたら例外処理とsqlインジェクション対策は入れます。

複文使えないみたいだから、簡単には出来ないと思うけど必須ですね。
0854nobodyさん2011/10/26(水) 17:46:14.09ID:???
prepared にするだけだろ?
0855nobodyさん2011/10/26(水) 18:19:33.34ID:???
データのバリデーションをちゃんと行えばいいだけの話
0856nobodyさん2011/10/26(水) 19:57:27.03ID:gnsMAu0s
file_get_contents()を使って対象サーバにメッセージと画像をpost送信したいんですが
うまくいきません

$url= "http://example.com/post/";
$postMsg = urlencode(mb_convert_encoding($postMsg, 'UTF-8'));
$params= array(
'status' =>"写真つきで投稿テスト",
'photo' =>"/path_to/img.jpg"
);
$headers = array('Content-Type: multipart/form-data',);

$requestOptions = array(
'http' => array(
'method' => 'POST',
'header' => implode('\r\n', $headers),
'content' => http_build_query($params)
)
);

//POST送信
$response = file_get_contents($url, false, stream_context_create($requestOptions));

以上のようにやっているんですが、どこが間違ってるんでしょうか
画像無しの文章だけのpostは成功しました
画像ありにするために変更した点は $headersのContent-Typeと、$paramsに'photo'要素を加えただけです
おかしい点があれば教えてもらえると嬉しいです。よろしくお願いします

※実はmixiのapiなんですが、access_tokenとか不要な情報が多いので上の用に書きました
http://developer.mixi.co.jp/connect/mixi_graph_api/mixi_io_spec_top/voice-api/#toc-10
08578562011/10/26(水) 20:02:48.31ID:gnsMAu0s
すみません、柿間違えがありました

↓この部分は
$postMsg = urlencode(mb_convert_encoding($postMsg, 'UTF-8'));
$params= array(
'status' =>"写真つきで投稿テスト",
'photo' =>"/path_to/img.jpg"
);

↓これが正しいです
$postMsg = "写真つきで投稿テスト";
$postMsg = urlencode(mb_convert_encoding($postMsg, 'UTF-8'));
$params= array(
'status' =>$postMsg,
'photo' =>"/path_to/img.jpg"
);
0858nobodyさん2011/10/26(水) 20:10:19.33ID:???
ここはサポセンじゃないのよ
APIの使い方なんて自分で解決するか聞くべきところで聞いてください

APIの仕様は無視して自力で
>対象サーバにメッセージと画像をpost送信したい
を実装するならcURL使うとかアドバイスできるけども
0859nobodyさん2011/10/26(水) 20:13:36.20ID:???
htmlspecialcharsはSQLインジェクション対策には使えないって聞いた気がしますが
$str = htmlspecialchars($str,ENT_QUOTES);
これだけで普通に対策になりますよね?
mysql_query("INSERT INTO table1 VALUES('$str');
例えばこれで。破れませんよね?
0860nobodyさん2011/10/26(水) 20:20:40.14ID:???
>>1
0861nobodyさん2011/10/26(水) 20:26:49.64ID:+IPZs/bK
array(
[foo]=>array(
[2]=>1
[3]=>1
[5]=>0
)
)
のような、中身は1か0といった配列で、
この中の中身が1である配列の[foo][bar]のbarを求めたいんですが、
どうしたらいいですか? よろしくお願いします
barは連番でもないし、順番もばらばらです
よろしくお願いいたします
0862nobodyさん2011/10/26(水) 20:27:25.85ID:???
>>856
> file_get_contents

$urlでホストを指定する機能とかあるの?
0863nobodyさん2011/10/26(水) 20:42:54.47ID:???
>>861
print_r(array_filter($array[foo]));
0864nobodyさん2011/10/26(水) 20:52:44.58ID:???
>>858
知恵袋お決まりの○○で聞いてください乙
08658562011/10/26(水) 20:58:41.25ID:gnsMAu0s
>>858
すみません


じゃ、apiということは無視して、file_get_contents($url, false, stream_context_create($requestOptions));で
「リクエストボディを指定する」という場合、上記のように
$params= array(
'status' =>"写真つきで投稿テスト",
'photo' =>"/path_to/img.jpg"
);

$requestOptions = array(
'http' => array(
'method' => 'POST',
'header' => implode('\r\n', $headers),
'content' => http_build_query($params)
)
);
と、$params配列で指定することだという理解で良いんでしょうか?


>>862
出来るみたいです。画像無し投稿は実際成功しましたし
0866nobodyさん2011/10/26(水) 21:00:11.65ID:???
>>864
>>1
0867nobodyさん2011/10/26(水) 21:10:25.82ID:???
画像じゃなくて、 photoって名前で "/path_to/img.jpg" って文字列送信してるんだが
それでいいのかい?
0868nobodyさん2011/10/26(水) 21:14:57.17ID:???
>>861
$array = array( "foo"=>array( 2=>1,3=>1,5=>0) ,"fooo" => array("x"=>1,3=>0) ,"fo"=>1 );
print_r( arrayKeyVal($array,1));

function arrayKeyVal($array,$targetVal) {
$ret =array();
foreach($array as $var=>$val)
if(is_array($val))
$ret += arrayKeyVal($val,$targetVal);
else
if($val==$targetVal)$ret[]=$var;
return $ret;
}
08698562011/10/26(水) 21:17:12.66ID:gnsMAu0s
>>867
!!!!
確かにそうかもしれません!!すごい!
ちょっと調べてみます!
0870nobodyさん2011/10/26(水) 21:18:44.51ID:???
>>869

http://www.atyks.org/blog/2011-05-31-7.html
0871nobodyさん2011/10/26(水) 21:27:23.44ID:???
>>870

これだとバイナリファイルは無理ということ?
0872nobodyさん2011/10/26(水) 21:37:57.87ID:vp9BXm94
>>863
絞りたいのではなくてbarの値が知りたいのです
0873nobodyさん2011/10/26(水) 21:40:57.34ID:???
>>871
jpg送ってるジャン。

>>872
該当するbarの配列が出ます。
0874nobodyさん2011/10/26(水) 21:48:52.02ID:vp9BXm94
>>873
試したところ、
Array
(
[2] => 1
[3] => 1
)
となりました

この、2,3という値を取得したいんです
0875nobodyさん2011/10/26(水) 22:02:26.02ID:vp9BXm94
foreach ($this->data['foo'] as $key => $value) {
if ($value == 1) {
echo ($key);
}
}
$keyで取得できました
キーの値って言葉がでてこなかったのでてこずりましたが解決しました
ありがとうございました
0876nobodyさん2011/10/26(水) 22:21:51.30ID:???
>>875
なんというか、他の人よりも先にレスできていればよかったんだけれど。

print_r(array_keys($arr['foo'], 1));
0877nobodyさん2011/10/26(水) 22:43:35.43ID:???
>>195
いやいやあそこの国のITは遅れすぎだろ
0878nobodyさん2011/10/26(水) 23:13:12.66ID:???
一瞬2chでこんなエラー出たけど、何だったんだろうね?
っていうか、2chってphp使ってたっけ?

Warning: require_once(MIME/Type.php) [function.require-once]: failed to open stream: No such file or directory in /home/ulacloud6/public_html/_masuo/view.php on line 7

Fatal error: require_once() [function.require]: Failed opening required 'MIME/Type.php' (include_path='.:/usr/local/lib/php') in /home/ulacloud6/public_html/_masuo/view.php on line 7
0879nobodyさん2011/10/27(木) 01:35:53.03ID:hA0CpkPW
A(B($hoge));
B(A($hoge));
という書き方で速度的に差異が出てくることはあり得るのでしょうか?
08808562011/10/27(木) 01:45:51.27ID:???
>>870
助かりました、できました
結局Pearに頼ってしまいましたが、、ありがとうございました
0881nobodyさん2011/10/27(木) 01:50:25.05ID:???
>>879
あるかもしれないけど、誤差の範囲内
「速度」が気になる程度なら、最適化してますよってのが、中の人の言葉
0882nobodyさん2011/10/27(木) 02:25:35.49ID:???
>>878
ああ、でてたねそれ。
read.cgiはcでかかれてたはずだけど…
0883nobodyさん2011/10/27(木) 06:24:13.65ID:Ep9kwV/y
質問します
var_dump();すると以下のようになるオブジェクト($obj)があります
object(__PHP_Incomplete_Class)#127 (2) { ["__PHP_Incomplete_Class_Name"]=> string(23) "Zend_Oauth_Token_Access"
["_params":protected]=> array(4) { ["oauth_token"]=> string(5) "aaaaa" ["oauth_token_secret"]=> string(4) "bbbb"
["id"]=> string(3) "ccc" ["name"]=> string(4) "taro" } }

このオブジェクトからoauth_tokenなどの各要素を取り出すにはどうしたらいいですか?
$obj->oauth_tokenだと思ってやっても何も出力しません
var_dump($obj->oauth_token);の結果がNULLになります
0884nobodyさん2011/10/27(木) 07:08:20.87ID:???
_params["oauth_token"]
0885nobodyさん2011/10/27(木) 07:34:34.51ID:Ep9kwV/y
>>884
すみません、こういうことですか?
$obj->_params["oauth_token"];
var_dump()するとNULLが返るのですが…。var_dump($obj->_params);もNULLです
勘違いしてたらすみません
0886nobodyさん2011/10/27(木) 08:17:31.59ID:???
session_start()の前にそのobjectのクラスの定義がされてないとかそういうこと?
それともそれを強引に取得したいの?
0887nobodyさん2011/10/27(木) 08:30:09.78ID:???
>>886
>session_start()の前にそのobjectのクラスの定義がされてないとかそういうこと?

今ようやく解決しました! その問題でした
objectをserialize()してセッションに入れ、別ページでunserializeして->方式で引き出そうとして
失敗していたのでした。
unserializeするページでも、objectを生成したclassをincludeしなきゃいけなかったんですね
全然知りませんでした…
予想外で最初の質問じゃ状況の情報不足になっていたと思います。すみませんでした
ありがとうございました
0888nobodyさん2011/10/27(木) 14:24:23.89ID:Ruj7eSu+
require_once("HTTP/Client.php");
error_reporting(E_ALL);
ini_set( 'display_errors', 1 );

$url = "http://www.example.com";

try{
$client = new HTTP_Client();
$res = $client->get($url);
$response = $client->currentResponse();
$response_body = $response['body'];
}catch(Exception $e){
var_dump($e);
}
echo $response_body


例外をcatchする方法が分かりません。
上のソースで例えばurlが間違っていたなどで、getが失敗している場合に
catch節で例外の内容を出力しようとしても何も表示されないです。

pearのHTTP_Client::get()のドキュメントを見てみたのですが
http://pear.php.net/manual/ja/package.http.http-client.http-client.get.php
PEAR_Errorという例外を投げるとの事だったので、
catch(PEAR_Error $e)ともしてみたのですが、ダメでした。

現在はPEAR::isError()という関数を見つけたので、try catchを使わずにエラーハンドリングは一応出来ていますが、
結局なぜ上記のコードで例外が捕まえられなかったのか分かりません。
phpの例外処理の問題というより、pearの例外処理方法が異なるためにうまくいかなかったということなのでしょうか?
0889nobodyさん2011/10/27(木) 16:21:32.01ID:???
try-catchブロックを外してみてわざとエラーだしてみ
そこに何が書いてあるかだな
0890nobodyさん2011/10/27(木) 16:34:53.87ID:HSowDPam
preg_replaceの引数にarrayを渡すことができますが、
preg_replace_callbackの場合はどのように渡せばいいのでしょうか?

preg_replace(array("/foo/", "/bar/"), array("hoge", "piyo"), $str);
preg_replace_callback(array("/foo/", "/bar/"), "callback_func", $str);

function callback_func($matches) {
 switch ($maches[1]) {
  case "foo":
   return "hoge";
  case "bar":
   return "piyo";
 }
}

今のところこんなのしか思い浮かばないのですが、おかしいと思うので、
どうすればいいのでしょうか?
0891nobodyさん2011/10/27(木) 17:18:28.26ID:???
おかしいって何がおかしいの?
マニュアルに文字列か配列で渡せるって書いてあるんだからおかしくないだろ
0892nobodyさん2011/10/27(木) 17:31:26.65ID:HSowDPam
第ニ引数のことです。
期待している動作としては、
array("/foo/", "/bar/")という第一引数patternにたいして、
fooはhoge、barはpiyoに置き換えたいのですが、
これをpreg_replace_callbackで行うにはどうしたらいいのかという質問です。
0893nobodyさん2011/10/27(木) 17:34:21.90ID:???
その期待している動作はこのコードで十分なんじゃないの?
preg_replace(array("/foo/", "/bar/"), array("hoge", "piyo"), $str);

preg_replace_callbackを使いたくてしょうがない年頃かな。
0894nobodyさん2011/10/27(木) 17:36:14.24ID:HSowDPam
>>893
もちろん実際の動作は違いますよ。
質問のために簡素化しただけです。
0895nobodyさん2011/10/27(木) 17:39:44.96ID:???
第二引数を固定できないからコールバックにしたんじゃないの?
もっと伝える努力をしてほしいわ
0896nobodyさん2011/10/27(木) 17:42:33.19ID:Ruj7eSu+
>>889
urlを存在しないものに変更して$resをechoしたところ

php_network_getaddresses: getaddrinfo failed: Name or service not known

とだけ表示されました。
ログを見てもこの部分のエラーは一切表示されていなかったので
pearが独自にあげた例外なのかと思いました。

http://pear.php.net/manual/ja/standards.errors.php
こういうページを発見したので、これに沿ってエラー処理を行おうかと思います
0897nobodyさん2011/10/27(木) 18:05:22.01ID:???
>>890
<?php
$subject = '1foo2bar3';
$patterns = array('/foo/', '/bar/');
$callback_args = array('foo' => 'hoge', 'bar' => 'piyo');

# PHP >= 5.3
echo preg_replace_callback($patterns, function ($matches) use ($callback_args) { return $callback_args[$matches[0]]; }, $subject), PHP_EOL;

# PHP < 5.3
function my_callback_args($args = null) {
    static $store;
    return func_num_args() ? ($store = $args) : $store;
}
function my_callback($matches) {
    $args = my_callback_args();
    return $args[$matches[0]];
}
my_callback_args($callback_args);
echo preg_replace_callback($patterns, 'my_callback', $subject);
0898nobodyさん2011/10/27(木) 19:22:31.61ID:???
無名関数にしただけで結果は同じだし
0899nobodyさん2011/10/27(木) 20:27:12.05ID:???
そ、そうだね
0900nobodyさん2011/10/28(金) 00:25:57.08ID:???
お、おう
0901nobodyさん2011/10/28(金) 02:50:47.24ID:OTqbk3HF
配列なんかをループでまわすとき
一番最初のデータと一番最後のデータで特定の処理をするとき
$length=count($array);
for($i=0;$i<$length;$i++){
if($i==0){
最初の処理
}
if($i==$length-1){
最後の処理
}
}

って今やってるんですが
これってループするたびに中でifが2回実行されることになりますよね?

あいにく処理内容が

for(){
処理A
最初の処理
最後の処理
処理B
}

のようになってるので

最初の処理
for(){]
最後の処理
には出来ません

何かいい方法ないでしょうか?
0902nobodyさん2011/10/28(金) 03:07:05.10ID:???
最初と最後も処理ABやる必要があるってこと?

処理A
最初の処理
処理B
for(){
処理A
処理B
}
処理A
最後の処理
処理B
0903nobodyさん2011/10/28(金) 03:08:10.88ID:???
ただ、それをするほどにそれが遅いのなら。
0904nobodyさん2011/10/28(金) 03:09:28.56ID:???
>>901
配列の最初と最後をとって、別の配列をforeachしたら?
で、処理Aと処理Bは関数化とか
おわったら、結合じゃだめかねぇ
0905nobodyさん2011/10/28(金) 03:55:38.26ID:???
おはよぉ〜

 PHPプログラマ〜のお姉さんだよぉ〜

 今日はどんな質問が残ってるのかな?
 徹夜仕事も終わって、まったりしているから、
 どんな質問でも応えるよぉ〜


0906nobodyさん2011/10/28(金) 07:06:16.42ID:???
>>905

徹夜明けだとパンツは汚れてますか?
0907nobodyさん2011/10/28(金) 07:44:50.95ID:???
>>906 >>1
0908nobodyさん2011/10/28(金) 07:45:32.18ID:???
>>905

セフレは何人いますか?
3Pは経験ありますか?
0909nobodyさん2011/10/28(金) 13:03:21.27ID:???
array_系って実際使う機会ないですよね 無理して使う必要ないと思った
0910nobodyさん2011/10/28(金) 13:07:31.14ID:???
array_mapは使います
0911nobodyさん2011/10/28(金) 13:17:39.10ID:???
array_key_exists使う
0912nobodyさん2011/10/28(金) 13:22:27.11ID:???
無理して使わない必要も無いな
0913nobodyさん2011/10/28(金) 13:23:55.16ID:???
初心者にはハードルが高いから必要ないよね
0914nobodyさん2011/10/28(金) 13:31:57.63ID:???
array_uniqueは使うね
0915nobodyさん2011/10/28(金) 13:37:26.18ID:GC2HTreF
既存のSRPMを元に最新版をリビルドしたいと考えています
SRPMを見ると、かなりのpatchが同梱されていますが
これらのpatchはどこで公開されているのでしょうか?
0916nobodyさん2011/10/28(金) 17:40:31.05ID:ZIFDplY1
php言語というか、開発についての質問です。
ローカルサーバーでphpを書いてテストして、完成したらそのphpをオンラインサーバーにアップロードするのが普通かと思いますが
そのphpが大量のデータを作成し、それを読み込むスクリプトの場合
実行しているオンラインサーバーには大量のデータが作成されますが
テストでしか使っていないローカルサーバーにはにはそれが無く、テスト時と実行時に環境の差が生じてしまいますよね
その場合、開発はどのように行えば良いのでしょうか。
開発時に毎回オンラインのサーバーのデータを全部ダウンロードして、ローカルサーバーとオンラインサーバーを完全に一致させる必要があるのでしょうか。
0917nobodyさん2011/10/28(金) 17:54:12.25ID:???
そらそーでしょ。
0918nobodyさん2011/10/28(金) 18:09:08.66ID:???
ファイル出力やDBを修正しないなら
サーバ上に同じようなテスト環境つくってもいい
テスト用のデータをあらかじめ作っておくってのもよくつかわれる
0919nobodyさん2011/10/28(金) 18:19:34.11ID:???
こんなバカが多いスレで聞く質問じゃねえだろ
マ板で聞けよ
0920nobodyさん2011/10/28(金) 18:31:30.87ID:X9Y4GnfI
>>916
だいたいあなたねーもう
windowsで動いていてもlinuxで動かない場合もあるんだから。
バージョンをかえただけでもうごかない可能性もあるし、
javaだってonce write any whereとかかっこいいこと言っているけど
実際バージョンを変えたらうごかなかったりして、先輩がtomcatで
エラーが出て真っ青になって、帰ってこなかったこともあるんだから
0921nobodyさん2011/10/28(金) 19:13:59.75ID:Y9S4pT3o
Array
(
 [hoge] => Array
  (
   [0] => Array
    (
     [0] => 10
     [1] => 20
    )
   [1] => Array
    (
     [0] => 11
     [1] => 21
    )
   [2] => Array
    (
     [0] => 12
     [1] => 22
    )
  )
)


こんな感じの配列から、
hoge[n][0]を配列としてまとめたいのですが、
$new_array = array();
foreach ($array['hoge'] as $value) {
$new_array[] = $value[0];
}
より効率のいいやり方ないでしょうか?
0922nobodyさん2011/10/28(金) 19:28:54.20ID:???
>>920
だれが開発マシンと本番マシンのOSが異なるって書いた?
0923nobodyさん2011/10/28(金) 19:48:59.01ID:NR/rAN+G
質問させてください
データベースへの登録はPDOにてprepare()->bindParam()->execute()の流れで登録、
出力はSmartyにてdefault_modifiers = array('escape:"htmlall"')を設定した場合、
勝手にエスケープ処理してくれると思うのですが、
この場合、個別にaddslashes()やhtmlspecialchars()などを使用する必要があるのでしょうか?
0924nobodyさん2011/10/28(金) 19:54:16.22ID:???
>>921
array_mapで回すと少しは速いかもしれんが、やってみないとわかんない
0925nobodyさん2011/10/28(金) 20:46:01.54ID:???
>>921
そういう関数がまさしく用意されてるよ
配列関数のページよく読め
0926nobodyさん2011/10/28(金) 20:52:16.01ID:9b9GvFAK
オブジェクトのメソッドの引数について質問させてください

$a = "dog";//string型
$b = "/var/path/hoge.jpg";//string型

$objX->act($a, $b);
class objX{
function act($a, $b){
//$a $bを使った処理
}}
とすると、処理が正常に行われず、以下のようにすると正常に処理されます
$objX->act($a);
class objX{
function act($a){
$b = "/var/path/hoge.jpg";//もしくは $b = $sessionFile;//セッションに入れておいた画像のパス
//$a $bを使った処理
}}
処理はtwitterに画像を投稿するものです
どちらもmethod内部まで引数の値をただしく持ち込めています
なぜ上は失敗して下は成功するのかわかりません
上が失敗するといっても、apacheのerrorログにfatal errorが出たりはしません
apiの操作部分(tmhOAuth利用)は全く同じです
オブジェクトの操作でルール違反のようなことをしてしまってるのでしょうか?
引数にパスを持たせられないなんてことないですよね…?

ソース全部のせるのは長過ぎるのでまとめました。わかりにくかったらすみません
よろしくお願いします
0927nobodyさん2011/10/28(金) 21:02:37.52ID:GPFppW98
http://codezine.jp/article/detail/433?p=2
ここのページの
PDOStatementの主なメソッド(1/2)
のexampleのコードなんですが
$stmt = null;
という記述は必要なのでしょうか?
最初のinsertのあとには使ってなかったり
一番最後にも使ってなかったり
この$stmt = null;が何をしてるのかわかりません
どなたか解説していただけませんか?
0928nobodyさん2011/10/28(金) 21:08:12.52ID:???
GCにやさしくしようとしたんじゃないの。
そのgdgdっぷりはただのミスだと思うよ
レス数が900を超えています。1000を超えると表示できなくなるよ。