今日PHPを使い始めたばかりの初心者です。
「スペース」を「文字」に変換するために
下記のような正規表現を書いたのですがうまく
いきません。

$xxx = ereg_replace( "\s", "aaa", $xxx );

ネットで調べまくったのですが、どこがおかしいのか
よくわかりません。
アドバイスをお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

preg_replace()の最初の引数(パターン)は適切なデリミタで囲まれないと機能しません。



なので、この場合は

$xxx = preg_replace( "/\s/", "aaa", $xxx );

とすればうまく行くと思うんですが。

参考URL:http://www.php.net/manual/ja/ref.pcre.php
    • good
    • 0
この回答へのお礼

ありがとうございます。
解決しました。
マニュアルをよく読めってかんじですね。
でもマニュアルをじっくり読むのって
苦手なんですよね・・(苦笑)

PHPって噂どおり、perlよりもとっつきやすそうで
いいですね。

お礼日時:2001/04/19 16:38

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QデリカスペースギヤへCDオートチェンジャー取り付け

デリカスペースギヤ型式6G72へ手持ちのCDオートチェンジャーの取り付け、配線をする。この時の正面ハウジングの外し方、電源以外のCD側の配線が分解前に知りたい。

Aベストアンサー

これで合ってると思いますが
http://www.alpine-fit.jp/alpine/result2.cgi?YEARS=944&SEND=%81@%82n%82j%81@

Q$str=mb_ereg_replace('goo','グッド',$str);

によって
$strの中の'good'を'グッド'に変更したいのですが
'good'は大文字と小文字を区別しないようにしたいのですがどうしたらいいでしょうか?
例えば
'goOd'も'グッド'にしたいのです。
PHPマニュアルには詳しい使い方が載っていないので困っています。

Aベストアンサー

大文字小文字を無視するなら
mb_eregi_replace
では?

参考URL:http://jp2.php.net/manual/ja/function.mb-eregi-replace.php

QスペースシャワーTVでのCD音源

スペースシャワーTVに登録しました。

そこで編集して車で曲(動画ではなく曲だけ)を聴きたいと思ってるんですが、
できればPV音源ではなくCD音源がいいです。

CD音源の番組ってありますか?
ご存知の方よろしくお願いします。

Aベストアンサー

残念ながらCD音源(リニアPCM44.1メガヘルツ16ビットステレオ)であっても伝送路の問題で圧縮されてしまいます。

PVのマスター音源はCD以上の音質で録画されていますので残念です。

Q$str=preg_replace('/\u3000/','  ',$str);

によってutf-8の空白文字をhtmlの空白文字に変換しようとしたのですがエラーになります
どうしたらいいのでしょうか?

Aベストアンサー

>そもそも?のところにコード表現で空白文字を入力する手段はないのでしょうか?
\xE3\x80\x80
で一応いいかと思いますが…

QマイスペースCDについて

マイスペースCDで自作曲を販売できるそうですが、今からでも登録することは可能なのでしょうか。

Aベストアンサー

※販売登録の新規受付は2010年6月30日をもちまして終了させて
いただきました。

となっています。

参考URLの一番下です。

参考URL:http://www.myspace.com/myspacecdjp

Qpreg_match( '/^(\D+)(\d*)$/' , $変数 , $regs )

if( ! preg_match( '/^(\D+)(\d*)$/' , $変数1 , $regs ) )
{echo ( 'invalid dirname: ' . htmlspecialchars( $変数1 ) );}
$変数2 = $regs[2] === '' ? '' : intval( $regs[2] ) ;

正規表現だと思うのですが、どういう意味か教えてください。

□分からないなりに考えてみました…
▽1行目
$変数の内容が、'/^(\D+)(\d*)$/'にマッチしなければ、$regs へ代入。
▽2行目
マッチしていた場合は、htmlspecialchars関数を実行した後、'invalid dirname: '+その結果を表示する。
▽3行目
$regs配列変数の1番目を、何かして、$変数2 へ代入する。

……誰か教えてください…。

Aベストアンサー

>どこら辺に問題ありそうでしょうか?

まずpreg_matchで$regsを生成していますが、マッチしないケース
すなわち「数字からはじまる文字列」の場合、$regsが未設定になります。
したがって$regs[2] === ''で評価すると$regsが未設定エラーになります。
またエラーレベルを下げた場合でも、$regs[2] === ''はfalseなので
数字ではない文字列をintvalで評価するため$変数2には0が代入されます。

やはりif分岐である程度場合分けをしっかりしてやらないといけないでしょう。
総じて$変数1に代入される文字列の想定を広げて、チェックしてやる必要があります。

また、仮にデータがきちんと通ったとして、$変数2は空文字か数字という
データ型が確定しないフローになっています
たしかにPHPは変数定義がいい加減ではありますが、あまりなんでも
かんでも入れればいいというものではありませんので、ある程度
変数の型が一律になるような工夫が必要だとおもいます。

QCD-ROMからDVD-RAMドライブに交換したい(省スペースPC)

IBM6826-43J(省スペース)を使っています。
何もわからずにDVD-RAMドライブ(IO DATA DVR-ABH8BK内臓型)を買ってしまいました。
CD-ROMからDVD-RAMドライブに交換したいのですが、やり方がわからず困っています。壊したくないので業者の人に頼もうかなとも考えています。
交換できる方法を知っている方がいらっしゃったら、自分でやろうかと思っています。
もしくは安全にドライブ交換をやってくれるところを教えていただければと思います。ちなみに私は溝の口(川崎市)に住んでいるので持っていくならなるべく近くがいいです。

Aベストアンサー

省スペース型ですがサイズ的には問題ないようです。
http://ss.iodata.co.jp/Matching?scene=Category&makercd=003&typecd=102&pccode=60120&catecd=181

ドライブの交換は“それほど”難しいものではないと思います。ただあなたのスキルが全くわかりませんので、難しさの度合いも人それぞれと思います。
自分でPCを開けてしまえば保証は効かなくなることを念頭に置いて下さい。あとは勢いです。時間をかけて、広々としたスペースを作って、ケースはドライバーで簡単に開くと思います。ネジを外したら箱を上に持ち上げて外すのか、スライドさせるのかは見てみないとわかりません。
開けて見ると、省スペース型ですからスッキリと収まっていると思います。ドライブは脇でネジ止めされていると思います。今までのを外したら、新しいドライブのマスター・スレーブ設定をそれに合わせて組み込みます。

それだけです。

あとは添付ソフト(B's Recorder GOLD BASIC Ver.7が入っていますね)をインストール。これがなきゃ焼けませんので。

一度PCを開けるとクセになると思います。
メモリも128MBでは心許ないので増設された方がいいと思います。
http://kakaku.com/prdsearch/detail.asp?PrdKey=05206010480

参考URL:http://www.iodata.jp/sp/setup/page/naibu_c.html

省スペース型ですがサイズ的には問題ないようです。
http://ss.iodata.co.jp/Matching?scene=Category&makercd=003&typecd=102&pccode=60120&catecd=181

ドライブの交換は“それほど”難しいものではないと思います。ただあなたのスキルが全くわかりませんので、難しさの度合いも人それぞれと思います。
自分でPCを開けてしまえば保証は効かなくなることを念頭に置いて下さい。あとは勢いです。時間をかけて、広々としたスペースを作って、ケースはドライバーで簡単に開くと思います。ネジを外したら箱を上に...続きを読む

Qpreg_replace, ereg_replace

$bodyにはテキストファイルなどから読み込んだ、$dateと言う文字(変数ではない)と、改行を含む文字列。

それで、「$date」を、phpスクリプト上の$dateの値に置換したく、

$tmp = preg_replace("/\$date/s", $date, $body);
または、
$tmp = ereg_replace("\$date",$date,$body);
としたのですが、どうも置換されません。何がいけないのでしょうか?

Aベストアンサー

>$が行末記号でないようにするために、頭に「\」を
>付けたのですが、なぜここで\$としたのにもかかわ
>らず、行末記号として認識されてしまったのでしょ
>うか・・・

「$date」はPHPの変数を意味します。その扱いはダブルクォート内部でも同じです。
従ってダブルクォート内部では「\$date」ではじめて文字列としての「$date」になります。
このままでは#1に書いた通り「行末」を意味しますので「文字」としての「$」とするために「\\」を更に付加します。
結果「"\\\$date"」という記述になります。

ダブルクォートを使用せずにシングルクォートを使用すると「'\$date'」とそのまま書けたりします。

Q省スペース機にCD-RからDVDに入れ替え。

書き込み型DVD機を現在のCD-R(W)機と入れ替えを考えています。
マシンはWIN2000でCPUはPENIII800mhzの省スペース機です。
ベースは富士通のFMVですが、HDD、OS,メモリー等入れ替えてますのでもう保証はありません。

さて入れ替えようのDVDデッキですが、店頭で見たところ、動作環境等ほとんど書いてなくて、対応OSくらいの表示しかない商品がほとんどでした。
本題ですが、私のパソコンスペックでも十分使い物になるのでしょうか?
DVDの使い方は、昔の8mmビデオをDVD保存用に変換することを主な目的としています。

しかしながら、現状ではそのための知識も殆ど無くてデッキを入れ替えてから一から勉強です。
互換とかのことも教えていただけると幸いです。

Aベストアンサー

皆さんお答えの通りDVDドライブへの交換は簡単に出来るでしょう。

エンコード(動画[圧縮を含む]変換)やオーサリング(パソコンで見れる動画[aviやmpg等]を家庭用DVDで見れるVIDEO_TS形式に変換する事)に非常に時間がかかります。
自分の経験では、デジタルビデオカメラの編集作業がAthlonXP2000+のCPUでなんとか、2時間のものが倍の4時間で終わったと憶えてます。Pentium3の1Gで作業した時は寝て起きても自動編集してたような記憶が有ります。
今ならばCPUは3G以上のスペックをお勧めしますネ。

Q下記バグ("SQL:\"$sql\"の実行に失敗しました。")が表示されます

※以下プラグラムが走りません。どこに問題があるか教えて下さい。
<?php
/*==
  ユーザ履歴確認  dis_career.php
==*/
session_start();


print <<<EOD
<HTML>
<HEAD>
<TITLE>ユーザ履歴の表示</TITLE>

EOD;


//データベースに接続する
$con = mysql_connect("","","");
$selectdb = mysql_select_db("",$con);

if ($con == false) {
print("データベースに接続できませんでした。");
exit;
}
$sql = "select * from tbl_user order by uid'";
$result = mysql_query($sql,$con);

if ($result == false) {
printf("SQL:\"$sql\"の実行に失敗しました。");
exit;
}
$rows = mysql_num_rows($result); //行数を取得
printf("<CENTER><H2><ユーザ履歴確認></H2></CENTER>");
print("<table border=\"1\" align=\"center\" >\n");
print("<TR><TH><ユーザID></TH><TH>名前</TH><TH>コース名</TH><TH>履歴表示</TH></TR>\n");
if ($rows > 0){
for ($j = 0;$j < $rows;$j++) {
print("<FORM ACTION=\"career.php\" METHOD=\"post\" TARGET=\"right\">");
$data=mysql_fetch_object($result);
$uid=$data->uid;
$name=$data->name;
$course=$data->course;
print("<TR>");
print("<TD>$uid</TD>");
print("<TD>$name</TD>");
print("<TD>$course</TD>");
print("<INPUT TYPE = \"hidden\" NAME = \"uid\ VALUE=\"$uid\">");
print("<TD><INPUT TYPE = \"submit\" NAME = \"career\ VALUE = \"履歴表示\"></TD>");
print("</TR>");
print("</FORM>");
}
}

?>

</BODY>
</HTML>

※以下プラグラムが走りません。どこに問題があるか教えて下さい。
<?php
/*==
  ユーザ履歴確認  dis_career.php
==*/
session_start();


print <<<EOD
<HTML>
<HEAD>
<TITLE>ユーザ履歴の表示</TITLE>

EOD;


//データベースに接続する
$con = mysql_connect("","","");
$selectdb = mysql_select_db("",$con);

if ($con == false) {
print("データベースに接続できませんでした。");
exit;
}
$sql = "select * from tbl_user order by uid'";
$result = mysql_query($sql...続きを読む

Aベストアンサー

エラー情報を表示させてみましょう
if ($result == false) {
printf("SQL:\"$sql\"の実行に失敗しました。");
print mysql_error();
exit;
}


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング