【PHP】質問スレッドpart28【php】
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2005/05/05(木) 17:17:11ID:???・新規質問の方は上げてください。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-10辺り
0237nobodyさん
2005/05/30(月) 10:11:41ID:g9V9N+zSeaccelerator.keys
eaccelerator.content
は、何のことを指しているのでしょうか?
0239nobodyさん
2005/05/30(月) 13:51:32ID:???レンタルサーバでも、ImageMagick(Cで書かれた画像ライブラリ)は
使えるところが多いと思うけどな。未インストールなら相談すれば
入れてもらえる可能性も。勿論画像の回転機能がある。
その手の実装をPHPでやろうとすると、スピード面ではやっぱりつらいやね。
書きやすいから試作ではやることもあるけど。
0240236
2005/05/31(火) 00:30:14ID:???サーバ側でコンパイルする方法がない(もしくは知らないだけ?)のです。
Cで書けたら断然スピードアップしそうですよね^^;
>>239
ImageMagickは初めて知りました。
うちのサーバではインストールされてなかったのですが、オープンソースのようなので、ソースの関連部分を読んでみると、とても参考になるアルゴリズムで書かれていました。
PHPで書くと限界があるかもしれないので、相談してImageMagickを入れてもらうことも検討してみます。
お二方ともどうもです。
0241nobodyさん
2005/05/31(火) 01:43:20ID:???えなりかずきが「簡単じゃないか」って言ってるように聞える
0242nobodyさん
2005/05/31(火) 02:16:33ID:???巷のレンタルサーバはそんなに特殊なハードやOSで動いてる訳でもないので、
ローカルでターゲット(レンタルサーバ)に合わせて、リンクも静的にしといて
コンパイルして、バイナリーで持ち込むようにすると、
ちょっと変わったことをやろうとする場合には良い。
まあ、自作のバイナリーの持込に制約のある鯖屋も多いけどね。
0243236
2005/05/31(火) 03:07:08ID:???そんなこと実際にできてしまうんですね。
そういう場合ってハード面はどこまで合わせる必要があるんですか?
それともOSだけ合わせればオッケーなんでしょうか?
0245nobodyさん
2005/05/31(火) 07:21:05ID:???0246nobodyさん
2005/05/31(火) 09:17:49ID:???ターゲットの動画のファイルフォーマットを調べて、それに適合するようにファイルを作成する。
文字では一行で書けるけど、かなりめんどくさいよ。
0247nobodyさん
2005/05/31(火) 09:29:16ID:???GDもImageMagickもサポートしてるけどな。
他の動画フォーマットは製品では見かけるけど、
安く簡単に使えそうなのは知らない。
0249nobodyさん
2005/06/02(木) 15:52:47ID:???普通、ブラウザでアドレス欄に「http://aaa.com/bbb」と入力すると、
実際には「http://aaa.com/bbb/index.htm(または.php)」だと解釈されて、
ブラウザはそのファイルを探しに行ってしまいます。
これを、「http://aaa.com/index.php」の「引数bbb」だと解釈させるには
どうしたらいいのでしょうか。アパッチの設定変更が必要ですか?
0251初期不良
2005/06/02(木) 17:04:29ID:???http://aaa.com/?bbb
でいいとか
0252nobodyさん
2005/06/02(木) 19:43:56ID:???mod_rewriteってレン鯖でもいじくれましたっけ?
いじくれたとしても、なんか設定とか相当に難しいらしいけど・・・。
>>251
それなら引数として認識させるのはわりと簡単なんだけど、
http://aaa.com/?bbb じゃなくて
http://aaa.com/bbb で認識させたいのです。
0253nobodyさん
2005/06/02(木) 19:51:23ID:???0255nobodyさん
2005/06/02(木) 20:29:46ID:???mod_rewrite使えない場合は、
.htaccessに、"ErrorDocument 404 /hoge/index.php"みたいに追加して
/hoge/index.phpで、$_SERVER['REQUEST_URI']を解析すると言う方法もある。
が、これやるとhttpdのエラーログが404で埋まるのでお勧めしない。
(レン鯖だったら関係ないとか言うかもしれんが)
0256nobodyさん
2005/06/02(木) 20:32:05ID:???mod_rewriteを使わせてくれるかどうかなんて、
レン鯖ならそこの運営者に聞けよ。
そもそも、http://example.com/bbb と打って
http://example.com/bbb/を見るのも
ブラウザが勝手に解釈しているわけじゃないし、
ましてや/bbb/index.html(php)をブラウザが探しに行くわけでもない。
0257nobodyさん
2005/06/02(木) 20:57:16ID:???いや、IEは勝手に末尾に「/」を付加するぞ。内部的に。
>ましてや/bbb/index.html(php)をブラウザが探しに行くわけでもない
大ウソこくな。自分で試してみろ。
0261nobodyさん
2005/06/02(木) 21:31:05ID:???鯖がbbb/じゃねーの?ってレスして、
ブラウザが、じゃbbb/くれって言って、
鯖がbbb/に対応するbbb/index.htmlを返す。って感じ
この挙動(2回リクエストする)じゃ無いと問題が起きるケースがあったような。
ブラウザが相対URIの解決をする時だったかなぁ。
0263nobodyさん
2005/06/02(木) 22:48:10ID:???bbbってファイルにアクセスするときゃどうするんだろうと。
0264nobodyさん
2005/06/02(木) 22:50:08ID:Bb2Nk9Khその際index.incファイル内の定義を別々に読み込むことは可能でしょうか?
たとえば、echoに名前を付けて
<?php
Echo 1("ここだけ読み取る1\n");
Echo 2("ここだけ読み取る2\n");
Echo 3("ここだけ読み取る3\n");
?>
っとEcho 1 Echo 2 Echo 3と名前を付けて、それをインクルードで読み込む歳に。
<?php include("index.inc"class="echo1");?>
<?php include("index.inc"class="echo2");?>
<?php include("index.inc"class="echo3");?>
っと、こんな感じで別々に読み込みたいんですが。
php全然初心者でまだよくわかってなくて、どなたかお助けください・・・orz
0265nobodyさん
2005/06/02(木) 22:50:46ID:???省略した前のほうだな
0266nobodyさん
2005/06/02(木) 23:14:21ID:???それぞれの処理を関数にしてindex.incにまとめておき、
冒頭でrequire_once('index.inc");
必要個所で func1(); func2(); .. とかじゃ駄目なのん?
0269Imo ◆.jC7ANgFY.
2005/06/03(金) 00:14:55ID:???『HTTP/1.1 301 Moved Permanently』を返して
『Location: http://example.com/bbb/』というヘッダーを付加する。
それにしたがってブラウザはhttp://example.com/bbb/へ移動するから
二回のリクエストが起こるのですよ。
とりあえずこれ見たらいい。
http://web-sniffer.net/?url=http%3A%2F%2Fpc8.2ch.net%2Fphp
0270233
2005/06/03(金) 00:27:46ID:???0271nobodyさん
2005/06/03(金) 00:32:00ID:???つづき
http://example.com/bbb/をリクエストされたサーバは
http://example.com/bbb/index.html(設定によるが)を返すと。
つーかここPHPの質問スレな訳で。
0273nobodyさん
2005/06/03(金) 07:53:29ID:???0274nobodyさん
2005/06/03(金) 07:59:39ID:???0275nobodyさん
2005/06/03(金) 09:43:23ID:jMnj8COP回答ありがとうございます。
調べて色々行ってみたんですが、やり方が間違っているのか全然出来ません・・・orz
初心者で申し訳ないのですが、よろしければ方法教えてください(>_<;
0276nobodyさん
2005/06/03(金) 10:19:32ID:???とりあえずひとつのファイルをincludeしたら
そのファイル全てが読まれてしまうから一部分だけ読むこと
はできない。
ファイルを3つに分けて読み込めば希望のものになる。
全てを一旦読ませてそこだけ実行するにはfunctionを利用する。
0277nobodyさん
2005/06/03(金) 18:22:13ID:???>調べて色々行ってみたんですが、やり方が間違っているのか全然出来ません・・・orz
とりあえず>>266を再現
---index.inc---
<?php
function func1() {echo "ここだけ読み取る1\n";}
function func2() {echo "ここだけ読み取る2\n";}
function func3() {echo "ここだけ読み取る3\n";}
?>
---インクルードする側.php---
<?php
require_once "index.inc"; // 冒頭で一発
func1(); func2(); func3(); // お好きな場所でドゾー
?>
0278nobodyさん
2005/06/03(金) 19:56:31ID:???0279nobodyさん
2005/06/03(金) 20:24:40ID:VBKePBZt理由を簡潔に。
0280nobodyさん
2005/06/03(金) 21:05:59ID:???0281nobodyさん
2005/06/03(金) 21:22:26ID:???>>278じゃないけど
・コードがそのまま表示される可能性がある。
・どうでもいいことだが、エディタの関連付けがめんどくさい。
(うちの環境だと、ダブルクリックでVS.netが開く)
あえてやるなら、hoge.inc.phpみたいにするか、
AddType application/x-httpd-php .inc
などした方がいいかと。
0282nobodyさん
2005/06/03(金) 21:33:24ID:???0284nobodyさん
2005/06/03(金) 21:59:46ID:???0285nobodyさん
2005/06/03(金) 22:05:35ID:Aav4DKSzUnicode(UTF-8)の文字列中の特定の文字(具体的にはi-modeの絵文字)を
それぞれ対応する画像に変換したいのですが、
文字の正しいコードが所得できずに難儀しています。
例えば『α』マークの場合、正しいコードは『E70C』となるはずなのですが
自分で作ったスクリプトでは『ee9c8c』となってしまいます。
正しいコードを所得する方法をご教授頂ければ幸いです。
サーバはApache/1.3.31、PHPのバージョンは4.3.8です。よろしくお願いします。
0286nobodyさん
2005/06/03(金) 23:09:30ID:???できたんだろ?
なんかさ echo だけだったらさ
---echo.php---
<?php
$hoge1 = "ここだけ読み取る1\n";
$hoge2 = "ここだけ読み取る2\n";
$hoge3 = "ここだけ読み取る3\n";
?>
---インクルードする.php---
<?php
include_once "echo.php";
echo $hoge1;
echo $hoge2;
echo $hoge3;
?>
で十分だろ。。。 include してる意味もないがな
0287nobodyさん
2005/06/03(金) 23:11:51ID:???同意
まぁ、これが現実。
http://www.itmedia.co.jp/enterprise/articles/0506/03/news059.html
0290nobodyさん
2005/06/04(土) 03:27:45ID:+GcaB5nmphpで指定されたhtmlをまるまる読み込んで html内の
指定のタグを書き換えて 出力できますか?
read文で1行読み込んで 調べてprintで出力
するしか 方法はないのでしょうか?
0292nobodyさん
2005/06/04(土) 04:11:22ID:???すみません PHPってメモリ確保の手続き無しで
まるまる 読めるんですね
すごいなPHP・・・・
ありがとうございました
0293nobodyさん
2005/06/04(土) 05:38:46ID:???>注意: 文字列が非常に大きくなっても問題ありません。
>PHPに課せられる文字列 のサイズの実用上の制限はありません。
>このため、長い文字列に関して 恐れる必要は全くありません。
で、その上で質問なんだが、スクリプトを書く時、わざわざ長さを
制限する処理とか入れてる?
PHPcoreのバグの可能性とかも考慮して一応入れている場所も
あるんだけど・・・・心配し過ぎ?
0294nobodyさん
2005/06/04(土) 07:40:07ID:SiwHKpMg更新されていない画像には304 Not Modifiedを返したいのですが、上記の理由で全く機能しません。
画像を出力する際にヘッダにETag:もLast-Modified:も入れてるし、ブラウザのリクエストヘッダにもIf-Modified-Since:やIf-None-Match:はちゃんとありました。ApacheかPHPが消してるとしか思えないのですが・・・。
Apache1.3.33 - PHP4.3.11です。よろしくお願いします。
0295nobodyさん
2005/06/04(土) 07:46:06ID:9qCVt472文字列を標示させたいのですが
うまくいきません。
↓
$str = "はい!!よしきた!";
$str = mb_convert_encoding($str, "SJIS");
echo "$str";
よろしくお願いします。
0296nobodyさん
2005/06/04(土) 08:23:32ID:???internal encodingはEUCになってるかい
とりあえず変換元も明示してみる
$str = mb_convert_encoding($str, "SJIS", "EUC-JP");
0297nobodyさん
2005/06/04(土) 08:40:17ID:9qCVt472mbstring.internal_encoding = EUC-JP
mbstring.http_output = SJIS
です!
errorを表示させると
Fatal error:Call to undefined function
:mb_convert_encoding() in /home/adonis/html/3.php on line 3
とでます。
<?php
$str = "はい!!よしきた!";
$str = mb_convert_encoding($str, "SJIS", "EUC-JP");
echo "$str";
?>
0299nobodyさん
2005/06/04(土) 08:47:29ID:???multibyte関数自体が使えないんじゃないかバカ
エラーでてるんなら最初に書けバカバカ
どうすれば使えるようになりますかとか質問するなよバカ
そんなこと検索すれば分かるバカバカ
0301nobodyさん
2005/06/04(土) 10:31:18ID:???IEはIf-Modified-SinceもIf-None-Matchも吐き出してます。
ただ、今気づいたのですが、IEの吐いたヘッダの中にPragma: no-cacheも書いてありました。orz
もしかしたらこれが原因で$_SERVER['HTTP_IF_MODIFIED_SINCE']とかが強制的に未定義にさせられたのでしょうか?
それにしても、なぜIEはPragma: no-cacheを吐いてるのでしょうか?
通常のjpegファイルなどへのリクエストにはPragma: no-cacheは入ってないのですが。
0302nobodyさん
2005/06/04(土) 10:58:05ID:???0303nobodyさん
2005/06/04(土) 11:04:27ID:???IEの要求が矛盾してることだけは判った。
良くわからないけどIEのキャッシュが変だとか。
いっぺん物理的に(ファイルシステム的に)クリアしてみては。
0304nobodyさん
2005/06/04(土) 12:27:27ID:???あ、本当ですね。F5押さない限りはリクエストすら送らないんですね。
でもPHPではなく素のJPEGに関しては、F5を押すと同じように要求を出し、If-Modified-Since、If-None-Match、Pragma: no-cacheの3点セットがそろっているにもかかわらず、アパッチからは304 Not Modifiedが返ってきてます。
PHPの方はif (isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) などに引っかからないため、否応なく200 OKを返し、ファイルの内容を出力してます。
なんとかPHPでブラウザから送られてきたIf-Modified-Sinceなどを受け取る方法はないものでしょうか?
リクエストヘッダをまるごと取得とかできないものですかね?
>>303
IEのキャッシュをクリアすると、If-Modified-SinceやIf-None-Matchを送らなくなります(当然ですが・・・)。
でもやっぱりPragma: no-cacheは送っているようです。
謎ですよね。IE・・・。
でもいくら謎でもIEユーザーが多数派なのでなんとかしたいです。
0305303
2005/06/04(土) 13:18:10ID:???>でもやっぱりPragma: no-cacheは送っているようです。
ieHTTPHeaders v1.6で確認してみたが、
IE6.0.2800.1106.xpsp2.050301-1526
ではリクエストでPragma: no-cacheは送ってないけどな。
何らかのproxyが噛ましてあって、それを通ったあとのリクエストを
キャプチャして見てるってことはない?
0306nobodyさん
2005/06/04(土) 13:24:02ID:sb3TzWhw他サイトのHTMLやCGI等の文字を抜き出して、PHPの引数にしたりすることは出来ますか?
0307nobodyさん
2005/06/04(土) 13:26:40ID:???0308nobodyさん
2005/06/04(土) 13:38:31ID:BqXj2EH6例えば他ドメインの掲示板などに自分で作ったフォームから書き込んだりとか
0309nobodyさん
2005/06/04(土) 13:57:38ID:???0311nobodyさん
2005/06/04(土) 14:12:41ID:BqXj2EH6何がしたいかと言うと、巡回する掲示板(同じフォーマット)をプルダウンで選択して
URLを変えずに書き込みたいんです。
ダメですか・・・
0312nobodyさん
2005/06/04(土) 14:41:34ID:???掲示板を見もせずにマルチポストしかけるためのスクリプトにしか見えませんが。
0313nobodyさん
2005/06/04(土) 14:47:00ID:???本当に正当な事をやりたいのなら、
PHPで書かれてる2chブラウザ(p2)なんかを読んでみな。
ちょろっと読むには大仰だけど、読んで書き込むだけの部分は、
そんなに大きくはないのだから。
0314nobodyさん
2005/06/04(土) 14:59:28ID:BqXj2EH6DLしたけど、ものすごい量ですね^^;
でも、これでがんばってみます。
0315314
2005/06/04(土) 15:09:48ID:BqXj2EH6これってプロバイダで関数が規制されているような
0316314
2005/06/04(土) 15:17:51ID:BqXj2EH6これは諦めた方がよさそうですかね・・・
0317nobodyさん
2005/06/04(土) 15:21:21ID:???0318nobodyさん
2005/06/04(土) 15:48:06ID:BqXj2EH6自サバでも立ててみます。
0319nobodyさん
2005/06/04(土) 16:18:43ID:???allow_url_fopenかね。エラーが違うように思えるけど。
レンタルサーバだと、引数のチェックをしないよう作りの
クソプログラムを使われるか判らんので、使えないようにしてるかも。
利便性とのバーター。
参考にして自分で組んで見た結果なら、
SSLを使うようビルドしてないPHPでhttps、ftpを使うようビルドしてないPHPでftp、
元からサポートしてないmmsとかrtspプロトコルを指定したとか。
0320285
2005/06/04(土) 18:25:34ID:ZARj7JSX文字列のエンコードをUTF-8からUTF-16に変更する事で正しいコードが得られますた(´・ω・)
>>288
そんなわけで今更なのですが、自分が書いたのはこんな感じのものでした。
$str = "何か適当な文字列";
$str = unpack("C*", $str); // アン(゚Д゚)パーック!
$len = count($str); // 長さ(゚Д゚)チェーック!!
$n = 1;
while($n <= $len) {
echo $n.": ".dechex($str[$n])."<br>\n"; // コード(゚Д゚)エコー!!!
$n ++;
}
作成にあたっては以下のサイトのコードを参考にさせて頂きました。
ttp://www.sound-uz.jp/php/tips/mobile.html
お二方とも、どうもありがとうございました。
0321nobodyさん
2005/06/04(土) 20:30:20ID:+tj+PzMbPHPでは可能でしょうか?可能ならどうすればいいんでしょうか?
よろしくお願いします。
print <<"EOD";
ああああ
@{[$flag ? "true" : "false"]}
ああああ
EOD
環境:
Windows Server 2003
PHP 4.3.11
0322nobodyさん
2005/06/04(土) 22:56:32ID:en4OOD87例えば
print "japanese日本語";
と書くと
「japanese」
とだけ表示されます。
「japanese日本語」と表示させるようにするにはどうしたらよいですか?
解説があるページでも良いので教えてください。
0324nobodyさん
2005/06/05(日) 09:02:34ID:???0325nobodyさん
2005/06/05(日) 11:52:24ID:fHB//NoEApache+php5+MySQLの導入を図っているものですが、
Apacheとphp5のインストールを終え、Apacheの再起動によるインストールの確認作業で詰まりました。
Apacheのインストール後に、http://localhost/で確認ページはでたのですが、
php5の設定後にhttp://localhost/test.phpを見ようとしたのですが、表示されません。
システム管理のサービス画面からApacheの再起動を促したのですが、
起動させても、すぐにサービス停止のメッセージボックスが表示されて停止状態になります。
手動設定にしても停止してしまいます。
tp://allabout.co.jp/career/database/closeup/CU20040928A/index.htm
このページを見て設定したのですが、何が悪いのかわかりません
おそらく私の設定が悪いのかPCが悪いのか私の頭が悪いのかの
どこかに理由あることはわかりますが、上手く動作しません。
0327nobodyさん
2005/06/05(日) 12:18:37ID:fHB//NoE0328nobodyさん
2005/06/05(日) 12:19:40ID:WUf4gILF上のフレーム
print "<FORM name=form1 method=POST target=bottom action=$PHP_SELF?mode=output ";
print "<INPUT TYPE=TEXT NAME=comment SIZE=50><INPUT TYPE=SUBMIT NAME=Submit VALUE=送信>\n";
上のフレームで↑のように「送信」を押した時に、outputの処理をさせつつ、下のフレームが別のウェブページが表示されるようにするにはどうしたらよいですか?
例えば、「送信」を押す前は下のページはYAHOOのページ。「送信」を押した後の下のページはGOO。
「画面」
上フレーム
【送信】
----------------
下フレーム
YAHOOページ
↓
【送信】ボタンを押す
↓
「output」の処理
「画面」
上フレーム
【送信】
----------------
下フレーム
GOOページ
0329nobodyさん
2005/06/05(日) 12:33:23ID:???ログには出ないパターンかもな。
php.ini-distをphp.iniにして書き直せと解説されてるけど、
取りあえずphp.iniが無い(コピーしない)状態でApacheを起動してみな。
php.ini内の記述が問題かどうかの確認。
駄目なら、httpd.confのphp絡みの記述の問題。
0330nobodyさん
2005/06/05(日) 12:33:52ID:???ヒント:JavaScript
0332nobodyさん
2005/06/05(日) 12:42:18ID:???php.iniを書き換えるだけで、PHPのプログラムでかかれたものに日本語も認識出来るようになるの?
0333332
2005/06/05(日) 12:44:07ID:???0334nobodyさん
2005/06/05(日) 12:44:49ID:fHB//NoEやってみます
ありがとうございます
0335328
2005/06/05(日) 12:57:04ID:WUf4gILF上のフレーム
print "<FORM name=form1 method=POST target=up action=$PHP_SELF ";
print "<INPUT TYPE=TEXT NAME=comment SIZE=50><INPUT TYPE=SUBMIT NAME=Submit VALUE=送信>\n";
上のフレームで↑のように「送信」を押した時に、上の画面を別の画面を更新させつつ、
下のフレームが別のページが表示されるようにするにはどうしたらよいですか?
例えば、「送信」を押す前は下のページはYAHOOのページ。「送信」を押した後の下のページはGOO。
「画面」
上フレーム
画面A【送信】
----------------
下フレーム
YAHOOページ
↓
【送信】ボタンを押す
↓
「output」の処理
「画面」
上フレーム
画面B
----------------
下フレーム
GOOページ
■ このスレッドは過去ログ倉庫に格納されています