【PHP】下らねぇ質問はここに書き込みやがれpart12
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2005/11/01(火) 17:56:36ID:???ここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。
次スレは>>970あたりが建てて下さい
・過去スレ
【PHP】くだらねぇ質問はここに書き込みやがれ
http://pc5.2ch.net/test/read.cgi/php/1099322141/
【PHP】くだらねぇ質問はここに書き込みやがれpart2
http://pc5.2ch.net/test/read.cgi/php/1105218084/
【PHP】くだらねぇ質問はここに書き込みやがれpart3
http://pc5.2ch.net/test/read.cgi/php/1107780435/
【PHP】くだらねぇ質問はここに書き込みやがれpart4
http://pc8.2ch.net/test/read.cgi/php/1110697712/
【PHP】くだらねぇ質問はここに書き込みやがれpart5
http://pc8.2ch.net/test/read.cgi/php/1114787573/
【PHP】くだらねぇ質問はここに書き込みやがれpart6
http://pc8.2ch.net/test/read.cgi/php/1117945031/
【PHP】くだらねぇ質問はここに書き込みやがれpart7
http://pc8.2ch.net/test/read.cgi/php/1121100429/
【PHP】くだらねぇ質問はここに書き込みやがれpart8
http://pc8.2ch.net/test/read.cgi/php/1123431535/
【PHP】くだらねぇ質問はここに書き込みやがれpart9
http://pc8.2ch.net/test/read.cgi/php/1125716012/
【PHP】下らねぇ質問はここに書き込みやがれpart10
http://pc8.2ch.net/test/read.cgi/php/1127581425/
【PHP】下らねぇ質問はここに書き込みやがれpart11
http://pc8.2ch.net/test/read.cgi/php/1129582431/
0712nobodyさん
2005/11/19(土) 02:41:16ID:???0713702
2005/11/19(土) 02:44:24ID:???実はincludeとかrequireとかとにかくファイル関数一通り試しましたが結果は一緒だったんですよ・・・orz
##includeでやった時##
Warning: main(): Unable to access ./test.php?mode=hoge in /test2.php on line 3
Warning: main(./test.php?mode=hoge): failed to open stream: No such file or directory in /test2.php on line 3
Warning: main(): Failed opening './test.php?mode=hoge' for inclusion (include_path='.:/usr/local/lib/php') in /test2.php on line 3
0714711
2005/11/19(土) 02:46:31ID:???0715nobodyさん
2005/11/19(土) 02:46:51ID:???0716711
2005/11/19(土) 02:50:33ID:???includeには「ファイル名」しか書けません。「?mode=hoge」とか書いたらそりゃエラーにもなります。
「?mode=hoge」などの引数を渡したいときは、呼び出し側でglobalな関数に値を入れておいて
includeした側で使えばいいだけです。スコープが同じならglobalじゃなくても問題ありません。
つかもう少し根本から勉強してください。
0718702
2005/11/19(土) 03:42:40ID:???ご丁寧なレスありがとうございました。
確かにtest.phpをincludeすればtest2.php?*****でできるのは当たり前ですね・・・
すいません('A`)
最終的にはtest.phpとなる部分をエンコード変換等をさせたかったので
file_get_contentsとかを使おうとしていたんですがなんか無理ぽのようですね・・・。
スレ汚しすいませんでした。
0719nobodyさん
2005/11/19(土) 04:04:44ID:???0720702
2005/11/19(土) 04:35:43ID:???もうちんぷんかんぷんですよ。
test2の方で"(・∀・)コニチワ!(・∀・)"を出すには
test2.php?mode=hoge
とtest2にリクエストを送って表示させるってことじゃないんですか?
漏れは
test2.php
にアクセスしただけで"(・∀・)コニチワ!(・∀・)"を出したいんです。
もう何言ってるか自分でもワカンネ・・・('A`)
ちょっと落ち着きますわ・・・。
0721nobodyさん
2005/11/19(土) 04:37:50ID:???0722nobodyさん
2005/11/19(土) 04:40:25ID:???##test.php##
<?
if($mode == 'hoge'){
echo "(・∀・)コニチワ!(・∀・)";
}else{
echo "何もありません";
}
?>
##test2.php##
<?
$mode='hoge';
include("./test.php");
?>
じゃダメなん? エンコード変換なんてechoに渡す前にやれよ。
0723nobodyさん
2005/11/19(土) 07:32:29ID:???0724nobodyさん
2005/11/19(土) 09:42:57ID:???単にinclude/requireの動作原理を理解してないだけ
0725nobodyさん
2005/11/19(土) 10:29:33ID:???ーーindex.php--
<?php
$str="HOGE";
echo $str;
?>
パターンB
ーーindex.php--
<?php
$str="HOGE";
include("hoge.php");
?>
--hoge.php--
<?php
echo $str;
?>
同じ
0726nobodyさん
2005/11/19(土) 11:40:33ID:???0727nobodyさん
2005/11/19(土) 12:25:08ID:???相対パスにせずに、http://host/path/test.php?mode=hoge というように
普通のURLにすればOKなのでは?
http://host/path/の部分を直接書きたくないのなら、$_SERVERを参照して
動的に組み立てられるような気がする。
ttp://jp2.php.net/manual/ja/reserved.variables.php
>>702 の元々の要件が何かはわからないけれど、端末に合わせてコンテント
変換したいということであれば、>>702 同様にPHPの出力を文字列で取得→
変換処理という手法は検討すると思う。
0730nobodyさん
2005/11/19(土) 14:50:08ID:???| | | |
| |∧_∧ ∧_/| |∧_∧
|_|‘ω‘*) (*‘ω‘|_|‘ω‘*)
| | o【◎】 .( o| |★o ノ
| ̄|―u' `u.| ̄|―u'
"""""""" """"""""""""
0731702
2005/11/19(土) 14:57:00ID:???echoに渡す前に色々できたらいいんですが
test.phpの方は>>702のものから変更不可なもんですいません。
なのでtest2の方だけで処理をさせる方法を探っているんです・・・。
0732nobodyさん
2005/11/19(土) 15:20:03ID:???$str = file_get_contents ("http://127.0.0.1/test.php?mode=hoge");
でもだめなん?
0733nobodyさん
2005/11/19(土) 15:20:47ID:???0734nobodyさん
2005/11/19(土) 15:24:44ID:???・鯖でfopen wrappersが制限されている (>>709)
・test.phpの変更不可(>>731)
つーことになると、
test.phpの $mode = $_GET['mode']; の行を考慮して、
//test2.php
$_GET['mode'] = 'hoge';
include('test.php');
エンコード変換とやらをしたい場合は、ob_*でechoの出力をバッファに格納して
それに適用してやればよい。
0735nobodyさん
2005/11/19(土) 16:34:34ID:???class ABC{
function getEFG{return new EFG;}
}
class EFG{
function getClassName{return "EFG";}
}
というクラスを作った場合、
$abc = new ABC;
print($abc->getEFG()->getClassName());
とするとつなげて書くとエラーが出てしまいます。このような記述は出来ないのでしょうか・・・?
$efg = $abc->getEFG();
print($efg->getClassName());
のようにいったん変数に代入してからするとエラーはありません。
0736735
2005/11/19(土) 16:36:00ID:???PHP4.4.0です。
0737nobodyさん
2005/11/19(土) 17:15:19ID:???0738nobodyさん
2005/11/19(土) 17:42:22ID:???まずはマニュアルのクラスとオブジェクトの所を一読する事を薦める。
ttp://www.php.net/manual/ja/language.oop.php
0739nobodyさん
2005/11/19(土) 17:53:38ID:???##test2.php##
<?
header("Location: ./test.php?mode=hoge", true);
exit();
?>
これで解決。
以上、もうくんな。
0740nobodyさん
2005/11/19(土) 18:14:34ID:???変更不可能ってどういうこっちゃ? 他人の?
まー何にせよ全部最初から勉強しなおしだね。
例文の多いリファレンス本一冊買って隅々まで読みな。
0741nobodyさん
2005/11/19(土) 18:18:13ID:???0742nobodyさん
2005/11/19(土) 18:25:45ID:???Location は相対パスを使ってはいけないと
HTTP プロトコルの仕様書に書いてある。
間違えんな。
0745nobodyさん
2005/11/19(土) 19:51:39ID:???>・鯖でfopen wrappersが制限されている (>>709)
>・test.phpの変更不可(>>731)
こういう条件なのか、初めて理解できた気が。
virtual()関数が使えそうな環境(サーバ/test.phpの作り)ではないのか?>質問者
0746nobodyさん
2005/11/19(土) 21:07:02ID:7KsTSoLe$time = date("H");
if($time<00){print("ふんにゃかふんにゃか");}
?>
ソース見ただけでは分かりにくいと思いますが、時刻によって
printする文字を変更するスクリプトを考えています。
(例)
00:00〜06:00 -> ふんにゃかふんにゃか
06:00〜18:00 -> ほげほげ
18:00〜24:00 -> ふんにゃかふんにゃか
これで真っ先に考えたのはif命令かなぁ…と思ったのですが、どうも
うまく出来ません。何かヒントがありましたら宜しくお願いします。
0747nobodyさん
2005/11/19(土) 21:15:25ID:???後お約束だけど、「うまくいかない」ではなくエラーをかけ!
0748nobodyさん
2005/11/19(土) 21:17:49ID:???ヒントというか何というか、、、$timeにどういう値が入るのか考えてみたかい?
それらの値をどう扱うかによって、if文の条件を設定しましょう。
0749nobodyさん
2005/11/19(土) 21:24:49ID:7KsTSoLe分かりました。
何か良い方法があれば良いのですが…
もしかしてサーバサイドスクリプトだとこういうのは無理な
事をしてるのでしょうか?
0750nobodyさん
2005/11/19(土) 21:29:23ID:???文字列なら文字列の比較、数値なら数値の比較。
思うとでなく、echoで出力してみろよ。
鯖か蔵かなんてこっちで判断できる訳ないだろ。
0751nobodyさん
2005/11/19(土) 21:59:26ID:???いつリリースよ!?
0752nobodyさん
2005/11/19(土) 22:00:30ID:7KsTSoLe(例)
<?php
$now = date("H");
if($now>=0)&&($now<3){print("もう寝ろ!");}
if($now>=3)&&($now<6){print("夜が明けるぞゴルァ!");}
if($now>=6)&&($now<9){print("おはやうおまいら");}
if($now>=9)&&($now<12){print("学校行けよ!");}
if($now>=12)&&($now<15){print("おやつ〜♪");}
if($now>=15)&&($now<18){print("眠い…");}
if($now>=18)&&($now<21){print("こんばんは!");}
if($now>=21)&&($now<24){print("お腹いっぱい。そろそろ寝よう");}
?>
Parse error: syntax error, unexpected T_BOOLEAN_AND
うーん、このエラーメッセージが理解出来ない。
0753nobodyさん
2005/11/19(土) 22:05:20ID:???冗談だよな?
条件が括弧で囲われてないぜ!
if($now>=0)&&($now<3){print("もう寝ろ!");}
じゃなくて
if(($now>=0)&&($now<3)){print("もう寝ろ!");}
な
0754nobodyさん
2005/11/19(土) 22:06:34ID:???↑のように書く
if文全部間違ってる。
0755鯖管
2005/11/19(土) 22:07:11ID:???0756nobodyさん
2005/11/19(土) 22:10:38ID:???0757nobodyさん
2005/11/19(土) 22:15:26ID:7KsTSoLeちょっとやってみます。ありがとうございます。
>>755,>>756
本当は、時間によって違うCSSを出力するスクリプトにする筈だったのですが
ここで質問する時に例えが悪いと伝わらないかと思ったからです。
0758nobodyさん
2005/11/19(土) 22:17:39ID:7KsTSoLeあとはCSSをprintするように改造するだけです。
本当に助かりました、ありがとうございます。
0760nobodyさん
2005/11/19(土) 22:19:53ID:7KsTSoLeえ?だってクライアントサイドスクリプトってユーザ
の環境に悩まなくてはいけないと聞きましたので……
それに、JavascriptをOffにしてるユーザは無理ですよね?
0762nobodyさん
2005/11/19(土) 22:24:58ID:7KsTSoLeそうですか…
http://www.def4.jp/
↑このサイト見て、これ作ろうと思いました。
朝、昼、夜で背景画像が変わるようです。
0764nobodyさん
2005/11/20(日) 00:42:09ID:???クラス関連は一通り読みましたが、下のほうの英語のフォーラムみたいなところで $abc->def->ghi()というような記述があったので使えるのではないかと思っていました。
ただ、PHP5では使えるようなので・・・レンタルサーバなもんでどうしようもありません。
これが出来るのと出来ないのでは、現在制作しているコードの使い勝手が大幅に変わってしまいますorz
0767nobodyさん
2005/11/20(日) 01:30:21ID:???0768nobodyさん
2005/11/20(日) 01:46:12ID:???Perlなら1行目の違いでバージョン振り分けられるところも歩けど。
0769nobodyさん
2005/11/20(日) 01:48:34ID:???http://pc8.2ch.net/test/read.cgi/php/1126436361/
0770nobodyさん
2005/11/20(日) 02:33:38ID:???そこでFTPでPearディレクトリをまるごとアップしました。
/home/user/public_html/hoge
├foo.php
└PEAR
foo.phpからPEAR/DB.PHPを読み込みたいのですが、repuire('PEAR/DB.php')とするとすでにPearの入った鯖では(Pearをアップしないと)No Such File or Directoryになってしまいます。
いちいちrequireの引き数を変えず、Pearの入った鯖とそうでない鯖とで、PHP上で同じようにrequireするにはどうするのがベストでしょうか?
0772nobodyさん
2005/11/20(日) 02:44:52ID:???当たり前だろこの池沼
http://php.net/get-include-path
http://php.net/set-include-path
0773nobodyさん
2005/11/20(日) 11:50:28ID:???Pearが入ってたらrequire_once('DB.php'); //include_pathにPearのパスが通っている
Pearが入ってなかったらrequire_once('PEAR/DB.php'); //Pearが入ってないので自分でうpしたのを使う
これをどちらもrequire_once('DB.php');でインクルードできるようにしたいのです。
>>771
そうなのですが、既にPearの入っている鯖でいくつもPearをうpするのは容量の無駄使いだと思ったので…
>>772
ini_set('include_path', '.;/home/user/public_html/hoge/PEAR');
とやってもNo such(ryのまま変わらずできねーんだよ馬鹿
0774nobodyさん
2005/11/20(日) 12:13:55ID:???if (file_exists("PEAR/DB.php")) require_once "PEAR/DB.php";
else require_once "DB.php";
とか
0775nobodyさん
2005/11/20(日) 13:20:05ID:???> ini_set('include_path', '.;/home/user/public_html/hoge/PEAR');
> とやってもNo such(ryのまま変わらずできねーんだよ馬鹿
当たり前だろこの(ry
;;;;;;;;;;;;;;;;;;;;;;;;;
; Paths and Directories ;
;;;;;;;;;;;;;;;;;;;;;;;;;
; UNIX: "/path1:/path2"
;
; Windows: "\path1;\path2"
0776nobodyさん
2005/11/20(日) 14:02:51ID:???なんと!:で区切れば良かったのか…
勉強になりました。ありがとうございました
>>774
上の方法を使わせてもらいます。わざわざすみませんでした。
0777nobodyさん
2005/11/20(日) 15:53:25ID:???0778nobodyさん
2005/11/20(日) 17:36:52ID:???0779nobodyさん
2005/11/20(日) 17:38:05ID:???0780nobodyさん
2005/11/20(日) 19:01:54ID:???0781nobodyさん
2005/11/20(日) 19:25:17ID:???0782nobodyさん
2005/11/20(日) 19:34:24ID:???0783nobodyさん
2005/11/20(日) 19:52:52ID:???从从
人 从
从 从
大変なことになりますよ
从 从
从 人
人从
0784nobodyさん
2005/11/20(日) 21:58:56ID:???とレスする馬鹿
0785nobodyさん
2005/11/21(月) 02:44:00ID:/C8jg8zbその数を表示するプログラムを作成したいのですが…
例
#include <stdio.h>
main() {
char s[]="Okayama rikadaigaku";
:
}
0787nobodyさん
2005/11/21(月) 02:50:45ID:???または、PHPのフレームワークのスレッドをば。
0788nobodyさん
2005/11/21(月) 02:51:53ID:???0789nobodyさん
2005/11/21(月) 06:01:17ID:???根本から間違ってるよ。
#include "php.h"
/* 略 */
PHP_FUNCTION(count_a)
{
char * s; int n; long count = 0;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", & s, & n) == FAILURE) RETURN_LONG(0);
while (* s ++) if (* s == 'a') count ++;
RETURN_LONG(count);
}
あとは共有ライブラリとしてビルドして、
<?php dl("〜"); echo count_a("Okayama rikadaigaku"); ?>
Zend APIスレッドってないんですけど、立ててもよろしかですか?
または、PHPの拡張モジュールのスレッドをば。
0790nobodyさん
2005/11/21(月) 15:43:58ID:???UTF-16のテキストファイルを読み込んで、SJISに変換したいのですが、うまくいきません。
$data = file_get_contents(対象テキストデータのURL);
$data_enc = mb_convert_encoding($data,"SJIS","UTF-16");
としたときに、先頭に「P」という文字列が入ってきてしまいます。
元ファイルにはそのような文字は入っていないのですが…。
よろしくおねがいします。
0791nobodyさん
2005/11/21(月) 15:53:26ID:???0792nobodyさん
2005/11/21(月) 16:04:46ID:XuuRCMxK<?php
$var = "aあ bい cう";
print "$var";
?>
http://localhost/var.php
アクセスすると[a b c]としか表示されません
日本語を認識しないのはmbstringの設定が間違っていると思うのですが
どの値をどう変更すればいいのでしょうか?
0793792
2005/11/21(月) 16:23:15ID:XuuRCMxKmbstring.language = Japanese
mbstring.internal_encoding = EUC-JP
mbstring.http_input = auto
mbstring.http_output = SJIS
●mbstring.encoding_translation = On
mbstring.detect_order = auto
●mbstring.substitute_character = none;
●mbstring.script_encoding = EUC-JP
●を付けた行は本・解説サイトによって異なるので
いろいろ変更して試してみましたがダメでした.
0794790
2005/11/21(月) 16:50:34ID:???で、調べてみたところなんとかわかりました。
しかし一点気になるところがあるので再度質問させてください。
<?php
$fp= fopen("./test.csv",'r');
while(!feof($fp)){
$bom = fgets($fp,"2");
$bom = bin2hex($bom);
print "$bom";
if(strcmp($bom,"fffe")){
print "ok";
}else{
print "ng";
}
exit;
}
?>
とした際、正しく判定は出来ているのですが、printではffしか表示されません。
これはこういうものなのでしょうか?
0796nobodyさん
2005/11/21(月) 20:57:46ID:+iNocEw9しようと思っています。
$user = "nurupo";
$pass = crypt("hogehoge","AB");
system("sudo user -p ${pass} -s /bin/bash ${user}",$res);
echo $res;
この場合$resには0が入りユーザーを作ることは出来るのですが$passで指定した
パスワードでFTPからのログインやFedoracoreからのログインが出来ません。
cryptの仕方が悪いのでしょうか?
0798nobodyさん
2005/11/21(月) 21:05:08ID:8Y80p1yIってするにはどーすればいいのかわからないです。
だれか教えてください。
0799nobodyさん
2005/11/21(月) 21:14:49ID:???さくらインターネットはFTPだとファイル丸見えだった記憶があるけど。
0802798
2005/11/21(月) 21:24:06ID:8Y80p1yIそう・・・まさにそこがわかんないっす
0803nobodyさん
2005/11/21(月) 21:28:12ID:???メールを受信した時にスクリプトを起動する仕組みをもったメル鯖ソフトが多いから、
それを使えばよろし。メル鯖ソフトのマニュアルを見りゃ載ってるよ。
0804nobodyさん
2005/11/21(月) 21:36:42ID:???通常は、メール転送設定で、転送先を書く代わりに PHP のスクリプトを呼び出すような方法をとる。
で、PHP スクリプトには標準入力としてメールの本文(ヘッダも含めて)が入ってくるので、それを
読み出して処理をする。
例えば、sendmail であれば、.forward ファイルに以下のように書く。
| /path/to/php /path/to/スクリプト名
これらはメールサーバーに何を使用しているかによって変わるので、それらを書かない限り明確な
答えは得られない。また、オマイさんがその辺を操作できる権限があるか、ってことも必要。
別案としては、cron で定期的にスクリプトを呼び出して、pop3 を使ってメールボックスを覗くという
方法もある。
0805798
2005/11/21(月) 22:01:14ID:???ありがとうございます、メル鯖はまだ決まっていませんが第一候補はqmailです。
どう手をつけていいか全くわかりませんでしたが皆様のお答えをもとに頑張ってみます。
0807451
2005/11/21(月) 22:11:53ID:qGIHIfZl<form method='get' action='./test.php'>
<input type='checkbox' name='hoge[]' value='name1'>name1
<input type='checkbox' name='hoge[]' value='name2'>name2
<input type='checkbox' name='hoge[]' value='name2'>name2
以下省略
という風にすると、URLが
〜/test.php?hoge%5B%5D=name1&hoge%5B%5D=name2
みたいに“%5B%5D”がついてしまいます。
これを
〜/test.php?hoge=name1&hoge=name2
みたいにすっきりとさせたいのですが、
受け取り側はどのような処理をすれば良いのでしょうか?
(通常は上書きされてします)
やはり受け渡し側で[]付けて配列だよってしなきゃだめですか?
0808807
2005/11/21(月) 22:12:51ID:???0809nobodyさん
2005/11/22(火) 01:49:20ID:???スクリプトを介してテキスト変換するにはどうすればいいんでしょう?
■ このスレッドは過去ログ倉庫に格納されています