2012-04-11 4 views
0

このスクリプトは、メタタグを持たない2つのURLを入れてからhtmlで間違って表示しない限りうまくいきます。このPHPスクリプトでelse文を使用してHTMLテーブルをエコーする方法

どのようにして停止するようにelse文を使用できますか?

あなたはそれがここに行くテストする場合:http://php-playground.co.cc/testdir/metaex.php

<form method="get" action=<?php echo "'".$_SERVER['PHP_SELF']."'";?> > 
<p>URL of Competitor:</p> 
<textarea name="siteurl" rows="10" cols="50"> 
<?php //Check if the form has already been submitted and if this is the case, display the  submitted content. If not, display 'http://'. 
echo (isset($_GET['siteurl']))?htmlspecialchars($_GET['siteurl']):"http://";?> 
</textarea><br> 
<input type="submit" value="Submit"> 
</form> 
<div id="nofloat"></div> 
<table> 
<?php 
function parseUrl($url){ 
    //Trim whitespace of the url to ensure proper checking. 
    $url = trim($url); 
    //Check if a protocol is specified at the beginning of the url. If it's not, prepend 'http://'. 
    if (!preg_match("~^(?:f|ht)tps?://~i", $url)) { 
      $url = "http://" . $url; 
    } 
    //Check if '/' is present at the end of the url. If not, append '/'. 
    if (substr($url, -1)!=="/"){ 
      $url .= "/"; 
    } 
    //Return the processed url. 
    return $url; 
} 
//If the form was submitted 
if(isset($_GET['siteurl'])){ 
    //Put every new line as a new entry in the array 
    $urls = explode("\n",trim($_GET["siteurl"])); 
    //Iterate through urls 
    foreach ($urls as $url) { 
      //Parse the url to add 'http://' at the beginning or '/' at the end if not already there, to avoid errors with the get_meta_tags function 
      $url = parseUrl($url); 
      //Get the meta data for each url 
      $tags = get_meta_tags($url); 
      //Check to see if the description tag was present and adjust output accordingly 
      echo (isset($tags['description']))?"<tr><td>Description($url)</td> <td>".$tags['description']:"Description($url)</td><td>No Meta Description</td></tr>."; 
    } 
} 
?> 
</table> 

どうもありがとうございました!

+0

私は助けが必要な部分は、テーブルをエコーし​​ています:) – RuFFCuT

+0

私は私の答えを編集しました。 – jbrtrnd

答えて

0

これを行うには複数の方法があります。なぜこれを試して、見つめて、真と偽の両方のタグを終了している必要がありますが、この

$tags = NULL; 
$tags = get_meta_tags($url); 
if($tags) 
echo "<tr><td>Description($url)</td><td>" .$tags['description']. "</td></tr>"; 
else 
echo "<tr><td>Description($url)</td<td>No Meta Description</td></tr>"; 

を行うには簡単な方法を使用するか、あなたのコードに固執する場合はありません。

echo (isset($tags['description'])) ? '<tr><td>Description($url)</td><td>' . $tags['description'] . '</td></tr>' : '<tr><td>Description($url)</td><td>No Meta Description</td></tr>'; 
1

まず、行の最後のドット.を削除します。

echo (isset($tags['description']))?"<tr><td>Description($url)</td> <td>".$tags['description']:"Description($url)</td><td>No Meta Description</td></tr>.";

EDIT:
私はこれを見ていないが、あなたがこの行に1個のより多くのエラーを持っている:
".$tags['description'].":".$tags['description']:"を交換してください

関連する問題