
[http://www.test.com/:title=てすとぺーじ]
を
<a href="http://www.test.com/">てすとぺーじ</a>
に変換したい場合、
http://phpspot.net/php/pg%90%B3%8BK%95%5C%8C%BB% …
に載ってる
// ereg_replace の場合
$str = "you are <b>cool!</b>";
$str2 = ereg_replace("<b>(.+?)</b>","\\1",$str);
を参考にして色々試してみたんですが、\\1に値が格納されなくて上手く置換できませんでした。
こういった記法からタグの変換などはereg_replace等をつかってできると思ってたんですが、上手く出来る方法はないでしょうか?
No.2ベストアンサー
- 回答日時:
preg_replace("/\[http:(\/\/.*?):title=(.*?)\]/", "<a herf=http:\1>\2<\/a>", $string);
ではないでしょうか? 未検証
\1に「//www.test.com/」 ← 1個目のカッコ「(\/\/.*?)」に相当
\2に「てすとぺーじ」 ← 2個目のカッコ「(.*?)」に相当
が格納されると思います。
ただし、マルチバイト文字列なので、
mb_ereg_replace関数を使うべきかも?
返信送れてすいません。
回答くれた文のpreg_replaceで\1のところを
\\1にしたらできるようになりました。
・置換が成功した文
$item_naiyou = preg_replace("/\[link_url=http:(.*?):title=(.*?)\]/", "<a href=http:\\1>\\2</a>", $item_naiyou);
変数やpreg_replace内のパターンなどは例とは異なりますが
一応完成文です。
これでわざわざ何行にもわけて文を書かずに一行で置換ができるようになりましたので大変助かりました。回答の方ありがとうございました。
No.1
- 回答日時:
ereg_replaceが受け付ける正規表現では +? のような最短マッチは使えないのでは?
この回答への補足
ereg_replaceが最短マッチを受け付けないと言われて、他に色々方法を探して試してたら一応それらしい文ができたので載せます。
$match_all = preg_match_all("%<b>(.+?)<\/b>%is", $str, $item);
for ($i=0; $i< $match_all; $i++){
$name_match = $item[1][$i];
}
$item_naiyou = ereg_replace("<b>$name_match<\/b>","$name_match",$str);
記法からタグの変換で、遠回りな文になってしまいましたが。ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/07/03 09:11
- オープンソース Python openpyxlを使用したセル番地の使用について 1 2023/08/03 22:05
- Visual Basic(VBA) エクセルのマクロについて教えてください。 7 2023/07/04 09:18
- Visual Basic(VBA) Excel vba で1と10を正確に判断させる方法を教えてください。 TからU列に1と入力があれば 3 2022/12/26 16:54
- Access(アクセス) Accessで、『"A"以外の場合"--"に置き換える』という作業をしたいのですが、良い方法はありま 1 2022/06/07 19:30
- Visual Basic(VBA) VBA ユーザーフォームからSubプロージャ―に値を引き渡す方法 3 2023/04/09 01:54
- 歴史学 ロシア軍、前線兵士の離脱防ぐ「阻止部隊」って旧ソ連軍の「督戦隊」とどこが違うんでしょ? 3 2022/11/06 16:34
- Access(アクセス) Accessのテキストボックスの入力文字制限 1 2023/01/18 20:43
- HTML・CSS HTMLタグのあるCSVファイルを利用する方法 4 2023/03/19 14:41
- Windows 10 プロファイルエラーについて 2 2022/12/16 09:31
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PHP8でWarning:Undefined varia...
-
composerをインストールしたい...
-
クエリObjectをforeachで回す時...
-
PHP8を使うと、大量のWarningが...
-
PHPSpreadsheetを使って関数を...
-
ファイルアップロードの上限を...
-
記述のおかしいところを教えて...
-
phpの問い合わせフォームを作っ...
-
marginの値でマイナス値を設定...
-
index.phpって何ですか? 具体...
-
ファイルアップロードに関して...
-
phpのメールフォームの完了画面...
-
substrの使い方について教えて...
-
PHPを使って、別サイトの一部を...
-
$_SESSIONに渡した後はそのまま...
-
submitで思うようにページが遷...
-
HTML PHP ラジオボタンのイベント
-
php でqiitaのサイトにあったフ...
-
SplFileObject を利用したとき...
-
PHPの勉強してます。 配列のと...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
文字列全体に対する置き換え [...
-
正規表現で「チルダ(~)」をマッ...
-
DIRECTORY_SEPARATORについて
-
PHPの正規表現で【】内を文字列...
-
php 指定文字列以降の削除
-
指定した位置で文字列を分けたい
-
php5.3.3でeregをループ内で使...
-
ひらがなをマッチさせたい
-
PHPの変数で最初から2行分の文...
-
PHPのif文でその処理を途中で抜...
-
FTPコマンドでディレクトリごと...
-
Subversionのリポジトリの削除
-
onedrive にexcelファイルをア...
-
.phpと.incファイルの違いはな...
-
リンク先を隠す方法はないでし...
-
CFileDialogの最初のディレクト...
-
バッチを用いたフォルダの自動移動
-
フォントの色を変えるには?
-
トランザクションが原因?DBに...
-
さくらサーバーにて、phpからメ...
おすすめ情報