トップページ⇒php
1001コメント324KB

【PHP】下らねぇ質問はここに書き込みやがれ 61

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2008/01/27(日) 18:17:59ID:jK32tI//
まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り

◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 62
http://pc11.2ch.net/test/read.cgi/php/1199956159/

◆質問する時の注意
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。

◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)

◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0116nobodyさん2008/01/28(月) 15:49:23ID:???
>>114
preg_match_allだったわ
マッチ結果をforeachでぐるぐるすればOk

>>113
現実のサイトのhtml/xhtmlはxmlパーザで処理できないことはままある
0117nobodyさん2008/01/28(月) 15:53:12ID:???
>>107
<html><body>
<?php
$str = '<A href="005.html" target="top">テスト</A>
<A href="a/031.php?test=1">hoge</A>
<A href="http://yahoo.co.jp">ヤフー</A>';
$a = split("\n", $str);
$a0 = split('"', $a[0]);
$url[0] = $a0[1];
$a1 = split('"', $a[1]);
$url[1] = $a1[1];
$a2 = split('"', $a[2]);
$url[2] = $a2[1];

$b0 = ereg_replace(">", "", $a0[4]);
$b0 = ereg_replace("</A", "", $b0);
$title[0] = $b0;
$b1 = ereg_replace(">", "", $a1[2]);
$b1 = ereg_replace("</A", "", $b1);
$title[1] = $b1;
$b2 = ereg_replace(">", "", $a2[2]);
$b2 = ereg_replace("</A", "", $b2);
$title[2] = $b2;

echo "$url[0] : $title[0]<br>";
echo "$url[1] : $title[1]<br>";
echo "$url[2] : $title[2]<br>";

?>
</body></html>
0118nobodyさん2008/01/28(月) 15:59:24ID:???
ぉぃぉぃw
0119nobodyさん2008/01/28(月) 16:02:20ID:???
さすがにネタだよな
0120nobodyさん2008/01/28(月) 16:04:36ID:???
>>115
> $pageCount = $xml->Body->ItemSearch->pageCount;

×ItemSearch
○itemSearch

視力検査的な回答で悪いけど
0121nobodyさん2008/01/28(月) 16:08:59ID:???
>>115
ページが表示されないとは?
echoに ; が無いようだけど

$pageCountに希望のデータが入ってないということなら
var_dump($xml->Body)するなどして変数の中身をチェック
基本は大事だよ〜
01221062008/01/28(月) 16:10:50ID:???
>>120
レスありがとうございます。
ご指摘いただいた所は承知しています。
小文字にしても表示出来ません。

ちなみに商品データのところも ItemSearch と大文字にしてありますが
これを itemSearch と小文字にするとエラーがでてしまうようです。
0123nobodyさん2008/01/28(月) 16:16:45ID:???
>>122
そういえばsimplexmlはchildren()で名前空間の子要素を引っ張り出してから
処理しないと駄目だったかもw
まあぐぐって自己解決して
0124nobodyさん2008/01/28(月) 16:30:27ID:???
$is = $xml->Body->children( namespace uri );
$pageCount = $is->children("")->pageCount;

めんどくさいな

list($pageCount) = $xml->xpath("//pageCount");

のほうが読みやすいと思う
0125nobodyさん2008/01/28(月) 16:40:11ID:???
>>124
デフォルトの名前空間も引き継がないのか
おそるべしSimpleXML・・・
01261062008/01/28(月) 16:48:49ID:???
皆さんいろいろとアドバイスありがとうございます。
どの方法を試してみてもやはり駄目のようです。

もう少し調べて頑張ってみます。
01271072008/01/28(月) 16:50:02ID:21Z67c9t
>>116
できました!!!!!
ありがとうございます

>>117
例文ありがとうございます
0128nobodyさん2008/01/28(月) 16:52:00ID:z4N7eEQg
<?php
Html("テスト");

function Html($test){
print <<< DOC
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
<html lang="ja">
<head>
<title>$test</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<p>テスト</p>
</body>
</html>
DOC;
}
?>

このようなスクリプトがあるとして、ブラウザで見るとshift_jisと解釈されてしまいます。
metaとtitle要素の位置を入れ替えるとUTF-8で解釈されるようになるのですが
別のスクリプトではmeta、title要素の並びがこのままでもUTF-8と解釈されているものがあります。

スクリプトファイル自体は両方ともUTF-8で書いてありますしソースにも差異が見られないと思うのですが
(別のスクリプトからコピペしてきたものなので)
何か心当たりのある方はご教示頂けるとありがたいです。

phpのバージョンは5.2.5、ブラウザはIE系、サーバはhttpdを使ったlocalhostです。
0129質問2008/01/28(月) 16:56:05ID:CLWaFVui

phpでIMAPをやろうとしています。今

$arybox = imap_listmailbox($stream, $server, "*");

for ($i = 0; $i < count($arybox); $i++) {

list(,$name) = explode("}", imap_utf7_decode($arybox[$i]));

$line = explode(".", $name);
print ($line[count($line)-1]); ←この辺適当ですがw
}


のような感じでメールボックスの名前を表示させようとしています。
英語は問題ないのですが日本語のボックス名では文字化けと言うか
きちんと表示されません。
どのようにエンコードしても上手くいきません。
日本語できちんと表示させるにはどうしたらいいのでしょうか?
最終的にはUTF8で表示させたいのですが
よろしくおながいします。
0130nobodyさん2008/01/28(月) 16:57:21ID:???
>>128
ファイルはUFT形式で保存してる?
ソースでUTF-8を指定してもShiftJIS形式で保存していたら意味ないし。
と言うか実際にそう言うミスをしているヤツが会社にいたから。
0131nobodyさん2008/01/28(月) 17:15:33ID:???
>>128
そのまま試したらブラウザではUTF8に解釈されたが
0132nobodyさん2008/01/28(月) 18:00:11ID:???
>>128
http://www.asahi-net.or.jp/~SD5A-UCD/rec-html401j/charset.html#h-5.2.2
> META宣言は、少なくともそのMETA要素がパースされるまでの間はASCIIの範囲内のバイト値が
> ASCIIと同じ文字を表すような文字符号化方法が使われている場合にのみ用いることができる。
> META宣言は、 HEAD要素の、可能な限り先頭の方に現れねばならない。

というかheader()でcontent-type吐いてやるのがベストだと思うけど
0133nobodyさん2008/01/28(月) 18:01:44ID:z2UAw/tw
>>130
ソースもUTF-8で保存しています。

>>131
あら、ちゃんと解釈されましたかorz
こちらはIE系だとダメでしたがFxだとUTF-8で解釈されていました。
もうちょっと調べてみます。
0134nobodyさん2008/01/28(月) 18:02:58ID:z2UAw/tw
>>132
header()を使うのがベストなのはわかるのですが
同じように書いたのに挙動が2通りあるのが釈然としないのです。
0135nobodyさん2008/01/28(月) 18:04:41ID:z2UAw/tw
あ、ID変わってますが128=133,134です
0136nobodyさん2008/01/28(月) 18:07:39ID:???
>>128
html的には
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
のメタタグに関してはtitleより先にもってこないといけない

あとapacheとかphp側で吐いてるheaderによって文字コードが設定されてしまう事が多々ある
なので明示的にmb_http_outputで出力文字コードを設定してやれば
文字化けを起こすことはかなり低くなると思うけど
0137nobodyさん2008/01/28(月) 18:12:42ID:???
>>134
わざわざ引用したけど全く読んでないみたいだな
0138nobodyさん2008/01/28(月) 18:38:13ID:z2UAw/tw
>>136
サーバ側とかphp側の設定にもよるかもしれないですね・・・

>>137
meta要素が解析されるまで同じASCIIコードの文字コードが使われている時に
meta宣言ができるという解釈でいいですか?
この場合いきなりhtmlソースになったから文字コードの解析がおかしくなった、ということでしょうか。
0139nobodyさん2008/01/28(月) 19:14:11ID:???
>>129
これで出来た。
mb_convert_encoding($val, "utf8", "utf7-imap")

