Skocz do zawartości

[algorytm][PHP] Podlinkowanie artykułów w treści


Eldoka

Rekomendowane odpowiedzi

1) Jaki stosujecie algorytmu do podlinkowania artykułów w treści innych artykułów?

np. mamy tekst

Badacze z Queen’s University skonstruowali prosty test, bazujący na pomiarze ruchów oczu, który pozwala zidentyfikować dzieci z płodowym zespołem alkoholowym. Dotychczas nie istniały obiektywne narzędzia diagnostyczne, umożliwiające odróżnienie dzieci z FAS od maluchów z ADHD. Wcześniejsze testy były zależne kulturowo, nie nadawały się więc do stosowania na szeroką skalę. Grupa uczonych z Queen’s University zaobserwowała w badaniu pilotażowym (brało w nim udział 25 dziewczynek i chłopców w wieku od 8 do 12 lat), że specyficzne dla FAS nieprawidłowości w budowie mózgu znajdują odzwierciedlenie w typowych dla tej choroby ruchach gałek ocznych. Obecnie trwają badania z użyciem rezonansu magnetycznego, mające pokazać różnice w funkcjonowaniu mózgów dzieci z płodowym zespołem alkoholowym i innymi zaburzeniami rozwojowymi, np. ADHD.

i mamy w bazie artykuł o tytule ADHD więc co teraz?

-zamieniacie wszystkie słowa ADHD na link do artykułu czy tylko pierwsze wystąpienie słowa?

2)

-Jak zrobić w PHP aby zamieniło TYLKO pierwsze wystąpienie słowa ADHD na link np.

<a href="adhd.html">ADHD</a>

a nie wszystkie

-Jak zrobić aby sprawdzić czy już dane słowo nie jest podlinkowane lub nie zawiera w sobie żadnego tagu html bo jeśli nie bedzie tego zabezpieczenia to wyjdzie

<a href="adhd.html"><a href="adhd.html">ADHD</a></a>

3) Czy macie jeszcze jakieś pomysły jak udoskonalić ten algorytm

forum zdrowotne - dodaj ogłoszenie za darmo!

naprawiasz elektronikę? - dodaj ogłoszenie za darmo!

masz kwiaciarnię? - dodaj ogłoszenie za darmo!

Odnośnik do komentarza
Udostępnij na innych stronach

mixed str_replace ( mixed $search , mixed $replace , mixed $subject [, int &$count ] )

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Mion wytłumacz proszę Twój kod bo nie rozumie mixed ?

Dzięki KuRT za dobre rozwiązanie z

sprawdzić czy nie jest podlinkowany (np sprawdzić co jest na strpos-1 czy nie ma tam znaku >)

forum zdrowotne - dodaj ogłoszenie za darmo!

naprawiasz elektronikę? - dodaj ogłoszenie za darmo!

masz kwiaciarnię? - dodaj ogłoszenie za darmo!

Odnośnik do komentarza
Udostępnij na innych stronach

Mion wytłumacz proszę Twój kod bo nie rozumie mixed ?
Brak kreatywności jest ostatnio coraz większy :)

https://php.net/manual/en/function.str-replace.php

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Mion wytłumacz proszę Twój kod bo nie rozumie mixed ?

Mixed nigdzie nie wpisujesz, to jedynie oznaczenie, że funkcja może zwrócić różny typ danych, podobnie mixed może wystąpić w argumencie funkcji.

Jeżeli funkcja zwraca tylko liczby całkowite i nigdy nic więcej, to jest "int", ale jeżeli może zwrócić np. tablicę (array) albo false (boolean) to wtedy jest mixed.

Odnośnik do komentarza
Udostępnij na innych stronach

Tak to jest jak się na kaca udziela porad :P

Prawidłowa funkcja w której można określić ilość podmian to:

mixed preg_replace ( mixed $pattern , mixed $replacement , mixed $subject [, int $limit = -1 [, int &$count ]] )

<?php
$subject = 'Badacze z Queen’s University skonstruowali prosty test ADHD, bazujący na pomiarze ruchów oczu, który pozwala ADHD zidentyfikować dzieci z płodowym zespołem alkoholowym ADHD.';

echo preg_replace('@ADHD@','<a href="ADHD.html">ADHD</a>', $subject, 1);
?>

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

a jak sprawdzić czy to co podlinkowujemy nie jest już podlinkowane?

sprawdzi się coś takiego:

