strpos и настройка PHP

dzimedrol

Новичок
strpos и настройка PHP

Простейший скрипт

<?php
print(strpos('вася12hello',''));
?>

у хостинг-провайдера на сервере выдает то 7, то 11. В чем грабли?
 

fixxxer

К.О.
Партнер клуба
setlocale сделай, хотя я не особо понимаю как это может повлиять при однобайтной кодировке, просто больше ничего в голову не приходит
 

dzimedrol

Новичок
SetLocale() не помогает. Хостер жалуется на баг в PHP. У кого установлена версия 5.6.2(cli), можете попробовать примерчик

setlocale(LC_ALL, 'ru_RU.cp1251');
print(strpos('вася12hello',''));


пообновляйте раз 40, будет ли один результат?
 

tony2001

TeaM PHPClub
http://php.net/setlocale
The locale information is maintained per process, not per thread. If you are running PHP on a multithreaded server api like IIS or Apache on Windows you may experience sudden changes of locale settings while a script is running although the script itself never called setlocale() itself. This happens due to other scripts running in different threads of the same process at the same time changing the processwide locale using setlocale().
веб-сервер какой? Apache 2 worker?
 

tony2001

TeaM PHPClub
я специально спросил: Apache 2 worker?
чтобы посмотреть worker это или нет, выполни:
httpd -V

Меня интересует конкретно вот эта строка:
-D APACHE_MPM_DIR="server/mpm/worker"
 

dzimedrol

Новичок
-bash-2.05b$ /usr/sbin/httpd -V
Server version: Apache/2.0.63
Server built: Jul 22 2008 23:09:16
Architecture: 32-bit
Server compiled with....
-D APACHE_MPM_DIR="server/mpm/prefork"
-D APR_HAS_SENDFILE
-D APR_HAS_MMAP
-D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
-D APR_USE_SYSVSEM_SERIALIZE
-D APR_USE_PTHREAD_SERIALIZE
-D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
-D APR_HAS_OTHER_CHILD
-D AP_HAVE_RELIABLE_PIPED_LOGS
-D HTTPD_ROOT="/usr/local/apache"
-D SUEXEC_BIN="/usr/local/apache/bin/suexec"
-D DEFAULT_PIDLOG="logs/httpd.pid"
-D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
-D DEFAULT_LOCKFILE="logs/accept.lock"
-D DEFAULT_ERRORLOG="logs/error_log"
-D AP_TYPES_CONFIG_FILE="conf/mime.types"
-D SERVER_CONFIG_FILE="conf/httpd.conf"

-~{}~ 02.10.08 14:23:

мой случай точь-в-точь

http://forum.ixbt.com/topic.cgi?id=26:37972
 

fixxxer

К.О.
Партнер клуба
тупой вопрос, а точно запущен именно этот апач? который в /usr/sbin? а не какой-нибудь /usr/local/apache/sbin/httpd или типа того? :)

не может такого быть в префорке =)
 

dzimedrol

Новичок
вопрос меткий, как раз оказалось, что запущен вот этот
/usr/local/apache/bin/httpd
но он тоже префорк :'(
 
Сверху