【PHP】質問スレッドpart28【php】

このエントリーをはてなブックマークに追加
952nobodyさん:2005/07/02(土) 22:03:55 ID:???
つ [ ファイル関数 ソケット関数 ]
953nobodyさん:2005/07/02(土) 22:22:44 ID:???
$hensuu = file_get_contents( 'http://〜' );
954nobodyさん:2005/07/02(土) 23:20:11 ID:???
>>953
ありがとうございます
955nobodyさん:2005/07/03(日) 02:40:25 ID:???
>>950
<?php

function mkTrip($key, $length = 10)
{
$salt = substr($key . 'H.', 1, 2);
$salt = preg_replace('/[^\.-z]/', '.', $salt);
$salt = str_replace(
array(':',';','<','=','>','?','@','[','\\',']','^','_','`'),
array('A','B','C','D','E','F','G','a','b','c','d','e','f'),
$salt);
return substr(crypt($key, $salt), -$length);
}

function gettrip($tripkey) {
$tripsalt=preg_replace('/[^.-z]/','.',$tripkey);
$tripsalt=strtr($tripsalt,':;<=>?@[\]^_`','ABCDEFGabcdef');
$tripsalt=substr($tripsalt.'H',1,2);
$trip=substr(crypt($tripkey,$tripsalt),3,10);
return($trip);
}

print( "誰かさん◆".gettrip("Lamp")."\n" );
print( "誰かさん◆".mkTrip("Lamp") );

?>
956nobodyさん:2005/07/03(日) 17:08:32 ID:???
hoge($str);
function hoge(&$str){ $str = 1; }

hoge(&$str);
function hoge($str){ $str = 1; }

この二つは両方とも同じ意味になるでしょうか?
エラーレポートALLにして後者の方をやったら、関数を呼ぶときに参照渡しするなと怒られてしまったので。。
957nobodyさん:2005/07/03(日) 17:24:18 ID:???
あのさ、下の方のhogeで
hoge($str);
ってやったら意味ないじゃん。
958nobodyさん:2005/07/03(日) 17:54:38 ID:???
>>957
すっません、参照渡しする場合は、受け取る方が必ず&付けないといけないってことですか?
てっきり、どっちかに付ければいいもんだと思ってました。
959nobodyさん:2005/07/03(日) 18:23:44 ID:???
>>958
PHPでは下の方法は非推奨だからうえのほう使っとけ
960nobodyさん:2005/07/03(日) 18:46:39 ID:???
>>958
呼び出し側に参照にすることを期待する(または選択させる)ような関数を書くな。
危なっかしい。
961nobodyさん:2005/07/04(月) 04:46:27 ID:???
関数定義で参照変数にしたヤツを変更してしまうのは
後になって自分でも原因がわからなくなるバグを作るようなもんだ。やめとけー
962nobodyさん:2005/07/04(月) 13:49:55 ID:???
質問です。

fsockopen関数を使って、HTTPSでアクセスしたいのですが、以下の警告が出て接続に失敗します。

Warning: fsockopen(): no SSL support in this build in /home/nullpo/public_html/acc.php on line 3

PHPインストール時に--with-openssl=[DIR]オプションは付けています。
phpinfo()のOpenSSLの欄:
openssl
OpenSSL support enabled
OpenSSL Version OpenSSL 0.9.7g 11 Apr 2005

これ以外で何か足りないところがあるんでしょうか?
963nobodyさん:2005/07/04(月) 15:10:31 ID:Yvg1h5R+
すみません。
これ↓、どこか間違ってますか?
エラーは出ませんけど、何も表示されません。
どうしてでしょうか?


<?php
$flag=0;
$a=$_POST[indata];
$b=$file("name.dat");
for($c=0;$c<=count($b)-1;$c++)
{
if($b[$c]==$a)
{
echo "入力済みの店舗か、no",$c,"と同名の店舗です。";
$flag=1;
}
}
if($flag=0)
{
$file=fopen("shop.dat","a");
fwrite($file,$_POST[indata]."\r\n");
echo"追加しました。";
}
?>
964nobodyさん:2005/07/04(月) 15:22:00 ID:???
>>963
間違いが一杯ありすぎるんだけど。。。

