Подскажите рег выражение для поиска в контентне страницы метатега с кодировкой

12 3
[Удален]
1016

Вот пример метатега.

<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />

Мне нужно регулярное выражение, которое определяет включает ли этот тег запись windows-1251. (простое сраснение строки не подходит, так как это тег может иметь разный вид).

T.R.O.N
На сайте с 18.05.2004
Offline
314
#1
plamar:
text/html; charset=windows-1251

text/html; charset=windows-1251 или charset=windows-1251 - такая конструкция должна быть всегда, ведь так ? так что мешает ее просто искать не тратя время на обработку регулярок?

От воздержания пока никто не умер. Хотя никто и не родился! Prototype.js был написан теми, кто не знает JavaScript, для тех, кто не знает JavaScript (Richard Cornford)
[Удален]
#2
T.R.O.N:
text/html; charset=windows-1251 или charset=windows-1251 - такая конструкция должна быть всегда, ведь так ? так что мешает ее просто искать не тратя время на обработку регулярок?

а если на странице с кодировкой UTF (практически на любом вордпресс блоге) автор в теле страницы упомянет фразу charset=windows-1251 ???

T.R.O.N
На сайте с 18.05.2004
Offline
314
#3

plamar,

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

как вариант Искать только в <head>

т.е. взять весь текст, разрезать его по </head> или по <body

общая регулярка ^(.*)meta http-equiv(.*)Content-Type(.*)windows-1251 (пользуюсь перлом, посему сами решите как в пых это воткнуть)

S
На сайте с 28.10.2005
Offline
319
#4


if ( stristr ( $page, 'windows-1251' )){

echo 'Нунадоже';

}

😂

T.R.O.N
На сайте с 18.05.2004
Offline
314
#5

semenov,

блин, читай выше?

[Удален]
#6

я чтото такое такое использовал

http://xp.helldude.ru/repositories/entry/dudecurl/trunk/libs/DudeCurl.class.php?rev=62#L251

F
На сайте с 01.07.2009
Offline
79
#7

Как вариант


<?php
if(preg_match("#(.*)<meta(.*)charset=windows-1251(.*)>#i",$text))echo 'ok';
?>
[Удален]
#8
fiper:
Как вариант

прожорливо сожрет

plamar:
а если на странице с кодировкой UTF (практически на любом вордпресс блоге) автор в теле страницы упомянет фразу charset=windows-1251 ???
F
На сайте с 01.07.2009
Offline
79
#9


if(preg_match("#(.*)<meta(.*)charset=windows-1251(.*)>(.*)(<body>|</head>)(.*)#is",$text))echo 'ok';
[Удален]
#10

Спасибо за ответы, с этим понятно. Но вот напоролся на такую фишку:

http://www.e-kirpich.ru/klink_kirpich.html

Данный сайт не отдает кодировку ни в заголовке, ни в теле. Реальная кодировка его win1251. Это всегда так, когда кодировка не возвращается она является win1251?

plamar добавил 26.02.2010 в 14:23

plamar:
Спасибо за ответы, с этим понятно. Но вот напоролся на такую фишку:
http://www.e-kirpich.ru/klink_kirpich.html

Данный сайт не отдает кодировку ни в заголовке, ни в теле. Реальная кодировка его win1251. Это всегда так, когда кодировка не возвращается она является win1251?

в связи с этим еще такой вопрос. Вот один из заголовков запроса к данной странице моего браузера:

Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7

А можно ли как-то указать курлу, чтобы он получал только в utf-8?

12 3

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий