• ベストアンサー

文字列のアスタリスク置換

PHP4でDBはMySQLを使用しています。 DBから取り出したいろいろな長さの文字列を*に置換したいのですがどのようにしたら良いでしょうか。 str_replaceを用いて置換をしようとしていますが文字列長が一定でないため難しいです。 宜しくお願い致します

  • PHP
  • 回答数2
  • ありがとう数8

質問者が選んだベストアンサー

  • ベストアンサー
  • ham_kamo
  • ベストアンサー率55% (659/1197)
回答No.2

> パスワード情報を取り出してアスタリスクに置換して表示したいです。 というのは、文字数は決まってないけれど、その文字数分のアスタリスクに変換したい、ということでしょうか? それならば、パスワードとして取りだした文字列が $password という変数に入ってるとすると、 $str = str_repeat("*",strlen($password)); でいけるかと思います。

eccschool
質問者

お礼

うまくいきました!! 有難うございました。 考え方が間違っていたようです。 頭が固いもんで・・・。

その他の回答 (1)

  • ham_kamo
  • ベストアンサー率55% (659/1197)
回答No.1

ereg_replace()またはpreg_replace()などで正規表現を使えばいいのではないのでしょうか。 具体的にどのような文字列を*に置換したいのか補足していただくと、より具体的なアドバイスができるかと思います。

eccschool
質問者

補足

DBに登録されたパスワード情報を取り出してアスタリスクに置換して表示したいです。文字列長がさまざまです。 宜しくお願いします。

