• ベストアンサー

文字列の分割

PHP4で作成しています。 DBはMySQLです。 DBに名前が 山田(半角スペース×2)花子 すなわち 山田  花子 とある文字列を取り出して 山田と花子に分割したいのですが出来るでしょうか? 教えてください。 お願い致します。

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

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

  • ベストアンサー
  • NINJA104
  • ベストアンサー率43% (133/306)
回答No.2

例えば単純に以下のスクリプトを実行するとどうなりますか? <?php list( $a, $b ) = split( " ", "山田 花子" ); echo "\$a:$a"; echo "\n"; echo "\$b:$b"; ?> 私の手元の環境(LinuxとWin32の両環境共に)では出力された結果は $a:山田 $b:花子 となり、半角スペースをセパレータに指定して分割出来ています。

その他の回答 (1)

  • NINJA104
  • ベストアンサー率43% (133/306)
回答No.1

DBからレコードを取り込んだ後の処理で宜しいですか? それならばいくつでも手段は有ると思います。 例えば、preg_replace()等で一旦半角スペース×2つを半角スペース1つに変換します。続けて split()で半角スペースをデリミタ(セパレータ)として分割します。

eccschool
質問者

補足

半角スペースをセパレータに出来ないんですが・・・。 特別な記述方法があるんでしょうか? 教えてください!よろしくお願い致します。

