ーーー
<パターンA>
■住所
東京都渋谷区渋谷1-1-1
<パターンB>
住所:東京都渋谷区渋谷1-1-1
<パターンC>
<td style="width: 20%; height: 22px;">住所</td>
<td style="width: 80%; height: 22px;">東京都渋谷区渋谷1-1-1</td>
ーーー
※住所が「所在地」「場所」の場合もある。
途中まで考えてみたのは以下のとおりです。
$post_code= "【該当のページのソースコード】"
$contents = strip_tags($post_code);//タグ除去
$contents = preg_replace('/所在地(\n|\r|\r\n)/', '所在地', $contents);//住所と所在地で見出しのあとに改行がある場合は削除
$contents = preg_replace('/住所(\n|\r|\r\n)/', '住所', $contents);
preg_match('/(住所|所在地)(.+)\n/', $contents, $match);//住所と所在地がある行の住所部分を抜き出す
$text = $match[2];
$text = str_replace(':', '', $text);//住所に「:」とかあれば除く
$text = str_replace(':', '', $text);
$text = str_replace(' ', '', $text);
$text = str_replace(' ', '', $text);
URLは不要ですのでご教示いただけましたら幸いです。
こんな感じでどうでしょう。
<?php $s = ...; $s = strip_tags($s); $s = preg_replace('/住所(\n|\r|\r\n)/', '住所:', $s); $s = preg_replace('/(住所|所在地|場所)(\n|\r|\r\n)/', '住所:', $s); $s = preg_replace('/^.*(住所|所在地|場所):/', '', $s);
抽出元の文字列を、「住所:(...)\n」に寄せてから住所を切り出す、ってやってみました。
こんな感じでどうでしょう。
<?php $s = ...; $s = strip_tags($s); $s = preg_replace('/住所(\n|\r|\r\n)/', '住所:', $s); $s = preg_replace('/(住所|所在地|場所)(\n|\r|\r\n)/', '住所:', $s); $s = preg_replace('/^.*(住所|所在地|場所):/', '', $s);
抽出元の文字列を、「住所:(...)\n」に寄せてから住所を切り出す、ってやってみました。
ありがとうございます。
テキストが上記3パターンの部分のみであれば、これで大丈夫そうです。
しかし【該当のページのソースコード】の中にそれらが含まれているので、その行だけ抜き出すのにpreg_matchが必要かな、と考えました。
こんな感じにアレンジして旨く動くようになりました!ありがとうございました
$s = strip_tags($s);
$s = preg_replace('/住所(\n|\r|\r\n)/', '住所:', $s);
$s = preg_replace('/(住所|所在地|場所)(\n|\r|\r\n)/', '住所:', $s);
preg_match('/(住所:)(.+)\n/', $s, $match);
$text = $match[2];
echo $text;
すみません。」
上の回答見てませんでした。
ありがとうございます
ありがとうございます。
2020/02/24 10:39:45テキストが上記3パターンの部分のみであれば、これで大丈夫そうです。
しかし【該当のページのソースコード】の中にそれらが含まれているので、その行だけ抜き出すのにpreg_matchが必要かな、と考えました。
こんな感じにアレンジして旨く動くようになりました!ありがとうございました
2020/02/24 11:01:18$s = strip_tags($s);
$s = preg_replace('/住所(\n|\r|\r\n)/', '住所:', $s);
$s = preg_replace('/(住所|所在地|場所)(\n|\r|\r\n)/', '住所:', $s);
preg_match('/(住所:)(.+)\n/', $s, $match);
$text = $match[2];
echo $text;