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

このエントリーをはてなブックマークに追加
424411
先ほどのことなのですが、AとBはそれぞれ単体で動かすと、正常に処理できる
のに、require.phpとして
<?php
require('A.php');
require('B.php');
?>
として実行したら、Aの部分しか処理できていませんでした。
何故なのでしょうか?
425nobodyさん:2006/12/12(火) 16:23:51 ID:???
>>424
A/B.phpそれぞれに "<?php" ついてる?

ついでに>>420
誘導
【総合】 Webprog板質問雑談スレッド 1
http://pc8.2ch.net/test/read.cgi/php/1131016915/l50

こちらへどぞ。
426411:2006/12/12(火) 16:27:03 ID:j1klqrWE
>>425
ええ、ついています。
427nobodyさん:2006/12/12(火) 16:38:58 ID:???
>>426
うーん、わからん。
実は全角の<?phpになってるとか...それはないか。
428411:2006/12/12(火) 16:43:36 ID:j1klqrWE
そうですか。。。どうもでした。
429nobodyさん:2006/12/12(火) 16:47:28 ID:???
>>428
すまんな。役に立てなくて。
430nobodyさん:2006/12/12(火) 16:49:59 ID:???
>>411
パターン1

execute.phpからAへ飛ばす
処理が終わったら行の終わりにBへ飛ばす記述
処理が終わったら行の終わりにCへ飛ばす記述

ぱたーん2
execute.phpというファイルに
<?php
require('A.php'); Aの行の終わりに「Aの処理が終了した」変数Aをセット
require('B.php'); 変数AがTRUEならBを処理→変数Bをセット
require('C.php'); 変数CがTRUEならB
431nobodyさん:2006/12/12(火) 16:52:36 ID:???
>>413,421,423,425
お前に言ってんだよw読解力無いな。鸚鵡返ししかできんのか。
さっさと失せろ。

432nobodyさん:2006/12/12(火) 16:58:42 ID:???
だが断る。
433nobodyさん:2006/12/12(火) 17:00:06 ID:???
>>431
必殺「鸚鵡返し」。 お前が
>さっさと失せろ。
434nobodyさん:2006/12/12(火) 17:02:14 ID:???
まぁ落ち着けよ
435PHP出版:2006/12/12(火) 17:02:35 ID:???
eval("include('A.php')");
eval("include('B.php')");
436nobodyさん:2006/12/12(火) 17:05:14 ID:???
>>431
誰が言ってるんだよ。お前が>>420ならちゃんと名前欄に入れろよ。
そもそも>>420がきちんとレスアンカーをつけないから混乱が起き
てるんだろうが。>>420>>419にケチつけてるのか、>>413にケチ
つけてるのかわかんねぇよ。
437nobodyさん:2006/12/12(火) 17:05:27 ID:apzoBj1l
たくさんの入力項目を元に、
ファイルを作成するプログラムを作っているのですが、

$a = $_POST['a'];
$b = $_POST['b'];
$c = $_POST['c'];

みたいなかんじで変数でごちゃごちゃになっています。
もうちょっと綺麗な書き方あったらぜひ教えてください。
438nobodyさん:2006/12/12(火) 17:09:06 ID:???
>>436
素直に読めば>>419にケチをつけているのではないことくらい自明だと思うが?
まあいいや他所でやれ。
439軟式PHP:2006/12/12(火) 17:12:00 ID:???
>>437
他人が作ったソースを読んでみるのも勉強になるお。
440nobodyさん:2006/12/12(火) 17:12:58 ID:???
>>438
そうか?オレは>>419に対してだと思っていたが。
まぁ、とにかくレスアンカー必須のほうが誤解もなく安全だろ。ということでみなさ
ん、マナーとしてレスアンカーはきちんとつけようね。
441nobodyさん:2006/12/12(火) 17:14:25 ID:???
>>437
extract()のマニュアルを調べるといいかも。
442nobodyさん:2006/12/12(火) 17:17:15 ID:???
>>437
配列とか。

なんかプログラマって、いちゃもんつける人多いよね。
理系だから、完全な解を求めたがるような印象…
443nobodyさん:2006/12/12(火) 17:18:56 ID:???
>>437
$key = array($_POST['a']=>'a',$_POST['b']=>'b',$_POST['c']=>'c');

echo $key['a'];
444nobodyさん:2006/12/12(火) 17:20:08 ID:apzoBj1l
みなさんどうもありがとうございます!
さっそく教えていただいた配列でやってみたいと思います。
extractもマニュアルでひいてきます。
445nobodyさん:2006/12/12(火) 17:22:53 ID:???
>>443
それはないだろ。
446nobodyさん:2006/12/12(火) 17:23:16 ID:8yL3wR52
aaa.txtが存在しまして、file関数で変数$fileに取り込む記述があります。

$file = file("aaa.txt");

