Cómo usar PHP para agregar enlaces a palabras clave en el texto
/**
* Ordenar por longitud (descendente)
*/
función _sortDesc($a, $b) {
retorno (strlen($a[0]) < strlen($b[0])) 1: -1;
}
$linkDefs = array(
'Té,111.htm',
'Té chino,222.htm',
);
$linkMap = array();
foreach($linkDefs as $row) {
$linkMap[] = explotar(', ' , $row);
}
$str = '
Aquí está el enlace al té.
Aquí hay un enlace a China Tea View.
Aquí está el enlace existente para Té.
Aquí está el enlace existente a China Tea View.
';
//Reemplazar el enlace original con texto
foreach($linkMap as $row) {
$cadena = preg_replace('/(
}
//Ordenar palabras clave de más larga a más corta
usort($linkMap, '_sortDesc');
p >//var_dump($linkMap);
$tmpKwds = array(); //El almacenamiento reemplazó temporalmente las subpalabras clave
foreach($linkMap as $ i=> $fila) {
lista($kwd, $url) = $fila;
for($j=$i+1; $j $subKwd = $linkMap[$j][0]; //Si contiene otras palabras clave, reemplácelas temporalmente con otras cadenas, como hojas de té. {fcc734148321f5ad627b27585aa23958} if(strpos($kwd, $subKwd) !== false) { $tmpKwd = '{'.md5($subKwd).'} '; $kwd = str_replace($subKwd, $tmpKwd, $kwd); $tmpKwds[$tmpKwd] = $subKwd; } } //Reemplazar texto con enlace $str = preg_replace('/('.$row[0].')/sui', ''.$kwd.'', $str, 5); // Reemplazar hasta 5 veces }< /p); > //Reemplaza la cadena que reemplaza la subpalabra clave foreach($tmpKwds as $tmp=>$kwd) { $str = str_replace( $tmp, $kwd , $str); } echo $str; > El resultado del programa anterior: Aquí está el enlace a té. Aquí está el enlace a Vista del té de China. Aquí está el enlace existente para Té. Aquí hay un enlace existente a China Tea View.