Преобразование строки в верхний регистр в PHP, но не разметка HTML - PullRequest
0 голосов
/ 27 октября 2010

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

Так, например:

<p>Chicken &amp; <a href="/cheese">cheese</a></p>

Станет

<p>CHICKEN &amp; <a href="/cheese">CHEESE</a></p>

Любой совет приветствуется, спасибо!

Ответы [ 4 ]

4 голосов
/ 27 октября 2010

Следующее заменит все данные узла DOMText в BODY на заглавные данные:

$html = <<< HTML
<p>Chicken &amp; <a href="/cheese">cheese</a></p>
HTML;

$dom = new DOMDocument;
$dom->loadHTML($html);
$xPath = new DOMXPath($dom);
foreach($xPath->query('/html/body//text()') as $text) {
    $text->data = strtoupper($text->data);
}
echo $dom->saveXML($dom->documentElement);

дает:

<html><body><p>CHICKEN &amp; <a href="/cheese">CHEESE</a></p></body></html>

Также см.

3 голосов
/ 27 октября 2010

Ну, вы можете использовать класс DOM и преобразовать весь текст с его помощью.

РЕДАКТИРОВАТЬ: или вы можете использовать этот CSS:

.text{
    text-transform: uppercase;
}

как предложил GUMBO

1 голос
/ 27 октября 2010

Разобрать его , а затем использовать заглавные буквы.

0 голосов
/ 27 октября 2010

Я бы соблазнил сделать всю строку заглавными ...

$str = strtoupper('<p>Chicken &amp; <a href="/cheese">cheese</a></p>');

... А затем используйте вызов preg_match() для повторной итерации по тегам HTML (при условии, что HTML допустим), чтобы использовать строчные буквы тегов HTML и их атрибутов.

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