Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
 Аватар для Programmer1993
44 / 24 / 1
Регистрация: 22.05.2012
Сообщений: 669

Перевести из php в delphi

08.01.2015, 00:03. Показов 1409. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите перевести данную программу на php в delphi
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
<?error_reporting(E_ALL);?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8" />
    <title>Сравнение текстов на схожесть - алгоритм шинглов - уникальный контен - реврайт</title>
    <meta name="keywords" content="Сравнение, текстов, схожесть, уникальный, контен, реврайт, алгоритм шингл" />
    <meta name="description" content="Данный сервис позволяет сравнить два текста на уникальность после изменений." />
    <meta name="robots" content="index, follow" />
</head>
<body style="font-family: Tahoma;">
 
<div id="container" style="margin: 0 auto; width: 95%;">
 
    <h1 align="center">Сравнение текстов на схожесть</h1>
    <div style="float: left; clear: none; width: 48%;">
    Зачем изобретать велосипед?<br />
    Поискал нужный текст или статью и скопировал себе на сайт.
    Но не все так просто. Думаю вы слышали о том, что лучше делать <strong>уникальный контен сайта</strong>.
    <p>
    Что может произойти если поисковик <a href="http://google.com" target="_top">Google</a> или <a href="http://yandex.ru" target="_top">Яндекс</a> определит, что ваш текст
    "позаимствован" с другого сайта?<br />
    Ваш ресурс может не попасть в результаты поиска.
    </p>
    <p>
    Как же поисковые машины определяют схожесть текстов?<br />
    Существует "<strong>алгоритм шинглов</strong>" (shingles-Шинглы), позволяющий простой <strong>проверкой
    двух текстов</strong> убедиться, что между ними есть связь.
    </p>
    <p>
    Как работает "<strong>алгоритм шингл</strong>"?<br />
    Разбиение текстов на слова, а затем сравнение полученных матриц. Так что, становиться
    не важно если вы просто переставили слова или предложения (если деление идет на 1 слово).
    Разбиение текста может быть как по одному слову, так и по несколько, т.e. шингла из нескольких слов.
    </p>
    <p>
    Данный сервис позволяет сравнить два текста на уникальность после изменений.
    </p>
    <p>
    Для проверки вам необходим оригинал текста и переделанная (реврайт) копия.
    </p>
    <p>
    Идея взята с сайта "Тексторубка" (http://textorubka.ru/test.php).<br />
    Код (PHP) был написан с нуля, но после того, как был найден более красивый код, был заменен на него
    с моими вставками.
    </p>
    <p>
    Версия: 1.0<br />
    <a href="/shingles_php.rar">PHP код алгоритм шинглов</a>
    </p>
    <p>
    <a href="http://rikuz.com/seo/">Создание оригинальных текстов и Раскрутка сайтов</a>
    </p>
    </div>
    <div style="float: right; width: 48%;">
    Перед сравнением текст проходит минимальные чистки и изменения:<br />
    - убираются html вставки такие как &lt;strong&gt;<br />
    - символы преобразуются в нижний регистр<br />
    - убираются запятые, точки, апострофы, знаки переноса строки, двойные пробелы, слешы.<br />
    <br />
    <form method="post" action="<?=$_SERVER['PHP_SELF']?>">
    <strong>Оригинальный текст</strong>:<br />
    <textarea id="text1" name="text1" style="width: 100%; height: 200px;"><?=isset($_POST['text1']) ? stripslashes(htmlspecialchars($_POST['text1'])) : ''?></textarea><br />
    <strong>Переделанная (реврайт) копия</strong>:<br />
    <textarea id="text2" name="text2" style="width: 100%; height: 200px;"><?=isset($_POST['text2']) ? stripslashes(htmlspecialchars($_POST['text2'])) : ''?></textarea><br />
    <br />
    <input type="submit" value="Проверить" style="display: block; margin: 0 auto; font-weight: bold; width: 50%;" />
    </form>
    <p>
    <?php
    function get_shingle($text,$n=3) {
        $shingles = array();
        $text = clean_text($text);
        $elements = explode(" ",$text);
        for ($i=0;$i<(count($elements)-$n+1);$i++) {
            $shingle = '';
            for ($j=0;$j<$n;$j++){
                $shingle .= mb_strtolower(trim($elements[$i+$j]), 'UTF-8')." ";
            }
            if(strlen(trim($shingle)))
                $shingles[$i] = trim($shingle, ' -');
        }
        return $shingles;    
    }
    
    function clean_text($text) {
        $new_text = eregi_replace("[\,|\.|\'|\"|\\|\/]","",$text);
        $new_text = eregi_replace("[\n|\t]"," ",$new_text);
        $new_text = preg_replace('/(\s\s+)/', ' ', trim($new_text));
        return $new_text;
    }
    
    function check_it($first, $second) {
        if (!$first || !$second) {
            echo "Отсутствуют оба или один из текстов!";
            return 0;
        }
        
        if (strlen($first)>200000 || strlen($second)>200000) {
            echo "Длина обоих или одного из текстов превысила допустимую!";
            return 0;
        }
        
        
        for ($i=1;$i<5;$i++) {
            $first_shingles = array_unique(get_shingle($first,$i));
            $second_shingles = array_unique(get_shingle($second,$i));
        
            if(count($first_shingles) < $i-1 || count($second_shingles) < $i-1) {
                echo "Количество слов в тексте меньше чем длинна шинглы<br />";
                continue;
            }
            
            $intersect = array_intersect($first_shingles,$second_shingles);
            
            $merge = array_unique(array_merge($first_shingles,$second_shingles));
            
            $diff = (count($intersect)/count($merge))/0.01;
            
            echo "Количество слов в шингле - $i. Процент схожести - ".round($diff, 2)."%<br />";
        }
    }
 
    if (isset($_POST['text1']) && isset($_POST['text2'])) {
        check_it(strip_tags($_POST['text1']), strip_tags($_POST['text2']));
    }
    ?>
    </p>
    </div>
</div>
    
</body>
</html>
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
08.01.2015, 00:03
Ответы с готовыми решениями:

Нужно перевести код из delphi в php
Мне нужно перевести код: bs :=edit1.Text; for str := 1 to Ord(bs) do c := 23 xor c; for str := 1 to Ord(bs) do c := 23 xor c; ...

Перевести маленький код Delphi 7 в php
NC := char(integer(Stable)]) xor (StartKey shr 8)); Result := Result + IntToHex(byte(NC), 2); StartKey := (integer(nc) + StartKey) *...