$a=$_POST[indata]; → $a=$_POST["indata"];
$b=$file("name.dat"); → $b=file("name.dat");
if($flag=0) → if($flag==0)
fwrite($file,$_POST[indata]."\r\n"); → fwrite($file,$_POST["indata"]."\r\n");

何も表示されない時はたいていパースエラーなので、先頭に以下を追加して
テストしてみそ。

ini_set("display_errors", true);
error_reporting(E_ALL);
965nobodyさん:2005/07/04(月) 15:38:02 ID:???
>>963
開けたら閉めろとあれほど…
966nobodyさん:2005/07/04(月) 16:23:15 ID:???
このスレと
【PHP】くだらねぇ質問はここに書き込みやがれpart6
http://pc8.2ch.net/test/read.cgi/php/1117945031/
の違いは何ですか
967nobodyさん:2005/07/04(月) 16:45:52 ID:???
>>966
このスレで回答のないくだらない質問に回答があるかもしれないのが↑。
http://pc8.2ch.net/test/read.cgi/php/1117945031/1 を参照。
968nobodyさん:2005/07/04(月) 19:29:38 ID:???
>>962
何が足りないって、貴方の環境やソースの詳細
fsockopen('ssl://www.example.com', 443)
って感じで、ちゃんと開いてるのか?
969nobodyさん:2005/07/04(月) 22:59:41 ID:HGadz7bj
>>964
ありがとう
くだらないミスばかりだ。
雑な俺にはむいてないのか・・・・・・・OTZ
970963:2005/07/04(月) 23:26:27 ID:HGadz7bj
これでいいですか?
<?php
ini_set("display_errors", true);
error_reporting(E_ALL);
$flag=0;
$a=$_POST["indata"];
$b=file("shop.dat");
for($pl=0;$pl<=count($b)-1;$pl++)
{
if($b[$pl]==$a)
{
echo "入力済みの店舗か、No",$c,"と同名の店舗です。";
$flag=1;
}
}
if($flag==0)
{
$file=fopen("shop.dat","a");
fwrite($file,$_POST["indata"]."\r\n");
echo"追加しました。";
$file=fclose("shop.dat");
}
?>
971963:2005/07/04(月) 23:26:39 ID:HGadz7bj
なぜか
for($pl=0;$pl<=count($b)-1;$pl++)
{
if($b[$pl]==$a)
{
echo "入力済みの店舗か、No",$c,"と同名の店舗です。";
$flag=1;
}
}
の部分が機能しないのですが・・・・・
972nobodyさん:2005/07/04(月) 23:35:47 ID:???
for文の直後に echo "[".$b[$pl]."]"; てな感じで出力してみれば分かると思うけど、
file()で読み込んだ場合には、それぞれの最後に改行文字がついてるのよ。(マニュアルにも記載あり)
一方 $a の方は付いてないはず。
おかしいな、と思ったらecho(or print)してみるのが鉄則。
つ [ rtrim関数 ]
973nobodyさん:2005/07/04(月) 23:37:03 ID:???
>>971
ところどころにecho使って変数の値をつど表示させてみる。
これ、基本。
974nobodyさん:2005/07/05(火) 00:01:58 ID:/sVdkK+7
可変長引数を受け取る関数から、
別の可変長引数関数に、
引数をすべて渡すいい方法はないでしょうか?
一応、配列にぶちこんでから渡す方法を考えたのですが
ぶちこみ処理が冗長な気もします。
975963:2005/07/05(火) 00:43:33 ID:TcsYh7kq
ありがとうございます。
えちょで確認したところ
↓の部分が動いて内容なんですが、なんか間違ってますか?
テンパッてるせいか、もうワケ分かりません・・・・OTZ

if($shop[$lp]==$a)
{
echo"ok";
echo"入力済みの店舗か、No",$c,"と同名の店舗です。";
$flag=1;
}
976nobodyさん:2005/07/05(火) 01:48:42 ID:???
ほどほどに
977nobodyさん:2005/07/05(火) 02:23:17 ID:???
「えちょ」ってなんだ「えちょ」って。
978nobodyさん:2005/07/05(火) 02:25:43 ID:ZCak048z
マジレスごめん

