|
|
|
| Может кто-нибудь знает как заставить работать функцию strpos с русскими буквами? При поиске вхождения из русской строки она возвращает 0. | |
|
|
|
|
|
|
|
для: dump
(26.08.2009 в 13:12)
| | Если строка в utf-8 надо использовать mb_strpos | |
|
|
|
|
|
|
|
для: ander
(26.08.2009 в 13:55)
| | Если strpos возвращает 0, mb_strpos вернет то же самое. | |
|
|
|
|
|
|
|
для: dump
(26.08.2009 в 13:12)
| | пример вызова? | |
|
|
|
|
|
|
|
для: dump
(26.08.2009 в 13:12)
| | Если у вас linux-сервер, обычно помогает установка правильной локали при помощи setlocale() | |
|
|
|
|
|
|
|
для: mihdan
(26.08.2009 в 14:24)
| | да что ж это за ё.т.м.?
И давно у Вас strpos от локали зависит?! | |
|
|
|
|
|
|
|
для: Trianon
(26.08.2009 в 15:03)
| | Установка локали помогла при работоте со строковыми функциями strtolower(), strtoupper(). По аналогии сделал вывод, что в данной ситуации поможет. Если я не прав, ткните пальцем | |
|
|
|
|
|
|
|
для: mihdan
(26.08.2009 в 15:25)
| | наборы заглавных и строчных букв языка - одно из свойств локализации.
strpos - всего лишь поиск одной цепочки байт внутри другой цепочки байт вне всякой связи с языком, буквы которого этими байтами могут быть (а могут и не быть) закодированы. | |
|
|
|
|
|
|
|
для: Trianon
(26.08.2009 в 15:32)
| | Вот за разъяснение благодарен. Спасибо | |
|
|
|
|
|
|
|
для: dump
(26.08.2009 в 13:12)
| | Всегда? А может вхождение и находится в первой позиции (индексы идут с 0)?
А еще в этой функции часто путают местами строку и то, что ищется. | |
|
|
|
|
|
|
|
для: dump
(26.08.2009 в 13:12)
| | Кодировка какая? И еще:
При сравнении используйте операторы тождественных сравнений (===) (!==) чтобы избежать проблем с определением типов | |
|
|
|
|
|
|
|
для: mihdan
(26.08.2009 в 15:29)
| | Да, спасибо вам за ответы, хотя я и не разобрался со strpos, но я решил этот вопрос с помощью регулярных выражений. | |
|
|
|
|
|
|
|
для: dump
(26.08.2009 в 17:30)
| | Приведите пример кода, где у вас не работает что-то. Регулярные выражения тут не решение проблемы, а не нужный костыль | |
|
|
|
|
|
|
|
для: mihdan
(26.08.2009 в 17:49)
| | вот, вполне работоспособный код
<?php
if (empty($_POST['go']))
echo <<<MAIN_FORM
<center><form method=POST>
Theme for parsing
<SELECT NAME="yav_theme">
<option value="astro">Астрономия</option>
<option value="geo">Геология</option>
<option value="gyro">Гироскопия</option>
<option value="litera">Литературоведение</option>
<option value="market">Маркетинг</option>
<option value="math">Математика</option>
<option value="music">Музыковедение</option>
<option value="polit">Политология</option>
<option value="soil">Почвоведение</option>
<option value="law">Правоведение</option>
<option value="psycho">Психология</option>
<option value="phys">Физика</option>
<option value="phylo">Философия</option>
<option value="chemi">Химия</option>
<option value="estetic">Эстетика</option>
</SELECT><br><br>
Number of posts
<input name="post" type="text" value="3" size="41" /><br><br>
email
<input type='box' size="30"><br><br>
<input name="go" type="submit" value="Старт!"/>
</form>
</center>
MAIN_FORM;
else
{
$part = array(
'astro' => 'http://vesna.yandex.ru/astronomy.xml',
'geo' => 'http://vesna.yandex.ru/geology.xml',
'gyro' => 'http://vesna.yandex.ru/gyroscope.xml',
'litera'=> 'http://vesna.yandex.ru/literature.xml',
'market'=> 'http://vesna.yandex.ru/marketing.xml',
'math'=> 'http://vesna.yandex.ru/mathematics.xml',
'music'=> 'http://vesna.yandex.ru/music.xml',
'polit' => 'http://vesna.yandex.ru/polit.xml',
'soil'=> 'http://vesna.yandex.ru/agrobiologia.xml',
'law'=> 'http://vesna.yandex.ru/law.xml',
'psycho'=> 'http://vesna.yandex.ru/psychology.xml',
'phys' => 'http://vesna.yandex.ru/physics.xml',
'phylo' => 'http://vesna.yandex.ru/philosophy.xml',
'chemi' => 'http://vesna.yandex.ru/chemistry.xml',
'estetic' => 'http://vesna.yandex.ru/estetica.xml'
);
$url=$part[$_POST['yav_theme']];
for ($i=1;$i<=$_POST['post'];$i++)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322)');
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_REFERER, 'http://www.google.com');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$referat=curl_exec($ch);
curl_close($ch);
preg_match('#<h1 style="color:black; margin-left:0;">(.*?)</h1>#i', $referat, $theme);
$theme[1] = mb_substr($theme[1], 7, -1);
preg_match('#<p>(.*)</p>#si', $referat, $text);
$text[1]=strip_tags($text[1]);
mail('canyouloveblog@yandex.ru',$theme[1],$text[1]);
}
echo 'All that you wanted is completed!';
}
?> | |
|
|
|