imap_utf7_decodeは一体何のために・・・
0140nobodyさん2008/01/28(月) 19:18:01ID:???
何のためにって西洋人のために決まってるだろ
0141nobodyさん2008/01/28(月) 19:18:56ID:???
fsockopenを使ってSMTPサーバーからメールを送信したいんですがPOP BEFORE認証はどのようにやればいいんですか?
0142nobodyさん2008/01/28(月) 19:26:00ID:???
>>141
ぐぐりまくれ
0143nobodyさん2008/01/28(月) 19:26:54ID:???
>>141
前スレでも同様の質問があったな

788 nobodyさん [sage] Date:2008/01/24(木) 18:15:08  ID:??? Be:
    >>783
    http://phpspot.org/blog/archives/2005/12/pop_before_smtp.html
    これ読んでpopbeforsmtpで送れば?

0144nobodyさん2008/01/28(月) 19:33:43ID:???
まずは理屈を知ってから。
http://mizushima.ne.jp/MailStructure/MailStructure.php
0145nobodyさん2008/01/28(月) 22:11:24ID:hM6vuV4g
配列の中に配列を入れた場合がどうも苦手です。

$array1 = array('男','女','その他');
$array2 = array($array1,$array1,$array1);
print_r ($array2);
if(in_array('男',$array2))
{
echo "あり";
}
else
{
echo "なし";
}
として検索すると「なし」が出ます。
実行結果
Array ( [0] => Array ( [0] => 男 [1] => 女 [2] => その他 ) [1] => Array ( [0] => 男 [1] => 女 [2] => その他 ) [2] => Array ( [0] => 男 [1] => 女 [2] => その他 ) ) なし
どうすればいいでしょうか。
0146nobodyさん2008/01/28(月) 22:20:24ID:???
$array1 = array('男','女','その他');
if(in_array('男',$array1)) 
{ 
echo "あり"; 
} 
else 
{ 
echo "なし"; 
} 
0147nobodyさん2008/01/28(月) 22:23:15ID:???
phpは、ナルシスト言語だろ。
どういうことか、分かるよね。
0148nobodyさん2008/01/28(月) 22:26:18ID:???
in_array()は配列中の値を調べるが、1次元の配列までしか調べることはできない。
$array2を1度分解して1次元の配列にすれば解決。
0149nobodyさん2008/01/28(月) 22:27:49ID:???
>>145
$array1 = array('男','女','その他');
$array2 = array($array1,$array1,$array1);
print_r ($array2);
foreach ($array2 as $key => $ary1) {
  if(in_array('男',$ary1))
  {
    echo "あり index=>".$key."\n";
  }
  else
  {
    echo "なし";
  }
}
0150nobodyさん2008/01/28(月) 22:33:39ID:hM6vuV4g
>>148-149 なるほど、そうだったのですか。どうもありがとうございました。
0151nobodyさん2008/01/28(月) 22:36:43ID:E8VxvVW/
Header locationやjavascript出力でページ遷移させるときに、
そのURLにGETメソッドの形でパラメータつけていって、遷移先のページで
その情報をキーにしてページを生成させる場合があると思います。

そういう場合、移動先のページでユーザがブラウザのURL欄を編集して
こちらの想定外のページを表示させることがあると思うんですが、
こういう対処どうしたらいいんですか?
そんなバカなことする奴は無視?
それしきの細工で致命的な想定外動作を生むようなプログラム書くやつがアホ?
結構悩んでしまいます GETメソッドまったく使わないわけにいかないし
0152nobodyさん2008/01/28(月) 22:39:26ID:???
>>151
ユーザは何するか分ったもんじゃないってことを前提にやっていかないとダメでふ。
要するに対策しないとダメってことでふ。
0153nobodyさん2008/01/28(月) 22:41:17ID:???
>>151
そこまでは責任持たなくていいよ
xss対策だけしっかりしとけば
0154nobodyさん2008/01/28(月) 22:42:21ID:???
>>152
なんでも、ユーザーのせいにするのは頭が悪い設計者の考え。
設計者は、あらゆるケースを想定して対策を講じなければいけないし、
そのようにしないと、一定のセキュリティーは保てない。
0155nobodyさん2008/01/28(月) 22:46:46ID:???
>それしきの細工で致命的な想定外動作を生むようなプログラム書くやつがアホ?
致命的想定外を起こさないために当然チェックはしてるんでしょ?
必要な変数が渡されてるか、渡された変数が正しいものかとか。
おかしかったらページを生成せずに警告かえしとけばいいわけで。
0156nobodyさん2008/01/28(月) 22:55:36ID:???
つまり、>>152は低脳ってことでFA??
0157nobodyさん2008/01/28(月) 22:56:40ID:hM6vuV4g
すいません、もう1つ質問させてください。
phpからコマンド叩いて「rootユーザとしてログイン」して作業を行いたいんですが、
そもそもphpからrootユーザでのログインはできるんでしょうか。
0158nobodyさん2008/01/28(月) 22:58:22ID:???
そんなバカなことする奴は無視? →無視
それしきの細工で致命的な想定外動作を生むようなプログラム書くやつがアホ? →アホ