イーチョだよイーチョ!
エチョってよむやつは英語の勉強しなおしてこい!
979nobodyさん:2005/07/05(火) 07:44:20 ID:???
>>975
しょうがねーなー>>972が改行文字のあるなしって書いてるだろ
if($shop[$lp]==$a)

if(trim($shop[$lp])==$a)
980nobodyさん:2005/07/05(火) 16:32:23 ID:KhOBjuCN
>>977
ごめんごめん。
いつもの癖で、関西弁が出てしまいましたw

>>979
ありがとうございます。
できました。
981nobodyさん:2005/07/05(火) 16:36:22 ID:???
へーちょ
982サル:2005/07/05(火) 16:40:59 ID:rDJ/Mrei
質問です
----これを2.htmlとします-------------
<P>□項目A<BR>
□項目B<BR>
□項目C<BR>
□項目D<BR>
□項目E<BR>
□項目F<BR>
□項目G<BR>
□項目H</P>
そうすると↓で表示出来ないのですが、何が間違ってますか?
<HTML>
<HEAD>
<TITLE></TITLE>
</HEAD>
<BODY>
<HR>
<? include("2.html"); ?>
<HR>
<? include("2.html"); ?>
<HR>
<? include("2.html"); ?>
<HR>
</BODY>
</HTML>
983nobodyさん:2005/07/05(火) 16:46:45 ID:???
表示できない、だけでは何とも
984サル:2005/07/05(火) 16:50:22 ID:rDJ/Mrei
どういう風にすれば宜しいでしょうか?
985nobodyさん:2005/07/05(火) 17:29:52 ID:KhOBjuCN
度々すみません。
↓のif文が実行されないんですが何ででしょうか?
<?php
ini_set("display_errors", true);
error_reporting(E_ALL);

$category=$_POST["category"];

$shop=file("shop.dat");


//検索
for($lp=0;$lp<=count($shop)-1;$lp++)
{
if(trim($shop[$lp])==$category)
{
echo "ココが表示されない";
}
}
?>
986nobodyさん:2005/07/05(火) 18:06:57 ID:???
>>981
風邪ですか?お大事に。

>>985
上の方でも散々言われてきたように、
こんな感じで、各変数が意図した値(s)を持っているかを確認しましょう。
ini_set("display_errors", true);
error_reporting(E_ALL);

$category=$_POST["category"];
var_dump($category);
$shop=file("shop.dat");
var_dump($shop);

//検索
for($lp=0;$lp<=count($shop)-1;$lp++)
{
var_dump($lp);
var_dump($shop[$lp]);
var_dump($category);
if(trim($shop[$lp])==$category)
{
echo "ココが表示されない";
}
}
987nobodyさん:2005/07/05(火) 18:26:04 ID:KhOBjuCN
>>986
ありがとうございます。
988nobody:2005/07/05(火) 18:49:01 ID:???
>>982
2.htmlを以下にしてみればどうじゃろ?
<?
$string = "<P>□項目A<BR>\n";
$string .= "<P>□項目A<BR>\n";
$string .= "<P>□項目A<BR>\n";
$string .= "<P>□項目A<BR>\n";
$string .= "<P>□項目A<BR>\n";
$string .= "<P>□項目A<BR>\n";
$string .= "<P>□項目A<BR>\n";
$string .= "<P>□項目A<BR>\n";
$string .= "<P>□項目A<BR>";

print ($string);
?>
989nobodyさん:2005/07/05(火) 18:58:48 ID:KhOBjuCN
>>986
やってみましたが、思ったとおりの正しい値でした。
原因はわからないままです。

どうしたもんでしょう・・・・・OTZ
990nobodyさん:2005/07/05(火) 19:12:06 ID:???
>>989
差し支えない範囲で、shop.datの最初から数行を晒してみ
991 :2005/07/05(火) 19:36:36 ID:hzs6UPOn
CGI改造の質問掲示板です。
http://www.ftn-jp.com/cgi/sup/bbs.cgi
http://cgisv.chldren.net/~sil/cgireorg/bbs/bbs.cgi
ここで解決できない人は聞いてみたらどうですか?
返信が少ないみたいなのでcgi分かる人返信してあげてね
992nobodyさん:2005/07/05(火) 20:05:24 ID:???
宣伝乙。

そこで答えるぐらいならここで答えるよ。
993nobodyさん:2005/07/05(火) 21:34:41 ID:???
質問があるっす!

php4で、 http://headline.2ch.net/bbynews/ の板に立ったスレッド全てについて
一言言及したブログを自動投稿したいっす!具体的にはライブドアブログにて自動投稿したいんです。
ブログの投稿内容は各スレッドの1のレス内容をそのままコピーして投稿したいです。

例としてhttp://blog.livedoor.jp/newsscrap/ と全く同じブログが欲しいっす。
実際にphpコードを探すと以下のようなのを見つけたんですけど、こっから先がイマイチです。
あとライブドアブログへの自動ログイン・投稿についてもイマイチ・・・助けて下さいm(_ _)m
当方のサーバはxreaでcron使えます。

<?php
$url = 'http://headline.2ch.net/bbynews/';
$list = file($url);
foreach ($list as $line) {
if (!preg_match("|^\d{4}/\d{2}/\d{2}|", $line)) continue;
list($date, $time, $url_title) = explode(' ', $line, 3);
preg_match("/<a href=([^>]+)>(.+)$/", $url_title, $match);
$url = $match[1];
$title = $match[2];
// 実際は投稿用配列に保存して後でpost
echo "日付".$date." 時間".$time.' <a href="'.$url.'">URL</a> タイトル '.$title."<br>\n";
}
?>

994nobodyさん:2005/07/05(火) 21:43:51 ID:???
>>993
ここも作ってもらうスレじゃないんだが。。。

まずはログインの時にどういうデータ(get,post,cookie etc.)を送っていて、
どういうデータ(idやらsessionやら)が送り返されてきてるのか調べてみる事から始めてみては?

ieHTTPHeadersやproxomitronやパケットキャプチャーあたりのツールを使って地道にガンガレ
995nobodyさん:2005/07/05(火) 23:08:01 ID:???
XREAはバーボン
996963:2005/07/05(火) 23:17:25 ID:TcsYh7kq
>>990
お得意さんリストのような物なので、一行目から差し支えてします。
親切に教えてくれたのに、申し上げにくいのですが駄目です。すんません。

if(trim($shop[$lp])==$category)
{
echo "ココが表示されない";
}
↑この記述は、正しいですかね?
あとvar_dump($〜);で出てきたstring(14)ってどんな意味ですか?
997nobodyさん:2005/07/05(火) 23:35:48 ID:???
>>996
見せられない情報なら、適当なデータを書き込んだ仮の shop.dat ファイルを
用意して、そのテスト結果をさらしな。
string(14) はそのデータの長さ。

てか、var_dump の表示結果が string(14) "xxxx....." と表示されているはずだが
14ってのは xxxx... の長さだってことを気がつかないのか?

改めてスレを追ったけど、おまえさん、プログラム書くセンスないと思うよ。
998nobodyさん:2005/07/05(火) 23:35:55 ID:???
>>996
お客さんリスト?
shop.datの1行にはどんな文字列が入っているんだ?
そのままでなくてもいいから、伏字とか類似文字列とかにして晒せ。
それから、form画面のname=categoryの内容もな。

formのname=categoryのValue値は、
shop.datの1行と絶対に同じなんだろうな?
999nobodyさん:2005/07/06(水) 00:11:00 ID:Z5eAEHZk
>>14ってのは xxxx... の長さだってことを気がつかないのか?
全然気づかなかった。
別に長さに比例してるわけでもなかったし・・・・
漢字だったからかな?

>>998
ありがとうございます。
php勉強し始めて、2週間なもので。
今は、手元に無いので、明日出勤してから出来るだけ詳しく書かせていただきます。

皆さん、おながいしますね。
クレ厨でごめんなさい。
1000nobodyさん:2005/07/06(水) 00:11:57 ID:???
1000だ
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。