ファイルが開けない原因を考えているのですがわかりません。
どなたかアドバイスお願いいたします。
447nobodyさん:2006/12/12(火) 17:24:24 ID:???
パーミッション
448nobodyさん:2006/12/12(火) 17:27:54 ID:???
>>446
>>447。か、まれに>>50
わかってると思うけど$fileは配列になってるので注意。
449nobodyさん:2006/12/12(火) 17:41:25 ID:8yL3wR52
<<447-448さんありがとうございます。
やはりパーミッションですよね。
windowsでテストしているのですが、この環境でlinuxと同じように
パーミッションをいじくる方法ってありませんか?
450nobodyさん:2006/12/12(火) 17:47:39 ID:???
$aが0のとき、empty($a)がTRUEになるのですが、
マニュアルだとnullや0はFalseを返すと書いてあるのになぜでしょうか?
451391:2006/12/12(火) 17:48:07 ID:???
>>393
>>402
超ありがとう!!
やっぱり、いったんfetchAllしてforeachで回すのがいいか。
452nobodyさん:2006/12/12(火) 17:49:40 ID:???
>>450
よく嫁。まったく逆。
453nobodyさん:2006/12/12(火) 18:07:44 ID:???
>>452勘違いしました(汗
クエリーから送った0だと空扱いにならないんですがなぜでしょうか?

この記述はAが出力されますが、クエリ文字を$aにおくるとBになるんです。
$a = 0;
if (empty($a)){
echo "A";
}else{
echo "B";
}
454nobodyさん:2006/12/12(火) 18:40:22 ID:???
0とnullの違いわかってる?
455nobodyさん:2006/12/12(火) 18:42:34 ID:???
>>453
よくわからないので、できればソースを。
456nobodyさん:2006/12/12(火) 18:44:14 ID:???
>>453
echo($a)は何が出るん?
457nobodyさん:2006/12/12(火) 18:55:16 ID:???
>>454
おい、emptyでは0もnullもいっしょw
458453:2006/12/12(火) 19:08:03 ID:???
すいません、勘違いしてました。
なるわけないですね。
459nobodyさん:2006/12/12(火) 19:14:38 ID:???
>>458
すげぇ、おちだなwwwwwwwwwwwwwwww
460nobodyさん:2006/12/12(火) 19:14:43 ID:???
混乱させた罪は重い
461411:2006/12/12(火) 19:26:37 ID:j1klqrWE
エラーを全表示にしたら、Fatal error: Maximum execution time of 30
というエラーが出ていて、php.iniを修正したら解決しました。
お答えくださった方々、ありがとうございました。
462nobodyさん:2006/12/12(火) 19:45:44 ID:???
>>461
おつかれ。
463nobodyさん:2006/12/12(火) 22:08:04 ID:???
>>458
どういうことだったん?
464nobodyさん:2006/12/12(火) 22:23:01 ID:aSyT8QN3
前スレの >>883>>888 に関する便乗質問なんですが、
http://pc8.2ch.net/test/read.cgi/php/1164209222/888
888さんの言うとおりだとすれば、
今現在ブラウザから第三者がUPした任意のファイルをダウンロードできるサービスをやってるところは
全てブラウザによっては脆弱性をはらんでいる、
ということでしょうか?

さすがに大手ではそれはないような気がしますが、
何か回避策ってありますか?
個人的に思いついたのは、強制的に圧縮処理してからダウンロードさせる、
という方法ですが、これ以外に方法はあるでしょうか?
465nobodyさん:2006/12/12(火) 22:34:08 ID:???
ある。
466nobodyさん:2006/12/12(火) 22:37:06 ID:???
>>465
kwsk
467nobodyさん:2006/12/12(火) 22:48:27 ID:???
>>464
あまりにも華麗に入ってきたから気づかなかったが、よく考えたら
その質問は



い。
468nobodyさん:2006/12/12(火) 22:54:08 ID:???
「第三者がUPした任意のファイルをダウンロード」する時点で、
全てはダウンロードする側の自己責任。
469nobodyさん:2006/12/12(火) 23:01:51 ID:???
>>468
つりですか?

>>467
俺も知りたいから教えて栗
470nobodyさん:2006/12/12(火) 23:02:59 ID:???
XSS絡みでPHP使用する場合の話だから
あながち完全にスレ違いってわけでもない
471nobodyさん:2006/12/12(火) 23:16:22 ID:???
>>464をスレ違いじゃないとすればApacheの設定やJavaScriptの使い方
を尋ねてくる輩まで全部世話しないといけなくなるぞ。
>>464の質問にはPHPに絡むと思われる記述はどこにもないじゃん。
472nobodyさん:2006/12/12(火) 23:42:04 ID:Fq05kJcv
SESSIONって使ってますか?
自分でファイルに書き出して、セッション管理する方が
サーバーの設定に惑わされることもなくていいように感じるけど。
473nobodyさん:2006/12/13(水) 00:01:48 ID:???
ぱくられたらおわり
474ID出し忘れてました:2006/12/13(水) 02:35:11 ID:e6aGkkm7
サーバの引越しとかDBの調整とかスクリプトのテストとかをするときに、
アクセスしてきた人に対して一時的に「メンテナンス中」と表示するには
どうしたらいいんでしょうか? よく大手サイトなどでメンテナンスのときになってるようにしたいです。

イメージとしては、管理者(自分)だけはいつも通りサイトにアクセスできるけど、
一般の訪問者はどのページにアクセスしようとも、
mod_rewriteか何かで、メンテを知らせるページに強制ジャンプさせる…みたいな感じです。
475nobodyさん:2006/12/13(水) 03:04:57 ID:???
if ($_SERVER['REMOTE_ADDR'] != "おまいのIP") {
 header('Location: メンテナンス中のページ');
 die();
}
476nobodyさん:2006/12/13(水) 04:28:27 ID:e6aGkkm7
>>475
なるほど、その手がありましたか!! 意外と盲点だった・・・。

大規模サイトもそんなシンプルな手法なのでしょうか?
477nobodyさん:2006/12/13(水) 04:37:43 ID:???
言っておくけど、この板に大規模サイトなんて触ったことある人はいないよ。
478nobodyさん:2006/12/13(水) 04:41:01 ID:???
大規模サイトってどのくらいの規模以上のものを言うの?
yahoo並、とかいうあいまいな基準を出されても分からないから数値でよろ。
479nobodyさん:2006/12/13(水) 04:51:42 ID:???
>>477
なんでいないと決め付けるの?
案外身近にいるもんだよw
480nobodyさん:2006/12/13(水) 06:02:04 ID:???
>>478
少なくとも、1サイトで「ロードバランサ+Webサーバ2台+DBサーバ1台」
という構成が、大規模サイトの最低基準だと仮定すると??
481nobodyさん:2006/12/13(水) 06:17:25 ID:???
>>480
その構成は金の無駄じゃね

ロードバランサなんて使わずに、DNS ラウンドロビン すりゃいいじゃん。


482nobodyさん:2006/12/13(水) 07:18:26 ID:???
>>481
問題点
1.耐障害性の欠如
分散先のサーバの障害検知は原則として不可能である。
そのため、分散先のサーバのうちの1つだけがサービス不能な場合等に復旧が遅れがちである。
2.分散先サーバの通信継続性
接続ごとに接続先が違うと、接続の継続性が求められる
サーバの場合に問題が起きる可能性がある(暗号化通信など)。
3.分散先サーバの同期
分散サーバのコンテンツの内容が同一でないと、
接続に問題が起きる可能性がある(Webサーバでのリンクなど)。
4.DNSキャッシングの情報更新の際に生じる時差
5.トラフィック負荷を分散する際の予期せぬ偏り

1〜5の問題があるからロードバランサーなんだろうw
483nobodyさん:2006/12/13(水) 07:30:45 ID:???
>>482
見栄を張りたいのはわかるが、「DNSラウンドロビンの意味を調べに行ったら
偶然カコイイ説明を見つけたよ!みんな聞いてよ!」という文とともに引用であ
ることくらいは書こうね^^
http://ja.wikipedia.org/wiki/DNS%E3%83%A9%E3%82%A6%E3%83%B3%E3%83%89%E3%83%AD%E3%83%93%E3%83%B3
484nobodyさん:2006/12/13(水) 07:40:39 ID:???
>>477-480
今まで関わったWeb系で一番規模が大きいのは、
Webサーバー6台、DBサーバー2台、メールサーバー1台、SSL処理サーバー1台、ロードバランサー1台だった。
(大規模サイトかわからんがな。ちなみに携帯メインサイト PCサイトもあるけどあくまでも携帯中心だった)
PHPが使われてたのはPCサイトだけだったけど・・・
Perl60% Java30% PHP10%なサイトだった。最初はJavaだけだったはずが、PerlとPHPもやることに/ ,' 3 `ヽーっ

485nobodyさん:2006/12/13(水) 07:42:41 ID:???
>>482
>1〜5の問題があるからロードバランサーなんだろうw
他人の文章を丸パクリしたくせに生意気なこと言える立場かよw
486nobodyさん:2006/12/13(水) 07:46:39 ID:???
>>483
ちょw そうです。見栄が張りたいんですw
わざわざ検索されたんですねw
乙ですw
487nobodyさん:2006/12/13(水) 07:59:40 ID:???
>>486
うわぁw こいつ完全に開き直ってますwww
>わざわざ検索されたんですねw
>乙ですw
余裕あるように見せても、お前、実際かなり恥ずかしいぞwwwww
488nobodyさん:2006/12/13(水) 08:00:48 ID:???
>>485
ごめんね、刺激しちゃってw
489nobodyさん:2006/12/13(水) 08:03:04 ID:???
>>488
荒れるから知ったかぶり厨は消えてね。
490nobodyさん:2006/12/13(水) 08:11:04 ID:???
>>482 ┐(´ー`)┌ ぷっ
まぁ、これは槍玉に挙げられてもしょうがないわな。
491nobodyさん:2006/12/13(水) 09:59:21 ID:???
お願いだから、くだらなさ、レベルの高さ、規模の大きさに関連する話題でこのスレを荒らさないでください。
492nobodyさん:2006/12/13(水) 10:10:40 ID:???
別に話題としてはしてもいいけど、
煽りにいちいち反応するなよ。餓鬼じゃあるまいし。
493nobodyさん:2006/12/13(水) 11:33:34 ID:teIa09dB
教えてください。

$a = array("あ",0,"い","う","え","お");
$b = array("か",7,"き","く","け","こ");
$c = array("さ",9,"し","す","せ","そ");
$d = array("た",1,"ち","つ","て","と");
$e = array("な",5,"に","ぬ","ね","の");
$f = array("は",6,"ひ","ふ","へ","ほ");

という$a〜$fの配列を、数字順に$a,$d,$e,$f,$b,$cという風に
並び替えたいのですが、スマートに書けません。
どんな書き方が負荷のかからないスマートな書き方なんでしょうか?
494493:2006/12/13(水) 11:35:08 ID:teIa09dB
$list = array($a,$b,$c,$d,$e,$f);
$New_list = array();
$n = 0;

while(count($list) > $n){
 if($n){
  $f = 1;
  $m = 0;
  while($f){
   $x = $list[$n][1];
   $y = $New_list[$n - $m - 1][1];
   if($x < $y){
    $New_list[$n - $m] = $New_list[$n - $m -1];
    $New_list[$n - $m - 1] = $list[$n];
    if($n == $m){ $f = 0; }
   }else{
    $f = 0;
    $New_list[$n - $m] = $list[$n];
   }
   $m++;
  }
 }else{
  $New_list[$n] = $list[$n];
 }
 
 $n++;
}
495nobodyさん:2006/12/13(水) 11:44:20 ID:???
配列の2番目($a[1]〜$f[1])を配列にいれて、
sortすればいいだけでは?
496nobodyさん:2006/12/13(水) 11:53:06 ID:???
>>492
使い古された論法だが、おまいもいちいち反応してるやんけ。

>>493
usort($list, cmp_arr);
function cmp_arr($a, $b) {
return $a[1] < $b[1] ? -1 : $a[1] > $b[1];
}
497493:2006/12/13(水) 12:05:12 ID:???
>>495>>496

すばらしく できました。
ありがとう。
498nobodyさん:2006/12/13(水) 12:06:53 ID:BBaxillB
テキストファイルをfile()で配列にして、そこからE(全角)で始まる
英数字の文字列を取り出したいのですが、うまくいきません。(処理されない)

$file_array=file("$filename.txt");
for($i=0; $i < 10; $i++)
{
  $str = mb_ereg("[a-zA-Z][a-zA-Z0-9]*",$file_array[$i]);
  if($str)
  {
$gakuseki = $str;
echo "$gakuseki"<br>\n;
  }
//その他の項目
}
このような感じで、Eから始まる文字列を抜き出す処理を加えると、
何も処理されなくなってしまいまして。。。
よろしければ、お教え願いたく。
499nobodyさん:2006/12/13(水) 12:19:07 ID:bSWpJk+Q
JpGraphで折れ線グラフ作ってるんですけど、
プロットに適当な文字列を表示することってできるんでしょうか?
プロットの値を表示することしかできないんでしょうか?

返答、お願いします。
500nobodyさん:2006/12/13(水) 12:30:37 ID:???
>>498
$lines = new ArrayIterator(file('file.txt'));
for ($lines->rewind(); $lines->valid(); $lines->next()) {
mb_ereg("[a-zA-Z][a-zA-Z0-9]*", $lines->current(), $matches);
list($str) = $matches;
echo ($str ? $str."<br />\n" : '');
}
501493:2006/12/13(水) 12:38:04 ID:teIa09dB
>>496で教えていただいたものについて、

$x = 1;
usort($list, cmp_arr);
function cmp_arr($a, $b) {
 return $a[$x] < $b[$x] ? -1 : $a[$x] > $b[$x];

}

と書き換えましたが正しく動作しませんでした。
return $a[1] < $b[1] ? -1 : $a[1] > $b[1]; の数字部分は変数ではなく
数字を入れないとダメなんでしょうか?
502nobodyさん:2006/12/13(水) 12:42:54 ID:???
関数の中はスコープが違うから$xは未定義だよ
503493:2006/12/13(水) 12:43:48 ID:teIa09dB
失礼しました。
$x = 1 を書く位置が悪いんですね・・・ すみません
504nobodyさん:2006/12/13(水) 12:52:18 ID:???
三項演算子は読みにくいから使わないほうがいいよ
505nobodyさん:2006/12/13(水) 12:53:37 ID:???
>>500
Iterator使うならforeachしようよ。そしてforeach使うなら、最初からただのarrayでおk。
506nobodyさん:2006/12/13(水) 14:09:34 ID:???
>>484
で、構成は分かったけど、それでユーザー数とかPVとかはどれくらい?
あと1日のトラフィック量とか、そういうのが分からないと
サイトの規模が分からないでしょう。
507nobodyさん:2006/12/13(水) 14:11:45 ID:???
三項演算子が読みづらいってことはないでしょ。
使いたい人は使えばいい。
508nobodyさん:2006/12/13(水) 14:16:06 ID:???
クンニされたい…。
509nobodyさん:2006/12/13(水) 14:44:06 ID:???
三項演算子なんて実務で使ったら上に殺される
510nobodyさん:2006/12/13(水) 14:46:56 ID:???
それなら俺は殺されまくりんぐだなw
511nobodyさん:2006/12/13(水) 14:55:56 ID:???
>>504, >>509
なにこいつら?たかが三項演算子くらい使いたいところで使えばいいじゃん。
三項演算子くらいで文句言うのはキモイ。

>>505
まぁ確かにOOPも理解できないお前にはIteratorは一生無縁だろうな。
512nobodyさん:2006/12/13(水) 15:04:53 ID:???
質問です
php 5.1
mysql 5.0
apache 2.0
zend framework 2.0

AJAX系の非同期通信で、エラーが出たときに、画面を遷移させたいのです。

ただリクエストの戻り値の行き先を<div>タグ内にしていて、
実行すると、エラー画面が、その<div>に全部入ってしまいます
現状、 header("Location: error/index"); みたいなことしています
(zend controller無しだと、headers already sent みたいなエラーで怒られますが…)

PHP内で完結して、画面を遷移or移動させる方法って、他にありませんでしたっけ?
(JavaScript込みなら方法はあるのですが、安全性を求められている所なので使えません…)
513nobodyさん:2006/12/13(水) 15:05:26 ID:???
>>511
PHPは言語自体がOOP向きじゃないから>>505みたいなカスが出てきても仕方ないと思うが。

自分が使えないからって
>ただのarrayでおk
とか言いだすのはひどすぎるけどな。
514nobodyさん:2006/12/13(水) 15:10:53 ID:???
もうお舞ら可燃度高すぎw
もうちょっと冷静にいこうよ。
515nobodyさん:2006/12/13(水) 15:12:01 ID:???
>>512
>・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ http://pc8.2ch.net/php/subback.html

オレはsymfony派だからZFは使ったことないが
http://framework.zend.com/manual/ja/zend.controller.rewriterouter.html
が参考になるんじゃないの?
516515:2006/12/13(水) 15:18:54 ID:???
517nobodyさん:2006/12/13(水) 15:30:00 ID:???
全角英数字の文字列を取り出して、半角に変換すると文字化けしてしまう
のですが。(文字列を取り出した段階では文字化けしていません)

$get_id = substr($array_id,0,16); ・・・・ex A0103360
$convert_id = mb_convert_kana($get_id,"a");

このようにして取り出した全角英数字の文字列を半角に変換したいのですが
文字化けしてしまいまして。どうすれば正常に変換されるでしょうか?


518nobodyさん:2006/12/13(水) 15:33:43 ID:???
>>517
substr() -> mb_substr()にしてみて。
519nobodyさん:2006/12/13(水) 15:35:05 ID:???
>515>516
ありがとう〜〜〜 516のメソッドのページは見たことありませんでした〜〜 熟読してみます〜〜



……………やっぱPHPで、ページ遷移させる方法ってのありませんでしたっけ?
520517:2006/12/13(水) 15:40:10 ID:???
>>518
回答どうもです。
mb_substr()にしてみましたが、文字化けがなおりませんでした。
ほかに手はないものでしょうか?
521nobodyさん:2006/12/13(水) 15:41:12 ID:???
Zend_Controller_Actionクラスの_forward()というメソッドで
エラーが発生したときにエラー処理用のActionに処理を移せば
いいかと。

class IndexController extends Zend_Controller_Action
{
public function indexAction()
{
//エラーがあったら他のActionに処理を移す
if ($error) $this->_forward('IndexController', 'errorAction');
}

public function errorAction()
{
//エラー処理
}
}
522517:2006/12/13(水) 15:47:48 ID:???
mb_internal_encoding を使ったら文字化けなおりました。
523nobodyさん:2006/12/13(水) 15:49:06 ID:???
>>522 それはよかった。おつかれ。
524nobodyさん:2006/12/13(水) 15:59:17 ID:???
書き込まれたソースは半角スペースが削除されて読みにくいので、よかった
らこれで変換してから書き込んでください。

<?php
$string = <<<END
//code
END;
$string = preg_replace('{ }', ' ', $string);
$string = preg_replace('{\t}', '    ', $string);
echo $string;

できれば誰かJavaScript版を作ってくれると使いやすくていいと
思うんだけど。
525nobodyさん:2006/12/13(水) 16:02:45 ID:???
>>524
それはいいけど、preg_replaceよりstr_replaceのほうがいいんじゃね、この場合?
526nobodyさん:2006/12/13(水) 16:31:47 ID:???
preg_replaceの第一パラメータは/pattern/にしないと。

preg_replace("/pattern/", "replacement", "strings");
527nobodyさん:2006/12/13(水) 16:32:05 ID:???
メール送信について相談なのですが、
BCC送信のように、複数宛先を一括送信する場合は、配列にメールアドレス
を入れて、mail関数の処理をforで回すという考えでいいでしょうか?

また、特別なソフトを使わない場合、PHPでメール送信するには
mail関数やsendmailを使う以外無いのでしょうか?処理速度が心配です。
528nobodyさん:2006/12/13(水) 16:34:25 ID:???
{}でもおkだけど//のほうがなじみがあるね
529nobodyさん:2006/12/13(水) 16:36:04 ID:???
>515>516>521
返信ありがとうございます〜 勉強させて頂きました感謝です。

結論から言うと、
$this->_forward('IndexController', 'errorAction');
で、確かにページは出ました。 「<div>タグ」の中に;;

クライアント XMLHttpRequestを送信

鯖 forwardで違うアクションのページを出力

クライアント あ、戻り値?何? XMLHttpRequestでしょ? タグの中にinnerHTMLねw

戻り値が何であろうと、根こそぎjs上で指定された場所っぽいです
アクションは、途中で変わったので、正規アクションが動く前に処理できる所まで着ました。
もう少しの所まで来た気がします。

530nobodyさん:2006/12/13(水) 16:36:09 ID:+OBhpWUX
2006年12月13日を2006/12/13の形にしたいのですが
どうするのが簡単でしょうか?
531nobodyさん:2006/12/13(水) 16:57:59 ID:???
>>530
正規表現による置き換え
532nobodyさん:2006/12/13(水) 17:04:00 ID:???
$str = "2006年12月13日";
$str = preg_replace('/年|月/', '/', $str);
$str = preg_replace('/日/', '', $str);

echo $str;
533nobodyさん:2006/12/13(水) 17:05:22 ID:???
指定したディレクトリの .txt .pdf のファイルを一括して削除
したいんですけど、何か方法はないでしょうか?
534nobodyさん:2006/12/13(水) 17:25:49 ID:+OBhpWUX
>>531-532
ありがとうございました。
535nobodyさん:2006/12/13(水) 17:28:41 ID:???
$hoge[$num]
感覚的にこんなことがしたいのですがどうすればいいでしょうか?
$numには英数字が入っています
536nobodyさん:2006/12/13(水) 17:35:20 ID:???
>>535
${"hoge".$num}

>>533
ディレクトリなめて
拡張子がそれらか比較
該当したらファイル削除
537nobodyさん:2006/12/13(水) 17:37:15 ID:dNCg3wG0
$hoge["{$num}"]
538nobodyさん:2006/12/13(水) 17:41:09 ID:F8GTcB6w
ttp://www.spencernetwork.org/memo/tips-5.php

を参考にwebサーバ上にあるtxtファイルをダウンロードさせたいのですが、
ダウンロードダイアログが開かず、普通にブラウザ上で中身が表示されてしまいます。
原因は何でしょうか?
539nobodyさん:2006/12/13(水) 17:42:48 ID:???
ヘッダが濃厚
540nobodyさん:2006/12/13(水) 17:49:49 ID:???
IEのバージョン
541nobodyさん:2006/12/13(水) 18:32:58 ID:???
PHPで.aiファイルをswfやjpgに変換できるようなライブラリとかありますか?

やりたいことはアップロードされた.aiデータをswfをリアルタイム変換したいんですけど。
542nobodyさん:2006/12/13(水) 18:51:42 ID:???
<?php
$url = "http://2ch.se/";
$fp = @fsockopen($url,80,$errno,$errstr,5) or die("ゴメン無理");
print $fp;
?>

なぜか表示されません原因は何でしょうか?
543542:2006/12/13(水) 19:01:39 ID:???
修正
目的のURLが表示されません
544nobodyさん:2006/12/13(水) 19:02:52 ID:???
545nobodyさん:2006/12/13(水) 19:11:59 ID:???
接続してるだけでおk?
546542:2006/12/13(水) 19:21:00 ID:???
<?php
$url = "http://2ch.se/";
$fp = @fsockopen("$url", 80, $errno, $errstr, 30) or die("ゴメン無理");
if (!$fp) {
echo "$errstr ($errno)<br />\n";
} else {
$out = "GET / HTTP/1.1\r\n";
$out .= "Host: $url\r\n";
$out .= "Connection: Close\r\n\r\n";

fwrite($fp, $out);
while (!feof($fp)) {
echo fgets($fp, 128);
}
fclose($fp);
}
?>

これでも無理でした
547nobodyさん:2006/12/13(水) 19:32:53 ID:???
$url = "2ch.se";
548542:2006/12/13(水) 19:58:14 ID:???
ありがとうございます、解決しました。
549505:2006/12/13(水) 21:54:09 ID:???
>>500,511,513
本気で言ってるのか、ただ煽りたいだけなのか・・・
まず500のforの部分をforeach ($lines as $line)とでも書いたらどうよ。
しかもそのケースだったら、Iterator使っても意味なさすぎ。
550542:2006/12/13(水) 22:06:51 ID:???
たびたびすみません
>>546でページを表示したときに出る
HTTP/1.0 200 OK content-type:text/html
という表示を消したいのですが
>>546のどこをどう変えればいいのでしょうか?
551nobodyさん:2006/12/13(水) 22:14:35 ID:???
>>549
三項演算子の不便さをキモイという素人なんだから放っておけ。
552538:2006/12/13(水) 22:24:45 ID:sfCDWF8R
>>539
kwsk
553nobodyさん:2006/12/13(水) 22:24:59 ID:???
>>551
三項演算子が不便!?なにこのド素人。
お前一回くらいオープンソースで開発されてるアプリケーションの
ソース見てみろよ。自分がいかに恥ずかしいことを言ってるか気づ
くよ。
554nobodyさん:2006/12/13(水) 22:27:27 ID:???
>>553
大多数が見づらい書き方を推奨するなよタコ。
どこのコーディング規約でもたいてい禁止されてる。
555nobodyさん:2006/12/13(水) 22:31:28 ID:???
>>554
なるほど。それは知らなかった。
>どこのコーディング規約でもたいてい禁止されてる。
では早速、禁止されてる有名なプロジェクトあげてみてくれる?
556nobodyさん:2006/12/13(水) 22:34:38 ID:???
>>554
「たいてい」と言うほど禁止されてはいないだろ。
一部では禁止してるみたいだけど、さすがに言いすぎ。
557nobodyさん:2006/12/13(水) 22:39:02 ID:???
そもそも三項演算子も理解できない、読みにくいとか言うレベルの人間が参加してるプロジェクト
なんて大したことないだろ。
大口をたたいたやつは、早く三項演算子禁止のプロジェクトをあげろよ。たいていは禁止らしいか
ら山ほどあるはずだろ。
558nobodyさん:2006/12/13(水) 22:45:55 ID:???
たいてい禁止ではなくてたいてい"非推奨"だな。
三項演算子なんて一般的じゃないし、可読性が大事だからね。
559nobodyさん:2006/12/13(水) 22:48:33 ID:???
>>557
>そもそも三項演算子も理解できない、読みにくいとか言うレベルの人間が参加してるプロジェクト
>なんて大したことないだろ。

何言ってるんだ・・・
個人的に理解できてても、読みなれてても、
複数人がらみのプロジェクトなら
読みやすいほうを採用するに決まってるだろう・・・
560nobodyさん:2006/12/13(水) 22:48:42 ID:???
>>496
return $a[1] < $b[1] ? -1 : $a[1] > $b[1];
                〜〜〜〜〜〜
これ何か意味あるの?
561nobodyさん:2006/12/13(水) 22:51:28 ID:???
>>549
お前の言うこともわかる。たしかにforeachのほうが若干すっきりするしな。
でも、pythonとかjavaをやった人間には>>500のほうがしっくりくる気がする。
PHPにはPHPの流儀があるだろうから、それぞれ好きにやればいいんじゃないの?
562nobodyさん:2006/12/13(水) 22:54:47 ID:???
>>559=>>554
決まってるのはわかったから、山ほど実例挙げてよ。
563nobodyさん:2006/12/13(水) 22:55:56 ID:???
すいません、CSVから出力するときに、
順番を後ろから出力する載ってどうやったらいいでしょうか?

1〜10行までデータがあった場合、10行目から出力したいのです。
564nobodyさん:2006/12/13(水) 23:00:14 ID:???
>>562
自分で調べろよ。
PGになればわかるからそういう会社入れ。
禁止っていうのは言い過ぎたかもしれんが、
よほどの事情がない限り使うなとは言われるだろう。
565nobodyさん:2006/12/13(水) 23:02:56 ID:???
>>552
そのままコピペしたらいけたよ。
IEでもだめかい?
header出力するまえに何も出力ないよね?

>>550
それらの文字列なら出力しないようにすればどう?
もしくはfile_get_contents使えば?
566nobodyさん:2006/12/13(水) 23:04:43 ID:2BlCBXrB
PHPのプログラムなどでよく、

送信→Now loadingの画面→送信完了ページ

のようなプログラムがありますが、これはどうやっているのでしょうか?
構造のヒントだけでもいいので、アドバイスいただければと思います。
567556:2006/12/13(水) 23:06:35 ID:???
>>564
>禁止っていうのは言い過ぎたかもしれん
潔いじゃん。負け惜しみを言うよりよっぽどカコイイな。
完全に見直した>>564=>>554=>>559。きつく言って悪かったな。
568nobodyさん:2006/12/13(水) 23:10:29 ID:???
>>566
ロード画面は<meta http-rquiv="refresh"〜>でやれば簡単でいいよ。
569nobodyさん:2006/12/13(水) 23:18:09 ID:???
>>567=オタクきもいよ
570567:2006/12/13(水) 23:20:04 ID:???
>>569
あ、やっぱり?
自分でもそう思ったんだけど、謝るのも礼儀かなと。
571nobodyさん:2006/12/13(水) 23:23:15 ID:???
>>570 珍しいよ、お前みたいなタイプは。でも、別に悪いことではないわな。
572566:2006/12/13(水) 23:35:39 ID:???
>>568
出来ました!ありがとうございます。

ただ、これの場合、繰り返し処理の動作など思い処理の場合も
有効なのでしょうか?
573nobodyさん:2006/12/13(水) 23:41:15 ID:???
>>572
ベンチはかって十分な時間持たせればOK
574nobodyさん:2006/12/13(水) 23:56:39 ID:???
まったくお前ら良く燃えるな。
575nobodyさん:2006/12/13(水) 23:57:08 ID:???
冬だからあったかくていいぜ?
576nobodyさん:2006/12/14(木) 00:00:58 ID:???
>>575
いや本人たちはいいかも知れんが、見てる分には
ちっとも暖まらんぞw
577nobodyさん:2006/12/14(木) 00:07:49 ID:???
最後のともしびだから、優しく見守ってね
578nobodyさん:2006/12/14(木) 00:18:53 ID:???
>>561
ん?PHPのIteratorはforeachでまわせるってことだよ。
Iteratorの5つのメソッドを明示的に呼び出す必要はないの。
明示的に呼び出すのは、イテレーションの途中で中断してもう一回再開したり、細かいことをするために使う面もあるが、Webサイトの構築でそんなシチュエーションには残念ながら出会ったことはない。
通常はforeachを用いておけば、rewindやcurrentなど、>>500と全く同じ順序で自動的に呼び出される。
pythonやjavaをやっていると>>500がしっくり来るってのは、よーわからんな。
C++のSTLと比較するなら、しっくりくるってのもまだわかるけど。
579nobodyさん:2006/12/14(木) 00:23:44 ID:???
>>578
javaには拡張for文もあるし、Iteratorに拘る必要もない
580nobodyさん:2006/12/14(木) 00:35:34 ID:???
まぁ、扱いなれた構文で書きたいというのも分かるし、
PHPは似たような関数を各種取り揃えてる辺りからも
そういったニーズに応えようとしてるわけだから、
「PHPの構文にある限りは好きなの使えばよろしい」
でFAなんでないの?
PHPならこの書き方!みたいのはそんなに無いと思う。
(大抵は制約くらいでしかそんな場面にならない)
581nobodyさん:2006/12/14(木) 00:43:01 ID:???
>>579
それ俺が知らないと思って言ってるの?何を主張したいのか全然わからないんだけど・・・。
javaの拡張for文もやっていることはイテレーション(リスト状の構造を順番に走査)なわけで。
むしろ拡張for文(=構文糖)を使うってのは、PHPでいうとfor ($lines->rewind();・・・のかわりにforeach ($lines・・・を構文糖として使うことと方向が同じじゃないか。

>>580
いや、言いたいことはわかるけど、そもそも>>500で無意味にIteratorを持ち出している点、foreachで書けるものを無意味&煩雑なfor文に展開している点などは、俺的につっこみどころなんだが。
そもそも俺の経験上、PHPのIterator自体お勧めしないものの一つだしな。
582nobodyさん:2006/12/14(木) 00:51:48 ID:6QjdxOSQ
PHPのスクリプトを組んでいるのですが、分からない点がありましたので質問させてください。

変数に文字列を格納していて、その中から特定の文字を2箇所見つけて
その間にある文字列を取り出したいのですが、どのように記述したらよいのでしょうか?

nfai_usdgvga_jgmandfak_flahogek_glangol_ialgkka

のアンダーバーから次のアンダーバーの間を取り出し、その中にhogeが含まれる時に、
別の変数に取り出すということをしたいです。

突然の質問で、大変申し訳ありませんが何卒よろしくお願い致します。
583nobodyさん:2006/12/14(木) 00:56:35 ID:???
explodeして、それをforeachでループして、ループの中でstrposしてfalseじゃなかったら変数に入れればいい
584nobodyさん:2006/12/14(木) 00:57:31 ID:???
>>582
explode()
585nobodyさん:2006/12/14(木) 01:06:07 ID:6QjdxOSQ
ありがとうございました。アドバイスを参考に続けたいと思います。
586nobodyさん:2006/12/14(木) 02:09:24 ID:???
こう、スレを見返してみると、文字列系の質問が多いな

大体、explode, implode, array_search, array_shift, foreach, eregとかで、答えが出る感じに思う。
と、徹夜中のリーマンより。
587nobodyさん:2006/12/14(木) 04:08:49 ID:???
文字列系の関数と配列系の関数は、全部憶えておいて損はないよな。
588nobodyさん:2006/12/14(木) 10:09:59 ID:???
覚える必要はないけどなw
一度、全部読んでおくだけで十分
589nobodyさん:2006/12/14(木) 10:22:37 ID:???
よく使うやつとか、こういうのがあったなぁぐらいでいいね。
あとはリファレンスを見ればいいし。
590500:2006/12/14(木) 10:38:40 ID:???
>>581
オレが変な書き方をしたせいで迷惑をかけてるようで申し訳ないです。
あとから拡張とか変更が楽かな?と思って、ついくせでIteratorを使ってし
まいました。でも、みなさんの書き込みを読んでるとその必要も無さそうな
のでこれからはforeachでまわすことにしようと思います。

煽りの原因をつくってしまってすいません。
591nobodyさん:2006/12/14(木) 10:41:27 ID:???
すみません、質問させてください。

たとえばループ処理系の構文(for等)は、
breakでループを抜けさせることができるようですが、
if構文内で、処理を途中でも抜けさせるような関数はありますか?
592nobodyさん:2006/12/14(木) 10:58:49 ID:???
無いんじゃないの
593nobodyさん:2006/12/14(木) 10:58:53 ID:???
>>591
ないよ。なぜなら必要性がないから。
処理させたくないなら、単にif文をネストして処理する条件を
増やしていけばいい。

if ($a) {
 if ($b) //ここで$bがfalseならbreak;したのと同じになる
 {}
 //もちろん$bの評価にかかわらずここは実行されるけど、それは
 //書き方を工夫するしかない。
}
594591:2006/12/14(木) 11:07:47 ID:gRu0cvf6
>>592-593

トンクス!
あぁ、なるほど。
若干書き方を変えるだけでどうにもなりますものね。
1個勉強になりました、ありがとうございます!
595nobodyさん:2006/12/14(木) 11:13:10 ID:???
複数の入力値があって、
全て入力されているかどうかのチェックが入っています。
入力してなかった箇所は入力してくださいと出すのですが、
送信した際、入力してた方の値もリセットされるので、
inputのvalue属性に入力した値を入れて、入力を保持した感じにしているのですが、
入力値がバックスラッシュ(\)だった場合、
なぜかバックスラッシュが2倍の数になって値に入っているようです。
これは何が原因なのでしょうか?
596nobodyさん:2006/12/14(木) 11:17:50 ID:???
>>595
magic_quotes_gpcの設定じゃないかな。
597nobodyさん:2006/12/14(木) 12:39:41 ID:???
配列におけるforeachのように、文字列を一文字ずつ取り出す関数や構文はありませんか?
598nobodyさん:2006/12/14(木) 13:05:13 ID:???
upローダー作ってますが、
phpのみでフォルダごとアップロードするのって不可能でしょうか?
javaアプレットあたりとからめる方法しか思いつかないですが・・。
599nobodyさん:2006/12/14(木) 13:22:58 ID:???
>>598
それはブラウザ側の問題なのでPHPの処理では無理
input=fileの制限上無理

ありえるとすればzipを鯖で解凍してディレクトリ生成後その中に展開
600nobodyさん:2006/12/14(木) 13:44:49 ID:???
>>598
単一のクライアントならクライアントのほうにFTPDを立てて、
サーバーからFTP接続してダウンロードさせるってのもトリッキーながら出来る。
601nobodyさん:2006/12/14(木) 16:53:49 ID:???
mysqlをやってみようと思ってますが、初めからpear等を使うより
関数を使って処理した方が覚えるにはいいですか?
602nobodyさん:2006/12/14(木) 17:04:32 ID:???
>>601
うん
603nobodyさん:2006/12/14(木) 17:16:12 ID:???
>>597
for($i = 0; $i <= strlen($str); $i++) { echo substr($str, $i); }
とか。
604nobodyさん:2006/12/14(木) 17:18:55 ID:???
>>603
せめてmb_strlenとmb_substr使おうぜ
605nobodyさん:2006/12/14(木) 17:30:18 ID:???
>>602
d
606nobodyさん:2006/12/14(木) 18:32:11 ID:???
mbなんてトラブルの元はインスコしてないよ
607nobodyさん:2006/12/14(木) 18:36:32 ID:???
>>606
       ____
     /⌒  ⌒\ ホジホジ
   /( ●)  (●)\
  /::::::⌒(__人__)⌒::::: \  <で?マルチバイトの文字数える時はどうやるのかな?
  |    mj |ー'´      |
  \  〈__ノ       /
    ノ  ノ

608nobodyさん:2006/12/14(木) 18:41:40 ID:???
>>606
バイナリで判断してなんていわないでくれよw
609nobodyさん:2006/12/14(木) 20:25:40 ID:???
マニュアル読んでると、
new XXXみたいにしてから使う関数とかもあるのですが、
これは普通の関数とは何が違うのでしょうか?
610nobodyさん:2006/12/14(木) 21:08:15 ID:IgfNuu2k
ファイルの内容を配列に読み込んで、ある行のデータのみ削除し、
またファイルに書き込みたいのですが、流れがわかりません。
現在のやりかたは、
1.file関数でファイルAを配列に読み込む
2.不必要なデータをunset関数で配列から削除
3.削除した後の配列をファイルBに書き込む
4.ファイルAをunlink関数で削除し、ファイルBの名前をrename関数でファイルAにする
というやり方を行っていますが、もっと効率の良いやり方がありましたらご教授お願いいたします。
【テキストファイルの内容】
一行目:あか
二行目:きいろ
三行目:ぴんく
四行目:むらさき
611nobodyさん:2006/12/14(木) 21:22:24 ID:???
>>609
それは関数ではなくクラス
612nobodyさん:2006/12/14(木) 21:25:01 ID:???
適当な変数にファイル内容を1行ずつ読み込みながら流し込んでいく
要らない部分は流さない。
最後までいって変数の内容を元のファイルに上書き。

じゃだめなのか?
613nobodyさん:2006/12/14(木) 21:26:23 ID:???
>>610
$lines = file($filename);
//ここで余分な行削除
file_put_contents($filename, implode('', $lines));
// もしくは$fp = fopen($filename, 'w'); fwrite($fp, implode('', $lines)); fclose($fp);
614nobodyさん:2006/12/14(木) 21:34:16 ID:???
>>601
PEARとかADOとか不要。
特に一人で趣味的に開発してるんなら、わざわざ抽象化する意味ナシ。
615610:2006/12/14(木) 21:52:13 ID:IgfNuu2k
>>612さん>>613さんアドバイスありがとうございます。
php4と互換性もたせるために>>613さんの後者の記述を拝借させていただきましたが、
implodeがないとファイルへの書込みがおかしくなってしまいます。
fwriteは複数行のデータ(多次元配列ですかね?)は書き込めないんですね。
616nobodyさん:2006/12/14(木) 21:58:32 ID:???
>>615
fwriteの第2引数は文字列だと、マニュアルに書いてある。
617nobodyさん:2006/12/14(木) 22:00:03 ID:???
>>615
まぁ、なんだ、、、やりたい事を手持ちの機能を使って組み上げていくのがプログラマの仕事だ
618563:2006/12/14(木) 22:52:19 ID:???
>>563
すいません、どなたかお願いします
619nobodyさん:2006/12/14(木) 22:54:54 ID:???
>>563
rsort
620nobodyさん:2006/12/14(木) 23:01:36 ID:???
今年のクリスマスの予定はありますか?
621nobodyさん:2006/12/14(木) 23:06:40 ID:???
phpでツリーを作ります
622nobodyさん:2006/12/14(木) 23:12:27 ID:???
教室でセクロスします。
見つかったら停学だがそのスリルがいい。
623nobodyさん:2006/12/14(木) 23:16:39 ID:???
昔実際にセクロスで停学になった俺様が来ましたよ。
62427:2006/12/14(木) 23:33:48 ID:???
誰かおねがいします。
625nobodyさん:2006/12/14(木) 23:40:37 ID:???
>>27
まずコンソールからmysqlのコマンド叩いて更新されるか確認したらいいよ。
つーか、エスケープはちゃんとできてるわけ?
626nobodyさん:2006/12/15(金) 00:13:14 ID:0FUvK34I
stream_set_write_bufferってfwriteの前に使用することが推奨されてますか?
627nobodyさん:2006/12/15(金) 00:29:42 ID:???
>>626
このスレでまともな回答が得られるかどうか
世の中は間違いだらけだ

http://ya.maya.st/web/RTFM.html
628nobodyさん:2006/12/15(金) 00:45:12 ID:???
>>624
mysql_query( 〜 ) or die(mysql_error();
でエラーでないか確認してみれ。

あと俺は確実に
mysql_query("update table_$t set col_$r = '".$q."' where col_1 = '".$max2."'");
な感じに書いてるよ、めんどいけどね
629nobodyさん:2006/12/15(金) 01:00:11 ID:???
>>627
宣伝乙
630nobodyさん:2006/12/15(金) 01:16:05 ID:???
つーか、PDO使ったら、エスケープも楽にできるのに。
ほとんどPHPでDB扱う際の標準みたいな立場になりつつあるわけだし。
631nobodyさん:2006/12/15(金) 03:49:30 ID:yi07hMf9
emacs使ってる人に質問だけど、php-modeよりいいのってある?
632nobodyさん:2006/12/15(金) 08:50:30 ID:???
PDOって何ですか
633nobodyさん:2006/12/15(金) 09:20:41 ID:???
>>632
PEAR::DBの方は知ってるかな?あれはご存知のとおりPHPで書かれている
ため、普通にPHP上のAPIを使って接続してるだけ。PDOはCで書かれている
のでよりネイティブに近い接続をするから速度も速い。
また、PHP5なら例外処理もやりやすいというメリットもある。
ただ、モジュールインストールになるから対応していないサーバーも多い。
634nobodyさん:2006/12/15(金) 09:56:54 ID:VrTEtYOe
多重配列のnullの要素を取り除いて配列に再度格納したいのですが、うまく
いきません。

$array[0][0] =PC $array[0][1] =IP $array[0][2] =null
$array[1][0] =ADSL $array[1][1] =TCP $array[1][2] =UDP $array[1][3] =null
この配列からnullの部分を除いて

$array[0][0] =PC $array[0][1] =IP
$array[1][0] =ADSL $array[1][1] =TCP $array[1][2] =UDP
このようにしたいのですが、どう記述すればよろしいでしょうか?
635nobodyさん:2006/12/15(金) 10:30:37 ID:???
どうやってみて、うまくいかないと言ってるかを書けば?
636389:2006/12/15(金) 10:39:28 ID:???
phpでXML形式のファイルを出力したいのですが、うまくいきません。

phpで動的(ブラウザでアクセスがあるたびに生成する)にXML形式のテキストを出力しているのですが、
これをRSSリーダで読み込もうとしても
「登録可能なフィードが見つかりません」と うまくいきません。
出力しているテキストの形式は完全にXML形式になっているのですが、
(ブラウザでソースを見ても完全に期待するXMLファイルと同じ、しかしxmlファイルを表示するときのようにはならない)

phpでRSSフィードをXML形式で出力しようとするためには何か必要なことがあるのでしょうか?

637634:2006/12/15(金) 10:43:38 ID:VrTEtYOe
>>635
そうですね。

//nullの部分を除外して多重配列を再構成//
$other_array   //多重配列
$arr_word =array();

foreach($other_array as $val=> $arrValue)
{
foreach($arrValue as $val2=> $strValue)
{
if($strValue == '')
{
break;
}
else
{
array_push($arr_word,$strValue);
}
}
}
このようにしてみたのですが、nullは除外されても多重配列にはなって
おらず、ひとつの配列に要素が全て連結された状態になってしまいます。
どうか正しい記述をお教えいただきたいのですが。
638nobodyさん:2006/12/15(金) 11:02:00 ID:???
>>636
ソース出せ
639389:2006/12/15(金) 11:17:47 ID:???
こういう風です。


<?
print "<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n";
print "<rss version=\"2.0\">\n";
print "<channel>\n";
?>


<title>title</title>
<link>http://www.site/</link>
<description>description</description>
<language>ja</language>
<copyright>Copyright</copyright>
<pubDate>Fri, 15 Dec 2006 06:00:00 +0900</pubDate>

<item>
<title>item title</title>
<link>http://www.site/001.html</link>
<description>item description</description>
</item>

<?
print "</channel>\n";
print "</rss>\n";
?>
640nobodyさん:2006/12/15(金) 11:27:31 ID:???
HTML_QuickFormでcheckboxを生成する際
結果を以下のように配列に値が入るように生成したいのですが
どうすればよいでしょうか。

<input type="checkbox" value="1" name="hoge[]"><label>a</label>
<input type="checkbox" value="2" name="hoge[]"><label>b</label>
<input type="checkbox" value="3" name="hoge[]"><label>c</label>
<input type="checkbox" value="4" name="hoge[]"><label>d</label>
641nobodyさん:2006/12/15(金) 11:27:31 ID:???
>>693
ソースの一番先頭にheader関数でxml用のヘッダ出すと解決しそうな予感。
642641:2006/12/15(金) 11:29:19 ID:???
ごめ、アンカーは639の間違い。
具体的なソースは以下。
header( 'Content-type: text/xml' );
643nobodyさん:2006/12/15(金) 11:42:27 ID:???
>>639
そのソースだけならphp使う意味ないような。

こちらの関数も調べてみるといい。
SimpleXML関数 DOM XML関数 xmlwriter関数
644nobodyさん:2006/12/15(金) 12:44:35 ID:???
未来の>>693に嫉妬さげ
645nobodyさん:2006/12/15(金) 14:10:30 ID:???
質問させてください。

PHPで掲示板を作ってます
HTMLタグを無効化するにはどうしたらいいでしょうか?
htmlspecialcharsを使うと、? ←この文字が?になってしまいます。
よろしくお願いします。
646645:2006/12/15(金) 14:13:26 ID:???
あ、2chには書き込みできなかったorz
上の?は
&#12316;←半角です。
よろしくお願いします。
647nobodyさん:2006/12/15(金) 14:14:46 ID:???
まぁ、そりゃそうだろな。&は&amp;になるから。
<と>だけを置換するようにしたらいいんでないかね。
648nobodyさん:2006/12/15(金) 14:24:15 ID:???
>>639
curlなりでレスポンスヘッダ見て、MIMEがXMLになってるか確認してみれ
649nobodyさん:2006/12/15(金) 14:34:08 ID:???
>>645
>>674の方法以外にも、htmlspecialcharsをしてから、
特定のものだけ(この場合だと?)を置き換え。
650645:2006/12/15(金) 14:43:00 ID:???
>>647>>649
ありがとうございます
<と>だけを置換するだけでいいんですかね?
htmlspecialcharsの意味がよくわからない^^;
どういうときに使うんだろう・・・
651nobodyさん:2006/12/15(金) 14:46:36 ID:???
>>650
そもそも&#〜ってのがすでにHTMLエスケープ処理済みの表記だということは理解してる?
エスケープ済み表記をエスケープしたらそりゃおかしくなるという話。
652645:2006/12/15(金) 14:47:46 ID:???
ちなみに
特定のものだけ置換しないで、
全部の文字を普通に表示させたいです。
(2chみたいに特殊文字が?になるのは嫌なので)

となるとやはり<と>だけを置換ですよね
<と>だけを置換だと、危険なこととかないのかな?
653nobodyさん:2006/12/15(金) 14:50:43 ID:???
あとダブルコーテーションとかシングルコーテーションも危険やねぇ。
654nobodyさん:2006/12/15(金) 14:54:42 ID:zjrdLe6P
質問させて下さい。
バイナリをbin2hexで16進数に変換したあと、それをまたバイナリに戻す事は可能でしょうか?
色々みたけど見当たらない・・・packっていうのがそれっぽかったけど、使い方がよく分からない。

識者の方、ご指導よろしくお願いします
655nobodyさん:2006/12/15(金) 14:55:38 ID:???
>>652
1)痴漢したくないものだけ、htmlspecialcharsに影響されなず、
 一般的に使われる事の無いような特殊文字列に痴漢

2)htmlspecialchars 実行

3)特殊文字列を元に戻す
656軟式PHP:2006/12/15(金) 14:59:05 ID:???
>>654
そのpackでできるよ。
<?php
$str = 'その通り';
$hex = bin2hex( $str );
print 'Hex:' .$hex . '<BR>';
$bin = pack("H*",$hex);
print 'bin:' . $bin . '<BR>';
?>
657nobodyさん:2006/12/15(金) 15:04:06 ID:zjrdLe6P
>656
おおー!
素晴らしい!
"H*"ってのを指定したらいいのか。
色んなオプション突っ込んで途方にくれてたところですw

ありがとうございました。
658645:2006/12/15(金) 15:05:16 ID:???
掲示板で特殊文字も普通に表示させる方法としては

1.<と>だけを置換
2.ダブルコーテーションとシングルコーテーションを置換
3.trim
4.mb_convert_kana

これくらいでいいのでしょうかね?
659nobodyさん:2006/12/15(金) 16:22:41 ID:???
ユニコードのことをいってるのか?
660nobodyさん:2006/12/15(金) 16:46:31 ID:9BwOCrLJ
都道府県フォームつくってて、
都道府県を選択後、自動で選択した都道府県の市区郡がselectできるよう(表示される)
ようにしたいのですが、どうすればいいんでしょう?

661nobodyさん:2006/12/15(金) 16:53:39 ID:qvbJOa4k
あああああ
662645:2006/12/15(金) 16:58:17 ID:???
ユニコードのこと?
えーと。(ユニコードは使いません)
掲示板などで、投稿された文字をそのままアップじゃやばいですよね。
だから、何か処理をしなければいけない。ってことはわかりますが
その処理は、>>658に書いた4つの処理でいいのでしょうかね?
663nobodyさん:2006/12/15(金) 17:29:08 ID:???
メールにcsvデータを圧縮したファイルを添付しようとしています。
以下のコードでサーバー上に圧縮ファイルは出来上がり、このファイルをFTPでDLして中身を見てみると、確かに圧縮されています。

メールにもファイルは添付されてきます。しかしファイル名は hogehoge.gz ですが、中身も容量も圧縮前のcsvデータそのままになってしまいます。

base64にエンコードする際に圧縮ファイルの中身の文字列を圧縮されたままエンコードしているつもりなのですが、
どうやらcsvデータをそのまんまエンコードしてしまっているように思われます。
正しくエンコードしてやるにはどのように書いたらいいのでしょうか??

664nobodyさん:2006/12/15(金) 17:33:15 ID:???
以下、コードです。

//■■取得したデータ($getdata)から圧縮ファイルを生成

//圧縮ファイルのオープン
$filename = mb_encode_mimeheader("hogehoge").".gz";
$fp = gzopen($filename,'w');
//圧縮ファイルに書きこみ
gzwrite($fp,$getdata);
gzclose($fp);
//圧縮ファイルのオープン
$fp = gzopen($filename,'r');
//圧縮ファイルの読みこみ
do {
$data = gzread($fp, 10000);//←@ gzread で解凍せずに読み込んでるつもり
if (strlen($data) == 0) {
break;
}
$contents .= $data;
} while(true);
gzclose($fp);

//エンコード
$f_encoded = chunk_split(base64_encode($contents));  //←A エンコードしてるつもり 

//body文字列の生成(添付部分)
$body .= "\n\n--$boundary\n";
$body .= "Content-Type: application/zip; name=\"$filename\"\n";
$body .= "Content-Transfer-Encoding: base64\n";
$body .= "Content-Disposition: attachment; filename=\"$filename\"\n";
$body .= "$f_encoded\n";
$body .= "\n\n--$boundary--\n";
665nobodyさん:2006/12/15(金) 17:40:52 ID:???
圧縮ファイルをオープンしたら、そりゃ解凍された結果が読めるわなw
どうして普通に読まないんだよ。
666nobodyさん:2006/12/15(金) 17:48:23 ID:???
やや??もしかして

//エンコード
$f_encoded = chunk_split(base64_encode($filename));

でいいんでしょうか?? 

667nobodyさん:2006/12/15(金) 17:49:51 ID:???
//圧縮ファイルのオープン
$fp = gzopen($filename,'r');

これがだめぽ
668664:2006/12/15(金) 17:52:09 ID:???
自己レスれす。

>>666 これじゃファイル名1行こっきりのファイルになっちまいました。
669nobodyさん:2006/12/15(金) 17:53:33 ID:???
◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
670nobodyさん:2006/12/15(金) 17:55:41 ID:o16g8Qpy
>>669 ごめんなさい。sageるクセが付いてまして失礼しました。
671nobodyさん:2006/12/15(金) 18:09:59 ID:???
なかなかユニークな輩だな。
そろそろ"gz"で読むのがまずいことに気付いたかな?
672645:2006/12/15(金) 18:10:22 ID:???
あの〜
僕の質問よろしくお願いします。
673nobodyさん:2006/12/15(金) 18:12:51 ID:???
>>672
もう色々教えてもらったんだからそれで動かしてみて問題があればそこを直せばいいじゃん。
XSSは大抵防げるだろうけど、CSRF、DB使ってるならSQLインジェクションやら
考えることは山ほどあるんだ。ってことで勉強しつつ作ってくれ。
674nobodyさん:2006/12/15(金) 18:15:09 ID:???
君のは、すでに答え出てるじゃん。

それに入力の検査自体が別にphp固有の問題じゃないし。
675nobodyさん:2006/12/15(金) 18:17:34 ID:???
>>671 死ぬほどありがとう。感涙にむせび泣いてます。
676nobodyさん:2006/12/15(金) 18:18:08 ID:o16g8Qpy
しまった。また下げてしまった(泣)
677nobodyさん:2006/12/15(金) 19:31:24 ID:???
PHP暗号化ツール コードロック
ttp://www.777777.net/magmag/codelock.php
の評価を教えてけれ
ワシの高級PHPソースを見られたくないのです。
レンタル鯖なので、Zend系とかサーバにインストールする系は
無理なのでございます。
678nobodyさん:2006/12/15(金) 19:36:26 ID:???
高級なソースかけるなら評価自分ででき・・・・
679nobodyさん:2006/12/15(金) 19:37:32 ID:???
>>677
高級PHPソースの割にはこのスレに質問しにくるとはアホなのか。
なんか、ereg関数とか使ってそうだなwww
680PHP出版:2006/12/15(金) 19:46:44 ID:???
bcompiler使えでFA
681nobodyさん:2006/12/15(金) 21:28:41 ID:???
ereg関数つかっちゃいけないすかwwwwwww

馬鹿ですねwwww
682nobodyさん:2006/12/15(金) 21:49:55 ID:Xtqi0V4I
どうでもいい煽りはいらね。
683nobodyさん:2006/12/15(金) 22:06:28 ID:g5A+TTGd
俺もereg使うけど>>679は何を使ってるの?
684nobodyさん:2006/12/15(金) 22:13:36 ID:???
erege
685nobodyさん:2006/12/15(金) 23:15:32 ID:???
高級ソースをキャベツにかけてくえってことだよ。
686nobodyさん:2006/12/16(土) 01:07:59 ID:???
>>681=>>482=知ったかぶり厨=消えろ

ereg関数は別に使ってもいいけど、ereg関数にマルチバイト文字列を含む
パターンを使ってるのを見ると「あぁ、こいつは経験が浅いな」と思う。

ereg('[あ-んア-ン]', $string)
こういうの、なんか気持ち悪い。
687nobodyさん:2006/12/16(土) 01:18:20 ID:???
>>686
>ereg('[あ-んア-ン]', $string)
この場合「こういうの、なんかいやらしい。」が正解だろ?
688nobodyさん:2006/12/16(土) 01:26:19 ID:???
>>687
激しく同意だ。ちくしょうめ。
689nobodyさん:2006/12/16(土) 01:44:07 ID:???
>>677
つーか、よくそんな怪しいソフトを使う気になるねぇ。
他にいくらでも有名なソフトあるのに。

もしかして「本人宣伝乙」ってヤツ?www
690nobodyさん:2006/12/16(土) 02:01:13 ID:kvjqtHVC
b_使えってことでFA?

でもなぜか俺は文字数数える仕事ってないんだよね。バイト数を数えるのは多いんだけど
691690:2006/12/16(土) 02:01:45 ID:???
すまん mb_ ね
692nobodyさん:2006/12/16(土) 02:09:11 ID:???
>>677
ヘボカス初心者がやらかす三大意味不明行為(ウェブ開発編)
1.「JavaScriptによる右クリック禁止」
2.「HTMLソース表示妨害(無駄な努力)」
3.「自分の書いたしょぼいコードをやたら大事にして隠したがる」

てめえの書いたしょぼいコードなんか、誰も見たがったりしねぇよ。
宣伝目的ならスレ違いだから消えな。
693nobodyさん:2006/12/16(土) 03:00:30 ID:???
PHP4.4.3のレンタルサーバーで下記のプログラムをテストしています。
結果がどうしても同じにならないのですがなぜでしょうか?

<?php

$a = 300.10;
$b = 0.10;

$a_b_sum = $a + $b;
var_dump ($a_b_sum); // float(300.2)

$c = 300.20;
var_dump ($c); // float(300.2)


if( $a_b_sum > $c) {
echo "NG"; // こっち
} else {
echo 'OK';
}

if(300.2 > 300.2) {
echo 'NG';
} else {
echo 'OK'; // こっち
}

?>
694nobodyさん:2006/12/16(土) 03:13:46 ID:???
floatだからですぅ。
文句があるなら下駄でも履かせやがれこんちくしょーっ!
695nobodyさん:2006/12/16(土) 05:26:57 ID:???
>>693
http://jp.php.net/manual/ja/language.types.float.php

$a_b_sum = $a + $b;

$a_b_sum = bcadd($a, $b);
するとOKOK
(BCMathはWinか--enable-bcmathコンパイル必要)
696nobodyさん:2006/12/16(土) 07:31:58 ID:HXTFaSG2
PDF 作成関数で位置やサイズを指定する数値の単位は何ですか?
697nobodyさん:2006/12/16(土) 10:45:33 ID:???
>>686
俺もereg関数でマルチバイト文字使ってるんだけど駄目なのか・・・
別の関数を使ったほうがいいんでしょうか?

素人ですまんが教えてください。
698nobodyさん:2006/12/16(土) 10:58:59 ID:???
マジ素人でスマソ。

そう言うわけで教えて欲しいのですが、
xxx.php?page=10&block_num=girl_list
のような?の後に続くのは、どう言う意味なんでしょうか?

なにぶんPHPと言うモノを知ったのが、今日なんでサッパリわかりません。
699nobodyさん:2006/12/16(土) 11:08:54 ID:???
>>697
Perl互換正規表現関数。

>>698
ワンクリ詐欺にでも遭遇したのか?引数が意味深だな。
700nobodyさん:2006/12/16(土) 11:12:36 ID:???
>>689
まぁ、たぶんアレだ・・・
女の子リストの10ページ目を見ていたわけだ…

女の子リスト…
701nobodyさん:2006/12/16(土) 11:13:52 ID:???
>>696
ピクセルじゃなかったっけ?

>>700
女の子リスト・・どこぞの出会い系かアダルトサイトか?w
702699:2006/12/16(土) 11:16:56 ID:???
>>701
お舞もそう思うだろ!?いかがわしいサイトにアクセスしている
疑いが強い。
703nobodyさん:2006/12/16(土) 11:24:51 ID:???
>>699 ありがとです。

>>698
girl_listワロタ・・

それはPHPというよりHTMLの内容じゃまいか?
704nobodyさん:2006/12/16(土) 11:25:17 ID:???
698だけど

見てたのは確かにアダルトなんですが、普通のURLってxxx.phpてな感じで終わるじゃ〜ないですか。
疑問は、この?page=10&block_num=girl_listの部分なんです。なんの為に、こんなのがひっついているのですか?

なんの為に、こんなのがあるのか興味があるんです。
705nobodyさん:2006/12/16(土) 11:38:52 ID:???
>>704
やぱっりそうなのかよww まぁ、こうもあっさり認められると
これ以上つっこみようもないが。

?以降は(この場合)PHPプログラムに情報を渡すために使われるんだよ。
例えばblock_numの値に応じてページの内容を変えることができる。
block_num=girl_listならお前の好きな女の子のページが表示されるだ
ろうし、block_num=boy_listなら(開発者がページを用意してれば)男だ
らけのページが表示されるかもな(キモすぎる...)。

page=10をpage=11とかpage=09にすると違うページが表示されるかもな。
そのへんは自分で?のついたURLをいろいろいじくってるとなんとなく実感
がわいてくるんじゃない?
706nobodyさん:2006/12/16(土) 11:41:35 ID:???
普通はxxx.phpで終るけど
?page=10&block_num=girl_listが付いてると不安になるの?
その辺を聞きたい。
707nobodyさん:2006/12/16(土) 11:43:55 ID:???
そうなんですか。早速イジってみます。ありがd
708nobodyさん:2006/12/16(土) 11:47:28 ID:???
>>706

別に不安にはならないけど、なんの為にあるんだろ?って気になったんです。
709nobodyさん:2006/12/16(土) 11:53:19 ID:???
>>708
君のレスの、
「って気になったんです。」
も気になるよ。
710nobodyさん:2006/12/16(土) 11:59:32 ID:???
なんで>>709
>君のレスの、
>「って気になったんです。」
>も気になるよ。
と、下らなすぎるレスをしてしまったんだろ?って気になったんです。
711nobodyさん:2006/12/16(土) 12:03:34 ID:???
>>698が何歳なのか気になりました

大人にしては質問が子供すぎる
子供にしては見てるサイトが…
712nobodyさん:2006/12/16(土) 12:08:27 ID:???
そろそろ誰かがまともな質問をしないと、スレが変な方向へ進む予感。
713645:2006/12/16(土) 13:03:42 ID:???
>>645です。
結論として
掲示板に投稿されたデータは
特殊文字を表示させたいならhtmlspecialcharsは使わない
<と>と'と"を置換する。
以上でよろしいのでしょうか?
714nobodyさん:2006/12/16(土) 13:35:16 ID:???
携帯電話用のホームページで、imode用・au用・softbank用と個別にサイトを作り、一ヶ所を更新すれば全キャリアで更新ができるような、そんなモノはPHPで作れますか?
715nobodyさん:2006/12/16(土) 13:42:21 ID:M68Se3i9
>>714
おまい次第
716nobodyさん:2006/12/16(土) 13:42:43 ID:???
テンプレみたいなの作ってそれを各キャリア用のページに読ませるようにすればどうよ?
717nobodyさん:2006/12/16(土) 13:55:25 ID:???
$array['jp'] = "日本";
$array['usa'] = "アメリカ";
$array['uk'] = "イギリス";
から
jp = 日本, usa = アメリカ, uk = イギリス
という文字列を表示させたいのですが、
何か簡単な関数はあるでしょうか?
718nobodyさん:2006/12/16(土) 14:07:09 ID:???
foreach ($array as $key => $value)
echo $key.' = '.$value.', ';
719nobodyさん:2006/12/16(土) 14:47:41 ID:???
print_r
720nobodyさん:2006/12/16(土) 15:09:26 ID:???
>>713
危ないやり方だな。
フェイルセーフを考慮するなら、「まずはエスケープする」べし。
お前の考え方は「まずはエスケープしない」になっている。
721nobodyさん:2006/12/16(土) 15:20:39 ID:???
フェイルセーフって何ですか?
722nobodyさん:2006/12/16(土) 16:12:02 ID:???
レンタルブログの更新を文字列で抽出して
題名、URL、記事をHTML形式で出力したいんですが、どうすればいいですか?
723nobodyさん:2006/12/16(土) 16:49:47 ID:???
RSSよめよww
724722:2006/12/16(土) 16:55:08 ID:???
>>723
私ですか?
725nobodyさん:2006/12/16(土) 16:57:32 ID:???
そうだな
726713:2006/12/16(土) 17:41:32 ID:???
>>720
<と>と'と"を置換するだけじゃ危険なのですか?
727nobodyさん:2006/12/16(土) 17:51:14 ID:???
>>721>>726
まずフェイルセーフの概念をよく理解しろ。用語の意味くらい自分でググれ。
で、その概念をシステム制作に当てはめて考えろ。
そしたら>>713のやり方がいかに危なっかしいかが分かる。

重要なのは「優先順位」だ。どんな処理を優先させるのか。
安全対策に万が一「抜け・ミス」があったときにでも危険を防ぐにはどうしたらいいのか。
よく考えろ。考えても分からなければ、危険なので難しいことはやろうとするな。
728nobodyさん:2006/12/16(土) 17:54:20 ID:???
>>726
っていうかお前さ、>>720をよく読めよチンカス。
せっかく重要な答えをズバリ書いてやってんのにそれを無視して、
「<と>と'と"を置換するだけじゃ危険なのですか?」などと的外れな質問を繰り返しやがって。

何をエスケープするかじゃねぇんだよ。どのように、どの順番でエスケープするかが大事なんだよ。
729nobodyさん:2006/12/16(土) 18:03:48 ID:???
>>727

721だけど、意味自分で調べた。サンクス!一つ勉強になった。
730563:2006/12/16(土) 18:03:51 ID:???
>>619
ありがと〜
逆順はできたのですが、ちょっと意図したものと違いました。

CSVから整形して出力してるのですが、これを、例えば5番目の配列を基準に逆順にソートして出力させたいのです。
rsortだと、そういった指定ができなくて。
<table>
<?php
$Data=file('db.csv');
for($i=0;$i<sizeof($Data);$i++){
$line=explode(",", $Data[$i]);
?>
<tr><td><?=$line[0]?></td><td><?=$line[3]?></td></tr>
<?php
}
?>
</table>
言葉足らずで申し訳ありませんでした。
731nobodyさん:2006/12/16(土) 18:09:01 ID:???
MySQL使う場合、
普通はリレーション使うと思うのですが、
phpからの操作が非常に面倒になりませんか?

リレーション使わずに
一旦あるフィールド値を取得してから
そのフィールド値で別テーブルを検索して値を取得、
とかやってる人っていますか?

今までリレーションの存在を知らずに(涙)
この方法でやってたのですが、
リレーションを使うのもかなりだるく(慣れていないだけの可能性もありますが)、
過去の手段もかなりだるくなってきました・・・

他に良い方法がありましたらきぼんぬです。
732nobodyさん:2006/12/16(土) 19:29:26 ID:vIgGXUoj
配列Aと配列Bを比較して、一致している要素が5つ以上あったら
配列Bの[0]の要素を表示するということをしたいのですが・・

$common_word = array_intersect($array_A,$array_B);
$array_count = count($common_word);
if($array_count >= 5)
{

}
いまのところ、このようになっておりますが、どのようにしたら良いのか
分からなくなりまして。。。よろしければ、ご教授願いたいのですが。
733nobodyさん:2006/12/16(土) 19:40:38 ID:???
>>731
プログラムとか、やめちゃえば?
734713:2006/12/16(土) 19:47:29 ID:???
用心するのに越したことはないってことでしょ
言いたいことは大体わかるよ。
でも具体的に言ってもらわないとわからない。
<と>と'と"を置換するだけで問題ないでしょ?
>>728みたいな、どうでもいい薀蓄みたいなこと言う人はレスしないでください。
735nobodyさん:2006/12/16(土) 21:11:07 ID:a8ebIslZ
phpMyAdminを設定して実行したのですが、
『扱えない拡張子です,<br />PHPの設定をチェックしてください。』
と表示されます。

PHP.iniでは
extension=php_mysql.dll
と設定して再起動も完了しました。
ですが、同じエラーのままです。

何か他に考えられることがありますでしょうか?
736732:2006/12/16(土) 21:23:54 ID:vIgGXUoj
何でもありません。
わざわざ人に聞くようなレベルの話ではありませんでした。
737nobodyさん:2006/12/16(土) 21:26:45 ID:???
>>735
mysql関数使えないっしょ
738nobodyさん:2006/12/16(土) 21:30:39 ID:???
>>726
結論から言うと危険

「マルチバイト XSS」 でぐぐってみ

あとはHTTPヘッダーで文字コード宣言を必ずすること
これがXSS対策の基本
739696:2006/12/16(土) 21:44:32 ID:HXTFaSG2
>>701
ピクセル単位ですか・・・
俺もそうかと思ったんですが、
だとすると1インチあたりのピクセル数の指定が
どこかにあると思うんです。

PDF って印刷物指向ですよね。
740735:2006/12/16(土) 21:54:02 ID:a8ebIslZ
>>737
え?どういうことですか?
741nobodyさん:2006/12/16(土) 22:12:27 ID:???
>>735
php.iniの設定だろうね
俺はここでちゃんとできたよ
http://www.srvmap.com/windows/php5.html
742nobodyさん:2006/12/16(土) 23:21:34 ID:???
>>741
すみません、解決しませんでした。
真剣に悩んでおります・・・。
743nobodyさん:2006/12/17(日) 00:24:20 ID:???
OS:Win2K
Apache2.2
PHP5.2
MySQL5.0.27

文字化けで困っています。
MySQLはSJISに設定しています。

コマンドプロンプトからMYSQLを使用すると正常出力
phpMyAdminを使用すると正常出力
PHPをブラウザで使用すると文字化け(mysql_client_encodingで調べるとlatin1)
   →2バイト文字が?と表示されます。

解決策をご存知の方助けて下さい。
744nobodyさん:2006/12/17(日) 00:41:20 ID:???
>>714
できる。
そもそも、基本的なHTML(CHTML・XHTML)などは3キャリア側のサーバーで
自動変換してくれるから問題ないと思いますよ。
ただし、HDML(古いAU端末とTuka端末)のform処理などは対応できていないので注意!
うちは、HTMLを各ノード単位で分割してコンバーター(HTML・CHTML・XHTML・HDNL変換)を通して
表示するようなフレームワークを作って使ってます。
745nobodyさん:2006/12/17(日) 00:44:02 ID:ilUpD26l
SQLに接続するとき
set name sift-jis
みたいにすればいいんじゃね?
746nobodyさん:2006/12/17(日) 03:44:42 ID:irlLnY56
なんでPHPのロゴに雪が積もってるんだ?
747nobodyさん:2006/12/17(日) 03:47:19 ID:???
>>734
お前、どうしようもねぇバカでクズだな。
何様のつもりだ。

せっかくもらったアドバイスを無視した挙句に、逆に批判かよ。
お前マジで氏んだほうがいいよ。
748nobodyさん:2006/12/17(日) 04:34:15 ID:???
>>746
ぉ、ほんとだ。

冬だねぇ
749nobodyさん:2006/12/17(日) 07:56:55 ID:fDowNRkw
すみません、phpはじめたばかりなんですが、現在秀和システムの
「きょうから使えるphpサンプル500」っていう本で php.ini の設定しています。

そのなかで、mbstring.script_encoding=EUC-JP という設定を変更するように
書いてあったんですが、ファイルのソースを見たら mbstring.script_encoding が
ありません。
これは追加で書き足していいものでしょうか?
また、デフォルトで ; でコメントアウトされてるmbstringパラメータは全部コメントアウト解除
すべきですか?

あと、phpではないんですが、httpd.confの設定で、
AddDefaultCharset none という項目を編集するように書いてあるんですが、
この項目もhttpd.conf にありません。やはり追加書き足しすべきでしょうか?

phpのバージョンはphp-5.2.0 OSはwinXP Apache2.2です
750nobodyさん:2006/12/17(日) 08:09:42 ID:???
>>749
まずはデフォルトで起動してみて以後自分の設定に変えていけば
あなたの設定したい項目は文字コードにかかわる部分なので
設定しないと起動しないような項目ではない

FA : 書き足す必要は無い
751nobodyさん:2006/12/17(日) 08:19:09 ID:fDowNRkw
>>750
すばやい回答ありがとうございます
そうですか、とりあえず、書き足さないで出来るところからやろうと思います。
いま、環境変数を返すphpを作って(サンプルにしたがって)見たんですが、
ブラウザに表示しないでファイルをダウンロードしてしまいます。
これはなぜですか 

かなりショボイ質問だと思いますが、、php.iniの設定がおかしいんでしょうか
752nobodyさん:2006/12/17(日) 08:57:15 ID:???
>>751
Apache の設定の方に
AddType application/x-httpd-php .php
これを書き加える
753nobodyさん:2006/12/17(日) 09:11:25 ID:???
○○.phpにしてないって落ちだろw
754nobodyさん:2006/12/17(日) 09:43:07 ID:fDowNRkw
>>752
うおっ 動きました!
httpd.confをみたら、AddType application/x-httpd-php .phpが
AddType application/x-hpppd-php .php
になってました
サンキューです助かりました! よかったー
今年中にアンケート管理と掲示板とメールフォームまで出来るようになろう

ありがとー
755nobodyさん:2006/12/17(日) 11:20:29 ID:cjUGVVxQ
タイトル:string年度 の"タイトル:"と"年度"の間にある部分だけを取り
出したいのですが。

$title = mb_ereg('/"タイトル:"([^"]*)"年度/',$str_contents , $match_title);
$str_title = $match_title[0];
print($str_title);

このようにしているのですが、うまくとりだせません。
どのようにすべきか、教えていただけないでしょうか。。。
756nobodyさん:2006/12/17(日) 11:39:59 ID:???
>>755
正規表現を勉強すべき
757nobodyさん:2006/12/17(日) 11:47:52 ID:???
>>755

mb_regex_encoding('sjis'/*必要だったら変更して*/);
$title = 'タイトル:string年度';
mb_ereg('タイトル:([^"]+)年度', $title, $matches);
print_r($matches);

できれば、文字コードをはっきりさせてpreg_match()と16進エスケープを
使ったほうがいいと思うけど。
758nobodyさん:2006/12/17(日) 11:55:39 ID:???
>>756
>正規表現を勉強すべき
お前がな。
759nobodyさん:2006/12/17(日) 12:09:24 ID:???
>>747といい
>>756といい
こいつらは、アドバイスしてあげてるつもりなんだろうな。
誰も聞いてないけどw
760nobodyさん:2006/12/17(日) 13:21:27 ID:ssFbcwFM
会員登録ページを作っています。
流れとしては、
入力 → 確認画面 → 修正or登録
な感じです。

入力項目の中にはドロップダウン形式のものや、チェックボックス形式のものがあります。
確認画面から修正画面に戻るときに入力された値を表示させるためにはどうすればいいでしょうか?

自分で考えた方法はフォームを
例:血液型
<select name="blood_type" size="1" tabindex="0">
<option value=1 '.$_POST['blood1'].'>A</option>
<option value=2 '.$_POST['blood2'].'>B</option>
<option value=3 '.$_POST['blood3'].'>AB</option>
<option value=4 '.$_POST['blood4'].'>O</option>
</select>
のようにして、確認画面からhiddenでひっぱって来るものです。
これだとかなり手間がかかって無駄が多いような気がします。
他にもっと賢い方法があるようでしたら教えてくれませんか?
761755:2006/12/17(日) 13:24:37 ID:iRROmMBS
>>757
解決しました。どうもありがとうございます。
762nobodyさん:2006/12/17(日) 13:44:40 ID:???
>>760
$_POST['blood1']
これは何の意味があるんだ?
そこにselectedとか入るわけか?
763nobodyさん:2006/12/17(日) 13:50:17 ID:???
ちっともphpの話じゃないだろw
764nobodyさん:2006/12/17(日) 13:52:21 ID:ssFbcwFM
>>762
そうです。
765nobodyさん:2006/12/17(日) 13:53:20 ID:???
>>760
>他にもっと賢い方法
まず公式マニュアルを読んで、
次に巷の解説サイトをいくつか見ればわかるよ
766nobodyさん:2006/12/17(日) 14:00:11 ID:irlLnY56
>>748
北半球ではね。
こういう北半球中心視点は良くないと思う。
767nobodyさん:2006/12/17(日) 14:13:32 ID:???
>>760
そのやり方でいいよ
そのやり方がベスト

>>766
そう思ってるのはおまえだけ
768nobodyさん:2006/12/17(日) 14:41:40 ID:ssFbcwFM
>>763
javascript使ったら簡単にできました。
サンクス子
769nobodyさん:2006/12/17(日) 14:44:53 ID:???
>>768
どうやったの?
770nobodyさん:2006/12/17(日) 14:48:11 ID:ssFbcwFM
修正ボタンをこれにしました。
<input type="submit" onclick="javascript:history.back();" value="修正">
771nobodyさん:2006/12/17(日) 15:38:59 ID:???
デザインとロジックの分離において、処理をファイルにまとめて
メインファイルからロジックをincludeしたら、
テンプレートつかわなくてもデザインがスッキリすると思うのですが、
どうでしょうか?
772nobodyさん:2006/12/17(日) 15:42:37 ID:???
そうだね
773nobodyさん:2006/12/17(日) 15:44:37 ID:???
スレ違いばかり・・・
774nobodyさん:2006/12/17(日) 15:59:14 ID:8qXdAMYD
教えてください!
www.xxx.com/aaa.php?id=1&next=1
nextの1で処理を行っているのですが
リロードでも有効になってしまいます。
これを回避する方法などありますでしょうか。

submitからなら対策できるのですが、埋め込んだURLからは
どうしたら回避できるかわからず詰まっています。
775nobodyさん:2006/12/17(日) 16:26:11 ID:???
>>774
アダルトの宣伝おつ
776nobodyさん:2006/12/17(日) 16:43:39 ID:???
>>774
POSTでやってる対策をGETでもやれば良い
777nobodyさん:2006/12/17(日) 16:49:09 ID:ttycNJ+p
変数.txtってファイルを指定したいんですが
どのように書けばいいのでしょうか?
↓こんな感じなんですけど
$text = 12;
$hantei = file_exists($text.'.txt');//ここでエラーでます
778nobodyさん:2006/12/17(日) 16:51:21 ID:???
>>775
例で適当にうったのはアダルトだったのね すません。
>>776
ありがとう!
779nobodyさん:2006/12/17(日) 17:23:12 ID:???
>>777
$hantei = file_exists($text.".txt");
780nobodyさん:2006/12/17(日) 17:35:56 ID:???
同じだろ?
それよりまず何てエラーが出てるのかくらい書こうよ
781nobodyさん:2006/12/17(日) 17:40:18 ID:???
>>777
もしくは
$text = "12";
782nobodyさん:2006/12/17(日) 17:57:37 ID:ttycNJ+p
Parse error: parse error, unexpected T_VARIABLE in 〜〜〜〜こんなエラーです
783nobodyさん:2006/12/17(日) 18:21:53 ID:???
>>777の記述は問題ないからその行の前あたりに;や""のつけかた等みなおしてこい
784nobodyさん:2006/12/17(日) 18:27:41 ID:???
ポスティングスレで自分から進んで作ったんですがセキュリティみてもらえませんか?
ttp://posting.is.land.to/
785nobodyさん:2006/12/17(日) 18:49:28 ID:???
CSVファイルのなかに <a href="yahoo.co.jp" title="トップ,ヤフー">のように”があった場合や、カンマがあった場合、

"<a=""yahoo.co.jo"" title=""トップ,ヤフー"">"となってしまうのですが、これをPHPで読み込むときに、外の"を外して、””を”に変換するにはどうしたらいいでしょうか?

それと勝手に””が就かないようにするにはどうしたらよいかアドバイス頂けないでしょうか?
786nobodyさん:2006/12/17(日) 18:59:05 ID:???
変換するしなくていいじゃん。そういう設定にしてあるだけだから
php.iniの設定をたしかめろ。入門者向け教本にたいてい書いてある設定外の項目いじっただろ?
787nobodyさん:2006/12/17(日) 20:12:06 ID:???
>>785
意味がわからん。それはCSVファイルを保存する時にそうなってるだけじゃねーの?PHPで読み込む前の話。
788nobodyさん:2006/12/17(日) 20:19:48 ID:???
よくわからんけどreplaceすればいいんじゃないのか?
789nobodyさん:2006/12/17(日) 20:31:33 ID:a5bdt7ul
hiddenは絶対に使わないほうが無難でしょうか?
かわりにセッションを使うほうがいいですか?
セッションの場合、クッキーとURL埋め合わせがありますけど、
firefox等のブラウザの設定でセッションを受け入れない場合、
クッキーもURLも無効となってしまうのでしょうか?
あと、セッションはサーバにゴミがたまりますよね?
そのゴミは勝手に削除してくれますか?たとえばクッキーに時間制限があるような感じで。
どなたかお願いいたします。
790735:2006/12/17(日) 20:48:39 ID:EKx6N1fN
すみません、解決しないのでどなたか答えていただけると嬉しいです。

ググったところでは、mysql/mysqliエクステンションが組み込まれていないとのこと。
php_mysql.dll、php_mysqli.dllがあり、extension=php_mbstring.dllもコメントアウトしています。
その他何か原因があるようなのですが、思いつきもしません。
791nobodyさん:2006/12/17(日) 20:52:22 ID:???
windowsで動かしてんの?
792735:2006/12/17(日) 20:55:58 ID:EKx6N1fN
>>791
はい、Windowsです。

WindowsXP SP2
Apache 2.0.58
PHP 5.0.4
MySQL 3.23.58

2台PCがあり、片方は設定して動くのですが、
ノートパソコンの方がエラーが出る状態です。
793nobodyさん:2006/12/17(日) 21:00:31 ID:???
片方動くならそれと比較してみれ。
phpinfoでMysqlの欄とか表示されてるかい?
dllファイルちゃんとあるよね?
794735:2006/12/17(日) 21:01:18 ID:EKx6N1fN
あー、今infoで「MySQL」を検索しても見つかりませんでした。

つまり、php_mysqlを読み込んでいないということですよね・・・^^;
php_mysql.dllの位置がデフォルトのままなのですが、どこへコピーすれば良いのでしょうか?
795743:2006/12/17(日) 21:03:26 ID:???
誰か>>743頼む
796785:2006/12/17(日) 21:05:23 ID:???
>>787
そうです。CSV保存の時に勝手に””がついてしまうのです。
保存の都度””を置換・削除すればいいのですが、結構な量がある上に、頻繁にデータを書き換えるので、いちいちするのは非常に面倒なのです。

>>788
有り難うございます。ただ、置き換えと削除の両方をしたいのです。
"<a〜 の部分は "を削除したいし、""は"に置き換えたい

皆さん、,や"があるCSVファイルを読み出すときはどうされてるのでしょう?
797735:2006/12/17(日) 21:08:24 ID:EKx6N1fN
何度もすみません。
extensionのディレクトリパスを指定していなかったです。
Apacheを再起動しましたが、エラーは解決されずのままです・・・。
phpinfoでMysqlの欄を見たのですが、まだ表示されません。
798nobodyさん:2006/12/17(日) 21:10:52 ID:???
>>796
"(ダブルクオート)の2個の連続は、ダブルクオート1個を表す。その動作は普通。
799nobodyさん:2006/12/17(日) 21:19:17 ID:???
だから737書いたのに
800nobodyさん:2006/12/17(日) 21:21:27 ID:???
>>797
phpinfoに表示されているphp.iniが修正しているphp.iniと同じか確認した ?
801nobodyさん:2006/12/17(日) 21:22:23 ID:???
802735:2006/12/17(日) 21:23:56 ID:EKx6N1fN
>>800
あ・・・、全然違っていました・・・
php.iniの場所を変えるのじゃなくって、
パスを変更することは可能なのでしょうか?
803nobodyさん:2006/12/17(日) 21:28:18 ID:fhT0kY1a
質問です。
インストールしたソフトの実行出力の結果を取得したくてsystem関数を使ったのですが、
1とか2とかの数字しか返ってきません。具体的には、
<?php
$rtn = system("/usr/local/bin/lame", $retval);
echo "retval=$retval";
echo '<br>';
echo "rtn=$rtn";
?>

実行結果
retval=1
rtn=

となります。rtnには結果すら返ってきてません。
しかし、lsなどのシステムコマンドだときちんと結果が返ってきます。
ちなみにpassthru関数でも同じでした。

どうすれば結果を取得できるのでしょうか?
PHP 4.4.4 with Suhosin-Patch 0.9.5 (cgi-fcgi)
804nobodyさん:2006/12/17(日) 21:32:01 ID:???
805nobodyさん:2006/12/17(日) 21:38:08 ID:???
806735:2006/12/17(日) 21:39:20 ID:EKx6N1fN
>>804
有難うございます、解決しました。
最初に設定できて余裕をもっていたのが間違いですね、
こんな初歩的なとこから間違えるとは・・・
お答えいただいた皆様、有難うございました
807nobodyさん:2006/12/17(日) 21:58:04 ID:???
こんばんは、ひとつ質問させてください。

$result = mysql_query("SELECT * FROM account WHERE name = '$name'");

この場合は、name=$nameであればTRUEを返すということなのでしょうか。
name=$nameのとき、そのnameがある行を取得したいのですが、どのようにすれば良いのでしょうか?
808nobodyさん:2006/12/17(日) 22:05:26 ID:???
せめてマニュアルくらいみようよ

ttp://us2.php.net/mysql_query
809nobodyさん:2006/12/17(日) 22:07:20 ID:???
>>807
TRUE/FALSEを返すとかではなくて、リソースを返すのだ。マニュアルを見よ。

行を連想配列に格納するには mysql_fetch_arry。
810nobodyさん:2006/12/17(日) 22:18:23 ID:fhT0kY1a
>>805
ありがとうございました。
早速以下のように書いてみたのですが、何も出てきませんでした。
なぜかコンソール画面には出力されてきましたが…

<?php
$handle = popen("/usr/local/bin/lame", 'r');
if ($handle){
while (!feof($handle)){
$line = fgets($handle);
echo $line;
}
pclose($handle);
}
?>
811nobodyさん:2006/12/17(日) 22:27:26 ID:???
function test($str1,$str2){

echo $str1."<br />\n";
echo $str2."<br />\n";

}

$str1 = "ホゲホゲ";
$str2 = "あいうえお";

test($str1,$str2);

このように、functionに2つの関数を送るのはできないのでしょうか?
812nobodyさん:2006/12/17(日) 22:29:07 ID:???
すみません、できましたが、function内で
mysql_select_db($db);
mysql_query($sql);
を使うのは不可能でしょうか?

mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in

とエラーがでます;;
813nobodyさん:2006/12/17(日) 22:30:31 ID:???
>>811
それを実行してみろ。
814nobodyさん:2006/12/17(日) 22:36:06 ID:???
>>812
エラーメッセージを読め。
ヒント: mysql_connect( )
815nobodyさん:2006/12/17(日) 22:48:19 ID:???
>>810
lameに引数を渡していないとすると、helpがエラー出力に表示されているじゃないの?
816nobodyさん:2006/12/17(日) 23:01:56 ID:1O1pcw5Y
$_GET, $_POST, $_COOKIE を 変数$varで参照できるようにしたいのです。

つまり $var["id"] = $_GET["id"] = $_POST["id"] = $_COOKIE["id"] ということ。
どのようにすれば効率良くできるのでしょうか?
817nobodyさん:2006/12/17(日) 23:05:10 ID:???
request
818nobodyさん:2006/12/17(日) 23:06:24 ID:fhT0kY1a
>>815
引数に --helpを渡したら出ました!
まさかエラー出力だとは…
ありがとうございました。
819nobodyさん:2006/12/17(日) 23:08:32 ID:???
掲示板などで、POSTで大量に送られてくるデータ
$hogehoge1 = $_POST['hogehoge1'];
$hogehoge2 = $_POST['hogehoge2'];
$hogehoge3 = $_POST['hogehoge3'];
$hogehoge4 = $_POST['hogehoge4'];
$hogehoge5 = $_POST['hogehoge5'];

これを、一括して$hogehoge[1]〜$hogehoge[7]
に格納する方法などはないのでしょうか?
820nobodyさん:2006/12/17(日) 23:11:57 ID:1O1pcw5Y
>>817
詳しくたにょむ。
821796:2006/12/17(日) 23:15:30 ID:???
>>798
動作が正常なのはわかるのですが、"<a=""〜""となるとリンクが使えなくなってしまったりしませんか?

とんちんかんなこときいてるでしょうか?
自分の環境では、そのまま読み出すとリンクが使えなくなってしまうのでなんとか""を"に変えて邪魔な"を削除したいと考えているのですが。
822nobodyさん:2006/12/17(日) 23:17:10 ID:???
"を\"にすればいいんじゃね?
823nobodyさん:2006/12/17(日) 23:17:57 ID:MMBQG3mK
よくDB接続の際にPEARを使っている例を見かけるのですが
普通にPHPで接続するのとPEAR使うのとではなにが違うのでしょうか?
利点などあれば教えていただきたいのですが・・・
824nobodyさん:2006/12/17(日) 23:20:57 ID:1O1pcw5Y
>>817
あぁ、$_REQUEST ね……。
ありがとうございました。
825nobodyさん:2006/12/17(日) 23:23:22 ID:???
>>819
name="hogehoge[]"
826nobodyさん:2006/12/17(日) 23:26:53 ID:???
>>816
ttp://jp2.php.net/manual/ja/reserved.variables.php#reserved.variables.request

$_REQUEST[""id"]って感じでそれら同じ名前の値をとることができる
827nobodyさん:2006/12/18(月) 00:02:49 ID:???
PHPからプログラミングを始めて1年ちょっと。
最近はやっとクラスやフレームワークを使用し、
見た目にもある程度のスクリプトが組めるようになってきたかな
と自分では思ってます。

windows用のアプリを作りたい理由があり、
visual C#を始める準備をしてるのですが、
敷居って結構高いでしょうか?

質問自体がアバウトなんで、
アバウトな返答でいいのできぼんぬ
828nobodyさん:2006/12/18(月) 00:09:18 ID:Nj+uTZZ4
PHPとC#は全然違うけど、まあ結局は作りたいものがあるかってことで、
目標に進んでいけるかどうかだ。
単になんとなくやってみたいな、ぐらいだと無理かもしれない。

C#は全てがクラス。何でもクラス。とにかくクラス。.NET Frameworkの習得必須。
PHPみたいに関数主体でクラスはおまけってのとは全然違うから、頑張ってね。
829nobodyさん:2006/12/18(月) 00:15:56 ID:???
>>827
phpから入っちゃったか・・・逆だと楽だったのにな。
ま、何事もやる気と根気。敷居の高さなんざ気にしてたら何もできん。
830nobodyさん:2006/12/18(月) 00:53:44 ID:???
>>828
C#なんかよりVC++.netにしとけ
831nobodyさん:2006/12/18(月) 00:57:51 ID:???
>>823
ある程度DB使わないと、PEARとかの使い勝手の良さはわからないかも。

例えばDB使うのってSELECTがほとんどってことが多いけど、接続して
クエリ投げてリソース受け取ってループとかで値受け取ってって流れは
ほとんど共通してる。
なのでこれをSELECTするごとに毎回やるんじゃなくて、関数とかクラス
とか作って、引数にクエリ投げたら配列で結果取れるようにしよう、
とか考えるよね。

んでそういったものがもうPEARとかADOdbとかですでに用意されている
ならそれ使おうって話になるってところかなあ。
デバッグしやすい環境がすでに整えてあったりとか、使いやすいように
工夫されてるし、多くの人が使ってる実績があるから使い方さえ間違え
なきゃちゃんと動くって安心感もあるしね。

他にもいろいろあると思うけど、一番大きなメリットはこの辺じゃないかな。
832nobodyさん:2006/12/18(月) 01:02:19 ID:Nj+uTZZ4
>>830
釣りですか?
833nobodyさん:2006/12/18(月) 02:18:42 ID:5VuKWrp+
みんなphpMyAdminのバージョンって何使っている?
最新の2.9.1.1?

つーか、2.8以降のデザインが好きになれないので未だに2.7.0-pl2使っているよ。
俺と似たような人居る?
834nobodyさん:2006/12/18(月) 07:39:52 ID:???
それ聞いてなんになるの?
835nobodyさん:2006/12/18(月) 08:07:35 ID:???
ヒント:スレタイ
836nobodyさん:2006/12/18(月) 08:46:32 ID:???
バグもないし安定した2.6使ってますが何か
837nobodyさん:2006/12/18(月) 13:57:06 ID:???
$var = "テストです";
function test(){

echo $var;
}
test();

これで「テストです」と表示したいのですが、
function内で外部の変数を持ってくるのは
test($test)でしか持ってこれないのでしょうか?
838nobodyさん:2006/12/18(月) 14:10:41 ID:???
global
839837:2006/12/18(月) 14:36:19 ID:???
>>838
global $var;
で解決できました。ありがとうございます。
840nobodyさん:2006/12/18(月) 14:48:42 ID:???
>>714
ウイルコムのこともたまには思い出してあげてください><
841nobodyさん:2006/12/18(月) 15:12:14 ID:???
PHPでモザイクの解除をすることになりました。
GDが入っていますので、やり方やヒントをお願いします。
842nobodyさん:2006/12/18(月) 15:21:23 ID:???
目を細くして
843nobodyさん:2006/12/18(月) 15:29:54 ID:???
8448411:2006/12/18(月) 15:31:51 ID:???
WEBでアップされた動画のモザイクを除去しなければならないのです。
できなければ、大変なことになりますよ?
845nobodyさん:2006/12/18(月) 15:34:22 ID:???
できちゃった方が大変だと思うんだが。
846nobodyさん:2006/12/18(月) 15:41:31 ID:???
>>844
そうか、大変だな。
できたら教えてくれ。
847nobodyさん:2006/12/18(月) 15:43:50 ID:???
>>831
なるほど。
ありがとうございました。
848nobodyさん:2006/12/18(月) 15:45:49 ID:???
@$result = $db->query($sql);
A$result = mysql_query($db,$sql);

上記2つは同じ意味なのでしょうか?
何か違いなどがあれば教えてください、
849nobodyさん:2006/12/18(月) 15:49:36 ID:???
>>848
その$dbを定義した部分を見て見れ。
850848:2006/12/18(月) 15:51:39 ID:???
>>849
あー、@は$dbで接続してるのか
Aはデータベース名か、把握

ちなみにどっちですると効率がいいのかな?
851nobodyさん:2006/12/18(月) 15:56:48 ID:???
>>848
1の$dbはたぶんユーザーが作ったクラスをインスタンス化したのを
変数にいれて、そのクラスのqueryメソッドを使ってる。

2はPHP側が用意してるmysql関数。

1のクラスの中身がわからないとこたえられない。
1のソースの上のほうで、$db = new HogeHoge;
となってるなら、HogeHogeがクラス。
852848:2006/12/18(月) 15:59:28 ID:???
@は

$username = "dbuser";
$password = "dbpass";
$host = "dbhost";
$database = "dbname";
$db = DB::connect("mysql://$username:$password@$host/$database");

となっていました
(phpspot)
853nobodyさん:2006/12/18(月) 16:01:59 ID:???
>>852
>$db = DB::connect("mysql://$username:$password@$host/$database");

DBクラスのconnect変数を見れ。
854nobodyさん:2006/12/18(月) 16:07:39 ID:???
mysql_queryって引数sql文だけじゃなかったっけ?
@はPEAR接続だよね
8558411:2006/12/18(月) 16:33:48 ID:???
皆さんのおかげで助かりました。
どうにかなりそうです。
856nobodyさん:2006/12/18(月) 17:02:36 ID:dkU1jlj9
ファイルにhtmlのタグを書き込もうとしてるんですが
日本語の部分が文字化けして書き込まれてしまいます
なぜなんでしょうか?

ちなみにこんなかんじで書いているのですが「さんのページ」ってとこが
文字化けしてしまいます
$text=12;
$test = '<P>id'.$text.'さんのページ</P>';
fwrite($fp,$test);
857nobodyさん:2006/12/18(月) 17:03:21 ID:???
文字コードが違ってるから
858nobodyさん:2006/12/18(月) 17:04:40 ID:???
エンコードの問題としか思えないけど・・・・
859856:2006/12/18(月) 17:12:32 ID:dkU1jlj9
プログラムは文字コードEUCなんですが
書き込まれるときのコードが違うってことですよね
どうすれば直すことができるんでしょうか?
860nobodyさん:2006/12/18(月) 17:12:33 ID:HkDghXE6
8スレ先から登場した未来人
861nobodyさん:2006/12/18(月) 17:15:47 ID:???
>>859
metaタグで文字コード指定してる?
また、表示⇒エンコードでEUC指定してる?
862nobodyさん:2006/12/18(月) 17:16:08 ID:???
>>859
とりあえず切り分けしてみれ。
htmlはどのコードで表示された時にどの文字列が化けているか。
どの文字列はEUCでどの文字列がどんな文字コードになってるのか
863856:2006/12/18(月) 17:34:56 ID:dkU1jlj9
metaタグでEUCに指定したらできました!
みなさんありがとうございました
864nobodyさん:2006/12/18(月) 17:44:32 ID:???
(゚д゚)
865nobodyさん:2006/12/18(月) 19:08:44 ID:???
META・・・タグ・・・で・・・
866nobodyさん:2006/12/18(月) 19:30:54 ID:2g+3BvDA
大規模なサイトでは会員登録などあると思いますが、
ログインを簡単に行うために、URLにログインIDを埋め込みたいのですが、
携帯ユーザーに限定して行ったほうがよろしいでしょうか?
867nobodyさん:2006/12/18(月) 19:52:37 ID:???
>>854
だよね。

>>848
PEAR:DBは、DBの違いを吸収して統一的に扱えるようにすることを
目指す(※)ライブラリ。DB:::connectでPostgreSQLのDSNを指定すると、
ソースを変更することなくDBをスイッチできる。

※PEAR::DBで用意されてるメソッドだけを使っていれば、MySQL特有の方言(SQL)を
使用してると当然駄目。

似たようなクラスにはMDBとかMDB2とかあり、DBは歴史が古い分パフォーマンスは
いまいちといわれる。でもMDBにしたってオーバヘッドはあるから、DBを変える予定が
なく、パフォーマンス優先ならMySQL関数使えばいいのでは。

あともうひとつPDOのようにDBアクセス部分をCで書いたやつので、これならPHPの
MySQL関数より早いということもあるかと。

簡潔に書くため一部不正確なところもあり。できることは同じでも目的は異なるので、
良く考えてチョイスすればよろし。
868nobodyさん:2006/12/18(月) 20:04:08 ID:???
>>866
クッキー使えばいいんじゃね?
869nobodyさん:2006/12/18(月) 20:32:03 ID:???
>>868
携帯はクッキー使えないのあるぜ
870nobodyさん:2006/12/18(月) 20:34:25 ID:???
URLがログインIDになってるくらいなら別にいいんじゃないか?
パスワード認証後のログイン状態のフラグが別途セッションに記録されてれば。
871nobodyさん:2006/12/18(月) 20:38:07 ID:S0EIOHKJ
>>869
ほとんどの携帯がクッキー対応してるってどっかでみたような気がするんだぜ
872nobodyさん:2006/12/18(月) 20:43:10 ID:???
DoCoMoは最新でも対応してない
873nobodyさん:2006/12/18(月) 20:49:48 ID:???
DoCoMo糞
874nobodyさん:2006/12/18(月) 20:55:05 ID:HkDghXE6
ドコモはutn送信させればオケー。
875nobodyさん:2006/12/18(月) 21:12:23 ID:2g+3BvDA
携帯ユーザーのみに限定して、utnはユニークなものなのでしょうか?
たとえば、全国のp902ユーザーが同じ識別情報になることはありませんよね?
876nobodyさん:2006/12/18(月) 21:13:04 ID:???
>>844
Pear::FLmask
877nobodyさん:2006/12/18(月) 21:29:36 ID:???
>>875
ないよ
っていうか、どこがPHP?
878nobodyさん:2006/12/18(月) 21:31:52 ID:???
>>875ユニークなものだから安心しろ。
>>877みたいなバカはほっといていいよ。
879nobodyさん:2006/12/18(月) 21:33:23 ID:???
                         「 ̄i
                   「 ̄ ̄ ̄ ̄`!: : :! ̄ ̄ ̄ ̄.|
                  |       ^~^         |
                  |    .ノ     _,_  土  |
                 |    ヽ     米   し   .|
               |   十_゙  ナ 、  -    |
              |   l ‐   ょ  ⌒) .|
              |.    +   i 、      |
                   |    ⊂   `       .|
                  |    { )  て``    |
                 |              |
                |               |
                |__________|
880nobodyさん:2006/12/18(月) 22:39:42 ID:HkDghXE6
utn後のUSER AGENTの
serXXX…;
serXXX…
XXX…の部分取得でおけー。
881 ◆TmZMmKDjC6 :2006/12/18(月) 22:50:58 ID:???
WindowsXpSP2でApache2.0/59、PHP5.2で
mb_send_mailの行で以下のエラーが返されたのですが、
マイネットワーク→プロパティの「ブリッジ接続」を削除したら問題なく実行できるのですが、
ブリッジ接続を有効にすると以下のエラーが返されます。
ブリッジ接続を使いながら以下のエラーをださないようにするにはどうしたらよろしいのでしょうか?

Warning: mb_send_mail() [function.mb-send-mail]:
Failed to connect to mailserver at "myhomes" port 25,
verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in
882nobodyさん:2006/12/18(月) 22:52:35 ID:MrE6rWZc
<input name="file" type="file" size="40" />
というタグでメールに添付ファイルを付けられるフォームを作っています。

php側で2Mの容量制限をかけたのですが、phpinfo()で表示される容量の制限が2Mとなっており、2M以上のファイルだとphpのチェックを受けず、
実際に送信する際にエラーが出てしまいます。

こういう場合は、phpの制限を無制限にしたりするものなのでしょうか?
883nobodyさん:2006/12/18(月) 23:00:39 ID:???
>>882
php.iniで設定
884nobodyさん:2006/12/18(月) 23:02:58 ID:???
>>882
無制限なんてしたらOSのイメージ送りつけられたらどうするyo。
885882:2006/12/18(月) 23:13:28 ID:MrE6rWZc
ありがとうございます。
upload_max_filesize以外に設定する箇所があるのでしょうか?

現在upload_max_filesizeが2Mになっており、php側で2Mのチェックを
記載しているにも関わらず、2Mを超えると、その制限が効いてくれないようなんです。

886nobodyさん:2006/12/18(月) 23:32:15 ID:???
pache2.2以降つかったほうがいいよ。ファイルサイズの制限が見直されてるから
887nobodyさん:2006/12/18(月) 23:45:06 ID:lM2dvpvb
>>880
foma番号と端末製造番号、どっちがええの?
888nobodyさん:2006/12/18(月) 23:45:23 ID:???
PDOStatementで実際に実行したSQLの取得ってできねーのかな
889nobodyさん:2006/12/19(火) 02:55:06 ID:???
指定したディレクトリ以下(サブディレクトリ含む)にあるファイル全てのリストを作成するにはどうしたらいいでしょうか。
890nobodyさん:2006/12/19(火) 03:59:54 ID:???
dir
891nobodyさん:2006/12/19(火) 09:04:00 ID:???
ロジック的な質問させて下さい!
コミュニティーサイトなどで、相手の会員番号の隠蔽はどうやってやっているんでしょうか?

一覧表示からmember.php?user=****の様に
詳細を見れる様にしてたんだけど、これだと会員番号が丸出しだから
member.php?list=0&area=1&etc=n...
member.php?list=1&area=1&etc=n...
って連番と検索条件をパラメーターで渡して、
Mysqlで
limit 0,1
limit 1,1
参考サイトが連番を振っていたので、そうなのかなと思ってやってみたけど
ロジック的にどうなのか自信なくなってきました・・・orz

こんなまどろっこしい事しないで、相手の会員番号をセッションに登録すればいいだけでしょうか?




892891:2006/12/19(火) 09:12:11 ID:???
あ、一覧表示の場合はセッションに登録してもダメですね;
一覧表示→詳細表示→何かしらのアクション(使うとしたらここですね)
893nobodyさん:2006/12/19(火) 09:18:46 ID:???
>>891
何をしたいのか今一つ判らんのだが
会員番号をログインIDとかに使っていなければ
まんま引数指定で良いんじゃない?
セッションとか言ってるのが引っかかるが…
894nobodyさん:2006/12/19(火) 09:21:58 ID:???
>>891
つまり、会員番号=IDってこと?

番号/ID
0001/test
0002/guest
0003/hogehoge
0004/php
0005/cgi

こんな感じにIDごとに番号振り分けたらいいんじゃまいか?
895891:2006/12/19(火) 09:32:33 ID:???
>893
要は会員サイト内で相手の会員IDを分からなくしたいんですよ。
検索かけて会員リストがずらっと出て、その会員の詳細をみる時に
パラメーターで会員番号渡したら簡単なんですが、隠蔽するにはどうしたらいいのかなと・・・。

>894
そういう風にはしてるんですが、詳細見るときに会員番号をパラメーターで渡したくないんです。
896nobodyさん:2006/12/19(火) 09:35:59 ID:???
http://example.com/?id=00001

これを

http://example.com/

これでできるようにってこと?

だったらセッション
897891:2006/12/19(火) 10:06:00 ID:???
>896
うーむ。それは分かるんですが・・・。

<a href="member.php?list=0">亀田</a>
<a href="member.php?list=1">やくみつる</a>
<a href="member.php?list=2">ガッツ</a>
と、ページに会員の詳細表示のリンクをアクセス順に
ソートして並べるとします。

上の様にリンクには連番を振ってパラメータで渡す様にしておきます。

それで、
$listNum = $_GET['list'];
SELECT * user ORDER BY access_time DESC LIMIT $listNum,1
(エスケープは今は無視)

とすれば、会員番号をパラメーターで渡さなくても
リストから詳細表示できます。

ここまではいいとして・・・
上の例で言えばアクセスでソートしてるんで会員リストをみている間に、
誰かがアクセスをしたらソート順が変わってしまい
正しく表示されない事が発生するかと途方にくれてまして・・・orz
898nobodyさん:2006/12/19(火) 10:23:00 ID:???
そのlist=0ってのは、アクセス順で
0がアクセス多い、10がアクセス少ないってこと?
で、アクセス数で順位が入れ替わるから、参照ページが変わるってことでおkなのかな?

元々登録順にでも番号割り当てといて
0/abc
1/hogehoge
2/papa
3/awawa

で、順位に並べてみるのは?
高↑ <a href="member.php?list=2">亀田</a>
    <a href="member.php?list=0">やくみつる</a>
    <a href="member.php?list=1">ガッツ</a>
低↓ <a href="member.php?list=3">アントニオ</a>
899nobodyさん:2006/12/19(火) 10:32:47 ID:n9T52ppY
ある配列を空文字ではさんでひとつの文字列にしたいと考えています。
implode("",$hoge)でも実現可能なのですが
マニュアルには「好ましい使用法ではありません。」と書かれています。

implodeを使わずにこれを実現するためにはどうすればいいでしょうか?
900891:2006/12/19(火) 10:35:32 ID:???
>898
アクセスっていうのは、最終アクセス時間を降順でソートしてます。
まぁ、アクセス回数でもロジック的には同じ様なもんですね。

だもんで、
<a href="member.php?list=0">亀田</a>
<a href="member.php?list=1">やくみつる</a>
<a href="member.php?list=2">ガッツ</a>
を見てる間にやくみつるがアクセスしたとしたら、

<a href="member.php?list=0">やくみつる</a>
<a href="member.php?list=1">亀田</a>
<a href="member.php?list=2">ガッツ</a>
こうなってしまう可能性があります・・・。

今はおっしゃる様に、登録降順でソートしてるんですが
見てる間に誰かが登録したらこれも変わりますよね。
まーそんな激しく登録はないはずなんで大丈夫かと思うのですが・・・。

たまにそーなった時はご愛嬌ってことでいいのかなw
901nobodyさん:2006/12/19(火) 10:40:35 ID:???
>>899
好ましくないだけで使用に問題なければ使っていいよ。
それがいやならforeachで.使って連結しろ
902891:2006/12/19(火) 10:41:13 ID:???
>899
$str = $hoge['0'].$hoge['1'];
普通に文字連結だとダメなのかな?

903891:2006/12/19(火) 10:44:33 ID:???
あ、'' いらんしw
寝不足でバグ連発中・・・orz
904nobodyさん:2006/12/19(火) 12:11:03 ID:???
>>899
$array = ("文字A","文字B","文字C","文字D","文字E");
foreach ($array as $value){

$str .= $value;
}

echo $str;


こういうこと?
905nobodyさん:2006/12/19(火) 12:41:15 ID:n9T52ppY
($array as $value)を
($array as $key => $value)で
906nobodyさん:2006/12/19(火) 13:04:40 ID:???
多重配列ならそういえやゴルァ
907nobodyさん:2006/12/19(火) 13:20:17 ID:???
>>905
答えはでてんだから自分でやれよ。甘えるな
908nobodyさん:2006/12/19(火) 13:57:58 ID:???
そもそも、なんで会員番号を隠匿したいのかが判らん…
909nobodyさん:2006/12/19(火) 14:06:07 ID:0YQ9Kyi3
Aページのformのinputへ入力した文字列を、
Bページへpostして表示するコードを書いたのですが
これをセッションで管理しようと思っています。

セッションに関する記述はbページに
session_start();$_session['aaa]=$_post['aaa'];echo $_session['aaa'];
と入力したのですが、もともとpostで送信しているのでセキュリティが甘いと思っています。
Aページ→Bページの間をセッションで受け渡すにはどうしたらよろしいのでしょうか?
910nobodyさん:2006/12/19(火) 14:10:56 ID:???
それは無理じゃね?
SSLにでもするかとかしか・・
911nobodyさん:2006/12/19(火) 14:22:47 ID:???
>>909
何を意味不明なこと言ってんだお前は。
ユーザーからのinputをセッションで管理するにしても、
必ず一度はPOSTしてもらわなきゃ受け取れないだろうが。

>>910
>>909の問題(POSTじゃなくsessionで値を渡したい)については
SSLとか一切関係ないし。
912nobodyさん:2006/12/19(火) 14:27:23 ID:???
>>911
いやいやそれはわかってはいるんだが
セキュリティが甘いとか言ってたからせめて通信でもセキュリティ高めたほうがと思っただけだ。
なんかおかしいこと言ってるなら謝るが・・。
913nobodyさん:2006/12/19(火) 14:56:05 ID:???
一度はPOSTせなあかんセッションなんざtelnetつかえば穴になっちまうぞ
914nobodyさん:2006/12/19(火) 16:00:04 ID:???
もうGETにしとけカス
915nobodyさん:2006/12/19(火) 17:00:40 ID:jG1wL3dB
関数内で、変数の初期化をしたいのですが、
どのように書けばいいのでしょうか?

$a = "";
$a;
916nobodyさん:2006/12/19(火) 17:01:58 ID:???
>>915
unset?
917nobodyさん:2006/12/19(火) 17:07:44 ID:jG1wL3dB
>>916
こんな関数があったのですね。
どうもありがとうございます。
918nobodyさん:2006/12/19(火) 17:51:13 ID:Bk1c9Up1
function sort($a, $b){
global $sort_tgt;
if($a[$sort_tgt] < $b[$sort_tgt]){
return -1; }
else if($a[$sort_tgt] > $b[$sort_tgt]){
return 1; }
else{
return 0;}
}

usort($dispdata, "sort");

id,val,str
-----------------
0,5,あ
1,2,い
2,4,あ
3,3,あ
4,1,い

という感じのシンプルな二次元配列用のソート関数をサンプルを参考に使っているのですが
ソート対象の値が同一のものであった場合(今回の場合はstr)、さらにid順でソートをかけたいのですが
どなたか、良い解決法をご教示願えないでしょうか・・・。
よろしくお願いいたします。
919nobodyさん:2006/12/19(火) 17:53:43 ID:???
>>917
unsetはやめろ
920nobodyさん:2006/12/19(火) 18:23:26 ID:EZ7cfRuw
phpからmysqlにアクセスして、DBの情報を更新したいんですけど
データ型がtextの「introduction」というフィールドの値が変更されません。

日本語や半角英語を入力したものをPOSTで受け取ったものでは変更されませんでしたが
半角数字のみを入力してPOSTで受け取ったものだと変更されました。

また、sql文のintroduction = $textの部分をintroduction = 'よろしく'などとすると変更することが出来ました。

原因がよく分かりません。よろしくお願いします。

<?php
$dbHandle = mysql_connect("localhost","root","tengonran");
if($dbHandle == False){
print("can not connect db\n");
exit;
}
$db = "sns";

$text = $HTTP_POST_VARS["introduction"];
$uid = $myAuth->getAuthData("uid");
$sql = "UPDATE usr SET introduction = $text WHERE uid = $uid";
$rs = mysql_db_query($db,$sql);

mysql_close($dbHandle);

print("登録情報を変更しました");
?>
921nobodyさん:2006/12/19(火) 18:27:19 ID:???
$sql = "UPDATE usr SET introduction = '$text' WHERE uid = $uid";
922920:2006/12/19(火) 18:45:41 ID:???
>>921

ありがとうございます。
変更することが出来ました。

文字列の入った変数を'で括るとおかしいのかと
思ってましたがそれでよかったんですね。
923nobodyさん:2006/12/19(火) 19:44:16 ID:???
>>922
変数はクリーニングしてからクエリーに埋め込んだ方が良いよ
924nobodyさん:2006/12/19(火) 20:04:47 ID:4CUCrx49
文字列内urlの数を数えたいのですが、

$count = eregi("http?", $message);
print $count

としても、1しか帰ってこない・・・


PHP 基礎編9 - 正規表現、マッチ、置き換え、ereg、eregi、eregi_replace - SAK Streets
http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/php_k09.htm

こちらには、マッチ数と書いてあるのですが・・・
925nobodyさん:2006/12/19(火) 20:15:03 ID:???
>>924
そのサイトの書き間違いでしょ。

公式のマニュアルによると
ttp://www.php.net/manual/ja/function.ereg.php
> int ereg ( string pattern, string string [, array ®s] )
> string の中で pattern がマッチした場合にはマッチした文字列の長さを返し、
> マッチしなかった場合 またはエラーとなった場合は FALSE を返します。
> オプションのパラメータ regs が渡されなかったり マッチした文字列の長さが
> 0 だったりした場合は、この関数は 1 を返します。
と、1もしくは、第3引数を渡した場合に限りマッチした文字列の長さを返すことになっている。

PHPの説明って市販の書籍も含めて「誤り」または「情報が古い」ことが多いので
疑問に思ったら公式マニュアルを参照した方がいい。

あと基本的にはereg()に同じパターンがいくつ含まれているかという検索機能は無いので、
数をカウントすると必ず1個にしかならない。
「httpがいくつ含まれているか」を調べたいならpreg_match_all()を使う。
ttp://www.php.net/manual/ja/function.preg-match-all.php
926nobodyさん:2006/12/19(火) 20:34:31 ID:4CUCrx49
>>925
書き間違えかよ!!!!('A`)
メチャメチャサンクス。
preg_match_all やってみます。