お前の書いてるとおりだよ 両方
0159nobodyさん2008/01/28(月) 22:58:50ID:???
コマンドってことは、BASIC認証のことでしょうか?
それをphpからっていうと、ソケットで送信することになりますが、可能です。
01601522008/01/28(月) 23:02:52ID:???
だから対策しないとダメって言ってんじゃんwwwww
叩いてる奴同一人物だろ?頭悪いな。
0161nobodyさん2008/01/28(月) 23:04:26ID:???
>>157
sudoとか使えばいいんじゃない
基本的にそのままじゃ無理だと思うけど
0162nobodyさん2008/01/28(月) 23:06:15ID:hM6vuV4g
いえ、例えば以下のような類のプログラムです。
<?php
$output = `ls -al`;
echo "<pre>$output</pre>";
?>
0163nobodyさん2008/01/28(月) 23:06:43ID:eFFy9q14
ちょっとPHPとは違うんだけどさPHPをウインドウズ環境で開発してるんだけど・・・。

現在ウインドウズサーバに、VNCをインストールしてリモート操作しているが、やはり、これで接続して操作しようとすると、スクロール動作など反応が遅くやりづらいので、tera termなどの通信ソフトを使ってサーバをリモート操作しようと思います。
しかしこのソフトって本来リナックスサーバ用のソフトですよね。
私のように、ウインドウズをサーバにして使っているような環境でも動作するものなのかな?
0164nobodyさん2008/01/28(月) 23:09:27ID:???
>>163
FTP鯖立てるんじゃだめなの?
0165nobodyさん2008/01/28(月) 23:11:51ID:???
まったくPHPと関係ないですね。
普通の人はWindowsXPあたりで開発もするし、デバッグもApacheを入れて同じPC上で行う。
0166nobodyさん2008/01/28(月) 23:12:07ID:hM6vuV4g
>>161 sudoでroot権限を与えていないユーザが踏んでもコマンドを叩くようにしたいのですが、
0167nobodyさん2008/01/28(月) 23:13:59ID:hM6vuV4g
あれ、混乱してきた。。。そもそもexec系のプログラムでコマンドを叩く場合、誰が叩いていることになるんだ?スクリプトが置かれているところのユーザ?
0168nobodyさん2008/01/28(月) 23:14:34ID:???
>>163
同一のローカルネットワーク内なら
ファイル共有しちぇばいいんじゃ?
というか激しくスレ違いな

>>162
ただのコマンドうちたいだけならそれでいいと思うんだけど
別にrootにならなくてもどーとでもできるよ?
0169nobodyさん2008/01/28(月) 23:17:48ID:???
rootで作業するとはおそろしい
0170nobodyさん2008/01/28(月) 23:18:05ID:hM6vuV4g
ルートにならなければできないコマンド、例えばユーザの管理とか。そういうこともrootにならずともできますか?
0171nobodyさん2008/01/28(月) 23:20:41ID:???
>>167
apacheだったと思う
0172nobodyさん2008/01/28(月) 23:21:59ID:???
apacheが動いてるユーザーじゃないの?
0173nobodyさん2008/01/28(月) 23:22:15ID:???
そーゆことをphpでやる状況が想像できない
0174nobodyさん2008/01/28(月) 23:26:51ID:???
apacheをrootで動かす状況が想像できない
0175nobodyさん2008/01/28(月) 23:33:33ID:???
>>170
一応できる
まぁ
http://jp.php.net/manual/ja/ref.ssh2.php
こういうのいれてやる方がいいのかもしれない
0176nobodyさん2008/01/28(月) 23:40:25ID:???
COMを使ってPHPからExcelファイルを作成しています。
そんで、改ページを挿入したいんですが、やり方が判らないです。
HPageBreaksメソッドを使えば出来ると思うのですが・・・

