Buongiorno,
Avrei bisogno di cancellare il contenuto del link dentro l'<a href='link'> per sostituirlo con quello di cui ho bisogno; però non conoscendo bene le espressioni regolari, mi potete dire quale pattern serve per cancellare il link?
Buongiorno,
Avrei bisogno di cancellare il contenuto del link dentro l'<a href='link'> per sostituirlo con quello di cui ho bisogno; però non conoscendo bene le espressioni regolari, mi potete dire quale pattern serve per cancellare il link?
Non so cosa indenti per cancellare un link, e cosa centri un link con le espressioni regolari, cosa intendi di preciso?
Faccio un esempio:
Devo sostituire ilCodice:<a href="http://www.google.it">Google</a>
con uno mio. Il problema è che quel link è dinamico, perciò a priori non lo conosco. So solo che è compreso dentro i doppi apici " ". Ecco mi servirebbe il pattern che sostituisca tutto quello che c'è tra il primo doppio apice e il secondo. Chiaro? :)Codice:http://www.google.it
Il link è dinamico, ma rispetto a cosa viene prodotto? potresti postare lo script che produce il link?
Ultima modifica di sevenjeak : 09-03-2011 alle ore 17.05.37
Con una espressione regolare semplice, per esempio, puoi fare:
Codice PHP:
$testo = '<a href="http://www.google.it/">google</a> <a href="http://www.altervista.org/">altervista</a>';
echo preg_replace('/<a href="(.+?)">(.+?)<\/a>/', '\\1', $testo); // stampa: http://www.google.it/ http://www.altervista.org/
Ultima modifica di javascripter : 09-03-2011 alle ore 17.18.16
Io avevo pensato, se devi catturare il link da un'altra pagina, a qualcosa del genere:
Codice PHP:
<?php
$link = file_get_contents('http://localhost/sorgentedellink.php'); // * <a href="http://www.google.it/">Google</a> *
$cerca = '#<a href="(.*)">(.*)</a>#si';
$sostituisci = '<a href="http://www.altervista.it/">Altervista</a>';
$link = preg_replace($cerca, $sostituisci, $link); // Cambia $cerca in $sostituisci da $link
echo $link;
?>
Ultima modifica di darkwolf : 09-03-2011 alle ore 17.41.19 Motivo: Rivisto e fixato :P
E' un codice Wordpress, ma ciò che voglio fare va oltre WP e riguarda PHP sostanzialmente :)
Non ma non deve cacciare i link XD devo sostituire quei link con altri link. Ciò che vorrei ottenere è daCodice PHP:
$children = wp_list_pages('title_li=&child_of='.$cmnt.'&echo=0&depth=1&exclude=205,203,201');
if ($children)
{
?>
<ul>
<?php
echo preg_replace(">".get_the_title(),"class='selected'>".get_the_title(),$children);
?>
</ul>
<?php
}
aCodice:<a href="http://www.google.it/">Google</a>
Codice:<a href="http://www.altrolink.it/">Google</a>
Se il link si ottiene da $childrenDovrebbe funzionare.Codice PHP:
<?php
$cerca = '#<a href="(.*)">(.*)</a>#si';
$sostituisci = '<a href="http://www.altervista.it/">Altervista</a>';
$children = preg_replace($cerca, $sostituisci, $children); // Cambia $cerca in $sostituisci da $children
echo preg_replace(">".get_the_title(),"class='selected'>".get_the_title(),$children);
?>
Ultima modifica di darkwolf : 09-03-2011 alle ore 17.51.37
Codice PHP:
function strip_only_tags($str, $tags, $stripContent=false) {
$content = '';
if(!is_array($tags)) {
$tags = (strpos($str, '>') !== false ? explode('>', str_replace('<', '', $tags)) : array($tags));
if(end($tags) == '') array_pop($tags);
}
foreach($tags as $tag) {
if ($stripContent)
$content = '(.+</'.$tag.'(>|\s[^>]*>)|)';
$str = preg_replace('#</?'.$tag.'(>|\s[^>]*>)'.$content.'#is', '', $str);
}
return $str;
}
$html = '
<strong><a href="page.html" class="xxx" id="aaa" onclick="funzione(); return false;">ythertyheythtyh</a></strong>
<p>gethegthyh</p>
<p>htyhythy<a href="simplelink.html">icici</a> hetrhtyh</p>';
echo strip_only_tags($html, '<a>');