Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Małe litery w tagach HTML
Forum PHP.pl > Forum > PHP
depablo
Witam

Potrzebuję zamienić wszystkie nazwy tagowe na małe litery. Mam na przykład fragment takiego kodu:
Kod
<A Href=HTTP://www.costam.pl>To jest odnośnik</A>

Nie mogę tego ręcznie zrobić, bo tych plików jest za dużo.
korzystając z funkcji strtolower zmniejszam wszystkie litery, tagi i te zawarte w tekścię właściwym. Czyli powyższy przykład po zastosowaniu komendy strtolower otrzymamy:
Kod
<a href=http://www.costam.pl>to jest odnośnik</a>

A wyraz "To" miał być z wielkiej litery.

Co możecie mi na to poradzić?

Pozdrawiam
Paweł
wassago
Kod
$text = str_replace("A Href","a href", $text);

i tak do bolu ze wszystkimi tagami:P - to jest metoda a'la hardcore php programmers biggrin.gif
depablo
A owszem, lekki harcore, a nie ma innego jakiegoś sposobu?

Ale może jeśli powiem do czego jest mi to potrzebne, znajdzie ktoś na to inny sposób.

Otóż potrzebuje zamienić odnośniki w pliku includowanym. Plik includowany znajduje się na innym serwerze, czyli muszę zrobić coś takiego:
href=strona.html
zamienić na:
href=http://www.costam.pl/strona.html

Próbowałem tak to zamieniać, żeby wszystkie href= zamienił na href=http://www.costam.pl/strona.html. Oczywiście musiałem uwzględnić przypadki, że urle mogły być ujęte w nawiasy pojedyńcze i podwójne (href="... i href='...). Tak samo zrobiłem z src=. Ale skoro to tylko dwa tagi (href i src) to zrobię tak jak kolega proponował.

Dzięki i pozdrawiam
Paweł
maggot
ja bym sprobowal czegos takiego (ale pewnie mozna to jakos lepiej rozwiazac)
[php:1:71aace7083]<?php
function lctags($str) { // lowercase tags

$in_tag = FALSE;
$in_dq = FALSE; // in double quote

for ($i=0; $i <= strlen($str); $i++) {

if ($str[$i] == '<') { $in_tag = TRUE; continue; }
if ($str[$i] == '>') { $in_tag = FALSE; $in_dq = FALSE; continue; }

if ($in_tag AND $str[$i] == '"') {
if ($in_dq == TRUE) $in_dq = FALSE;
else $in_dq = TRUE;
continue;
}
if ($in_tag AND !$in_dq) $str[$i] = strtolower($str[$i]);
}
return $str;
}
?>[/php:1:71aace7083]
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.