function podlinkuj($txt,$szukam,$ahref)
{	  
$pos = stripos($txt, $szukam);	  
$ile = strlen($szukam);
if ($pos === false) 
{
	echo "nie znaleziono";
}
if ($pos !== false) 
{
$znak_html = $pos-1;

$tag_html = substr($txt, $znak_html, 1);
$znalezione_slowo = substr($txt, $pos-5, $ile+35);
$slowo = substr($txt, $pos, $ile);

echo "<h1>pos: $pos  - znak_html: $znak_html : $slowo</h1>";

if ($tag_html==">")
echo '<hr>Już podlinkowano';
else
{	
//update w bazie




$txt = substr_replace($txt,'</a>',$pos+$ile,0); //fraza</a>
$txt = substr_replace($txt,'<a href="'.$ahref.'.html">',$pos,0); //<a href="">fraza

echo "Podlinkowano na pozycji <b>$pos</b> i wygląda to teraz tak:";
echo '<textarea style="width:500;height:25px;padding:3px;">'.htmlentities($znalezione_slowo).'</textarea>';

echo "<hr>";
echo $txt;

}



}



}

$findme = 'dzieci z FAS';
$txt = '12345 z <a href="1">Jakaś tam <a href="2">fraza</a> dla dzieci z FAS</a> charakteryzuje się deformacjami twarzy, problemami ze wzrostem oraz trwałym uszkodzeniem mózgu. Skutki używania alkoholu przez kobiety ciężarne mogą być różne, dlatego nie wszystkie dzieci obarczone zespołem będą do siebie podobne. Niektóre z nich będą w większym stopniu obarczone niż pozostałe. Inne będą wykazywać mniej fizycznych aniżeli związanych z zachowaniem się opóźnień, charakteryzując się przy tym lekkim upośledzeniem umysłowym. Wiele spośród nich będzie miało trudności w nauce i w kontaktach społecznych. Dzieci, które nie posiadają pełnoobjawowego FAS, ale w życiu płodowym były narażone na działanie alkoholu są diagnozowane jako osoby obarczone Fetal Alkohol Effects (FAE). Mogą one charakteryzować się normalnym wzrostem, wyglądem, ich rozwój umysłowy może mieścić się w normie. Jednak tak samo jak dzieci z FAS mogą mieć problemy z zachowaniem, nauką i rozumowaniem.
Zagrożenia związane z używaniem alkoholu w ciąży.Alkohol bardzo łatwo przenika przez łożysko, dostając się do krwiobiegu dziecka. Po upływie 40 do 60 minut od spożycia alkoholu przez matkę, jego stężenie w krwiobiegu płodu jest równe stężeniu alkoholu we krwi matki. Alkohol, którego wątroba matki nie zdołała pomieścić, krąży po całym organizmie zarówno jej jak i dziecka, prowadząc do powstania wielu defektów. Uszkadza on główne narządy (w szczególności mózg) oraz zaburza liczne procesy neuro- i biochemiczne prowadząc do większych uszkodzeń embrionu i płodu niż używanie jakichkolwiek narkotyków.';  


podlinkuj($txt,$findme,"test");

forum zdrowotne - dodaj ogłoszenie za darmo!

naprawiasz elektronikę? - dodaj ogłoszenie za darmo!

masz kwiaciarnię? - dodaj ogłoszenie za darmo!

Odnośnik do komentarza
Udostępnij na innych stronach

Zainteresuj się wyrażeniami regularnymi i w ogóle nauką jezyka programowania z jakiego chcesz korzystać...

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Jesli ma to byc tylko jeden link na stronie to poprostu usun kod html z tego textu:

function usunhtml($html, $exceptions = null){
if(is_array($exceptions) && !empty($exceptions))
{
	foreach($exceptions as $exception)
	{
		$openTagPattern  = '/<(' . $exception . ')(\s.*?)?>/msi';
		$closeTagPattern = '/<\/(' . $exception . ')>/msi';

		$html = preg_replace(
			array($openTagPattern, $closeTagPattern),
			array('||l|\1\2|r||', '||l|/\1|r||'),
			$html
		);
	}
}

$html = preg_replace('/<.*?>/msi', '', $html);

if(is_array($exceptions))
{
	$html = str_replace('||l|', '<', $html);
	$html = str_replace('|r||', '>', $html);
}

return $html;
}

uzycie:

$ntext = usunhtml($text, array('<a>'));

i wtedy mozesz przejechac kodem ktory napisal CI Mion

Odnośnik do komentarza
Udostępnij na innych stronach

A Mion nie musisz gnoić każdego kto nie pisze w MVC :)
Tu MVC nie ma nic wspólnego ;) Poza tym Cie nie gonię ... tylko sugeruję naukę języka programowania z jakiego chcesz korzystać/stasz ;)

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności