Red de conocimiento informático - Material del sitio web - Cómo usar PHP para agregar enlaces a palabras clave en el texto

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 .

Aquí está el enlace existente a China Tea View.


';

//Reemplazar el enlace original con texto

foreach($linkMap as $row) {

$cadena = preg_replace('/(\s*)('.$fila[0].')(\s*<\/a>)/sui', '${2 }' , $str);

}

//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 .

Aquí está el enlace a Vista del té de China.

Aquí está el enlace existente para .

Aquí hay un enlace existente a China Tea View.