powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Не работает mb_strpos (PHP)
9 сообщений из 9, страница 1 из 1
Не работает mb_strpos (PHP)
    #38173800
Фотография SeeJay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте уважаемые форумчане!
Не могу понять почему функция mb_strpos - при одних условиях работает а при других нет, хотя особо сильно ничего не меняется. Если брать и просто в параметры вставить строку то все корректно работает. А вот если эта строка будет изыматься с файла. То почему-то нет. Хотя, там точно есть искомая подстрока.

Пример когда работает:
Код: php
1.
echo "<h1>".mb_strpos(" СимволEURUSD (Euro vs US Dollar)", "Символ", 0, "UTF-8")."</h1>";


Результат: 1.

Пример когда НЕ работает:
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
<?php 
echo "<h1>".mb_strpos(" СимволEURUSD (Euro vs US Dollar)", "Символ", 0, "UTF-8")."</h1>";
$file_array = file("uploads/1/StrategyTester.htm");
for ($i = 0; $i <= count($file_array)-1; $i++) 
{ 
	$str = strip_tags($file_array[$i]);
	$str = " ".$str;
	
	$exp_name_pos = strpos($str, "Strategy Tester: ");
	$exp_name_len = strlen("Strategy Tester: ");
	
	$symbol_pos = mb_strpos($str, "Символ", 0, "UTF-8");
	$symbol_len = mb_strlen("Символ", "UTF-8");

	if($exp_name_pos > 0) $exp_name = substr($str, $exp_name_pos + $exp_name_len);
	if($symbol_pos > 0) {$symbol = mb_substr($str, $symbol_pos + $symbol_len); echo $symbol; }
	
	
	echo $str; 
} 
echo "
<b>".$exp_name."|".$symbol."|"."</b>";
?>



Результат: $symbol, $symbol_pos - везде пустые. При этом прошу заметить что пример ($exp_name) с обычной латинице работает превосходно.

StrategyTester.htm --- файл откуда берется строка с кирилицей прикрепляю.

Надеюсь Вы мне поможете а то ни я ни гугл решения не находят. Кстати немного погуглив нашел лишь кучу отзывов о том что эти функции весьма глючны. Но тогда чем Вы пользуетесь в таком случае?

Буду рад любому конструктивному ответу.
Заранее благодарен!
С уважением, Евгений.
...
Рейтинг: 0 / 0
Не работает mb_strpos (PHP)
    #38173802
Фотография SeeJay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Забыл прикрепить...
...
Рейтинг: 0 / 0
Не работает mb_strpos (PHP)
    #38173899
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тот факт, что в прилагаемом файле текст в cp1251, а Вы пытаетесть использовать utf-8 Вас не смущает? ;-)
...
Рейтинг: 0 / 0
Не работает mb_strpos (PHP)
    #38173921
Фотография SeeJay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vkle, спасибо большое что не поленились и попытались разобраться с моей проблемой. Я Вам очень благодарен. Но к сожалению к решению это не привело. Я забыл сказать что пробовал вставлять вместо utf-8, cp1251. К сожалению это не помогло.
...
Рейтинг: 0 / 0
Не работает mb_strpos (PHP)
    #38173947
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeeJay, с однобайтовой кодировкой текста в cp1251 использовали однобайтовую функцию strpos() или многбайтовую mb_strpos()?
...
Рейтинг: 0 / 0
Не работает mb_strpos (PHP)
    #38173962
Фотография SeeJay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vkle, пробовал и так и так. Не дало результатов!
...
Рейтинг: 0 / 0
Не работает mb_strpos (PHP)
    #38173988
MikkiMouse
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeeJay,

Поубирай везде mb_ . У тебя файл на входе в однобайтовой кодировке. И вообще, что ты этим г-кодом сделать пытаешься? Может проще каким-нибудь парсером простейшим всю эту лабуду разгрести?
...
Рейтинг: 0 / 0
Не работает mb_strpos (PHP)
    #38173995
Фотография SeeJay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MikkiMouse,
Подбирал все ровно не работает!

автор И вообще, что ты этим г-кодом сделать пытаешься? Может проще каким-нибудь парсером простейшим всю эту лабуду разгрести
Пытаюсь вытащить значения стоящие после заранее определенных фраз. Допусти после "Strategy Tester: " мне надо изъять само значение которое стоит после данного слова. Что кстати и получается со всей латиницей.
Кстати хотел бы спросить... Как Вы определяете г-код или не г-код. В чем Ваши критерии. Если бы Вы сказали мне то я бы в следующий раз не писал г-код. За конструктив буду Вам благодарен.

С уважением, Евгений.
...
Рейтинг: 0 / 0
Не работает mb_strpos (PHP)
    #38173999
Фотография SeeJay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В общем нашел я свой косяк. Дело в том что сам файл php я делал в utf-8 кодировке. Соответственно возникал конфликт. Так как строка в которой надо искать была в cp1251 а под строка в utf-8. исправил php файл в cp1251 и все заработало. Ура!

Спасибо тем кто пытался помочь.
С уважением, Евгений.

П.С.
Тему можно закрывать! Проблема решена!
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Не работает mb_strpos (PHP)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]