公式見た方がいいのな・・・
927nobodyさん:2006/12/19(火) 20:46:59 ID:???
>>923
クリーニング屋に出すってことか?
例のキャンペーンのせいで、変な用語が飛び出てきたな。
928nobodyさん:2006/12/19(火) 21:17:54 ID:???
>>927
サ●タ●ズとか言うと、
またアフォの自己主張が始まるから、
洗濯でいいんじゃねぇの?
929nobodyさん:2006/12/19(火) 21:25:12 ID:???
ちゃんと乾燥機に入れてくれな
930nobodyさん:2006/12/19(火) 21:47:50 ID:???
ttp://php.s3.to/tt/tt6.php

によるとWEBページを表示する方法として7種類サンプルがありますが、
みなさんはどれを使いますか?それとそれぞれのメリット・デメリットがあれば教えて下さい
931nobodyさん:2006/12/19(火) 22:17:39 ID:???
>>930
1.PHPスクリプトとして評価される→ファイル読み込みも可能だが普通は他の方法で読み込む
2.そのまま出力したい時
3.一度に全て変数に読み込む必要がない時
4.1行ずつ配列に読み込みたい時
5.変数に読み込みたい時
6.ソケットを開いて(略)
7.6とやってる事は同じ。fsockopen使うのが面倒で楽したい時
932nobodyさん:2006/12/19(火) 22:23:14 ID:???
>>930
「取得する方法」でなくて「表示する方法」?
無加工で単に表示するだけならそのサイトに直接飛ばすのが早いんじゃ…

という突っ込みはとりあえず置いとくとして、
とにかく表示(出力)がしたいだけならreadfile()。そのための関数だし。
無加工で取得したいならfile_get_contents()。
行単位に何かしら加工したいならfile()。
加工するけど行単位でないならやっぱりfile_get_contents()。
POST処理とかタイムアウト処理とかが必要ならHTTP_Request。
PEARを使えないケース(って滅多に無いが)ならfsockopen()。
ってとこ。

includeやrequireはPHPとして文法パース&実行を行うんで
そういうのが必要な特殊な用途じゃない限り使わない。
また、そんなのが必要なケースに自分はお目にかかったことがない。

fopenは対象ページがよっぽどでかいとかいうわけじゃなきゃ必要を感じない。
WEBページでなくアーカイブファイルとか動画ファイルとかのダウンロードなら
メモリ確保がシビアになるケースがあるのでこれを使う。
933nobodyさん:2006/12/20(水) 00:09:03 ID:???
>相手の会員番号をセッションに登録すればいいだけでしょうか?

うん。
934nobodyさん:2006/12/20(水) 03:13:58 ID:Cie7izus
try catchをPHPマニュアルでひいてるんですがHITしません。
なんとなく重要な関数(?)っぽいので、
どういう時に使うのかを知りたいのですが、
マニュアルに書いてあるなら誘導していただけませんでしょうか?
ちなみにどういうものなのかも教えていただければ嬉しいです。
935nobodyさん:2006/12/20(水) 03:20:38 ID:???
>934
関数じゃなくて「サイト内全検索(all php.net sites)」で
ttp://www.php.net/manual/ja/language.exceptions.php
936nobodyさん:2006/12/20(水) 03:27:32 ID:s+1rE1pc
PHPのド素人です

クライアントアプリケーションがCGI(PHP)に対して
octet-streamのデータをPOSTした場合、
PHPではどうやって値を取得すればよいのでしょうか?
URLエンコードされているデータの場合だと_POSTで
nameを指定すれば取得できることは知っているのですが
バイナリだとどうすればよいのでしょうか。
よろしくおながいします
937nobodyさん:2006/12/20(水) 04:28:33 ID:???
php-v 4.4.4 mysql-v 4.0.27
nullを許可しているlongtextスペースに UPDATEを使って70000バイトほどの文字列を
入力したいのですがエラーになります。
10000以下位では入力出来ました。
何が原因でしょう?
ヒントください。
938nobodyさん:2006/12/20(水) 08:30:06 ID:???
PHPのプロです
>>936
質問が難しすぎてわかりません
>>937
スレ違い
939nobodyさん:2006/12/20(水) 08:33:35 ID:???
>>936
$data = '';
$fp = fopen('php://input', 'rb');
while (!feof($fp)) {
    $data .= fread($fp, 1024);
}
fclose($fp);
940930:2006/12/20(水) 10:30:25 ID:???
>>931,932
ありがとうございました、勉強になりました。
941936:2006/12/20(水) 11:04:10 ID:s+1rE1pc
>>939
まさにそれです!!
つたない説明文を理解していただき
最大級に感謝します
942nobodyさん:2006/12/20(水) 15:00:15 ID:???
そろそろPHP5.2+MySQL5+Apache2.2あたりに移行しようかと思いました。
2年程ブランクがあるので、全てのアプリがメジャーバージョンUPされてて(泣

昔はPear::DB使っていたのですが、
PDO_MYSQLが使えるものかと思い、
マニュアルを確認すると、MySQL4.Xと書いてあります。
PDO_MYSQLはMySQL5でも使えますでしょうか?
943nobodyさん:2006/12/20(水) 15:03:20 ID:???
ためしてみればいいじゃん
944nobodyさん:2006/12/20(水) 15:31:53 ID:???
全機能全パターンを試せるわけじゃないんだし
それは質問に対する回答になってないよ
945942:2006/12/20(水) 15:44:32 ID:???
今、インストール中です…
PHP5.2の場合、PDO_MYSQLをインストールするのは
configureのオプションに以下を追加するだけでいいのかにも躓いてます…。
--with-mysql=/usr/local/mysql --with-pdo-mysql=/usr/local/mysql
946nobodyさん:2006/12/20(水) 15:46:00 ID:???
入力に応じてfunctionの引数の数を増やしたいのですが、
そんなことってできますでしょうか?
どういう風にかけばいいのかわからなくて・・・

function A($a, $b){
echo $a+$b;
}

function B($a, $b, $c){
echo $a+$b+$c;
}

こんな感じのを1つにできたらなぁと。
947nobodyさん:2006/12/20(水) 15:50:08 ID:???
>>946
配列を引数にする。
948942:2006/12/20(水) 15:54:52 ID:???
>>946
func_get_args() func_num_args() func_get_arg()

俺だったら、連想配列で渡しちゃいます。
949946:2006/12/20(水) 15:55:52 ID:???
>>947-948
どうもありがとうございます。
早速試してみたいと思います。
950nobodyさん:2006/12/20(水) 16:01:23 ID:ar7H9Wcq
C++ で処理した結果をPHPで書いたページで表示させたいのですが、
ネイティブなライブラリを呼び出す仕組みってあるんでしょうか?
Javaのネイティブメソッド呼び出しのような規約が
決められているのでしょうか?
951nobodyさん:2006/12/20(水) 16:02:34 ID:???
1.<input type="text" name="hoge[]">
〜〜
20.<input type="text" name="hoge[]">
このクエリを1個ずつデータベースに入れる際、空白(何もかかれていない)の場合、その変数を消したいのですがどのような方法が良いでしょうか?

こんなのしか思いつきません…
foreach($hoge as $h_arr) {
if(empty$h_arr)) {
unset($h_arr);
}
952nobodyさん:2006/12/20(水) 16:08:27 ID:???
よくわからんけど空白じゃなければ挿入処理を行うってしたらだめなのか?
953nobodyさん:2006/12/20(水) 16:09:28 ID:???
>>952さん
…石頭な漏れですた…
ありがとう…(;ω;)
954nobodyさん:2006/12/20(水) 16:15:01 ID:???
変数ごと消そうとしてたのかw
955nobodyさん:2006/12/20(水) 17:37:39 ID:Vi7URSua
$date = YYYY-MM-DD
の形から
1ヵ月後は 「YYYY-MM-DDである」
5ヵ月後は 「YYYY-MM-DDである」
1年後は 「YYYY-MM-DDである」…
と出したいのですが何か良い方法はありますか?
分解して精製するしかないのでしょうか?
956nobodyさん:2006/12/20(水) 17:52:03 ID:???
>>955
strtotime()
957nobodyさん:2006/12/20(水) 18:01:10 ID:???
>>955
$d = getdate(strtotime($date));
mktime($d["hours"],$d["minutes"],$d["seconds"],$d["mon"] + 1,$d["mday"],$d["year"]);
mktime($d["hours"],$d["minutes"],$d["seconds"],$d["mon"] + 5,$d["mday"],$d["year"]);
mktime($d["hours"],$d["minutes"],$d["seconds"],$d["mon"] + 1,$d["mday"],$d["year"] + 1);
958nobodyさん:2006/12/20(水) 18:29:56 ID:0HPzhBAY
つecho
959nobodyさん:2006/12/20(水) 18:37:29 ID:Vi7URSua
>>956,>>957両氏
ありがとうございます。
[strtotime],[getdate]初めてしりました。勉強になります。
date('Y-m-d'strtotime('+1 month', strttime($date)));
date('Y-m-d'strtotime('+1 year', strttime($date)));
でできました!
ただ、来週とかができないのです…
date('Y-m-d'strtotime('next week', strttime($date)));
今一度、お力お貸しくださいませ。
960959:2006/12/20(水) 18:38:32 ID:Vi7URSua
訂正です。
来週末、今月末等ができません。
宜しくお願い致します。
961nobodyさん:2006/12/20(水) 18:47:44 ID:???
なんでマニュアル読まないのか…
ttp://jp2.php.net/manual/ja/function.strtotime.php
962nobodyさん:2006/12/20(水) 18:52:36 ID:???
そんな面白い関数があったのか、初めて知った
ってか日時関数あまり使わなかったから知る機会なかっただけかな?

>>960
<?php
echo date('Y-m-d',strtotime("now")), "<br />\n";
echo date('Y-m-d',strtotime("10 September 2000")), "<br />\n";
echo date('Y-m-d',strtotime("+1 day")), "<br />\n";
echo date('Y-m-d',strtotime("+1 week")), "<br />\n";
echo date('Y-m-d',strtotime("+1 week 2 days 4 hours 2 seconds")), "<br />\n";
echo date('Y-m-d',strtotime("next Thursday")), "<br />\n";
echo date('Y-m-d',strtotime("last Monday")), "<br />\n";
?>
963nobodyさん:2006/12/20(水) 18:53:06 ID:???
DB接続抽象オブジェクトのPDOを使っているのですが、

$dbh->prepare($sql);

このprepareメソッドでフリーズしてるぽいとこまでは分かったのですが
(前後でvar_dump("hoge")を試したところ、前は成功、後は失敗(ずっと応答待ち))
対処の仕方がわかりません・・・せめてどういうエラーか分かればいいのですが方法あるんでしょうか?
よろしくお願いします
964nobodyさん:2006/12/20(水) 18:54:02 ID:???
>>963
mysql_error()
965nobodyさん:2006/12/20(水) 18:56:22 ID:???
>>963
例外処理やった?
966963:2006/12/20(水) 19:08:08 ID:XG/2ezlL
ありがとうございます。

>>例外処理
try~catchで囲んでみたんですが拾えませんでした。
原因が違うところにあるとしても、その前後では動いてるの確認(var_dump)してるので
エラーだとしたら何かしら拾えると考えたのですが・・・
応答待ちになってると考えて探った方がいいのでしょうか
967959:2006/12/20(水) 19:18:57 ID:Vi7URSua
>>962
せっくっす
968nobodyさん:2006/12/20(水) 19:46:27 ID:???
>>962
それでも来週末・今月末はできない
969nobodyさん:2006/12/20(水) 20:03:17 ID:???
>>968
来週末=来週の土曜日でいいのか?
だったら
echo date('Y-m-d-H:i:s',strtotime("+1 week Saturday")), "<br />\n";
970nobodyさん:2006/12/20(水) 20:08:50 ID:???
関係ないが
>>967の明らかな適当な御礼か何かわからないのがウザい
971nobodyさん:2006/12/20(水) 20:30:59 ID:t+vbPSXB
imagettftextを使って入力文字を画像にさせたのですが
機種依存文字である@ABCなどを画像にすることができません
いろいろなフォントで試してもだめでした。
imagettftextで機種依存文字を画像にするのは無理なのでしょうか
phpのバージョンは5.1です
972nobodyさん:2006/12/20(水) 21:04:46 ID:???
今月末
$d = getdate(strtotime($date));
mktime(0,0,0,$d["mon"] + 1,0,$d["year"]);
973nobodyさん:2006/12/20(水) 21:39:34 ID:???
外部コマンドのオプションって配列で渡せばいいだけ?
974nobodyさん:2006/12/20(水) 21:42:13 ID:???
>>973
日本語でおk
975超初心者:2006/12/20(水) 22:15:46 ID:???
phpをyumでインストールしてみたのですが、
何処にインストールされたのか分からなくなってしまいました。orz
(/usr/local/lib/php.iniも見当たらない)
ファイルを検索する方法を教えてもらえないでしょうか。

レベル低すぎる質問でもうしわけないです。
976超初心者:2006/12/20(水) 22:28:01 ID:???
ごめ、今のなし。
phpinfoで確認できることを思い出しました。
スレ汚してスンマソン。
977nobodyさん:2006/12/20(水) 23:21:20 ID:???
php云々ではなくて、わからないならunix系を無理に使うなって話ですね。
978nobodyさん:2006/12/21(木) 02:29:17 ID:???
windowsの起動の仕方とシャットダウンを勉強してこい。話はそれからだ。
979nobodyさん:2006/12/21(木) 04:28:53 ID:???
よくURL抽出のプログラムとかを見かけるのですが、
指定したURLから<object>〜</object>や<title>〜</title>などのタグを指定して抽出するものはありませんか?。

参考になるサイトだけでもいいので知っている方教えてください。
980nobodyさん:2006/12/21(木) 04:54:54 ID:???
>>979
正規表現。あとは自分でググレカス。
981nobodyさん:2006/12/21(木) 06:01:18 ID:???
DBから取得したデータで「\n」を表示させると、
「\n」と直接表示されてしまいます。
ソース内で改行させたいのですが、どのように記述すれば良いのでしょうか?
str_replace("\n","\r\n",$str);
で置き換えようと思ったのですが、置き換えることができませんでした。
982981:2006/12/21(木) 06:03:58 ID:???
書き込んだ瞬間ひらめき
str_replace("\\n","\r\n",$str);
で解決することができました。
983942:2006/12/21(木) 11:18:27 ID:???
>>966
try-catchなら、下の設定は必要かも。
setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
984nobodyさん:2006/12/21(木) 12:17:01 ID:QeRiyNxN
アクセスしてきた人がPCか携帯か判別して、それぞれのサイトに
割り振るCGIやスクリプトってあるんでしょうか?
サーバが対応してくれないので困ってます…。
985nobodyさん:2006/12/21(木) 12:19:19 ID:???
検索って知ってる?
986nobodyさん:2006/12/21(木) 12:19:45 ID:???
普通にアクセス元解析して振り分けたらだめなのかい?
987nobodyさん:2006/12/21(木) 12:41:12 ID:KBdj5Zxx
メールアドレスの入力欄で、全角入力の場合にエラーを
表示したいと考えております。
以下の条件文の*******をどう表記すればよいでしょうか?
お願い致します。

 if(ereg("*******", $var)){
  $errm .= "<span class=mj>E-mail入力値が不正です。</span><BR>\n";
 }
988nobodyさん:2006/12/21(木) 12:47:29 ID:???
989nobodyさん:2006/12/21(木) 13:07:55 ID:???
988様ありがとう御座います。
上記サイトで気になったのが、メールアドレスチェックの際
半角英数字と.と-のみのチェックしかしていませんでした。
もしメールアドレスに!や#などが使用されていた場合このスクリプト
だと誤ったメールアドレスとして認識されてしまいます。
メールアドレスのチェックは一般的に半角英数字と.と-のみで
良いのでしょうか?
990nobodyさん:2006/12/21(木) 13:11:56 ID:???
>>989
if(!preg_match('/^[a-zA-Z0-9_\-]+$/', $_var)){

}

メールアドレスに使えるのは
A〜Zと-_.と数値だけ
991nobodyさん:2006/12/21(木) 13:13:12 ID:???
一般的に!や#が入ったメアドを見たことないのだが・・
もしそれらの文字がでてくるならその時にスクリプトも変更すればよいと思う
992nobodyさん:2006/12/21(木) 13:20:23 ID:???
厳密なE-mailアドレスチェックを書こうと思うと酷いことになる。

preg_match('/^(?:[^(\040)<>@,;:".\\\\\[\]\000-\037\x80-\xff]+(?![^(\040)<>@,;:"
.\\\\\[\]\000-\037\x80-\xff])|"[^\\\\\x80-\xff\n\015"]*(?:\\\\[^\x80-\xff]
[^\\\\\x80-\xff\n\015"]*)*")(?:\.(?:[^(\040)<>@,;:".\\\\\[\]\000-\037\x80-\xff]
+(?![^(\040)<>@,;:".\\\\\[\]\000-\037\x80-\xff])|"[^\\\\\x80-\xff\n\015"]*
(?:\\\\[^\x80-\xff][^\\\\\x80-\xff\n\015"]*)*"))*@(?:[^(\040)<>@,;:".\\\\\[\]
\000-\037\x80-\xff]+(?![^(\040)<>@,;:".\\\\\[\]\000-\037\x80-\xff])|
\[(?:[^\\\\\x80-\xff\n\015\[\]]|\\\\[^\x80-\xff])*\])(?:\.(?:[^(\040)<>@,;:"
.\\\\\[\]\000-\037\x80-\xff]+(?![^(\040)<>@,;:".\\\\\[\]\000-\037\x80-\xff])|
\[(?:[^\\\\\x80-\xff\n\015\[\]]|\\\\[^\x80-\xff])*\]))*$/', $email);
993nobodyさん:2006/12/21(木) 13:21:17 ID:???
>>992
どこから拾ってきたんだよwww

そういえば、携帯用IPでアクセス制限できるプログラム載ってるサイト無かったっけ?
994軟式PHP:2006/12/21(木) 13:29:18 ID:???
メールチェック正規表現はだいぶ昔だけどこれ見て吐き気がした。
ttp://www.din.or.jp/~ohzaki/perl.htm#Mail
995nobodyさん:2006/12/21(木) 13:34:51 ID:???
ttp://www.din.or.jp/~ohzaki/perl.htm#Mail
このaddr-specだけのものを引っ張ってきたんだろうかね。

実用的には @ の前後とも>>990のregex(と \. )で表される文字だけで成り立ってたら
いいことにしよう、ぐらいでいいのかも。
996nobodyさん:2006/12/21(木) 13:46:14 ID:???
次スレ立ててきた。本スレあった頃ってテンプレこんなに長かったっけ?

【PHP】下らねぇ質問はここに書き込みやがれ 35
http://pc8.2ch.net/test/read.cgi/php/1166676139/
997nobodyさん:2006/12/21(木) 13:49:18 ID:1NDthtg1
スレも残り少なくなってきたので下らない(と思われる)質問。
以前から気になってしようがなかったんだけど....

$int = 5;
if($int > 0) echo "0より大きいらしい";
$int = "string";
if($int > 0) echo "これなんでエラーにならないの?";
998nobodyさん:2006/12/21(木) 13:56:54 ID:???
>>997
string > 0 じゃないから『これなんでエラーにならないの?』が表示されない
999nobodyさん:2006/12/21(木) 13:58:56 ID:???
999?
1000nobodyさん:2006/12/21(木) 13:59:30 ID:???
;;;;;ヾ);;;)            (;:;ヾ;;;ヾ
;;;;;ヾ);;;)  ゆったりと   ((;::ヾ;;;ヾ
;;;;;ヾ);;;)   1000げと     (;::ヾ;;;;ヾ
!l ;||}、   ._,,..,,,,_        ;{ll;;;l
;::ll;.| ~ヽxx./ ,' 3  `ヽーっ.xxノ~.|!!;;:
;;;!l }   ミ三三三三三三彡'   };!;;l|
|l !|   `^`゛゛''"""~~゛゛"´~    ノ;;:;:;l
ヘハヘゞ             "^ハブヘ
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。