php - PHP中提取文本后如何更改?

标签 php mysql regex text

我正在我的网站上提取数据,并且我想更改我真正想要的文本。我将网站链接存储在 MYSQL 数据库中,我可以在其中以 PHP 输出链接,并使用 PHP DOM 来提取数据。我已经提取了使用以下代码获得的“College Football”Texas Christian at Texas Tech“LIVE”的文本:

<?php
  define('DB_HOST', 'localhost');
  define('DB_USER', 'myusername');
  define('DB_PASSWORD', 'mypassword');
  define('DB_DATABASE', 'mydbname');

  $errmsg_arr = array();
  $errflag = false;
  $link = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);

  if(!$link) 
  {
    die('Failed to connect to server: ' . mysql_error());
  }

  $db = mysql_select_db(DB_DATABASE);
  if(!$db) 
  {
    die("Unable to select database");
  }

  function clean($var)
  {
    return mysql_real_escape_string(strip_tags($var));
  }
  $channels = clean($_GET['channels']);
  $id = clean($_GET['id']);

  if($errflag) 
  {
    $_SESSION['ERRMSG_ARR'] = $errmsg_arr;
    echo implode('<br />',$errmsg_arr);
  }
  else 
  {
    $insert = array();

    if(isset($_GET['channels'])) 
    {
      $insert[] = 'channels = \'' . clean($_GET['channels']) .'\'';
    }
    if(isset($_GET['id'])) 
    {
      $insert[] = 'id = \'' . clean($_GET['id']) . '\'';
    }


    if($channels && $id) 
    {
      $qrytable1="SELECT id, channels, links FROM tvguide WHERE channels='$channels' && id='$id'";
      $result1=mysql_query($qrytable1) or die('Error:<br />' . $qry . '<br />' . mysql_error());

      while ($row = mysql_fetch_array($result1))
      {
        $links = $row['links'];
        include ('simple_html_dom.php');
        $html = file_get_html($links);
        $title1 = $html->find('a[id=rowTitle1]', 0); // with this
        echo $html->find('li[id=row1-3]', 0)->plaintext;
        echo "<BR></BR>";
      }
      mysql_close($link);
    }
  }
?>

这是我提取后的 HTML 源代码:

                        7:30 PM                              College Football                                              "Texas Christian at Texas Tech"                                                                                LIVE                          <BR></BR>

我可以在 HTML 源代码中看到有很长的空格,我想删除它,并且我还想忽略包括 AM 和 PM 在内的时间。

我想更改 HTML 源代码:

                        7:30 PM                              College Football                                              "Texas Christian at Texas Tech"                                                                                LIVE                          <BR></BR>

对此:

<span id='title1'>College Football: Texas Christian at Texas Tech - LIVE</span><br></br>

您能告诉我如何使用当前代码更改我想要的文本吗?

最佳答案

这样做:

$test ='                        7:30 PM                              College Football                                              LIVE                          <BR></BR>';
//remove time hh:mm
$output = preg_replace('/\d:\d+/', '', $test);
$output = '<span id="title1">'.str_replace(array("\t", '   ', '<BR>','</BR>', 'AM','PM'), '', $output).'</span><br><br>';
$output = str_replace(' LIVE', '- LIVE', $output);

echo $output;

College Football "Texas Christian at Texas Tech" - LIVE

它不仅在视觉上“干净”,而且在生成的 HTML 中也“干净”(但空白对读者来说并不重要,只是为了美化 - 事实上,读者应该忽略空格)

<span id="title1"> College Football "Texas Christian at Texas Tech" - LIVE  </span><br><br>

关于php - PHP中提取文本后如何更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18775283/

相关文章:

php - MySQL选择3个随机行,其中三行之和小于值

javascript - 使用正则表达式捕获特殊字符之间的字符串段

javascript - jQuery Validate - 带逗号的数字进入特定范围

php - 设置 google adwords 测试帐户

php - 如何正确存储 CKEditor HTML 输入

php - Docker 服务分离

mysql - 获取最大百分比,输出与其关联的值,而不是百分比

MySQL 5.1 [1305]函数不存在

javascript - 正则表达式替换字符串

php - 将两个实体合并到一个表中