Извлечь некоторые данные из строки php - PullRequest
0 голосов
/ 16 февраля 2020

Быстрый вопрос, чтобы легко вырезать строку. Я знаю субстрат, но я не могу использовать его в моем случае.

У меня есть, например, этот ремешок: «1 rue Maryse Bast ie 69500 ​​BRON». Я хотел бы сказать «Получите все до конца перед числами», в данном случае «BRON» и получите числа. Я хочу, чтобы город и почтовый индекс были в переменной разности.

Используемый мной API возвращает полный адрес, но я хотел бы отключить его, чтобы сохранить город и почтовый индекс в другой таблице.

Я думаю, что этот предмет может помочь мне: Извлечение почтового индекса из строки адреса , но не для получения города.

Например, если у меня есть 1 rue Maryse Bastie 69500 BRON Я хочу $ city ​​= "BRON" и $ p c = "69500"

Если у меня есть 13 rue Hohwald 67000 Strasbourg Я хочу $ city = "Страсбург" и $ p c = "67000"

Спасибо

Ответы [ 2 ]

1 голос
/ 16 февраля 2020

Если вы получаете вашу строку в том же формате, который вы указали в своем вопросе, вы можете разбить строку на массив и собрать последние два элемента в соответствии с требуемыми значениями.

Позвольте мне показать вам.

$myString = "1 rue Maryse Bastie 69500 BRON";
$breakUP = explode(" ", $myString);
$totalElement = count($breakUP);
$city = $breakUP[$totalElement - 1]; // Last element
$zip = $breakUP[$totalElement - 2]; // Second Last element

Надеюсь, это поможет вам:)

1 голос
/ 16 февраля 2020

Я предлагаю вам обходной путь, он должен полностью работать, но, возможно, вам придется его улучшить:

$test = '1 rue Maryse Bastie 69500 BRON';
\preg_match('/\b\d{4,5}.+$/i', $test, $out);
$output = \explode(' ', \trim($out[0]), 2);
var_dump($output);
/*
array(2) {
  [0]=>
  string(5) "69500"
  [1]=>
  string(4) "BRON"
}
*/

В приведенном выше коде мы использовали регулярное выражение, чтобы найти этот путь:

  • поиск цифр (много символов -> 4 или 5 пять для французского почтового индекса)
  • поиск всех символов рядом с почтовым индексом до конца

Далее мы удаляем пробелы в начале и конец, затем мы разбиваемся на массив.

...