2009-06-13 5 views
0

chargé Dynamiquement comme <a href="myexample.com"></a> doit retourner en blancSupprimer/Modifier les liens dans la description Markup

+2

Pourquoi ce vote est-il serré? Pourquoi ne demandons-nous pas à l'auteur de simplement clarifier ce qu'il veut dire plutôt que de l'éteindre parce qu'ils ne sont pas clairs au départ? – Sampson

+0

Amen, Jonathan. – DOK

Répondre

1

Si vous voulez remplacer du contenu dynamique URL, vous pouvez le faire avec des expressions régulières, ou une méthode plus facile comme l'utilisation phpQuery qui permettra vous pouvez utiliser une méthode de recherche de liens dans HTML et remplacer leur attribut HREF. Je n'ai pas utilisé phpQuery depuis un moment, mais je crois que cela ferait l'affaire. Aussi, si les liens que vous essayez de supprimer sont la navigation, les flux rss, etc, vous pouvez utiliser phpQuery pour retourner seulement une partie particulière de la page externalPage, ce qui signifie que vous n'aurez plus à supprimer les liens qui ne sont pas .

Par exemple, si vous essayez d'obtenir un article de la page externe qui existe dans un DIV ayant un ID de « articleBox », vous pouvez le faire:

pq("div#articleBox"); 

Ce serait revenir seulement particulier élément, et le contenu en son sein.

Vous pouvez trouver que PHPSimpleHTMLDOMParser est plus facile de travailler avec. Voici un exemple de la façon de l'utiliser contre slashdot pour gratter parties de la page principale:

// Create DOM from URL 
$html = file_get_html('http://slashdot.org/'); 

// Find all article blocks 
foreach($html->find('div.article') as $article) { 
    $item['title'] = $article->find('div.title', 0)->plaintext; 
    $item['intro'] = $article->find('div.intro', 0)->plaintext; 
    $item['details'] = $article->find('div.details', 0)->plaintext; 
    $articles[] = $item; 
} 

print_r($articles); 
0

Utilisez la fonction PHP strip_tags (http://us3.php.net/manual/en/function.strip-tags.php), il supprime toutes les balises HTML d'une chaîne, donc:

$text = '<p>Test paragraph.</p><!-- Comment --> <a href="#fragment">Other text</a>'; 
echo strip_tags($text); 

Souhaiterait "Test paragraphe Autre texte", et l'exemple que vous avez donné retournerait vide. Notez que vous pouvez également spécifier certaines balises que vous souhaitez autoriser, s'il y en a que vous souhaitez toujours utiliser.

0

Etes-vous en train d'essayer de cacher les liens dans les données récupérées? Si c'est le cas, vous pouvez peut-être appliquer CSS uniquement à ce texte (div ou span) pour masquer tous les tags <a>> en définissant display:none.

Questions connexes