Ver等ですが、PHP5.1.2+Win2003です。
0177nobodyさん2008/01/28(月) 23:41:28ID:5bZSpkHc
おっと、質問者はsage禁止か!
0178nobodyさん2008/01/28(月) 23:46:57ID:hM6vuV4g
>>175 おーなんかいけそうな気がしてきました。ありがとうございます。
0179質問2008/01/29(火) 00:46:04ID:8zOSMWfb
phpでIMAPをやろうとしています。今

$arybox = imap_listmailbox($stream, $server, "*");

for ($i = 0; $i < count($arybox); $i++) {

list(,$name) = explode("}", imap_utf7_decode($arybox[$i]));

$line = explode(".", $name);
print ($line[count($line)-1]); ←この辺適当ですがw
}


のような感じでメールボックスの名前を表示させようとしています。
英語は問題ないのですが日本語のボックス名では文字化けと言うか
きちんと表示されません。
どのようにエンコードしても上手くいきません。
日本語できちんと表示させるにはどうしたらいいのでしょうか?
最終的にはUTF8で表示させたいのですが
よろしくおながいします。
0180nobodyさん2008/01/29(火) 01:00:58ID:???
>>139嫁よタコ
0181nobodyさん2008/01/29(火) 01:15:18ID:???
>>180
ただの定期スパムだ気にするな
0182nobodyさん2008/01/29(火) 02:08:47ID:???
何から何まで一発でやってくれる関数ってないもんかね
0183nobodyさん2008/01/29(火) 02:27:03ID:???
>>182
つ「プログラマ」
0184nobodyさん2008/01/29(火) 06:29:06ID:???
  ,'. : : : .::::/. : .', ::::::. : : : :l:i
  !: : : .::::;:'. : : : :' ,::::::. : : :l.:|
  ',: .::::::/. : : : : : :.ヽ:::::. : :l、!
   ト、:::/: : : : i : : : : ヽ::::::/ l
   ヽ. l: : : : : l : : : : : :lノ' ノ!
      l: : : : :ハ: : : : : :.lテ´ |'
      ,!: : : :i l:: : : : : l  /
     /!: : .::lーl:: i: : : :|            トトト---- 、
   _ /」: : :l:|  l:: |: : : :l- 、_         」        ヽイ
  /l l l: l: :|:l  l: |i: : : l l l ヽ      ミ   rn     〈
  ! l l !:l|: l!l  j/ l: : /l //  |    ス  ,ィ7」j l77¬. }¬、
  ! ヽヽ|! l:| | / /:.イ///  l  _rー┘lV t:::/ ! V z::: lー{ / _,\ >>182 頼む!一発やらせてくれ!!
  | | `l|ヽl! ___/'´/'´イ   l /'´/┴---- ' | ' ----┴ヘ ヽ.|
  l  !    | ┬/ '´   |   |{|_l_____/\_____| ヽ_〕
  ! :.l      !       !:.  l l/    | />  ̄` <ヽ__\ L「
  | ::.',     |       !:.  |      lハ  |  lc | / | |ヽ|
  ! ::::}     !       !::  l       l V l 、 l   !./ー' i
 / .:/    i      |:: |       i cV!_!_|'    |
0185nobodyさん2008/01/29(火) 07:27:13ID:AL6Mrzhd
おしえてください

<td>
あいうえお 123456 </td>
<td>

数字だけを抽出したいのですがうまくいきません

preg_match('/<td>\n\s*.*\s([0-9]+)\s<\/td>\n<td>/', $buf,$match);

echo $match[1];

こういう場合は一旦全部抽出させてereg_replaceで「あいうえお」を削除したほうがいいのでしょうか

よろしくおねがいします

0186nobodyさん2008/01/29(火) 07:50:35ID:???
>>185
状況によりけりだろ。「あいうえお」しかないのならばそれでいいけれど、
漢字とか含んでいたらどうする?
0187nobodyさん2008/01/29(火) 07:57:57ID:???
ereg使うんじゃないの?
0188nobodyさん2008/01/29(火) 08:08:41ID:???
>>185
もうちょっと条件を厳密にしないとちゃんとした正規表現作れないよ
0189nobodyさん2008/01/29(火) 08:50:53ID:ak6dtF+8
>>185
$match = preg_replace("/[^0-9]/", "", $text);
0190nobodyさん2008/01/29(火) 08:59:06ID:???
<td>
あいうえお 123456 </td>
<td>

html 自体おかしいな
http://w3g.jp/xhtml/dic/td
0191nobodyさん2008/01/29(火) 09:23:39ID:AL6Mrzhd
レスありがとうございます
文字は固定なので一旦抽出してから削除する方法にしました


0192nobodyさん2008/01/29(火) 09:30:48ID:rqLkKeN0
下記のようなリクエストをヘッダーで送信して、そのページで結果を表示させたいのですが。
-----------------------------------------
POST http://localhost/Project/POST_TEST/index2.php HTTP/1.1
Host: localhost
Content-Type: application/x-www-form-urlencode
Content-Length: 16

新宿 居酒屋
-----------------------------------------
これを$requestに入れて、
header($request);
header("Location: index2.php");
のようにしても、
「Header may not contain more than a single header, new line detected」
のようなエラーが出力されます。
どのようにしてPOSTを送信して、送信先のページに結果を表示させることができるのでしょうか?
0193nobodyさん2008/01/29(火) 12:38:45ID:???
エラーの意味がわかれば答えが出そうなもんだが
0194nobodyさん2008/01/29(火) 12:57:49ID:???
ソフトハウスに依頼すれば全部やってくれるぞ。
0195nobodyさん2008/01/29(火) 13:01:58ID:???
しまった>>182へのつもりで送ってた。
作業してる間にログかなり流れてたわ。
0196nobodyさん2008/01/29(火) 13:04:59ID:3emMDaRd
すんません教えてください
$a=123456;
$aをlong(4バイト整数)とした場合にこれの
上位ワード、下位ワードを取得して更に上位バイトと下位バイトにわける方法を教えてください
CでAPIを使ったイメージで言うと
awh=HIWORD(a);
awl=LOWORD(a);
abl=LOBYTE(a);
みたいな関数があったら教えてください・・
0197nobodyさん2008/01/29(火) 13:10:28ID:???
若干スレ違いかもしれないけど、一応PHPの関数なんで質問。

chmod()でファイルをアップロード後に、特定のパーミッションにしてるんだけど
レンタルサーバーで試すと、エラーが出てしまう。
しかし、エラーが出ていてもちゃんとそのファイルのパーミッションは変更されているので
現在は@つけてエラー無視してるんだけど、何が原因なのかわからない・・
chgrp()、chown()などは利用することが出来ないレベルの権限です。

フォルダ構成は
[public_html/0755] - index.php
- [img/0777] - アップされた画像ファイル(これの権限)
- image.php(アップを実行しているファイル)
環境:
Server:FreeBSD/ PHP4.4.2 /スーパーユーザーの権限はなし。

よろしくお願いします。
0198nobodyさん2008/01/29(火) 13:11:11ID:???
>>197
スレ違い以前の問題
まずは>>1を読め
あと何のエラーかぐらい表記しろ
01991972008/01/29(火) 13:17:56ID:R+uUiaBI
失礼しました。

該当箇所でのエラーは下記です。
Warning: chmod(): Operation not permitted in /エラーを出したファイルへのパス/
0200nobodyさん2008/01/29(火) 13:18:56ID:???
>>199
chmod使わなくても勝手にパーミッション設定されたりしてない?
0201nobodyさん2008/01/29(火) 13:21:49ID:???
>>198
知らないならレスしないでください。うざいです
02021972008/01/29(火) 13:23:26ID:R+uUiaBI
>>200
試しに該当箇所のソースをコメントし、ただ単純に
アップしてみたところ644になってました。

