Pas de fin séparateur '/' trouvé d'erreur
J'ai ajusté un petit script pour vérifier les backlinks. Pourtant, j'obtiens toujours l'erreur
Warning: preg_match() [function.preg-match]: Pas de fin séparateur '/' qui se trouve dans la ligne 17.
<?php
function file_get_contents_curl($url) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
function google_backlink($uri)
{
$url = 'http://www.google.com/search?q=link:facebook.com&hl=en&filter=0';
$v = file_get_contents_curl($url);
preg_match('/<div id="resultStats">About \(.*?)\ ',$v,$s);
$s_number = explode(".", $s[1]);
$i = 0;
if ($s[1]!=0) {
return $s[1];
} else {
return ($r[1]) ? $r[1] : '0';
}
}
echo "Google backlink = ".google_backlink($url)."<br />";
?>
Quel est le problème avec
preg_match('/<div id="resultStats">About \(.*?)\ ',$v,$s);
OriginalL'auteur Lisa | 2011-06-22
Vous devez vous connecter pour publier un commentaire.
L'erreur est très clair, vraiment, vous n'avez pas inclure la fuite
/
:Honnêtement, je doute que votre échapper les caractères sont bien passées. Peut-être que vous avez voulu dire
\)
?preg_match('/<div id="resultStats">About \(.*?\) /',$v,$s);
. C'est probablement mal, je suppose que vous voulez que cela:preg_match('/<div id="resultStats">About (.*?)/',$v,$s);
. Le dernier espace, et s'échappa entre parenthèses signifie qu'il va correspondre àAbout (something)
, et pasAbout something
ouAbout (something)
.Je serais mieux adapté à apprécier votre réponse si je savais que la question de trop. Soins pour m'éclairer?
Merci, cela donne Warning: preg_match() [function.preg-match]: Compilation failed: inégalée parenthèses au décalage 33
Oui, parce que vous tentez de fuir l'ouverture de parenthèses, mais pas la fermeture, de sorte qu'ils sont déséquilibrés.
preg_match('/<div id="resultStats">à Propos de la (.*?)/',$v,$s); résolu l'erreur. Je vous remercie. Maintenant j'ai juste besoin de corriger le code, mais cette erreur a été corrigée. 🙂
OriginalL'auteur Blindy
Il ne possède pas de fermeture /
preg_match('/pattern /', $subject);
Vous avez un début (slash)
/
mais pas de fermeture (slash)/
Il semble pour le motif que vous définissez dans entre les 2 barres obliques.
ensuite voter ma réponse comme correcte en me donnant une coche verte en cochant l'option "vérifier". Ou upvote moi. Je veux des points. Nous survivre à des points de madame. 😀
J'ai essayé la barre oblique de fermeture, mais qui donne l'erreur suivante: Warning: preg_match() [function.preg-match]: Compilation failed: inégalée parenthèses au décalage 33
montrez-moi la mise à jour de la ligne de comment vous l'avez fait.
preg_match('/<div id="resultStats">à Propos de la (.*?)/',$v,$s); résolu l'erreur. résolu l'erreur, mais je ne peut voter qu'une fois 🙁 comment puis-je également vous donner du crédit?
OriginalL'auteur FinalForm
Essayez de changer
preg_match('/<div id="resultStats">About \(.*?)\ ',$v,$s);
À
preg_match('/<div id="resultStats">About \(.*?)\ /',$v,$s);
/
est un "séparateur" le sens qu'il indique preg_match où l'expression régulière pattern se termine.OriginalL'auteur LainIwakura