Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Помогите придумать выражение
Форумы портала PHP.SU » PHP » Регулярные выражения » Помогите придумать выражение

Страниц (1): [1]
 

1. tarantulaaha - 26 Июня, 2016 - 08:45:23 - перейти к сообщению
Добрый день уважаемые форумчане!
Нужна Ваша помощь!
Вот уже который день ломаю голову над решением задачи.
Нужно найти все английские слова в ХТМЛ исходнике. Исключить из поиска теги. Т.е. ТОЛЬКО текст. Найденные слова занести в массив.
Прошу Вашей помощи.
2. Строитель - 26 Июня, 2016 - 10:15:51 - перейти к сообщению
tarantulaaha пишет:
Нужно найти все английские слова в ХТМЛ исходнике. Исключить из поиска теги. Т.е. ТОЛЬКО текст. В найденном тексте заменить все английские буквы "о" на русские.
PHP:
скопировать код в буфер обмена
  1. $tags = '
  2.    <!DOCTYPE html>
  3.    <html>
  4.    <head>
  5.         <meta charset="utf-8">
  6.         <title></title>
  7.    </head>
  8.    <body>
  9.        Текст, в кoтoрoм заменяем латинские о на кириллицу
  10.    </script>
  11.    </body>
  12.    </html>
  13. ';
  14.  
  15. echo str_ireplace('о', chr(111), strip_tags($tags));
3. tarantulaaha - 26 Июня, 2016 - 10:17:44 - перейти к сообщению
Строитель пишет:
tarantulaaha пишет:
Нужно найти все английские слова в ХТМЛ исходнике. Исключить из поиска теги. Т.е. ТОЛЬКО текст. В найденном тексте заменить все английские буквы "о" на русские.
PHP:
скопировать код в буфер обмена
  1. $tags = '
  2.    <!DOCTYPE html>
  3.    <html>
  4.    <head>
  5.         <meta charset="utf-8">
  6.         <title></title>
  7.    </head>
  8.    <body>
  9.        Текст, в кoтoрoм заменяем латинские о на кириллицу
  10.    </script>
  11.    </body>
  12.    </html>
  13. ';
  14.  
  15. echo str_ireplace('о', chr(111), strip_tags($tags));



а если усложнить задачу и найденные слова занести в массив? то как тогда?
(Добавление)
tarantulaaha пишет:
Строитель пишет:
tarantulaaha пишет:
Нужно найти все английские слова в ХТМЛ исходнике. Исключить из поиска теги. Т.е. ТОЛЬКО текст. В найденном тексте заменить все английские буквы "о" на русские.
PHP:
скопировать код в буфер обмена
  1. $tags = '
  2.    <!DOCTYPE html>
  3.    <html>
  4.    <head>
  5.         <meta charset="utf-8">
  6.         <title></title>
  7.    </head>
  8.    <body>
  9.        Текст, в кoтoрoм заменяем латинские о на кириллицу
  10.    </script>
  11.    </body>
  12.    </html>
  13. ';
  14.  
  15. echo str_ireplace('о', chr(111), strip_tags($tags));



а если усложнить задачу и найденные слова занести в массив? то как тогда?


Да и еще забыл уточнить! Теги должны быть нетронуты.
4. Строитель - 26 Июня, 2016 - 10:31:21 - перейти к сообщению
tarantulaaha пишет:
а если усложнить задачу и найденные слова занести в массив?
Так вам надо слова или буквы заменять?
5. tarantulaaha - 26 Июня, 2016 - 10:36:38 - перейти к сообщению
Строитель пишет:
tarantulaaha пишет:
а если усложнить задачу и найденные слова занести в массив?
Так вам надо слова или буквы заменять?

Заменять нужно буквы в словах. После чего слова в которых были заменены буквы заносить в массив.
6. Строитель - 26 Июня, 2016 - 11:06:23 - перейти к сообщению
tarantulaaha пишет:
Нужно найти все английские слова в ХТМЛ исходнике. Исключить из поиска теги. Т.е. ТОЛЬКО текст. Найденные слова занести в массив.
PHP:
скопировать код в буфер обмена
  1. $tags = '
  2.    <!DOCTYPE html>
  3.    <html>
  4.    <head>
  5.         <meta charset="utf-8">
  6.         <title></title>
  7.    </head>
  8.    <body>
  9.        Текст, в котором ищем латиницу.
  10.        The text, which are looking for a Latin
  11.    </body>
  12.    </html>
  13. ';
  14.  
  15. preg_match('~<body>.*</body>~ius', $tags, $txt);
  16. preg_match_all('~[a-z]+~i', strip_tags($txt[0]), $arr);
  17.  
  18. echo '<pre>'; print_r($arr);
  19. /*
  20. Array
  21. (
  22.     [0] => Array
  23.         (
  24.             [0] => The
  25.             [1] => text
  26.             [2] => which
  27.             [3] => are
  28.             [4] => looking
  29.             [5] => for
  30.             [6] => a
  31.             [7] => Latin
  32.         )
  33.  
  34. )
  35. */
7. tarantulaaha - 26 Июня, 2016 - 11:08:36 - перейти к сообщению
Строитель пишет:
tarantulaaha пишет:
Нужно найти все английские слова в ХТМЛ исходнике. Исключить из поиска теги. Т.е. ТОЛЬКО текст. Найденные слова занести в массив.
PHP:
скопировать код в буфер обмена
  1. $tags = '
  2.    <!DOCTYPE html>
  3.    <html>
  4.    <head>
  5.         <meta charset="utf-8">
  6.         <title></title>
  7.    </head>
  8.    <body>
  9.        Текст, в котором ищем латиницу.
  10.        The text, which are looking for a Latin
  11.    </body>
  12.    </html>
  13. ';
  14.  
  15. preg_match('~<body>.*</body>~ius', $tags, $txt);
  16. preg_match_all('~[a-z]+~i', strip_tags($txt[0]), $arr);
  17.  
  18. echo '<pre>'; print_r($arr);
  19. /*
  20. Array
  21. (
  22.     [0] => Array
  23.         (
  24.             [0] => The
  25.             [1] => text
  26.             [2] => which
  27.             [3] => are
  28.             [4] => looking
  29.             [5] => for
  30.             [6] => a
  31.             [7] => Latin
  32.         )
  33.  
  34. )
  35. */


Благодарю сударь!

 

Powered by ExBB FM 1.0 RC1