Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
tsvigo
4 / 4 / 0
Регистрация: 23.08.2010
Сообщений: 66
1

Код не находит русскую букву на странице

13.10.2012, 22:03. Просмотров 1131. Ответов 9
Метки нет (Все метки)

PHP
1
2
3
get_contents("http://nnm.ru/");
$substr = "а";
echo mb_strstr($x, $substr);
Не находит русскую букву на странице.

Такое впечатление что file_get_contents как-то по своему считывает русские буквы.

Кто виноват и что делать?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.10.2012, 22:03
Ответы с готовыми решениями:

На странице выводить новости в блоке div, до тех пор пока в базе он находит информацию
Добрый день, уважаемые специалисты! Я только начинаю изучать php. Не судите...

Определить букву икс и х(русскую)
Есть переменная $name = ''; //x это икс английская $name =...

Как заменить латинскую букву на русскую?
вообщем имею к примеру такое слово фopсункa в этом слове о,р,а английские как...

Нужно заменить все 'З' на букву З русскую
Есть формула ('З'18+'З'19+'З'23+'З'24)*(2.9.4./2.9.5.) нужно заменить все...

В заданной строке заменить русскую букву символом *
по условию "В заданной строке заменить русскую букву символом * " не заменяет...

9
Jallik Lich
Исследователь
195 / 174 / 13
Регистрация: 30.10.2011
Сообщений: 605
13.10.2012, 22:11 2
А английские буквы он находит?
1
spyeye
31 / 31 / 2
Регистрация: 06.08.2012
Сообщений: 155
13.10.2012, 22:19 3
PHP
1
2
3
4
5
$content = file_get_contents("http://nnm.ru/");
$find = "а";
if(strpos($content, $find)){
echo "Буква найдена!";
}
0
tsvigo
4 / 4 / 0
Регистрация: 23.08.2010
Сообщений: 66
13.10.2012, 22:38  [ТС] 4
Добавлено через 14 секунд
Цитата Сообщение от Jallik Lich Посмотреть сообщение
А английские буквы он находит?
Да, безусловно.

Добавлено через 10 минут
Цитата Сообщение от spyeye Посмотреть сообщение
PHP
1
2
3
4
5
$content = file_get_contents("http://nnm.ru/");
$find = "а";
if(strpos($content, $find)){
echo "Буква найдена!";
}
тоже не работает с русской буквой.
0
spyeye
31 / 31 / 2
Регистрация: 06.08.2012
Сообщений: 155
13.10.2012, 23:30 5
Цитата Сообщение от tsvigo Посмотреть сообщение
тоже не работает с русской буквой.
Что значит не работает? Я запустил у себя этот скрипт, всё нашло. Как вы определяете?
1
fxxer
15 / 15 / 3
Регистрация: 19.05.2012
Сообщений: 58
13.10.2012, 23:55 6
Работает если кодировку пхп файла поменяете с ansi на utf 8 = только что пробовал.
С ansi не работало.
PHP
1
2
3
4
5
6
7
8
9
10
<?php
$content = file_get_contents("http://nnm.ru/");
$find = "а";
 
//$sdf = strpos($content, $find);
if(strpos($content, $find)){
echo "Буква найдена!";
}
 
?>
Добавлено через 19 минут
Код указаный изначально
PHP
1
2
3
get_contents("http://nnm.ru/");
$substr = "а";
echo mb_strstr($x, $substr);
нерабочий.
Подправил:
PHP
1
2
3
4
5
<?php
$x = file_get_contents("http://nnm.ru/");
$substr = "а";
echo mb_strstr($x, $substr);
?>
В итоге выводит всю страницу Как то давно искал что то подобное Вот нашел
1
tsvigo
4 / 4 / 0
Регистрация: 23.08.2010
Сообщений: 66
14.10.2012, 01:52  [ТС] 7
Совершенно верно. Я только что попробовал. Если у php файла поменять кодировку с Ansi на utf-8 начинает работать.

Выводит всю страницу потому что

string strstr ( string $haystack, string $needle )

Возвращает подстроку строки haystack начиная с первого вхождения needle до конца строки.

И да, конечно, правильное название функции file_get_contents
.
0
panicwassano
594 / 562 / 104
Регистрация: 07.11.2010
Сообщений: 2,004
14.10.2012, 12:02 8
Цитата Сообщение от tsvigo Посмотреть сообщение
Если у php файла поменять кодировку с Ansi на utf-8 начинает работать.
mb_strstr для многобайтных строк, для этого и надо ставить кодировку!
0
tsvigo
4 / 4 / 0
Регистрация: 23.08.2010
Сообщений: 66
14.10.2012, 16:43  [ТС] 9
Цитата Сообщение от panicwassano Посмотреть сообщение
mb_strstr для многобайтных строк, для этого и надо ставить кодировку!
Вобщем-то это к делу не относится но немногобайтная strstr тоже прекрасно ищет. PHP движок буквально считывает русскую букву из php файла и ищет такую же на странице.
0
KOPOJI
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16753 / 6644 / 864
Регистрация: 12.06.2012
Сообщений: 19,897
Завершенные тесты: 1
14.10.2012, 16:53 10
Цитата Сообщение от tsvigo Посмотреть сообщение
но немногобайтная strstr тоже прекрасно ищет.
если бы это было так, разработчики не стали бы добавлять mb-аналог для этой функции. Проверять лень, но я уверен что ядро пыха собирают отнюдь не дураки

Добавлено через 1 минуту
и лучше прописать кодировку в mb_strstr, а то надумаете как нибудь перейти на сервер с другой внутренней кодировкой и сильно удивитесь..

Добавлено через 3 минуты
P.S. это я про мультибайтовые кодировки все
2
14.10.2012, 16:53
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.10.2012, 16:53

Определить процент слов в тексте заканчивающихся на русскую букву а
Как правильно подсчитать процент слов? Выводит 0. Заранее огромное спасибо. ...

Как заменить в строке одну русскую букву на другую?
Здравствуйте! Нужно написать вот такую программу: &quot;Распечатать все введенные...

Программа, вычёркивающая каждую гласную русскую букву слова X
Составьте программу, вычёркивающая каждую гласную русскую букву слова X....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru