[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Проблема с strstr
deadsock
Здравствуйте,уважаемые php программисты.В этом языке я начинающий,так кодю на A.S 2/0,3/0 и естесственно при написании клиент-серверных приложений имею дело с пхп. Так вот моя проблемка такова:мне еобходимо считать текстовый файл в строку, а затем в считанной строке найти подстроку и все что остается после нее.Гуглом пользоваться умею,так что все вроде заработало,НО если я ищу подстроку с кириллическими символами,то вместо результата в браузуре я получаю пустой экран.Невесело.С латиницей все норм.Текстовый файл сохранен в utf-8.Собственно,сам код:

<?
$file = fopen("main_channel.txt","r");

while(!feof($file))
{

$string = fgets($file);

}
$kind="о";
$result=strstr($string,$kind);
echo $result;
?>

Как совладать с этим не пойму,гуглы не помогли.Жду советов :huh:



Спустя 16 минут, 47 секунд (19.08.2011 - 20:50) ZSH написал(а):
mb_strstr()

Спустя 32 секунды (19.08.2011 - 20:51) inpost написал(а):
mb_strstr

Спустя 13 часов, 39 минут, 15 секунд (20.08.2011 - 10:30) deadsock написал(а):
mb_strstr() не помогло! ohmy.gif

Спустя 1 минута, 52 секунды (20.08.2011 - 10:32) alex12060 написал(а):
mb_stristr()


?

Спустя 3 минуты, 29 секунд (20.08.2011 - 10:35) deadsock написал(а):
mb_stristr тоже ничего не ищет!Все я чувствую из за того,что я загружаю содержимое текстового файла в строку,а в ней никак не ищется!

Спустя 51 секунда (20.08.2011 - 10:36) deadsock написал(а):
может кто нибудь сталкивался с подобной задачей уже?отзовитесь! ph34r.gif

Спустя 2 минуты, 19 секунд (20.08.2011 - 10:39) alex12060 написал(а):
Понял я.
У тебя ошибка.
Исправь с
$string = fgets($file);

на
$string .= fgets($file);


И попробуй еще раз

Спустя 25 секунд (20.08.2011 - 10:39) deadsock написал(а):

<?
$file = fopen("main_channel.txt","r");

while(!feof($file))
{

$string = fgets($file);

}
$kind="Добро";
$result=mb_stristr($string,$kind);
echo $result;
?>

вот исходник.в окне пусто!видимо возвращается FALSE

Спустя 1 минута, 2 секунды (20.08.2011 - 10:40) deadsock написал(а):
Цитата (alex12060 @ 20.08.2011 - 07:39)
Понял я.
У тебя ошибка.
Исправь с
$string = fgets($file);

на
$string .= fgets($file);


И попробуй еще раз

увы никаких изменений!

Спустя 59 секунд (20.08.2011 - 10:41) deadsock написал(а):
Ссылка на текстовый файл
Попробуйте там поискать может я чего не догоняю

Спустя 49 секунд (20.08.2011 - 10:42) alex12060 написал(а):

<?php
$file = fopen("main_channel.txt","r") or die('Не могу открыть файл!');

while(!feof($file))
{
$string .= fgets($file);
}

var_dump($string);
?>


Что выведет?

Спустя 2 минуты, 8 секунд (20.08.2011 - 10:44) deadsock написал(а):
Вот что вывел:
string(109) "Добро пожаловать в Канал:Общий TrueChat!
"

Спустя 5 минут, 34 секунды (20.08.2011 - 10:50) alex12060 написал(а):
обоже.
Сохрани текст как UTF8 без BOM
Далее, твой скрипт тоже должен быть сохранен под UTF8 (?)
Далее, пиши так:

<?php
mb_internal_encoding('UTF-8');
$file = fopen("main_channel.txt","r") or die('Не могу открыть файл!');

while(!feof($file))
{
$string .= fgets($file);
}
$kind="Добро";
$result=mb_stristr($string, $kind);
echo $result;
?>

Спустя 2 минуты, 14 секунд (20.08.2011 - 10:52) deadsock написал(а):
Цитата (alex12060 @ 20.08.2011 - 07:50)
обоже.
Сохрани текст как UTF8 без BOM
Далее, твой скрипт тоже должен быть сохранен под UTF8 (?)
Далее, пиши так:

<?php
mb_internal_encoding('UTF-8');
$file = fopen("main_channel.txt","r") or die('Не могу открыть файл!');

while(!feof($file))
{
$string .= fgets($file);
}
$kind="Добро";
$result=mb_stristr($string, $kind);
echo $result;
?>

Заработало таки!Большое спасибо тебе)Видимо проблема была в том что пхп-скрипт был сохранен в ANSI а не в utf-8 biggrin.gif

Спустя 31 секунда (20.08.2011 - 10:52) deadsock написал(а):
И еще один пост чтобы плюсануть в карму моему спасителю))
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.