Ну это, наверное, если они хранятся в файле. А если они хранятся в БД и вперемежку там лежат запросы JSON, XML, NPV, то, в принципе, без разницы. Во всяком случае, у меня не было повода пожалеть об отсутствии моноширинности.
Да, PHP не поддерживает динамические ретроспективные проверки.
Спасибо за проявленный интерес к вопросу!
Ниже предложили, что лучше не сохранять длину номера карты.
Насчет зачем знать длину номера — ни за чем, просто хочется иметь логи в таком формате :)
Скорее всего, вы правы, стоит заменить иксы на такие константы.
Да, запросто:
account_id=1111222&zip_code=90210&cc_number=12345678&amount=1500
Порядок account_id, zip_code, cc_number и amount может быть любой (то есть нужен наиболее универсальный способ).
То есть задача — вычленить cc_number=\d+ и заменить цифры аналогичным количеством символов X
Поскольку вы отмечаете ретроспективную проверку как необязательную, ваш паттерн маскирует все числовые данные в строке.
Результат: cc_number=XXXXXXXX&amount=XXXX
Пример: