検索結果
PHP
- 全てのカテゴリ
- 全ての質問
- PHPでRSSから要素を取得する方法について
PHPでRSSから要素を取得する方法について 下記のrss情報から「lddata:syousai」にあるA,B,Cの各""内の情報をphpで変数に 格納しようと思っていますがどうしてもうまく行きません。 このような形式の場合、どのようにして取得したら良いのか お知恵を貸していただけないでしょうか。 PHPを勉強し始めたばかりなので恥ずかしい質問内容になっているかも知れませんが 何卒よろしくお願いいたします。 ▼XML 詳細 ・rssの場所 http://test.com/forecast/rss/test.xml ・rssの内容 <?xml version="1.0" encoding="UTF-8" ?> - <rss version="2.0" xmlns:lddata="http://test.com/ns/rss/2.0"> - <channel> <title>test</title> <link>http://test.com</link> - <item> <title>情報タイトル</title> <link>http://test.com/jyoho/2010-05-15-18-24.html?r=?rss</link> <lddata:syousai A="東京都" B="9" C="日付データ" />  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ↑変数に格納したい場所 </item> </channel> </rss>
- PHPを使ってMySQLのフィールドの追加ができない
function部分は外部ファイル function getResult($query){ $result[result]=mysql_query($query,$this->connect) or die(mysql_error()); $result[count]=@mysql_num_rows($result[result]); return $result; } $null = ""; $query="insert into main values ($_POST[id],'$_POST[name]',$null,$null,$null,'$null')"; $insert[result]=$db->getResult($query); このように記述してmainテーブル内に新規フィールドの追加をしようとしたのですが、次のようなエラーが出ます。 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ',,'')' at line 1 $nullは結局NULL値なので、 ($_POST[id],'$_POST[name]',,,,) でやってみたのですが、これも同じです。 当たり前といえば当たり前ですが、 ($_POST[id],'$_POST[name]',,,,)を ($_POST[id],'$_POST[name]')と 省略してみましたが、数が合わないとエラーが返ってきました。 定型のfunctionに頼らず、$insert[result]=$db->getResult($query);のかわりに if(mysql_query($query,$db->connect)){ echo"成功"; }else{ echo"失敗"; } このようにも試してみたのですが、データは追加されず、失敗と表示されてしまいます。 どこをどう修正すればいいでしょうか。 どなたかお助けください。 ちなみに1,3~5番目が数値型で、2,6番目が文字型、1番目以外はNULLを許可しています。 どこもオートインクリメントは使用していません。
- 【PHP】ファイル生成/削除禁止の企業サーバーってありますか?
PHP実務歴2年です。 いままでレンタルサーバー内でのプログラミングばかりでしたが、今後企業へのプログラム納品がありそうなためお伺いします。 レンタルサーバー内で当然のごとく使えていた関数が企業所有のサーバーでは禁止されている… そんな関数はありますでしょうか。 特に危惧しているのは以下の関数です。 1)ファイル/ディレクトリを生成する関数 2)ファイル/ディレクトリを削除する関数 3)ファイル/ディレクトリを改名/移動する関数 4)ファイルをコピーする関数 5)属性を変更する関数 いままで井の中の蛙でしたんで場合によっては開発方針を変えなくてはなりません。 できれば大企業のサーバーを経験された方、アドバイスをいただけませんでしょうか。 よろしくお願いいたします。
- PHP + MySQL で登録時に重複チェックをしたいです。
PHP + MySQL で登録時に重複チェックをしたいです。 DBには ID Title Name 1 Book1 Author1 2 Book2 Author2 と3000件ほど入っています。これからも増えていく予定です。 このDBにPHPから新たに100件ほどのレコードを一気に登録したいときに、 ・Title名が既にDBに登録されている → 何もせずに次へ ・Title名がまだ登録されていない時 → DBへ登録 と、この様な処理をさせたいと考えています。 現状は登録したい値を配列で回し、一つ一つSELECT文で件数チェックをし、0件で有れば登録。0件以外であれば無視。と、している状況です。 ただこれですと、どうしてもサーバーに負担が掛かってしまう気がするのです。 もし、何か他に良い方法がありましたら教えていただけないでしょうか? よろしくお願いいたします。
- ベストアンサー
- PHP
- 0xxxYuMixxx0
- 回答数4
- PHPのVMはどのようなものがあるでしょうか?
PHPのVMはどのようなものがあるでしょうか? RubyでのYARVのようなものがないか調べています。 ネットでの検索では探し出すことができませんした。 複数あるようでしたら、一番有名なもの、開発が活発なものを 特に教えてください。
- MySQLとPHPでのデータのやり取りで困ってます。。
MySQLとPHPでのデータのやり取りで困ってます。。 テーブルA(商品データテーブル)からデータをPHPに読み出し、注文ボタンが押されたらテーブルBに書き込まれると言う様にしたいのですが、最近勉強を始めたのもあって考え方が解りません。 ソースは画像にして添付してあります。 ※ソースが長かった為エラー処理等省いたのですが文字数制限で直接書き込めませんでした。 流れとして テーブルA(商品データテーブル)からデータを表示する。★ここまでは出来ました! ↓ テーブルAの内容に+利用日等の情報を入力してもらいテーブルBに書き込む★ここが解らないです>< どうか噛み砕いて優しく教えてくれる方お願いします。(初心者でなかなか上手く理解出来ないんです。) 画像URL http://www.dotup.org/uploda/www.dotup.org980441.jpg.html 画像ダウンロードパスワード 1224 宜しくお願いします★
- ベストアンサー
- インターネットビジネス
- masako1224
- 回答数1
- Javascriptの要素名にPHPの配列を組み込みたい
PHP初心者です。 QNo.2695437 QNo.741779 のような 過去のQ&Aも参照させて頂きましたが、 解決できないのでどなたか教えてください。 プルダウンを選択すれば隣のテキストボックスが入力可能となり、 さらに、そのプルダウンの値とテキストボックスに入力された値と その行のシリアルを、配列でPHP側に渡そうとしています。 プルダウンおよびテキストボックスのnameは、 PHP側で動的に生成しています。 このようなかんじです↓ 【PHP側】 for(条件式){ list($serial, $a_code, $a_name) = $res[$i];//DBから取得した値を格納 $html = "<tr>" "<td align='center'>" . $serial . "</td>" "<td align='center'>" "<select name='AAA[".$serial."]' onchange='pullDown(".$serial.")'>" "<option id='AAA' value='" . $a_code . "'>" . $a_name . "</option>" "</select>" "</td>\n" "<td align='center'>" "<input type='text' id='".$serial."' name='BBB[".$serial."]' value='".$BBB."' style='background-color:#D4D0C8;' disabled/></td>\n" "</tr>\n" ; } (「$html .= 」と文末の「;」は見やすく省略しました) 【テンプレート側】 function pullDown(id) { // idには$serialをとりたい var selectedNum = document.forms['frm1'].elements['AAA[id]'].selectedIndex; //これでは正しくオブジェクトが指定できていません if(selectedNum != 0) { document.forms['frm1'].elements['BBB[id]'].disabled = false; document.forms['frm1'].elements['BBB[id]'].style.backgroundColor='#FFFFFF'; } else { document.forms['frm1'].elements['BBB[id]'].disabled = true; document.forms['frm1'].elements['BBB[id]'].style.backgroundColor='#D4D0C8'; } } <html> $htmlを埋め込み <input type='button' value='登録' onclick='登録処理に飛ばします' /> </html> 3次元配列として値をsubmitすれば、 登録処理が簡単になるかと思い、このようなソースになっています。 プルダウンとテキストボックスをうまく連携させ、 かつ配列に値をうまく格納したいのですが、 お知恵を貸してください。
- PHP+MySQLでエスケープされたデータを格納したい。
php.iniの設定でmagic_quotes_gpc = Offにして、 mysql_real_escape_stringで出力エスケープしたデータを MySQLに格納するとバックスラッシュが格納されない。 エスケープされたデータを格納したいです。 php.iniの設定 --------------------------------------------------------- ; Magic quotes for incoming GET/POST/Cookie data. ; magic_quotes_gpc = On magic_quotes_gpc = Off ; Magic quotes for runtime-generated data, e.g. data from SQL, from exec(), etc. magic_quotes_runtime = Off ; Use Sybase-style magic quotes (escape ' with '' instead of '). magic_quotes_sybase = Off --------------------------------------------------------- $_POST['us_fname']には「'user'」という文字列が格納されています。 --------------------------------------------------------- $clean['us_fname'] = $_POST['us_fname']; $mysql['us_fname'] = mysql_real_escape_string($clean['us_fname']); $sql = "insert into table ( us_fname ) values ( '".$mysql['us_fname']."', ) "; --------------------------------------------------------- echo $mysql['us_fname']; で確認すると「\"user\" 」となっているんですが、 MySQLの中を確認すると「'user'」のままでシングルクォートがエスケープされていません。
- PHPのpack関数をJavaで実装できるのでしょうか
PHPで文字列を16進バイナリ文字列に変換する関数であるpack関数というものがありますが、これと全く同じ動きをしてくれるメソッドがjavaには存在しないようです。これを自分で実装する方法をあれこれ考えているのですが、どうしてもうまくいきません。 下のようなメソッドを作ってみたのですが、戻ってくるのはただの数値文字列です。 /** * @param toPack バイナリへの変換対象の数値 */ String getHexBinary(int toPack){ String buf = ""; String hex = Integer.toString(toPack, 16); char decChars[] = hex.toCharArray(); for(int decChar : decChars){ buf += Integer.toHexString(decChar); } return buf; } PHPのpack関数はこの戻ってくる数値文字列を何らかの手法で結合しているように見えるのですが、その挙動が理解できずに困っています。どなたか、ご教授願えないでしょうか。ちなみに、Javaのバージョンは5.0でやっています。PHPのバージョンは5.2です。
- PHPのページ間による配列の受け渡しについて
A.php ---------------------------------------------------- for($i=0;$i<5;$i++){ $hairetu[$i]=$i; $h_name[$i]=$i; } print "<form action='./B.php' method='POST'> for($i=0;$i<5;$i++){ print "<input type='text' name='".$h_name[$i]."' value='".$hairetu[$i]."'>"; } print "<input type='submit' value='Bへ送信'>"; print "</form>"; ------------------------------------------------------------ 拙い流れですが、このようにAからBへと送信します。 Bはいったい、どのようにしてAから送信されてきた配列を受け取れることができるのでしょうか? JavaScriptは使わず、PHPのみで作成したいと思いますので、よろしくお願いいたします。
- PHPの正規表現で一部のURLを抜き出したい
<a href="../hoge/hoge/hoge123.htm">テスト1</a><br> <a href="../hoge/hoge/hoge124.htm">テスト2</a><br> <a href="../hoge/hoge/hoge125.htm">テスト3</a><br> <a href="../hoge/hoge/hoge126.htm">テスト4</a><br> <a href="../hoge/hoge/hoge127.htm">テスト5</a><br> このような文字列があり「../hoge/hoge/hoge126.htm」だけをマッチさせたい場合はどのような正規表現を書けばよいでしょうか?回答宜しくお願いします。 *URL内の文は使わず、テスト1、テスト2・・・と<a href="、">を使ってくださいお願いします。
- 秀丸のPHPまるごと強調表示 Ver1.0の使い方
秀丸エディタのマクロ、PHPまるごと強調表示 Ver1.0 がありますが使い方がわかりません。拡張子もmacではなく、highlightと書かれていますし、マクロに登録しても使えなかったし、ネットで探しましたが使い方も特に書いてませんでした。どのように使用したらいいでしょうか?
- ベストアンサー
- PHP
- coolcooler
- 回答数1
- apache2とphp5(パッケージ版)が連携できません。
apache2とphp5が連携しなくて困っています。 元々ソースでapacheとphp4が入っていた筐体なのですが、今回バージョンアップをするということで、apache2、php5共にパッケージでインストールしてみました。apache2は起動したのですが、php5が動いていないようでwebでphpの画面を見に行くとphpファイルのダウンロードになってしまいます。 /usr/local/bin/php -vで調べるとphp4点台のままで、pkginfoを見るとphp5点台になっています。 ソースで入れたものをパッケージで上書きできるということは無いのでしょうか。 質問がまとまらなく申し訳ないですが、ソースからパッケージでバージョンアップというのは可能でしょうか。 OSはsolaris8です。
- ベストアンサー
- ハードウェア・サーバー
- junmusic
- 回答数1
- Flash Playerのような展開表示をJS/ASP/PHPで…。
いつもお世話になっております。 本日は、リンクボタンをクリックすると、そのリンクの下に他のメニュー等が展開するようなものについて、下記のサイトに近いものをjavascript、もしくはphpやaspなどで製作できないかと思い、ご質問させていただきます。 http://www.adobe.com/jp/products/flash/ adobe社の公式サイト(Flash Playerのページ)なのですが、こちらのページ左側にある"30日無償体験版"の下にある 『本製品を含む~…』から『購入方法』と並んである数個のリンクと同様の動作を javascript、もしくはphpやaspなどで再現できないかと思っております。 滑らかな表示等は無理だとは思いますが、なにか方法がございましたら ご教授ください。無理or非常に難しい、とご判断いただける場合その一言だけでも投稿いただけますとうれしいです。 よろしくお願いいたします。
- ベストアンサー
- JavaScript
- Pesi
- 回答数3
- phpを使ったサイトでのDNS エラーについて。
下記のサイトを利用しています。 pagmail http://www.pagport.jp/ ・ログインして受信フォルダなどを見る分には問題ないのですが 新規メールを送信、または保存しようとすると 「サーバーが見つからないか、DNSエラーです」と表示されて進めません。 ・別のPCでは正常に利用できます。 (このPCでも以前は利用できていました。) ・下記のサイトなども参考にしましたが改善されません。 http://clubpc.vis.ne.jp/faq/f5.html ・システムの復元を試そうと思いましたがなぜか1週間前の復元ポイントしか存在してなく、失敗に終わりました。 ・IEもほかのソフトも同じ所でエラーになります。 ・暗号強度は128bitです ・SSLの状態のクリア、IEのSSL関連dllを再登録、「SSL3.0を使用する」「TSL1.0を使用する」チェック済み ・ウイルスソフトはNortonですが、以前は大丈夫だったのでNortonのせいではないと思います。 ■自分のPCではないので再セットアップとかは避けたいです。 パソコンは詳しくないので、噛み砕いた言葉でご指南いただけると嬉しいです。
- phpをレンタルサーバにアップしてもうまくいかない
Xamppのapacheを用いて localhostで次のプログラムを実行するとうまくいくのですが いざレンタルサーバにアップするとうまくいきません。 (whss.bizというphp,mysql対応サーバ) <?php if(isset($_POST['userid'])==True && isset($_POST['password'])==True) { $userid=$_POST['userid']; $password=$_POST['password']; $logFile=dirname(__FILE__).'/'.$userid.'.log'; if(file_exists($logFile)==False) { file_put_contents($logFile,$password); header("Location:backtotop.html"); } else { echo '<font color="red">このユーザーIDはすでに使われています。<br> 恐れ入りますが別のIDにして下さい。</font><br>'; } } ?> <html> <head> <title>新規登録画面</title> </head> <body> 新規ユーザー登録を行います。<br> 好きなユーザー名とパスワードをともに半角英数字で入力してください。<br> <form action="newuser.php" method="POST"> ユーザー名:<br> <input type="text" name="userid" size="25" /><br /> パスワード:<br> <input type="text" name="password" size="25"> <input type="submit" value="入力完了"> </form> </body> </html> これはユーザーIDとパスワードを登録するものなのですが、 Warning: file_put_contents(/home/brightsuger/public_html/brightsuger.log) [function.file-put-contents]: failed to open stream: Permission denied in /home/brightsuger/public_html/newuser.php on line 9 Warning: Cannot modify header information - headers already sent by (output started at /home/brightsuger/public_html/newuser.php:9) in /home/brightsuger/public_html/newuser.php on line 10 入力完了を押すと↑がでてきてしまいます。 1つ目のWarningにあるように サーバー上ではfile_put_contentsはできないのでしょうか? また、2つ目のWarningは意味がよくわかりません。
- ベストアンサー
- PHP
- lordofroom
- 回答数1
- Apache2.0.63でphp4.4.4(起動できない!)
現行のシステムと同じ環境を作るためphp4.4.4を入れようとしています。 公式のサイトからphp-4.4.4-installer.exeをダウンロードして、インストールしました。そしてphp4apache2.dllもphp4apache2.dll-php4,4,x,zipのものに変更しました。 その後apacheのhttpd.confを変更して起動したのですが、 「The requested opration has failed!」となり起動できません。 error.logには ---------------------------------------------------------------- Syntax error on line 173 of C:/Program Files/Apache Group/Apache2/conf/httpd.conf: Cannot load C:/PHP/php4apache2.dll into server:[文字と数字と\の羅列] ---------------------------------------------------------------- と出ています。 php.iniの設定など見直してみましたが特におかしな点は見当たりませんでした。 気になっているのがphpをインストーラで入れた所、ファイル構成がinstall.txtの記述と違っている点です。 以下のフォルダやファイルしかなく、あるはずのsapiフォルダなどがありません。 ---------------------------------------------------------------- ・BACKUPフォルダ ・sessiondataフォルダ ・uploadtempフォルダ ・IISConfig.exe ・install.txt ・License ・php4ts.dll ---------------------------------------------------------------- 今気づいたのですが、サーバーをApacheに設定しているのにIISとあるものがあるのも変な気がします。 どうすればphpを使えるようになるか、ご教示お願いします。 情報不足でしたら補足いたします。 本題とはずれますが、error.logは毎回出力されないのでしょうか? 何回か設定を変えては起動、を繰り返したのですが、その分のエラーは追加されていないようです。
- PHPで、エラーがない場合のみ画面遷移させたい
PHPのプログラムを作成しています。 動きとしては、 1.ユーザに値を入力させる 2.ユーザが入力した値をエラーチェックする 3.エラーチェック結果、もしエラーがなければ次の画面へ遷移し、エラーがあればメッセージを画面表示 という動きです。 (教えて!gooのような動きをさせたいのですが・・・) 2まではできていますが、3で困っています。 エラーがあればメッセージを画面表示するのはできましたが、エラーがない場合に次の画面へ移動する、というのはどのように実装すれば可能でしょう。 現在のソースは以下のような流れです。 ---------------------------------------------------------- <?php $getChar = $_POST["char"] /*--- エラーチェック ---*/ if( isset( $_POST["send"] ) ) { if( strcmp( $getChar, "" ) == 0 ) { // 空の場合はエラー $strErr = "エラーメッセージ"; } echo $strErr; // ★ } ?> <form method="POST" action="#" name="form"> 名前:<input type="text" name="char"> <input type="submit" name="send" value=\"送信\"> </form> ---------------------------------------------------------- 現在は上のような流れで処理を行っています。 今はエラーがある場合はエラーメッセージを表示(★部)し、ない場合はエラーメッセージを表示せず、画面遷移も行いません。 本当はエラーがない場合は次の画面へ遷移をさせたいのですが、どのように指定をさせたら良いのでしょうか。 すみませんが、ご回答よろしくお願いいたします。
- ベストアンサー
- PHP
- skyship080
- 回答数2
- PHP+mySQLでのCSV→DB登録で文字化けします
現在タブ区切りのCSVファイルをPHPで取り込み mySQLへINSERTするものを作ろうとしているのですが INSERTするモノに全角が入ると文字化けているせいか mysql_queryでFALSEが帰ってきてしまいます。 使用環境、コードを以下に書きます。 どこかおかしな点等ありましたらご教授お願い致します。 OS:windowsXP PHP:Ver5.2.6、default_charset UTF-8 mysql:Ver5.0.51a UTF-8 取り込みたいCSV:Shift_JIS,CRLF,タブ区切り コード(一部) while(!feof($fp)){ $buf = fgets($fp); $buf = mb_convert_encoding($buf, "UTF-8", "Shift_JIS"); $buf=str_replace('\r\n', '\n', $buf); $array = preg_split("/\t/", $buf); if($array[0] == "") { break; } else { //INSERT用に加工( $values = replaceValues($array); } $sql = "INSERT INTO table_name VALUES($values)"; $res = mysql_query($sql); if(!$res){ echo "登録に失敗しました。"; echo "sql:".$sql; mysql_close($conn); exit; } $cnt++; }
- インクルードファイル内にPHPコードを挿入してecho表示
処理が異なる2つのPHPファイルを一つのテンプレートファイルから index.phpファイルへ表示させたいのですが、テンプレートファイル内に css_echo.phpをインクルードさせたコードを書くとそのままソース上に表示されてしまいます。 どのような方法をとればいいかアドバイス下さい。 ■条件としては、 ・css.php/css_echo.phpの処理ファイルはそれぞれ別ファイルとしたい ・index.phpファイルは <html> <head> <?php require_once('./css_echo.php');//ブラウザを判別してCSSファイルを出力 ?> </head> <body> <?php $temp = "./temp.html"; //このページのテンプレートファイル名パス require_once('./echo.php'); ?> </body> </html> には書かない方法で対応したいです。 ファイルは以下です。 ---------------------------------------------------------------------- テンプレートファイル(temp.html) <html> <head> <!--問題はここです。 --> <?php require_once('./css_echo.php');//ブラウザを判別してCSSファイルを出力 ?> </head> <body> サンプル表示{この中はブラウザ判別して表示・非表示にする} </body> </html> 処理PHPファイル(echo.php) <?php $htm = file_get_contents($temp); echo preg_replace('/[{}]/', '', $htm);// {}内を削除して表示 ?> ブラウザ判別用ファイル(css_echo.php) <?php //実際にはこの前にブラウザ判別し処理コード(省略) echo "<link rel=\"stylesheet\" href=\"$dir$pc\" type=\"text/css\">\n"; ?> メイン表示用PHPファイル(index.php) <?php $temp = "./temp.html"; //このページのテンプレートファイル名パス require_once('./echo.php'); ?> ------------------------------------------------------------------------
