Настройки UCWords - PullRequest
       1

Настройки UCWords

2 голосов
/ 31 августа 2011

У меня есть база данных SAGE200 с названиями продуктов, которые в большинстве случаев вводятся заглавными буквами. Они отображаются на нашем веб-сайте как введенные, что неприглядно. Я новичок в PHP, но обнаружил функцию ucwords и применил ее вместе со strtolower, так что в итоге у меня появился заголовок Case для отображаемых элементов. Это лучше, но все еще далеко от идеала, поскольку некоторые продукты нуждаются в заглавных буквах или словах, так как это правильное соглашение об именах.

Есть ли какой-нибудь способ, которым я могу кодировать это так, чтобы Заголовок был применен к названиям моих продуктов, а также был поиск по списку, который я определял где-то, чтобы оставить некоторые слова как все заглавные буквы?

Это все в Magento 1.4.0.1.

Возможно, файл перевода?

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

Ура!

Ответы [ 2 ]

0 голосов
/ 17 декабря 2014

Один из вариантов - оставить буквы, которые вы наверняка хотите использовать в верхнем регистре, в верхнем регистре и использовать только функцию ucwords в верхнем регистре в начале слов. Вы бы не использовали ucwords. Вы бы использовали:

$string = preg_replace('/(^|[^a-zA-Z])[a-z]/e', 'strtoupper("$0")', $string);

Это будет прописная буква любой буквы, которая не следует за буквой.

В противном случае, если у вас есть список слов, которые вы хотите в верхнем регистре, я бы сделал это перед использованием ucwords, потому что ucwords никогда не строчные буквы. Это будет выглядеть так:

$string = strtolower($string);
foreach($mywordlist as $word)
    $string = str_replace(strtolower($word), strtoupper($word), $string);
$string = ucwords($string);

Примечание: прег_ресло, которое я использовал выше, - это то, что я использую вместо слов ucwords все время, потому что в верхнем регистре слова там, где есть непробельные символы. Пример: ucwords превращает тик-так в тик-так. Мой preg_replace превращает его в Tick-Tock.

0 голосов
/ 10 января 2012

Если вы уже знаете переводы (я так полагаю, поскольку вы предложили файл перевода), почему бы просто не преобразовать названия продуктов в вашей базе данных?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...