関連するQ&A

  • (VBA) 複数スペースで文字列を分割する

    文字列中の文字を 複数の半角スペースで分割するコードを教えて下さい。   (半角スペースの数は、2個以上一定ではありません。) 但し、文字列中には複数スペース群が複数回ある場合がありますが  分割は、最初の複数スペース群とします。 例えば、 「SetOne_Vol xn xo サンプル」 の場合は、 「SetOne_Vol」と「xn xo サンプル」に分割 (分割した最初のスペース群の次にあるスペース群は何も変更なく   同数のスペースを書き出します。) 但しセミコロン「;」やコロン「:」で始まる 文字列は対象外でそのまま分割せずに書き出します。 添付画像を参照ください。   A: 元の文字列 B: 分割文字列(左側) C: 分割文字列(右側) ---------------------------------- Office_2019 / Windows10

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

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

    • ベストアンサー
    • PHP
  • 全角半角考慮した文字列分割

    A列           B列         C列 あいうえおかきくけこ  あいうえ      おかきくけこ アイウエオカキクケコ   アイウエオカキクケ  コ あいうえオかきくけこ   あいうえオ    かきくけこ A列に全角半角混在のテキスト項目があります。 B列、C列に以下のルールで分割したいのですが、Excel関数で 実現可能でしょうか?可能な場合は式をご教授して 頂けますでしょうか。宜しくお願い致します。 ※全角をバイト数指定で分割して文字化けしないように 全角半角を考慮して分割したいと考えております。 B列  A列9桁目が半角の場合は半角9文字 A列9桁目全角の場合は半角8文字(全角4文字)をB列へ C列  A列10桁目が半角の場合は、左端10桁目~半角9文字 A列10桁目が全角の場合は、左端9桁目~半角9文字

  • POSTした文字列をSQLコマンドに整形したい

    検索フォームに入力した単語に該当するtitleをSQLで検索するようなPHPを作成したい場合、 たとえば検索フォームに「php 連想配列 作成」と入力したらまず $key=_POST["key"]; として$keyに文字列を格納し、この後全角、半角問わず、スペースで3つの文字列を区切り、その文字列から配列を作成し、最終的に $keys=sprintf("php"or "連想配列" or"作成"); $sql = sprintf("SELECT * FROM dbname WHERE (title like".$keys.") ORDER BY id"); $result=mysql_query($sql, $link); while($row=mysql_fetch_assoc($result)) { print($row[title]) } というようなコードで出力すると思います。 この、上の$keyから$keysまでのコードが書けません。 がんばったのですが、正規表現を組みあわせたりすると途端にごちゃごちゃになります。 $keyから$keysまでのコードをどなたか教えていただけないでしょうか。 $keyから全角、半角問わず、スペースで3つの文字列を区切り、その文字列から配列を作成し、$keysに該当する変数を作成するコードです。 もしかしたら配列にしなくてもいい方法があるのかもしれませんが、私には思いつきませんでした。 どなたか、ご教示のほど、どうかよろしくお願いします。

    • ベストアンサー
    • PHP
  • PHP 文字列抽出

    はじめまして。PHPプログラミングの初心者で恐縮ですが、 ご質問させてください。 現在、携帯用HPを作成してPHPによりMYSQLからデータを 表示させるプログラミングを組んでいます。 そこで、DB(MYSQL)からデータを引っ張ってくる際に、 そのデータが長い場合には、 頭から10バイトを抽出して末尾に「…」を追加して 表示させるプログラミングを作成したいと考えております。 ところが、そのデータに半角文字が含まれ最後の10バイト目が 全角の場合、文字化けをしてしまいます。 ------------------------------------------- 例) 〔データ〕  あいaうえおか(23バイト)       ↓(substrにより10バイトを抽出して末尾に…を追加)  あいaうえ●… ●部分が文字化けする ------------------------------------------- 文字列の「お」の部分を1バイトで抽出している為、 文字化けしてしまっていると思いますが、 うまく「お」まで表示するか、もしくは「お」を 表示しないようにプログラミングをしたいのですが、 どのように組めばよいかわかりません。 非常に初歩的なご質問で恐縮ですがご教授頂けると ありがたく思います。 どうぞよろしくお願い致します。

    • 締切済み
    • PHP
  • PHP 文字列抽出

    はじめまして。PHPプログラミングの初心者で恐縮ですが、 ご質問させてください。 現在、携帯用HPを作成してPHPによりMYSQLからデータを 表示させるプログラミングを組んでいます。 そこで、DB(MYSQL)からデータを引っ張ってくる際に、 そのデータが長い場合には、 頭から10バイトを抽出して末尾に「…」を追加して 表示させるプログラミングを作成したいと考えております。 ところが、そのデータに半角文字が含まれ最後の10バイト目が 全角の場合、文字化けをしてしまいます。 ------------------------------------------- 例) 〔データ〕  あいaうえおか(23バイト)       ↓(substrにより10バイトを抽出して末尾に…を追加)  あいaうえ●… ●部分が文字化けする ------------------------------------------- 文字列の「お」の部分を1バイトで抽出している為、 文字化けしてしまっていると思いますが、 うまく「お」まで表示するか、もしくは「お」を 表示し

    • 締切済み
    • PHP
  • EXCELで、文字列を任意の文字数毎に分割するには

    ≪やりたい内容と条件≫ ◆EXCELで、文字列を任意の文字数毎に分割したいです。 ◆文字列は、全角・半角・記号を含みます。 ◆1つのセルが半角80桁という制限があり、その上限を超えると、右の次のセルに流し込まれるようにしたいです。(A1は元の文字列1500桁くらい、以降B1,C1,D1,E1・・・という具合に流し込み) ≪試した内容≫ MIDB関数を見つけ挑戦しましたが、1つ目のセルはうまくいきますが、その後が出来ません。例えば、文字列が「・・・・・・abcあいうえお」となっていた場合、B1は「・・・・・・abcあいう」、C1は「 お」(「お」の前は、半角スペース)となります。 何かよい方法はないでしょうか。 一度に出来ないようであれば、A1-B1で残りの文字列が表示できれば、それ以降はまた関数を入れて一つ一つやっていきたいと思っています。 よろしくお願いいたします。

  • 全角半角混在の文字列から○文字まで取得する方法

    はじめまして! MySQLから取得した文字列をPHPで例えば10文字まで表示したいのですが、良いやり方ありますでしょうか? 文字列には全角半角が混在しているので substr関数だと、うまく取得できない場合があります。よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • EXCEL 文字列分割について

    EXCEL2003を使用しています。 1つのセルに文字列が入力されており、 それを決まったバイト数ずつ別のセルに分割したいと考えています。 例)A1の文字列を6バイトずつ分割したい A1:東京都文京区 ↓ B1:東京都 C1:文京区 これを実現する為に B1に「=LEFTB(A1,6)」 C1に「=MIDB(A1,7,6)」という数式を入力しました。 A1の文字列が全角のみ(または半角のみ)なら 上記の数式で問題ないと思うのですが、 分割対象の文字列は全角と半角が混ざっており、 例えばA1の値が 「a東京都文京区」 というようなものだった場合、 B1:a東京 C1:文京 となり、元の文字列にある「都」の文字が消えてしまいます。 元の文字列が上記の様な場合には B1:a東京 C1:都文京 というように値が返されるようにしたいのですが、 どのように実現したらよいでしょうか?

  • 【VBA】 文字列の中から指定の文字列を取り出す

    VBAで文字列から指定の文字のn番目からn+1番目までの文字列を取り出すことは可能でしょうか? A1セルに下記の文字列があった場合、「1番目の半角スペースから2番目の半角スペースまでの文字列」を取り出したいのです。 5 53 00 8R この場合、53を取り出したいというわけです。 また、可能でしたら「最後の半角スペースから文字列の最後まで」を取り出す方法も教えていただけるとありがたいです。 この場合は8Rとなります。 InStr関数を使えばできるかもと思ったのですが、できそうなものが思い浮かびません。 どなたか教えていただけませんでしょうか。 よろしくお願いいたしますm(_ _)m

専門家に質問してみよう