なぜ今回PHP上からパーミッションの変更がしたかったかと
いいますと、ユーザーが画像やテキストファイルなどをアップした場合
後に削除要望がある場合を想定して、ファイルの権限やパーミッションを
削除可能な権限にしておきたいと思ったからです。
0203nobodyさん2008/01/29(火) 13:25:36ID:???
>>202
644でも削除可能だと思うんだが
02041972008/01/29(火) 13:31:40ID:???
>>203
ありがとうございます。おっしゃるとおりなんですが、
なぜエラーが出ているのに、変更は出来ているのかというのが
疑問でして・・
自分自身が設定希望のパーミッションは0755です。
0644でも問題はないのですが、パーミッションが変更出来ないなら
出来ないでいいんですが、出来ているのが気持ち悪いというか・・
よくわからない質問ですみません。
0205nobodyさん2008/01/29(火) 13:36:15ID:???
>>196
直接Cのintのバイト列にはさわれないし、無理じゃないかなぁ。
それとも、単純にビットシフトをサボりたいだけ?
エンディアンはどーしたいの
0206nobodyさん2008/01/29(火) 13:39:07ID:3emMDaRd
>>205
シフトできるんですか?できるならシフトでもかまいません。
Cみたいに普通に
$b=($a>>8)&0xFFFF;
ってできますか?
0207nobodyさん2008/01/29(火) 13:51:52ID:???
やってみりゃわかる
0208nobodyさん2008/01/29(火) 14:04:23ID:3emMDaRd
あ、できましたね・・・
HPみてもこれ載ってなかったからできないものと思い込んでました・・
ちなみにこれ知らなかったのでわざわざHEX文字にしてsubstrで2バイトとって
それをintvalでってめんどいことしてました。
あー!
0209nobodyさん2008/01/29(火) 14:08:03ID:???
>>196
$long = 0xab1fe22;
printf("%08xh\n", $long);
printf("%08xh\n", $long & 0xffff);
printf("%08xh\n", ($long & 0xffff0000)>>16);
みたいのではだめ?
関数でやりたいんなら自作して使うとか。
0210nobodyさん2008/01/29(火) 14:08:33ID:???
1ビットの右シフトは2で割ることと同じなわけで…
0211nobodyさん2008/01/29(火) 14:12:43ID:???
質問です。

windows xpにApache2 + php4 + pear標準のみの環境で
XML UnserializerとXML Parserを制作しているphpプログラムの
libsディレクトリ内に配置して

ini_set('include_path', 'libs' . PATH_SEPARATOR . ini_get('include_path'));

っとインクルードパスを設定しているのですが

Fatal error: Class xml_parser: Cannot inherit from undefined class pear in 〜libs\XML\Parser.php on line 96

のようなエラーが出てしまいます。

これはPEAR.phpをインクルードできていないのでしょうか?
それとも他に原因があるのでしょうか?
0212nobodyさん2008/01/29(火) 14:16:33ID:???
>>211
>>1
0213nobodyさん2008/01/29(火) 14:23:36ID:3emMDaRd
>>209
すんません。
普通にシフトが使えたのでそれでできました。
0214nobodyさん2008/01/29(火) 14:41:58ID:3emMDaRd
すんません。更に教えてください
例えば、
$b = sprintf( "%c%c%c%c%c", 1, 2, 3, 4, 5 );
としたときに、$b[2]の値(ここでは3)を取り出したいのですがどうすればいいでしょうか?
一応Cのバイトの配列をイメージしているのですがうまくいきません・・・
0215nobodyさん2008/01/29(火) 14:47:08ID:???
>>214
ord($b[2])とかすりゃ出来るけどそんなことせんでも普通の数値配列ではダメなんか。
細々と質問するより全体として何をしたいのか書いたほうが良いんじゃないかな。
■ このスレッドは過去ログ倉庫に格納されています