関連するQ&A

  • PHPソースファイルの文字列置換をしてから、

    PHPソースファイルの文字列置換をしてから、 そのスクリプトを実行する方法を実行しようとしている のですが、うまくいきません。 似たような質問(http://oshiete.nikkeibp.co.jp/qa5496696.html) を参考にして、文字列置換自体はうまくいったのですが、 phpファイル実行時にまったく関係の無いはずの DBアクセスでエラーが発生してしまいました。 変換前前のphpファイルに置換後の文字列を手で入れて、 データベース実行するとうまくいきます。 しかしながら、phpファイルの文字列置換をstr_replaceで実行し、別名保存した後 includeしても、うまくいかないといった状況です。 ちなみに置換後のphpファイル内で $置換後文字列 = "test"; echo $置換前文字列; とすると、置換前文字列が置換後文字列に きちんと変わっているようで、 "test"と出力されます。 もしかすると、原因は違う所に潜んでいるのかもしれませんが、 どこを調べれば良いのか検討がつかず困っております。 どなたか解決手段の分かる方がいらっしゃれば教えて頂けませんでしょうか? -------------------------------------------------------------- 尚、ファイル構成は top |-change (1.php) |-database (2.php) |-search (検索画面[データベース検索の入り口。form action ="./3.php"],3.php) |-base (4.php,5.php[tempファイル]) となっており、 それぞれの中身は 1.文字列置換実行用のphpファイル(1.php):  1-1.file_get_contentsで4のphpファイルを取得  1-2.str_replaceを用いて文字列置換  1-3.文字列置換したファイルをfwriteで4.phpと同じディレクトリに保存(5.php)  1-4.5.phpをincludeする。  1-5.5.phpをunlinkする。 2.データベースアクセス(mysql)用関数を含むphpファイル(2.php):  ↓エラーの原因と思われる関数  function connect() { global $host,$user_id,$passwd,$con; $con = mysql_connect($host,$user_id,$passwd); } 置換前phpファイルを手動で文字列置換した場合には  同ファイル内で設定したglobal変数の値がきちんと格納されており、  データベース実行がうまくいきます。  置換後phpファイルでは$host等に値が格納されていないため、  データベース実行がうまくいきません。  グローバル変数の中身は同ファイル内で定義しています。 3.検索を実行した時に呼び出されるphpファイル(3.php):  3-1.include("../change/1.php"); 3-2.1.phpの関数の実行 4.文字列置換前のphpファイル(4.php): /*呼び出し元のディレクトリ位置でないとincludeに失敗する*/ 4-1.include("../database/2.php");  4-2.2.phpのデータベースアクセス関数を実行する。 5.文字列置換後のphpファイル(5.php): 3-2の1.php関数の実行により、一時的に生成される。

    • ベストアンサー
    • PHP
  • 変数内のURL文字列を置換させたい

    変数に格納した文字列のうち、URLを以下のようにして 置換しようとしましたが、置換されませんでした。 $html = str_replace("www.sample.com/hoge", "hoge.hogeoge.net", $html); str_replace の使い方が間違っているのでしょうか。 どうぞ宜しくお願い申し上げます。

    • ベストアンサー
    • PHP
  • 文字列置換

    PHPでの文字列置換についての質問です。 文字列を受け取った時には [09/06/04 21:01:05] といった値で受け取ります。これを [6月4日 21時1分] といった値で返そうと考えています。 str_replace、explodeでの方法も考えましたがあまりににくどい処理になるため、断念しました。 なにか他に手はないものでしょうか?? よろしければ回答お願いします。

    • 締切済み
    • PHP
  • 文字列に対してPHP上で一括置き換えしたい

    DBにあるテーブルの指定されたカラム全てを文字列に対してPHP上で一括置き換えしたいです。 phpアドミン上でSQL文を使って UPDATE `テーブル名` SET フィールド名A=REPLACE (フィールド名A,"置換前の文字列","置換後の文字列"); で実行したらうまくいくのですが、 これをPHP上で処理したいと考えてます。 require("godb.php");//DBにアクセス $sql ="UPDATE テーブル名 SET フィールド名 = REPLACE(フィールド名,"AAA","BBB")"; mysql_query($sql2); と実行してもうまくいきません。。。 これって、、、一個一個対象カラムをPHP上で取り出してから 処理をかけないといけないのでしょうか。。 アドバイスいただけたら幸いです。 よろしくお願い致します。

    • ベストアンサー
    • PHP
  • DB2でREPLACEによる文字列の置換

    ODBC経由でPHPからDB2にアクセスしているのですが 電話番号から「-」を除いて比較しようとして 「 SELECT * FROM TABLE WHERE REPLACE(TEL,'-','') = '09012345678' 」 というSQL文を送信しても 「 *LIBLのタイプ*NのREPLACEが見つからない。 」 というエラーメッセージが返されます。 DB2にはREPLACE関数が存在しないのでしょうか? もし存在しないのでしたら文字列を置換する関数は何を使えばよいのか教えて頂けないでしょうか。 よろしくお願いします。

  • ◆文字列内の複数置換

    いつもお世話になっています。 置換についてご教授下さい。 文字列($str)を置換して$afterのように変換させたいです。 配列($patterns)で置換のパターンは持っています。 $str = "あF03いうえF02おF01"; $patterns = array("F01" => "A", "F02" => "B", "F03" => "C"); $after = "あCいうえBおA"; 宜しくお願い致します。

    • 締切済み
    • PHP
  • ページ内文字列の置換について

    BODY内の全要素を参照して、特定文字列を置換するスクリプトを教えてください。 具体的に言うと、ブログなどで既に投稿済みの各記事などに必ずと言っていいほど入力している「■」を「◇」に替えたいのです。 いろいろ検索してみましたが、replace()かな? と言う程度は探れても、そこから先に進めない知識しかございません。 どうぞよろしくお願い申し上げます。

  • 文字列の置換について

    MySQLデータベース内の文字列を、別の文字列に書き換えたいんです。 例えば、文字列"http://www.xxx.com" を文字列"http://www.yyy.com"に書き換えます。 SQL文で操作して、一気にデータベースの各テーブルに入った大量の文字列を全部置換させたいんです、そのSQL文どういうふうに書きますか? ご存じの方がいっらしゃいましたら、どうぞお教え下さい。

    • ベストアンサー
    • MySQL
  • ランダム(不規則)な文字列の置換えについて

    初めて投稿させていただきます。 文字列置換について、色々と調べたのですが全く解決しなかったのでこの場を借りてご質問させて頂きます。 早速ですが記述から記載させて頂きます。 $str = file_get_contents('http://example.com/'); $replaced = str_replace("index.php?ref=123abc", "index.php?ref=456def", $str); echo $replaced; このように一定の文字列に対しては置換ができたのですが、 index.php?ref=123abc の箇所が index.php?ref=123abc&PHPSESSID=qazwsxedcrfvtgbyhnujmikolpqazwsx のようにPHPSESSIDのセッションID(毎回変わるランダムな32桁の文字列)が付いてきた場合に index.php?ref=456def に置換える方法がわかりません。 &PHPSESSIDの文字列の先頭部分から右に43文字目※(&PHPSESSID=の所で11文字)+(IDの所で32文字)※までを index.php?ref=456def に置き換える方法や 初めからPHPSESSIDのセッションIDの部分を表示させない方法など ここ数週間色々考えてみましたがどうしてもわかりませんでした。 PHP初心者ですので、なるべくわかりやすく教えて頂けると幸いです。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • VBA 置換文字がみつからない時

    お世話になります。 VBAの文字列の置換で教えてください。 replaceを使用したときに、置換対象の文字がなかったら、 「元の値をそのまま返す」という形なのですが、 置換対象がなかったときは、その旨わかるようにしたいのですが、 方法あるでしょうか? ※毎回replaceの前でfind関数であるかないか、調べないと いけないのでしょうか? 何卒宜しくお願いします。

専門家に質問してみよう