【PHP】質問スレッドpart24【php】
レス数が1000を超えています。これ以上書き込みはできません。
0001nobodyさん
04/11/01 04:09:15ID:???・新規質問の方は上げてください。age進行でお願いします。
・質問する際には環境も明記。
・正しい日本語で分かりやすく。
・レスがつかないからって逆切れする厨お断り。
・解決しなくてもこたえてもらったら礼を。
■本家
http://www.php.net/
■日本 PHP ユーザ会
http://www.php.gr.jp/
■PHP マニュアル
http://www.php.net/manual/ja/
■PEAR マニュアル
http://pear.php.net/manual/ja/
過去スレ, 関連スレ等>>2-4
0002nobodyさん
04/11/01 04:10:09ID:???【PHP】質問スレッドpart22【php】
http://pc5.2ch.net/test/read.cgi/php/1095326257/
関連スレ
Pear
http://pc5.2ch.net/test/read.cgi/php/985665522/
【PHP】Smarty【Template】
http://pc5.2ch.net/test/read.cgi/php/1047225437/
0003nobodyさん
04/11/01 04:11:02ID:???【PHP】質問スレッドpart23【php】
http://pc5.2ch.net/test/read.cgi/php/1096965398/l50
0004nobodyさん
04/11/01 04:15:49ID:???http://pc5.2ch.net/test/read.cgi/php/1094725439/l50
PukiWikiスレ Part1
http://pc5.2ch.net/test/read.cgi/php/1084907353/l50
[PHP-users MLヲチ6] 教えていただけませんか?
http://pc5.2ch.net/test/read.cgi/php/1096871691/l50
★負荷軽減対策委員会(Perl、PHP)★
http://pc5.2ch.net/test/read.cgi/php/1034645635/l50
PHPBB
http://pc5.2ch.net/test/read.cgi/php/1065334037/l50
PHPでPDF
http://pc5.2ch.net/test/read.cgi/php/983858078/l50
【PHP】Phrameを使う【フレームワーク】
http://pc5.2ch.net/test/read.cgi/php/1093238107/l50
【PHP】セッションについて語ろう!【PHP】
http://pc5.2ch.net/test/read.cgi/php/1064399467/l50
PHPエディタって、どうよ?
http://pc5.2ch.net/test/read.cgi/php/1079460638/l50
【PHP】自作スクリプト発表会
http://pc5.2ch.net/test/read.cgi/php/1017456911/l50
PHPで2chを真似てこんなモン作ってみますた。
http://pc5.2ch.net/test/read.cgi/php/1019451204/l50
PHP + PostgreSQL
http://pc5.2ch.net/test/read.cgi/php/983128806/l50
PHPで構築されたサイト
http://pc5.2ch.net/test/read.cgi/php/1085302527/l50
親切な人が初心者にPHPの関数を使い方を教える
http://pc5.2ch.net/test/read.cgi/php/1068190843/l50
0005nobodyさん
04/11/01 04:33:27ID:???キチンと入ってました・・・すみません
0006nobodyさん
04/11/01 11:33:35ID:ddZqjuW7PHP Version 4.3.9です
関係ないかもしれませんが、画像処理の GD Version 2.0 or higher
っていうのも入っています
よろしくお願いいたします
0007nobodyさん
04/11/01 11:33:43ID:???PHPプログラムから、
header( 'http://host/hoge.html' );
exit;
としてhoge.htmlへリダイレクトさせているのですが、
リダイレクト後、真っ白の画面が表示されてしまいます。
hoge.htmlはEUCコードで書かれていて、
<META>タグでもEUCコードの指定をしてます。
hoge.html 単体で開いたり、
白い画面からリロードすると正常に表示されました。
また、白い画面では、エンコードがShift_JISになっています。
PHPプログラムはEUCで書かれており、
これも問題ありませんでした。
となると、Location によるリダイレクトで、
Webサーバがデフォルト文字コードを
返しているような気がするのですが、
何かこの辺の症状でご存知の方いらっしゃいますでしょうか?
OS: Linux
WWW: Apache1.3.31
PHP: php4.3.8
よろしくお願いします。
0008nobodyさん
04/11/01 11:36:08ID:???0009nobodyさん
04/11/01 11:36:54ID:???○ header("Location: http://host/hoge.html");
00127
04/11/01 11:53:25ID:???すいません、ここに書き込むときの記述ミスでした。
実際は、
header( "Location: http://host/hoge.html" );
とかかれていますので問題ありません。
>>10
httpd.conf を見てみましたが、
文字コードの設定部分が見当たりませんでした。。
>>11
METAは
<meta http-equiv="Content-Type" content="text/html; charset=euc-jp">
です。
HTML自体もEUCコードで書かれています。
0013nobodyさん
04/11/01 12:16:18ID:???001510
04/11/01 12:20:48ID:???鯖のレスポンス拾えばはっきりする話だよ
0016nobodyさん
04/11/01 12:22:44ID:???以下のように書きました。
ereg("^([^/]*)/?(.*)$",$i,$regs)
これがfalseになる事ってあります?
また、もっとスマートな書き方ってありますか?
0017nobodyさん
04/11/01 12:50:40ID:dvWt0D+J<?php
//error_reporting(E_USER_WARNING); // Warrningを出力しない
//----------------------------------------------------
// 定数の宣言
//----------------------------------------------------
define("BBS_DATA", "./bbs.csv");
define("BBS_COL_DATE", 0);
define("BBS_COL_NAME", 1);
define("BBS_COL_BODY", 2);
//----------------------------------------------------
// 関数の定義
//----------------------------------------------------
// AppendCsvFile関数
// 機 能 CSV形式のデータをファイルの末尾に追加する
// 引 数 $FilePath : 書込むファイルへのパス
// $CsvData : 書込みデータ
function AppendCsvToFile($FilePath, $CsvData) {
if ($FilePath == "") {
return false;
}
$fp = fopen($FilePath, "a");
if ($fp == 0) {
return false;
}
//作成日、名前、発言内容を「,」で連結し、レコードを作成する。
//また、レコード中の改行文字を取り除き行末に改行文字を付加する。
$temp = ereg_replace("[\r\n]", "", join(",", $CsvData)) . "\n";
fputs($fp, $temp);
}
0018nobodyさん
04/11/01 12:51:17ID:???// LoadCsvFile関数
// 機 能 CSV形式のファイルを2次元配列に読込む
// 引 数 $FilePath : 読込むファイルへのパス
// 戻り値 $CsvData : 読込んだテキストの2次元配列
function LoadCsvFile($FilePath) {
if (file_exists($FilePath) == false) { // ファイルの存在を確認する
return false;
}
$CsvData = array(); // 配列を作る
$TextData = file($FilePath); // ファイルのデータを読み込む
for ($i = 0; $i < sizeof($TextData); $i++) { // レコードが10件あれば10回
$TextData[$i] = ereg_replace("\n$", "", $TextData[$i]); // 行末の\nを取り除く
$TextData[$i] = ereg_replace("\r$", "", $TextData[$i]); // 行末の\rを取り除く
$CsvData[$i] = split("," , $TextData[$i]); // 「,」を区切りとしてフィールドの値を取り出す
}
return $CsvData; // $CsvDataは二次元配列
}
//------------------------------------------------------------
// ここからが主処理
//------------------------------------------------------------
if (isset($_POST["SUBMIT"])) { //このページが初めてアクセスされたか?
if ($_POST["BODY"] != "") { //発言内容はあるか?
$body = str_replace("\n", "<br>", $_POST["BODY"]); // \n\r(改行文字)をタグ<br>に変換する
$body = str_replace("\r", "", $body);
$name = $_POST["NAME"];
$BBSRecord = array(date("Y/m/d H:i:s"), $name, $body);
AppendCsvToFile(BBS_DATA, $BBSRecord); //「内容」の書込み
}
}
0019nobodyさん
04/11/01 12:51:49ID:???$BBSData = LoadCsvFile(BBS_DATA); //「内容」の読込み
?>
<html>
<head>
<title>掲示板</title>
</head>
<body><h1 align="center">掲示板</h1>
<a href="bbs.php">最新</a>
<form action="bbs.php" method="POST">
<table border="1" align="center" cellspacing="0">
<tr><td bgcolor="#cccccc" align="center">名 前</td><td><input type="text" name="NAME"></td></tr>
<tr><td bgcolor="#cccccc">発言内容</td><td><textarea name="BODY" cols="40" rows="8"></textarea></td>
<tr><td colspan="2" align="center">
<input type="submit" name="SUBMIT" value=" 投 稿 ">
<input type="reset" value=" ク リ ア "></td>
</tr>
</table>
</form>
0020nobodyさん
04/11/01 12:52:22ID:???<?php
if ($BBSData == false) { // 発言内容がなければ$BBSDataは空っぽ
print "発言はありません。<br>";
} else {
for ($i = sizeof($BBSData) - 1; $i >= 0; $i--) {
print "<hr><font size='3' color='#0000ff'><b>";
print $BBSData[$i][BBS_COL_NAME] . "</b></fomt>";
print "<font size='2' color='#666666'>";
print " [" . $BBSData[$i][BBS_COL_DATE] . "]" . "</font><br><br>";
print "<font size='3' color='#333333'>";
print $BBSData[$i][BBS_COL_BODY] . "</font><br><br>";
}
}
?>
</body>
</html>
0021nobodyさん
04/11/01 12:54:15ID:???0022nobodyさん
04/11/01 12:54:46ID:???0023nobodyさん
04/11/01 13:01:28ID:???headerで文字コード指定すれ。
0024nobodyさん
04/11/01 13:05:34ID:???ぱっと見falseになりそうなパターンが浮かばないですね
空でもtrueだし
けど改行入ったり/が連発した場合その動きでいいのかな?
>>18
★三 【 スクリプト改造工房 PART 8 】 ★三
http://pc5.2ch.net/test/read.cgi/php/1077525387/
0026nobodyさん
04/11/01 13:07:34ID:???0029nobodyさん
04/11/01 13:17:52ID:???00307
04/11/01 13:36:25ID:???php.ini の mbstring 確認しましたが、
EUC-JPになっていました。
>>10
HTTPのプロキシサーバを立てて、
やりとりしているHTTPの内容を確認したんですが、
リダイレクトの時だけ Charset のヘッダが出ていませんでした。
(かといってShift_JISと書いてあったわけではないです)
結局のところ、リダイレクト先のHTMLを修正しなおしたところ、
なぜか正常にいくようになりました。
おかしい箇所が5文字の全角テキストに断定できたんですが、
そこを見ても特に問題ない普通の文字でした。
(一つ一つコメントアウトとテストを繰り返してたどり着きました)
なぞです。
0031nobodyさん
04/11/01 13:40:14ID:???0033nobodyさん
04/11/01 13:47:57ID:???charset のヘッダーが出ていないと言うことは、そのおかしいと思われる全角テキストで
文字コードを判別しようとして失敗したんだな。
適当な解決法→htmlの先頭にEUCらしいw文字をコメントで入れておく
ちゃんとした方法→>>23のいうとおりにする
0034nobodyさん
04/11/01 13:50:40ID:???> charset のヘッダーが出ていないと言うことは、そのおかしいと思われる全角テキストで
> 文字コードを判別しようとして失敗した
あいかわらず無能レスが続くなこのスレ。
0037nobodyさん
04/11/01 13:57:03ID:???0039nobodyさん
04/11/01 13:58:48ID:???0042nobodyさん
04/11/01 14:02:51ID:???0044nobodyさん
04/11/01 14:04:19ID:???0045nobodyさん
04/11/01 14:05:27ID:???0047nobodyさん
04/11/01 14:14:43ID:???それだ!!THX!
>>24,27
参考になりました。
「最初の"/"」で区切るのがポイントなんで、
今回は>25が最適みたいです。
0048nobodyさん
04/11/01 14:15:26ID:???0050nobodyさん
04/11/01 14:35:39ID:???0051nobodyさん
04/11/01 14:37:10ID:???0053nobodyさん
04/11/01 14:40:58ID:???0054nobodyさん
04/11/01 14:52:29ID:???教えてあげるよ。
例えばテーブルを bbs にして id 名前 発言内容 のカラム作って
単にMySQLで接続して記録していけばいいんでないか?そんだけ
丸投げだったら他スレあったよな。いってみ。
0057nobodyさん
04/11/01 15:00:16ID:???0058nobodyさん
04/11/01 15:12:19ID:???どこかと絶対共有してない?
0059nobodyさん
04/11/01 15:14:19ID:???//------------------------------------------------------------
// ここからが主処理
//------------------------------------------------------------
if (isset($_POST["SUBMIT"])) { //このページが初めてアクセスされたか?
if ($_POST["BODY"] != "") { //発言内容はあるか?
$body = str_replace("\n", "<br>", $_POST["BODY"]); // \n\r(改行文字)をタグ<br>に変換する
$body = str_replace("\r", "", $body);
$name = $_POST["NAME"];
$BBSRecord = array(date("Y/m/d H:i:s"), $name, $body);
AppendCsvToFile(BBS_DATA, $BBSRecord); //「内容」の書込み
mysql_connect("localhost","root","");
mysql_select_db("bbs");
mysql_query("insert into bbst set name = '$name', message = '$body'");
$result = mysql_query("select * from bbst order by id");
$r = mysql_fetch_array($result);
echo $r[1].":".$r[2];
}
0060nobodyさん
04/11/01 15:15:36ID:???CREATE TABLE `bbst` (
`id` int(11) NOT NULL auto_increment,
`name` varchar(20) binary NOT NULL default '',
`message` varchar(60) NOT NULL default '',
PRIMARY KEY (`id`)
) TYPE=MyISAM AUTO_INCREMENT=1 ;
0062nobodyさん
04/11/01 15:35:50ID:???CSV方式→MySQL
0063http://idol.jirashi.net/bbs/up/img/1088136610/43.jpg
04/11/01 15:39:04ID:???0064nobodyさん
04/11/01 15:52:54ID:???0065nobodyさん
04/11/01 15:56:24ID:???そこで1人でやってくれ
0067カポコン
04/11/01 16:04:58ID:???(´ω`)cm < ミ タ ナ 〜 ♪
ノ( )ノ ☆ブリ
..ノ__)) /
||| £: −☆ブリ
ー ̄ ̄ーーーーーーーーーーーーーーーー
0068nobodyさん
04/11/01 16:11:58ID:???その発現自体も水掛け論なんだが。
0069nobodyさん
04/11/01 16:13:00ID:???0070nobodyさん
04/11/01 16:30:50ID:3x+bX1j+タイムアウト処理はどのように働きますか?
1. タイムアウトするまでの時間(デフォルト)
2. タイムアウトするまでの時間の設定変更方法
が知りたいです。
0072nobodyさん
04/11/01 17:42:56ID:???0075nobodyさん
04/11/01 18:50:17ID:???こんな感じにするしかないんじゃないかな……
<?php
function getRemoteFile( $file, $timeout = 10 ){
while( ($s = @file_get_contents($file)) === false ){
if(--$timeout <= 0) return false; // PHP5でOOPならここで例外を投げる
sleep(1);
}
return $s;
}
?>
0078nobodyさん
04/11/01 19:32:47ID:???サーバB(Apache/1.3.33 (Unix) PHP/5.0.2)で動きません。
サーバBで、フォームからPOSTした結果をphpinfo()で確認した限りでは、
$_FILESじたいが設定されてこないようです。
register_globals = Off
file_uploads = On
upload_max_filesize = 2M
upload_tmp_dir = no value
です。何か初歩的なところを見落としてるでしょうか……?
0080nobodyさん
04/11/01 19:36:54ID:???0084nobodyさん
04/11/01 19:47:37ID:???テンプレないのに何でこう同じようなレスが出来るんだろうなw
>>80
斬新な釣りでも思いついたら教えてくれ
0085nobodyさん
04/11/01 19:49:57ID:???プッ
それってコピペだろ。
長文書き込んで頭いいように見せかけたつもりだろうけど、
空気読んでないからバレバレなんだよ
ゲラゲラ
0086nobodyさん
04/11/01 19:53:12ID:???0087nobodyさん
04/11/01 19:55:29ID:Qp2szwoVなんとなかるよ。
0088nobodyさん
04/11/01 19:57:45ID:???. _...,,o‐y ,:'- '⌒ ⌒ヽ. `ヽ' ,
(o( ,' / / 、 `ヾ. ヾ,
,:'´//7,' ,' .,' ,:' ! } i !', ':, ':, ゙:,
,' / ,' {l. ! {/ ,イ / }| !|', !. ', ', ゙,
ハ〃 ! !| | | ∠/ ,:'-ノ} /リ l ,ム. ! } |!
ハヽ、ゝ!| l | ,:',;='ィ'、'´ ,'.ノ ノ.,;lノ=、l .,' ,' ,' ノ
{ l l ', |'ヲi(_ノ.} ´ i(ノ.}゙!ノ,:',:''´
', h. ', ',゙、 ':゙゙_.ノ. ':゙_ノ〃ン
':, { ',', ':,':, 丶 ,' l .}
ヾ ':,':, ':ヾ、._ 「´/ ,' | .,' / ̄ ̄ ̄ ̄ ̄ ̄
`ヾ-、`ヽ_ `´ _,.ィリ.ノ ,' < 絶対大丈夫だよ!
リ';',ヾ| ` ‐┬ ´ _ノノ,'/ \______
ヾ,、-- 、 _ | ´ノ'
f ヾ、..___ ヽ、 ー‐''
/_......_ \
0089nobodyさん
04/11/01 23:59:13ID:7Z9dzjumPHPでフォルダ以下のファイルを配列に入れて簡単に操作できるように
使用としているのですが、いろいろ調べていたら
「PEAR File/Find.php」
というフォルダ配下のファイルを検索するクラスがあるということを知ったのですが、
これは、これはいったい何なのでしょうか?
モジュールでしょうか?それとも、Find.phpというソースがどこかにあるとか、
「PEAR File/Find.php」そのものについて知りたいのですが、どこかよいサイト、
または、教えていただける方がいらしたらお願いします。
PHPは右も左もわからず闇雲にソースを書いている段階なので、
突っ込んだ質問は許してください。
0090カポコン
04/11/02 00:37:07ID:???0091nobodyさん
04/11/02 00:42:40ID:???0092nobodyさん
04/11/02 00:47:02ID:???ここを見れば分かる
009378
04/11/02 03:03:28ID:???エラーはでません。
$_SERVER['PHP_SELF']で同じスクリプトに戻ってくるようにして、
$_FILESの存在で動作を切り替えてあるので、
最初と同じフォームが表示されるだけです。
エラーメッセージか何か出るほうがまだ対処のしようもありそうなものですが、
$_FILES["userfile"]自体が設定されてこないってのは……
009678
04/11/02 10:33:53ID:???連想配列$_FILES自体が存在していないんです。
じゃあPOSTできてないのか?というとそうではなくて、
$_POSTと$_RESPONSEにMAX_FILE_SIZEが入ってます。
phpinfo()のPHP Variablesにリストされないという勢いなので、
間違えて上書きしているとかそういうケアレスミスでも無いと思うのですが……
0098nobodyさん
04/11/02 12:11:45ID:IRAW9bdbこれを数字部分でsortするにはどうしたらいいですか?
sort_numericと言うのをやってみたのですがうまく行きませんでした。
PHP4.3.3です。お願いします。
0099nobodyさん
04/11/02 12:32:37ID:???とりあえず
php.ini の always_populate_raw_post_data を On にして
$HTTP_RAW_POST_DATAでちゃんとPOSTされているか確認。
後htmlフォームのenctypeをもう一度確認。
>>98
ソート用の関数を自作する。
<?php
function hoge_sort($a, $b) {
preg_match("/(\d+)/", $a, $match_a);
preg_match("/(\d+)/", $b, $match_b);
if (empty($match_a)) return 1;
elseif (empty($match_b)) return -1;
else return ($match_a[1] - $match_b[1]);
}
$testarray = array("./aeed/003.txt","hhhh", "./abcd/001.txt","./bcde/002.txt");
usort($testarray, "hoge_sort");
foreach ($testarray as $key => $val) {
echo $key.":".$val."<br>\n";
}
?>
0101nobodyさん
04/11/02 12:42:22ID:???ショタ好き=キモイ、痛い、厨房と思われても致し方ないぞ。
版権でショタがいる作品はただでさえ
ショタ好きどもが他の迷惑も顧みず大暴れ、結局そのキャラの話をしないのは
暗黙の了解という流れに一度はなり。
ショタ好きと他の萌え嗜好がぶつかり合う場所でも
ショタ好きどもが他の迷惑も顧みず大暴れ、という流れに一度はなるというのに。
0102nobodyさん
04/11/02 12:55:50ID:???http://fileman.n1e.jp/TOP.php
たぶん PHP でやってると思うんだが。
アップロードした動画を即座に Flash に落としたり、
左下に著作権表示させたり。かなりスゴイ。
こういうのって Ming でできるのかなぁって疑問。
あとは裏でプログラム動かすしかないんだが。詳細キボン。
0103nobodyさん
04/11/02 12:55:58ID:???0105nobodyさん
04/11/02 13:00:05ID:???かなり君の解析は見当違い。
ほぼFlashの機能で実現してるだけ。
1)動画を即座にFlashに落とす(落とすってのがまず間違いだが。
動画再生用Flashを作成。
Flashに動画のパスをつけたURLを生成すれば完成。(***.swf?file=***.mpg)
2)著作権表示
動画再生用Flashに組み込んでるだけ。
0108nobodyさん
04/11/02 13:25:20ID:???0109nobodyさん
04/11/02 13:53:37ID:???後は動画を画像に分解したのが並んでいるだけですね
画像分解と音声分解ができればそれをFlashにするのは簡単
0110nobodyさん
04/11/02 13:59:39ID:???画像分解+音声分解 → exec
Flash化 → Ming
ってことか。
0111nobodyさん
04/11/02 14:26:32ID:???Soundとjpegのバイナリデータ、その容量、ID番号の置換を繰り返すだけでいいからMingもいらないよ
0112nobodyさん
04/11/02 14:45:31ID:???011378
04/11/02 15:01:55ID:???always_populate_raw_post_data = Onにしたのですが、
$HTTP_RAW_POST_DATAが飛んできませんでした。
enctypeは何度も確認してますし、同一スクリプトで
サーバAでは動作しているので、typoが原因とも思えません。
スクリプトはPHPマニュアルのサンプルに毛が生えたようなものです。
整理すると、
ファイルアップロードの可否(同一スクリプトにて)
サーバA:○
サーバB:×
$_FILES
サーバA:○
サーバB:×
$HTTP_RAW_POST_DATA
サーバA:×
サーバB:×
$_POST["MAX_FILE_SIZE"]
サーバA:○
サーバB:○
お手上げです……
011578
04/11/02 15:27:56ID:???もちろんやってます。
phpinfo()の表示でOffからOnに変わったのを確認もしています。
0116nobodyさん
04/11/02 15:55:10ID:???011778
04/11/02 16:12:29ID:???情報が小出しになってしまうのはよくないと思うのでソース貼ります。
サーバAでは期待通りif()の内側が実行されてます。
<?php
print($HTTP_RAW_POST_DATA);
//phpinfo();
if(!empty($_FILES['userfile']['name'])) {
$uploadfile = $_FILES['userfile']['tmp_name'];
$lines = file($uploadfile);
foreach ($lines as $line_num => $line) {
echo "Line #<b>{$line_num}</b> : " . mb_convert_encoding($line, "SJIS", "EUC-JP") . "<br>\n";
}
exit;
}
// 初回接続時
?>
<html><body><form enctype="multipart/form-data" action="<?php echo($_SERVER['PHP_SELF']); ?>" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="100000">
Send this file: <input name="userfile" type="file">
<input type="submit" value="Send File">
</form></body></html>
011878
04/11/02 16:17:30ID:???Netscape7.1
Mozilla Firefox 1.0RC
Internet Explorer 6.0.2800
0119nobodyさん
04/11/02 16:31:40ID:09F3GGP8ttp://xxx/xxx.php?xxx
のように.phpの後に?xxxとつけるためにはどうすればいいのですか?
htmlのページから飛んだときとかに?以降をつけたいのです
0120nobodyさん
04/11/02 16:33:24ID:???0121nobodyさん
04/11/02 16:35:47ID:???【PHP】くだらねぇ質問はここに書き込みやがれ
http://pc5.2ch.net/test/read.cgi/php/1099322141/l50
0122nobodyさん
04/11/02 17:23:44ID:???やってみたひと詳細教えて。
0124122
04/11/02 17:50:20ID:???⊂⌒( TεT;) 読んでも分からん。
`ヽ_っ⌒/⌒c
0125あぼーん
NGNG0126nobodyさん
04/11/02 17:57:17ID:???⊂⌒( ・∀・) おまえも氏ね
`ヽ_っ⌒/⌒c
0128nobodyさん
04/11/02 21:41:19ID:QiT/le0dphpの中にインナーフレームを埋め込みそこへhtmlを読み込んで、
targetで中身を書き換えるようにしているのですが、
インナーフレームの中のhtmlファイルが変わったときに
そのhtmlファイルが存在するディレクトリ名を取得して、
そこまでのルートをリンクとして、表示させたいのですが、
手法がわからず困っています。
なにとぞ、お知恵をお貸しください。
また、こういうことを解説しているHPや、ヒントになりそうなHPの
情報もいただければと思います・
よろしくお願いいたします。
0129nobodyさん
04/11/02 21:59:15ID:???>そこまでの"ルートをリンクとして、表示"させたいのですが、
"ルートをリンクとして、表示"というのが、具体的にどういうことなのか分からないのですが。
0130nobodyさん
04/11/02 22:03:13ID:???0131nobodyさん
04/11/02 22:53:22ID:???http://pc5.2ch.net/test/read.cgi/php/1096965398/961
内容が同じ。
htmlでいいからサンプルを出せ。
0133nobodyさん
04/11/03 12:37:17ID:???$_FILES['userfile']['name']は空でも
$_FILES['userfile']['error']はsetされてるかもよ
0134nobodyさん
04/11/03 13:41:46ID:???$_FILES 自体が無いみたいよ?
013578
04/11/03 14:43:14ID:???そうです。セットされていたらコメントアウトしてある
phpinfo()の時点でリストされるはずですよね。
0136nobodyさん
04/11/03 15:23:02ID:???0140128
04/11/03 16:35:49ID:lSNB2eWkhttp://pc5.2ch.net/test/read.cgi/php/1096965398/961
上記がインナーフレーム内のhtmlを想定しているかはよくわからないのですが、
イメージは、同じです。
現在のソースは以下のようにechoでhtmlを作成しています。
http://www.uploda.org/file/uporg15142.txt
のファイルをダウンロードしてください。
txtファイルは表示されないみたいで・・・(私の環境だからでしょうか?)
0141nobodyさん
04/11/03 16:43:01ID:???0142131
04/11/03 16:48:43ID:lSNB2eWkmain.phpのソースです。
http://www.uploda.org/file/uporg15147.jpg
jpgにしました。
よろしくお願いいたします。
0143nobodyさん
04/11/03 16:50:18ID:???0144131
04/11/03 16:53:04ID:lSNB2eWkhttp://www.uploda.org/file/uporg15149.jpg
index.phpもjpgにしました。
よろしくお願いいたします。
0146nobodyさん
04/11/03 17:05:31ID:???^^この&ってどういう利点があるの?
0147nobodyさん
04/11/03 17:08:02ID:???<a href="〜.html" target="main">iframe内書き換え その1</a>
のように静的ファイル(html)を呼び出そうとしているなら無理だよ。
そこにPHPの介在する余地は無い。
サンプルが無いので したいらしい事を適当に想像するに、
iframeを含むページ自体を毎回書き直す方法が良いと思われ。
>>146
気にしたら負けと思われ
0148131
04/11/03 17:24:29ID:lSNB2eWkご指摘のとおりです。htmlを呼び出しているだけです。
iframeを含むページ自体を書き換えるとするとどのような
処理が必要になるのでしょうか?
リンク先をクリックした情報を取得して、index.phpを書き換えるということでしょうか?
クリックしたということを取得するにはセッション情報が必要になるのでしょうか?
やりたいことはわかるのですが、何が必要で、どう処理すればよいのかわからず困っています。
どうそ、お知恵をお貸しください。
よろしくお願いいたします。
0149131
04/11/03 17:30:02ID:lSNB2eWk実は、わかっていないです。
サンプル等見ながら作成していたので、そのまま利用しています。
ディレクトリ名をメニューにして、iframe内のhtmlまでのディレクトリの階層
を「index >> 階層1 >>階層2」と表示できればページの管理が楽になるなと
思い作成を始めました。だったら、xmlで書けといわれそうなのですが、それだと、
かなり時間がかかると思い、できる限り簡単に短時間に作成できるように考えました。
自分の知識から考えると、これがベターかなと思って作成しています。
0150nobodyさん
04/11/03 17:38:28ID:???0151nobodyさん
04/11/03 17:55:47ID:???動的にやる意味がない気がする。
ファイル数が不定期に増減して、ファイル名もランダムに変わるというなら意味ありそうだけど
ファイル数は一定でファイル名も固定なのであれば、何かスクリプトを書いてそれを使って
静的なhtmlを書いてしまえば、いいと思う。
んで、ファイル数が著しく増えたらもう一回スクリプトを走らせる、と。
0152nobodyさん
04/11/03 17:59:09ID:???0153nobodyさん
04/11/03 18:07:56ID:???俺もやったことあるけど、151の言う通りだと思う。
0154nobodyさん
04/11/03 18:12:37ID:???0155131
04/11/03 18:14:10ID:lSNB2eWkディレクトリも、htmlファイルもランダムに変わります。
>152
の言う通りHPの管理を楽にするためです。
>153
どういう手法なのかお教え願えないでしょうか?
お願いいたします。
0156131
04/11/03 19:11:19ID:lSNB2eWk何を激しく思うのでしょうか???
0157nobodyさん
04/11/03 19:18:08ID:???$result = mb_substr($text, 0, mb_strpos($text, "\r\n"));
if (!$result) $result = mb_substr($text, 0, mb_strpos($text, "\r"));
if (!$result) $result = mb_substr($text, 0, mb_strpos($text, "\n"));
if (!$result) $result = $text;
こんな風になってしまいました。。
もっとスマートに書く方法はありませんか?
0158nobodyさん
04/11/03 19:56:01ID:???list($result) = explode("\n",$test);
0159131
04/11/03 21:26:46ID:lSNB2eWkindex.phpのリンク先をどこか別のところに書き出し、
さらに、index.phpを再度読みiframe.php内に書き換えたiframe.phpを
書き出せばよいのでしょうか?
こうするには、何が必要になるのでしょうか?
クリック情報を得るには何が必要でしょうか?
0160nobodyさん
04/11/03 21:48:55ID:???iframeとかいってる時点でスレ違いなんだよ
0161nobodyさん
04/11/03 23:19:09ID:???1回 addslashes して投稿した本文は
2回 addslashes した検索キーじゃないと同じようにマッチしないんですか?
データは MySQL に入れているのですが……。
list($result) = explode("\n", $text, 2);
0165nobodyさん
04/11/04 03:33:48ID:???0166161
04/11/04 05:37:04ID:???>>163
何回も試しましたが、やはり>161のようになってしまいます。
これは常識なのでしょうか……できれば何故そうなるのかも理解したいです。
>>164
試したところ、やはり結果は同じでした。
0168nobodyさん
04/11/04 05:45:01ID:???範囲を教えてください
mb_ereg使って正規表現すればいい?
0169161
04/11/04 07:12:33ID:???magic_quotes は Off です。phpinfo() で確認しました。
また、このようなフィルタを使っています。
function safe($text) {
if (get_magic_quotes_gpc()) $text = stripslashes($text);
$text = trim(htmlspecialchars($text));
$text = mysql_real_escape_string($text);
return $text;
}
これを使って例えば \n でそれぞれ投稿、検索すると
insert into テーブル (本文) values ("\\n")
select * from テーブル where 本文 like "%\\n%"
と、このように SQL を作成して送信します。
このとき、上の行はきちんと \n と入力されるのですが、
下の行では改行にヒットしてほぼ全てのレコードを拾ってきてしまうのです。
上を書いた上で気付いたのですが、
本文 like "%\\n%" ではなく 本文 = "\\n" とすればきちんと \n にヒットするようです。
(本文が \n だけの場合は改行は含まれないので、確認できました)
MySQL 側の問題のような気がしてきました……。
0171nobodyさん
04/11/04 08:45:28ID:???お前こそlist()を理解してるのか?と問いたいわけだが。
>>168
ここを読むといい。
http://www.din.or.jp/~ohzaki/perl.htm
preg_match()ならperl互換だからほとんどそのまま使える。
0174170
04/11/04 10:12:37ID:???0175nobodyさん
04/11/04 10:19:53ID:???>>174
プッ。。。頭悪すぎ。。。w
Hint
1)array explode()
2)要望者は$resultに1行目のデータを入れたい。
0176nobodyさん
04/11/04 10:30:26ID:???list($result, $test) = explode("\n", $text, 2);
なら分かるけど
0177nobodyさん
04/11/04 10:35:42ID:???Basic認証のことなのですが、
自作スクリプトで
define(PASS, '1234');
define(ID, '1234');
if(!isset($_SERVER['PHP_AUTH_USER']) || !(($_SERVER['PHP_AUTH_USER'] == ID) && ($_SERVER['PHP_AUTH_PW'] == PASS))) {
header('WWW-Authenticate: Basic realm="hogehoge"');
header('HTTP/1.0 401 Unauthorized');
exit;
}
としてphpへのアクセス制限をつけています。
OSX php4.3.9(自前コンパイル)
linux php4.3.9(rpm)
の時は正常に認証後スクリプトにアクセス出来ていたのですが。
OSX php4.3.9をインストーラーで配布されてるものへ、
linux php5.0.2(rpm)へ変更後、
認証パネルが出てきて、IDとPASSを入力送信すると、
永遠にブラウザーで読み込みしたままでスクリプト本文へアクセスできません。
lan越しでつなげてみると、ルーターのアクセスが何かを送受信してる風です。
上記のことで何かチェックする項目などあるでしょうか?
ちなみに、Basic認証部分をコメントすると、問題なく動作します。
よろしくお願いします。
0178176
04/11/04 10:37:55ID:???list($result, $text) = explode("\n", $text, 2);
$resultが1行目$textは2行目以降の残りの部分になる。
0180nobodyさん
04/11/04 11:27:35ID:???自己レス。
上のphp設置ディレクトリーの1つ上のディレクトリ−に
.htaccessがあってそこへも、鯖全体のBasic認証をしています。
.htaccessの方の認証を外すとphp側の認証はパスしました。
認証が重複してる感じですね。
また、apacheのerror_logを見ると、問題のphpと自作エラードキュメントがnot found状態になってて
[Thu Nov 4 10:51:45 2004] [error] [client 192.168.0.28] user moge not found: /hoge/hogehoge.php
[Thu Nov 4 10:51:45 2004] [error] [client 192.168.0.28] user moge not found: /error.php
[Thu Nov 4 10:51:46 2004] [error] [client 192.168.0.28] user moge not found: /hoge/hogehoge.php
[Thu Nov 4 10:51:46 2004] [error] [client 192.168.0.28] user moge not found: /error.php
↓以下永遠に続く・・・・
になってました。
phpの問題ではないようなので、apacheもしくは.htaccessスレの方で聞いてみます。
失礼しました。
0182nobodyさん
04/11/04 12:54:23ID:???マニュアル読むまでも無いと思うが。
list($result, ) = explode("\n", $text, 2);
こんな書き方もある。
それぞれに変数を用意してやる必要はない。
0183nobodyさん
04/11/04 13:18:10ID:XSGSYvoFMIMEの文字列をJISに変換するにはどうしたらよいでしょうか
0184nobodyさん
04/11/04 13:19:32ID:???0185 183
04/11/04 13:28:05ID:???0187nobodyさん
04/11/04 18:57:14ID:???PHPで大量のメールを送信するプログラム作成予定です。
CCやBCCで送信する場合は何件あろうが処理は速く終わるんですが、
宛先にそれぞれの名前だけ表示して送りたい場合は、
やはり一件ずつmail関数で送信をしなくてはいけないんでしょうか。
ちなみに軽く書いてみるとこんな感じでループ回してます。
foreach($str_data as $key => $val){
$to = mb_encode_mimeheader($val['mail']);
mail($to, $subject, $msg_jis, $header);
}
BCCはメアドをつなぎ合わせるから一発。
$mail_enc = implode(",", $mail_str);
$to = mb_encode_mimeheader('[email protected]');
$header .= "Bcc:{$mail_enc}"."\r\n";
mail($to, $subject, $msg_jis, $header);
宛先を各個人にするにはやっぱりループさせるしかないですよね。
これがすさまじく処理に時間がかかるんです。
大量メールの場合や、添付ファイルをつけた場合、
これではサーバーが持たないですかね・・・
宛先に各個人を表示するプログラムってやっぱきついんですかね?
ループさせないで送る方法も考えつかないですし・・・
どなたかよい知恵があれば教えてください。
自分でプロトコル接続プログラムを作成して送信していくのがいいと思う。
サーバーは持つけど長くなるけどね。
うまくPHPを同時に複数走らせたりすればサーバーに適したスピードでの
送信も可能です。そのときは複数送信をしないような方法を考えましょう。
0190nobodyさん
04/11/04 20:56:49ID:???mail関数使わずに、qmail-queueに投げて処理してる。
リモートにしかMTAが無いなら、>>189の言うようにSMTP話すようにして、
1通毎にコネクション切らないようにしてやれば若干マシ。
ところで、間違っても共有サーバで動かそうと思って無いだろな?
0191nobodyさん
04/11/04 21:43:16ID:???俺も興味ある話だから便乗させて。
mail関数使わずに、popen()でパイプオープンして内容を投げればええのかな?
何かよいサンプルソースがあればと思い探してるのだが。。
0192nobodyさん
04/11/04 22:03:07ID:???header("Content-type: application/octet-stream");
header("Content-Disposition: inline; filename=\"test.wmv\"");
header("Content-Length: ".50000);
readfile("test.wmv");
としてみたんですが、メディアプレーヤーが起動してしまいます。
検索して
header("Content-type: application/octet-stream");を
header("Content-type: application/octet-stream-dummy");にするとDLされるみたいに書いてあったのですが、
やはりメディアプレーヤーが起動してしまいます。
ネスケだとうまくいくんでIEのバグかなと思うんですが、もしDLできる方法があればご教授お願い致します。
よろしくお願いします。
#くだ質の方に間違って書いてしまいました。ごめんなさい。
0193nobodyさん
04/11/04 22:17:46ID:???header("Content-Disposition: attachment; filename=\"test.wmv\"");
ならどぉよ。
0197nobodyさん
04/11/05 00:25:22ID:FgI15ehKmysql&phpの方は書き始めてまだ一ヶ月ほどの経験しかありませんが
MySQL 3.23.58とphp4.3.1という環境で簡単な検索システムを作ってみたりしてます。
function print_selectmenu($f_name){
$sql = "select distinct $f_name from HOGE_DB";
$result = mysql_query($sql);
while ($row = mysql_fetch_array($result)) {
echo "<option value=¥"{$row["$f_name"]}¥">{$row["$f_name"]}</option>¥n";
}
}
こんな感じで、プルダウンメニューにしたい内容をテーブルから読み出して
<select></select>の間にはさみ自動でプルダウンメニューに表示させるまでは出来たのですが
レコードの修正画面においては、選択肢をプルダウンで出すだけでなく
既に登録されてる情報どおりにselectedを付けたいのですがなんか良い方法ないでしょうか?
0198nobodyさん
04/11/05 00:30:58ID:???それはHTMLのお話。
<option 〜 selected>のselectedの部分を ”自分で” 出力すればよい。
他のフォーム要素についても同じ。
0199197
04/11/05 00:54:35ID:FgI15ehKselectedをつければいいということは解ってるのです。
mysql_fetch_arrayで拾い出してくる値のうち、
既に入力された情報のoptionにだけwhileループのなかで
いかにして自動的にselectedをつけるかで悩んでるのです。
0200nobodyさん
04/11/05 00:58:36ID:onIpwNyM0202nobodyさん
04/11/05 01:11:34ID:???| ノ\ ,_ヽ |
/ ●゛ ● | |
| ∪ ( _●_) ミ (>>200)
彡、 |∪| | J
/ ∩ノ ⊃ ヽ
( \ / _ノ | |
\ " / | |
\ / ̄ ̄ ̄ /
0203nobodyさん
04/11/05 01:13:58ID:???pearにそういうこともできるパッケージがあるけど、
selectedを付ける程度だったらarray_mapかなんかで実装した方がいいかも知れない。
0204nobodyさん
04/11/05 03:14:21ID:ipfVcK1A自分で作成した(コーディングしてコンパイルしたということです)
SMTPサーバを/usr/sbin/sendmailにインストールしphp.iniで
sendmail_pathを/usr/sbin/sendmailに設定しました.
このときに,PHP(アパッチのモジュールではなくて)で
mb_send_mail()を実行してもSMTPサーバにメールが送られていないようですが,
原因は何が考えられるでしょうか?
エラーメッセージが一切出てこないこともあって,原因がわからなくてこまっています.
(phpインストール時に./configureでマルチバイトストリングが扱えるようにオプションを
つけています.)
0206nobodyさん
04/11/05 03:37:37ID:???> SMTPサーバにメールが送られていないようです
メル鯖のログを見た?
> エラーメッセージが一切出てこないこともあって
mb_send_mail はbooleanを返すけど、それはどうなってるの?
0207nobodyさん
04/11/05 04:27:45ID:???$tset ="
<hr color=#6600ff>
_HTMLEND_;
require 'inc/test.php';
echo<<<_HTMLEND_
<hr color=#6600ff>
";
と書いたtest.incファイルを↓のファイル
<?PHP
// さっきのファイル読出し
require("../test.php");
echo<<<_HTMLEND_
<html><body>
あいうえお<br>
あいうえお<br>
あいうえお<br>
$tset
あいうえお<br>
あいうえお<br>
あいうえお<br>
<hr></body></html>
_HTMLEND_;
?>
てな感じで読み出したい・・・
変数の中に命令文を入れたら
動かないのは分かるのですが
どうすれば出来るのかわかりません
(´・ω・`)ショボーン
初心者ですいませんがお教えい下さい。
0208nobodyさん
04/11/05 06:32:47ID:puzbyGUU今日の寝巻きは黄でした
今日の寝巻きは緑でした
っというような文章があり、
色の部分だけ取り出して変数に入れるにはどうすればよいのでしょうか
入門書の正規表現のところを見ても英語の例しかなくうまくいきません
0209nobodyさん
04/11/05 08:54:15ID:???0210nobodyさん
04/11/05 11:01:51ID:???if ($b==$c) { array_merge($a,$d[$c]);
ここで現在のforeachループを破棄して、
もう一度最初から$aの評価をしたいのです。
($dの内容によっては無限ループに陥る
可能性があるのは目をつぶるとして)
どう書けば良いでしょうか。
0211nobodyさん
04/11/05 11:18:35ID:???0212nobodyさん
04/11/05 11:19:25ID:???reset( $a );
0213nobodyさん
04/11/05 11:26:53ID:???do {
foreach ($a as $b) {
if ($b==$c) {
array_merge($a, $d[$c]):
break;
} // endif
} // endforeach
} while(TRUE)
かな?
このままだと常に無限ループだが、
中のforeachから抜けるには break 2; を使えばいい
0214nobodyさん
04/11/05 11:29:35ID:vAMAiFLGこちらのsocket関数の項目に書かれているスクリプトを自分の
スクリプトに組み込んでますが
自分の使っているサーバーでperl -wcでスクリプトチェックを行ったら
Unquoted string "stdout" may clash with future reserved word at aaa.cgi line 543.
このような警告文が表示されました。
select(stdout);
のstdoutをAAAとか別のものに置き換えたらこの警告文が回避できましたが
別のものに置き換えても正常に動くのでしょうか?
perlのバージョンはThis is perl, v5.8.2 built for i386-freebsdです。
0218212
04/11/05 11:52:41ID:???while( list( $key, $b ) = each( $a ) )
{
if( $b == $c )
{
array_merge( $a, $d[$c] );
reset( $a );
}
}
で、どうだろう。
0219nobodyさん
04/11/05 11:54:48ID:???0220204
04/11/05 12:22:22ID:ipfVcK1Aメール鯖のログは昨日みましたが,やはり何ものこっていませんでした.
mb_send_mailがbooleanを返すということでしたので、今試して見たところ,false
が返ってきています.
phpinfo()をすると,mbstringはenableで,sendmail_pathもちゃんと設定されています.
falseが返る原因として他に何が考えられるでしょうか?
0221nobodyさん
04/11/05 12:36:58ID:???うん。(笑)
試してみたら、resetではforeachはresetされなかった。
>218ならいけそうな予感。
でもいささか古めかしい書き方なのは、仕方ないかな。
無限ループ前提でbreak2で抜けるのとどちらが良いかは、
好みが分かれる所かな?
0222nobodyさん
04/11/05 13:29:12ID:???>mail関数使わずに、popen()でパイプオープンして内容を投げればええのかな?
そんな感じ。厳密には使ってるのはproc-open()だったり、オリジナルのqmail-queue
ではなかったりしてるけど。後は単純にqmail関係の話だから、そっちの資料(本もあるし)
を当たった方が良いよ。
0223nobodyさん
04/11/05 13:49:41ID:???while(4){echo "1";}
これではあかんのかな?
0224nobodyさん
04/11/05 14:11:43ID:???0225nobodyさん
04/11/05 14:13:42ID:???while($i++ < 4){echo "1";}
0226nobodyさん
04/11/05 14:20:15ID:???225を参考にforを使ったやつも考えてみた
for($i=0;$i<4;$i++){echo "1";}
うーん、いろいろ出来るね。サンクス>224-225
0227nobodyさん
04/11/05 14:21:34ID:???0228nobodyさん
04/11/05 14:34:33ID:???0229nobodyさん
04/11/05 14:47:25ID:onIpwNyMんでしょうか?原理的には変わらん気がしますが。
それとも構造が分かりやすくて編集しやすいって利点のみ?
初心者なんでこれらを使わない方が作りやすいんですが・・・
0230nobodyさん
04/11/05 14:48:28ID:???0231nobodyさん
04/11/05 14:54:19ID:???どっちもどっち。
作りやすいほうをどうぞ。
0233nobodyさん
04/11/05 14:58:40ID:???class使うのは、再利用したい為と
共同開発するときに他人にも分かりやすくする為
どっちにしろ、初心者には関係ない
0234nobodyさん
04/11/05 15:15:32ID:???しかし、使わないと吐き気が出るプログラムが出来そうだがw
0235nobodyさん
04/11/05 15:20:26ID:???PDFLib-Liteを入れた後、PHPを再コンパイルする際に、
--with-pdflib=/usr/localをつけたにもかかわらず、
インストールされないってどういうことでしょうか教えてください。
ちなみに、PHP-4.3.Xでは同じ方法でインストールできたと思います。
0236nobodyさん
04/11/05 15:20:40ID:???0238nobodyさん
04/11/05 15:51:10ID:???OOPできなくても、構造化プログラミングぐらいしてないと、
趣味プログラムでも後で泣くよ。
保守できなくて。
色々と工夫してclassとかfunctionとか作ってると、
新しいプログラムを作るときに
新たに書くコード量が減ってきていい感じになる。
functionとかclass使えば、
普通はパフォーマンス落ちるよ。
そのパフォーマンスの落ちが問題なのかどうかってのも、
普通は検討事項。
職業プログラムなら、悩むまでもなくパフォーマンス落ちを取る。
# そもそも気にするほど遅くならない
0239nobodyさん
04/11/05 15:55:45ID:VQSnf7DDこの時に列幅等指定できないのでしょうか?
0240nobodyさん
04/11/05 16:08:36ID:???列幅を扱えるようなCSVファイルなら、そのフォーマットにそって出力すればよい。
ただ、MS-ExcelのCSV出力のように列幅データを持たないものもある。
0241nobodyさん
04/11/05 18:22:31ID:???0242nobodyさん
04/11/05 18:33:36ID:???0243nobodyさん
04/11/05 18:45:09ID:???書籍買って、カウンターのコードサンプルみてふと思ったのですが、
perlの場合、lockしてるのをよくみかけますが、
phpではlockする必要ないのですか?
0244nobodyさん
04/11/05 18:52:44ID:???ロックはしないとぶっ壊れるよ。
0246nobodyさん
04/11/05 19:23:43ID:???なぜなら、まともなコードを書くと入門書では紙面が足りないコードになるから。
一例を挙げれば入力のサニタイジングだって必須だけど省かれるし…・。
文字コードの色々な問題についても省くよね。
初心者になんでもかんでも説明するのは事実上不可能。
しかし、説明の無いコードが大量にあったら糞入門書だ。
つまり、入門書は雰囲気のみ。
実際に使えるコードなど無い。
0247nobodyさん
04/11/05 19:41:36ID:QUoZnGJqヒットしなかった時の値(false=0)が返って来ますよね?
みなさんはどうやって切り分けていますか?
0249241
04/11/05 20:50:01ID:???クッキーオフにしたら機能しなかった・・・。
セキュリティリスク高いからできるだけクッキーは
使いたくなかったんですが、これはしょうがないのかな?
初歩的な質問スマソ
0250nobodyさん
04/11/05 20:59:16ID:???0251nobodyさん
04/11/05 21:05:23ID:???勘違いしてるようだが、クッキーを使った方がセキュリティリスクが低いぞ。
もちろん、secureフラグを使用した場合だが。
0252241
04/11/05 21:06:23ID:???クッキーを使う場合についての注意点として、
・unsetを忘れない
・時間設定しておく
・パスワードなんかの重要情報は暗号化しておく
くらいしか思いつかないんだが、やばいですか?
0254nobodyさん
04/11/05 21:08:44ID:???0255241
04/11/05 21:10:24ID:???はphpとクッキーでログインシステム管理してるみたいだけど、
SSL利用は必須としていないみたいでし。
0256nobodyさん
04/11/05 21:13:20ID:???0257241
04/11/05 21:13:44ID:???0258nobodyさん
04/11/05 21:14:09ID:???0259241
04/11/05 21:23:22ID:???勉強しなおしてきます。ありがとうございました。
0260nobodyさん
04/11/05 21:41:54ID:???0261nobodyさん
04/11/05 21:45:38ID:???無線LAN環境でパケットスニッフしてみると良く分かる.
0262nobodyさん
04/11/05 21:54:28ID:???0265nobodyさん
04/11/05 22:08:57ID:???A%Bで出てきた値が1以上の整数だった場合を真とすれば出来そうだけど整数である事の判定の仕方が分かりません。
教えて下さい。
0266nobodyさん
04/11/05 22:19:44ID:???0267nobodyさん
04/11/05 22:33:34ID:???COOKEI OFFにして
session_start();
print $PHPSESSID;
しても $PHPSESSIDが表示されないぽ。
なぜぽ?
COOKEI ONなら
正しく表示されるのに
なぜぽ?
0268nobodyさん
04/11/05 22:35:31ID:???0269nobodyさん
04/11/05 22:37:13ID:???まず A >= B でなければ偽
さもなくば A == B なら1倍で真
さもなくばBと等しいか大きくなるまでAを足していって
ちょっきりBと等しくなれば真
残りは偽
0270nobodyさん
04/11/05 22:38:22ID:???session_start();
$PHPSESSID = session_id();
print $PHPSESSID;
じゃないの?
0271nobodyさん
04/11/05 22:39:17ID:???まず A >= B でなければ偽
さもなくば A == B なら1倍で真
さもなくば初期値0に対してAと等しいか大きくなるまでBを足していってちょっきりAと等しくなれば真
残りは偽
0273272
04/11/05 22:46:23ID:???でもいいのか。
0275nobodyさん
04/11/05 23:22:14ID:???session.use_trans_sid を 1 にしれ.
もしくは自分でリンクに全部 <?=SID?> をつけれ.
話はそれからだ.
0276nobodyさん
04/11/06 07:02:58ID:T75+ILHOusleep()はWindows上だと動かないので(-_-)ウツ
0277187
04/11/06 12:04:59ID:???>>190
>>191
アドバイスどうもです。
そんな感じの方法で少しがんばってみます。
共有サーバーでこんな思い処理やばいのは百も承知でっす。
でも、使うのは自分じゃないから何とも言えないけども。
1通毎にコネクション切らないで行う方法など、
とりあえずなんかしらで少しでも処理軽くする方法考えます。
popen()ついてですが、自分もなんかしらのソース探してみます。
道のりは長いですね・・・
0278nobodyさん
04/11/06 12:11:31ID:???0279nobodyさん
04/11/06 12:19:48ID:BQGFb7uFそんなことするソフトだったら作らずともいくらでもあるような。
今回はデータ管理でせっかくアドレスもあるからメール送る機能も追加しといてってだけ。
作ってればあれもこれもと欲がでてくるみたい。
きりがないからこっちはお疲れモード。
0280nobodyさん
04/11/06 12:23:30ID:veEoJvKdってのをユーザabcから使ってみたんですが、
ls: `/home/abc': Permission denied
apacheのエラーログにというエラーが表示され、
結果を取得することができません。
perl-suEXECのときはこれでいけたんですが、
PHPってどういった権限で動いてるんでしょうか?
解決方法はありますか?
宜しくお願いします。
0281nobodyさん
04/11/06 12:24:03ID:???> でも、使うのは自分じゃないから何とも言えないけども。
こういう馬鹿のお陰で、今までいくつも便利なサービスが停止されていった。
自鯖でやれ、屑。
0282nobodyさん
04/11/06 12:30:07ID:???Apacheのモジュールで動いていれば実行はapache(wwwとかnobodyとか)になる。
PHPをCGI(suExec)で動かせばよい
0285280
04/11/06 12:44:31ID:???phpをCGIとして動作させるとモッサリするってのは
よく聞きますが、このモッサリするってのは
「動作が重くなる」に加えて、「負荷が高くなる」も含みますでしょうか?
当初、perlの方が作りやすかったんですが、
phpの方が負荷が低いからいいかなと思ってたんですが。
0286nobodyさん
04/11/06 12:58:34ID:BQGFb7uF>>284
ちょっと書き方が悪かったです。すいません。
今あれやこれやと検討中です。
もちろん自分としては、こんな重いもの共有サーバーでやりたくありません。
そのことについては何度も何度も説明しています。
もしそれでも相手話を飲んでくれないのでしたら、
一回の処理での上限数を決めるなりして、
処理が大きくなりすぎないようにこちらでするつもりです。
少しでもサーバーの処理を低減したいと言うことと、
上限を決めるにも一回の処理で多くこなせるに超したことはないので、
今回質問いたした次第です。
いくらなんでも、サーバーが悲鳴を上げるようなもの作るつもりはありませんので・・・
いろいろとすいませんでした。
0289nobodyさん
04/11/06 14:51:06ID:???どうすればよいのでしょうか?
php.iniのdisplay_errorsを変更すると他のphpにも影響がでるので
Onのままです。
0292nobodyさん
04/11/06 16:37:25ID:RH6kTyyV例えば'a'なら97(0x61)などです。
0294nobodyさん
04/11/06 16:52:00ID:RH6kTyyV0295nobodyさん
04/11/06 16:53:58ID:RH6kTyyV良く解らなかったのでマルチバイトまで対応させたり色々しました。
文字→数字というのは式では出来なかったので
bin2hex($src);
を使いました。
こっちは16進数ですが、16進数が使いたかったので丁度よかったです。
他に方法があるならば教えてください。
お願いします。
0298nobodyさん
04/11/07 00:28:11ID:559ttViCやり取りをしているのでしょうか?
もしくは,それが書いてあるような仕様書とかってありますか?
別にプログラムを作成してstdinからmb_send_mailの送信内容を読むと読めるのですが,To:[email protected]
の1行しか読めなかったり,ヘッダ全部を読めたりと動作がまちまちでよくわからないのですが.
0299272
04/11/07 00:30:25ID:???教え損だわ、ホンマ。
0300nobodyさん
04/11/07 00:42:34ID:???ソース見れば一目瞭然。
仕様に関しては、
mb_send_mail
| (使用しているSMTPサーバのマニュアル参照。メル鯖プログラムに依存)
MTA(phpが話すメル鯖)
| (RFC参照。番号忘れた)
外部MTA
0303nobodyさん
04/11/07 01:08:52ID:???0304nobodyさん
04/11/07 01:38:12ID:???わざわざempty持ってきて何がしたいんだ
しかも条件式1個答えただけでそこまで偉そうにされてもな
0306nobodyさん
04/11/07 02:39:02ID:???マニュアルにも書いてある通りメール送信部分はmail()のラッパ。
mail()は普通にsendmail(もしくは互換のもの)に対してpopenして
パラメータを出力してるだけ。これはSMTPを話してる訳ではないよ
(Win32の場合は異なる。さっき見たらNetWareも違うな)
mail.c読んでごらん。mb_send_mailから追うならmbstring.cも。
0307nobodyさん
04/11/07 03:49:37ID:tqDkdxs20308nobodyさん
04/11/07 05:05:37ID:mIUFi7ZuPHP6で実装されます。お楽しみに・・・
実装されるまでずっと言われるよなコレ
0309nobodyさん
04/11/07 06:50:54ID:???0311292
04/11/07 10:25:36ID:SeAJAIhjあんまり慣れてないので話すと長くなりますが。
Apacheサーバーでphpを動かしています。
phpで直リンクのURLを作成したかったのです。
私はWindowsを使っているので
[Shift_JIS]→[UTF-8]
にする必要がありました。
さらにそれぞれ一文字ずつを16進数で分割して数字の前に%をつける必要もあったのです。
数字(10進数)でなくても良かったので、
むしろこれでよかったと思います。
0312nobodyさん
04/11/07 10:41:56ID:ff0yHRS4前に自作関数がくるんは好きじゃないので
自作関数は別ファイルにしてincludeしてますが、
常に別ファイルを読みに行ってしまうわけですから、
この部分がボトルネックになったりしますか?
0313nobodyさん
04/11/07 11:00:13ID:???取らぬ狸の皮算用
0316nobodyさん
04/11/07 12:38:19ID:???0317292
04/11/07 13:34:02ID:SeAJAIhjurlencode
こんな関数があったんですね。
ありがとうございます。
0318292
04/11/07 13:46:57ID:SeAJAIhjShift_JISならShift_JISで、UTF-8ならUTF-8でそれぞれ変換されました。
もしApacheなどで使うならばこのようにすると良いようです。
$top_jpg = mb_convert_encoding($picture_addr, "UTF-8","Shift_JIS");
$top = urlencode ($top_jpg) . ".jpg";
<img src=\"$top\">
mb_convert_encodingは拡張関数なので
拡張モジュール「php_mbstring.dll」を有効にする必要があります。
ttp://jp2.php.net/manual/ja/install.windows.php
0320nobodyさん
04/11/07 19:31:44ID:???Notice: Undefined index: command in C:〜
と出る。そこを調べてみたら、どうやら$_POST['command']
$_POSTで送られてきてるのが全てNoticeになってるみたい。
PHPのマニュアルを見ても、ググってもイマイチ分かりません。
Noticeを出さないように改善する方法はありませんか?
0321nobodyさん
04/11/07 20:12:02ID:???0323nobodyさん
04/11/07 21:26:50ID:???error_reporting( error_reporting() ^ E_NOTICE );
で表示上はNOTICEは出なくなるが根本的な解決ではない
$_POST を var_dump OR print_r して中身を確かめてみれば?
0324280
04/11/07 21:35:35ID:IUwmjDQr>>282
以外に解決方法はないでしょうか?
0325nobodyさん
04/11/07 22:06:51ID:???0328nobodyさん
04/11/07 22:27:07ID:ZgNgeUkwttp://www.spencernetwork.org/jcode/
こっちの方が便利、対応しているサーバ、対応していないサーバ、基本的に
関係ないので、どでしょうか?
0329nobodyさん
04/11/07 22:29:07ID:???include(aaa.php);
------------------
aaa.php
print $hogehoge;
------------------
このスクリプト動かしたとき、
1って表示されますか?それともnullでしょうか?
チェックしたいのですが、現在phpが動作しない状況でして
確認することができません。教えてくだせぇ
0330nobodyさん
04/11/07 22:34:41ID:???1って表示されるはず。
前にfor文の中で$i使ってたときあって、文の始めにinclude_onceで読み込んだ先のファイル内でも$i使ってたりして
ハマったことあるなぁ・・・。
まさかスコープが同じとは思わなかったよ。
0332nobodyさん
04/11/07 22:37:38ID:???例1."abc" は "abc"と""(又はNULL)
例2."abc*" は "abc"と"*"
例3."abc*def" は "abc"と"*def"
explodeだと、"abc"と"def"になってしまいます。
また、例1と例2の区別が出来ません。
どうするのが一番スマートでしょうか?
$str = "abc*";
$ret = explode('*', $str, 2);
if (count($ret) == 2) $ret[2] or $ret[2] = '*';
else $ret[2] = NULL;
訂正です。添字ミス。$strを元に$retに結果が返ります。
$str = "abc*";
$ret = explode('*', $str, 2);
if (count($ret) == 2) $ret[1] or $ret[1] = '*';
else $ret[1] = NULL;
0336nobodyさん
04/11/07 23:46:22ID:???多分、これでいいと思う。
$str1 = 'abc*';
$str2 = 'abc*def';
$str3 = 'abc*def*ghi';
print_r(preg_split('/(?=\*)/', $str1));
print_r(preg_split('/(?=\*)/', $str2));
print_r(preg_split('/(?=\*)/', $str3));
0337336
04/11/07 23:54:55ID:???問題を少し読み間違えていたような気がするのでもう一度。
必ず 2 つに分割するのかどうかが問題を見ただけでは分からないけど。
$str0 = 'abc';
$str1 = 'abc*';
$str2 = 'abc*def';
$str3 = 'abc*def*ghi';
print_r(preg_split('/(?=\*)|$/', $str0, 2));
print_r(preg_split('/(?=\*)|$/', $str1, 2));
print_r(preg_split('/(?=\*)|$/', $str2, 2));
print_r(preg_split('/(?=\*)|$/', $str3, 2));
0338nobodyさん
04/11/07 23:56:14ID:???透過GIFの場合を考え、ImageColorTransparent を使用するつもりです。
新しく定義した背景色を指定する方法 ( ImageColorAllocate ) は見つかりましたが、
アップロードされた透過GIFに元々定義されている透過色を判断出来る方法はあるのでしょうか?
0339nobodyさん
04/11/07 23:59:47ID:???とりあえず、$_POSTを、$_REQUESTに変える。
そもそも、commandをPOSTで送ってない。ってんなら。
array_key_exists()をかます。
0340nobodyさん
04/11/08 00:21:09ID:???ありがと。>336の方がいいみたい。
マンモス本P.322を見ているのだが、
なんで>336の書き方で、区切り文字の
"*"が配列に残っているのか、不思議。
0341320
04/11/08 01:10:50ID:???ありがと。あと、dumpで表示してみたら、NULLでした。
緊急措置としてif (array_key_exists("command", $_POST)){
かましてみました。上手く行きました。THX
0342320
04/11/08 01:20:50ID:???<input name=command type=hidden value="hogehoge">
で得てるみたい。
0344nobodyさん
04/11/08 03:10:22ID:???0345nobodyさん
04/11/08 03:17:17ID:???0346nobodyさん
04/11/08 04:01:12ID:???0347320
04/11/08 04:15:58ID:???issetつかえねー(´・ω・`)
$_POSTの初期化ってどうするの?ヽ(`Д´)ノ
0349nobodyさん
04/11/08 08:14:32ID:???switch(isset($_POST['command']) ? $_POST['command'] : FALSE)
0350軟式PHP
04/11/08 09:06:18ID:???0352軟式PHP
04/11/08 09:16:16ID:???0354nobodyさん
04/11/08 11:10:56ID:pYeS35cGPHPを使ってアップロードしたときに
ファイルサイズが制限を越えるファイルをアップすると
サーバ側でファイルサイズや名前が取得できないだけでなく
他の項目(<input type="text" など)のデータ
も設定されなくなるのですが
こういうものなのでしょうか?
0355nobodyさん
04/11/08 11:38:30ID:???それじゃあ制限の必要ないじゃん。
無理かどうか確認しないと。
0356nobodyさん
04/11/08 11:58:24ID:vBQdFfe4格安商材なので頻繁な銀行振り込み確認が非常にコストとなっています。
自動確認スクリプトみたいなのが作れたらいいなと思うのですが、
可能でしょうか?銀行から如何に振込み名義を取得するかが
ネックですが。
0357nobodyさん
04/11/08 12:10:55ID:???サーバのphp.iniの設定をhtaccessで変更できると
聞いたのですがやり方がよく分かりません。
ググってみても参考サイトが探せなくて。。
何か参考になるサイトをご存じないでしょうか?
0361nobodyさん
04/11/08 13:05:29ID:???http://jp2.php.net/manual/ja/configuration.changes.php
http://lolipoking.lolipop.jp/php/patio.cgi?mode=past&no=175
0362nobodyさん
04/11/08 15:47:12ID:e4TPxf3Iなんで__constructに変わったんだろ?
__destructに合わせたかっただけ?
0363nobodyさん
04/11/08 15:58:09ID:???0364nobodyさん
04/11/08 15:58:33ID:???【PHP】くだらねぇ質問はここに書き込みやがれ
http://pc5.2ch.net/test/read.cgi/php/1099322141/
0365nobodyさん
04/11/08 17:21:39ID:???今、http://m@ki.私のドメイン.comというアドレスにしたくて、
ki.私のドメイン.comを設定して、それはちゃんと表示されるのですが、
http://m@ki.私のドメイン.comとすると、print_rで$_SERVERを表示させても
そのmが入れられているかいないかの区別が付きません。どのようにPHPで記述すれば
その値が取得出来るのでしょうか?教えて下さい。m(_ _)m
0366365
04/11/08 17:27:59ID:???if ($_SERVER['PHP_AUTH_USER'] == '' ) {
header('WWW-Authenticate: Basic realm="My Realm"');
header("HTTP/1.0 401 Unauthorized");
echo "ユーザーがキャンセルボタンを押した時に送信されるテキスト\n";
exit;
}
else {
echo "<p>こんにちは、{$_SERVER['PHP_AUTH_USER']} さん。</p>";
echo "<p>あなたは、{$_SERVER['PHP_AUTH_PW']} をパスワードとして入力しました。</p>";
}
は出さずに行いたいです。
0370nobodyさん
04/11/08 17:58:06ID:???0372nobodyさん
04/11/08 19:57:36ID:???http://user:[email protected]と出来るのを知っていて、
その@だけ使って面白い事が出来ないのかと思ったのですがダメなんでしょうか?
ブラウザからGET Request出した時点で削除されるんですか?!
0373nobodyさん
04/11/08 20:02:38ID:???0374nobodyさん
04/11/08 20:09:54ID:???>http://user:[email protected]と出来る
これ送出してるクライアントが持ってる機能だから。
で、使おうとしてるクライアントでは出来るの?
0376nobodyさん
04/11/08 20:39:42ID:???0377nobodyさん
04/11/08 20:49:14ID:???0378nobodyさん
04/11/08 20:54:15ID:???どのブラウザでも(携帯も含む)。と思っているので流石に無理そうですね・・・。
現在、MacのIE5でチェックしています。
0379nobodyさん
04/11/08 20:59:19ID:???0380nobodyさん
04/11/08 21:01:10ID:???httpに流用しただけで規格外
RFCに載ってなかったっけ?
0381nobodyさん
04/11/08 21:06:53ID:???0382nobodyさん
04/11/08 21:08:13ID:???それが HTTP プロトコルの場合は BASIC 認証に置き換えている。
FTP の場合は USER, PASS でログインが実行される。
URI はあくまでリソースの位置を示す情報だからそれが常にそのままサーバに渡される訳ではない、ということ
0383nobodyさん
04/11/08 21:13:56ID:???コードが表示されてしまい、正しく表示されません。
.cgi単体では正しく動作しています。
どうすればいいでしょうか?宜しくお願いします。
0384nobodyさん
04/11/08 21:17:31ID:vBQdFfe40386sage
04/11/08 21:34:35ID:lTLj8kGrいや・・・さすがにそこまでは・・・
ちゃんとHTTPでリクエストしていますよ。
同じサーバ内でリクエストしてもダメなんでしょうか?
execするとうまく動作してるのですが。
宜しくお願いします。
0389nobodyさん
04/11/08 21:59:03ID:???なんで、って…単純にファイル読み込んでるだけになるからCGIが処理されるわけ無い
CGIファイルをブラウザにD&Dしても処理結果表示されないでしょ?
>>388
>>329の通りなら表示されるはずだが…
0390nobodyさん
04/11/08 22:01:55ID:???これ変じゃね?
0391386
04/11/08 22:05:38ID:lTLj8kGr私にもレスくださいよ・・・
0392329
04/11/08 22:21:58ID:???でもこれ、include "***.cgi";
じゃ効果ないっすね。当たり前かな?
上手くPHPからperlに引数渡せる方法見っけたと思ったら
だめぽでしたな。うわーん
0394nobodyさん
04/11/08 22:30:30ID:???どうしたらいいんでしょうか?
0397nobodyさん
04/11/08 22:55:10ID:???<?php
/* この例は www.example.com が.phpはPHPスクリプトとして扱い、.txtは通常の *
* ファイルとして扱うように設定されていると仮定しています。また、ここでの *
* '動作します'という言葉の意味は、変数$fooと$barが読み込まれる側のファイ *
* ルで使用可能である、ということです。 */
// 動作しません: www.example.com では file.txt はPHPコードとして解釈されません。
include 'http://www.example.com/file.txt?foo=1&bar=2';
// 動作しません: 'file.php?foo=1&bar=2' という名前のファイルをローカルファイル
// システム上から探し出そうとします。
include 'file.php?foo=1&bar=2';
// 動作します。
include 'http://www.example.com/file.php?foo=1&bar=2';
$foo = 1;
$bar = 2;
include 'file.txt'; // Works.
include 'file.php'; // Works.
?>
0398329
04/11/08 23:09:43ID:???ありがとうございます。
.cgi(perl)にもこの方法で変数を渡すことができました。
実は渡したい変数というのがID/パスワードになるんですが、
セキュリティ的にどうだと思いますか?
includeしてるからブラウザのアドレス欄に残ることはなさそうですが・・・。
0399nobodyさん
04/11/08 23:19:57ID:???セキュリティ的にはむしろ危険な方法だよ
仕組みを考えれば分かる
PHPからperlに変数送るのってどうやってやるんだっけ?
0401nobodyさん
04/11/09 01:06:28ID:???ユーザー名とパス入力がでました。どうすればいいでしょうか?
0404nobodyさん
04/11/09 02:09:52ID:???1時間ぐぐりまわったが、chopとかしか見つからなかったです
0405nobodyさん
04/11/09 02:20:15ID:???0406nobodyさん
04/11/09 02:23:07ID:???str_replace("あ","",$str);
0408nobodyさん
04/11/09 08:45:17ID:???> ちなみに、PHP-4.3.Xでは同じ方法でインストールできたと思います。
これ本当?
readme.txt にはそんなこと書いていないようですが。
ところで、PDFlib-lite-6.0.0p1.tar.gzは普通に configure と make しても
libpdf_php.so が作成されないんだけど、どうやるのですかね?
それらしいオプションもなさそうですが。
0409nobodyさん
04/11/09 09:48:43ID:???PDFlib-lite-6.0.0p1 をインストールした後、
http://pecl.php.net/package/pdflib
から pdflib-2.0.2.tgz をダウンロードしてきて、
$ phpize
$ ./configure
$ make
$ make install
して、インストールに成功したら、dl("pdf.so") で呼び出すか、php.ini に
PHP 起動時に読み込まれるように設定する。
もしかすると、こんな手間を掛けなくても、
$ pear install pdflib
だけでも自動的にインストールされるかもしれない。
0410nobodyさん
04/11/09 10:17:19ID:???SJISの時にソや表や十が文字化けしてしまいます。
str_replace("\\", '¥', 'ソラソラ表十け\けけ');
mb関数なら大丈夫かと思い↓なんてやってみたんですが、
mb_ereg_replace("\\\\", '¥', 'ソラソラ表十け\けけ');
str_replaceと同様の結果になりました。
どうすれば正しく'\'だけを置換できるでしょうか?
0411nobodyさん
04/11/09 10:24:47ID:???ありがとうございます。が、PHP4.3.9でPDFlib-lite-6.0.0p1を使いたいのです。
readme.txtをみると PHP APIのバージョンが合ってないとだめと書いてあるようですね。
./configure --with-pdflib=/usr/local; make;ではmake時にエラーが出ます(Fedora core2)
PHP5に移行するかな‥
0412410
04/11/09 10:27:13ID:???0414nobodyさん
04/11/09 10:28:32ID:???0415410
04/11/09 10:57:43ID:???ありがとうございました。
事前にマニュアルを確認したところマニュアルには以下のように書いてあり
> 文字エンコーディングとしては、内部エンコーディングまたは mb_regex_encoding()で指定した文字エンコーディン グが使用されます。
内部エンコーディングにSJIS指定してたと思ったのですが、
どうやらそうなっていなかったようです。
mb_regex_encoding("SJIS");
を置換の前に指定することにより解決しました。
ありがとうございます。
0416409
04/11/09 11:58:25ID:???エラーが出るのは PHP 4.3.9 のソースからコンパイルした場合かな?
PECL の pdflib-2.0.2 は PHP4 と PDFlib-lite-6.0.0p1 でも対応して
いるみたいなので、PHP 4.3.9 のソースでは pdflib を入れずに
インストールした後、モジュールとして pdflib のインストールを
試してみれば?
一応、試してみたけど、
$ pear install pdflib
でも大丈夫みたい。
0417nobodyさん
04/11/09 13:17:59ID:???> >>411
> エラーが出るのは PHP 4.3.9 のソースからコンパイルした場合かな?
そうです。情報を小出しにして済みません。
既にpdflib-4.0.3が入っていたので、make uninstallして、PDFlib-lite-6.0.0p1をソースから
configure; make; make install;。
最後にPHP4.3.9を--with-pdflib=/usr/localしてmakeしているときにエラーが発生します。
--with-pdflib=noでPHP4.3.9をインストールした後に、pear install pdflibしてみましたが、
今度は
/tmp/tmpAAT0NG/pdflib-2.0.2/pdf.c:7155:19: pdf4.c: No such file or directory
make: *** [pdf.lo] Error 1
`make' failed
で落ちました。
対象のマシンは実験機でいろんなものを入れたり消したりしているので、不具合が
あるのかもしれません。一度OSからきれいに入れ直してみます。
0418nobodyさん
04/11/09 14:08:28ID:???PHP 4.3.9 のソースに含まれているものは PDFlib-lite 6.0.0 には対応していない。
そのエラーが発生した pdflib-2.0.2/pdf.c のソースの該当行を見てみたけど、
どうやら PDFLib 4 がインストールされているものとして認識されているね。
#elif PDFLIB_MAJORVERSION == 4
/* use the old PDFlib wrapper */
# include "pdf4.c"
#else /* PDFLIB_MAJORVERSION < 5 */
# error "PDFlib version does not match PHP-wrapper code"
#endif /* PDFlib >= 5.0.0 */
どこかに PDFLib 4 用のヘッダファイル(/usr/include/pdflib.h あたり?)が
残っていると思うので、削除するとか、pear でインストールするときに、
pdflib がインストールされている場所を聞かれるはずなので、
自動認識にせずに、/usr/local を指定するとかしてみるとうまくいくかもしれない。
0419nobodyさん
04/11/09 17:51:40ID:???お手数をおかけします。
/usr/local/include に pdflib.h があったので削除して、
pear install pdflib-2.0.2.tgz を行いましたが、今度は以下のエラーで
終了しました。
/usr/local/src/pdflib-2.0.2/pdf.c:7081: error: `gdImagePtr' undeclared (first use in this function)
/usr/local/src/pdflib-2.0.2/pdf.c:7081: error: (Each undeclared identifier is reported only once
/usr/local/src/pdflib-2.0.2/pdf.c:7081: error: for each function it appears in.)
/usr/local/src/pdflib-2.0.2/pdf.c:7081: error: syntax error before "im"
/usr/local/src/pdflib-2.0.2/pdf.c:7099: error: `im' undeclared (first use in this function)
/usr/local/src/pdflib-2.0.2/pdf.c:7099: error: syntax error before "zend_fetch_resource"
make: *** [pdf.lo] Error 1
別のマシン(Minacle Linux 2.0+PHP4.3.9 PDFlib非インストール)で
PDFlib-lite-6.0.0p1を configure; make; make install;した後
pear install pdflib-2.0.2.tgz を行いましたが、ここでも以下のエラーで
終了してしまいした。
gcc: unrecognized option `-prefer-pic'
/tmp/tmp6cYe68/pdflib-2.0.2/pdf.c:87: ext/gd/php_gd.h: No such file or directory
/tmp/tmp6cYe68/pdflib-2.0.2/pdf.c:89: ext/gd/libgd/gd.h: No such file or directo
ry
make: *** [pdf.lo] エラー 1
`make' failed
gd関数は使用可能になっていますが、確かに/usr/local/lib/php/ext には
gd/php_gd.h はありません。
なにかいろいろ問題があるようです。
頭を冷やしてもう一度ドキュメント類を見直してみます。
0420nobodyさん
04/11/09 18:04:30ID:i/oj7Egh過去ログ読んでいると「内部エンコーディング」って言葉が
よく出てくるんですが、いったい何なのでしょうか?
0422nobodyさん
04/11/09 18:19:20ID:???ttp://php.planetmirror.com/manual/ja/ref.mbstring.php
0424nobodyさん
04/11/09 19:51:04ID:???GD をインストールしているのが原因でエラーになるのか・・・。
GD のヘッダファイルを PHP のソースからコピーしたら解決できそう。
$ mkdir /usr/local/include/php/ext/gd
$ cd php-4.3.9/ext/gd
$ cp php_gd.h /usr/local/include/php/ext/gd/
$ cp -r libgd /usr/local/include/php/ext/gd/
$ pear install pdflib
>>423 が言っているように、手動で pdflib-2.0.2.tgz を展開して、
PHP-4.3.9 のソースの ext をシンボリックリンクしてコンパイルする
という方法もある。
PHP 側で GD をインストールするときはヘッダファイルのインストール
してくれると楽なんだけど。
0425nobodyさん
04/11/09 19:57:29ID:???0426nobodyさん
04/11/09 20:20:51ID:???$tmp =~ tr{123}{ABC}
123をABCに置き換えるんじゃなく、
1 -> A
2 -> B
3 -> C
のように文字単位で置き換えられる処理です。
10203 -> A0B0C
0427nobodyさん
04/11/09 20:28:29ID:???配列で指定する
0430426
04/11/09 20:45:21ID:???>>428さん
strtr関数に気付きませんでした。もっと良くマニュアル読みます。
>>429さん
複雑な条件はなく、ただ単純に例みたいに置き換えるだけだから>>428さんので
大丈夫でした。
>>427さん
こんな感じで書いてみたんですけどうまくいきませんでしたorz
echo preg_replace( "/[123]/", "[ABC]", "10203" );
[ABC]0[ABC]0[ABC] になってしまいました。
0431426
04/11/09 21:07:18ID:???できました。
<?php
$str = "10203";
$search = array("1", "2", "3");
$replace = array("A", "B", "C");
echo str_replace( $search, $replace, $str );
?>
0432429
04/11/09 21:07:44ID:???0434nobodyさん
04/11/09 21:53:17ID:bn3NZRnm継承するかどうかは分からないから、
とりあえずprotectedにしておけば問題ないですか?
逆にprivateにしておけばいいプロパティーって
どういうものがあるのでしょうか?
0436nobodyさん
04/11/09 22:06:54ID:???ランダムにリンクを貼ったテキストを表示させようと思い、
これを別ファイルに記述し、
表示させたいページにrequireで呼び出しています。
<?php $com = array(
'<a href="http://">テキスト1</a>',
'<a href="http://">テキスト2</a>',
'<a href="http://">テキスト3</a>',
'<a href="http://">テキスト4</a>',
'<a href="http://">テキスト5</a>',
'<a href="http://">テキスト6</a>',
'<a href="http://">テキスト7</a>',
'<a href="http://">テキスト8</a>',
'<a href="http://">テキスト9</a>',
'<a href="http://">テキスト10</a>',
);
srand( (double)microtime()*1000000 );
print $com[rand(0,count($com) - 1)];
?>
同じページに二つ呼び出すと
どちらも同じテキストがランダムに出てしまいます。たとえば
テキスト1
テキスト1
再度読み込んで表示させてみても
テキスト2
テキスト2
となってしまいます。完全ランダム表示にするのは
どうすればいいでしょうか?
0438nobodyさん
04/11/09 22:20:10ID:???srandだけrequireする側でやれ
1.436のソースからsrand部分を↓の場所に移動さす
2.残りをrand.phpとする
<?php
srand((double)microtime()*1000000);
require 'rand.php';
require 'rand.php';
?>
0439nobodyさん
04/11/09 22:33:26ID:???早速質問です。
$file = "ccc.cgi";
if(get_magic_quotes_gpc()){
$ranking = stripslashes($_GET[aaa']);
$homename = stripslashes($_GET['bbb']);
}
$aaa = htmlspecialchars("$aaa");
$bbb = htmlspecialchars("$bbb");
$ok="http://";
if($ranking = $ok):
$fp = fopen($file, "w");
fwrite($fp, "<a href=\"$aaa\" title=\"$bbb\">$bbb</a>");
fclose($fp);
endif
?>
上のものは、http://〜〜〜?aaa=http://&bbb=ここに日本語
というふうにして、GETを使って、データを受け渡ししたいのですが、
ファイルにも上手く書きこめるのですが、bbb= で指定した値が日本語の場合、
文字化けして「ccc.cgi」に書きこまれてしまいます。
どこが間違っているのでしょうか?
ご指摘お願いします。
0440nobodyさん
04/11/09 22:52:24ID:???ユーザがパスワードを忘れた場合、DB上のデータは暗号化されています。
どうやってパスワードをゲットするのでしょうか。
0441nobodyさん
04/11/09 22:58:15ID:???MD5ハッシュがどういうものか理解してれば、
>どうやってパスワードをゲットするのでしょうか
なんて思わない。運用上で新規のパスワードを管理者が登録して、
あとでユーザの好きなように再設定させる。
0442nobodyさん
04/11/09 23:15:35ID:???>なんて思わない。運用上で新規のパスワードを管理者が登録して、
>あとでユーザの好きなように再設定させる。
ユーザが再設定したPASSは管理者は関与しないんですか?
ユーザが設定したPASSをユーザが忘れた場合はどうするんでしょうか。
0443nobodyさん
04/11/09 23:18:54ID:???0444411=417=419
04/11/10 00:00:20ID:???できました。やっと…。
結局 PHP4.3.9 のソースのext/gd ディレクトリの中身を /usr/local/include/php/ext/gd
へコピーしてビルドする方法で上手くいきました。
しかし、pear install pdflibだけで上手くいく環境ってなんでしょうか?
参考までに教えていただけませんか。
>>425
pdf_fit_textlineという関数が非常に便利なのですよ。
0445nobodyさん
04/11/10 01:09:12ID:???>>441を繰り返す。
つか、生パスワードがどうしても必要だと思えるなら、照合用のハッシュ以外に
管理用として、セキュリティレベルの高いところに生パスワード保存しといたら?
「どうしても必要だと思う」運用や根拠を熟考すべきだと思うが。
0446nobodyさん
04/11/10 01:21:47ID:???ttp://neta.ywcafe.net/000122.html パスワードの危機(その1) − きっかけ
http://neta.ywcafe.net/000123.html パスワードの危機(その2) − あるべき姿
0447nobodyさん
04/11/10 02:58:37ID:???と出てしまうのですが、
http://members.lycos.co.uk/dachshund/modules/newbb/viewtopic.php?post_id=84&topic_id=84&forum=6
とzlib.output_handlerの説明を見比べてたんですが、いまいちよく分かりません。
ob_gzhandlerがmb_output_handlerの後に使えなかった、これはどう対処すればいいんでしょうか?
php.iniの設定は以下のようになってます。(EUCスクリプトをEUC出力してます)
output_buffering = Off
output_handler = mb_output_handler
output_handlerだけコメントアウトして
zlib.output_compression = On
zlib.output_handler = mb_output_handler
を加えたんですが、ちっとも変わりません。どなたかアドバイスいただけると助かります。
0450nobodyさん
04/11/10 03:50:52ID:???0451429
04/11/10 04:45:07ID:???律儀やね
>>436
srand()の意味が分かってないのでマニュアルを読んだ方が良い。
あと、今回のようなケースではshuffle()使った方が楽。
ランダムで吐き出す数が決まってるなら、array_rand()でも良い。
>>439
urlencode()
>>440
暗号化には2種類あって、複合化できるものとそうでないものがある。
md5()は後者。
そもそも、複合化できるなら暗号化する意味がない。
0452429
04/11/10 04:46:27ID:???最新レス取得せずに書き込みしてしまいたくさんカブってしまった。
0453nobodyさん
04/11/10 05:17:03ID:???○復号
0454nobodyさん
04/11/10 07:42:04ID:???0455416
04/11/10 08:36:32ID:???PHP のソースに含まれている GD を組み込んでいない場合は GD のヘッダは
要求されないので pear install pdflib で成功する。
または、
http://www.boutell.com/gd/
の GD をインストールしている場合はそちらの方のヘッダを使用できるよう
なので、pear コマンドでも成功すると思う。
0456軟式PHP
04/11/10 09:02:14ID:???頭悪そう・・・・
0459444
04/11/10 09:54:01ID:???なるほど。JpGraphもよく利用するので gd は迷わず有効にしてました。
l今回は勉強になりました。どうもありがとうございました。
ちなみに pdf_fit_textline 関数はlite版では動かなかった・・・・
ライセンス買えってかorz
0461nobodyさん
04/11/10 10:48:26ID:???0462nobodyさん
04/11/10 14:02:56ID:???0463nobodyさん
04/11/10 14:10:05ID:???0464nobodyさん
04/11/10 16:43:27ID:???HTML>
body>
ココからヤフー
<?
readfile("ttp://www.yahoo.co.jp");
?>
/BODY>
/HTML>
上のように自分ページに他のアドレスのページをくっつけたいのですが
readfile関数を使うと相対URLで書かれていたリンクや画像が自分のURLになってしまうので
404エラーや画像が正しく出ません
絶対URLに直す方法を教えて下さい
あとreadfileで指定したURLがCGIなどで自動的にジャンプするときにはそのジャンプ先のアドレスを読み込み表示するようですが
ジャンプ先のURLの取得方法を教えて下さい
優しいかたおしえてください
0465nobodyさん
04/11/10 16:55:17ID:???0466nobodyさん
04/11/10 16:57:15ID:???> 絶対URLに直す方法を教えて下さい
正規表現で書き換え。この時点でreadfileで済ますのは難しくなるな。
> ジャンプ先のURLの取得方法を教えて下さい
HTTPヘッダのLocation: URL や HTMLヘッダのmeta refresh を使う場合がほとんどだから、
両方を自分で処理すればよい。
難易度がかなりアップしてるなぁ。人のページを取り込むなんてセコいことせずに
リンクだけ貼っておけばええやん<a href="〜">だけで済むぞ。良かったな!
0469nobodyさん
04/11/10 17:33:44ID:???0470nobodyさん
04/11/10 17:51:49ID:???0472464
04/11/10 18:31:53ID:???やさしい人おしえてください
0475nobodyさん
04/11/10 19:35:49ID:???php://input などで読み取ることはできないでしょうか?
0477nobodyさん
04/11/10 21:05:28ID:???ジャンプ先ってリダイレクト先のこと?
ヘッダにリダイレクトがあればそこに飛ばす。
それ系の説明したページは腐るほどあるからググれ。
時々リダイレクト先を相対パスで指す場合があるので、その辺注意。
0478272
04/11/10 21:23:43ID:???出力する方法ならよく記事になってるんですが・・
ちなみにテキストだけでいいんです。
0480nobodyさん
04/11/10 23:38:53ID:???$file = "ccc.cgi";
$aaa = stripslashes($_GET['aaa']);
$bbb = htmlspecialchars(urldecode($_GET['bbb']));
$ok="http://";
if($aaa = $ok):
$fp = fopen($file, "w");
fwrite($fp, "<a href=\"$aaa\" title=\"$bbb\">$bbb</a>");
fclose($fp);
endif
このようにしてみたのですが、上手く出来ません。
どこが間違っているのでしょうか?お願いします。
0481nobodyさん
04/11/10 23:55:25ID:MdRF7bmL再インストールしてみても復活できませんでした。
実際の操作としては php-4.3.9/ で make install を行いました。
どのようにすれば復旧できるでしょうか。
0483nobodyさん
04/11/11 02:12:24ID:???$aaa = $ok の時点で必ず $aaa は "http://" になり if 文は必ず true になり意味が無い
$aaa == $ok だとしても "http://" と比較するだけであり、リンクとなるのが <a href="http://" title="....."> しか有り得ない
なにがやりたいのかよくわからないが とりあえず上記の間違いは直しとけ……
0484481
04/11/11 02:17:33ID:???/usr/local/lib/phpディレクトリを削除して再インストールしたら復活しました。
0485nobodyさん
04/11/11 03:32:26ID:KRI/ACvqとやってもうんともすんとも言ってくれません。
system("dir");
とかは普通に動くのですが。
なにかオマジナイがいるのでしょうか?
0486nobodyさん
04/11/11 03:43:35ID:???なんでエラー処理をしないんですか?
なんで絶対パス・相対パスを考慮しないんですか?
0488nobodyさん
04/11/11 05:59:46ID:5oF+gWxQNULLで固定ですか?
わざわざNULLで初期値設定をしているプログラムをあまり見ないのですが…
0489nobodyさん
04/11/11 07:51:51ID:SAqbK5N3ごめんちん。
いけました。
0490nobodyさん
04/11/11 11:37:55ID:ilzje3xZとかやったあとに、そのURLから帰ってくる、html文を読むには普通のFgetSでいいんでしょうか?
0491nobodyさん
04/11/11 12:00:43ID:???0492nobodyさん
04/11/11 12:09:41ID:???>FgetS
キモイヨ
0493nobodyさん
04/11/11 12:15:19ID:???0494nobodyさん
04/11/11 12:16:22ID:???>FgetS
これって何言語の流儀?
0495nobodyさん
04/11/11 13:17:25ID:nmdKIJIz0496nobodyさん
04/11/11 14:22:58ID:???べつにいいけどさ、fgets()使うならポインタのオープンはfsockopen()でやった方が
タイムアウト処理とか楽だ。
0497490
04/11/11 15:28:36ID:ilzje3xZしました。
FgetSで取ってきたら、ぬるぽでした
>494
オレオレ流
0498nobodyさん
04/11/11 15:37:32ID:???0499nobodyさん
04/11/11 15:42:36ID:ilzje3xZかき方悪くてすまんですね
echo FgetS($fp,512);
しても表示されませんでした。
PHPだとなんていうんだい?
何もとって来れ無かったっていったほうがいいのかね?
厳密な定義のな言葉がわからないんで、気に触ったらすいませんね
0500nobodyさん
04/11/11 15:45:04ID:???Null Pointer Extensionって何?
0501nobodyさん
04/11/11 15:50:03ID:???他の部分でもエラーハンドリングを確実にしているのにも関わらず
fgetsの返り値がfalseでなくて空文字だったのだったら、
何も取れなかったということですね。
0502496
04/11/11 15:50:05ID:???PHPなら流れはこんな感じになるだろう。
$fp = @fsockopen();
socket_set_timeout($fp, 適当に);
fputs($fp, "GETなりPOSTなりお好きなように");
whileループとfgets($fp)組みあわせる等して色々;
fclose($fp);
ソケット使ってHTMLソース取得なんて他の言語も併せれば
資料いくらでもある。ググれ。
0503nobodyさん
04/11/11 15:57:23ID:ilzje3xZ色々ありが�d
ググって来ます
0504nobodyさん
04/11/11 16:03:15ID:???普通に$fp=@fopen($url,"r");
と書いてたけど、fsockopen()がいいんだ。。。
次からそうします。
ところで、3行目のfputsはどこへ書きだしてるの?
0506nobodyさん
04/11/11 16:44:22ID:???fopenとfsockopenはまったく違うものだよ。
fopenではURLを開くけどfsockopenはIPアドレス(又はドメイン)を指定して開く。
fputsは開いたポートからサーバーへデータを送っているって感じ。
前にここでサンプル晒したんだけどなぁ、前スレで、、
どうしても見つからないようであればどうぞ。
あまりいいサンプルではないけど。
ttp://f9.aaa.livedoor.jp/~fcafe/fbox/lib/sock.phps
0509nobodyさん
04/11/11 18:00:40ID:???$contents = file( "http://なんたら" );
if ( $contents===false) {
// タイムアウトかURL not found
}
きちんとやろうとすると508のスクリプトになるのかぁ。ちょと大変。
0510503
04/11/11 18:35:31ID:ilzje3xZありがとう
0511軟式PHP
04/11/11 18:48:54ID:???0512nobodyさん
04/11/11 20:22:03ID:???0513nobodyさん
04/11/11 20:52:52ID:QmAFV0EC0514nobodyさん
04/11/11 21:27:25ID:???0515nobodyさん
04/11/11 21:29:11ID:???メッソド の検索結果 約 592 件
0516nobodyさん
04/11/11 21:31:27ID:???0518nobodyさん
04/11/12 01:47:24ID:3oKIst3jpublicだと開けっぴろげすぎるので
とりあえずprotectedにする
そんなこと考えてるのは俺だけですか?
0519nobodyさん
04/11/12 01:51:32ID:???0520nobodyさん
04/11/12 01:56:43ID:3oKIst3j・将来継承するかも分からない
ゆえにprotected
なんですが…
0521nobodyさん
04/11/12 02:11:52ID:???OOな考え前提じゃなくてコーディングレベルだけで考えるとこうなる
PHPは特にそうだろうが、誰しもが分析・設計からコードに落とすわけじゃないと思われ
0522nobodyさん
04/11/12 02:35:07ID:???カプセル化で破綻しがちだーね。アクセス制限どうするかっていう部分から
考えはじめるのはオブジェクト指向とは相容れない
しかし現実的な問題もあるよ
IDE任せというわけにもいかないのがPHPだし
0523nobodyさん
04/11/12 02:55:22ID:???分析クラスさえ固まってないのにもうコーディングしなきゃいけない、
でもオブジェクトの性格がはっきりしない、ええい面倒だ全部public!
IDEがあてにならないならリファクタリングなんかしなきゃいいんだ!
という選択肢を選ぶのが真の男。
つかこの手のネタはくだスレの方でやったほうがいいんじゃなかろうか。
0524nobodyさん
04/11/12 03:09:50ID:???0525nobodyさん
04/11/12 03:20:31ID:+Yt5Ck4w基本的にdeleteしてinsertするってのが一般的なのでしょうか?
0526nobodyさん
04/11/12 03:27:58ID:???updateすればいいんでね?
0527nobodyさん
04/11/12 03:28:44ID:???. ィ
.._ .......、._ _ /:/l! またまたご冗談を
:~""''.>゙' "~ ,、、''‐'、| _
゙、'、::::::ノ:::::::_,.-=. _〜:、 /_.}'':, いくらなんでもMySQLをバカにしすぎ。
``、/:::::::::__....,._ `゙'Y' _.ェ-、....._ /_゙''i゙ノ、ノ
,.--l‐''"~..-_'.x-='"゙ー 、`'-、 ,:' ノ゙ノブ
" .!-'",/ `'-‐'') /\ `/ でノ-〈
.-''~ >'゙:: ‐'"゙./ ヽ.,' ~ /
//::::: ', / ,:'゙
0528nobodyさん
04/11/12 04:11:57ID:???f`::'ー 、,-、-、_ _,....-- 、_ _,....-=―ヽ―-、-、_ 、ミ川川川彡
,.r'‐'゙´ヽ,r' ヽ \ー、_:::::::::/,´:::::::::::,:::::::,::::::::ヽ::\`ー、 ミ 彡
,〃ィ ,rヽ'-ヽ i 、 、 ヾ,、 `'y',ィ´/::::::::/|::::::ハ_::::::::ト、::::\ \ 三 ギ そ 三
r'/〃// | i! |, \、_`ー!rf.,イ-,ィ/u ノ::::/ |::::`::::|iヽ::::::ヽ ヽ. 三 ャ れ 三
iヾ!l i /,.=ヽ i,ケ ハ,i', Y't=ラ゙,〉'|::::r'|! 彡´ ,!--、 |i!|::|::i::::::', ', 三 グ は 三
{ヾllッ-, 〃ノ'-'、||ii i|i| |-/! /^ヽ ´ ヾ|从ノ::i::::| ||三 で 三
>|゙! 0ヽ ノ' ´ 0 レノWノi |,.、!/ 0 0 ',' レ|,イ::::i,,_ | !三 言 ひ 三
',i ヽ- , _, " |i| | | ´ '´ハ',Y .!三 っ ょ 三
/l ` !| | i `´ r 'ー‐' u (-, ' | !三 て っ 三
/久 U |! i|'´'、u z_,ノ/ .i |三 る と 三
/イ |ヽ '==..‐_、 |!,'|Y´,ヽ ___ ハ_ ,/i | |三 の し 三
|ト|、',::::\ _,.-‐イ//-'´::::!\'ー‐--ニュ / ト_、 _| _!,=,|三 か て 三
〉:ヾ_'、::::`ー‐r< //イ|::::::_、:::`7i\ __,..-‐'´ .| |`゙"::"::|-"三 !? 三
'ー‐'´¨`'ー、/,rケ /,'1ノ人'-‐'`y'/::::, i| ,!, |`iiイ:::::::::| 彡 三
,〃7,‐/ { ´_,-'´ ,,‐!、=,/.〃::::i i|kハ / ,ヾ、::::::|.|! 彡川川川ミ
,ッ'、_〃'f /゙-<´ r〃 〃 /イ::::,!ッ'/ ', / / |ト、:|:リ
rir' 〃,y'、久_,.rヽ/〃 川/iケir'〃/ ,-'水´ / 〃 \
f::}'ー'〃_i| /::::f|::::', .〃 r/if |||ir' f| レ' r'o | .〃-、 〃 "i
,);'ーッ゙-. レ:::::/_|::::::',_,〃=_、!!|| !i/ ||:,ri !o ∨/_)_〃 |
0529nobodyさん
04/11/12 04:29:04ID:???0530nobodyさん
04/11/12 04:32:05ID:???マルチポストしてきてやったぞ。
http://pc5.2ch.net/test/read.cgi/db/1096838301/268
0531nobodyさん
04/11/12 05:48:47ID:j3YLIEmEob_start();とか使えばどこでもセットできるようですが
送信が溜まってると思うと苦いです。
if(phpversion()>="4.1.0"){
extract($_GET);
extract($_POST);
extract($_COOKIE);
extract($_SERVER);
}
の直後が一番良いのでしょうか?
0532nobodyさん
04/11/12 05:49:21ID:???0533nobodyさん
04/11/12 05:51:51ID:???テレビには、終始無抵抗で殴り続けられる平八が映し出されています。
妹と目が合いました。まずパンツを穿いてください。見つかりませんか。
脚に引っ掛けたままなのを忘れるほど動揺しているんですね。
床に投げ出されたコントローラーが、なおも続く振動でヴヴと鳴き蠢いています。
笑ってごまかしたって駄目です。しかし鉄拳3を選んだセンスは評価したい。
いま平八がKOされました。妹の醜態に兄も一発KOです。
0534nobodyさん
04/11/12 05:56:14ID:???0535nobodyさん
04/11/12 05:57:05ID:???妹がデュアルショックを股間にのガイドライン
http://that3.2ch.net/test/read.cgi/gline/1079969619/
0536nobodyさん
04/11/12 08:53:02ID:FC5lH0u1self::method()と
$this->method()
は内部的に全く同じですか?
0537nobodyさん
04/11/12 09:05:02ID:DqN1EkY0一般的な言語では\r\nはそれぞれ0x0D 0x0Aだと思うのですが、PHPではどうなっているのでしょうか?
さまざまなサイトや関数リファレンス書籍等を見たところすべて\r=0x0A \n=0x0Dと記述されておりました。
しかしecho等で出力させたところ\r=0x0D \n=0x0Aとなりました。
実際にはどちらが正しいのでしょうか?
0538nobodyさん
04/11/12 10:03:50ID:???>さまざまなサイトや関数リファレンス書籍等を見たところすべて\r=0x0A \n=0x0Dと記述されておりました。
>すべて\r=0x0A \n=0x0Dと記述されておりました。
そんなはずはありません。
0539nobodyさん
04/11/12 10:13:39ID:2WcufnQuhttp://jp2.php.net/manual/ja/function.trim.php
0540nobodyさん
04/11/12 10:18:59ID:2WcufnQuhttp://jp2.php.net/manual/ja/tokens.php
では合ってる
0541nobodyさん
04/11/12 10:36:31ID:2WcufnQu間違ってるのは日本語だけかな
0542nobodyさん
04/11/12 11:11:39ID:???------------------------------------------------------------------------
class X{
var $n;
function X($n){
$this->n = $n;
}
}
class Y{
var $x;
// 指定されたX型のメンバ変数を持つYオブジェクトを作成する
function Y($x){
$this->x = $x;
}
}
var $x = new X(10);
var $a = new Y($x);
var $b = new Y($x);
$a->x->n = 20;
------------------------------------------------------------------------
これを実行すると、$b->x->n は10のままですよね。それを、
$a->x->n を変更したときに、$b->x->n の中身も
変更されるようにしたいのですが、何かうまい方法はないでしょうか?
0543nobodyさん
04/11/12 11:14:49ID:8aG2jjUM"#"(シャープ)の入ったURLを読み取るにはどうすればよいのでしょうか・・
$_SERVER['QUERY_STRING']や$_SERVER['REQUEST_URI']では
読み取れないんですが・・
よろしくおながいします。
0544nobodyさん
04/11/12 11:19:53ID:???class X {
var $n;
function X($n){
$this->n = $n;
}
}
class Y {
var $x;
// 指定されたX型のメンバ変数を持つYオブジェクトを作成する
function Y($x){
$this->x = & $x;
}
}
$x = new X(10);
$a = new Y(& $x);
$b = new Y(& $x);
$a->x->n = 20;
?>
$x->n も変わるけど。
0546nobodyさん
04/11/12 11:25:07ID:8aG2jjUM回答ありがとう。
かなり衝撃的
0547542
04/11/12 11:30:33ID:???なるほど。
コンストラクタ呼び出しの引数と、コンストラクタ内のメンバ変数の代入式の
両方を参照にするというのは思いつきませんでした。
ありがとうございました。
0548nobodyさん
04/11/12 11:42:49ID:???0549nobodyさん
04/11/12 11:52:36ID:L9eWiqBvinclude() や file() で読み込むHTMLテンプレートの中に $addr などの変数を
書いておいて、自動でパースしてくれることを期待していたのですが、そのまま
$addr と表示されてしまいます。
これはPerlでも同じだったのですが、$bar = preg_replace('/\$addr/', $addr, $bar);
とでもやる以外にスマートな手はないものでしょうか。
0552nobodyさん
04/11/12 15:10:38ID:/lHAFZLN文法等の基本的なところは大体理解したのですが、
それに加えて最低でも押さえておいた方がよいことは
何でしょうか?
(PEAR、Smarty等いろいろありますが...)
0554nobodyさん
04/11/12 15:25:00ID:/lHAFZLN教育機関の講師が使用する、情報閲覧システムのようです。
構成は↓のようなものが想定されます。
Windows + Apache + PHP + DB(Oracle or DB2 or ???)
0555nobodyさん
04/11/12 16:06:27ID:???ttp://www.asahi-net.or.jp/~wv7y-kmr/memo/php_security.html
あとこういうことはくだ質行ってくれ
0557nobodyさん
04/11/12 16:09:34ID:/lHAFZLN失礼しました。
0558nobodyさん
04/11/12 17:42:30ID:???やはりPHPに来たかw
0559nobodyさん
04/11/12 19:09:46ID:???JavaScript との連携で、JavaScript が location.hash を PHP に渡せば出来る。
0560nobodyさん
04/11/12 19:20:32ID:???0562nobodyさん
04/11/12 19:40:11ID:???他にも、JavaScriptで動的に追加した<select>の選択項目を選択された項目とは別に取得するにはどういうPHPのコードを書いたらいいですか?みたいなのもあったりするし。
0563nobodyさん
04/11/12 20:55:00ID:???0564nobodyさん
04/11/12 21:04:28ID:fQRp2mKbWarning: mb_send_mail(): Could not execute mail delivery program
'/usr/sbin/sendmail -t -i ' in
というエラーがでたのですがsendmailが原因かPHPが原因かどちらなのでしょうか?
また、どうすれば直るのでしょうか?
0566nobodyさん
04/11/12 22:01:20ID:???sendmailをpopenできなかった時にそのwarningが出る。
原因つーか負荷を掛けすぎたんでsendmailがゴネてるってことだな。
鯖の管理者に相談するとよい。つーか管理者から苦情くるだろうから
今のうちに言い訳を考えておくとよい。
0568nobodyさん
04/11/13 00:27:39ID:???0570nobodyさん
04/11/13 01:44:24ID:???そして、trustudio を入れました。新規作成で PHP Project を作成できるようになりましたが、
既存のSimple Project を PHP Project に変換する方法が分かりません。
新しく PHP Project を作成してファイルを移動するしか方法はないのでしょうか?
0571nobodyさん
04/11/13 02:04:19ID:Aaqq6gsUみたいに"を気にしなくても使える(エスケープする必要の無い)
記述方法ありますか?
0572nobodyさん
04/11/13 02:47:39ID:???0575nobodyさん
04/11/13 12:08:21ID:Yc7DSHDt¥nつける意味がわからん・・・改行がなんで二つもいるんだ。。
手抜きしすぎの参考書かうとだめだな・・・
0576nobodyさん
04/11/13 12:11:46ID:???0577nobodyさん
04/11/13 12:13:58ID:Yc7DSHDt改行しないぞ、<br>だけなら改行するけど
0580nobodyさん
04/11/13 12:31:52ID:???0582nobodyさん
04/11/13 13:17:11ID:???独学でやってきたけど、ずーーっとecho使ってました。
そもそも使い方が違うのですか?
0583nobodyさん
04/11/13 13:17:57ID:???0584nobodyさん
04/11/13 13:31:11ID:???0585nobodyさん
04/11/13 13:32:38ID:???かなりワロタ
$a = print('A');
$a = echo('A');
前者は普通に動くけど、後者はエラー。
print 'A','B';
echo 'A','B';
後者は普通に動くけど、前者はエラー。
<?='A'?>
echoには省略形もある。
# これはまた別と考えるべきかもしれないけど
違いはこれぐらいだよ。同じと思うべきかと。
0590nobodyさん
04/11/13 16:50:56ID:???0591nobodyさん
04/11/13 17:29:26ID:6u/jhtaTもっと簡単で、やりたい事を直感的にプラグラミングできる言語が
開発されたらいいのになぁ。
0592nobodyさん
04/11/13 17:34:31ID:???簡単だと汎用性に乏しくなるし。。。
0593nobodyさん
04/11/13 17:44:13ID:???俺の悩みはPHPのマニュアル内の検索の仕方がわからない
右上の検索欄は「関数名」しか対応してないみたいだし
0596nobodyさん
04/11/13 18:57:25ID:???Perlで
$str =~ tr/:;<=>?@[\\]^_`/ABCDEFGabcdef/;
と置換するのと同じ事をPHPでやるにはどうしたらよいのでしょうか?
部分的に置換などの方法は分かるのですが、上記のように
:はA
;はB
<はC
というように対応させたいのですが、PHPにそのような関数が見つからずに困っています。
どなたかご存じないでしょうか?
トリップ変換の時に使うところね。strtr関数がそのまま使える。
http://f9.aaa.livedoor.jp/~fcafe/fbox/lib/trip.phps
# 懲りずに自分のソースを晒してみる
0601nobodyさん
04/11/13 20:37:07ID:???スピードで言えばただ単純に出力するなら作りの問題で、若干echoの方が早い。
(作りに問題があるからではない。要するに別名ではなく、別物だから)
あくまでも若干ね。
使い方については>>587
0602nobodyさん
04/11/13 21:20:10ID:???Simple Projectを削除(コンテンツは削除しないで)
New Projectで、PHPプロジェクトを選んで、そのSimple Projectと同じ名前で
プロジェクト作成、ワーニング出るが、それをよく読んで実行。
きっちり検証してないから、どうなってもしらんぞ。
CVSに放り込むなり、バックアップ取るなりしろよ。
0604570
04/11/13 21:56:56ID:???親切にどうもありがとう!
『新規でPHP Project を作って、コンテンツを”コピー”』で、できました。
0605596
04/11/13 22:12:47ID:???ソースまでいただけるとは思いませんでした。
$salt = ereg_replace("[^\.-z]", ".", $salt);
この部分まではなんとか関数調べて出来たんですが
$salt = strtr($salt, ":;<=>?@[\\]^_`", "ABCDEFGabcdef");
この関数まで見つけられませんでした。^^;
とりあえず実装してみて、キャップ機能は自分で移植できそうなのでがんばります。
ほんとにありがとうございました。
0606nobodyさん
04/11/14 00:53:26ID:???PHP4+Apacheの環境です。
私はウェブサイトのトップページをphp(index.php)で作っているのですが、
アクセスする度にMYSQLに接続しDBからデータを
引っ張ってきている為、トップページが少し重くなっています。
それを解消する為にindex.phpを実行した結果をindex.htmlとして
吐き出して、訪問者にはindex.htmlという静的なページを見てもらえれば
サイトが軽くなると考えました。
自分でindex.phpにアクセスして
そのページのソースをコピーしてindex.htmlとして
保存すれば簡単なのですが、これを自動で出来る方法は
ありませんか?
一定時間毎にindex.phpからindex.htmlを吐き出す方法はないものでしょうか。
0607nobodyさん
04/11/14 00:58:11ID:???しかし、それが気になるということは、ものすごいアクセス数なんだろうな。
0608nobodyさん
04/11/14 01:05:38ID:???0610nobodyさん
04/11/14 01:24:59ID:???0611nobodyさん
04/11/14 01:47:19ID:ojuplhFmcronの利用をしたくないか、cronの利用ができない場合は、
Smartyテンプレートを利用することをおすすめします。
Smartyのキャッシュ機能を利用することで、
例えば、キャッシュが有効な間はDBへのアクセスなどをスキップさせる
事ができます。
require_once("Smarty.class.php");
$smarty =& new Smarty();
$smarty->template_dir = "./templates/";
$smarty->compile_dir = "./templates_c/";
$smarty->caching = 2;
$smarty->compile_check = true;
$smarty->cache_lifetime = 60; // キャッシュの有効時間を1分に設定
$template = "index.tpl";
if(!$smarty->is_cached($template)) {
// このへんにDBへのアクセスとか
// $smarty->assign("変数名", "値");を行う
// キャッシュの有効期限が切れるまでは、ここは実行されない
}
// 画面表示
$smarty->displary($template);
※適当に書いたのでこのままでは動かないかもしれないけど、
雰囲気的にはこんな感じ。
0612nobodyさん
04/11/14 01:51:34ID:???0613nobodyさん
04/11/14 02:05:55ID:???【やりたい事】
以下のファイルが存在します。
main.php
sub/sub.php
util/util.php
config/config.php
main.phpとsub.phpはそれぞれ、util.phpを使用します。
util.phpは、config.phpを使用します。
【やってみた事】
main,subそれぞれで、requireを使ってutil.phpを呼びました。(相対パス)
util.phpでconfig.phpを呼びました。(相対パス)
【結果と疑問点】
subは正常に動作しました。
mainは、utilでのconfigの呼び出しに失敗しました。
requireで読み込んだutilが、mainやsubの場所で動いているから
こうなるんだろうという事までは理解したのですが、
この仕組みを意図したとおりに動かすにはどうすれば良いでしょう?
reauireを使うのがそもそも誤りかと思ったのですが、
手元のリファレンスには適切な関数が見当たりません…。
ちなみに当方Java経験者(初心者だけど)で、
requireをimportの乗りで使ってました…(汗)
0614nobodyさん
04/11/14 02:08:10ID:???0615613
04/11/14 02:30:12ID:???0616613
04/11/14 02:46:16ID:???PHPマニュアルより
読み込むファイルはまずカレントのワーキングディレクトリからの
相対パスとしてinclude_path で探され、それから、カレントのスクリプトの
ディレクトリからの相対パスとしてinclude_path で探されます。
…とあるのですが、これなら例に挙げたものも動きそうなんですが…??
もう少し悩んでみます。
0617nobodyさん
04/11/14 03:01:54ID:???0618613
04/11/14 03:13:19ID:vN4rnj6xもちろん試しました。
…下げてた。ごめんなさい。
0619nobodyさん
04/11/14 04:30:54ID:???呼び出し元からのパスでrequireなりinclude。
ていうかさ、呼び出し先でまたrequireとかあったら、メンテナンス性も糞もないと思うけど。
何のためにソース分けてるのか意味分からん。
main.php
require('util/util.php');
require('config/config.php');
sub/sub.php
require('../util/util.php');
require('../config/config.php');
ソースの見易さやメンテナンス性からいっても、requireはソースの先頭でまとめて宣言すれば?
メモリ節約とかでの例外はあるけどね。
あとincludeとrequireの違いは、↓読め
http://jp2.php.net/manual/ja/function.include.php
今回のケースではrequireの方が適切でしょ。
chdir関数でカレントディレクトリを統一してみ。
0622nobodyさん
04/11/14 11:34:10ID:TN0m6TVj正規表現なんですけど、|\\-|\\.の部分がよくわかりません
|はORのことですよね\\は¥を含むってことですか?
0623nobodyさん
04/11/14 11:49:27ID:???\\. → \. → .
0625nobodyさん
04/11/14 12:16:10ID:TN0m6TVj\\て¥のあとの文字を表示するんではないんですか?
PHPはじめてなもんですみません
¥^なら^とかって本にかいてたんで
0627613
04/11/14 13:39:18ID:???いや…メンテナンス性とか解り易さを求めているからソース分けしている訳で。
mainやsubからutil使う時、utilの中身なんて意識したくないでしょ。隠蔽っていうの?
…と思ってたのですが、PHPではそういう考え方はしないみたいですね。
諦めて別の方法を考えます。皆さんありがとうございました。
0628613
04/11/14 13:40:40ID:???お邪魔しました。
0629nobodyさん
04/11/14 13:48:02ID:???C言語でもincludeの元にincludeとか当たり前だし。
階層化してるんだったらそれでいいと思う
0630nobodyさん
04/11/14 14:08:21ID:???0631620
04/11/14 14:13:53ID:???だからよぅ…
あなたみたいな設計ももちろんする場合があるし、
そんな事以前に " require_once() "つうのがあるって言ってるじゃん(涙
0633nobodyさん
04/11/14 14:56:51ID:???他言語と同じ平凡なパス管理なんだけど。
カレントディレクトリを設定してるのはOSね。
よくわからんのなら__file__定数を使って解決つーのが手っ取り早い。
includeんとこにも載ってるが。
あと一般論として野良ライブラリはブラックボックス化するとメンテに
手間かかるよ。
0634nobodyさん
04/11/14 14:59:41ID:???ファイルの依存関係をクライアントプログラムから隠すつーことに限ってね。
0635nobodyさん
04/11/14 15:22:31ID:???纏めるとこういうことか。
[前提条件、つーか仕様]
include,require等は、最初に起動したスクリプトからの
相対パスで指定しなければならない
[実際の利用方法]
ネストしてinclude,requireする場合は
・_FILE_を使って上記の相対パスに変換する。
・chdir()を使う。
・require_onceを使う。
require_onceを言ってる人は、
・それぞれのファイルの中で そのファイルからの相対パスをrequire_onceすりゃいい。
・ネストが1つ上のファイルでもrequire_onceするのを忘れるな。
・その結果、一番最初に起動するスクリプトの指定が有効になりうまく動く。
ってことでいいのかな。
0636nobodyさん
04/11/14 15:54:38ID:???require_onceしとけば十分だろ。ディレクトリ固定なら__autoloadを使う手もあるが、
どのみちディレクトリ構造指向ならimport文と同じことだからネストする意味が
全く無い気もするな。インクルード用のコマンダこさえるのに比べれば何ぼかマシ
かも知れんが。手段はset_include_path使うとか、Cみたいにディレクトリをハード
コーディングしないよう定数作るとか、正規のライブラリを使うとかいろいろあるだろ
うから好きにやればいいんだが、よほど多くのファイルが構造化されていない限り
インターフェイスとなるカレントスクリプトからライブラリを操作するという設計に
変更するべきだろうな。
0638nobodyさん
04/11/14 16:16:44ID:/FGTdaOrhtttpsのものは何か特別なことをしなくてはいけないのでしょうか?
それとも出来ないのでしょうか?
0639nobodyさん
04/11/14 16:17:44ID:???0640nobodyさん
04/11/14 16:19:40ID:???/ || ̄ ̄|| <⌒ヽ )) < >>636 はてさて、
| ||__|| < 丿 | どこを縦に読みゃいいんだ?
| ̄ ̄\三⊂/ ̄ ̄ ̄/ \___________
| | ( ./ /
0641nobodyさん
04/11/14 16:20:21ID:???何が楽しいのかね。
0643nobodyさん
04/11/14 16:21:30ID:???0644nobodyさん
04/11/14 16:22:35ID:Do7sGTWF0646nobodyさん
04/11/14 16:27:52ID:???このスレに憑き物がいるのは事実だと思うが、
普通人が消えた今ここにいるそういう連中は正常
なんじゃなかろうか。何も楽しんでいないんじゃな
かろうか。
0648nobodyさん
04/11/14 16:29:52ID:???pathinfo()って関数名やばくね?やばくね?
0649nobodyさん
04/11/14 16:32:01ID:???まあこのろくろ首でもみてまったりようよ。
http://www.tk3.speed.co.jp/gewa/mi-ke/save0000.jpg
0650nobodyさん
04/11/14 16:35:03ID:???0651nobodyさん
04/11/14 16:37:26ID:???俺に分からないような質問をもってこいよ池沼質問者ども
0652nobodyさん
04/11/14 16:39:21ID:???0653nobodyさん
04/11/14 17:01:12ID:TN0m6TVj$str = "94852-769493"
if(ereg("[0-9\-]",$str2))
この場合だと\\-じゃなくて\-なんだけど
\\-になるときと\-になる違いていうのはなんですか?
参考書しらべまくってるんだけど正規表現あんまり詳しくのってないんです
ご存知のかたいたら教えてください。お願いします。
""で囲む時の\の動作が一定じゃないのよね。
"\\-" == "\-"
"\\n" != "\n"
echoして調べてみるべし。
0655nobodyさん
04/11/14 20:19:07ID:???マニュアルにも載っているのだが、
ttp://jp.php.net/manual/ja/language.types.string.php#language.types.string.syntax.double
>この他の文字をエスケープしようとした場合には、バックスラッシュも出力されます!
\が出力されるのは、-や.がエスケープシーケンスに含まれていないのがその理由
0656nobodyさん
04/11/14 21:28:42ID:???まぁ自作スクリプトのヘタレ具合は別として、TOPページを
index.shtml としてperlでシコシコ書いたものと、
index.php としてphpでシコシコ書いたものでは、どちらが負荷が大きいんでしょう?
全部のページを解析しようとすると、全ページ XXX.php に?
コレって負荷大きすぎないんですか?
ヘタレですけど、がんばりますんで よろしくお願いします。
0657nobodyさん
04/11/14 21:56:42ID:???おかずにより、負荷がかなりことなります。
0658nobodyさん
04/11/14 22:01:51ID:???普通はサーバのログから解析するもんだと思うが。
特に負荷云々を気にするぐらいなら。
サーバでログ出力させた方が遥かに負荷が少ない。
0659nobodyさん
04/11/14 22:15:59ID:???まぁたしかにそうなのかも・・・・ ありがとう。
0662nobodyさん
04/11/14 23:59:40ID:???HTMLのフォームでやたら<hidden>が多くなってしまいました。
なんか、見ためかっちょ悪いです。
0663nobodyさん
04/11/15 00:10:28ID:???0664nobodyさん
04/11/15 00:29:48ID:???そういう場合はしょうがないのでしょうか。
0665nobodyさん
04/11/15 01:11:07ID:Uy1hSbYj以下のように、ディレクトリ名を取得してアンカーを指定したいのですが、
ディレクトリ以外のもの、(ディレクトリの中には、htmlファイル以外を置かないのでhtmlファイル)
をとってきてしまい困っています。
$cd = $_REQUEST['path'];
$cdir = opendir("/myhome$cd/");
while(($dname = readdir($cdir)) !==false){
if(is_dir($dname) && $dname != "." && $dname != ".."){
print "<b><a href=$dname/index.html target=main src $dname/index.html>$dname</a> </b></font>";
}
}
$dnameがディレクトリのときだけアンカーをつけて表示させるように記述しているのに
どうしても、htmlファイルを取ってきてしまいます。どうすれば、ディレクトリ名だけを取るのか
ご存知の方、お知恵をお貸しください、
0666nobodyさん
04/11/15 02:23:42ID:???aタグにsrcなんて属性あったっけ?
つーか、タグが滅茶苦茶だ。開いてないのに閉じてるし。
まあ、どうでもイイコトはおいといて、
$cdの行をコメントアウトして、$cdirに自分のホームディレクトリを指定して他は"そのまま"動かしたけど
ちゃんと、ディレクトリのみリンクが表示されたよ。
変数を一個一個echoして表示させてみたら?
例えば、ifの前後に$dnameをechoしてみるとか。
#環境も書かないでどうしたいのだろうか?
0669nobodyさん
04/11/15 10:03:08ID:???hidden の値がクライアント側で変化するか否かできまるんじゃない?
変化しないなら、サーバ側で、$_SESSIONで代替できるだろうし。
変化するなら、使わざるを得ないと。
0670nobodyさん
04/11/15 18:42:53ID:ObsXoKC2判断することって出来ますか?
0673nobodyさん
04/11/15 19:26:11ID:???MySQLサーバやクライアントのバージョンも、
PHPのバージョンも書いて無いので回答に困る
(バージョンによる差異の大きいところだから)が、
一般的にはSHOW STATUSで取れる
最近では関数も増えて
http://www.php.net/manual/ja/function.mysql-stat.php
http://www.php.net/manual/ja/function.mysql-client-encoding.php
なども使える。
phpmyadminでやってないのは、ひとつの言語でエンコードが複数あるなんて
言語(アジア圏)は余りないからでしょ。
0674673
04/11/15 19:28:05ID:???エンコーディングなんで注意してね。(つまりMySQL4.1以降)
0675673
04/11/15 19:31:47ID:???×:SHOW STATUS
○:SHOW VARIABLES
0676670
04/11/15 19:44:03ID:???ありがとです。
0677nobodyさん
04/11/15 19:44:59ID:HnT7CqLI<input type=hidden name=mode value="weq">
<input type=hidden name=name value=ore>
<input type=hidden name=id value=042>
<input type=image src='http://aaa.com/img/bbb.gif' width=60 height=30'>ddd</form>
↑こんな感じのCGIへ送信するフォームを
例えば30分ごとに繰り返したい場合 、
前後をどんな風にすればいいでしょうか。
0679nobodyさん
04/11/15 19:58:57ID:???違うフォームを30分ごとに生成すんのか?
初心者にも判るように正確に丁寧に質問してください。
0680nobodyさん
04/11/15 21:09:53ID:???MySQLで日本語のソーティングがうまくいかないときは
Binaryモードに変更すればいい。たいていの場合は
解決できると思う。
0684665
04/11/15 22:21:09ID:Uy1hSbYjRedHat9
PHP4です。
>666さん
私も、ホームディレクトリでは動きました。
しかし、その下の「/homedir/hoge」まで記述すると何もとらなくなってしまいます。
ところが、「is_dir」を「!is_dir」にすると、ディレクトリとともにhtmlファイルもとってきてしまいました。
ためしに、hoge.jpgとダミーのファイルを置いたらそれもとってきてしまいました。
まぁ当然といえば当然なのですが、なぜ「!is_dir」でディレクトリまで取得するのがわかりません。
ソースを元に戻して、hoge配下にindex.htmlファイルとDirディレクトリを置いて、
if文の前後にechoを記述したところif文の前に書いたecho文に「...index.htmlDir」
と出てきてしまいました。これは、どういう意味なのでしょうか?
また、どうすれば、「Dir」だけを取り出せるのでしょうか
お知恵をお貸しください。
0685nobodyさん
04/11/15 22:23:45ID:Uy1hSbYjありがとうございます。
>666, 667 html部分はコピペで気づかずそのまま利用してしまいました。
申し訳ないです。<font>もコピーするとき切れてしまいました。・・・orz
0686nobodyさん
04/11/15 22:29:31ID:???ΩΩΩ ナンダッテー!!
0687nobodyさん
04/11/15 22:47:05ID:???まだ解決してなかったのかい。
例えば
$dname = readdir($cdir)
この $dname はパスを含まないファイル名かディレクトリ名。
だからファイル操作する時の引数には $cdir.$dname にしないとだめだ。
>なぜ「!is_dir」でディレクトリまで取得するのがわかりません。
存在しないファイル名を is_dir で判定してたら全部 false になって当然。
0688nobodyさん
04/11/15 23:59:08ID:7AtpKkGf以下のような感じで書きました。
function test(){
$num = func_num_args();
if ($num > 0){
$a = func_get_arg();
}
if ($num > 1){
$b = func_get_arg();
}
if ($num > 2){
$c = func_get_arg();
}
}
ifの羅列がいまいちやぼったい気がします。
もっとエクセレントな書き方はないものでしょうか?
0689nobodyさん
04/11/16 00:05:42ID:2ZViTd8dありがとうございます。
パスをつけて実行したらうまくいきました。
パスが必要だったとは・・・orz
感謝感謝です。
これで動かないことはない、って感じ。
指定されてないものにはNULLが入ります。
function test() {
list($a, $b, $c) = func_get_args();
}
0691nobodyさん
04/11/16 00:58:36ID:???$a,$b,$c…ってのに納めようとするから野暮ったくなってるんでは?
なんかに格納したいんなら、素直に、配列に落とし込めば良いと思う。
あるいは、最大で3つしか引数を取らないって言うなら、3引数の関数作って
デフォルトを与えた方が良いと思う。
0692nobodyさん
04/11/16 01:48:09ID:L8Qhj36n同じ制御構造で代入以外の操作をしたいなら
switch(func_num_args()){
case 1:
/* 引数1つ以上のときの操作 */
case 2:
/* 引数2つ以上のときの操作 */
・・・
case n:
/* 引数nのときの操作 */
break;
default:
/* その他 */
}
まぁ、>688の場合は>>690
0693nobodyさん
04/11/16 02:42:05ID:???なるほど!勉強になります。
690さんの方法で行こうと思います。ちょうどNULLが入って欲しかったので!
ありがとうございました。
0695nobodyさん
04/11/16 10:31:57ID:kHelo3UAこんなときの対処法を教えていただきたいのですが。
環境は Linux+PHP4+Smarty+Apache+MySQL4.0です。
文字列検索をクエリーで行い、結果のリストを表示します。
リストはページングします。
select * from tablename where search_text like '%入力値%' limit x, y;
みたいな検索をするのですが、
対象データが10万件とかを超えるような場合、
結果表示が遅いことが想像できると思います。
なにも考えずに作ると、
ページを移動する毎に(limit指定のみ変わった)
重いクエリーを実行する必要があるため、
パフォーマンスの問題があります。
最初の一回のクエリーは重くてもいいとして、
ページングを軽くする方法はないでしょうか?
0696nobodyさん
04/11/16 11:12:45ID:t4iPftE+PHP4.3.4
ですが、
セッンションを登録すると
内容が、すべて、Nになっているのですが、
何かヒントございませんでしょうか
よろしくお願いします
$s_start_time = strftime("",time()); ←ココでは、$s_start_timeに現在時刻(文字列)がきちんと入っている
session_start(); の後、
session_register("start_time");
として、trueが帰ってくる
結果をみるために、プリントすると
print "[".trim($start_time)."]"; ←こちらは、現在日付時刻が入っている
print "[".trim($_SESSION["start_time"])."]";
←コチラは、空文字になっている
0697nobodyさん
04/11/16 11:14:46ID:t4iPftE+レス送信失敗…
修正
$s_start_time = strftime("",time()); ←ココでは、$s_start_timeに現在時刻(文字列)がきちんと入っている
↓
$s_start_time = strftime("%Y-%m-%d %H:%M:%S",time()); ←ココでは、$s_start_timeに現在時刻(文字列)がきちんと入っている
です
0699nobodyさん
04/11/16 12:38:46ID:t4iPftE+セッションオートスタートがオンになってると、
セッション変数不可
って項目ですよね
オフに、なっているんですが…
0701nobodyさん
04/11/16 13:17:15ID:t4iPftE+え、その関数は不可ですんか…
アリガトンゴザイマスタ
0702nobodyさん
04/11/16 13:21:00ID:t4iPftE+セッションファイルにもきちんと値が入りマスタ
アリガトンゴザイマスタ
0703nobodyさん
04/11/16 13:25:08ID:???0704yoro
04/11/16 14:44:19ID:???「Parse error: parse error, unexpected $ in /test.php on line 3」
となります。
<?php
$val = 1;
print <<<END
\$val= $val
END;
?>
環境はローカルにインストールしたPHP4.3.9(DSO版)ですが、同じスクリプトをレンタルサーバー(PHP4.3.3 CGI版)に入れて実行するとなんの問題もありません。
ヒアドキュメント内の変数の展開を無効にするような設定ってありますか?
php.iniとかhttpd.confをあさったのですが、原因となりそうな設定項目はないように見えました。
ちなみに、ヒアドキュメントを使わずに
<?php
$val = 1;
print "\$val= $val";
?>
とした場合はエラーは出ませんので、ヒアドキュメント以外では変数の展開ができている模様です。
ヒアドキュメントを使えないとツラいので何とかしたいのですが、どなたか原因がわかる方がいらっしゃったら教えてください。
よろしくお願いします。
0705nobodyさん
04/11/16 15:03:40ID:???0706nobodyさん
04/11/16 15:22:12ID:kHelo3UA余計なインデントとかスペースとか入ってんじゃね?
ENDの後とか
ひとまず、マニュアルのソースコピーして貼り付け。
実行してみること。
http://www.php.net/manual/ja/language.types.string.php#language.types.string.syntax.heredoc
0707nobodyさん
04/11/16 15:49:12ID:wLOJos/kたとえば、helloを返す関数、hello()があったとして、
$msg=hello();
な感じです。色々試してみましたが取れないです。hello()ではただ
echo "hello"; としてるだけです。
達人のみなさま、なにとぞ宜しくお願い致しまする。
0709707
04/11/16 15:58:17ID:???ありがとうございました。
echoでなく、returnにしたらおかげ様で出来ました。
マニュアル読んだつもりになってましたが、全然読めてなかったんです
ね。反省いたします。
0710yoro
04/11/16 16:21:53ID:iDIPDCBPご返答ありがとうございます。
指示されたようにマニュアルのコピー&ペーストをして再度試しましたが、やはり同じ結果でした。
先にも書きましたが、同じファイルが別のサーバーではきちんと実行できることを考えると単純なスクリプトの間違いではないように思います。
なにか他の可能性が考えられれば、ご示唆いただければうれしいです。よろしくお願いします。
ローカルにインストールしたPHP4.3.9はPHPの本家からリンクされているバイナリーパッケージ(Mac OSX版)を使ったので問題はなかろうと思っていますが、PHPをきちんとソースからコンパイルして入れ直した方がいいのかも知れません。
0711nobodyさん
04/11/16 16:59:43ID:???Mac OS X 10.3.6 & PHP 4.3.9(自前コンパイル)
END;の前にインデント入ったりはしてないよね?
0712yoro
04/11/16 17:00:05ID:iDIPDCBP改行コードの問題だと判明しました。
Mac上で実行する場合、改行コードがCR(Mac)だとエラーになるようです。
LF (Unix)またはCR+LF(DOS)にすれば大丈夫なようです。
リモートでは問題がなかったのは、Linuxサーバーだったからだと思います。
ヒントをいただいてありがとうございました。
0715yoro
04/11/16 17:09:03ID:iDIPDCBPありがとうございました。
DreamWeaverで書いたコードの改行コードがCR(Mac)になってたのが原因だったのですが、DreamWeaverの環境設定にCode Formatというタブがあり、そこで改行コードをLF(Unix)に設定するオプションがありました。
今後は安心して書けると思います。お騒がせしました。
0716nobodyさん
04/11/16 17:09:35ID:wLOJos/k先程から初心者な質問ですいません。
0717nobodyさん
04/11/16 17:25:02ID:???特定する必要があるのか、ただ取り出せばいいのか
マニュアルの配列の項目
http://jp2.php.net/manual/ja/ref.array.php
の下のほうをじーーーと見れば、何を使えばいいのか分かる
直接関数がないなら、ひっくり返して前から取ればよくない?
0718nobodyさん
04/11/16 17:37:53ID:???配列の要素数を返す関数 count() を調べろ。
それで最後の配列要素を取り出すことは出来る。
もしくは>>717のようにreverseさせて先頭要素[0]を取り出す手もある。
てかこのくらいGoogleかなんかでPHP講座とか探して勉強しろ。
0719nobodyさん
04/11/16 17:43:46ID:???>>718
連想配列使って、
$temp_val = $val["インデックス"]
ってな具合に、取り出すのは、2度出間すかね?
0720nobodyさん
04/11/16 17:46:59ID:???0721nobodyさん
04/11/16 19:36:37ID:???0722716
04/11/16 20:02:01ID:???おっしゃるようにカウンタ使っていたんですが、もっとスマートな
方法がないものか模索しておりましたが、array_pop()を使うことに
致しました。下記に作った自身のログファイル名を定義するスクリプトです。
もっと短くしたいんですが、これ以上無理でしょうか・・・
$res=split("/",$_SERVER['SCRIPT_NAME']);
$res=split("\.",array_pop($res));
$logfile="$res[0].log";
$logdir="./log";
$log="$logdir/$logfile";
0723nobodyさん
04/11/16 20:21:22ID:???0724nobodyさん
04/11/16 20:30:06ID:???正規表現、勉強しような
0725nobodyさん
04/11/16 20:48:36ID:???$filename = basename($_SERVER['SCRIPT_NAME'], ".php");
$filename.= ".log";
$log = "./log/{$filename}";
って書く
0726nobodyさん
04/11/16 22:32:23ID:???$log = "./log/{$filename}.log";
でもいいわけだ。
0727nobodyさん
04/11/16 23:22:24ID:s1qPu0YC0728727
04/11/16 23:26:42ID:s1qPu0YC今日の日付 date() から1ヶ月先の日付を取得する方法を教えてくだせぇ。
お願いします。
unixタイムスタンプから1ヶ月分足す方法になると思うのですが、
1か月分のunixタイムスタンプがわからないっす
0729727
04/11/16 23:29:08ID:???スマソ。
727だけ教えてくださいませ
0730nobodyさん
04/11/16 23:32:02ID:???速い方法はほかにあるけどphpだからこその簡単な方法は
strtotime('+1 Month')
0732nobodyさん
04/11/16 23:37:31ID:tAnxVLV8.....<? echo $test1 ?>
フォームのPHPの埋め込みなんですけど、いきなり?
からはじまってます。。<?php echo >て言う感じにphpはいれなくていいんですか?
いれるときといれないときの違いっていうのはどういうことなんでしょうか?
ほんとに初心者からはじめれる本っていうのなんですけど、まったくこういうことに
ふれてないです><おしえてもらえればありがたいです
0733727
04/11/16 23:37:51ID:???分かりますた、ずばり日を1日に指定してそこから1日引くのですな!!
0734nobodyさん
04/11/16 23:43:44ID:???echoなら<?=$hoge?>でも可能。
<?php echo 'A'; ?>
<?php echo 'A' ?>
<? echo 'A'; ?>
<? echo 'A' ?>
<?='A'?>
全部同じ意味です。ほかにscriptタグ使う奴
とかもあるけど気にしなくていい。
0736nobodyさん
04/11/16 23:55:32ID:???すわっ新種の顔文字かと思った。
0737nobodyさん
04/11/16 23:58:37ID:???まぬあるにかいてあるべ
0738nobodyさん
04/11/17 00:38:37ID:???0739nobodyさん
04/11/17 00:55:24ID:???確かどこかにエラーメッセ出てたよね?
0741nobodyさん
04/11/17 06:32:42ID:???0742695
04/11/17 10:30:45ID:???やっぱり、自作で結果をキャッシュするしかないかな・・・。
0743nobodyさん
04/11/17 10:50:38ID:???質問には答えられないけど、シチュエーションに興味あり。
0745nobodyさん
04/11/17 11:18:07ID:???基本的に日本語バグトラッキングシステムてPHPのやつ。
# 影舞いいんだけどRubyだし。
0747695
04/11/17 11:32:22ID:???10万件ヒットではなく、検索対象が10万件ですー。
そのうち20万件とか30万件が対象になる予定なんですけど。
これぐらいだと普通にありますよね?
0749nobodyさん
04/11/17 12:23:16ID:???tr/A-V/a-v/ をしたいのです。
0750nobodyさん
04/11/17 12:41:09ID:???phpPgAdminで10万件ヒットの結果をviewingしても、最初の画面だけ
ちょっと待たされるものの、あとはそれほど重く感じない。
0751nobodyさん
04/11/17 12:42:17ID:???http://jp2.php.net/manual/ja/function.strtr.php
0753nobodyさん
04/11/17 13:15:02ID:???ありがとうございました。
一部だけ小文字にしたいので strtr を使おうとマニュアルを見たら
> 引数を2つ指定してコールっ_場合
なんてのが。
0754695
04/11/17 14:02:03ID:???最終的に検索クエリが遅いのは明らかなので、
ページングした際に再度クエリを投げないで済めば
早くなるのはわかっているんです。
なので、limit掛けない結果をキャッシュするしかないかなぁ?
ってのが>>742です。
>>750
文字列マッチでの検索とかした場合ですか?
シーケンシャルに読むだけならクエリー自体が軽いので、
ページングしても重くならないと思います。
もし文字列マッチでも早いなら、ソース見るしかないですかね・・・。
0755nobodyさん
04/11/17 14:12:32ID:???を試しているのですが、register_shutdown_functionに登録された
関数内において、ログファイルの書き出しも、クラスファイル等のincludeも
いずれもpermissionエラーとなって実行できないのですが、
register_shutdown_functionの実行権限は、mainの処理とは異なるのでしょうか?
バージョンは4.2.3です。
0756nobodyさん
04/11/17 15:06:42ID:???返ってくるけど。
0757nobodyさん
04/11/17 15:11:44ID:eshx/1+6>>688で可変長引数の質問について教えてください。
function test() {
list($a, $b, $c) = func_get_args();
}
のように、可変長引数にするメリットはなんでしょうか?
あんまり思いつかないのですが…。
>>691で言われているようにデフォルトを与えた方が
楽な気がします。
0758nobodyさん
04/11/17 15:22:26ID:???apacheをどのような設定にすれば使用出来るようになるのでしょうか?
0760nobodyさん
04/11/17 15:35:58ID:???文字列マッチの場合なり
0761695
04/11/17 16:04:49ID:???どひゃー。
ちょっと検索対象のフィールドの定義と、
1レコードのバイト数(概算)教えてもらえますか?
(中間一致ならindexは効かないですもんね)
他になにかやらかしてそうな設定ってあるかな・・・
0762nobodyさん
04/11/17 16:09:58ID:???0763nobodyさん
04/11/17 16:12:20ID:ewTnqAG8だとした場合、二つをマッチングさせて、マッチしたら1,マッチしなかたら
0を入れた配列$cを作りたいのですが、可能でしょうか?
$cの値は、0,0,1としたいんです。
どういうことかといいますと、$aが商品番号の配列。$bがユーザが持って
いる(購入済)商品番号。この情報から購入フラグ(購入済み0,未購入1)
配列を作りたいんです。どうかお知恵をお貸し下さい。よろしくお願い
致します。
0764nobodyさん
04/11/17 16:12:37ID:???0765763
04/11/17 16:15:42ID:ewTnqAG8出来ましたら、$cは連想配列にして、echo $c[one];としたら0
と出したいんです。自分にはむずかしすぎて、取っ掛かりさえつかめない
状態です。
0767748
04/11/17 16:42:06ID:???いやぁ、私が言いたかったのは、別に自前でキャッシュなんてしなくても、
limitかけないでクエリー発行して、mysql_data_seek()をつかえば、
MySQLの方でやってくれるぞ。って話で。
その際システム側でどんだけメモリなりのリソース食うかは預かりしらんが、って事で。
0768nobodyさん
04/11/17 16:51:04ID:???どのへんがどうわからないの?答えようにも自分には(質問の意図をつかむのが)むずかしすぎて、取っ掛かりさえつかめない状態です。
とりあえず「いち、に、木」はやめよう。
0769nobodyさん
04/11/17 16:52:34ID:???0770768
04/11/17 17:01:31ID:???あれだけじゃ悪いから、スマートじゃないけど分かりやすい例ね。配列関連の関数を探すともうちょっと上手くかけるよ。
$a = array('one', 'two', 'three');
$b = array('three');
foreach ($a as $shohin) {
foreach ($b as $konyuzumi) {
if ($shohin == $konyuzumi) {
$c[] = 1;
} else {
$c[] = 0;
}
}
}
echo $c[0],'<br />';
echo $c[1],'<br />';
echo $c[2];
0771695
04/11/17 17:07:52ID:???となると、MySQLの設定の問題又はサーバースペックの問題ってことですね。
スレ違い申し訳ない。
たしかに、そんなにスペックのいいサーバーではないのですが、
普通に1.5秒以上掛かります・・・
0773nobodyさん
04/11/17 17:23:22ID:zF/X7yAnダウンロードダイアログ画面を出して
ファイルをダウンロードさせたいのですが、
大きいファイルだと保存画面がでるまでかなり時間がかかります。
これは何とかなりますか??
<?php
//down.php?file=ダウンロードファイル でアクセス
download($file);
function download($file){
//ファイルサイズ
if (($content_length = filesize($file)) == 0) {
die("error1");
}
//ヘッダ送信
header("Content-Disposition: attachment; filename=\"".basename($file)."\"");
header("Content-Length: ".$content_length);
header("Content-Type: application/octet-stream-dummy");
//出力
if (!readfile($path_file)) {
die("error2");
}
}
?>
0775nobodyさん
04/11/17 17:35:00ID:???仮に「自前でキャッシュ」するなら
「limitかけないでクエリー発行して、mysql_data_seek()をつかう」
の場合でも、どちらもシステム(PHP側)のリソースは食うので後者でOkかと。
サーバサイドカーソルはPHPでは無理だし。
しかしMySQLでlimit掛けても、内部的に条件判別に利用された結果
(全結果ではなく対象リストみたいなもの)はキャッシュされるので、
テーブルの値に変化とかなければ、2回目以降は比較的早く出る筈なんだが
システム上の作りが変なのか、特殊なのか…
0776nobodyさん
04/11/17 17:55:44ID:???だよね。0.05秒だったのが次やったら0.01秒切ったし。
0778nobodyさん
04/11/17 19:39:20ID:???0779822
04/11/17 21:14:58ID:???あとPEAR::DBとの比較ってどっかにありますか??
0780773
04/11/17 21:36:19ID:zF/X7yAnまさにwinで↑なんですが解決法書いてあらず・・
0782781
04/11/17 22:36:30ID:???0783781
04/11/17 22:42:49ID:???>>773のスクリプトそのままで開いてみたけど特に問題は無いよ。
PHP 自体のバグだと思うから Version Up すれば解決するぽ
0784nobodyさん
04/11/17 23:59:10ID:OsVB8E9H借りてるレン鯖で設定しているあるメールアドレス宛てにメールが届いたら、
そのメール受信をキッカケにプログラム(自作のPHP)を
起動させてそのメールを処理(データベースに収納したり自動返信したり等)を
させたいのですが、そういうことは可能でしょうか?
自分で思いつく限り検索してみたところ、MTAでパイプ渡しが
どうのこうの・・・と、意味がよく分かりませんでした。
それに、そういうことは共用鯖では実現が難しそうな感じでした。
やっぱり専用鯖が必要なのでしょうか?(専鯖ならどこでも可能??)
すみません、自分のレベルが低いので分かりにくい質問かもしれませんが
どなたか技術的に分かる方がいらっしゃいましたら教えてください。
0785nobodyさん
04/11/18 00:14:18ID:???forwardやprocmail等を使えば可能だけど共用鯖なら無理かも知れんね。
専鯖でも使えるかどうかはその鯖の設定次第。
0786773
04/11/18 00:20:26ID:???ありがとうございます。
環境変えてやってみます。
0787nobodyさん
04/11/18 00:34:20ID:GCCM5gSlお答えありがとうございます。
ということは、「forward」や「procmail」というのが
使えるかどうかを鯖会社に質問すればOKですか??
もしかしたら専鯖じゃなくてVPSっていうのでも出来るのかな・・・?
0789nobodyさん
04/11/18 01:02:50ID:???0790nobodyさん
04/11/18 01:50:03ID:AjTyCRAuマニュアルを探したんですけど日付に変換するものしかなくて・・・
例えば、6000秒で01:40:00って表示するようなのが欲しいんです
0791nobodyさん
04/11/18 02:01:24ID:???0792nobodyさん
04/11/18 02:19:03ID:???$sec = 6000;
echo date('H:i:s', mktime(0, 0, $sec));
一応mktimeでいけるね
24時間以上だとこのままでは無理だけど
0793792
04/11/18 02:32:31ID:???参考になるか分からんけど漏れが作った奴載せとく
function sectohour($sec) {
$hour = floor($sec / 3600);
$sec %= 3600;
$min = floor($sec / 60);
$sec %= 60;
return(sprintf('%02d:%02d:%02d', $hour, $min, $sec));
}
0794nobodyさん
04/11/18 03:35:35ID:???FOMA端末のUA識別は
"DoCoMo/^2\.0" という表記で良いんでしょうか?
<?
$ua = $_SERVER["HTTP_USER_AGENT"];
if(ereg("DoCoMo/^2\.0",$ua)){
header("Location: aaa.html");
exit;
}else {
header("Location: bbb.html");
exit;
}?>
FOMAで「aaa.html」 それ以外は「bbb.html」へ飛ばすようにしてるつもりなのですが、
上手く動作しません。
0795nobodyさん
04/11/18 04:36:45ID:???location hoge は絶対パスで書かないと駄目だとか
0796790
04/11/18 08:35:27ID:???レスありがとうございます。なるほど、mktimeですか気付きませんでした。
しかし、24時間以上を扱う予定なので793さんのコードを参考に作ってみます。
みなさんありがとうございました。
0797nobodyさん
04/11/18 09:49:06ID:jaTiTZm1Fatal error: Call to undefined function: mb_convert_encoding()
のエラーで止まって動かなくなりました
bm_convert_encoding()の動きはわかるんだけど
PHPのライブラリ?から読み込んでるんですか?
0798nobodyさん
04/11/18 10:23:09ID:???環境は?
Windowsだったらdll読み込んでないんだろうし、
Linux系だったらconfigureで-with指定してないんだろうな。
0800nobodyさん
04/11/18 11:06:28ID:???c:\windows\system32にdllをおいてApacheを起動するだけでOKですか?
0801nobodyさん
04/11/18 11:10:35ID:???0802797
04/11/18 12:57:08ID:jaTiTZm1phpdevをインストールした状態です
0803nobodyさん
04/11/18 14:57:43ID:z5HMJmKGhoge=aaa&piyo=bbb
上の文字列の「aaa」の部分を抜き出したいのですが、うまい正規表現の仕方はないでしょうか?
preg_match_all("/hoge=(.+?)\&/",$str,$match);
だと、hoge=aaaのマッチが取れないのです…。
0805nobodyさん
04/11/18 15:28:11ID:???テンプレ
正規表現道場@2ch Part3 s/煽り|荒らし/あぼーん/g
http://pc5.2ch.net/test/read.cgi/php/1069245758/
0806nobodyさん
04/11/18 15:35:00ID:???$str = "hoge=aaa&piyo=bbb";
parse_str($str);
echo $hoge;
echo "<br>";
echo $piyo;
0808805
04/11/18 15:46:53ID:???正規表現勉強するなら、ここのテンプレにあるぞ。
っと言ったつもりだった。
あっちで質問してら。
0810nobodyさん
04/11/18 15:55:34ID:???preg_match_all の方を使おうとしてるのを考慮すると、>>809の可能性も。。。
0811nobodyさん
04/11/18 17:12:40ID:???countとsizeof関数は、何か違うのでしょうか?
マニュアルには、sizeofはcountのエイリアスとしか記載されていませんでしたが
使い分ける必要等はあるのでしょうか?
0812nobodyさん
04/11/18 17:40:40ID:???0815nobodyさん
04/11/18 18:03:03ID:???ごっちゃになるからだけだと思う。
sizeof導入も、C書きの人がすんなり入りやすいためだけだろう
多分。
0816nobodyさん
04/11/18 18:03:29ID:???使わない方が無難
0817軟式PHP
04/11/18 18:07:36ID:???0818nobodyさん
04/11/18 18:18:24ID:8nQGI/2aそこで質問なのですが、
ASPでのresponse.endに該当する記述は、PHPだと何になるのでしょうか?
具体的にはフォームから送られた内容を確認するために、
受け取った変数の中身をechoで表示したところで、1度スクリプトを停止させたいのです。
基本的な事で申し訳ありませんが、よろしくお願いします。
0819nobodyさん
04/11/18 18:22:11ID:???0820nobodyさん
04/11/18 18:58:04ID:???0821nobodyさん
04/11/18 19:05:33ID:bps4zhVUたまに変換されずになることがあります。
変換内容はュ→ユのように小文字を大文字に直すだけなんですが
何か原因があるのでしょうか?
また、str_replace()とか使った方がいいですか?あまり違いがわからなくて・・。
0823822
04/11/18 19:13:29ID:???そういう処理はマルチバイトを考慮しない関数は使わない方がいい。
色々ググってみ。
0824nobodyさん
04/11/18 19:29:34ID:???php_openssl.dllが見つかりませんというエラーになります。
extension_dirをフルパスに設定しても./(ドットスラ)にしても
見つからないらしいです。
他にも何か設定を変える必要があるんでしょうか?
0825nobodyさん
04/11/18 19:39:34ID:???2. 違うphp.iniを変更している。
0826nobodyさん
04/11/18 19:53:52ID:???1. きちんとあります。それらしきところ(system32配下やカレントディレクトリなど)に
いろいろ配置してみましたがダメでした。見つからないらしいです。
2. extension=php_openssl.dll の行をコメントアウトして再起動するとエラーが消えるので
php.ini自体は正しいと思われです。
0828nobodyさん
04/11/18 20:45:57ID:???http://php.s3.to/man/ref.openssl.html
>Win32ユーザへの注意: このモジュールをWindows環境で使用するには、PHP/Win32バイナリパッケー ジのDLLフォルダからlibeay32.dllを使用する WindowsマシンのSYSTEM32フォルダ(例: C:\WINNT\SYSTEM32または C:\WINDOWS\SYSTEM32)にコピーする必要があります。
これではないのか?
0829nobodyさん
04/11/18 20:49:13ID:???libeay32.dllをsystem32フォルダにコピー
環境変数OPENSSL_CONFを新規作成してopenssl.cnfのパスを指定
0830nobodyさん
04/11/18 20:51:20ID:???編集する場合はエディタから開くで指定する。
0831nobodyさん
04/11/18 22:14:30ID:VOS+8K87のように、オブジェクトを返すメソッドから直接そのメソッドを呼ぶことは、
許されてないのでしょうか?
パースエラーになります。
PHP4です。
0832nobodyさん
04/11/18 22:27:31ID:XCBl1M85PHPで一番得意なのはどういう処理ですか?
(DB操作や文字列処理、数値計算など)
0834nobodyさん
04/11/18 22:40:25ID:???マニュアルより。
PHPを使用する上で最も優れている点は、初心者に対しては非常に分かり 易いと同時に、
プロフェッショナルのプログラマに対しては多くの進んだ機能を提供している点です。
PHPの機能を羅列した長い一覧表を読まなければならないのかと心配する必要はありません。
PHPはすぐに始められますし、数時間の内に簡単なスクリプトが書けるようになります。
0836nobodyさん
04/11/18 22:55:21ID:???0838nobodyさん
04/11/18 23:01:18ID:???他言語との速度比較をする際に参考にしようと思って質問しただけです
>>834
なるほど。
ということは処理的な特徴は特にないのですか?
(私はPHPを使った開発はしてません)
>>835
なぜ?
>>836
Java書けますけど
私もそう思います
0840nobodyさん
04/11/18 23:07:11ID:???それなら最初から速度に関して質問すればいいでしょ
全体的な処理の速さなら他の言語と違いあるだろうし、規模にもよるんだって回答もあるでしょう。
文字列処理だけ特別に早かったり、数値計算がなぜかすごく遅かったりなんていう言語はあるとは思えん。
0841831
04/11/18 23:13:11ID:???それだと、自分の中で、「PHPつかえねー」って結論になってしまいます。
それだとさみしいな。
0842832
04/11/18 23:16:13ID:???全体的な速度とかは求めてません。
あくまでもPHPとして得意な処理ってなんなの?っていう件でお答えしていただきたかったのです
ちなみに特別に早いとか遅いはないですけど
得意・不得意は絶対にありますよ
特に数値計算は苦手な言語が多いので差が出やすいと思います
0843nobodyさん
04/11/18 23:17:07ID:???そういう方面に使いやすい
0844nobodyさん
04/11/18 23:21:08ID:???0845832
04/11/18 23:22:15ID:???マニュアルでも確認できましたし
やはりそういう得意分野は処理ではなく開発(特に初心者向け)のほうで1歩前に出てるということですね
ありがとうございました。
0848nobodyさん
04/11/18 23:27:05ID:???そう、初心者向けに開発しやすい
お約束が少ない
まぁ玄人(?)でも簡単に書けてすぐ動く。
速さを求めるなら、他のをどうぞ
0850nobodyさん
04/11/18 23:42:50ID:???鯖に易しい
0851nobodyさん
04/11/19 00:03:18ID:OG1nPnpo0852nobodyさん
04/11/19 00:17:02ID:???スクリプトの実行終了と同時に閉じられます。
http://jp2.php.net/manual/ja/function.mysql-connect.php
mysql_pconnect()は、二つの点を除いて mysql_connect()と全く同様に動作します。
1.すでにオープンされていないかどうかを調べます。
それがみつかった場合、新規の接続をオープンする代わりに
そのリンクのIDが返されます。
2、SQLサーバーへの接続がスクリプトの実行終了時にも 閉じられないということです
0853nobodyさん
04/11/19 00:23:33ID:???MySQLサーバ側のタイムアウトで切断する。
あとPHPで普通の接続(永続的接続でない)した場合は、
スクリプト実行の終了時にPHPが自動的に切断処理を行う。
勿論自分でcloseするのも可。
0854nobodyさん
04/11/19 00:43:00ID:???web系の事なら何をするにしても関数が用意されてる。
ただ、急に名前変わったり過去の関数をずっと引きずるのはいただけない。
ずっと68Kを引きずったMacのようだ。と元マカーの俺。
0855nobodyさん
04/11/19 01:04:32ID:???ダメ。マニュアルのどっかに書かれていたのを読んだ記憶があるんだがみつからねー
()-> で検索できればエラー例が一発で出るんだけど仕様上無理なんだよなぁ
0856nobodyさん
04/11/19 01:35:35ID:???同じく探したが見つからなかった…
0857nobodyさん
04/11/19 02:15:29ID:???変換するにはどう変更すればいいんでしょうか?
if ($autolink) { $comment = auto_link($comment); }
になっているのですが・・・
0859nobodyさん
04/11/19 02:42:56ID:???# URLの自動リンク (0=no 1=yes)
$autolink = 1;
掲示板なんですがコメントにURLが張られるとそのままURLの文字にリンクが張られるので
こちら、って文字に置き換えてリンクを張りたいのです。
定義の意味がよくわからないので見当はずれだったらすみません;
0860nobodyさん
04/11/19 02:49:13ID:???見当外れだ。auto_link 関数の定義があるでしょ。
どうせ http から始まる文字列を <a href="http**">http***</a> に replace してるんだろうから
それを <a href="http**">こちら</a> に変更すればいい。
0862nobodyさん
04/11/19 05:57:46ID:???あんなに共有サーバの設定しにくい代物でサーバにやさしいのか?
サーバ管理者泣かせだと思うよ
モジュール追加する作業も面倒だし
たまに他のApacheモジュールと競合するときあるのよね
どうしたもんかね
まぁサーバにやさしいというか>>848が言ってるように
初心者にやさしいだけ
標準でいっぱい入れてるから遅いってのもあるけどね
0863nobodyさん
04/11/19 06:28:08ID:???\/
人
/ ̄  ̄ ̄\
( 人____)
|./ ー◎-◎-)
(6 (_ _) )
| .∴ ノ 3 ノ ______
ゝ ノ .| | ̄ ̄\ \
/ \__ | | | ̄ ̄|
/ \___ | | |__|
| \ |つ |__|__/ /
/  ̄ ̄ | ̄ ̄ ̄ ̄| 〔 ̄ ̄
0864nobodyさん
04/11/19 08:15:55ID:???\/
人
/ ̄  ̄ ̄\
( 人____)
|./ ー◎-◎-)
(6 (_ _) )
| .∴ ノ 3 ノ ______
ゝ ノ .| | ̄ ̄\ \
/ \__ | | | ̄ ̄|
/ \___ | | |__|
| \ |つ |__|__/ /
/  ̄ ̄ | ̄ ̄ ̄ ̄| 〔 ̄ ̄
0865nobodyさん
04/11/19 09:26:48ID:???どのようにしたらよいのでしょうか?
0867nobodyさん
04/11/19 10:17:24ID:???0868nobodyさん
04/11/19 10:48:57ID:???0869nobodyさん
04/11/19 11:01:01ID:???使えるならユーザ側でかなりの工夫しないとDBのパスワードとか盗まれるぞ。
safe_modeになってないのは論外。
0872nobodyさん
04/11/19 15:56:12ID:???そもそも設定が面倒とか言ってるヘタレ共有鯖管のトコ使わんけどな。
しまいにゃセキュリティホール塞ぐの面倒とか言い出しそうだ。
0873nobodyさん
04/11/19 17:35:26ID:???何使えばいい?
mysql_select_db?
0874nobodyさん
04/11/19 17:59:52ID:???phpのflock()の信頼性はどうなのでしょうか?
flockを使用せずmkdir()を用いた方が良いのでしょうか?
0875nobodyさん
04/11/19 18:20:18ID:???0876nobodyさん
04/11/19 18:26:18ID:???0877nobodyさん
04/11/19 19:04:08ID:???0878nobodyさん
04/11/19 19:30:42ID:???↓PHPマニュアルには
http://jp2.php.net/manual/ja/ref.mbstring.php
>configureスクリプトでモジュールを有効にする必要があります。
>詳細は、インストールの節を参照して下さい。
と書いてありますが、指定されたインストールのページには
詳細どころか configureスクリプト の文字すら無く、弱っております。
0880素人
04/11/19 20:44:15ID:/iwixYaKApache バージョン 2.0.40
PHP Version 4.3.9
簡単なファイルアップロードのプログラムを動かすと
なぜかファイルサイズが倍(正確には倍より少しちいさい)ぐらいになってしまいます。
当然、中身もおかしいので画像ファイルだとずれた画像になってしまいます。
ftpだとうまくいきます。
プログラムは
http://www.pat.hi-ho.ne.jp/dimension/sample/sample_others_upload.shtml
のとおりなのですが、、、
どなたかお心当たりはありませんでしょうか。
0882カポコン
04/11/19 21:38:18ID:???Linuxはエナブルで追加、
Windowsは、php**.dllを置いた所に拡張モジュールを置いて
リスタート
0884nobodyさん
04/11/19 23:07:45ID:???0885nobodyさん
04/11/19 23:27:14ID:???0886nobodyさん
04/11/19 23:33:25ID:???0888nobodyさん
04/11/20 00:03:07ID:???0889nobodyさん
04/11/20 00:16:24ID:???0890nobodyさん
04/11/20 00:23:38ID:???↓次の質問いってみようか
0891nobodyさん
04/11/20 00:29:02ID:???whileループ使うよりfor使えばいいのに
0892nobodyさん
04/11/20 02:03:29ID:lZ7mI+hyプログラム経験まったくない初心者で今日からPHPを勉強し始めました。
まだ本当の初心なのですが、
$x = 1;
$a = 2;
$b = $a + 3 * $x;
print("計算結果は".$a+3*$x."です<br>");
print("計算結果は".$b."です<br>");
としたときに
3です
計算結果は5です
と表示されるのはなぜなのでしょうか?
いろいろ調べてみたのですがわかりません。
教えていただけないでしょうか?
0893nobodyさん
04/11/20 02:16:08ID:???http://jp.php.net/manual/ja/language.operators.php#language.operators.precedence
これ見ると、「.」と「+」の演算子の優先順位は同じだよな。
どういう順番で演算されてそういう結果になったと思う?
0894nobodyさん
04/11/20 02:34:35ID:lZ7mI+hyこれを2時間くらい考えていて眠れなかったんです。
3*$xが先に計算されて3ですよね
その後に”計算結果は.$b”というありえない数字が足されたために無視されたので
3です
になったんでしょうか?
0895nobodyさん
04/11/20 02:43:18ID:???"計算結果は".$a+3."です<br>"
"計算結果は2" +3."です<br>"
3. "です<br>"
"3です<br>"
0897nobodyさん
04/11/20 02:48:59ID:???少しもちつけ。
「"計算結果は".$a+3*$x."です<br>"」の演算について話してる時に$bは出てこないだろう。
「"計算結果は".$a」の部分の結果が "計算結果は.$a" となるわけでも無い。
落ち着いたら、さっきのリンクしたページから文字列演算子について調べてみよう。
英文かもしれないが答えは見つかるはずだ。
0898nobodyさん
04/11/20 02:50:17ID:???深夜なのにどうもすみませんでした
なかなか奥が深いのですね。
試料を探すだけじゃなくていろいろやりながら勉強してみます。
ありがとうございました。
0899894
04/11/20 03:06:00ID:???えっと…
$a+3*$xだと(2+(3*1))になるから5ですよね
前の""の文字列は0で認識されるんですよね
"計算結果は".$a+3*$x.だと0.2+3に…
だと変だな
余計にこんがらがってきたw
0900nobodyさん
04/11/20 03:07:23ID:???perlで言うと@{[ ****** ]}みたいな…
0901nobodyさん
04/11/20 03:28:05ID:???ってのは、もうウンザリ。
0902nobodyさん
04/11/20 03:37:37ID:???これで最後にしてくれ
>"計算結果は".$a+3*$x.だと0.2+3に…
"計算結果は".$a+3*$x
"計算結果は".$a+3
//文字列と数値を . (ドット)で演算すると、数値は文字列に変換されてくっつく
"計算結果は2" +3
//文字列と数値を + (プラス)で演算すると、文字列はゼロに変換されて加算される
0 +3
0903nobodyさん
04/11/20 03:42:02ID:???もちつけ。>>902が既に書いているが念の為
1. まず、「*」演算子が一番優先度が高いのでそこが評価される。
→ "演算結果は".$a+3*1."です<br>" → "計算結果は".$a+3."です<br>"
2. 「.」演算子と「+」演算子は優先度は同じ。左から順番に評価される。
3. "計算結果は".$a の部分。演算子の両側を文字列として扱うので、
$a の値である 2 は "2" と変換される。
→ "計算結果は"."2"+3."です<br>" → "計算結果は2"+3."です<br>"
4. "計算結果は2"+3 の部分。演算子の両側を数値として扱うが、
数値で始まっていない文字列 "計算結果は2" は 0 に変換される。
→ 0+3."です<br>" → 3."です<br>"
5. 3 は "3" に変換される。
→ "3"."です<br>" → "3です<br>"
0904nobodyさん
04/11/20 04:16:37ID:???print("1. 計算結果は".$a+3*$x."です<br>");
print("2. 計算結果は".$b."です<br>");
これも行っときますか。
0905nobodyさん
04/11/20 05:38:05ID:???"1. 計算結果は" が 1.0 に変換されるというパターンか。
釣られてはみたものの、単に「マニュアル読め」、「試せ」で終わらせたい気もする。
http://jp.php.net/manual/ja/language.types.type-juggling.php
0907905
04/11/20 05:55:12ID:???>>903 でも "演算結果は" とかヤっちゃってるし、吊って来る…
0908nobodyさん
04/11/20 09:12:17ID:???print("計算結果は".($a+3*$x)."です<br>");
0909nobodyさん
04/11/20 09:19:06ID:???echo "計算結果は", $a+3*$x, "です<br>";
括弧の対応で悩まなくて済むくらいしか利点が無いけど
0910nobodyさん
04/11/20 12:04:58ID:???建設的だったぽい
0911nobodyさん
04/11/20 12:25:13ID:???0912nobodyさん
04/11/20 12:37:14ID:VmPsi8L8FROM user
WHERE username = '$username' AND password = '$password'", $con);
$row = mysql_numrows($result);
if($row != "0"){
上みたいな感じで会員制サイト作る際のログイン基準作ってるんですが、
セキュリティ的にこれで大丈夫ですかね?
あまりにシンプル過ぎてカナーリ心配なのですが・・・
ご指摘求みます
0913nobodyさん
04/11/20 12:56:28ID:???そんなコード書いてたら俺みたいなスーパーハカーに簡単に全ユーザの
パスワードを盗まれちゃうよ。
クロスサイトスクリプティングとかサニタイジングでググッてみれ。
0914nobodyさん
04/11/20 13:00:12ID:???ここに
・・・・; drop・・・
0915912
04/11/20 13:12:09ID:VmPsi8L8上の例でなぜCSSが問題になるのかよく分からないのですが?
username と password に入力制限するだけでは駄目なのでしょうか?
0916912
04/11/20 13:14:06ID:???0917nobodyさん
04/11/20 13:15:08ID:???0920912
04/11/20 13:20:50ID:???分かりませんです。
一応XSSについては気をつけていたつもりなのですが。
サニタイジングって無効化するやつですよね。
上記の例で何を無効化すべきなのか分かりません。
username と passwordですか?
914さんの発言を見ると、passwordの入力フォームで
ある内容を入力されるとパスワードがdropできちゃうってことですかね?
0921912
04/11/20 13:22:59ID:???4行目でrow=0に上書きされるはずですよね・・・
0922nobodyさん
04/11/20 13:34:06ID:???0924nobodyさん
04/11/20 13:45:53ID:???0925912
04/11/20 13:51:16ID:???名前入力とかはXSS気をつけてたんですが、
最も重要なポイントをサニタイジングするのを忘れてるようですね汗。
ありがとうございました。
0926nobodyさん
04/11/20 14:00:19ID:???0927nobodyさん
04/11/20 14:19:42ID:???$b=3(ヶ月)
$aに$bを足して、
$a=2005/02/25としたいのですが、
方法がよく分かりません。
$a=strtotime($a);
$a=mktime (0,0,0,date("m", $a)+$b, date("d", $a), date("Y", $a));
として02/25の部分はなんとかできたと思うのですが、
2004を2005にするにはどうすればいいでしょうか?
ご教授くださいませ
0928nobodyさん
04/11/20 14:37:13ID:???list($y,$m,$d) = explode("/", $a);
$a = date("Y/m/d", mktime(0.0.0. $m+$b, $d, $y));
$a = strtotime('2004/11/25 + 3 Month');
とかも書ける。"for($i=0;$i<20;$i++);"ぐらいの時間かかるけど。
下ので様子を見てみるといい
echo date('Y/m/d', strtotime('2004/11/25 + 3 Month'));
0930nobodyさん
04/11/20 15:58:54ID:mKhjN6bd何もせずに戻り値だけ0を返すような物はどう書いたらいいでしょうか?
これkだえだとどうもダメだったので、教えてください。
#!/usr/bin/php
<?
?>
0931nobodyさん
04/11/20 16:06:16ID:???0933nobodyさん
04/11/20 16:11:55ID:???それをfileで他の鯖から読み込んで中継にしてる香具師は俺くらいか
0935nobodyさん
04/11/20 17:10:44ID:???0936nobodyさん
04/11/20 17:36:08ID:???0938nobodyさん
04/11/20 17:57:03ID:???↓レス番1桁目 ↓時刻の秒1桁目
1 妹の前で 1 愛を叫ぶ
2 自分の部屋で 2 「ごきげんよう お姉さま」と言う
3 体育倉庫で 3 一人で手淫
4 姉の前でに 4 美少女とSEXする
5 地元の小学校で 5 運命の美少女と出会う
6 クリスマスに 6 首吊り
7 親の前で 7 掘られる
8 トイレで 8 谷亮子でオナニー
9 好きな子の前で 9 練炭で自殺
0 2ちゃんねるで 0 2ちゃんねる引退
0942nobodyさん
04/11/20 18:44:51ID:???あれだけしか出してこなくて『これで大丈夫ですかね?』って聞いてるんだから対策してないと考えるのが妥当でしょ。
だってaddslashesとかやってたらそのコードも書くっしょ。
0943nobodyさん
04/11/20 19:08:46ID:???>>924
これ、本当に成功します?
いろいろ試してみたけどmysql_queryに2文入れられないみたいだし・・、シングルクォーテーションをエスケープしてたら絶対無理そうだし
0944nobodyさん
04/11/20 19:15:04ID:???PHP のソースコード内の信頼性を言ってるんじゃないか?
C言語でファイルシステムの fcntl(UNIX) か LockFileEx(Win32) を呼んでるルーチンがあるところ。
0945nobodyさん
04/11/20 21:22:29ID:???0946nobodyさん
04/11/20 21:24:51ID:???>シングルクォーテーションをエスケープしてたら絶対無理そうだし
912のソースからそういう想定をするのは無意味。
出された情報が少ないんだから、一般論で答えるしかないだろ。
少なくとも書いてないことまで補って妄想するよりまし。
今回は912にも思い当たることがあったみたいだからいいじゃんよ。
0947nobodyさん
04/11/20 23:00:29ID:???int型でシングルクォーテーションつかってない部分でもできませんでした。
912のソースのような部分が私のスクリプトにもあって、それで本当にどうなのか知りたかったのです。
自分のスクリプトでいろいろ試したのですが抜け穴なかなか見つけられなくて
0949nobodyさん
04/11/20 23:06:18ID:???だれかおしえてくり
0950nobodyさん
04/11/20 23:08:27ID:???まあ確かに、どこまでやれば大丈夫かということに不安になる気持ちも分かる。
とりあえず下記のURLでも読んで、じっくり考えてみて。
ttp://www.ipa.go.jp/security/awareness/vendor/programming/a01_02_main.html
0951nobodyさん
04/11/20 23:17:11ID:???移動しろ
△▲ WebProg 初心者の質問 Part10 ▼▽
http://pc5.2ch.net/test/read.cgi/php/1095633323/
0953949
04/11/20 23:26:25ID:???0954nobodyさん
04/11/20 23:26:53ID:???0955nobodyさん
04/11/21 02:52:46ID:???phpinfo(); の内容がすぐにわかってしまうのは
セキュリティ上、まずくはないんでしょうか?
0957nobodyさん
04/11/21 05:41:12ID:???perlで作ったスクリプトで覗けてしまう無料レンタルサーバはよくあるな。
0958nobodyさん
04/11/21 08:53:49ID:???0959nobodyさん
04/11/21 13:01:17ID:mw841Fe0RedHat9
PHP4
にmime_magic_moduleが
入っている環境なのですが、
以下のソースの中で、mime-type: text/htmlのときに表示させるように
したいのですが、具体的なmime_magicの使い方がわからず困っています。
具体的にどうすればよいのかお教えください。
$cd = $_REQUEST['path'];
$dirname = "/home/hoge/public_html$cd/";
$dh = dir($dirname);
while ($entry = $dh->read()){
if($entry != "index.html"){
print $entry;
}
}
よろしくお願いいたします。
0961nobodyさん
04/11/21 17:17:27ID:???0964nobodyさん
04/11/21 19:58:14ID:???もっとも効率のいい方法ってどんな感じですか?
whileで回しながら一行ずつチェックするのは
最後のほうに目的の行があった場合、時間がかかって困ってます。
データベース使わずになんとかならないでしょうか。
0965nobodyさん
04/11/21 20:10:43ID:???名前ならaから始まるのはここ、bから始まるのはここという情報を記憶するみたいな
0966nobodyさん
04/11/21 20:14:35ID:???0967959
04/11/21 21:53:54ID:mw841Fe0maime_magic以外にも、ファイルの形式を判断できる方法があれば、
そちらも教えていただきたいのですが、よろしくお願いします。
うざくて申し訳ないです。
0969nobodyさん
04/11/21 23:48:46ID:???データの中身が「ソ\」になってしまいます。
なので「ソ\」の後ろから「\」をとりたいのですが
上手に正規表現を組めません。
パターン構文のサイトを見て試行錯誤したのですが上手にできません。
どのようにすればいいか教えてください。
foreach ($src_list as $i => $v)
$v = ereg_replace ("ソ\\\", "ソ\", $v);
0970nobodyさん
04/11/21 23:52:50ID:???それはエスケープされているわけだが「ー」「表」なども同様の副作用が生じる。
エスケープと逆の事をする関数を使え。
0971nobodyさん
04/11/21 23:55:03ID:???その\と逆の事をする関数を探します。ラジャ
0972nobodyさん
04/11/21 23:57:06ID:???.htaccessに「php_flag magic_quotes_gpc Off」って書いとけば無問題
そして必要なところでは自分でエスケープすればいい
0974nobodyさん
04/11/22 00:57:12ID:ui2dUAYs文字列"a1"から$a1を作り出す(読み出す)ことってできるのでしょうか。
JavaScriptやVBAなら文字列→変数に変換できるので、PHPでも同じことが
できるだろうと調べてみたものの見つからず。。
よろしくお願いします。
0975nobodyさん
04/11/22 01:11:21ID:???可変変数のことでしょうか?
$a["sample"] = "ほげほげ";
$name = "sample";
echo $a[$name];
−−−−−−−−−
出力結果:
ほげほげ
0977nobodyさん
04/11/22 01:18:51ID:???即レスありがとうございます!関数も使わずこんな簡単にできるんですね・・・
いやお恥ずかしい・・・。ありがとうございました。 <(_ _)>
0978nobodyさん
04/11/22 01:21:05ID:???0985nobodyさん
04/11/22 02:49:41ID:???ヾヽ!lV/ / ,/ / ,' ハ、: .
,ィニ≧ゝレ' / / ,./ / , ハ : : .
く<-‐7´ _」] l l/_,∠/ / / / い : : .
 ̄ノ/: :f r'l l /レ'/、_/‐ト'、/l| li l : : : : .
. : {ハ : :|{(l|y==ミ _ノ、/ソリ ll | : : : : :
: : : :ヽヽ: :|、lハl、゙ ⌒ヾlノリ ll l : : : : : :
: : : : : : : : V\ヽ、 `ー ゛ノルんイリノ : : : : : :
: : : : : : : : : ,.--、_ハ`−r=ニ--、′ノ. : : : : : : :
: : : : : : : : / /-ョロ'ヲ´ i l : : : : : : : : : :
: : : : : : : 〈 ,ハフ'兀「 ! } : : : : : : : : :
: : : : : : : : ヽ, ト{‐lハ. ヽ ' ノ : : : : : : : :
0986nobodyさん
04/11/22 02:52:12ID:???あーあ・・・・
_,,..,,,,_
./ ゚ 3 `ヽーっ
l ゚ ll ⊃ ⌒_つ
`'ー---‐'''''"
0990nobodyさん
04/11/22 10:59:02ID:???0991nobodyさん
04/11/22 12:07:22ID:5v0Qpc9vどうするのがよいのでしょう。
通常の関数でエラー発生時は、falseを返すようにしてたのですが、
コンストラクタで、 return false とやっても、
普通にオブジェクトができてしまうみたいで。
0992991
04/11/22 12:09:01ID:???0993nobodyさん
04/11/22 12:09:19ID:???ぼくでもわかるほんがあったらおしえてちょーだい*^^*
0995nobodyさん
04/11/22 12:38:40ID:???どうすれば「良い」かはわかりませんが、
・オブジェクトを呼び出す前にチェックする
・引数をチェックする関数を実装して、コンストラクタから呼び出す
くらいでしょうか。
0996nobodyさん
04/11/22 14:24:59ID:???・コンストラクタは空にして、別に初期化用のメンバ関数を追加する
class A {
function A() {}
function init(...) { return /*初期化*/; }
}
$a = new A();
if (!$a->init()) { ... }
・エラーチェック用のメンバ変数とエラーチェック用のメンバ関数を追加する
class A {
var $err = 0;
function A(...) { if (!/*初期化*/){ $this->err = /*エラー番号など*/; } }
function get_error() { return $this->err; }
}
$a = new A(...);
if ($a->get_error() != 0) { ... }
・こういうのが嫌なら、PHP5に移行して例外処理で。
0997991
04/11/22 14:39:17ID:???ありがと。
でも、ちょっと違うような気がする。
別方面で、$this = false;
ってやればいいと知ったので、それでいくことにします。
ほんとは、PEARのエラーオブジェクトを返すといいそうです。
0998nobodyさん
04/11/22 15:16:31ID:???10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。