【PHP】下らねぇ質問はここに書き込みやがれ 34
424 :
411 :
2006/12/12(火) 16:19:50 ID:j1klqrWE 先ほどのことなのですが、AとBはそれぞれ単体で動かすと、正常に処理できる のに、require.phpとして <?php require('A.php'); require('B.php'); ?> として実行したら、Aの部分しか処理できていませんでした。 何故なのでしょうか?
426 :
411 :2006/12/12(火) 16:27:03 ID:j1klqrWE
>>426 うーん、わからん。
実は全角の<?phpになってるとか...それはないか。
428 :
411 :2006/12/12(火) 16:43:36 ID:j1klqrWE
そうですか。。。どうもでした。
>>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
>>413 ,421,423,425
お前に言ってんだよw読解力無いな。鸚鵡返ししかできんのか。
さっさと失せろ。
だが断る。
>>431 必殺「鸚鵡返し」。 お前が
>さっさと失せろ。
まぁ落ち着けよ
435 :
PHP出版 :2006/12/12(火) 17:02:35 ID:???
eval("include('A.php')"); eval("include('B.php')");
437 :
nobodyさん :2006/12/12(火) 17:05:27 ID:apzoBj1l
たくさんの入力項目を元に、 ファイルを作成するプログラムを作っているのですが、 $a = $_POST['a']; $b = $_POST['b']; $c = $_POST['c']; みたいなかんじで変数でごちゃごちゃになっています。 もうちょっと綺麗な書き方あったらぜひ教えてください。
>>436 素直に読めば
>>419 にケチをつけているのではないことくらい自明だと思うが?
まあいいや他所でやれ。
439 :
軟式PHP :2006/12/12(火) 17:12:00 ID:???
>>437 他人が作ったソースを読んでみるのも勉強になるお。
>>438 そうか?オレは
>>419 に対してだと思っていたが。
まぁ、とにかくレスアンカー必須のほうが誤解もなく安全だろ。ということでみなさ
ん、マナーとしてレスアンカーはきちんとつけようね。
>>437 extract()のマニュアルを調べるといいかも。
>>437 配列とか。
なんかプログラマって、いちゃもんつける人多いよね。
理系だから、完全な解を求めたがるような印象…
>>437 $key = array($_POST['a']=>'a',$_POST['b']=>'b',$_POST['c']=>'c');
echo $key['a'];
444 :
nobodyさん :2006/12/12(火) 17:20:08 ID:apzoBj1l
みなさんどうもありがとうございます! さっそく教えていただいた配列でやってみたいと思います。 extractもマニュアルでひいてきます。
446 :
nobodyさん :2006/12/12(火) 17:23:16 ID:8yL3wR52
aaa.txtが存在しまして、file関数で変数$fileに取り込む記述があります。 $file = file("aaa.txt"); ファイルが開けない原因を考えているのですがわかりません。 どなたかアドバイスお願いいたします。
パーミッション
449 :
nobodyさん :2006/12/12(火) 17:41:25 ID:8yL3wR52
<<447-448さんありがとうございます。 やはりパーミッションですよね。 windowsでテストしているのですが、この環境でlinuxと同じように パーミッションをいじくる方法ってありませんか?
$aが0のとき、empty($a)がTRUEになるのですが、 マニュアルだとnullや0はFalseを返すと書いてあるのになぜでしょうか?
451 :
391 :2006/12/12(火) 17:48:07 ID:???
>>393 >>402 超ありがとう!!
やっぱり、いったんfetchAllしてforeachで回すのがいいか。
>>452 勘違いしました(汗
クエリーから送った0だと空扱いにならないんですがなぜでしょうか?
この記述はAが出力されますが、クエリ文字を$aにおくるとBになるんです。
$a = 0;
if (empty($a)){
echo "A";
}else{
echo "B";
}
0とnullの違いわかってる?
>>453 よくわからないので、できればソースを。
>>454 おい、emptyでは0もnullもいっしょw
458 :
453 :2006/12/12(火) 19:08:03 ID:???
すいません、勘違いしてました。 なるわけないですね。
>>458 すげぇ、おちだなwwwwwwwwwwwwwwww
混乱させた罪は重い
461 :
411 :2006/12/12(火) 19:26:37 ID:j1klqrWE
エラーを全表示にしたら、Fatal error: Maximum execution time of 30 というエラーが出ていて、php.iniを修正したら解決しました。 お答えくださった方々、ありがとうございました。
464 :
nobodyさん :2006/12/12(火) 22:23:01 ID:aSyT8QN3
ある。
>>464 あまりにも華麗に入ってきたから気づかなかったが、よく考えたら
その質問は
ス
レ
違
い。
「第三者がUPした任意のファイルをダウンロード」する時点で、 全てはダウンロードする側の自己責任。
XSS絡みでPHP使用する場合の話だから あながち完全にスレ違いってわけでもない
>>464 をスレ違いじゃないとすればApacheの設定やJavaScriptの使い方
を尋ねてくる輩まで全部世話しないといけなくなるぞ。
>>464 の質問にはPHPに絡むと思われる記述はどこにもないじゃん。
472 :
nobodyさん :2006/12/12(火) 23:42:04 ID:Fq05kJcv
SESSIONって使ってますか? 自分でファイルに書き出して、セッション管理する方が サーバーの設定に惑わされることもなくていいように感じるけど。
ぱくられたらおわり
474 :
ID出し忘れてました :2006/12/13(水) 02:35:11 ID:e6aGkkm7
サーバの引越しとかDBの調整とかスクリプトのテストとかをするときに、 アクセスしてきた人に対して一時的に「メンテナンス中」と表示するには どうしたらいいんでしょうか? よく大手サイトなどでメンテナンスのときになってるようにしたいです。 イメージとしては、管理者(自分)だけはいつも通りサイトにアクセスできるけど、 一般の訪問者はどのページにアクセスしようとも、 mod_rewriteか何かで、メンテを知らせるページに強制ジャンプさせる…みたいな感じです。
if ($_SERVER['REMOTE_ADDR'] != "おまいのIP") { header('Location: メンテナンス中のページ'); die(); }
476 :
nobodyさん :2006/12/13(水) 04:28:27 ID:e6aGkkm7
>>475 なるほど、その手がありましたか!! 意外と盲点だった・・・。
大規模サイトもそんなシンプルな手法なのでしょうか?
言っておくけど、この板に大規模サイトなんて触ったことある人はいないよ。
大規模サイトってどのくらいの規模以上のものを言うの? yahoo並、とかいうあいまいな基準を出されても分からないから数値でよろ。
>>477 なんでいないと決め付けるの?
案外身近にいるもんだよw
>>478 少なくとも、1サイトで「ロードバランサ+Webサーバ2台+DBサーバ1台」
という構成が、大規模サイトの最低基準だと仮定すると??
>>480 その構成は金の無駄じゃね
ロードバランサなんて使わずに、DNS ラウンドロビン すりゃいいじゃん。
>>481 問題点
1.耐障害性の欠如
分散先のサーバの障害検知は原則として不可能である。
そのため、分散先のサーバのうちの1つだけがサービス不能な場合等に復旧が遅れがちである。
2.分散先サーバの通信継続性
接続ごとに接続先が違うと、接続の継続性が求められる
サーバの場合に問題が起きる可能性がある(暗号化通信など)。
3.分散先サーバの同期
分散サーバのコンテンツの内容が同一でないと、
接続に問題が起きる可能性がある(Webサーバでのリンクなど)。
4.DNSキャッシングの情報更新の際に生じる時差
5.トラフィック負荷を分散する際の予期せぬ偏り
1〜5の問題があるからロードバランサーなんだろうw
>>477-480 今まで関わったWeb系で一番規模が大きいのは、
Webサーバー6台、DBサーバー2台、メールサーバー1台、SSL処理サーバー1台、ロードバランサー1台だった。
(大規模サイトかわからんがな。ちなみに携帯メインサイト PCサイトもあるけどあくまでも携帯中心だった)
PHPが使われてたのはPCサイトだけだったけど・・・
Perl60% Java30% PHP10%なサイトだった。最初はJavaだけだったはずが、PerlとPHPもやることに/ ,' 3 `ヽーっ
>>482 >1〜5の問題があるからロードバランサーなんだろうw
他人の文章を丸パクリしたくせに生意気なこと言える立場かよw
>>483 ちょw そうです。見栄が張りたいんですw
わざわざ検索されたんですねw
乙ですw
>>486 うわぁw こいつ完全に開き直ってますwww
>わざわざ検索されたんですねw
>乙ですw
余裕あるように見せても、お前、実際かなり恥ずかしいぞwwwww
>>482 ┐(´ー`)┌ ぷっ
まぁ、これは槍玉に挙げられてもしょうがないわな。
お願いだから、くだらなさ、レベルの高さ、規模の大きさに関連する話題でこのスレを荒らさないでください。
別に話題としてはしてもいいけど、 煽りにいちいち反応するなよ。餓鬼じゃあるまいし。
493 :
nobodyさん :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という風に 並び替えたいのですが、スマートに書けません。 どんな書き方が負荷のかからないスマートな書き方なんでしょうか?
494 :
493 :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++; }
配列の2番目($a[1]〜$f[1])を配列にいれて、 sortすればいいだけでは?
>>492 使い古された論法だが、おまいもいちいち反応してるやんけ。
>>493 usort($list, cmp_arr);
function cmp_arr($a, $b) {
return $a[1] < $b[1] ? -1 : $a[1] > $b[1];
}
497 :
493 :2006/12/13(水) 12:05:12 ID:???
498 :
nobodyさん :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から始まる文字列を抜き出す処理を加えると、 何も処理されなくなってしまいまして。。。 よろしければ、お教え願いたく。
499 :
nobodyさん :2006/12/13(水) 12:19:07 ID:bSWpJk+Q
JpGraphで折れ線グラフ作ってるんですけど、 プロットに適当な文字列を表示することってできるんでしょうか? プロットの値を表示することしかできないんでしょうか? 返答、お願いします。
>>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" : '');
}
501 :
493 :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]; の数字部分は変数ではなく
数字を入れないとダメなんでしょうか?
関数の中はスコープが違うから$xは未定義だよ
503 :
493 :2006/12/13(水) 12:43:48 ID:teIa09dB
失礼しました。 $x = 1 を書く位置が悪いんですね・・・ すみません
三項演算子は読みにくいから使わないほうがいいよ
>>500 Iterator使うならforeachしようよ。そしてforeach使うなら、最初からただのarrayでおk。
>>484 で、構成は分かったけど、それでユーザー数とかPVとかはどれくらい?
あと1日のトラフィック量とか、そういうのが分からないと
サイトの規模が分からないでしょう。
三項演算子が読みづらいってことはないでしょ。 使いたい人は使えばいい。
クンニされたい…。
三項演算子なんて実務で使ったら上に殺される
それなら俺は殺されまくりんぐだなw
>>504 ,
>>509 なにこいつら?たかが三項演算子くらい使いたいところで使えばいいじゃん。
三項演算子くらいで文句言うのはキモイ。
>>505 まぁ確かにOOPも理解できないお前にはIteratorは一生無縁だろうな。
質問です 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込みなら方法はあるのですが、安全性を求められている所なので使えません…)
>>511 PHPは言語自体がOOP向きじゃないから
>>505 みたいなカスが出てきても仕方ないと思うが。
自分が使えないからって
>ただのarrayでおk
とか言いだすのはひどすぎるけどな。
もうお舞ら可燃度高すぎw もうちょっと冷静にいこうよ。
516 :
515 :2006/12/13(水) 15:18:54 ID:???
全角英数字の文字列を取り出して、半角に変換すると文字化けしてしまう のですが。(文字列を取り出した段階では文字化けしていません) $get_id = substr($array_id,0,16); ・・・・ex A0103360 $convert_id = mb_convert_kana($get_id,"a"); このようにして取り出した全角英数字の文字列を半角に変換したいのですが 文字化けしてしまいまして。どうすれば正常に変換されるでしょうか?
>>517 substr() -> mb_substr()にしてみて。
>515>516 ありがとう〜〜〜 516のメソッドのページは見たことありませんでした〜〜 熟読してみます〜〜 ……………やっぱPHPで、ページ遷移させる方法ってのありませんでしたっけ?
520 :
517 :2006/12/13(水) 15:40:10 ID:???
>>518 回答どうもです。
mb_substr()にしてみましたが、文字化けがなおりませんでした。
ほかに手はないものでしょうか?
Zend_Controller_Actionクラスの_forward()というメソッドで エラーが発生したときにエラー処理用のActionに処理を移せば いいかと。 class IndexController extends Zend_Controller_Action { public function indexAction() { //エラーがあったら他のActionに処理を移す if ($error) $this->_forward('IndexController', 'errorAction'); } public function errorAction() { //エラー処理 } }
522 :
517 :2006/12/13(水) 15:47:48 ID:???
mb_internal_encoding を使ったら文字化けなおりました。
書き込まれたソースは半角スペースが削除されて読みにくいので、よかった らこれで変換してから書き込んでください。 <?php $string = <<<END //code END; $string = preg_replace('{ }', ' ', $string); $string = preg_replace('{\t}', ' ', $string); echo $string; できれば誰かJavaScript版を作ってくれると使いやすくていいと 思うんだけど。
>>524 それはいいけど、preg_replaceよりstr_replaceのほうがいいんじゃね、この場合?
preg_replaceの第一パラメータは/pattern/にしないと。 preg_replace("/pattern/", "replacement", "strings");
メール送信について相談なのですが、 BCC送信のように、複数宛先を一括送信する場合は、配列にメールアドレス を入れて、mail関数の処理をforで回すという考えでいいでしょうか? また、特別なソフトを使わない場合、PHPでメール送信するには mail関数やsendmailを使う以外無いのでしょうか?処理速度が心配です。
{}でもおkだけど//のほうがなじみがあるね
>515>516>521 返信ありがとうございます〜 勉強させて頂きました感謝です。 結論から言うと、 $this->_forward('IndexController', 'errorAction'); で、確かにページは出ました。 「<div>タグ」の中に;; クライアント XMLHttpRequestを送信 ↓ 鯖 forwardで違うアクションのページを出力 ↓ クライアント あ、戻り値?何? XMLHttpRequestでしょ? タグの中にinnerHTMLねw 戻り値が何であろうと、根こそぎjs上で指定された場所っぽいです アクションは、途中で変わったので、正規アクションが動く前に処理できる所まで着ました。 もう少しの所まで来た気がします。
530 :
nobodyさん :2006/12/13(水) 16:36:09 ID:+OBhpWUX
2006年12月13日を2006/12/13の形にしたいのですが どうするのが簡単でしょうか?
$str = "2006年12月13日"; $str = preg_replace('/年|月/', '/', $str); $str = preg_replace('/日/', '', $str); echo $str;
指定したディレクトリの .txt .pdf のファイルを一括して削除 したいんですけど、何か方法はないでしょうか?
534 :
nobodyさん :2006/12/13(水) 17:25:49 ID:+OBhpWUX
$hoge[$num] 感覚的にこんなことがしたいのですがどうすればいいでしょうか? $numには英数字が入っています
>>535 ${"hoge".$num}
>>533 ディレクトリなめて
拡張子がそれらか比較
該当したらファイル削除
537 :
nobodyさん :2006/12/13(水) 17:37:15 ID:dNCg3wG0
$hoge["{$num}"]
538 :
nobodyさん :2006/12/13(水) 17:41:09 ID:F8GTcB6w
ヘッダが濃厚
IEのバージョン
PHPで.aiファイルをswfやjpgに変換できるようなライブラリとかありますか? やりたいことはアップロードされた.aiデータをswfをリアルタイム変換したいんですけど。
<?php
$url = "
http://2ch.se/ ";
$fp = @fsockopen($url,80,$errno,$errstr,5) or die("ゴメン無理");
print $fp;
?>
なぜか表示されません原因は何でしょうか?
543 :
542 :2006/12/13(水) 19:01:39 ID:???
修正 目的のURLが表示されません
接続してるだけでおk?
546 :
542 :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);
}
?>
これでも無理でした
$url = "2ch.se";
548 :
542 :2006/12/13(水) 19:58:14 ID:???
ありがとうございます、解決しました。
549 :
505 :2006/12/13(水) 21:54:09 ID:???
>>500 ,511,513
本気で言ってるのか、ただ煽りたいだけなのか・・・
まず500のforの部分をforeach ($lines as $line)とでも書いたらどうよ。
しかもそのケースだったら、Iterator使っても意味なさすぎ。
550 :
542 :2006/12/13(水) 22:06:51 ID:???
たびたびすみません
>>546 でページを表示したときに出る
HTTP/1.0 200 OK content-type:text/html
という表示を消したいのですが
>>546 のどこをどう変えればいいのでしょうか?
>>549 三項演算子の不便さをキモイという素人なんだから放っておけ。
552 :
538 :2006/12/13(水) 22:24:45 ID:sfCDWF8R
>>551 三項演算子が不便!?なにこのド素人。
お前一回くらいオープンソースで開発されてるアプリケーションの
ソース見てみろよ。自分がいかに恥ずかしいことを言ってるか気づ
くよ。
>>553 大多数が見づらい書き方を推奨するなよタコ。
どこのコーディング規約でもたいてい禁止されてる。
>>554 なるほど。それは知らなかった。
>どこのコーディング規約でもたいてい禁止されてる。
では早速、禁止されてる有名なプロジェクトあげてみてくれる?
>>554 「たいてい」と言うほど禁止されてはいないだろ。
一部では禁止してるみたいだけど、さすがに言いすぎ。
そもそも三項演算子も理解できない、読みにくいとか言うレベルの人間が参加してるプロジェクト なんて大したことないだろ。 大口をたたいたやつは、早く三項演算子禁止のプロジェクトをあげろよ。たいていは禁止らしいか ら山ほどあるはずだろ。
たいてい禁止ではなくてたいてい"非推奨"だな。 三項演算子なんて一般的じゃないし、可読性が大事だからね。
>>557 >そもそも三項演算子も理解できない、読みにくいとか言うレベルの人間が参加してるプロジェクト
>なんて大したことないだろ。
何言ってるんだ・・・
個人的に理解できてても、読みなれてても、
複数人がらみのプロジェクトなら
読みやすいほうを採用するに決まってるだろう・・・
>>496 の
return $a[1] < $b[1] ? -1 : $a[1] > $b[1];
〜〜〜〜〜〜
これ何か意味あるの?
>>549 お前の言うこともわかる。たしかにforeachのほうが若干すっきりするしな。
でも、pythonとかjavaをやった人間には
>>500 のほうがしっくりくる気がする。
PHPにはPHPの流儀があるだろうから、それぞれ好きにやればいいんじゃないの?
すいません、CSVから出力するときに、 順番を後ろから出力する載ってどうやったらいいでしょうか? 1〜10行までデータがあった場合、10行目から出力したいのです。
>>562 自分で調べろよ。
PGになればわかるからそういう会社入れ。
禁止っていうのは言い過ぎたかもしれんが、
よほどの事情がない限り使うなとは言われるだろう。
>>552 そのままコピペしたらいけたよ。
IEでもだめかい?
header出力するまえに何も出力ないよね?
>>550 それらの文字列なら出力しないようにすればどう?
もしくはfile_get_contents使えば?
566 :
nobodyさん :2006/12/13(水) 23:04:43 ID:2BlCBXrB
PHPのプログラムなどでよく、 送信→Now loadingの画面→送信完了ページ のようなプログラムがありますが、これはどうやっているのでしょうか? 構造のヒントだけでもいいので、アドバイスいただければと思います。
567 :
556 :2006/12/13(水) 23:06:35 ID:???
>>566 ロード画面は<meta http-rquiv="refresh"〜>でやれば簡単でいいよ。
570 :
567 :2006/12/13(水) 23:20:04 ID:???
>>569 あ、やっぱり?
自分でもそう思ったんだけど、謝るのも礼儀かなと。
>>570 珍しいよ、お前みたいなタイプは。でも、別に悪いことではないわな。
572 :
566 :2006/12/13(水) 23:35:39 ID:???
>>568 出来ました!ありがとうございます。
ただ、これの場合、繰り返し処理の動作など思い処理の場合も
有効なのでしょうか?
>>572 ベンチはかって十分な時間持たせればOK
まったくお前ら良く燃えるな。
冬だからあったかくていいぜ?
>>575 いや本人たちはいいかも知れんが、見てる分には
ちっとも暖まらんぞw
最後のともしびだから、優しく見守ってね
>>561 ん?PHPのIteratorはforeachでまわせるってことだよ。
Iteratorの5つのメソッドを明示的に呼び出す必要はないの。
明示的に呼び出すのは、イテレーションの途中で中断してもう一回再開したり、細かいことをするために使う面もあるが、Webサイトの構築でそんなシチュエーションには残念ながら出会ったことはない。
通常はforeachを用いておけば、rewindやcurrentなど、
>>500 と全く同じ順序で自動的に呼び出される。
pythonやjavaをやっていると
>>500 がしっくり来るってのは、よーわからんな。
C++のSTLと比較するなら、しっくりくるってのもまだわかるけど。
>>578 javaには拡張for文もあるし、Iteratorに拘る必要もない
まぁ、扱いなれた構文で書きたいというのも分かるし、 PHPは似たような関数を各種取り揃えてる辺りからも そういったニーズに応えようとしてるわけだから、 「PHPの構文にある限りは好きなの使えばよろしい」 でFAなんでないの? PHPならこの書き方!みたいのはそんなに無いと思う。 (大抵は制約くらいでしかそんな場面にならない)
>>579 それ俺が知らないと思って言ってるの?何を主張したいのか全然わからないんだけど・・・。
javaの拡張for文もやっていることはイテレーション(リスト状の構造を順番に走査)なわけで。
むしろ拡張for文(=構文糖)を使うってのは、PHPでいうとfor ($lines->rewind();・・・のかわりにforeach ($lines・・・を構文糖として使うことと方向が同じじゃないか。
>>580 いや、言いたいことはわかるけど、そもそも
>>500 で無意味にIteratorを持ち出している点、foreachで書けるものを無意味&煩雑なfor文に展開している点などは、俺的につっこみどころなんだが。
そもそも俺の経験上、PHPのIterator自体お勧めしないものの一つだしな。
582 :
nobodyさん :2006/12/14(木) 00:51:48 ID:6QjdxOSQ
PHPのスクリプトを組んでいるのですが、分からない点がありましたので質問させてください。 変数に文字列を格納していて、その中から特定の文字を2箇所見つけて その間にある文字列を取り出したいのですが、どのように記述したらよいのでしょうか? nfai_usdgvga_jgmandfak_flahogek_glangol_ialgkka のアンダーバーから次のアンダーバーの間を取り出し、その中にhogeが含まれる時に、 別の変数に取り出すということをしたいです。 突然の質問で、大変申し訳ありませんが何卒よろしくお願い致します。
explodeして、それをforeachでループして、ループの中でstrposしてfalseじゃなかったら変数に入れればいい
585 :
nobodyさん :2006/12/14(木) 01:06:07 ID:6QjdxOSQ
ありがとうございました。アドバイスを参考に続けたいと思います。
こう、スレを見返してみると、文字列系の質問が多いな 大体、explode, implode, array_search, array_shift, foreach, eregとかで、答えが出る感じに思う。 と、徹夜中のリーマンより。
文字列系の関数と配列系の関数は、全部憶えておいて損はないよな。
覚える必要はないけどなw 一度、全部読んでおくだけで十分
よく使うやつとか、こういうのがあったなぁぐらいでいいね。 あとはリファレンスを見ればいいし。
590 :
500 :2006/12/14(木) 10:38:40 ID:???
>>581 オレが変な書き方をしたせいで迷惑をかけてるようで申し訳ないです。
あとから拡張とか変更が楽かな?と思って、ついくせでIteratorを使ってし
まいました。でも、みなさんの書き込みを読んでるとその必要も無さそうな
のでこれからはforeachでまわすことにしようと思います。
煽りの原因をつくってしまってすいません。
すみません、質問させてください。 たとえばループ処理系の構文(for等)は、 breakでループを抜けさせることができるようですが、 if構文内で、処理を途中でも抜けさせるような関数はありますか?
無いんじゃないの
>>591 ないよ。なぜなら必要性がないから。
処理させたくないなら、単にif文をネストして処理する条件を
増やしていけばいい。
if ($a) {
if ($b) //ここで$bがfalseならbreak;したのと同じになる
{}
//もちろん$bの評価にかかわらずここは実行されるけど、それは
//書き方を工夫するしかない。
}
594 :
591 :2006/12/14(木) 11:07:47 ID:gRu0cvf6
>>592-593 トンクス!
あぁ、なるほど。
若干書き方を変えるだけでどうにもなりますものね。
1個勉強になりました、ありがとうございます!
複数の入力値があって、 全て入力されているかどうかのチェックが入っています。 入力してなかった箇所は入力してくださいと出すのですが、 送信した際、入力してた方の値もリセットされるので、 inputのvalue属性に入力した値を入れて、入力を保持した感じにしているのですが、 入力値がバックスラッシュ(\)だった場合、 なぜかバックスラッシュが2倍の数になって値に入っているようです。 これは何が原因なのでしょうか?
>>595 magic_quotes_gpcの設定じゃないかな。
配列におけるforeachのように、文字列を一文字ずつ取り出す関数や構文はありませんか?
upローダー作ってますが、 phpのみでフォルダごとアップロードするのって不可能でしょうか? javaアプレットあたりとからめる方法しか思いつかないですが・・。
>>598 それはブラウザ側の問題なのでPHPの処理では無理
input=fileの制限上無理
ありえるとすればzipを鯖で解凍してディレクトリ生成後その中に展開
>>598 単一のクライアントならクライアントのほうにFTPDを立てて、
サーバーからFTP接続してダウンロードさせるってのもトリッキーながら出来る。
mysqlをやってみようと思ってますが、初めからpear等を使うより 関数を使って処理した方が覚えるにはいいですか?
>>597 for($i = 0; $i <= strlen($str); $i++) { echo substr($str, $i); }
とか。
>>603 せめてmb_strlenとmb_substr使おうぜ
mbなんてトラブルの元はインスコしてないよ
>>606 ____
/⌒ ⌒\ ホジホジ
/( ●) (●)\
/::::::⌒(__人__)⌒::::: \ <で?マルチバイトの文字数える時はどうやるのかな?
| mj |ー'´ |
\ 〈__ノ /
ノ ノ
>>606 バイナリで判断してなんていわないでくれよw
マニュアル読んでると、 new XXXみたいにしてから使う関数とかもあるのですが、 これは普通の関数とは何が違うのでしょうか?
610 :
nobodyさん :2006/12/14(木) 21:08:15 ID:IgfNuu2k
ファイルの内容を配列に読み込んで、ある行のデータのみ削除し、 またファイルに書き込みたいのですが、流れがわかりません。 現在のやりかたは、 1.file関数でファイルAを配列に読み込む 2.不必要なデータをunset関数で配列から削除 3.削除した後の配列をファイルBに書き込む 4.ファイルAをunlink関数で削除し、ファイルBの名前をrename関数でファイルAにする というやり方を行っていますが、もっと効率の良いやり方がありましたらご教授お願いいたします。 【テキストファイルの内容】 一行目:あか 二行目:きいろ 三行目:ぴんく 四行目:むらさき
適当な変数にファイル内容を1行ずつ読み込みながら流し込んでいく 要らない部分は流さない。 最後までいって変数の内容を元のファイルに上書き。 じゃだめなのか?
>>610 $lines = file($filename);
//ここで余分な行削除
file_put_contents($filename, implode('', $lines));
// もしくは$fp = fopen($filename, 'w'); fwrite($fp, implode('', $lines)); fclose($fp);
>>601 PEARとかADOとか不要。
特に一人で趣味的に開発してるんなら、わざわざ抽象化する意味ナシ。
615 :
610 :2006/12/14(木) 21:52:13 ID:IgfNuu2k
>>612 さん
>>613 さんアドバイスありがとうございます。
php4と互換性もたせるために
>>613 さんの後者の記述を拝借させていただきましたが、
implodeがないとファイルへの書込みがおかしくなってしまいます。
fwriteは複数行のデータ(多次元配列ですかね?)は書き込めないんですね。
>>615 fwriteの第2引数は文字列だと、マニュアルに書いてある。
>>615 まぁ、なんだ、、、やりたい事を手持ちの機能を使って組み上げていくのがプログラマの仕事だ
618 :
563 :2006/12/14(木) 22:52:19 ID:???
今年のクリスマスの予定はありますか?
phpでツリーを作ります
教室でセクロスします。 見つかったら停学だがそのスリルがいい。
昔実際にセクロスで停学になった俺様が来ましたよ。
624 :
27 :2006/12/14(木) 23:33:48 ID:???
誰かおねがいします。
>>27 まずコンソールからmysqlのコマンド叩いて更新されるか確認したらいいよ。
つーか、エスケープはちゃんとできてるわけ?
626 :
nobodyさん :2006/12/15(金) 00:13:14 ID:0FUvK34I
stream_set_write_bufferってfwriteの前に使用することが推奨されてますか?
>>624 mysql_query( 〜 ) or die(mysql_error();
でエラーでないか確認してみれ。
あと俺は確実に
mysql_query("update table_$t set col_$r = '".$q."' where col_1 = '".$max2."'");
な感じに書いてるよ、めんどいけどね
つーか、PDO使ったら、エスケープも楽にできるのに。 ほとんどPHPでDB扱う際の標準みたいな立場になりつつあるわけだし。
631 :
nobodyさん :2006/12/15(金) 03:49:30 ID:yi07hMf9
emacs使ってる人に質問だけど、php-modeよりいいのってある?
PDOって何ですか
>>632 PEAR::DBの方は知ってるかな?あれはご存知のとおりPHPで書かれている
ため、普通にPHP上のAPIを使って接続してるだけ。PDOはCで書かれている
のでよりネイティブに近い接続をするから速度も速い。
また、PHP5なら例外処理もやりやすいというメリットもある。
ただ、モジュールインストールになるから対応していないサーバーも多い。
634 :
nobodyさん :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 このようにしたいのですが、どう記述すればよろしいでしょうか?
どうやってみて、うまくいかないと言ってるかを書けば?
636 :
389 :2006/12/15(金) 10:39:28 ID:???
phpでXML形式のファイルを出力したいのですが、うまくいきません。 phpで動的(ブラウザでアクセスがあるたびに生成する)にXML形式のテキストを出力しているのですが、 これをRSSリーダで読み込もうとしても 「登録可能なフィードが見つかりません」と うまくいきません。 出力しているテキストの形式は完全にXML形式になっているのですが、 (ブラウザでソースを見ても完全に期待するXMLファイルと同じ、しかしxmlファイルを表示するときのようにはならない) phpでRSSフィードをXML形式で出力しようとするためには何か必要なことがあるのでしょうか?
637 :
634 :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は除外されても多重配列にはなって
おらず、ひとつの配列に要素が全て連結された状態になってしまいます。
どうか正しい記述をお教えいただきたいのですが。
639 :
389 :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";
?>
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>
>>693 ソースの一番先頭にheader関数でxml用のヘッダ出すと解決しそうな予感。
642 :
641 :2006/12/15(金) 11:29:19 ID:???
ごめ、アンカーは639の間違い。 具体的なソースは以下。 header( 'Content-type: text/xml' );
>>639 そのソースだけならphp使う意味ないような。
こちらの関数も調べてみるといい。
SimpleXML関数 DOM XML関数 xmlwriter関数
質問させてください。 PHPで掲示板を作ってます HTMLタグを無効化するにはどうしたらいいでしょうか? htmlspecialcharsを使うと、? ←この文字が?になってしまいます。 よろしくお願いします。
646 :
645 :2006/12/15(金) 14:13:26 ID:???
あ、2chには書き込みできなかったorz 上の?は &#12316;←半角です。 よろしくお願いします。
まぁ、そりゃそうだろな。&は&になるから。 <と>だけを置換するようにしたらいいんでないかね。
>>639 curlなりでレスポンスヘッダ見て、MIMEがXMLになってるか確認してみれ
>>645 >>674 の方法以外にも、htmlspecialcharsをしてから、
特定のものだけ(この場合だと?)を置き換え。
650 :
645 :2006/12/15(金) 14:43:00 ID:???
>>647 >>649 ありがとうございます
<と>だけを置換するだけでいいんですかね?
htmlspecialcharsの意味がよくわからない^^;
どういうときに使うんだろう・・・
>>650 そもそも&#〜ってのがすでにHTMLエスケープ処理済みの表記だということは理解してる?
エスケープ済み表記をエスケープしたらそりゃおかしくなるという話。
652 :
645 :2006/12/15(金) 14:47:46 ID:???
ちなみに 特定のものだけ置換しないで、 全部の文字を普通に表示させたいです。 (2chみたいに特殊文字が?になるのは嫌なので) となるとやはり<と>だけを置換ですよね <と>だけを置換だと、危険なこととかないのかな?
あとダブルコーテーションとかシングルコーテーションも危険やねぇ。
654 :
nobodyさん :2006/12/15(金) 14:54:42 ID:zjrdLe6P
質問させて下さい。 バイナリをbin2hexで16進数に変換したあと、それをまたバイナリに戻す事は可能でしょうか? 色々みたけど見当たらない・・・packっていうのがそれっぽかったけど、使い方がよく分からない。 識者の方、ご指導よろしくお願いします
>>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>';
?>
657 :
nobodyさん :2006/12/15(金) 15:04:06 ID:zjrdLe6P
>656 おおー! 素晴らしい! "H*"ってのを指定したらいいのか。 色んなオプション突っ込んで途方にくれてたところですw ありがとうございました。
658 :
645 :2006/12/15(金) 15:05:16 ID:???
掲示板で特殊文字も普通に表示させる方法としては 1.<と>だけを置換 2.ダブルコーテーションとシングルコーテーションを置換 3.trim 4.mb_convert_kana これくらいでいいのでしょうかね?
ユニコードのことをいってるのか?
660 :
nobodyさん :2006/12/15(金) 16:46:31 ID:9BwOCrLJ
都道府県フォームつくってて、 都道府県を選択後、自動で選択した都道府県の市区郡がselectできるよう(表示される) ようにしたいのですが、どうすればいいんでしょう?
661 :
nobodyさん :2006/12/15(金) 16:53:39 ID:qvbJOa4k
あああああ
662 :
645 :2006/12/15(金) 16:58:17 ID:???
ユニコードのこと?
えーと。(ユニコードは使いません)
掲示板などで、投稿された文字をそのままアップじゃやばいですよね。
だから、何か処理をしなければいけない。ってことはわかりますが
その処理は、
>>658 に書いた4つの処理でいいのでしょうかね?
メールにcsvデータを圧縮したファイルを添付しようとしています。 以下のコードでサーバー上に圧縮ファイルは出来上がり、このファイルをFTPでDLして中身を見てみると、確かに圧縮されています。 メールにもファイルは添付されてきます。しかしファイル名は hogehoge.gz ですが、中身も容量も圧縮前のcsvデータそのままになってしまいます。 base64にエンコードする際に圧縮ファイルの中身の文字列を圧縮されたままエンコードしているつもりなのですが、 どうやらcsvデータをそのまんまエンコードしてしまっているように思われます。 正しくエンコードしてやるにはどのように書いたらいいのでしょうか??
以下、コードです。 //■■取得したデータ($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";
圧縮ファイルをオープンしたら、そりゃ解凍された結果が読めるわなw どうして普通に読まないんだよ。
やや??もしかして //エンコード $f_encoded = chunk_split(base64_encode($filename)); でいいんでしょうか??
//圧縮ファイルのオープン $fp = gzopen($filename,'r'); これがだめぽ
668 :
664 :2006/12/15(金) 17:52:09 ID:???
自己レスれす。
>>666 これじゃファイル名1行こっきりのファイルになっちまいました。
◆質問する時の注意 ・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
670 :
nobodyさん :2006/12/15(金) 17:55:41 ID:o16g8Qpy
>>669 ごめんなさい。sageるクセが付いてまして失礼しました。
なかなかユニークな輩だな。 そろそろ"gz"で読むのがまずいことに気付いたかな?
672 :
645 :2006/12/15(金) 18:10:22 ID:???
あの〜 僕の質問よろしくお願いします。
>>672 もう色々教えてもらったんだからそれで動かしてみて問題があればそこを直せばいいじゃん。
XSSは大抵防げるだろうけど、CSRF、DB使ってるならSQLインジェクションやら
考えることは山ほどあるんだ。ってことで勉強しつつ作ってくれ。
君のは、すでに答え出てるじゃん。 それに入力の検査自体が別にphp固有の問題じゃないし。
>>671 死ぬほどありがとう。感涙にむせび泣いてます。
676 :
nobodyさん :2006/12/15(金) 18:18:08 ID:o16g8Qpy
しまった。また下げてしまった(泣)
高級なソースかけるなら評価自分ででき・・・・
>>677 高級PHPソースの割にはこのスレに質問しにくるとはアホなのか。
なんか、ereg関数とか使ってそうだなwww
680 :
PHP出版 :2006/12/15(金) 19:46:44 ID:???
bcompiler使えでFA
ereg関数つかっちゃいけないすかwwwwwww 馬鹿ですねwwww
682 :
nobodyさん :2006/12/15(金) 21:49:55 ID:Xtqi0V4I
どうでもいい煽りはいらね。
683 :
nobodyさん :2006/12/15(金) 22:06:28 ID:g5A+TTGd
erege
高級ソースをキャベツにかけてくえってことだよ。
>>681 =
>>482 =知ったかぶり厨=消えろ
ereg関数は別に使ってもいいけど、ereg関数にマルチバイト文字列を含む
パターンを使ってるのを見ると「あぁ、こいつは経験が浅いな」と思う。
ereg('[あ-んア-ン]', $string)
こういうの、なんか気持ち悪い。
>>686 >ereg('[あ-んア-ン]', $string)
この場合「こういうの、なんかいやらしい。」が正解だろ?
>>677 つーか、よくそんな怪しいソフトを使う気になるねぇ。
他にいくらでも有名なソフトあるのに。
もしかして「本人宣伝乙」ってヤツ?www
690 :
nobodyさん :2006/12/16(土) 02:01:13 ID:kvjqtHVC
b_使えってことでFA? でもなぜか俺は文字数数える仕事ってないんだよね。バイト数を数えるのは多いんだけど
691 :
690 :2006/12/16(土) 02:01:45 ID:???
すまん mb_ ね
>>677 ヘボカス初心者がやらかす三大意味不明行為(ウェブ開発編)
1.「JavaScriptによる右クリック禁止」
2.「HTMLソース表示妨害(無駄な努力)」
3.「自分の書いたしょぼいコードをやたら大事にして隠したがる」
てめえの書いたしょぼいコードなんか、誰も見たがったりしねぇよ。
宣伝目的ならスレ違いだから消えな。
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'; // こっち } ?>
floatだからですぅ。 文句があるなら下駄でも履かせやがれこんちくしょーっ!
696 :
nobodyさん :2006/12/16(土) 07:31:58 ID:HXTFaSG2
PDF 作成関数で位置やサイズを指定する数値の単位は何ですか?
>>686 俺もereg関数でマルチバイト文字使ってるんだけど駄目なのか・・・
別の関数を使ったほうがいいんでしょうか?
素人ですまんが教えてください。
マジ素人でスマソ。 そう言うわけで教えて欲しいのですが、 xxx.php?page=10&block_num=girl_list のような?の後に続くのは、どう言う意味なんでしょうか? なにぶんPHPと言うモノを知ったのが、今日なんでサッパリわかりません。
>>697 Perl互換正規表現関数。
>>698 ワンクリ詐欺にでも遭遇したのか?引数が意味深だな。
>>689 まぁ、たぶんアレだ・・・
女の子リストの10ページ目を見ていたわけだ…
女の子リスト…
>>696 ピクセルじゃなかったっけ?
>>700 女の子リスト・・どこぞの出会い系かアダルトサイトか?w
702 :
699 :2006/12/16(土) 11:16:56 ID:???
>>701 お舞もそう思うだろ!?いかがわしいサイトにアクセスしている
疑いが強い。
>>699 ありがとです。
>>698 girl_listワロタ・・
それはPHPというよりHTMLの内容じゃまいか?
698だけど 見てたのは確かにアダルトなんですが、普通のURLってxxx.phpてな感じで終わるじゃ〜ないですか。 疑問は、この?page=10&block_num=girl_listの部分なんです。なんの為に、こんなのがひっついているのですか? なんの為に、こんなのがあるのか興味があるんです。
>>704 やぱっりそうなのかよww まぁ、こうもあっさり認められると
これ以上つっこみようもないが。
?以降は(この場合)PHPプログラムに情報を渡すために使われるんだよ。
例えばblock_numの値に応じてページの内容を変えることができる。
block_num=girl_listならお前の好きな女の子のページが表示されるだ
ろうし、block_num=boy_listなら(開発者がページを用意してれば)男だ
らけのページが表示されるかもな(キモすぎる...)。
page=10をpage=11とかpage=09にすると違うページが表示されるかもな。
そのへんは自分で?のついたURLをいろいろいじくってるとなんとなく実感
がわいてくるんじゃない?
普通はxxx.phpで終るけど ?page=10&block_num=girl_listが付いてると不安になるの? その辺を聞きたい。
そうなんですか。早速イジってみます。ありがd
>>706 別に不安にはならないけど、なんの為にあるんだろ?って気になったんです。
>>708 君のレスの、
「って気になったんです。」
も気になるよ。
なんで
>>709 は
>君のレスの、
>「って気になったんです。」
>も気になるよ。
と、下らなすぎるレスをしてしまったんだろ?って気になったんです。
>>698 が何歳なのか気になりました
大人にしては質問が子供すぎる
子供にしては見てるサイトが…
そろそろ誰かがまともな質問をしないと、スレが変な方向へ進む予感。
713 :
645 :2006/12/16(土) 13:03:42 ID:???
>>645 です。
結論として
掲示板に投稿されたデータは
特殊文字を表示させたいならhtmlspecialcharsは使わない
<と>と'と"を置換する。
以上でよろしいのでしょうか?
携帯電話用のホームページで、imode用・au用・softbank用と個別にサイトを作り、一ヶ所を更新すれば全キャリアで更新ができるような、そんなモノはPHPで作れますか?
715 :
nobodyさん :2006/12/16(土) 13:42:21 ID:M68Se3i9
テンプレみたいなの作ってそれを各キャリア用のページに読ませるようにすればどうよ?
$array['jp'] = "日本"; $array['usa'] = "アメリカ"; $array['uk'] = "イギリス"; から jp = 日本, usa = アメリカ, uk = イギリス という文字列を表示させたいのですが、 何か簡単な関数はあるでしょうか?
foreach ($array as $key => $value) echo $key.' = '.$value.', ';
print_r
>>713 危ないやり方だな。
フェイルセーフを考慮するなら、「まずはエスケープする」べし。
お前の考え方は「まずはエスケープしない」になっている。
フェイルセーフって何ですか?
レンタルブログの更新を文字列で抽出して 題名、URL、記事をHTML形式で出力したいんですが、どうすればいいですか?
RSSよめよww
724 :
722 :2006/12/16(土) 16:55:08 ID:???
そうだな
726 :
713 :2006/12/16(土) 17:41:32 ID:???
>>720 <と>と'と"を置換するだけじゃ危険なのですか?
>>721 、
>>726 まずフェイルセーフの概念をよく理解しろ。用語の意味くらい自分でググれ。
で、その概念をシステム制作に当てはめて考えろ。
そしたら
>>713 のやり方がいかに危なっかしいかが分かる。
重要なのは「優先順位」だ。どんな処理を優先させるのか。
安全対策に万が一「抜け・ミス」があったときにでも危険を防ぐにはどうしたらいいのか。
よく考えろ。考えても分からなければ、危険なので難しいことはやろうとするな。
>>726 っていうかお前さ、
>>720 をよく読めよチンカス。
せっかく重要な答えをズバリ書いてやってんのにそれを無視して、
「<と>と'と"を置換するだけじゃ危険なのですか?」などと的外れな質問を繰り返しやがって。
何をエスケープするかじゃねぇんだよ。どのように、どの順番でエスケープするかが大事なんだよ。
>>727 721だけど、意味自分で調べた。サンクス!一つ勉強になった。
730 :
563 :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>
言葉足らずで申し訳ありませんでした。
MySQL使う場合、 普通はリレーション使うと思うのですが、 phpからの操作が非常に面倒になりませんか? リレーション使わずに 一旦あるフィールド値を取得してから そのフィールド値で別テーブルを検索して値を取得、 とかやってる人っていますか? 今までリレーションの存在を知らずに(涙) この方法でやってたのですが、 リレーションを使うのもかなりだるく(慣れていないだけの可能性もありますが)、 過去の手段もかなりだるくなってきました・・・ 他に良い方法がありましたらきぼんぬです。
732 :
nobodyさん :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) { } いまのところ、このようになっておりますが、どのようにしたら良いのか 分からなくなりまして。。。よろしければ、ご教授願いたいのですが。
734 :
713 :2006/12/16(土) 19:47:29 ID:???
用心するのに越したことはないってことでしょ
言いたいことは大体わかるよ。
でも具体的に言ってもらわないとわからない。
<と>と'と"を置換するだけで問題ないでしょ?
>>728 みたいな、どうでもいい薀蓄みたいなこと言う人はレスしないでください。
735 :
nobodyさん :2006/12/16(土) 21:11:07 ID:a8ebIslZ
phpMyAdminを設定して実行したのですが、 『扱えない拡張子です,<br />PHPの設定をチェックしてください。』 と表示されます。 PHP.iniでは extension=php_mysql.dll と設定して再起動も完了しました。 ですが、同じエラーのままです。 何か他に考えられることがありますでしょうか?
736 :
732 :2006/12/16(土) 21:23:54 ID:vIgGXUoj
何でもありません。 わざわざ人に聞くようなレベルの話ではありませんでした。
>>726 結論から言うと危険
「マルチバイト XSS」 でぐぐってみ
あとはHTTPヘッダーで文字コード宣言を必ずすること
これがXSS対策の基本
739 :
696 :2006/12/16(土) 21:44:32 ID:HXTFaSG2
>>701 ピクセル単位ですか・・・
俺もそうかと思ったんですが、
だとすると1インチあたりのピクセル数の指定が
どこかにあると思うんです。
PDF って印刷物指向ですよね。
740 :
735 :2006/12/16(土) 21:54:02 ID:a8ebIslZ
>>741 すみません、解決しませんでした。
真剣に悩んでおります・・・。
OS:Win2K Apache2.2 PHP5.2 MySQL5.0.27 文字化けで困っています。 MySQLはSJISに設定しています。 コマンドプロンプトからMYSQLを使用すると正常出力 phpMyAdminを使用すると正常出力 PHPをブラウザで使用すると文字化け(mysql_client_encodingで調べるとlatin1) →2バイト文字が?と表示されます。 解決策をご存知の方助けて下さい。
>>714 できる。
そもそも、基本的なHTML(CHTML・XHTML)などは3キャリア側のサーバーで
自動変換してくれるから問題ないと思いますよ。
ただし、HDML(古いAU端末とTuka端末)のform処理などは対応できていないので注意!
うちは、HTMLを各ノード単位で分割してコンバーター(HTML・CHTML・XHTML・HDNL変換)を通して
表示するようなフレームワークを作って使ってます。
745 :
nobodyさん :2006/12/17(日) 00:44:02 ID:ilUpD26l
SQLに接続するとき set name sift-jis みたいにすればいいんじゃね?
746 :
nobodyさん :2006/12/17(日) 03:44:42 ID:irlLnY56
なんでPHPのロゴに雪が積もってるんだ?
>>734 お前、どうしようもねぇバカでクズだな。
何様のつもりだ。
せっかくもらったアドバイスを無視した挙句に、逆に批判かよ。
お前マジで氏んだほうがいいよ。
749 :
nobodyさん :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です
>>749 まずはデフォルトで起動してみて以後自分の設定に変えていけば
あなたの設定したい項目は文字コードにかかわる部分なので
設定しないと起動しないような項目ではない
FA : 書き足す必要は無い
751 :
nobodyさん :2006/12/17(日) 08:19:09 ID:fDowNRkw
>>750 すばやい回答ありがとうございます
そうですか、とりあえず、書き足さないで出来るところからやろうと思います。
いま、環境変数を返すphpを作って(サンプルにしたがって)見たんですが、
ブラウザに表示しないでファイルをダウンロードしてしまいます。
これはなぜですか
かなりショボイ質問だと思いますが、、php.iniの設定がおかしいんでしょうか
>>751 Apache の設定の方に
AddType application/x-httpd-php .php
これを書き加える
○○.phpにしてないって落ちだろw
754 :
nobodyさん :2006/12/17(日) 09:43:07 ID:fDowNRkw
>>752 うおっ 動きました!
httpd.confをみたら、AddType application/x-httpd-php .phpが
AddType application/x-hpppd-php .php
になってました
サンキューです助かりました! よかったー
今年中にアンケート管理と掲示板とメールフォームまで出来るようになろう
ありがとー
755 :
nobodyさん :2006/12/17(日) 11:20:29 ID:cjUGVVxQ
タイトル:string年度 の"タイトル:"と"年度"の間にある部分だけを取り 出したいのですが。 $title = mb_ereg('/"タイトル:"([^"]*)"年度/',$str_contents , $match_title); $str_title = $match_title[0]; print($str_title); このようにしているのですが、うまくとりだせません。 どのようにすべきか、教えていただけないでしょうか。。。
>>755 mb_regex_encoding('sjis'/*必要だったら変更して*/);
$title = 'タイトル:string年度';
mb_ereg('タイトル:([^"]+)年度', $title, $matches);
print_r($matches);
できれば、文字コードをはっきりさせてpreg_match()と16進エスケープを
使ったほうがいいと思うけど。
>>747 といい
>>756 といい
こいつらは、アドバイスしてあげてるつもりなんだろうな。
誰も聞いてないけどw
760 :
nobodyさん :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でひっぱって来るものです。 これだとかなり手間がかかって無駄が多いような気がします。 他にもっと賢い方法があるようでしたら教えてくれませんか?
761 :
755 :2006/12/17(日) 13:24:37 ID:iRROmMBS
>>757 解決しました。どうもありがとうございます。
>>760 $_POST['blood1']
これは何の意味があるんだ?
そこにselectedとか入るわけか?
ちっともphpの話じゃないだろw
764 :
nobodyさん :2006/12/17(日) 13:52:21 ID:ssFbcwFM
>>760 >他にもっと賢い方法
まず公式マニュアルを読んで、
次に巷の解説サイトをいくつか見ればわかるよ
766 :
nobodyさん :2006/12/17(日) 14:00:11 ID:irlLnY56
>>748 北半球ではね。
こういう北半球中心視点は良くないと思う。
768 :
nobodyさん :2006/12/17(日) 14:41:40 ID:ssFbcwFM
>>763 javascript使ったら簡単にできました。
サンクス子
770 :
nobodyさん :2006/12/17(日) 14:48:11 ID:ssFbcwFM
修正ボタンをこれにしました。 <input type="submit" onclick="javascript:history.back();" value="修正">
デザインとロジックの分離において、処理をファイルにまとめて メインファイルからロジックをincludeしたら、 テンプレートつかわなくてもデザインがスッキリすると思うのですが、 どうでしょうか?
そうだね
スレ違いばかり・・・
774 :
nobodyさん :2006/12/17(日) 15:59:14 ID:8qXdAMYD
教えてください! www.xxx.com/aaa.php?id=1&next=1 nextの1で処理を行っているのですが リロードでも有効になってしまいます。 これを回避する方法などありますでしょうか。 submitからなら対策できるのですが、埋め込んだURLからは どうしたら回避できるかわからず詰まっています。
>>774 POSTでやってる対策をGETでもやれば良い
777 :
nobodyさん :2006/12/17(日) 16:49:09 ID:ttycNJ+p
変数.txtってファイルを指定したいんですが どのように書けばいいのでしょうか? ↓こんな感じなんですけど $text = 12; $hantei = file_exists($text.'.txt');//ここでエラーでます
>>777 $hantei = file_exists($text.".txt");
同じだろ? それよりまず何てエラーが出てるのかくらい書こうよ
782 :
nobodyさん :2006/12/17(日) 17:57:37 ID:ttycNJ+p
Parse error: parse error, unexpected T_VARIABLE in 〜〜〜〜こんなエラーです
>>777 の記述は問題ないからその行の前あたりに;や""のつけかた等みなおしてこい
CSVファイルのなかに <a href="yahoo.co.jp" title="トップ,ヤフー">のように”があった場合や、カンマがあった場合、 "<a=""yahoo.co.jo"" title=""トップ,ヤフー"">"となってしまうのですが、これをPHPで読み込むときに、外の"を外して、””を”に変換するにはどうしたらいいでしょうか? それと勝手に””が就かないようにするにはどうしたらよいかアドバイス頂けないでしょうか?
変換するしなくていいじゃん。そういう設定にしてあるだけだから php.iniの設定をたしかめろ。入門者向け教本にたいてい書いてある設定外の項目いじっただろ?
>>785 意味がわからん。それはCSVファイルを保存する時にそうなってるだけじゃねーの?PHPで読み込む前の話。
よくわからんけどreplaceすればいいんじゃないのか?
789 :
nobodyさん :2006/12/17(日) 20:31:33 ID:a5bdt7ul
hiddenは絶対に使わないほうが無難でしょうか? かわりにセッションを使うほうがいいですか? セッションの場合、クッキーとURL埋め合わせがありますけど、 firefox等のブラウザの設定でセッションを受け入れない場合、 クッキーもURLも無効となってしまうのでしょうか? あと、セッションはサーバにゴミがたまりますよね? そのゴミは勝手に削除してくれますか?たとえばクッキーに時間制限があるような感じで。 どなたかお願いいたします。
790 :
735 :2006/12/17(日) 20:48:39 ID:EKx6N1fN
すみません、解決しないのでどなたか答えていただけると嬉しいです。 ググったところでは、mysql/mysqliエクステンションが組み込まれていないとのこと。 php_mysql.dll、php_mysqli.dllがあり、extension=php_mbstring.dllもコメントアウトしています。 その他何か原因があるようなのですが、思いつきもしません。
windowsで動かしてんの?
792 :
735 :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があり、片方は設定して動くのですが、
ノートパソコンの方がエラーが出る状態です。
片方動くならそれと比較してみれ。 phpinfoでMysqlの欄とか表示されてるかい? dllファイルちゃんとあるよね?
794 :
735 :2006/12/17(日) 21:01:18 ID:EKx6N1fN
あー、今infoで「MySQL」を検索しても見つかりませんでした。 つまり、php_mysqlを読み込んでいないということですよね・・・^^; php_mysql.dllの位置がデフォルトのままなのですが、どこへコピーすれば良いのでしょうか?
795 :
743 :2006/12/17(日) 21:03:26 ID:???
796 :
785 :2006/12/17(日) 21:05:23 ID:???
>>787 そうです。CSV保存の時に勝手に””がついてしまうのです。
保存の都度””を置換・削除すればいいのですが、結構な量がある上に、頻繁にデータを書き換えるので、いちいちするのは非常に面倒なのです。
>>788 有り難うございます。ただ、置き換えと削除の両方をしたいのです。
"<a〜 の部分は "を削除したいし、""は"に置き換えたい
皆さん、,や"があるCSVファイルを読み出すときはどうされてるのでしょう?
797 :
735 :2006/12/17(日) 21:08:24 ID:EKx6N1fN
何度もすみません。 extensionのディレクトリパスを指定していなかったです。 Apacheを再起動しましたが、エラーは解決されずのままです・・・。 phpinfoでMysqlの欄を見たのですが、まだ表示されません。
>>796 "(ダブルクオート)の2個の連続は、ダブルクオート1個を表す。その動作は普通。
だから737書いたのに
>>797 phpinfoに表示されているphp.iniが修正しているphp.iniと同じか確認した ?
802 :
735 :2006/12/17(日) 21:23:56 ID:EKx6N1fN
>>800 あ・・・、全然違っていました・・・
php.iniの場所を変えるのじゃなくって、
パスを変更することは可能なのでしょうか?
803 :
nobodyさん :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)
806 :
735 :2006/12/17(日) 21:39:20 ID:EKx6N1fN
>>804 有難うございます、解決しました。
最初に設定できて余裕をもっていたのが間違いですね、
こんな初歩的なとこから間違えるとは・・・
お答えいただいた皆様、有難うございました
こんばんは、ひとつ質問させてください。 $result = mysql_query("SELECT * FROM account WHERE name = '$name'"); この場合は、name=$nameであればTRUEを返すということなのでしょうか。 name=$nameのとき、そのnameがある行を取得したいのですが、どのようにすれば良いのでしょうか?
>>807 TRUE/FALSEを返すとかではなくて、リソースを返すのだ。マニュアルを見よ。
行を連想配列に格納するには mysql_fetch_arry。
810 :
nobodyさん :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);
}
?>
function test($str1,$str2){ echo $str1."<br />\n"; echo $str2."<br />\n"; } $str1 = "ホゲホゲ"; $str2 = "あいうえお"; test($str1,$str2); このように、functionに2つの関数を送るのはできないのでしょうか?
すみません、できましたが、function内で mysql_select_db($db); mysql_query($sql); を使うのは不可能でしょうか? mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in とエラーがでます;;
>>812 エラーメッセージを読め。
ヒント: mysql_connect( )
>>810 lameに引数を渡していないとすると、helpがエラー出力に表示されているじゃないの?
816 :
nobodyさん :2006/12/17(日) 23:01:56 ID:1O1pcw5Y
$_GET, $_POST, $_COOKIE を 変数$varで参照できるようにしたいのです。 つまり $var["id"] = $_GET["id"] = $_POST["id"] = $_COOKIE["id"] ということ。 どのようにすれば効率良くできるのでしょうか?
request
818 :
nobodyさん :2006/12/17(日) 23:06:24 ID:fhT0kY1a
>>815 引数に --helpを渡したら出ました!
まさかエラー出力だとは…
ありがとうございました。
掲示板などで、POSTで大量に送られてくるデータ $hogehoge1 = $_POST['hogehoge1']; $hogehoge2 = $_POST['hogehoge2']; $hogehoge3 = $_POST['hogehoge3']; $hogehoge4 = $_POST['hogehoge4']; $hogehoge5 = $_POST['hogehoge5']; これを、一括して$hogehoge[1]〜$hogehoge[7] に格納する方法などはないのでしょうか?
820 :
nobodyさん :2006/12/17(日) 23:11:57 ID:1O1pcw5Y
821 :
796 :2006/12/17(日) 23:15:30 ID:???
>>798 動作が正常なのはわかるのですが、"<a=""〜""となるとリンクが使えなくなってしまったりしませんか?
とんちんかんなこときいてるでしょうか?
自分の環境では、そのまま読み出すとリンクが使えなくなってしまうのでなんとか""を"に変えて邪魔な"を削除したいと考えているのですが。
"を\"にすればいいんじゃね?
823 :
nobodyさん :2006/12/17(日) 23:17:57 ID:MMBQG3mK
よくDB接続の際にPEARを使っている例を見かけるのですが 普通にPHPで接続するのとPEAR使うのとではなにが違うのでしょうか? 利点などあれば教えていただきたいのですが・・・
824 :
nobodyさん :2006/12/17(日) 23:20:57 ID:1O1pcw5Y
>>817 あぁ、$_REQUEST ね……。
ありがとうございました。
PHPからプログラミングを始めて1年ちょっと。 最近はやっとクラスやフレームワークを使用し、 見た目にもある程度のスクリプトが組めるようになってきたかな と自分では思ってます。 windows用のアプリを作りたい理由があり、 visual C#を始める準備をしてるのですが、 敷居って結構高いでしょうか? 質問自体がアバウトなんで、 アバウトな返答でいいのできぼんぬ
828 :
nobodyさん :2006/12/18(月) 00:09:18 ID:Nj+uTZZ4
PHPとC#は全然違うけど、まあ結局は作りたいものがあるかってことで、 目標に進んでいけるかどうかだ。 単になんとなくやってみたいな、ぐらいだと無理かもしれない。 C#は全てがクラス。何でもクラス。とにかくクラス。.NET Frameworkの習得必須。 PHPみたいに関数主体でクラスはおまけってのとは全然違うから、頑張ってね。
>>827 phpから入っちゃったか・・・逆だと楽だったのにな。
ま、何事もやる気と根気。敷居の高さなんざ気にしてたら何もできん。
>>828 C#なんかよりVC++.netにしとけ
>>823 ある程度DB使わないと、PEARとかの使い勝手の良さはわからないかも。
例えばDB使うのってSELECTがほとんどってことが多いけど、接続して
クエリ投げてリソース受け取ってループとかで値受け取ってって流れは
ほとんど共通してる。
なのでこれをSELECTするごとに毎回やるんじゃなくて、関数とかクラス
とか作って、引数にクエリ投げたら配列で結果取れるようにしよう、
とか考えるよね。
んでそういったものがもうPEARとかADOdbとかですでに用意されている
ならそれ使おうって話になるってところかなあ。
デバッグしやすい環境がすでに整えてあったりとか、使いやすいように
工夫されてるし、多くの人が使ってる実績があるから使い方さえ間違え
なきゃちゃんと動くって安心感もあるしね。
他にもいろいろあると思うけど、一番大きなメリットはこの辺じゃないかな。
832 :
nobodyさん :2006/12/18(月) 01:02:19 ID:Nj+uTZZ4
833 :
nobodyさん :2006/12/18(月) 02:18:42 ID:5VuKWrp+
みんなphpMyAdminのバージョンって何使っている? 最新の2.9.1.1? つーか、2.8以降のデザインが好きになれないので未だに2.7.0-pl2使っているよ。 俺と似たような人居る?
それ聞いてなんになるの?
ヒント:スレタイ
バグもないし安定した2.6使ってますが何か
$var = "テストです"; function test(){ echo $var; } test(); これで「テストです」と表示したいのですが、 function内で外部の変数を持ってくるのは test($test)でしか持ってこれないのでしょうか?
global
839 :
837 :2006/12/18(月) 14:36:19 ID:???
>>838 global $var;
で解決できました。ありがとうございます。
>>714 ウイルコムのこともたまには思い出してあげてください><
PHPでモザイクの解除をすることになりました。 GDが入っていますので、やり方やヒントをお願いします。
目を細くして
844 :
8411 :2006/12/18(月) 15:31:51 ID:???
WEBでアップされた動画のモザイクを除去しなければならないのです。 できなければ、大変なことになりますよ?
できちゃった方が大変だと思うんだが。
>>844 そうか、大変だな。
できたら教えてくれ。
@$result = $db->query($sql); A$result = mysql_query($db,$sql); 上記2つは同じ意味なのでしょうか? 何か違いなどがあれば教えてください、
850 :
848 :2006/12/18(月) 15:51:39 ID:???
>>849 あー、@は$dbで接続してるのか
Aはデータベース名か、把握
ちなみにどっちですると効率がいいのかな?
>>848 1の$dbはたぶんユーザーが作ったクラスをインスタンス化したのを
変数にいれて、そのクラスのqueryメソッドを使ってる。
2はPHP側が用意してるmysql関数。
1のクラスの中身がわからないとこたえられない。
1のソースの上のほうで、$db = new HogeHoge;
となってるなら、HogeHogeがクラス。
852 :
848 :2006/12/18(月) 15:59:28 ID:???
@は $username = "dbuser"; $password = "dbpass"; $host = "dbhost"; $database = "dbname"; $db = DB::connect("mysql://$username:$password@$host/$database"); となっていました (phpspot)
>>852 >$db = DB::connect("mysql://$username:$password@$host/$database");
DBクラスのconnect変数を見れ。
mysql_queryって引数sql文だけじゃなかったっけ? @はPEAR接続だよね
855 :
8411 :2006/12/18(月) 16:33:48 ID:???
皆さんのおかげで助かりました。 どうにかなりそうです。
856 :
nobodyさん :2006/12/18(月) 17:02:36 ID:dkU1jlj9
ファイルにhtmlのタグを書き込もうとしてるんですが 日本語の部分が文字化けして書き込まれてしまいます なぜなんでしょうか? ちなみにこんなかんじで書いているのですが「さんのページ」ってとこが 文字化けしてしまいます $text=12; $test = '<P>id'.$text.'さんのページ</P>'; fwrite($fp,$test);
文字コードが違ってるから
エンコードの問題としか思えないけど・・・・
859 :
856 :2006/12/18(月) 17:12:32 ID:dkU1jlj9
プログラムは文字コードEUCなんですが 書き込まれるときのコードが違うってことですよね どうすれば直すことができるんでしょうか?
860 :
nobodyさん :2006/12/18(月) 17:12:33 ID:HkDghXE6
8スレ先から登場した未来人
>>859 metaタグで文字コード指定してる?
また、表示⇒エンコードでEUC指定してる?
>>859 とりあえず切り分けしてみれ。
htmlはどのコードで表示された時にどの文字列が化けているか。
どの文字列はEUCでどの文字列がどんな文字コードになってるのか
863 :
856 :2006/12/18(月) 17:34:56 ID:dkU1jlj9
metaタグでEUCに指定したらできました! みなさんありがとうございました
(゚д゚)
META・・・タグ・・・で・・・
866 :
nobodyさん :2006/12/18(月) 19:30:54 ID:2g+3BvDA
大規模なサイトでは会員登録などあると思いますが、 ログインを簡単に行うために、URLにログイン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関数より早いということもあるかと。
簡潔に書くため一部不正確なところもあり。できることは同じでも目的は異なるので、
良く考えてチョイスすればよろし。
URLがログインIDになってるくらいなら別にいいんじゃないか? パスワード認証後のログイン状態のフラグが別途セッションに記録されてれば。
871 :
nobodyさん :2006/12/18(月) 20:38:07 ID:S0EIOHKJ
>>869 ほとんどの携帯がクッキー対応してるってどっかでみたような気がするんだぜ
DoCoMoは最新でも対応してない
DoCoMo糞
874 :
nobodyさん :2006/12/18(月) 20:55:05 ID:HkDghXE6
ドコモはutn送信させればオケー。
875 :
nobodyさん :2006/12/18(月) 21:12:23 ID:2g+3BvDA
携帯ユーザーのみに限定して、utnはユニークなものなのでしょうか? たとえば、全国のp902ユーザーが同じ識別情報になることはありませんよね?
「 ̄i 「 ̄ ̄ ̄ ̄`!: : :! ̄ ̄ ̄ ̄.| | ^~^ | | .ノ _,_ 土 | | ヽ 米 し .| | 十_゙ ナ 、 - | | l ‐ ょ ⌒) .| |. + i 、 | | ⊂ ` .| | { ) て`` | | | | | |__________|
880 :
nobodyさん :2006/12/18(月) 22:39:42 ID:HkDghXE6
utn後のUSER AGENTの serXXX…; serXXX… XXX…の部分取得でおけー。
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
882 :
nobodyさん :2006/12/18(月) 22:52:35 ID:MrE6rWZc
<input name="file" type="file" size="40" /> というタグでメールに添付ファイルを付けられるフォームを作っています。 php側で2Mの容量制限をかけたのですが、phpinfo()で表示される容量の制限が2Mとなっており、2M以上のファイルだとphpのチェックを受けず、 実際に送信する際にエラーが出てしまいます。 こういう場合は、phpの制限を無制限にしたりするものなのでしょうか?
>>882 無制限なんてしたらOSのイメージ送りつけられたらどうするyo。
885 :
882 :2006/12/18(月) 23:13:28 ID:MrE6rWZc
ありがとうございます。 upload_max_filesize以外に設定する箇所があるのでしょうか? 現在upload_max_filesizeが2Mになっており、php側で2Mのチェックを 記載しているにも関わらず、2Mを超えると、その制限が効いてくれないようなんです。
pache2.2以降つかったほうがいいよ。ファイルサイズの制限が見直されてるから
887 :
nobodyさん :2006/12/18(月) 23:45:06 ID:lM2dvpvb
>>880 foma番号と端末製造番号、どっちがええの?
PDOStatementで実際に実行したSQLの取得ってできねーのかな
指定したディレクトリ以下(サブディレクトリ含む)にあるファイル全てのリストを作成するにはどうしたらいいでしょうか。
dir
ロジック的な質問させて下さい! コミュニティーサイトなどで、相手の会員番号の隠蔽はどうやってやっているんでしょうか? 一覧表示から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 こんなまどろっこしい事しないで、相手の会員番号をセッションに登録すればいいだけでしょうか?
892 :
891 :2006/12/19(火) 09:12:11 ID:???
あ、一覧表示の場合はセッションに登録してもダメですね; 一覧表示→詳細表示→何かしらのアクション(使うとしたらここですね)
>>891 何をしたいのか今一つ判らんのだが
会員番号をログインIDとかに使っていなければ
まんま引数指定で良いんじゃない?
セッションとか言ってるのが引っかかるが…
>>891 つまり、会員番号=IDってこと?
番号/ID
0001/test
0002/guest
0003/hogehoge
0004/php
0005/cgi
こんな感じにIDごとに番号振り分けたらいいんじゃまいか?
895 :
891 :2006/12/19(火) 09:32:33 ID:???
>893 要は会員サイト内で相手の会員IDを分からなくしたいんですよ。 検索かけて会員リストがずらっと出て、その会員の詳細をみる時に パラメーターで会員番号渡したら簡単なんですが、隠蔽するにはどうしたらいいのかなと・・・。 >894 そういう風にはしてるんですが、詳細見るときに会員番号をパラメーターで渡したくないんです。
897 :
891 :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
その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>
899 :
nobodyさん :2006/12/19(火) 10:32:47 ID:n9T52ppY
ある配列を空文字ではさんでひとつの文字列にしたいと考えています。 implode("",$hoge)でも実現可能なのですが マニュアルには「好ましい使用法ではありません。」と書かれています。 implodeを使わずにこれを実現するためにはどうすればいいでしょうか?
900 :
891 :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
>>899 好ましくないだけで使用に問題なければ使っていいよ。
それがいやならforeachで.使って連結しろ
902 :
891 :2006/12/19(火) 10:41:13 ID:???
>899 $str = $hoge['0'].$hoge['1']; 普通に文字連結だとダメなのかな?
903 :
891 :2006/12/19(火) 10:44:33 ID:???
あ、'' いらんしw 寝不足でバグ連発中・・・orz
>>899 $array = ("文字A","文字B","文字C","文字D","文字E");
foreach ($array as $value){
$str .= $value;
}
echo $str;
こういうこと?
905 :
nobodyさん :2006/12/19(火) 12:41:15 ID:n9T52ppY
($array as $value)を ($array as $key => $value)で
多重配列ならそういえやゴルァ
>>905 答えはでてんだから自分でやれよ。甘えるな
そもそも、なんで会員番号を隠匿したいのかが判らん…
909 :
nobodyさん :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ページの間をセッションで受け渡すにはどうしたらよろしいのでしょうか?
それは無理じゃね? SSLにでもするかとかしか・・
>>909 何を意味不明なこと言ってんだお前は。
ユーザーからのinputをセッションで管理するにしても、
必ず一度はPOSTしてもらわなきゃ受け取れないだろうが。
>>910 >>909 の問題(POSTじゃなくsessionで値を渡したい)については
SSLとか一切関係ないし。
>>911 いやいやそれはわかってはいるんだが
セキュリティが甘いとか言ってたからせめて通信でもセキュリティ高めたほうがと思っただけだ。
なんかおかしいこと言ってるなら謝るが・・。
一度はPOSTせなあかんセッションなんざtelnetつかえば穴になっちまうぞ
もうGETにしとけカス
915 :
nobodyさん :2006/12/19(火) 17:00:40 ID:jG1wL3dB
関数内で、変数の初期化をしたいのですが、 どのように書けばいいのでしょうか? $a = ""; $a;
917 :
nobodyさん :2006/12/19(火) 17:07:44 ID:jG1wL3dB
>>916 こんな関数があったのですね。
どうもありがとうございます。
918 :
nobodyさん :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順でソートをかけたいのですが どなたか、良い解決法をご教示願えないでしょうか・・・。 よろしくお願いいたします。
920 :
nobodyさん :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("登録情報を変更しました"); ?>
$sql = "UPDATE usr SET introduction = '$text' WHERE uid = $uid";
922 :
920 :2006/12/19(火) 18:45:41 ID:???
>>921 ありがとうございます。
変更することが出来ました。
文字列の入った変数を'で括るとおかしいのかと
思ってましたがそれでよかったんですね。
>>922 変数はクリーニングしてからクエリーに埋め込んだ方が良いよ
924 :
nobodyさん :2006/12/19(火) 20:04:47 ID:4CUCrx49
>>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
926 :
nobodyさん :2006/12/19(火) 20:34:31 ID:4CUCrx49
>>925 書き間違えかよ!!!!('A`)
メチャメチャサンクス。
preg_match_all やってみます。
公式見た方がいいのな・・・
>>923 クリーニング屋に出すってことか?
例のキャンペーンのせいで、変な用語が飛び出てきたな。
>>927 サ●タ●ズとか言うと、
またアフォの自己主張が始まるから、
洗濯でいいんじゃねぇの?
ちゃんと乾燥機に入れてくれな
>>930 1.PHPスクリプトとして評価される→ファイル読み込みも可能だが普通は他の方法で読み込む
2.そのまま出力したい時
3.一度に全て変数に読み込む必要がない時
4.1行ずつ配列に読み込みたい時
5.変数に読み込みたい時
6.ソケットを開いて(略)
7.6とやってる事は同じ。fsockopen使うのが面倒で楽したい時
>>930 「取得する方法」でなくて「表示する方法」?
無加工で単に表示するだけならそのサイトに直接飛ばすのが早いんじゃ…
という突っ込みはとりあえず置いとくとして、
とにかく表示(出力)がしたいだけならreadfile()。そのための関数だし。
無加工で取得したいならfile_get_contents()。
行単位に何かしら加工したいならfile()。
加工するけど行単位でないならやっぱりfile_get_contents()。
POST処理とかタイムアウト処理とかが必要ならHTTP_Request。
PEARを使えないケース(って滅多に無いが)ならfsockopen()。
ってとこ。
includeやrequireはPHPとして文法パース&実行を行うんで
そういうのが必要な特殊な用途じゃない限り使わない。
また、そんなのが必要なケースに自分はお目にかかったことがない。
fopenは対象ページがよっぽどでかいとかいうわけじゃなきゃ必要を感じない。
WEBページでなくアーカイブファイルとか動画ファイルとかのダウンロードなら
メモリ確保がシビアになるケースがあるのでこれを使う。
>相手の会員番号をセッションに登録すればいいだけでしょうか? うん。
934 :
nobodyさん :2006/12/20(水) 03:13:58 ID:Cie7izus
try catchをPHPマニュアルでひいてるんですがHITしません。 なんとなく重要な関数(?)っぽいので、 どういう時に使うのかを知りたいのですが、 マニュアルに書いてあるなら誘導していただけませんでしょうか? ちなみにどういうものなのかも教えていただければ嬉しいです。
936 :
nobodyさん :2006/12/20(水) 03:27:32 ID:s+1rE1pc
PHPのド素人です クライアントアプリケーションがCGI(PHP)に対して octet-streamのデータをPOSTした場合、 PHPではどうやって値を取得すればよいのでしょうか? URLエンコードされているデータの場合だと_POSTで nameを指定すれば取得できることは知っているのですが バイナリだとどうすればよいのでしょうか。 よろしくおながいします
php-v 4.4.4 mysql-v 4.0.27 nullを許可しているlongtextスペースに UPDATEを使って70000バイトほどの文字列を 入力したいのですがエラーになります。 10000以下位では入力出来ました。 何が原因でしょう? ヒントください。
>>936 $data = '';
$fp = fopen('php://input', 'rb');
while (!feof($fp)) {
$data .= fread($fp, 1024);
}
fclose($fp);
940 :
930 :2006/12/20(水) 10:30:25 ID:???
>>931 ,932
ありがとうございました、勉強になりました。
941 :
936 :2006/12/20(水) 11:04:10 ID:s+1rE1pc
>>939 まさにそれです!!
つたない説明文を理解していただき
最大級に感謝します
そろそろPHP5.2+MySQL5+Apache2.2あたりに移行しようかと思いました。 2年程ブランクがあるので、全てのアプリがメジャーバージョンUPされてて(泣 昔はPear::DB使っていたのですが、 PDO_MYSQLが使えるものかと思い、 マニュアルを確認すると、MySQL4.Xと書いてあります。 PDO_MYSQLはMySQL5でも使えますでしょうか?
ためしてみればいいじゃん
全機能全パターンを試せるわけじゃないんだし それは質問に対する回答になってないよ
945 :
942 :2006/12/20(水) 15:44:32 ID:???
今、インストール中です… PHP5.2の場合、PDO_MYSQLをインストールするのは configureのオプションに以下を追加するだけでいいのかにも躓いてます…。 --with-mysql=/usr/local/mysql --with-pdo-mysql=/usr/local/mysql
入力に応じてfunctionの引数の数を増やしたいのですが、 そんなことってできますでしょうか? どういう風にかけばいいのかわからなくて・・・ function A($a, $b){ echo $a+$b; } function B($a, $b, $c){ echo $a+$b+$c; } こんな感じのを1つにできたらなぁと。
948 :
942 :2006/12/20(水) 15:54:52 ID:???
>>946 func_get_args() func_num_args() func_get_arg()
俺だったら、連想配列で渡しちゃいます。
949 :
946 :2006/12/20(水) 15:55:52 ID:???
950 :
nobodyさん :2006/12/20(水) 16:01:23 ID:ar7H9Wcq
C++ で処理した結果をPHPで書いたページで表示させたいのですが、 ネイティブなライブラリを呼び出す仕組みってあるんでしょうか? Javaのネイティブメソッド呼び出しのような規約が 決められているのでしょうか?
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); }
よくわからんけど空白じゃなければ挿入処理を行うってしたらだめなのか?
>>952 さん
…石頭な漏れですた…
ありがとう…(;ω;)
変数ごと消そうとしてたのかw
955 :
nobodyさん :2006/12/20(水) 17:37:39 ID:Vi7URSua
$date = YYYY-MM-DD の形から 1ヵ月後は 「YYYY-MM-DDである」 5ヵ月後は 「YYYY-MM-DDである」 1年後は 「YYYY-MM-DDである」… と出したいのですが何か良い方法はありますか? 分解して精製するしかないのでしょうか?
>>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);
958 :
nobodyさん :2006/12/20(水) 18:29:56 ID:0HPzhBAY
つecho
959 :
nobodyさん :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)));
今一度、お力お貸しくださいませ。
960 :
959 :2006/12/20(水) 18:38:32 ID:Vi7URSua
訂正です。 来週末、今月末等ができません。 宜しくお願い致します。
そんな面白い関数があったのか、初めて知った
ってか日時関数あまり使わなかったから知る機会なかっただけかな?
>>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";
?>
DB接続抽象オブジェクトのPDOを使っているのですが、 $dbh->prepare($sql); このprepareメソッドでフリーズしてるぽいとこまでは分かったのですが (前後でvar_dump("hoge")を試したところ、前は成功、後は失敗(ずっと応答待ち)) 対処の仕方がわかりません・・・せめてどういうエラーか分かればいいのですが方法あるんでしょうか? よろしくお願いします
966 :
963 :2006/12/20(水) 19:08:08 ID:XG/2ezlL
ありがとうございます。 >>例外処理 try~catchで囲んでみたんですが拾えませんでした。 原因が違うところにあるとしても、その前後では動いてるの確認(var_dump)してるので エラーだとしたら何かしら拾えると考えたのですが・・・ 応答待ちになってると考えて探った方がいいのでしょうか
967 :
959 :2006/12/20(水) 19:18:57 ID:Vi7URSua
>>968 来週末=来週の土曜日でいいのか?
だったら
echo date('Y-m-d-H:i:s',strtotime("+1 week Saturday")), "<br />\n";
関係ないが
>>967 の明らかな適当な御礼か何かわからないのがウザい
971 :
nobodyさん :2006/12/20(水) 20:30:59 ID:t+vbPSXB
imagettftextを使って入力文字を画像にさせたのですが 機種依存文字である@ABCなどを画像にすることができません いろいろなフォントで試してもだめでした。 imagettftextで機種依存文字を画像にするのは無理なのでしょうか phpのバージョンは5.1です
今月末 $d = getdate(strtotime($date)); mktime(0,0,0,$d["mon"] + 1,0,$d["year"]);
外部コマンドのオプションって配列で渡せばいいだけ?
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で確認できることを思い出しました。 スレ汚してスンマソン。
php云々ではなくて、わからないならunix系を無理に使うなって話ですね。
windowsの起動の仕方とシャットダウンを勉強してこい。話はそれからだ。
よくURL抽出のプログラムとかを見かけるのですが、 指定したURLから<object>〜</object>や<title>〜</title>などのタグを指定して抽出するものはありませんか?。 参考になるサイトだけでもいいので知っている方教えてください。
DBから取得したデータで「\n」を表示させると、 「\n」と直接表示されてしまいます。 ソース内で改行させたいのですが、どのように記述すれば良いのでしょうか? str_replace("\n","\r\n",$str); で置き換えようと思ったのですが、置き換えることができませんでした。
982 :
981 :2006/12/21(木) 06:03:58 ID:???
書き込んだ瞬間ひらめき str_replace("\\n","\r\n",$str); で解決することができました。
983 :
942 :2006/12/21(木) 11:18:27 ID:???
>>966 try-catchなら、下の設定は必要かも。
setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
984 :
nobodyさん :2006/12/21(木) 12:17:01 ID:QeRiyNxN
アクセスしてきた人がPCか携帯か判別して、それぞれのサイトに 割り振るCGIやスクリプトってあるんでしょうか? サーバが対応してくれないので困ってます…。
検索って知ってる?
普通にアクセス元解析して振り分けたらだめなのかい?
987 :
nobodyさん :2006/12/21(木) 12:41:12 ID:KBdj5Zxx
メールアドレスの入力欄で、全角入力の場合にエラーを 表示したいと考えております。 以下の条件文の*******をどう表記すればよいでしょうか? お願い致します。 if(ereg("*******", $var)){ $errm .= "<span class=mj>E-mail入力値が不正です。</span><BR>\n"; }
988様ありがとう御座います。 上記サイトで気になったのが、メールアドレスチェックの際 半角英数字と.と-のみのチェックしかしていませんでした。 もしメールアドレスに!や#などが使用されていた場合このスクリプト だと誤ったメールアドレスとして認識されてしまいます。 メールアドレスのチェックは一般的に半角英数字と.と-のみで 良いのでしょうか?
>>989 if(!preg_match('/^[a-zA-Z0-9_\-]+$/', $_var)){
}
メールアドレスに使えるのは
A〜Zと-_.と数値だけ
一般的に!や#が入ったメアドを見たことないのだが・・ もしそれらの文字がでてくるならその時にスクリプトも変更すればよいと思う
厳密な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);
>>992 どこから拾ってきたんだよwww
そういえば、携帯用IPでアクセス制限できるプログラム載ってるサイト無かったっけ?
994 :
軟式PHP :2006/12/21(木) 13:29:18 ID:???
997 :
nobodyさん :2006/12/21(木) 13:49:18 ID:1NDthtg1
スレも残り少なくなってきたので下らない(と思われる)質問。 以前から気になってしようがなかったんだけど.... $int = 5; if($int > 0) echo "0より大きいらしい"; $int = "string"; if($int > 0) echo "これなんでエラーにならないの?";
>>997 string > 0 じゃないから『これなんでエラーにならないの?』が表示されない
999?
;;;;;ヾ);;;) (;:;ヾ;;;ヾ ;;;;;ヾ);;;) ゆったりと ((;::ヾ;;;ヾ ;;;;;ヾ);;;) 1000げと (;::ヾ;;;;ヾ !l ;||}、 ._,,..,,,,_ ;{ll;;;l ;::ll;.| ~ヽxx./ ,' 3 `ヽーっ.xxノ~.|!!;;: ;;;!l } ミ三三三三三三彡' };!;;l| |l !| `^`゛゛''"""~~゛゛"´~ ノ;;:;:;l ヘハヘゞ "^ハブヘ
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。