Перевести код алгоритма шинглов из PHP в Delphi
Добрый день! Прошу помочь перевести код из PHP в Delphi. Кому не сложно, очень прошу! Это не для лабы, для диплома. Просто нужен код на...

1
пофигист широкого профиля
4769 / 3204 / 862
Регистрация: 15.07.2013
Сообщений: 18,609
08.01.2015, 02:34
Цитата Сообщение от Programmer1993 Посмотреть сообщение
Помогите перевести данную программу на php в delphi
Это, ну то что ты тут вывалил, программа?
P.S.
Троешники уже достали! Бродят по разным форумам, напрягают своей ерундой знатоков, и ещё просят написать бред.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
08.01.2015, 02:34
Помогаю со студенческими работами здесь

Регулярные выражения. Как вот такой код с php перевести на Delphi!?
$file = preg_match_all(&quot;|&lt;tr&gt;&lt;td class='time'&gt;(.*)&lt;/tr&gt;|U&quot;,$file,$frazes); $myper = array(); for ($i=0;$i&lt;80;$i++) { echo...

Delphi+Php: Возможно ли вставить код php в Delphi (если да, то каким образом)
вот такой вопрос у меня возник, если гора не идет к Магомеду, то прийдется Магомеду идти к ней.

Перевести с Delphi
Здравствуйте! Есть код 2-х функций на Delphi, нужно перевести на C#. Очень надо. Заранее спасибо! function Freedom (x, y: Integer;...

Перевести с Delphi на С++
Кто-нибудь может помочь перевести этот код? Сердечно прошу, ибо мои знания, а точнее их отсутствие, не позволяют мне сделать это самому. ...

Перевести с C# на Delphi
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru