【PHP】質問スレッドpart17【php】
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
04/05/17 17:14ID:AT+bUkag・新規質問の方は上げてください。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
抜けているものがあったら補足願います
0413nobodyさん
04/05/28 17:25ID:???マニュアル検索もしてくれい
0416nobodyさん
04/05/28 17:49ID:???とオッサン丸出しな事を言ってみる
0417nobodyさん
04/05/28 18:09ID:???で検索して、
http://ns1.php.gr.jp/pipermail/php-users/2002-June/008315.html
や
http://www.broadband-xp.com/hidesource/escape.html
が見つかったのですが、
> urlencode に相当する JavaScriptの escape を使うと、IE 5.5 などでは、
> % で始まる UNICODEに変換してくれるので、PHP の urldecode で処理できない
とありますが、この逆、つまり、
php内部でurlencode()又はrawurlencode()して、その出力結果をWindowsのIEのJavaScript上で
デコードして表示したいのですが、decodeURI()やunescape()を使用しても英字以外は文字化けしてしまいます。
UTF-8にしてphpでurlencode()した後に、JavaScriptへ渡しても、依然、おもったようにいきません。
エンコード後の文字列が%uとuから始まるようにできないのです。
どのようにすればPHP内部でURL EncodeしたものをJavaScriptでデコードすることが可能でしょうか?
(または、互換の形式でもかまいません。phpとJavaScriptで共通して使えるエンコード・デコード関数があれば)
0420nobodyさん
04/05/28 19:32ID:???http://www.google.com/search?q=javascript%20php%20escape%20urlencode
で検索して、
http://ns1.php.gr.jp/pipermail/php-users/2002-June/008315.html
や
http://www.broadband-xp.com/hidesource/escape.html
が見つかったのですが、
> urlencode に相当する JavaScriptの escape を使うと、IE 5.5 などでは、
> % で始まる UNICODEに変換してくれるので、PHP の urldecode で処理できない
つとありますが、この逆、つま
り、php内部でurlencode()又はrawurlencode()して、その出力結果をWindowsのIEのJavaScript上
だとデコードして表示したいのですが、decodeURI()やunescape()を使用しても英字以外は文字化けしてしまいます。
よくUTF-8にしてphpでurlencode()した後に、JavaScriptへ渡しても、依然、おもったようにいきません。
つまりエンコード後の文字列が%uとuから始まるようにできないのです。
りどのようにすればPHP内部でURL EncodeしたものをJavaScriptでデコードすることが可能でしょうか?
(または、互換の形式でもかまいません。phpとJavaScriptで共通して使えるエンコード・デコード関数があれば)
0422nobodyさん
04/05/28 20:08ID:???0423417
04/05/28 22:46ID:???http://www.broadband-xp.com/hidesource/escape.html
の
//ネットスケープでもIEのescape関数と同じようにunicodeに変換する関数
を再現すればいいじゃん。というわけで、すみませんでした・・・解決です。
をphpで再現すればよいのかw
0424417
04/05/28 22:48ID:???http://www.broadband-xp.com/hidesource/escape.html
の
//ネットスケープでもIEのescape関数と同じようにunicodeに変換する関数
を再現すればいいじゃん。というわけで、すみませんでした・・・解決です。
をphpで再現すればよいのかw
0425nobodyさん
04/05/29 09:13ID:DJKvEK/Mxmlヘッダ(<?xml version="1.0" encoding="UTF-8" ?>)の
version、encoding を取り出したいんだけど、よい方法ありますか?
どなたかご教授お願いします。
0427nobodyさん
04/05/29 15:49ID:???0428nobodyさん
04/05/29 15:59ID:???テンプレート用HTMLの中に書いてある
<? echo "test"; ?>
のようなPHPは実行されないようなのですが
実効するようにはできないのでしょうか?
0429nobodyさん
04/05/29 16:06ID:???0431nobodyさん
04/05/29 17:45ID:???> PEARのテンプレート
> PEARのテンプレート
> PEARのテンプレート
> PEARのテンプレート
ハァ?
0432nobodyさん
04/05/29 18:52ID:???むしろハァ?するところが違う。
http://pear.php.net/package/HTML_Template_Flexy
http://pear.php.net/package/HTML_Template_IT
http://pear.php.net/package/HTML_Template_PHPLIB
http://pear.php.net/package/HTML_Template_Xipe
PEARの、どのテンプレートシステムだっつうの。
0433nobodyさん
04/05/29 20:22ID:???意味は通じるし。
0435nobodyさん
04/05/29 23:04ID:???ウププ ほんとに言っちゃっていいの?!
0437nobodyさん
04/05/30 01:09ID:???テキストファイル中の改行がそのまま文字列として、配列に格納されてしまう為、追加
したい文字列を同じ行に表示させることが出来ません。アドバイスお願いします。
恥ずいですがソースは以下で、環境はエディタがjvimでOSがFreeBSDでPHPは4.2です。
$log = file('log.txt');
for ($i = 0; $i < count($log); $i++)
{
$ex = explode(",", $log[$i]);
if ($ex[0] == $_POST[hoge])
{
ereg_replace ("/(\r\n)|\r|\n/","",$ex[$i]);
$add = ("$log[$i]" . "$a" . "," . "$b" . ",");
}
}
$fp = fopen('log.txt', 'w');
fputs($fp,$add);
fclose($fp);
}
0438nobodyさん
04/05/30 02:02ID:???やりたい事がいくつかできてないんじゃない?
ereg_replace ("/(\r\n)|\r|\n/","",$ex[$i]);
$add = ("$log[$i]" . "$a" . "," . "$b" . ",");
}
}
$fp = fopen('log.txt', 'w');
fputs($fp,$add);
fclose($fp);
}
を
$log[$i] = trim($log[$i]).$a.",".$b.",\n";
}
}
}
$fp = fopen('log.txt', 'w');
fputs($fp,implode("\n", $log));
fclose($fp);
かな?最適なコードじゃないけども
0439nobodyさん
04/05/30 02:14ID:???しかも波括弧の数が違うから場所は変えなくてよかた。
激しくすまそ
超遅レスで申し訳ないけどPHPでベンチマークなら
http://www.blueshoes.org/en/developer/php_bench/
こういう検証サイトがあります。
参考になるかと。
0441nobodyさん
04/05/30 04:31ID:???ttp://cgi.f13.aaacafe.ne.jp/~mugen/perlvsphp/page8.htm
0443nobodyさん
04/05/30 09:26ID:wDkFum9gregister_globalsをoffにする方法はないでしょうか?
変数の扱いに気をつけているつもりですが不安なので、
できればoffにしたいのですが。
0444425
04/05/30 10:08ID:???やはり自分で正規表現書くしかないですか・・・。
Parserで version、encoding を取れるのがあれば、
と思ったのですが。
もし、取れるParserがあったら教えてください。
0445nobodyさん
04/05/30 11:14ID:???とか書いてみる。
0447nobodyさん
04/05/30 13:40ID:???phpadminを設置したのですが、
「The configuration file now needs a secret passphrase (blowfish_secret).
」
というエラーが出ます。
パスやサーバーの設定は何度も確認しましたが、間違いがあったのでしょうか。
どうぞ宜しくお願い致します。
0448nobodyさん
04/05/30 13:45ID:???0451nobodyさん
04/05/30 18:37ID:???register_globals:PHP_INI_PERDIR/PHP_INI_SYSTEM
方法はない。
自分で小手先でどうにかしようとする前に
管理者になんとかしてもらう/させるべき事項。
0453nobodyさん
04/05/30 22:38ID:???表示出来る様になりますか?
<?php
$pointer = fopen("rireki.txt","r");
$fileline = fgets($pointer);
fclose($pointer);
if文
$rireki="格納する文字"
$pointer = fopen("rireki.txt","w");
flock($pointer,LOCK_EX);
fputs($pointer,$rireki);
flock($pointer,LOCK_UN);
fclose($pointer);
?>
上のイメージで作りましたがどうもエラーが起きてしまいます。
どこにprint($rireki)をつくればいいのでしょうか?
様々な個所に入れて試してみましたがエラーになりました。しかしif文の後に入れると
今回の結果が表示されてしまいますので困っています。
どなたか教えてください。
0454nobodyさん
04/05/30 22:54ID:???0456nobodyさん
04/05/30 23:16ID:???何をしたいのかいまいち判らんが。
普通に前回の内容(1行)が入っている
$filelineを表示すれば良いのでは?
print($fileline);
$rireki="格納する文字"; //終端の;が抜けてたけど?
0457453
04/05/30 23:24ID:???事に気づきましたwすいませんでした。
あとついでといってはなんですが今アクセスカウンタを作っているのですがセション
をつかってアクセスカウンタの数値を前にアクセスした人がリロードしても増えない
ようにするにはどうしたらいいのですか?
質問君みたいですいません。
0458nobodyさん
04/05/30 23:32ID:???質問君つうよりそれ以前の問題。
リロードで増やさないというのは、何をリロードとみなすかによる。
カウンターなんて、腐るほど転がっているから、そのソースを
参考にした方がいいんでね。
0459443
04/05/31 00:10ID:???やはり無理なのですね。
管理者に相談してみることにします。
ありがとうございました。
0460nobodyさん
04/05/31 14:07ID:2SJTqa7fphpが動きません
状況は下記のURLの通りで、<?phpスクリプト?>を解釈してくれません
ttp://www.php.net/manual/ja/faq.installation.php#faq.installation.blankscreen
Linux+Apache1.3 httpd.confには
マッピング、モジュールのロードは記述してあります
おしえてエロイ人
0461nobodyさん
04/05/31 14:26ID:???0462nobodyさん
04/05/31 14:31ID:???0463nobodyさん
04/05/31 14:31ID:???0465nobodyさん
04/05/31 15:49ID:???で、どうしろと?
インストール時の設定(若しくは手順)や環境くらいは説明したら?
このスレのエロイ人はエスパーじゃないんだから。
0466nobodyさん
04/05/31 15:50ID:???みんなが言ってることを理解してるのか?
なんべんでも見直せ。
おまいの設定がまずいにきまっとる。
せっていすらできんやつが鯖たてるな
!
0467nobodyさん
04/05/31 15:59ID:???0468nobodyさん
04/05/31 17:11ID:???質問者たちへ
ここで聞いてまともな返事が返ってくると思うな
**********/
0469nobodyさん
04/05/31 17:26ID:???なんで<br>じゃないのさ?
0470nobodyさん
04/05/31 17:36ID:???HTMLで<br />と書いて困ることはないが、XHTMLで<br>だと困るからだろ。
0471nobodyさん
04/05/31 17:37ID:???index.php?id=aaa みたいにやらない方法ってありますか?
0472nobodyさん
04/05/31 17:42ID:???0473471
04/05/31 17:49ID:???0474nobodyさん
04/05/31 18:19ID:???$str = "ABCDE";
を
$arr = array('A','B','C','D','E');
に分解する最適な方法を教えてください。
0475nobodyさん
04/05/31 18:32ID:???$arr = array($str{0},$str{1},$str{2},$str{3},$str{4});
はい、次!
0476474
04/05/31 18:39ID:???0477464
04/05/31 19:21ID:???漏れが建てた鯖じゃないのよ
色々いじられててよく分からんし
再インスコはできないし。
でもまあ、テキスト読み上げソフトで何とかなったよw
�dクス
0478nobodyさん
04/05/31 19:40ID:a1bq18t+$arr = explode("",$str);
これでできたら、楽だと思ったことある
0479nobodyさん
04/05/31 19:55ID:???0480nobodyさん
04/05/31 19:56ID:???$arr = preg_split('//', $str);
とか。
問題は、前と後ろに余分な配列が入ることだけど。
array_pop() と array_shift() で外すようにすれば使えるかも。
まあ、今回の場合はこれで十分だと思うけど。
$arr = array();
$len = strlen($str);
for ($i=0; $i<$len; $i++) {
$arr[] = $str[$i];
}
0481nobodyさん
04/05/31 19:58ID:???0482nobodyさん
04/05/31 20:00ID:???preg_match_all('/./',$str,$match);
print_r($match[0]);
ダメか・・・・
0483nobodyさん
04/05/31 20:01ID:???まぬある読めば、PREG_SPLIT_NO_EMPTYと、例まで出して説明してありますが
それでもそんなややこしいことしますか?
0484nobodyさん
04/05/31 20:13ID:???$chars = preg_split('//', $str, -1, PREG_SPLIT_NO_EMPTY);
print_r($chars);
0486nobodyさん
04/05/31 21:36ID:LIfE6g2zなどスペースで区切られた数字をそれぞれ配列として変数にぶち込みたいのですが
どうすればいいでしょうか
0489nobodyさん
04/05/31 21:44ID:???0490nobodyさん
04/05/31 21:46ID:Mjcj/gqfカスタマイズ容易な
ウェブメールプログラムがあれば教えて下さい。
「php ウェブメール」で検索しても
結果が山ほど出てきて絞り込めません。
よろしくお願いします。
0491nobodyさん
04/05/31 21:54ID:???板違い
【CGI】こんなCGI探してますver.13
http://pc5.2ch.net/test/read.cgi/hp/1081608108/
0493nobodyさん
04/05/31 22:48ID:???$end = date("Y/m/d H:i");
$startから$endまでの経過時間を知りたいです。アドバイスよろしくお願いします。
0494nobodyさん
04/05/31 22:50ID:???なら板違いだぞ。
0498nobodyさん
04/05/31 23:57ID:???例
http://hoge.hoge/a.php
の内部で
http://hoge.hoge/b.php
の結果を取得して表示したい。
0499nobodyさん
04/06/01 00:06ID:???マジレスすると。
http://science3.2ch.net/test/read.cgi/sky/1039275406/1-
マニュアルが読めてない(date関数の意味を理解していない)節
があるので、再度読み直してもわからない場合は語学板。
勘違いだとわかった場合は数学板。未読だった場合は社会学/哲学板など。
>>498
includeとかfopenでhttpストリームを指定して取得する。
0500nobodyさん
04/06/01 00:15ID:???sessionを使ってみようと思ったのですが、
<?session_start();
if (!session_is_registered('count')) {
session_register("count");
$count = 0;
}
else { $count++; } ?>
<html><body>
<a href='<?php echo $PHP_SELF ."?PHPSESSID=" . $PHPSESSID ?>'>
<?php echo $count ?>
</a>
</body></html>
これだけなのですが、動きません。
エラーは一切でず、$PHPSESSIDは空っぽです。
何が原因だと考えられるでしょうか?
phpinfoでは
Session Support enabled となっており、
コンパイルオプションは以下のみです。
'./configure' '--enable-mbstring' '--enable-mbregex'
'--with-apxs2=/usr/apache2/bin/apxs' '--with-mysql'
よろしくお願いします。
0501nobodyさん
04/06/01 00:43ID:???これはいいの?
0502nobodyさん
04/06/01 00:44ID:???echo $a['ctime']; //またはmtime?
Windows上でためしたところ、上記でtest.phpファイルそのものの最終更新時刻がわかりますが、
Unix上では上記スクリプト実行のたびに更新時刻もどんどん変わってしまいます。
これはOSのし様ですか?
0503500
04/06/01 00:57ID:???<?php
session_start();
とちゃんと書いてます。ごめんなさい。
基本的に文法ミスは無いはずです。
違うサーバではきちんと表示されることがわかりました。
なんででしょう?
# ここに張るのに適当に短くしたつもりが・・・
0504nobodyさん
04/06/01 02:02ID:???・新規質問の方は上げてください。age進行でお願いします。
・質問する際には環境も明記。
・正しい日本語で分かりやすく。
・レスがつかないからって逆切れする厨お断り。
・解決しなくてもこたえてもらったら礼を。
0507nobodyさん
04/06/01 04:26ID:???いや、どちらにしてもctime/mtimeの取得方法が
内部で変わるわけではないので、
>Unix上では上記スクリプト実行のたびに更新時刻もどんどん変わってしまいます。
>これはOSの仕様ですか
が、そもそも変な感じ。
0508502
04/06/01 04:45ID:MqX7wJyb実行のたびに更新時刻が変わったのは何かの勘違いでした。
0509sakky
04/06/01 13:57ID:aOyX5NXt$a = "abc<-#email#->cba";
$email = "[email protected]";
$b = ereg_replace("(<\-#)([a-z]+)(#\->)","$\\2",$a);
print($b);
という形式でテストしてみたのですが、置換したところが、$emailと出て、
変数として扱ってくれません。どうしたら変数として扱ってくれる置換が
できるでしょうか?教えてください。お願いします。
0510nobodyさん
04/06/01 15:31ID:???0511sakky
04/06/01 16:01ID:aOyX5NXt■ このスレッドは過去ログ倉庫に格納されています